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; 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; TRTBSource=class abstract private Compliter:TRTBCompliter; function GetText:string;virtual;abstract; procedure SetText(S:string);virtual;abstract; public procedure CompleteAsLib:TRTBLib;virtual;abstract; procedure CompleteAsFunc:TRTBLib;virtual;abstract; property Text:string read GetText write SetText; 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.