Go to the documentation of this file.
26 #define GSL_LOCAL_PTR(gsl,local,name) gsl_get_ptr(gsl, *(int*)goom_hash_get(local,name)->ptr)
27 #define GSL_LOCAL_INT(gsl,local,name) (*(int*)goom_hash_get(local,name)->ptr)
28 #define GSL_LOCAL_FLOAT(gsl,local,name) (*(float*)goom_hash_get(local,name)->ptr)
30 #define GSL_GLOBAL_PTR(gsl,name) gsl_get_ptr(gsl, *(int*)goom_hash_get(gsl_globals(gsl),name)->ptr)
31 #define GSL_GLOBAL_INT(gsl,name) (*(int*)goom_hash_get(gsl_globals(gsl),name)->ptr)
32 #define GSL_GLOBAL_FLOAT(gsl,name) (*(float*)goom_hash_get(gsl_globals(gsl),name)->ptr)
const char * name
Definition: goomsl_private.h:105
void gsl_reenternamespace(GoomHash *nsinfo)
Definition: goomsl.c:823
GoomHash ** vnamespace
Definition: goomsl_private.h:108
static void gsl_instr_display(Instruction *_this)
Definition: goomsl.c:200
GoomSL_ExternalFunction function
Definition: goomsl_private.h:142
void gsl_declare_task(const char *name)
Definition: goomsl.c:844
void goom_hash_put_int(GoomHash *_this, const char *key, int i)
Definition: goomsl_hash.c:90
InstructionData data
Definition: goomsl_private.h:103
char * nop_label
Definition: goomsl_private.h:115
Definition: goomsl_private.h:121
int tabsize
Definition: goomsl_private.h:125
void * gsl_get_ptr(GoomSL *_this, int id)
Definition: goomsl.c:793
GoomSL * currentGoomSL
Definition: goomsl_lex.c:635
int cur_param
Definition: goomsl_private.h:110
int address
Definition: goomsl_private.h:113
#define TYPE_PTR
Definition: goomsl_private.h:221
static void ext_f2i(GoomSL *gsl, GoomHash *global, GoomHash *local)
Definition: goomsl.c:1323
int jump_offset
Definition: goomsl_private.h:85
void *(*const function)(void *to, const void *from, size_t len)
Definition: memcpy.c:570
#define INSTR_SUBI_VAR_VAR
Definition: goomsl.c:25
float * var_float
Definition: goomsl_private.h:84
int value_int
Definition: goomsl_private.h:94
static void iflow_clean(InstructionFlow *_this)
Definition: goomsl.c:102
#define TYPE_VAR
Definition: goomsl_private.h:220
int num_lines
Definition: goomsl_private.h:166
GoomSL * gsl_new(void)
Definition: goomsl.c:1387
#define INSTR_ISLOWERI_VAR_VAR
Definition: goomsl.c:30
void gsl_instr_set_namespace(Instruction *_this, GoomHash *ns)
Definition: goomsl.c:132
void yy_scan_string(const char *str)
int * var_int
Definition: goomsl_private.h:82
Definition: goomsl_private.h:157
#define VALIDATE_NO_SUCH_SRC_VAR
Definition: goomsl.c:72
#define INSTR_ADDF_VAR_FLOAT
Definition: goomsl.c:34
GoomHash * namespaces[16]
Definition: goomsl_private.h:174
GSL_Struct ** gsl_struct
Definition: goomsl_private.h:182
#define INSTR_ISEQUALF_VAR_FLOAT
Definition: goomsl.c:50
int i
Definition: goomsl_hash.h:9
void goom_hash_put_ptr(GoomHash *_this, const char *key, void *ptr)
Definition: goomsl_hash.c:102
#define INSTR_ISEQUALF_VAR_VAR
Definition: goomsl.c:49
#define INSTR_DIVS_VAR_VAR
Definition: goomsl.c:61
void gsl_execute(GoomSL *scanner)
Definition: goomsl.c:1376
#define INSTR_SUBF_VAR_FLOAT
Definition: goomsl.c:26
int gsl_malloc(GoomSL *_this, int size)
Definition: goomsl.c:783
GoomHash * labels
Definition: goomsl_private.h:126
GoomHeap * goom_heap_new(void)
Definition: goomsl_heap.c:18
void(* GoomSL_ExternalFunction)(GoomSL *gsl, GoomHash *global_vars, GoomHash *local_vars)
Definition: goomsl.h:7
void ** ptrArray
Definition: goomsl_private.h:187
int gsl_is_compiled(GoomSL *gss)
Definition: goomsl.c:1424
union _INSTRUCTION_DATA::@42 usrc
void gsl_free_ptr(GoomSL *_this, int id)
Definition: goomsl.c:801
char ** params
Definition: goomsl_private.h:107
#define SRC_STRUCT_IBLOCK_VAR(i, j)
#define INSTR_ISEQUALI_VAR_INTEGER
Definition: goomsl.c:48
#define INSTR_SETF_VAR_FLOAT
Definition: goomsl.c:18
#define INSTR_SETI_VAR_INTEGER
Definition: goomsl.c:16
void(* free)(struct _VISUAL_FX *_this)
Definition: goom_visual_fx.h:19
#define TYPE_FLOAT
Definition: goomsl_private.h:219
#define INSTR_SUBI_VAR_INTEGER
Definition: goomsl.c:24
int gsl_type_of_var(GoomHash *namespace, const char *name)
Definition: goomsl_yacc.c:358
float value_float
Definition: goomsl_private.h:96
#define INSTR_ADDF_VAR_VAR
Definition: goomsl.c:35
#define INSTR_RET
Definition: goomsl_private.h:233
static void gsl_create_fast_iflow(void)
Definition: goomsl.c:935
void gsl_append_file_to_buffer(const char *fname, char **buffer)
Definition: goomsl.c:1487
#define INSTR_MULI_VAR_VAR
Definition: goomsl.c:37
char * jump_label
Definition: goomsl_private.h:114
#define GSL_LOCAL_INT(gsl, local, name)
Definition: goomsl.h:27
static const char * VALIDATE_OK
Definition: goomsl.c:65
#define INSTR_ADDI_VAR_INTEGER
Definition: goomsl.c:32
#define INSTR_NOT_VAR
Definition: goomsl.c:54
void gsl_free(GoomSL *gss)
Definition: goomsl.c:1429
#define FIRST_RESERVED
Definition: goomsl_private.h:216
int currentNS
Definition: goomsl_private.h:173
#define GSL_GLOBAL_INT(gsl, name)
Definition: goomsl.h:31
static char gsl_already_imported[256][256]
Definition: goomsl.c:1451
FastInstruction * instr
Definition: goomsl_private.h:137
#define INSTR_ADDI_VAR_VAR
Definition: goomsl.c:33
void * var
Definition: goomsl_private.h:81
#define INSTR_CALL
Definition: goomsl_private.h:232
void gsl_commit_compilation(void)
Definition: goomsl_yacc.c:1150
Definition: goomsl_private.h:129
#define INSTR_SETI_VAR_VAR
Definition: goomsl.c:17
void gsl_bind_function(GoomSL *gss, const char *fname, GoomSL_ExternalFunction func)
Definition: goomsl.c:1414
#define INSTR_ISEQUAL
Definition: goomsl_private.h:247
#define INSTR_ISEQUALS_VAR_VAR
Definition: goomsl.c:57
static void iflow_execute(FastInstructionFlow *_this, GoomSL *gsl)
Definition: goomsl.c:453
InstructionFlow * iflow
Definition: goomsl_private.h:169
int value_ptr
Definition: goomsl_private.h:95
#define INSTR_MULS_VAR_VAR
Definition: goomsl.c:60
int gsl_malloc(GoomSL *_this, int size)
Definition: goomsl.c:783
#define INSTR_SETS_VAR_VAR
Definition: goomsl.c:56
int id
Definition: goomsl_private.h:102
#define INSTR_DIVF_VAR_FLOAT
Definition: goomsl.c:42
NULL
Definition: xine_plugin.c:78
static void ext_charAt(GoomSL *gsl, GoomHash *global, GoomHash *local)
Definition: goomsl.c:1305
int number
Definition: goomsl_private.h:124
#define VALIDATE_ERROR
Definition: goomsl.c:66
Instruction * gsl_instr_init(GoomSL *parent, const char *name, int id, int nb_param, int line_number)
Definition: goomsl.c:175
#define VALIDATE_NO_SUCH_VAR
Definition: goomsl.c:70
char * gsl_init_buffer(const char *file_name)
Definition: goomsl.c:1453
#define INSTR_SETF_VAR_VAR
Definition: goomsl.c:19
#define INSTR_DIVI_VAR_INTEGER
Definition: goomsl.c:40
#define INSTR_JNZERO
Definition: goomsl_private.h:235
void * ptr
Definition: goomsl_hash.h:8
static void reset_scanner(GoomSL *gss)
Definition: goomsl.c:873
void gsl_compile(GoomSL *scanner, const char *script)
Definition: goomsl.c:1332
#define DEST_STRUCT_FBLOCK_VAR(i, j)
#define INSTR_DIVF_VAR_VAR
Definition: goomsl.c:43
int nb_param
Definition: goomsl_private.h:111
#define INSTR_ADDS_VAR_VAR
Definition: goomsl.c:58
#define GSL_GLOBAL_FLOAT(gsl, name)
Definition: goomsl.h:32
Instruction * instr
Definition: goomsl_private.h:167
Definition: goomsl_hash.h:20
int * types
Definition: goomsl_private.h:109
Instruction ** instr
Definition: goomsl_private.h:123
GoomHash * gsl_globals(GoomSL *_this)
Definition: goomsl.c:1296
Definition: goomsl_private.h:135
struct _ExternalFunctionStruct * external_function
Definition: goomsl_private.h:86
GoomHash * gsl_leavenamespace(void)
Definition: goomsl.c:828
#define INSTR_ISEQUALP_VAR_VAR
Definition: goomsl.c:45
Definition: goomsl_hash.h:7
static void ext_i2f(GoomSL *gsl, GoomHash *global, GoomHash *local)
Definition: goomsl.c:1317
GSL_StructField * fields[64]
Definition: goomsl_private.h:159
void gsl_compile(GoomSL *_currentGoomSL, const char *script)
Definition: goomsl.c:1332
static char * gsl_read_file(const char *fname)
Definition: goomsl.c:1464
#define INSTR_ISEQUALP_VAR_PTR
Definition: goomsl.c:46
#define INSTR_ISLOWERF_VAR_FLOAT
Definition: goomsl.c:29
#define INSTR_SETP_VAR_PTR
Definition: goomsl.c:22
static void calculate_labels(InstructionFlow *iflow)
Definition: goomsl.c:902
int ptrArraySize
Definition: goomsl_private.h:186
#define INSTR_SET
Definition: goomsl_private.h:237
int gsl_is_compiled(GoomSL *gss)
Definition: goomsl.c:1424
static void iflow_free(InstructionFlow *_this)
Definition: goomsl.c:95
static const char * gsl_instr_validate(Instruction *_this)
Definition: goomsl.c:306
#define INSTR_SUB
Definition: goomsl_private.h:246
GoomHash * structIDS
Definition: goomsl_private.h:181
static int gsl_nb_import
Definition: goomsl.c:1450
#define DEST_STRUCT_IBLOCK(i)
static const char * validate_v_p(Instruction *_this)
Definition: goomsl.c:242
#define INSTR_FLOAT
Definition: goomsl_private.h:239
Definition: goomsl_private.h:100
#define INSTR_JUMP
Definition: goomsl_private.h:230
#define INSTR_MULI_VAR_INTEGER
Definition: goomsl.c:36
char * gsl_init_buffer(const char *fname)
Definition: goomsl.c:1453
static void gsl_instr_free(Instruction *_this)
Definition: goomsl.c:190
#define INSTR_NOT
Definition: goomsl_private.h:248
const char name[16]
Definition: memcpy.c:569
void * mallocedInstr
Definition: goomsl_private.h:138
GoomHash * vars
Definition: goomsl_private.h:172
#define INSTR_ISLOWERI_VAR_INTEGER
Definition: goomsl.c:31
#define DEST_STRUCT_FBLOCK(i)
Definition: goomsl_private.h:141
void gsl_free(GoomSL *gss)
Definition: goomsl.c:1429
#define INSTR_NOP
Definition: goomsl.c:20
#define DEST_STRUCT_IBLOCK_VAR(i, j)
#define INSTR_MUL
Definition: goomsl_private.h:244
#define INSTR_JZERO
Definition: goomsl_private.h:231
static void iflow_add_instr(InstructionFlow *_this, Instruction *instr)
Definition: goomsl.c:121
#define INSTR_DIVI_VAR_VAR
Definition: goomsl.c:41
void gsl_declare_external_task(const char *name)
Definition: goomsl.c:858
int is_extern
Definition: goomsl_private.h:144
int nbFields
Definition: goomsl_private.h:158
#define VALIDATE_NO_SUCH_DEST_VAR
Definition: goomsl.c:71
int number
Definition: goomsl_private.h:136
#define INSTR_DIV
Definition: goomsl_private.h:245
GoomHeap * data_heap
Definition: goomsl_private.h:178
#define INSTR_SUBS_VAR_VAR
Definition: goomsl.c:59
#define TYPE_INTEGER
Definition: goomsl_private.h:218
#define TYPE_FVAR
Definition: goomsl_private.h:226
int compilationOK
Definition: goomsl_private.h:189
void gsl_bind_function(GoomSL *gss, const char *fname, GoomSL_ExternalFunction func)
Definition: goomsl.c:1414
Instruction * proto
Definition: goomsl_private.h:132
void yyparse(void)
Definition: goomsl_yacc.c:2142
void gsl_enternamespace(const char *name)
Definition: goomsl.c:809
void gsl_free_ptr(GoomSL *_this, int id)
Definition: goomsl.c:801
GoomSL * parent
Definition: goomsl_private.h:104
void * gsl_get_ptr(GoomSL *_this, int id)
Definition: goomsl.c:793
Definition: goomsl_private.h:165
int nbPtr
Definition: goomsl_private.h:185
#define INSTR_INT
Definition: goomsl_private.h:238
#define INSTR_PTR
Definition: goomsl_private.h:240
#define INSTR_MULF_VAR_VAR
Definition: goomsl.c:39
int nbStructID
Definition: goomsl_private.h:180
static InstructionFlow * iflow_new(void)
Definition: goomsl.c:110
GoomHash * gsl_find_namespace(const char *name)
Definition: goomsl.c:834
#define INSTR_SUBF_VAR_VAR
Definition: goomsl.c:27
#define GSL_LOCAL_FLOAT(gsl, local, name)
Definition: goomsl.h:28
GoomHash * vars
Definition: goomsl_private.h:143
GoomSL * gsl_new(void)
Definition: goomsl.c:1387
#define INSTR_ADD
Definition: goomsl_private.h:243
#define VALIDATE_NO_SUCH_INT
Definition: goomsl.c:69
HashValue * goom_hash_get(GoomHash *_this, const char *key)
Definition: goomsl_hash.c:85
static const char * validate_v_v(Instruction *_this)
Definition: goomsl.c:214
int * var_ptr
Definition: goomsl_private.h:83
#define INSTR_MULF_VAR_FLOAT
Definition: goomsl.c:38
void goom_hash_free(GoomHash *_this)
Definition: goomsl_hash.c:72
#define INSTR_EXT_CALL
Definition: goomsl_private.h:234
GoomHash * goom_hash_new(void)
Definition: goomsl_hash.c:65
GoomHash * functions
Definition: goomsl_private.h:176
GoomHash * gsl_globals(GoomSL *_this)
Definition: goomsl.c:1296
#define INSTR_ISEQUALI_VAR_VAR
Definition: goomsl.c:47
static const char * validate_v_f(Instruction *_this)
Definition: goomsl.c:254
void gsl_execute(GoomSL *scanner)
Definition: goomsl.c:1376
#define TYPE_PVAR
Definition: goomsl_private.h:227
#define INSTR_LABEL
Definition: goomsl_private.h:241
#define TYPE_IVAR
Definition: goomsl_private.h:225
void gsl_instr_add_param(Instruction *instr, const char *param, int type)
Definition: goomsl.c:141
FastInstructionFlow * fastiflow
Definition: goomsl_private.h:170
void goom_heap_delete(GoomHeap *_this)
Definition: goomsl_heap.c:34
int gsl_struct_size
Definition: goomsl_private.h:183
#define SRC_STRUCT_FBLOCK_VAR(i, j)
#define VALIDATE_TODO
Definition: goomsl.c:67
#define GSL_LOCAL_PTR(gsl, local, name)
Definition: goomsl.h:26
int id
Definition: goomsl_private.h:130
#define TYPE_LABEL
Definition: goomsl_private.h:222
static const char * validate_v_i(Instruction *_this)
Definition: goomsl.c:230
void gsl_append_file_to_buffer(const char *file_name, char **buffer)
Definition: goomsl.c:1487
static const char * validate(Instruction *_this, int vf_f_id, int vf_v_id, int vi_i_id, int vi_v_id, int vp_p_id, int vp_v_id, int vs_v_id)
Definition: goomsl.c:266
union _INSTRUCTION_DATA::@41 udest
#define INSTR_SETP_VAR_VAR
Definition: goomsl.c:23
#define INSTR_ISLOWER
Definition: goomsl_private.h:242
#define INSTR_ISLOWERF_VAR_VAR
Definition: goomsl.c:28
int line_number
Definition: goomsl_private.h:117
InstructionData data
Definition: goomsl_private.h:131