2022-01-23 08:54:49 +00:00
|
|
|
#pragma once
|
|
|
|
#include "zcc_compile.h"
|
|
|
|
|
2022-01-23 09:38:23 +00:00
|
|
|
class DCoreActor;
|
|
|
|
|
2022-01-23 08:54:49 +00:00
|
|
|
void SetImplicitArgs(TArray<PType*>* args, TArray<uint32_t>* argflags, TArray<FName>* argnames, PContainerType* cls, uint32_t funcflags, int useflags);
|
|
|
|
|
|
|
|
class ZCCRazeCompiler : public ZCCCompiler
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
ZCCRazeCompiler(ZCC_AST &tree, DObject *outer, PSymbolTable &symbols, PNamespace *outnamespace, int lumpnum, const VersionInfo & ver)
|
|
|
|
: ZCCCompiler(tree, outer, symbols, outnamespace, lumpnum, ver)
|
|
|
|
{}
|
|
|
|
int Compile() override;
|
|
|
|
protected:
|
|
|
|
bool PrepareMetaData(PClass *type) override;
|
|
|
|
private:
|
|
|
|
void CompileAllProperties();
|
|
|
|
bool CompileProperties(PClass *type, TArray<ZCC_Property *> &Properties, FName prefix);
|
|
|
|
bool CompileFlagDefs(PClass *type, TArray<ZCC_FlagDef *> &Properties, FName prefix);
|
2023-10-01 18:39:40 +00:00
|
|
|
bool CompileFlagDefs(PContainerType* type, TArray<ZCC_FlagDef*>& Properties, FName prefix);
|
2022-01-23 08:54:49 +00:00
|
|
|
void DispatchProperty(FPropertyInfo *prop, ZCC_PropertyStmt *property, DCoreActor *defaults, Baggage &bag);
|
|
|
|
void DispatchScriptProperty(PProperty *prop, ZCC_PropertyStmt *property, DCoreActor *defaults, Baggage &bag);
|
|
|
|
void ProcessDefaultProperty(PClassActor *cls, ZCC_PropertyStmt *prop, Baggage &bag);
|
|
|
|
void ProcessDefaultFlag(PClassActor *cls, ZCC_FlagStmt *flg);
|
|
|
|
void InitDefaults() override final;
|
2023-07-01 12:33:04 +00:00
|
|
|
FxExpression* SetupActionFunction(PClass* cls, ZCC_TreeNode* af, int StateFlags);
|
|
|
|
void CompileStates();
|
|
|
|
PFunction* CreateAnonymousFunction(PContainerType* containingclass, PType* returntype, int flags);
|
|
|
|
|
2022-01-23 08:54:49 +00:00
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|