xine-lib  1.2.10
goomsl_private.h
Go to the documentation of this file.
1 #ifndef _GSL_PRIVATE_H
2 #define _GSL_PRIVATE_H
3 
4 /* -- internal use -- */
5 
6 #include "goomsl.h"
7 
8 #ifdef USE_JITC_X86
9 #include "jitc_x86.h"
10 #endif
11 
12 #include "goomsl_heap.h"
13 
14 /* {{{ type of nodes */
15 #define EMPTY_NODE 0
16 #define CONST_INT_NODE 1
17 #define CONST_FLOAT_NODE 2
18 #define CONST_PTR_NODE 3
19 #define VAR_NODE 4
20 #define PARAM_NODE 5
21 #define READ_PARAM_NODE 6
22 #define OPR_NODE 7
23 /* }}} */
24 /* {{{ type of operations */
25 #define OPR_SET 1
26 #define OPR_IF 2
27 #define OPR_WHILE 3
28 #define OPR_BLOCK 4
29 #define OPR_ADD 5
30 #define OPR_MUL 6
31 #define OPR_EQU 7
32 #define OPR_NOT 8
33 #define OPR_LOW 9
34 #define OPR_DIV 10
35 #define OPR_SUB 11
36 #define OPR_FUNC_INTRO 12
37 #define OPR_FUNC_OUTRO 13
38 #define OPR_CALL 14
39 #define OPR_EXT_CALL 15
40 #define OPR_PLUS_EQ 16
41 #define OPR_SUB_EQ 17
42 #define OPR_MUL_EQ 18
43 #define OPR_DIV_EQ 19
44 #define OPR_CALL_EXPR 20
45 #define OPR_AFFECT_LIST 21
46 #define OPR_FOREACH 22
47 #define OPR_VAR_LIST 23
48 
49 /* }}} */
50 
51 typedef struct _ConstIntNodeType { /* {{{ */
52  int val;
53 } ConstIntNodeType; /* }}} */
54 typedef struct _ConstFloatNodeType { /* {{{ */
55  float val;
56 } ConstFloatNodeType; /* }}} */
57 typedef struct _ConstPtrNodeType { /* {{{ */
58  int id;
59 } ConstPtrNodeType; /* }}} */
60 typedef struct _OprNodeType { /* {{{ */
61  int type;
62  int nbOp;
63  struct _NODE_TYPE *op[3]; /* maximal number of operand needed */
64  struct _NODE_TYPE *next;
65 } OprNodeType; /* }}} */
66 typedef struct _NODE_TYPE { /* {{{ */
67  int type;
68  char *str;
71  union {
76  } unode;
77 } NodeType; /* }}} */
78 typedef struct _INSTRUCTION_DATA { /* {{{ */
79 
80  union {
81  void *var;
82  int *var_int;
83  int *var_ptr;
84  float *var_float;
87  } udest;
88 
89  union {
90  void *var;
91  int *var_int;
92  int *var_ptr;
93  float *var_float;
94  int value_int;
95  int value_ptr;
96  float value_float;
97  } usrc;
99 /* }}} */
100 typedef struct _INSTRUCTION { /* {{{ */
101 
102  int id;
105  const char *name; /* name of the instruction */
106 
107  char **params; /* parametres de l'instruction */
109  int *types; /* type des parametres de l'instruction */
111  int nb_param;
112 
113  int address;
114  char *jump_label;
115  char *nop_label;
116 
118 
119 } Instruction;
120 /* }}} */
121 typedef struct _INSTRUCTION_FLOW { /* {{{ */
122 
124  int number;
125  int tabsize;
128 /* }}} */
129 typedef struct _FAST_INSTRUCTION { /* {{{ */
130  int id;
134 /* }}} */
135 typedef struct _FastInstructionFlow { /* {{{ */
136  int number;
140 /* }}} */
141 typedef struct _ExternalFunctionStruct { /* {{{ */
146 /* }}} */
147 typedef struct _Block {
148  int data;
149  int size;
150 } Block;
151 typedef struct _GSL_StructField { /* {{{ */
152  int type;
153  char name[256];
154  int offsetInStruct; /* Where this field is stored... */
156  /* }}} */
157 typedef struct _GSL_Struct { /* {{{ */
158  int nbFields;
160  int size;
163 } GSL_Struct;
164  /* }}} */
165 struct _GoomSL { /* {{{ */
167  Instruction *instr; /* instruction en cours de construction */
168 
169  InstructionFlow *iflow; /* flow d'instruction 'normal' */
170  FastInstructionFlow *fastiflow; /* flow d'instruction optimise */
171 
172  GoomHash *vars; /* table de variables */
175 
176  GoomHash *functions; /* table des fonctions externes */
177 
178  GoomHeap *data_heap; /* GSL Heap-like memory space */
179 
184 
185  int nbPtr;
187  void **ptrArray;
188 
190 #ifdef USE_JITC_X86
191  JitcX86Env *jitc;
192  JitcFunc jitc_func;
193 #endif
194 }; /* }}} */
195 
196 extern GoomSL *currentGoomSL;
197 
198 Instruction *gsl_instr_init(GoomSL *parent, const char *name, int id, int nb_param, int line_number);
199 void gsl_instr_add_param(Instruction *_this, const char *param, int type);
201 
202 void gsl_declare_task(const char *name);
203 void gsl_declare_external_task(const char *name);
204 
205 int gsl_type_of_var(GoomHash *namespace, const char *name);
206 
207 void gsl_enternamespace(const char *name);
210 GoomHash *gsl_find_namespace(const char *name);
211 
212 void gsl_commit_compilation(void);
213 
214 /* #define TYPE_PARAM 1 */
215 
216 #define FIRST_RESERVED 0x80000
217 
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
223 
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
229 
230 #define INSTR_JUMP 6
231 #define INSTR_JZERO 29
232 #define INSTR_CALL 36
233 #define INSTR_RET 37
234 #define INSTR_EXT_CALL 38
235 #define INSTR_JNZERO 40
236 
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
249 
250 
251 #endif
_ConstIntNodeType::val
int val
Definition: goomsl_private.h:52
yy_state_type
int yy_state_type
Definition: goomsl_lex.c:344
LINE_COMMENT
#define LINE_COMMENT
Definition: goomsl_lex.c:645
goomsl_heap.h
_INSTRUCTION::name
const char * name
Definition: goomsl_private.h:105
yy_flex_strncpy
static void yy_flex_strncpy(char *, char *, int)
Definition: goomsl_lex.c:2060
_INSTRUCTION::vnamespace
GoomHash ** vnamespace
Definition: goomsl_private.h:108
yy_buffer_state::yy_buf_pos
char * yy_buf_pos
Definition: goomsl_lex.c:199
gsl_declare_task
void gsl_declare_task(const char *name)
Definition: goomsl.c:844
_INSTRUCTION::data
InstructionData data
Definition: goomsl_private.h:103
_INSTRUCTION::nop_label
char * nop_label
Definition: goomsl_private.h:115
_INSTRUCTION_FLOW
Definition: goomsl_private.h:121
_INSTRUCTION_FLOW::tabsize
int tabsize
Definition: goomsl_private.h:125
YY_DO_BEFORE_ACTION
#define YY_DO_BEFORE_ACTION
Definition: goomsl_lex.c:361
currentGoomSL
GoomSL * currentGoomSL
Definition: goomsl_lex.c:635
_INSTRUCTION::cur_param
int cur_param
Definition: goomsl_private.h:110
_INSTRUCTION::address
int address
Definition: goomsl_private.h:113
yy_nxt
static flex_int16_t yy_nxt[276]
Definition: goomsl_lex.c:515
LTYPE_VAR
#define LTYPE_VAR
Definition: goomsl_yacc.c:81
yy_delete_buffer
void yy_delete_buffer(YY_BUFFER_STATE b)
Definition: goomsl_lex.c:1666
yy_create_buffer
YY_BUFFER_STATE yy_create_buffer(FILE *file, int size)
Definition: goomsl_lex.c:1638
_INSTRUCTION_DATA::jump_offset
int jump_offset
Definition: goomsl_private.h:85
yyleng
int yyleng
Definition: goomsl_lex.c:280
yypop_buffer_state
void yypop_buffer_state(void)
Definition: goomsl_lex.c:1776
_NODE_TYPE::opr
OprNodeType opr
Definition: goomsl_private.h:75
gsl_leavenamespace
GoomHash * gsl_leavenamespace(void)
Definition: goomsl.c:828
_INSTRUCTION_DATA::var_float
float * var_float
Definition: goomsl_private.h:84
_INSTRUCTION_DATA::value_int
int value_int
Definition: goomsl_private.h:94
_GSL_StructField::type
int type
Definition: goomsl_private.h:152
yy_trans_info
Definition: goomsl_lex.c:378
YY_START
#define YY_START
Definition: goomsl_lex.c:122
_OprNodeType::type
int type
Definition: goomsl_private.h:61
_GoomSL::num_lines
int num_lines
Definition: goomsl_private.h:166
flex_uint32_t
unsigned int flex_uint32_t
Definition: goomsl_lex.c:48
_ConstPtrNodeType::id
int id
Definition: goomsl_private.h:58
yy_scan_bytes
YY_BUFFER_STATE yy_scan_bytes(char *bytes, int len)
Definition: goomsl_lex.c:1890
_INSTRUCTION_DATA::var_int
int * var_int
Definition: goomsl_private.h:82
_GSL_Struct
Definition: goomsl_private.h:157
_GoomSL::namespaces
GoomHash * namespaces[16]
Definition: goomsl_private.h:174
_GoomSL::gsl_struct
GSL_Struct ** gsl_struct
Definition: goomsl_private.h:182
EXTERNAL
#define EXTERNAL
Definition: goomsl_yacc.c:87
yy_flex_debug
int yy_flex_debug
Definition: goomsl_lex.c:591
yy_base
static flex_int16_t yy_base[159]
Definition: goomsl_lex.c:473
YY_FATAL_ERROR
#define YY_FATAL_ERROR(msg)
Definition: goomsl_lex.c:754
yylex
int yylex(void)
Definition: goomsl_lex.c:790
yyin
FILE * yyin
Definition: goomsl_lex.c:342
gsl_malloc
int gsl_malloc(GoomSL *_this, int size)
Definition: goomsl.c:783
yy_switch_to_buffer
void yy_switch_to_buffer(YY_BUFFER_STATE new_buffer)
Definition: goomsl_lex.c:1593
yy_buffer_state
Definition: goomsl_lex.c:194
_INSTRUCTION_FLOW::labels
GoomHash * labels
Definition: goomsl_private.h:126
EOB_ACT_CONTINUE_SCAN
#define EOB_ACT_CONTINUE_SCAN
Definition: goomsl_lex.c:147
GoomSL_ExternalFunction
void(* GoomSL_ExternalFunction)(GoomSL *gsl, GoomHash *global_vars, GoomHash *local_vars)
Definition: goomsl.h:7
YY_MORE_ADJ
#define YY_MORE_ADJ
Definition: goomsl_lex.c:611
_GoomSL::ptrArray
void ** ptrArray
Definition: goomsl_private.h:187
yy_scan_buffer
YY_BUFFER_STATE yy_scan_buffer(char *base, yy_size_t size)
Definition: goomsl_lex.c:1840
YY_CURRENT_BUFFER_LVALUE
#define YY_CURRENT_BUFFER_LVALUE
Definition: goomsl_lex.c:275
YY_RULE_SETUP
#define YY_RULE_SETUP
Definition: goomsl_lex.c:782
_INSTRUCTION_DATA::usrc
union _INSTRUCTION_DATA::@42 usrc
YY_BUFFER_NEW
#define YY_BUFFER_NEW
Definition: goomsl_lex.c:240
LTYPE_INTEGER
#define LTYPE_INTEGER
Definition: goomsl_yacc.c:79
_INSTRUCTION::params
char ** params
Definition: goomsl_private.h:107
FOR
#define FOR
Definition: goomsl_yacc.c:99
yy_def
static flex_int16_t yy_def[159]
Definition: goomsl_lex.c:494
ConstPtrNodeType
struct _ConstPtrNodeType ConstPtrNodeType
GSL_StructField
struct _GSL_StructField GSL_StructField
yy_init
static int yy_init
Definition: goomsl_lex.c:284
YY_BUFFER_EOF_PENDING
#define YY_BUFFER_EOF_PENDING
Definition: goomsl_lex.c:252
yy_size_t
unsigned int yy_size_t
Definition: goomsl_lex.c:189
yyensure_buffer_stack
static void yyensure_buffer_stack(void)
Definition: goomsl_lex.c:1795
YY_RESTORE_YY_MORE_OFFSET
#define YY_RESTORE_YY_MORE_OFFSET
Definition: goomsl_lex.c:612
gsl_type_of_var
int gsl_type_of_var(GoomHash *namespace, const char *name)
Definition: goomsl_yacc.c:358
ConstFloatNodeType
struct _ConstFloatNodeType ConstFloatNodeType
_INSTRUCTION_DATA::value_float
float value_float
Definition: goomsl_private.h:96
_ConstIntNodeType
Definition: goomsl_private.h:51
_INSTRUCTION::jump_label
char * jump_label
Definition: goomsl_private.h:114
yy_buffer_state::yy_at_bol
int yy_at_bol
Definition: goomsl_lex.c:228
YY_BUFFER_NORMAL
#define YY_BUFFER_NORMAL
Definition: goomsl_lex.c:241
_GoomSL::currentNS
int currentNS
Definition: goomsl_private.h:173
gsl_instr_add_param
void gsl_instr_add_param(Instruction *_this, const char *param, int type)
Definition: goomsl.c:141
PLUS_EQ
#define PLUS_EQ
Definition: goomsl_yacc.c:91
yy_get_next_buffer
static int yy_get_next_buffer(void)
Definition: goomsl_lex.c:1302
YY_DECL
#define YY_DECL
Definition: goomsl_lex.c:767
yy_buffer_stack_top
static size_t yy_buffer_stack_top
Definition: goomsl_lex.c:258
_OprNodeType::nbOp
int nbOp
Definition: goomsl_private.h:62
GSL_Struct
struct _GSL_Struct GSL_Struct
yy_buffer_state::yy_is_our_buffer
int yy_is_our_buffer
Definition: goomsl_lex.c:215
_NODE_TYPE
Definition: goomsl_private.h:66
goomsl.h
_NODE_TYPE::unode
union _NODE_TYPE::@40 unode
_FastInstructionFlow::instr
FastInstruction * instr
Definition: goomsl_private.h:137
YY_BUFFER_STATE
struct yy_buffer_state * YY_BUFFER_STATE
Definition: goomsl_lex.c:140
_INSTRUCTION_DATA::var
void * var
Definition: goomsl_private.h:81
YY_NEW_FILE
#define YY_NEW_FILE
Definition: goomsl_lex.c:129
_INSTRUCTION_DATA
Definition: goomsl_private.h:78
YYSTYPE::strValue
char strValue[2048]
Definition: goomsl_yacc.c:1319
gsl_commit_compilation
void gsl_commit_compilation(void)
Definition: goomsl_yacc.c:1150
STRUCT
#define STRUCT
Definition: goomsl_yacc.c:98
_FAST_INSTRUCTION
Definition: goomsl_private.h:129
YY_STATE_EOF
#define YY_STATE_EOF(state)
Definition: goomsl_lex.c:126
YY_INPUT
#define YY_INPUT(buf, result, max_size)
Definition: goomsl_lex.c:707
yy_more_offset
static int yy_more_offset
Definition: goomsl_lex.c:607
yywrap
int yywrap(void)
Definition: goomsl_lex.c:2119
gsl_instr_init
Instruction * gsl_instr_init(GoomSL *parent, const char *name, int id, int nb_param, int line_number)
Definition: goomsl.c:175
yy_load_buffer_state
static void yy_load_buffer_state(void)
Definition: goomsl_lex.c:1624
YY_SC_TO_UI
#define YY_SC_TO_UI(c)
Definition: goomsl_lex.c:110
Instruction
struct _INSTRUCTION Instruction
_GoomSL::iflow
InstructionFlow * iflow
Definition: goomsl_private.h:169
_INSTRUCTION_DATA::value_ptr
int value_ptr
Definition: goomsl_private.h:95
yy_fatal_error
static void yy_fatal_error(char msg[])
yy_init_buffer
static void yy_init_buffer(YY_BUFFER_STATE b, FILE *file)
Definition: goomsl_lex.c:1689
_INSTRUCTION::id
int id
Definition: goomsl_private.h:102
NULL
NULL
Definition: xine_plugin.c:78
_INSTRUCTION_FLOW::number
int number
Definition: goomsl_private.h:124
YY_READ_BUF_SIZE
#define YY_READ_BUF_SIZE
Definition: goomsl_lex.c:692
YY_BUF_SIZE
#define YY_BUF_SIZE
Definition: goomsl_lex.c:135
gsl_reenternamespace
void gsl_reenternamespace(GoomHash *ns)
Definition: goomsl.c:823
yy_full_match
static char * yy_full_match
Definition: goomsl_lex.c:594
yy_flush_buffer
void yy_flush_buffer(YY_BUFFER_STATE b)
Definition: goomsl_lex.c:1717
LOW_EQ
#define LOW_EQ
Definition: goomsl_yacc.c:96
yy_buffer_state::yy_fill_buffer
int yy_fill_buffer
Definition: goomsl_lex.c:236
FastInstruction
struct _FAST_INSTRUCTION FastInstruction
LTYPE_FLOAT
#define LTYPE_FLOAT
Definition: goomsl_yacc.c:80
gsl_enternamespace
void gsl_enternamespace(const char *name)
Definition: goomsl.c:809
C_COMMENT
#define C_COMMENT
Definition: goomsl_lex.c:644
yy_ec
static flex_int32_t yy_ec[256]
Definition: goomsl_lex.c:432
NOT_EQ
#define NOT_EQ
Definition: goomsl_yacc.c:97
yyalloc
void * yyalloc(yy_size_t)
Definition: goomsl_lex.c:2079
SUP_EQ
#define SUP_EQ
Definition: goomsl_yacc.c:95
_INSTRUCTION::nb_param
int nb_param
Definition: goomsl_private.h:111
NodeType
struct _NODE_TYPE NodeType
_GoomSL::instr
Instruction * instr
Definition: goomsl_private.h:167
_OprNodeType::op
struct _NODE_TYPE * op[3]
Definition: goomsl_private.h:63
_OprNodeType::next
struct _NODE_TYPE * next
Definition: goomsl_private.h:64
yy_buffer_state::yy_input_file
FILE * yy_input_file
Definition: goomsl_lex.c:196
GOOM_HASH
Definition: goomsl_hash.h:20
EOB_ACT_LAST_MATCH
#define EOB_ACT_LAST_MATCH
Definition: goomsl_lex.c:149
YY_BREAK
#define YY_BREAK
Definition: goomsl_lex.c:779
gsl_declare_external_task
void gsl_declare_external_task(const char *name)
Definition: goomsl.c:858
currentGoomSL
GoomSL * currentGoomSL
Definition: goomsl_lex.c:635
_INSTRUCTION::types
int * types
Definition: goomsl_private.h:109
_INSTRUCTION_FLOW::instr
Instruction ** instr
Definition: goomsl_private.h:123
_FastInstructionFlow
Definition: goomsl_private.h:135
_INSTRUCTION_DATA::external_function
struct _ExternalFunctionStruct * external_function
Definition: goomsl_private.h:86
_GSL_Struct::fields
GSL_StructField * fields[64]
Definition: goomsl_private.h:159
_GSL_Struct::fBlock
Block fBlock[64]
Definition: goomsl_private.h:162
OprNodeType
struct _OprNodeType OprNodeType
EOB_ACT_END_OF_FILE
#define EOB_ACT_END_OF_FILE
Definition: goomsl_lex.c:148
YYLMAX
#define YYLMAX
Definition: goomsl_lex.c:618
_GSL_Struct::size
int size
Definition: goomsl_private.h:160
flex_int8_t
signed char flex_int8_t
Definition: goomsl_lex.c:43
_Block::data
int data
Definition: goomsl_private.h:148
yy_buffer_stack_max
static size_t yy_buffer_stack_max
Definition: goomsl_lex.c:259
yy_acclist
static flex_int16_t yy_acclist[214]
Definition: goomsl_lex.c:383
yy_start
static int yy_start
Definition: goomsl_lex.c:285
YY_AT_BOL
#define YY_AT_BOL()
Definition: goomsl_lex.c:336
yy_buffer_state::yy_ch_buf
char * yy_ch_buf
Definition: goomsl_lex.c:198
ConstIntNodeType
struct _ConstIntNodeType ConstIntNodeType
yyunput
static void yyunput(int c, char *buf_ptr)
_GoomSL::ptrArraySize
int ptrArraySize
Definition: goomsl_private.h:186
yyconst
#define yyconst
Definition: goomsl_lex.c:99
_GoomSL::structIDS
GoomHash * structIDS
Definition: goomsl_private.h:181
yy_buffer_stack
static YY_BUFFER_STATE * yy_buffer_stack
Definition: goomsl_lex.c:260
gsl_find_namespace
GoomHash * gsl_find_namespace(const char *name)
Definition: goomsl.c:834
_Block
Definition: goomsl_private.h:147
yy_lp
static int yy_lp
Definition: goomsl_lex.c:595
YY_CHAR
unsigned char YY_CHAR
Definition: goomsl_lex.c:340
yy_state_buf
static yy_state_type * yy_state_buf
Definition: goomsl_lex.c:593
flex_uint16_t
unsigned short int flex_uint16_t
Definition: goomsl_lex.c:47
_Block::size
int size
Definition: goomsl_private.h:149
InstructionData
struct _INSTRUCTION_DATA InstructionData
STRING
#define STRING
Definition: goomsl_lex.c:646
_INSTRUCTION
Definition: goomsl_private.h:100
_NODE_TYPE::vnamespace
GoomHash * vnamespace
Definition: goomsl_private.h:69
yyerror
void yyerror(const char *)
Definition: goomsl_yacc.c:2989
gsl_instr_set_namespace
void gsl_instr_set_namespace(Instruction *_this, GoomHash *ns)
Definition: goomsl.c:132
yytext_ptr
char * yytext_ptr
Definition: goomsl_lex.c:622
_NODE_TYPE::line_number
int line_number
Definition: goomsl_private.h:70
yy_buffer_state::yy_buffer_status
int yy_buffer_status
Definition: goomsl_lex.c:238
yyrestart
void yyrestart(FILE *input_file)
Definition: goomsl_lex.c:1576
yy_buffer_state::yy_buf_size
yy_size_t yy_buf_size
Definition: goomsl_lex.c:204
name
const char name[16]
Definition: memcpy.c:569
_FastInstructionFlow::mallocedInstr
void * mallocedInstr
Definition: goomsl_private.h:138
_ConstFloatNodeType::val
float val
Definition: goomsl_private.h:55
Block
struct _Block Block
PTR_TK
#define PTR_TK
Definition: goomsl_yacc.c:83
_GoomSL::vars
GoomHash * vars
Definition: goomsl_private.h:172
yylval
YYSTYPE yylval
Definition: goomsl_yacc.c:2118
yy_trans_info::yy_nxt
flex_int32_t yy_nxt
Definition: goomsl_lex.c:381
_ExternalFunctionStruct
Definition: goomsl_private.h:141
yy_state_ptr
static yy_state_type * yy_state_ptr
Definition: goomsl_lex.c:593
_GSL_StructField
Definition: goomsl_private.h:151
INITIAL
#define INITIAL
Definition: goomsl_lex.c:643
goomsl_private.h
yytext
char yytext[]
Definition: goomsl_lex.c:621
yyfree
void yyfree(void *)
Definition: goomsl_lex.c:2096
yy_trans_info::yy_verify
flex_int32_t yy_verify
Definition: goomsl_lex.c:380
yylineno
int yylineno
Definition: goomsl_lex.c:349
yyparse
void yyparse(void)
Definition: goomsl_yacc.c:2142
yy_c_buf_p
static char * yy_c_buf_p
Definition: goomsl_lex.c:283
yy_buffer_state::yy_bs_column
int yy_bs_column
Definition: goomsl_lex.c:231
yy_buffer_state::yy_n_chars
int yy_n_chars
Definition: goomsl_lex.c:209
yy_try_NUL_trans
static yy_state_type yy_try_NUL_trans(yy_state_type current_state)
Definition: goomsl_lex.c:1431
_ExternalFunctionStruct::is_extern
int is_extern
Definition: goomsl_private.h:144
_GSL_Struct::nbFields
int nbFields
Definition: goomsl_private.h:158
DECLARE
#define DECLARE
Definition: goomsl_yacc.c:86
_FastInstructionFlow::number
int number
Definition: goomsl_private.h:136
YY_END_OF_BUFFER_CHAR
#define YY_END_OF_BUFFER_CHAR
Definition: goomsl_lex.c:131
yy_buffer_state::yy_is_interactive
int yy_is_interactive
Definition: goomsl_lex.c:222
_GoomSL::data_heap
GoomHeap * data_heap
Definition: goomsl_private.h:178
_GSL_Struct::iBlock
Block iBlock[64]
Definition: goomsl_private.h:161
_NODE_TYPE::type
int type
Definition: goomsl_private.h:67
yy_accept
static flex_int16_t yy_accept[152]
Definition: goomsl_lex.c:411
DO
#define DO
Definition: goomsl_yacc.c:89
_GoomSL::compilationOK
int compilationOK
Definition: goomsl_private.h:189
_FAST_INSTRUCTION::proto
Instruction * proto
Definition: goomsl_private.h:132
goomsl_yacc.h
flex_uint8_t
unsigned char flex_uint8_t
Definition: goomsl_lex.c:46
InstructionFlow
struct _INSTRUCTION_FLOW InstructionFlow
_INSTRUCTION::parent
GoomSL * parent
Definition: goomsl_private.h:104
string_size
static int string_size
Definition: goomsl_lex.c:636
yy_rule_can_match_eol
static flex_int32_t yy_rule_can_match_eol[50]
Definition: goomsl_lex.c:584
_GoomSL
Definition: goomsl_private.h:165
yy_meta
static flex_int32_t yy_meta[51]
Definition: goomsl_lex.c:464
_OprNodeType
Definition: goomsl_private.h:60
_GoomSL::nbPtr
int nbPtr
Definition: goomsl_private.h:185
yy_chk
static flex_int16_t yy_chk[276]
Definition: goomsl_lex.c:549
_NODE_TYPE::constInt
ConstIntNodeType constInt
Definition: goomsl_private.h:72
flex_int32_t
int flex_int32_t
Definition: goomsl_lex.c:45
ECHO
#define ECHO
Definition: goomsl_lex.c:700
yy_n_chars
static int yy_n_chars
Definition: goomsl_lex.c:279
SUB_EQ
#define SUB_EQ
Definition: goomsl_yacc.c:92
_GoomSL::nbStructID
int nbStructID
Definition: goomsl_private.h:180
INT_TK
#define INT_TK
Definition: goomsl_yacc.c:84
FastInstructionFlow
struct _FastInstructionFlow FastInstructionFlow
YY_EXIT_FAILURE
#define YY_EXIT_FAILURE
Definition: goomsl_lex.c:1921
YYSTYPE::charValue
char charValue
Definition: goomsl_yacc.c:1318
_NODE_TYPE::constFloat
ConstFloatNodeType constFloat
Definition: goomsl_private.h:73
FLOAT_TK
#define FLOAT_TK
Definition: goomsl_yacc.c:85
WHILE
#define WHILE
Definition: goomsl_yacc.c:88
_ExternalFunctionStruct::vars
GoomHash * vars
Definition: goomsl_private.h:143
LTYPE_PTR
#define LTYPE_PTR
Definition: goomsl_yacc.c:82
MUL_EQ
#define MUL_EQ
Definition: goomsl_yacc.c:94
ExternalFunctionStruct
struct _ExternalFunctionStruct ExternalFunctionStruct
isatty
int isatty(int)
YY_CURRENT_BUFFER
#define YY_CURRENT_BUFFER
Definition: goomsl_lex.c:268
yyout
FILE * yyout
Definition: goomsl_lex.c:145
yy_get_previous_state
static yy_state_type yy_get_previous_state(void)
Definition: goomsl_lex.c:1399
_INSTRUCTION_DATA::var_ptr
int * var_ptr
Definition: goomsl_private.h:83
yy_prev_more_offset
static int yy_prev_more_offset
Definition: goomsl_lex.c:608
_NODE_TYPE::str
char * str
Definition: goomsl_private.h:68
input
static int input(void)
Definition: goomsl_lex.c:1495
yy_scan_string
YY_BUFFER_STATE yy_scan_string(char *yy_str)
Definition: goomsl_lex.c:1877
_GoomSL::functions
GoomHash * functions
Definition: goomsl_private.h:176
yyrealloc
void * yyrealloc(void *, yy_size_t)
Definition: goomsl_lex.c:2084
_ConstPtrNodeType
Definition: goomsl_private.h:57
_NODE_TYPE::constPtr
ConstPtrNodeType constPtr
Definition: goomsl_private.h:74
_GOOM_HEAP
Definition: goomsl_heap.c:10
IN
#define IN
Definition: goomsl_yacc.c:100
flex_int16_t
short int flex_int16_t
Definition: goomsl_lex.c:44
_GoomSL::fastiflow
FastInstructionFlow * fastiflow
Definition: goomsl_private.h:170
_GoomSL::gsl_struct_size
int gsl_struct_size
Definition: goomsl_private.h:183
yypush_buffer_state
void yypush_buffer_state(YY_BUFFER_STATE new_buffer)
Definition: goomsl_lex.c:1746
_ConstFloatNodeType
Definition: goomsl_private.h:54
_FAST_INSTRUCTION::id
int id
Definition: goomsl_private.h:130
yy_buffer_state::yy_bs_lineno
int yy_bs_lineno
Definition: goomsl_lex.c:230
yy_did_buffer_switch_on_eof
static int yy_did_buffer_switch_on_eof
Definition: goomsl_lex.c:290
NOT
#define NOT
Definition: goomsl_yacc.c:90
BEGIN
#define BEGIN
Definition: goomsl_lex.c:116
DIV_EQ
#define DIV_EQ
Definition: goomsl_yacc.c:93
yy_hold_char
static char yy_hold_char
Definition: goomsl_lex.c:278
YY_END_OF_BUFFER
#define YY_END_OF_BUFFER
Definition: goomsl_lex.c:375
_INSTRUCTION_DATA::udest
union _INSTRUCTION_DATA::@41 udest
_INSTRUCTION::line_number
int line_number
Definition: goomsl_private.h:117
yyterminate
#define yyterminate()
Definition: goomsl_lex.c:744
_FAST_INSTRUCTION::data
InstructionData data
Definition: goomsl_private.h:131
_GSL_StructField::name
char name[256]
Definition: goomsl_private.h:153
_GSL_StructField::offsetInStruct
int offsetInStruct
Definition: goomsl_private.h:154