diff --git a/FasmOnDelphi b/FasmOnDelphi new file mode 160000 index 0000000..cd49f90 --- /dev/null +++ b/FasmOnDelphi @@ -0,0 +1 @@ +Subproject commit cd49f90470136a71d91e4339d75f873657679683 diff --git a/Source/RuntimeBuilder.Types.pas b/Source/RuntimeBuilder.Types.pas new file mode 100644 index 0000000..46b07b2 --- /dev/null +++ b/Source/RuntimeBuilder.Types.pas @@ -0,0 +1,56 @@ +unit RuntimeBuilder.Types; + +interface + +const + CRTBCallTypeNil=$0; + CRTBCallTypeRegister=$1; + CRTBCallTypeStdCall=$2; + CRTBCallTypeCdecl=$3; + CRTBCallTypeClrcall=$4; + CRTBCallTypeThiscall=$5; + CRTBCallTypeVectorcall=$6; + CRTBCallTypeCFastCall=$7; + CRTBCallTypeFortran=$8; + CRTBCallTypeSyscall=$9; + CRTBCallType64Call=$40; + CRTBCallTypeDefault=$80; + +type + TRTBCompliter=class; + + TRTBCallType=CRTBCallTypeNil..CRTBCallTypeDefault; + + TRTBSource=class abstract + private + Compliter:TRTBCompliter; + function GetText:string;virtual;abstract; + procedure SetText(S:string);virtual;abstract; + public + procedure Complete();virtual;abstract; + property Text:string read GetText write SetText; + end; + + TRTBFunc=class abstract + public + function Call(args:array of const;CallType:TRTBCallType=CRTBCallTypeDefault):Variant;virtual;abstract; + end; + + TRTBLib=class abstract + private + function GetFuntion(Name:string):TRTBFunc;virtual;abstract; + public + property Funtion[Name:string]:TRTBFunc read GetFuntion; + end; + + TRTBCompliter=class abstract + public + function LoadLib(Name:string):TRTBLib;virtual;abstract; + function GenSrc():TRTBSource;virtual;abstract; + function CompleteFunc(Source:TRTBSource;args:array of const):TRTBFunc;virtual;abstract; + function CompleteLib(Source:TRTBSource;args:array of const):TRTBLib;virtual;abstract; + end; + +implementation + +end. diff --git a/Source/RuntimeBuilder.pas b/Source/RuntimeBuilder.pas new file mode 100644 index 0000000..fbe844d --- /dev/null +++ b/Source/RuntimeBuilder.pas @@ -0,0 +1,9 @@ +unit RuntimeBuilder; + +interface + +uses RuntimeBuilder.Types; + +implementation + +end.