adapt to FPC (linux)
This commit is contained in:
@@ -3,7 +3,10 @@ unit RuntimeBuilder;
|
|||||||
interface
|
interface
|
||||||
|
|
||||||
uses
|
uses
|
||||||
System.TypInfo,System.Rtti;
|
{$ifndef fpc}System.{$endif}TypInfo,
|
||||||
|
{$ifndef fpc}System.{$endif}SysUtils,
|
||||||
|
{$ifndef fpc}System.Rtti,{$endif}
|
||||||
|
Variants;
|
||||||
|
|
||||||
const
|
const
|
||||||
CRTBCallTypeNil=ccStdCall;
|
CRTBCallTypeNil=ccStdCall;
|
||||||
@@ -23,13 +26,19 @@ type
|
|||||||
|
|
||||||
TRTBType=PTypeInfo;
|
TRTBType=PTypeInfo;
|
||||||
|
|
||||||
|
{$ifdef fpc}
|
||||||
|
TValue = Variant;
|
||||||
|
{$endif}
|
||||||
|
|
||||||
|
TRTBArgArray = {$ifdef fpc}specialize{$endif} TArray<TValue>;
|
||||||
|
|
||||||
TRTBFunc=class abstract
|
TRTBFunc=class abstract
|
||||||
public
|
public
|
||||||
function Call(OutType:PTypeInfo;args:TArray<TValue>;CallType:TRTBCallType=CRTBCallTypeDefault):TValue;virtual;abstract;
|
function Call(OutType:PTypeInfo;args:TRTBArgArray;CallType:TRTBCallType=CRTBCallTypeDefault):TValue;virtual;abstract;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
TRTBCallBackOut=TValue;
|
TRTBCallBackOut=TValue;
|
||||||
TRTBCallBack=reference to function(arg:array of const):TRTBCallBackOut;
|
TRTBCallBack={$ifndef fpc}reference to{$endif} function(arg:array of const):TRTBCallBackOut;
|
||||||
|
|
||||||
TRTBVar=class abstract
|
TRTBVar=class abstract
|
||||||
protected
|
protected
|
||||||
@@ -41,8 +50,8 @@ type
|
|||||||
|
|
||||||
TRTBModule=class abstract
|
TRTBModule=class abstract
|
||||||
protected
|
protected
|
||||||
function GetFuntion(Name:string):TRTBFunc;virtual;abstract;
|
function GetFuntion(const Name:string):TRTBFunc;virtual;abstract;
|
||||||
function GetVar(Name:string):TRTBVar;virtual;abstract;
|
function GetVar(const Name:string):TRTBVar;virtual;abstract;
|
||||||
public
|
public
|
||||||
property Funtion[Name:string]:TRTBFunc read GetFuntion;
|
property Funtion[Name:string]:TRTBFunc read GetFuntion;
|
||||||
property &Var[Name:string]:TRTBVar read GetVar;
|
property &Var[Name:string]:TRTBVar read GetVar;
|
||||||
@@ -52,37 +61,37 @@ type
|
|||||||
protected
|
protected
|
||||||
Compiler:TRTBCompiler;
|
Compiler:TRTBCompiler;
|
||||||
function GetText:string;virtual;abstract;
|
function GetText:string;virtual;abstract;
|
||||||
procedure SetText(S:string);virtual;abstract;
|
procedure SetText(const S:string);virtual;abstract;
|
||||||
public
|
public
|
||||||
constructor Create(Compiler:TRTBCompiler);
|
constructor Create(ACompiler:TRTBCompiler);
|
||||||
|
|
||||||
procedure LoadLib(Name:string);virtual;abstract;
|
procedure LoadLib(const Name:string);virtual;abstract;
|
||||||
procedure UnLoadLib(Name:string);virtual;abstract;
|
procedure UnLoadLib(const Name:string);virtual;abstract;
|
||||||
|
|
||||||
procedure AddNameSpace(Name:string);virtual;abstract;
|
procedure AddNameSpace(const Name:string);virtual;abstract;
|
||||||
procedure DelNameSpace(Name:string);virtual;abstract;
|
procedure DelNameSpace(const Name:string);virtual;abstract;
|
||||||
|
|
||||||
procedure AddType(NameSpace:string;Name:string;&Type:TRTBType);virtual;abstract;//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
procedure AddType(const NameSpace,Name:string;&Type:TRTBType);virtual;abstract;//äîáàâëÿåò òèï
|
||||||
procedure DelType(NameSpace:string;Name:string);virtual;abstract;
|
procedure DelType(const NameSpace,Name:string);virtual;abstract;
|
||||||
|
|
||||||
procedure AddConst(NameSpace:string;Name:string;Val:TValue);virtual;abstract;//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
procedure AddConst(const NameSpace,Name:string;Val:TValue);virtual;abstract;//äîáàâëÿåò êîíñòàíòó
|
||||||
procedure DelConst(NameSpace:string;Name:string);virtual;abstract;
|
procedure DelConst(const NameSpace,Name:string);virtual;abstract;
|
||||||
|
|
||||||
procedure AddVariable(NameSpace:string;Name:string;var Data);virtual;abstract;//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
procedure AddVariable(const NameSpace,Name:string;var Data);virtual;abstract;//äîáàâëÿåò ïåðåìåííóþ,èíèöèàëèçèðóÿ å¸ çíà÷åíèå
|
||||||
procedure ExportVariable(NameSpace:string;Name:string;var Data);virtual;abstract;//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> Data
|
procedure ExportVariable(const NameSpace,Name:string;var Data);virtual;abstract;//äîáàâëÿåò ïåðåìåííóþ,ñèíõõðîíèçèðîâàííóþ ñ Data
|
||||||
procedure DelVariable(NameSpace:string;Name:string);virtual;abstract;
|
procedure DelVariable(const NameSpace,Name:string);virtual;abstract;
|
||||||
|
|
||||||
procedure AddCallBack(NameSpace:string;Name:string;CallBack:TRTBCallBack);virtual;abstract;//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD>
|
procedure AddCallBack(const NameSpace,Name:string;CallBack:TRTBCallBack);virtual;abstract;//äîáàâëÿåò ôóíêöèþ/ïðîöåäóðó/ìåòîä
|
||||||
procedure DelCallBack(NameSpace:string;Name:string);virtual;abstract;
|
procedure DelCallBack(const NameSpace,Name:string);virtual;abstract;
|
||||||
|
|
||||||
procedure &Register(NameSpace:string;Name:string;&Type:TRTBType);virtual;abstract;//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
procedure &Register(const NameSpace,Name:string;&Type:TRTBType);virtual;abstract;//ðåãèñòðèðóåò ïåðåìåííóþ îáúÿâëåííóþ â ñêðèïòå
|
||||||
procedure UnRegister(NameSpace:string;Name:string);virtual;abstract;
|
procedure UnRegister(const NameSpace,Name:string);virtual;abstract;
|
||||||
procedure &RegisterFunction(NameSpace:string;Name:string);virtual;abstract;//<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
procedure &RegisterFunction(const NameSpace,Name:string);virtual;abstract;//ðåãèñòðèðóåò ôóíêöèþ îáúÿâëåííóþ â ñêðèïòå
|
||||||
procedure UnRegisterFunction(NameSpace:string;Name:string);virtual;abstract;
|
procedure UnRegisterFunction(const NameSpace,Name:string);virtual;abstract;
|
||||||
|
|
||||||
function Compilate:TRTBModule;virtual;abstract;
|
function Compilate:TRTBModule;virtual;abstract;
|
||||||
procedure LoadFromFile(&File:string);virtual;
|
procedure LoadFromFile(const &File:string);virtual;
|
||||||
procedure SaveToFile(&File:string);virtual;
|
procedure SaveToFile(const &File:string);virtual;
|
||||||
property Text:string read GetText write SetText;
|
property Text:string read GetText write SetText;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@@ -94,14 +103,14 @@ type
|
|||||||
implementation
|
implementation
|
||||||
|
|
||||||
uses
|
uses
|
||||||
System.SysUtils,System.Classes;
|
{$ifndef fpc}System.{$endif}Classes;
|
||||||
|
|
||||||
constructor TRTBSource.Create(Compiler:TRTBCompiler);
|
constructor TRTBSource.Create(ACompiler:TRTBCompiler);
|
||||||
begin
|
begin
|
||||||
Self.Compiler:=Compiler;
|
Self.Compiler:=ACompiler;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TRTBSource.LoadFromFile(&File:string);
|
procedure TRTBSource.LoadFromFile(const &File:string);
|
||||||
var
|
var
|
||||||
Data:TStrings;
|
Data:TStrings;
|
||||||
begin
|
begin
|
||||||
@@ -111,7 +120,7 @@ Text:=Data.Text;
|
|||||||
FreeAndNil(Data);
|
FreeAndNil(Data);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TRTBSource.SaveToFile(&File:string);
|
procedure TRTBSource.SaveToFile(const &File:string);
|
||||||
var
|
var
|
||||||
Data:TStrings;
|
Data:TStrings;
|
||||||
begin
|
begin
|
||||||
@@ -121,4 +130,4 @@ Data.SaveToFile(&File);
|
|||||||
FreeAndNil(Data);
|
FreeAndNil(Data);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
end.
|
end.
|
||||||
Reference in New Issue
Block a user