#include "bytecode_ops.h"
+#define BC_NS_SEPARATOR '@'
+
typedef struct sBC_Op tBC_Op;
typedef struct sBC_Function tBC_Function;
{
tBC_Op *Next;
int Operation;
- int bUseInteger; // Used for serialisation
+ char bUseInteger; // Used for serialisation
+ char bUseString; // Used for serialisation
union {
struct {
- const char *String;
int Integer;
+ char String[];
} StringInt;
uint64_t Integer;
struct sBC_Function
{
- const char *Name;
-
int LabelCount;
int LabelSpace;
tBC_Op **Labels;
// NOTE: These fields are invalid after compilation
int VariableCount;
int VariableSpace;
- const char **VariableNames; // Only type needs to be stored
+ const char **VariableNames;
int CurContextDepth; // Used to get the real var count
int OperationCount;
tBC_Op *Operations;
tBC_Op *OperationsEnd;
-
- int ArgumentCount;
- struct {
- char *Name;
- int Type;
- } Arguments[];
};
#endif