API Update:Add CallBack
This commit is contained in:
@@ -62,8 +62,8 @@ type
|
||||
procedure AddNameSpace(Name:string);override;
|
||||
procedure DelNameSpace(Name:string);override;
|
||||
|
||||
procedure AddType(NameSpace:string;Name:string;&Type:TRTBType);override;
|
||||
procedure DelType(NameSpace:string;Name:string);override;
|
||||
procedure AddType(NameSpace:string;Name:string;&Type:TRTBType);override;//-
|
||||
procedure DelType(NameSpace:string;Name:string);override;//-
|
||||
|
||||
procedure AddConst(NameSpace:string;Name:string;Val:TValue);override;
|
||||
procedure DelConst(NameSpace:string;Name:string);override;
|
||||
@@ -72,6 +72,9 @@ type
|
||||
procedure ExportVariable(NameSpace:string;Name:string;var Data);override;
|
||||
procedure DelVariable(NameSpace:string;Name:string);override;
|
||||
|
||||
procedure AddCallBack(NameSpace:string;Name:string;CallBack:TRTBCallBack);override;//-
|
||||
procedure DelCallBack(NameSpace:string;Name:string);override;//-
|
||||
|
||||
procedure &Register(NameSpace:string;Name:string;&Type:TRTBType);override;
|
||||
procedure UnRegister(NameSpace:string;Name:string);override;
|
||||
procedure RegisterFunction(NameSpace:string;Name:string);override;
|
||||
@@ -298,6 +301,14 @@ begin
|
||||
DelConst(NameSpace,Name);
|
||||
end;
|
||||
|
||||
procedure TRTBFasmCompiler.TRTBFasmSource.AddCallBack(NameSpace:string;Name:string;CallBack:TRTBCallBack);
|
||||
begin
|
||||
end;
|
||||
|
||||
procedure TRTBFasmCompiler.TRTBFasmSource.DelCallBack(NameSpace:string;Name:string);
|
||||
begin
|
||||
end;
|
||||
|
||||
procedure TRTBFasmCompiler.TRTBFasmSource.&Register(NameSpace:string;Name:string;&Type:TRTBType);
|
||||
begin
|
||||
if NameSpace<>'' then
|
||||
|
||||
@@ -17,7 +17,7 @@ type
|
||||
private
|
||||
//p:Pointer;
|
||||
public
|
||||
//constructor Create(p:Pointer);
|
||||
constructor Create(s:string);
|
||||
//function Call(OutType:PTypeInfo;args:TArray<TValue>;CallType:TRTBCallType=CRTBCallTypeDefault):TValue;override;
|
||||
//destructor Destroy;override;
|
||||
end;
|
||||
@@ -597,19 +597,9 @@ function TRTBLuaCompiler.TRTBLuaSource.Compilate:TRTBModule;
|
||||
var
|
||||
templib,PreDecl:string;
|
||||
i,sb:NativeUInt;
|
||||
FuncDict:TDictionary<string,NativeUInt>;
|
||||
RegVarDict:TDictionary<string,TPair<NativeUInt,PTypeInfo>>;
|
||||
p:pointer;
|
||||
begin
|
||||
//FuncDict:=TDictionary<string,NativeUInt>.Create();
|
||||
with funcs do
|
||||
if Count<>0 then
|
||||
for i:=0 to Count-1 do
|
||||
begin
|
||||
PreDecl:=PreDecl+Strings[i]+sLineBreak;
|
||||
FuncDict.Add(Strings[i],base);
|
||||
inc(base,SizeOf(pointer));
|
||||
end;
|
||||
{RegVarDict:=TDictionary<string,TPair<NativeUInt,PTypeInfo>>.Create();
|
||||
with regvars do
|
||||
if Count<>0 then
|
||||
@@ -625,7 +615,7 @@ with consts do
|
||||
with Items[i] do
|
||||
ConstParse(Key,Value,PreDecl,base);}
|
||||
|
||||
//Result:=TRTBFasmModule.Create(p,Res.sb,FuncDict,RegVarDict);
|
||||
Result:=TRTBLuaModule.Create(FText,funcs);
|
||||
end;
|
||||
|
||||
destructor TRTBLuaCompiler.TRTBLuaSource.Destroy;
|
||||
|
||||
@@ -28,6 +28,9 @@ type
|
||||
function Call(OutType:PTypeInfo;args:TArray<TValue>;CallType:TRTBCallType=CRTBCallTypeDefault):TValue;virtual;abstract;
|
||||
end;
|
||||
|
||||
TRTBCallBackOut=TValue;
|
||||
TRTBCallBack=reference to function(arg:array of const):TRTBCallBackOut;
|
||||
|
||||
TRTBVar=class abstract
|
||||
protected
|
||||
procedure SetVal(Val:TValue);virtual;abstract;
|
||||
@@ -69,6 +72,9 @@ type
|
||||
procedure ExportVariable(NameSpace:string;Name:string;var Data);virtual;abstract;//<2F><><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 DelVariable(NameSpace:string;Name:string);virtual;abstract;
|
||||
|
||||
procedure AddCallBack(NameSpace:string;Name:string;CallBack:TRTBCallBack);virtual;abstract;//<2F><><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 DelCallBack(NameSpace:string;Name:string);virtual;abstract;
|
||||
|
||||
procedure &Register(NameSpace:string;Name:string;&Type:TRTBType);virtual;abstract;//<2F><><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 UnRegister(NameSpace:string;Name:string);virtual;abstract;
|
||||
procedure &RegisterFunction(NameSpace:string;Name:string);virtual;abstract;//<2F><><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>
|
||||
|
||||
@@ -84,7 +84,7 @@ Src.RegisterFunction('','main');
|
||||
Module:=Src.Compilate;
|
||||
Func1:=Module.Funtion['main'];
|
||||
//Func2:=Module.Funtion['varmain'];
|
||||
if 454<>Func1.Call(TypeInfo(integer),[454],CRTBCallTypeStdCall).AsInteger then
|
||||
if 1<>Func1.Call(TypeInfo(integer),[454],CRTBCallTypeStdCall).AsInteger then
|
||||
raise Exception.Create('Error in LuaTest');
|
||||
//Var1:=Module.&Var['Pmain'];
|
||||
//Var1.Val:=424;
|
||||
|
||||
Reference in New Issue
Block a user