Implement Static Function Pointers

This commit is contained in:
Ricardo Luís Vaz Silva 2023-02-10 09:44:32 -03:00 committed by Christoph Oelckers
commit e3704605d8
23 changed files with 876 additions and 51 deletions

View file

@ -277,6 +277,7 @@ enum EFxType
EFX_ReturnStatement,
EFX_ClassTypeCast,
EFX_ClassPtrCast,
EFX_FunctionPtrCast,
EFX_StateByIndex,
EFX_RuntimeStateIndex,
EFX_MultiNameState,
@ -1818,6 +1819,7 @@ class FxVMFunctionCall : public FxExpression
bool CheckAccessibility(const VersionInfo &ver);
public:
const bool FnPtrCall;
FArgumentList ArgList;
PFunction* Function;
@ -2127,6 +2129,24 @@ public:
//
//==========================================================================
class FxFunctionPtrCast : public FxExpression
{
FxExpression *basex;
public:
FxFunctionPtrCast (PFunctionPointer *ftype, FxExpression *x);
~FxFunctionPtrCast();
FxExpression *Resolve(FCompileContext&);
ExpEmit Emit(VMFunctionBuilder *build);
};
//==========================================================================
//
//
//
//==========================================================================
class FxNop : public FxExpression
{
public: