#ifndef VCZH_WORKFLOW_RUNTIME_WFRUNTIMEINSTRUCTION
#define VCZH_WORKFLOW_RUNTIME_WFRUNTIMEINSTRUCTION
#include <VlppReflection.h>
namespace
{
namespace
{
namespace
{
enum
class
{
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
};
#define INSTRUCTION_CASES(APPLY, APPLY_VALUE, APPLY_FUNCTION, APPLY_FUNCTION_COUNT, APPLY_VARIABLE, APPLY_COUNT, APPLY_FLAG_TYPEDESCRIPTOR, APPLY_PROPERTY, APPLY_METHOD, APPLY_METHOD_COUNT, APPLY_EVENT, APPLY_EVENT_COUNT, APPLY_LABEL, APPLY_TYPE)\
APPLY(Nop)\
APPLY_VALUE(LoadValue)\
APPLY_FUNCTION(LoadFunction)\
APPLY(LoadException)\
APPLY_VARIABLE(LoadLocalVar)\
APPLY_VARIABLE(LoadCapturedVar)\
APPLY_VARIABLE(LoadGlobalVar)\
APPLY_METHOD(LoadMethodInfo)\
APPLY_METHOD(LoadMethodClosure)\
APPLY(LoadClosureContext)\
APPLY_VARIABLE(StoreLocalVar)\
APPLY_VARIABLE(StoreCapturedVar)\
APPLY_VARIABLE(StoreGlobalVar)\
APPLY_COUNT(Duplicate)\
APPLY(Pop)\
APPLY(Return)\
APPLY_COUNT(CreateArray)\
APPLY_COUNT(CreateObservableList)\
APPLY_COUNT(CreateMap)\
APPLY_COUNT(CreateClosureContext)\
APPLY(CreateClosure)\
APPLY_METHOD_COUNT(CreateInterface)\
APPLY_TYPE(CreateRange)\
APPLY_FLAG_TYPEDESCRIPTOR(CreateStruct)\
APPLY(DeleteRawPtr)\
APPLY_FLAG_TYPEDESCRIPTOR(ConvertToType)\
APPLY_FLAG_TYPEDESCRIPTOR(TryConvertToType)\
APPLY_FLAG_TYPEDESCRIPTOR(TestType)\
APPLY(GetType)\
APPLY_LABEL(Jump)\
APPLY_LABEL(JumpIf)\
APPLY_FUNCTION_COUNT(Invoke)\
APPLY_FUNCTION_COUNT(InvokeWithContext)\
APPLY_PROPERTY(GetProperty)\
APPLY_PROPERTY(SetProperty)\
APPLY_PROPERTY(UpdateProperty)\
APPLY_COUNT(InvokeProxy)\
APPLY_METHOD_COUNT(InvokeMethod)\
APPLY_EVENT_COUNT(InvokeEvent)\
APPLY_METHOD_COUNT(InvokeBaseCtor)\
APPLY_EVENT(AttachEvent)\
APPLY_EVENT(DetachEvent)\
APPLY_LABEL(InstallTry)\
APPLY_COUNT(UninstallTry)\
APPLY(RaiseException)\
APPLY(TestElementInSet)\
APPLY_TYPE(CompareLiteral)\
APPLY(CompareReference)\
APPLY(CompareValue)\
APPLY_TYPE(OpNot)\
APPLY_TYPE(OpPositive)\
APPLY_TYPE(OpNegative)\
APPLY(OpConcat)\
APPLY_TYPE(OpExp)\
APPLY_TYPE(OpAdd)\
APPLY_TYPE(OpSub)\
APPLY_TYPE(OpMul)\
APPLY_TYPE(OpDiv)\
APPLY_TYPE(OpMod)\
APPLY_TYPE(OpShl)\
APPLY_TYPE(OpShr)\
APPLY_TYPE(OpXor)\
APPLY_TYPE(OpAnd)\
APPLY_TYPE(OpOr)\
APPLY(OpLT)\
APPLY(OpGT)\
APPLY(OpLE)\
APPLY(OpGE)\
APPLY(OpEQ)\
APPLY(OpNE)\
enum
class
{
,
,
,
,
,
,
,
,
,
,
,
,
,
};
struct
{
=
::
;
reflection
::
description
::
*
=
nullptr
;
;
union
{
bool
;
;
;
;
;
;
;
;
=
0
;
float
;
double
;
};
() {}
(
bool
) : type(
::
), boolValue(
) {}
(
) : type(
::
), i1Value(
) {}
(
) : type(
::
), i2Value(
) {}
(
) : type(
::
), i4Value(
) {}
(
) : type(
::
), i8Value(
) {}
(
) : type(
::
), u1Value(
) {}
(
) : type(
::
), u2Value(
) {}
(
) : type(
::
), u4Value(
) {}
(
) : type(
::
), u8Value(
) {}
(
float
) : type(
::
), f4Value(
) {}
(
double
) : type(
::
), f8Value(
) {}
(
) : type(
::
), stringValue(
) {}
(
,
reflection
::
description
::
*
)
: type(
::
), typeDescriptor(
), u8Value(
) {}
(
reflection
::
description
::
*
)
: type(
::
), typeDescriptor(
) {}
};
struct
{
=
::
;
;
=
0
;
union
{
struct
{
reflection
::
description
::
::
;
reflection
::
description
::
*
;
};
;
;
reflection
::
description
::
*
;
reflection
::
description
::
*
;
reflection
::
description
::
*
;
};
();
#define CTOR(NAME) static WfInstruction NAME();
#define CTOR_VALUE(NAME) static WfInstruction NAME(const WfRuntimeValue& value);
#define CTOR_FUNCTION(NAME) static WfInstruction NAME(vint function);
#define CTOR_FUNCTION_COUNT(NAME) static WfInstruction NAME(vint function, vint count);
#define CTOR_VARIABLE(NAME) static WfInstruction NAME(vint variable);
#define CTOR_COUNT(NAME) static WfInstruction NAME(vint count);
#define CTOR_FLAG_TYPEDESCRIPTOR(NAME) static WfInstruction NAME(reflection::description::Value::ValueType flag, reflection::description::ITypeDescriptor* typeDescriptor);
#define CTOR_PROPERTY(NAME) static WfInstruction NAME(reflection::description::IPropertyInfo* propertyInfo);
#define CTOR_METHOD(NAME) static WfInstruction NAME(reflection::description::IMethodInfo* methodInfo);
#define CTOR_METHOD_COUNT(NAME) static WfInstruction NAME(reflection::description::IMethodInfo* methodInfo, vint count);
#define CTOR_EVENT(NAME) static WfInstruction NAME(reflection::description::IEventInfo* eventInfo);
#define CTOR_EVENT_COUNT(NAME) static WfInstruction NAME(reflection::description::IEventInfo* eventInfo, vint count);
#define CTOR_LABEL(NAME) static WfInstruction NAME(vint label);
#define CTOR_TYPE(NAME) static WfInstruction NAME(WfInsType type);
INSTRUCTION_CASES(
CTOR,
CTOR_VALUE,
CTOR_FUNCTION,
CTOR_FUNCTION_COUNT,
CTOR_VARIABLE,
CTOR_COUNT,
CTOR_FLAG_TYPEDESCRIPTOR,
CTOR_PROPERTY,
CTOR_METHOD,
CTOR_METHOD_COUNT,
CTOR_EVENT,
CTOR_EVENT_COUNT,
CTOR_LABEL,
CTOR_TYPE)
static
();
static
(
const
&
);
static
(
);
static
();
static
(
);
static
(
);
static
(
);
static
(
reflection
::
description
::
*
);
static
(
reflection
::
description
::
*
);
static
();
static
(
);
static
(
);
static
(
);
static
(
);
static
();
static
();
static
(
);
static
(
);
static
(
);
static
(
);
static
();
static
(
reflection
::
description
::
*
,
);
static
(
);
static
(
reflection
::
description
::
::
,
reflection
::
description
::
*
);
static
();
static
(
reflection
::
description
::
::
,
reflection
::
description
::
*
);
static
(
reflection
::
description
::
::
,
reflection
::
description
::
*
);
static
(
reflection
::
description
::
::
,
reflection
::
description
::
*
);
static
();
static
(
);
static
(
);
static
(
,
);
static
(
,
);
static
(
reflection
::
description
::
*
);
static
(
reflection
::
description
::
*
);
static
(
reflection
::
description
::
*
);
static
(
);
static
(
reflection
::
description
::
*
,
);
static
(
reflection
::
description
::
*
,
);
static
(
reflection
::
description
::
*
,
);
static
(
reflection
::
description
::
*
);
static
(
reflection
::
description
::
*
);
static
(
);
static
(
);
static
();
static
();
static
(
);
static
();
static
();
static
(
);
static
(
);
static
(
);
static
();
static
(
);
static
(
);
static
(
);
static
(
);
static
(
);
static
(
);
static
(
);
static
(
);
static
(
);
static
(
);
static
(
);
static
();
static
();
static
();
static
();
static
();
static
();
#undef CTOR
#undef CTOR_VALUE
#undef CTOR_FUNCTION
#undef CTOR_FUNCTION_COUNT
#undef CTOR_VARIABLE
#undef CTOR_COUNT
#undef CTOR_FLAG_TYPEDESCRIPTOR
#undef CTOR_PROPERTY
#undef CTOR_METHOD
#undef CTOR_METHOD_COUNT
#undef CTOR_EVENT
#undef CTOR_EVENT_COUNT
#undef CTOR_LABEL
#undef CTOR_TYPE
};
}
}
}
#endif