16#define CONST_INT_NODE 1
17#define CONST_FLOAT_NODE 2
18#define CONST_PTR_NODE 3
21#define READ_PARAM_NODE 6
36#define OPR_FUNC_INTRO 12
37#define OPR_FUNC_OUTRO 13
39#define OPR_EXT_CALL 15
44#define OPR_CALL_EXPR 20
45#define OPR_AFFECT_LIST 21
47#define OPR_VAR_LIST 23
216#define FIRST_RESERVED 0x80000
218#define TYPE_INTEGER 0x90001
219#define TYPE_FLOAT 0x90002
220#define TYPE_VAR 0x90003
221#define TYPE_PTR 0x90004
222#define TYPE_LABEL 0x90005
224#define TYPE_OP_EQUAL 6
225#define TYPE_IVAR 0xa0001
226#define TYPE_FVAR 0xa0002
227#define TYPE_PVAR 0xa0003
228#define TYPE_SVAR 0xa0004
231#define INSTR_JZERO 29
234#define INSTR_EXT_CALL 38
235#define INSTR_JNZERO 40
237#define INSTR_SET 0x80001
238#define INSTR_INT 0x80002
239#define INSTR_FLOAT 0x80003
240#define INSTR_PTR 0x80004
241#define INSTR_LABEL 0x80005
242#define INSTR_ISLOWER 0x80006
243#define INSTR_ADD 0x80007
244#define INSTR_MUL 0x80008
245#define INSTR_DIV 0x80009
246#define INSTR_SUB 0x80010
247#define INSTR_ISEQUAL 0x80011
248#define INSTR_NOT 0x80012
void(* GoomSL_ExternalFunction)(GoomSL *gsl, GoomHash *global_vars, GoomHash *local_vars)
Definition: goomsl.h:7
void gsl_declare_external_task(const char *name)
Definition: goomsl.c:858
struct _INSTRUCTION Instruction
Instruction * gsl_instr_init(GoomSL *parent, const char *name, int id, int nb_param, int line_number)
Definition: goomsl.c:175
void gsl_declare_task(const char *name)
Definition: goomsl.c:844
struct _INSTRUCTION_FLOW InstructionFlow
void gsl_instr_add_param(Instruction *_this, const char *param, int type)
Definition: goomsl.c:141
struct _NODE_TYPE NodeType
int gsl_type_of_var(GoomHash *namespace, const char *name)
Definition: goomsl_yacc.c:358
struct _ExternalFunctionStruct ExternalFunctionStruct
struct _FastInstructionFlow FastInstructionFlow
GoomHash * gsl_leavenamespace(void)
Definition: goomsl.c:828
void gsl_instr_set_namespace(Instruction *_this, GoomHash *ns)
Definition: goomsl.c:132
void gsl_commit_compilation(void)
Definition: goomsl_yacc.c:1150
struct _INSTRUCTION_DATA InstructionData
struct _ConstFloatNodeType ConstFloatNodeType
struct _GSL_Struct GSL_Struct
struct _GSL_StructField GSL_StructField
void gsl_reenternamespace(GoomHash *ns)
Definition: goomsl.c:823
struct _ConstIntNodeType ConstIntNodeType
GoomSL * currentGoomSL
Definition: goomsl_lex.c:635
GoomHash * gsl_find_namespace(const char *name)
Definition: goomsl.c:834
void gsl_enternamespace(const char *name)
Definition: goomsl.c:809
struct _FAST_INSTRUCTION FastInstruction
struct _ConstPtrNodeType ConstPtrNodeType
struct _OprNodeType OprNodeType
const char name[16]
Definition: memcpy.c:570
Definition: goomsl_hash.h:20
Definition: goomsl_private.h:147
int data
Definition: goomsl_private.h:148
int size
Definition: goomsl_private.h:149
Definition: goomsl_private.h:54
float val
Definition: goomsl_private.h:55
Definition: goomsl_private.h:51
int val
Definition: goomsl_private.h:52
Definition: goomsl_private.h:57
int id
Definition: goomsl_private.h:58
Definition: goomsl_private.h:141
int is_extern
Definition: goomsl_private.h:144
GoomSL_ExternalFunction function
Definition: goomsl_private.h:142
GoomHash * vars
Definition: goomsl_private.h:143
Definition: goomsl_private.h:129
Instruction * proto
Definition: goomsl_private.h:132
InstructionData data
Definition: goomsl_private.h:131
int id
Definition: goomsl_private.h:130
Definition: goomsl_private.h:135
void * mallocedInstr
Definition: goomsl_private.h:138
FastInstruction * instr
Definition: goomsl_private.h:137
int number
Definition: goomsl_private.h:136
Definition: goomsl_heap.c:10
Definition: goomsl_private.h:151
int offsetInStruct
Definition: goomsl_private.h:154
int type
Definition: goomsl_private.h:152
char name[256]
Definition: goomsl_private.h:153
Definition: goomsl_private.h:157
GSL_StructField * fields[64]
Definition: goomsl_private.h:159
Block iBlock[64]
Definition: goomsl_private.h:161
int nbFields
Definition: goomsl_private.h:158
Block fBlock[64]
Definition: goomsl_private.h:162
int size
Definition: goomsl_private.h:160
Definition: goomsl_private.h:165
int nbPtr
Definition: goomsl_private.h:185
InstructionFlow * iflow
Definition: goomsl_private.h:169
int ptrArraySize
Definition: goomsl_private.h:186
GoomHash * namespaces[16]
Definition: goomsl_private.h:174
GSL_Struct ** gsl_struct
Definition: goomsl_private.h:182
int num_lines
Definition: goomsl_private.h:166
GoomHash * functions
Definition: goomsl_private.h:176
GoomHeap * data_heap
Definition: goomsl_private.h:178
FastInstructionFlow * fastiflow
Definition: goomsl_private.h:170
int nbStructID
Definition: goomsl_private.h:180
GoomHash * vars
Definition: goomsl_private.h:172
int currentNS
Definition: goomsl_private.h:173
GoomHash * structIDS
Definition: goomsl_private.h:181
Instruction * instr
Definition: goomsl_private.h:167
int gsl_struct_size
Definition: goomsl_private.h:183
int compilationOK
Definition: goomsl_private.h:189
void ** ptrArray
Definition: goomsl_private.h:187
Definition: goomsl_private.h:78
int value_int
Definition: goomsl_private.h:94
void * var
Definition: goomsl_private.h:81
union _INSTRUCTION_DATA::@43 udest
float value_float
Definition: goomsl_private.h:96
union _INSTRUCTION_DATA::@44 usrc
float * var_float
Definition: goomsl_private.h:84
int value_ptr
Definition: goomsl_private.h:95
struct _ExternalFunctionStruct * external_function
Definition: goomsl_private.h:86
int jump_offset
Definition: goomsl_private.h:85
int * var_ptr
Definition: goomsl_private.h:83
int * var_int
Definition: goomsl_private.h:82
Definition: goomsl_private.h:121
Instruction ** instr
Definition: goomsl_private.h:123
GoomHash * labels
Definition: goomsl_private.h:126
int number
Definition: goomsl_private.h:124
int tabsize
Definition: goomsl_private.h:125
Definition: goomsl_private.h:100
char * nop_label
Definition: goomsl_private.h:115
GoomSL * parent
Definition: goomsl_private.h:104
const char * name
Definition: goomsl_private.h:105
GoomHash ** vnamespace
Definition: goomsl_private.h:108
int line_number
Definition: goomsl_private.h:117
int nb_param
Definition: goomsl_private.h:111
int id
Definition: goomsl_private.h:102
char ** params
Definition: goomsl_private.h:107
InstructionData data
Definition: goomsl_private.h:103
char * jump_label
Definition: goomsl_private.h:114
int * types
Definition: goomsl_private.h:109
int address
Definition: goomsl_private.h:113
int cur_param
Definition: goomsl_private.h:110
Definition: goomsl_private.h:66
OprNodeType opr
Definition: goomsl_private.h:75
GoomHash * vnamespace
Definition: goomsl_private.h:69
int type
Definition: goomsl_private.h:67
ConstIntNodeType constInt
Definition: goomsl_private.h:72
union _NODE_TYPE::@42 unode
int line_number
Definition: goomsl_private.h:70
char * str
Definition: goomsl_private.h:68
ConstFloatNodeType constFloat
Definition: goomsl_private.h:73
ConstPtrNodeType constPtr
Definition: goomsl_private.h:74
Definition: goomsl_private.h:60
struct _NODE_TYPE * next
Definition: goomsl_private.h:64
struct _NODE_TYPE * op[3]
Definition: goomsl_private.h:63
int type
Definition: goomsl_private.h:61
int nbOp
Definition: goomsl_private.h:62