I have Besen installed and I am in the process of evaluating it. It does not handle nested classes. I need a JIT compiler that provide access to heavily nested class information. This PostInfo is a simple database module that I would want Script to have access to.
---------------------------
// sample interface with no implemenation
---------------------------
Type
  PostInfo= class
  type
    IDs= class
    const
      ID                     = 0;
      InsertID               = 1;
      DomainID               = 2;
      IP                     = 3;
      Created                = 4;
      Form                   = 5;
      Data                   = 6;
    end;
    Keys=class
    const
      ID                     = 'ITMID';
      InsertID               = 'ITMIID';
      DomainID               = 'ITMDID';
      IP                     = 'ITMIP';
      Created                = 'IDTC';
      Form                   = 'IFRM';
      Data                   = 'IDAT';
    end;
    XML=class
    type
      Stanzas=class
      const
        Info               = 'pstinf';
      type
        Fields=class
        const
          ID               = 'id';
          Created          = 'ctd';
          IP               = 'ip';
          Form             = 'frm';
          Data             = 'dta';
        end;
      end;
    end;
    Email=class
    const
      Address              = 'au-eml-addr';
      NameSpace            = 'au-eml-ns';
      Subject              = 'au-eml-sbj';
      Body                 = 'au-eml-bdy';
    end;
    const
      TableP: PDatabaseTable = nil;
      MonitorP: PDBMSMonitorItem = nil;
      Startup: TDBTableIni = (
        AutoCreate: True;
        AutoCommit                   : True;
        Group: 'Domains/Storage';
        Name: 'Post Info';
        Value: 'scs_pstinfo';
        Hint: 'Table for accepting domain level form data from the web.';
        PrimaryField: Keys.ID;
        );
      Fields: array [0..6] of TDatabaseField = (
(PropertyID: IDs.ID; DataType: dftQWord; AutoCreate: True; Verified: False; Precision: 0; Flags: cfNotNull or cfPrimaryKey or cfIdentity; Name: Keys.ID; ), (PropertyID: IDs.InsertID; DataType: dftQWord; AutoCreate: True; Verified: False; Precision: 0; Flags: cfNone; Name: Keys.InsertID; ), (PropertyID: IDs.DomainID; DataType: dftQWord; AutoCreate: True; Verified: False; Precision: 0; Flags: cfNone; Name: Keys.DomainID; ), (PropertyID: IDs.IP; DataType: dftQWord; AutoCreate: True; Verified: False; Precision: 0; Flags: cfNone; Name: Keys.IP; ), (PropertyID: IDs.Created; DataType: dftDouble; AutoCreate: True; Verified: False; Precision: 0; Flags: cfNone; Name: Keys.Created; ), (PropertyID: IDs.Form; DataType: dftShortString; AutoCreate: True; Verified: False; Precision: 255; Flags: cfNone; Name: Keys.Form; ), (PropertyID: IDs.Data; DataType: dftMemo; AutoCreate: True; Verified: False; Precision: 0; Flags: cfNone; Name: Keys.Data; )
      );

class function Post(Var Module:TDBMSModule; Var Task:TDBMSTask; DomainID,IP:QWord; Form:TVarString; Data:TVarString): Boolean;
  end;

--------------------------

I need a JITC to provide access to native FPC code that looks like this on the compiled side, but would be implemented like so in the cloud.

Before BESEN.Execute, would need to have access to FPC runtime variables like Module,Task,IP
if (PostInfo.Post(Module,Task,DomainID,IP,Form,Data)==false){
  Log('FAILED to write');
} else {
  Log ('WooHoo');
};

Nested classes are a modern way to organize complex API and code into very easy to read code. Most of the modules I have are extremely nested, the one I chose here is easy and strait forward.

I see PascalScript is part of the Lazarus project now. I have not been able to get nested classes to work there either. If I am to get my code accessible, I will need someone with knowledge in extending BESEN or PascalScript or both. I would be ideal to offer developers a choice of which scripting language they want to write back-end code.

But if I am to provide developers with instant API to do complex code that is relevant to computing needs of today, I will need access to nested objects in either of these JITCs.

Anyone familiar with BESEN or PascalScript that could shed some light?

--
Andrew Brunner

Aurawin LLC
512.850.3117
https://aurawin.com/

Aurawin is a great new way to store, share and enjoy your photos, videos, 
music, and more.

_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to