xine-lib 1.2.13-20230125hg15249
|
Go to the source code of this file.
Data Structures | |
struct | _ConstIntNodeType |
struct | _ConstFloatNodeType |
struct | _ConstPtrNodeType |
struct | _OprNodeType |
struct | _NODE_TYPE |
struct | _INSTRUCTION_DATA |
struct | _INSTRUCTION |
struct | _INSTRUCTION_FLOW |
struct | _FAST_INSTRUCTION |
struct | _FastInstructionFlow |
struct | _ExternalFunctionStruct |
struct | _Block |
struct | _GSL_StructField |
struct | _GSL_Struct |
struct | _GoomSL |
Macros | |
#define | EMPTY_NODE 0 |
#define | CONST_INT_NODE 1 |
#define | CONST_FLOAT_NODE 2 |
#define | CONST_PTR_NODE 3 |
#define | VAR_NODE 4 |
#define | PARAM_NODE 5 |
#define | READ_PARAM_NODE 6 |
#define | OPR_NODE 7 |
#define | OPR_SET 1 |
#define | OPR_IF 2 |
#define | OPR_WHILE 3 |
#define | OPR_BLOCK 4 |
#define | OPR_ADD 5 |
#define | OPR_MUL 6 |
#define | OPR_EQU 7 |
#define | OPR_NOT 8 |
#define | OPR_LOW 9 |
#define | OPR_DIV 10 |
#define | OPR_SUB 11 |
#define | OPR_FUNC_INTRO 12 |
#define | OPR_FUNC_OUTRO 13 |
#define | OPR_CALL 14 |
#define | OPR_EXT_CALL 15 |
#define | OPR_PLUS_EQ 16 |
#define | OPR_SUB_EQ 17 |
#define | OPR_MUL_EQ 18 |
#define | OPR_DIV_EQ 19 |
#define | OPR_CALL_EXPR 20 |
#define | OPR_AFFECT_LIST 21 |
#define | OPR_FOREACH 22 |
#define | OPR_VAR_LIST 23 |
#define | FIRST_RESERVED 0x80000 |
#define | TYPE_INTEGER 0x90001 |
#define | TYPE_FLOAT 0x90002 |
#define | TYPE_VAR 0x90003 |
#define | TYPE_PTR 0x90004 |
#define | TYPE_LABEL 0x90005 |
#define | TYPE_OP_EQUAL 6 |
#define | TYPE_IVAR 0xa0001 |
#define | TYPE_FVAR 0xa0002 |
#define | TYPE_PVAR 0xa0003 |
#define | TYPE_SVAR 0xa0004 |
#define | INSTR_JUMP 6 |
#define | INSTR_JZERO 29 |
#define | INSTR_CALL 36 |
#define | INSTR_RET 37 |
#define | INSTR_EXT_CALL 38 |
#define | INSTR_JNZERO 40 |
#define | INSTR_SET 0x80001 |
#define | INSTR_INT 0x80002 |
#define | INSTR_FLOAT 0x80003 |
#define | INSTR_PTR 0x80004 |
#define | INSTR_LABEL 0x80005 |
#define | INSTR_ISLOWER 0x80006 |
#define | INSTR_ADD 0x80007 |
#define | INSTR_MUL 0x80008 |
#define | INSTR_DIV 0x80009 |
#define | INSTR_SUB 0x80010 |
#define | INSTR_ISEQUAL 0x80011 |
#define | INSTR_NOT 0x80012 |
Typedefs | |
typedef struct _ConstIntNodeType | ConstIntNodeType |
typedef struct _ConstFloatNodeType | ConstFloatNodeType |
typedef struct _ConstPtrNodeType | ConstPtrNodeType |
typedef struct _OprNodeType | OprNodeType |
typedef struct _NODE_TYPE | NodeType |
typedef struct _INSTRUCTION_DATA | InstructionData |
typedef struct _INSTRUCTION | Instruction |
typedef struct _INSTRUCTION_FLOW | InstructionFlow |
typedef struct _FAST_INSTRUCTION | FastInstruction |
typedef struct _FastInstructionFlow | FastInstructionFlow |
typedef struct _ExternalFunctionStruct | ExternalFunctionStruct |
typedef struct _Block | Block |
typedef struct _GSL_StructField | GSL_StructField |
typedef struct _GSL_Struct | GSL_Struct |
Functions | |
Instruction * | gsl_instr_init (GoomSL *parent, const char *name, int id, int nb_param, int line_number) |
void | gsl_instr_add_param (Instruction *_this, const char *param, int type) |
void | gsl_instr_set_namespace (Instruction *_this, GoomHash *ns) |
void | gsl_declare_task (const char *name) |
void | gsl_declare_external_task (const char *name) |
int | gsl_type_of_var (GoomHash *namespace, const char *name) |
void | gsl_enternamespace (const char *name) |
void | gsl_reenternamespace (GoomHash *ns) |
GoomHash * | gsl_leavenamespace (void) |
GoomHash * | gsl_find_namespace (const char *name) |
void | gsl_commit_compilation (void) |
Variables | |
GoomSL * | currentGoomSL |
#define CONST_FLOAT_NODE 2 |
Referenced by commit_node(), commit_test2(), new_constFloat(), new_neg(), and precommit_expr().
#define CONST_INT_NODE 1 |
Referenced by commit_node(), commit_test2(), new_constInt(), new_neg(), and precommit_expr().
#define CONST_PTR_NODE 3 |
Referenced by commit_node(), commit_test2(), new_constPtr(), new_neg(), and precommit_expr().
#define EMPTY_NODE 0 |
Referenced by commit_node(), and new_nop().
#define FIRST_RESERVED 0x80000 |
Referenced by gsl_declare_var(), gsl_instr_validate(), gsl_prepare_struct(), and validate().
#define INSTR_ADD 0x80007 |
Referenced by commit_plus_eq(), gsl_instr_validate(), is_commutative_expr(), and precommit_add().
#define INSTR_CALL 36 |
Referenced by commit_call(), commit_foreach(), gsl_create_fast_iflow(), gsl_instr_validate(), and iflow_execute().
#define INSTR_DIV 0x80009 |
Referenced by commit_div_eq(), gsl_instr_validate(), and precommit_div().
#define INSTR_EXT_CALL 38 |
Referenced by commit_ext_call(), gsl_create_fast_iflow(), gsl_instr_validate(), and iflow_execute().
#define INSTR_FLOAT 0x80003 |
#define INSTR_INT 0x80002 |
#define INSTR_ISEQUAL 0x80011 |
Referenced by commit_equ(), gsl_instr_validate(), and is_commutative_expr().
#define INSTR_ISLOWER 0x80006 |
Referenced by commit_low(), and gsl_instr_validate().
#define INSTR_JNZERO 40 |
Referenced by gsl_create_fast_iflow(), gsl_instr_validate(), GSL_PUT_JNZERO(), and iflow_execute().
#define INSTR_JUMP 6 |
Referenced by gsl_create_fast_iflow(), gsl_instr_validate(), GSL_PUT_JUMP(), and iflow_execute().
#define INSTR_JZERO 29 |
Referenced by gsl_create_fast_iflow(), gsl_instr_validate(), GSL_PUT_JZERO(), and iflow_execute().
#define INSTR_LABEL 0x80005 |
Referenced by commit_function_intro(), gsl_instr_validate(), and GSL_PUT_LABEL().
#define INSTR_MUL 0x80008 |
Referenced by commit_mul_eq(), gsl_instr_validate(), is_commutative_expr(), and precommit_mul().
#define INSTR_NOT 0x80012 |
Referenced by commit_not(), and gsl_instr_validate().
#define INSTR_PTR 0x80004 |
#define INSTR_RET 37 |
Referenced by commit_foreach(), commit_function_outro(), gsl_create_fast_iflow(), gsl_instr_validate(), and iflow_execute().
#define INSTR_SET 0x80001 |
Referenced by commit_set(), commit_test2(), and gsl_instr_validate().
#define INSTR_SUB 0x80010 |
Referenced by commit_sub_eq(), gsl_instr_validate(), and precommit_sub().
#define OPR_ADD 5 |
Referenced by new_add(), and precommit_node().
#define OPR_AFFECT_LIST 21 |
Referenced by commit_node(), and new_affec_list().
#define OPR_BLOCK 4 |
Referenced by commit_node(), and new_block().
#define OPR_CALL 14 |
Referenced by commit_node(), and new_call().
#define OPR_CALL_EXPR 20 |
Referenced by new_call_expr(), and precommit_node().
#define OPR_DIV 10 |
Referenced by new_div(), and precommit_node().
#define OPR_DIV_EQ 19 |
Referenced by commit_node(), and new_div_eq().
#define OPR_EQU 7 |
Referenced by commit_node(), and new_equ().
#define OPR_EXT_CALL 15 |
Referenced by commit_node(), and new_call().
#define OPR_FOREACH 22 |
Referenced by commit_node(), and new_static_foreach().
#define OPR_FUNC_INTRO 12 |
Referenced by commit_node(), and new_function_intro().
#define OPR_FUNC_OUTRO 13 |
Referenced by commit_node(), and new_function_outro().
#define OPR_IF 2 |
Referenced by commit_node(), and new_if().
#define OPR_LOW 9 |
Referenced by commit_node(), and new_low().
#define OPR_MUL 6 |
Referenced by new_mul(), and precommit_node().
#define OPR_MUL_EQ 18 |
Referenced by commit_node(), and new_mul_eq().
#define OPR_NODE 7 |
Referenced by commit_node(), new_op(), and precommit_node().
#define OPR_NOT 8 |
Referenced by commit_node(), and new_not().
#define OPR_PLUS_EQ 16 |
Referenced by commit_node(), and new_plus_eq().
#define OPR_SET 1 |
Referenced by commit_node(), and new_set().
#define OPR_SUB 11 |
Referenced by new_neg(), new_sub(), and precommit_node().
#define OPR_SUB_EQ 17 |
Referenced by commit_node(), and new_sub_eq().
#define OPR_VAR_LIST 23 |
Referenced by commit_node(), and new_var_list().
#define OPR_WHILE 3 |
Referenced by commit_node(), and new_while().
#define PARAM_NODE 5 |
#define READ_PARAM_NODE 6 |
#define TYPE_FLOAT 0x90002 |
Referenced by commit_node(), and validate().
#define TYPE_FVAR 0xa0002 |
Referenced by gsl_instr_validate(), and validate().
#define TYPE_INTEGER 0x90001 |
Referenced by commit_node(), and validate().
#define TYPE_IVAR 0xa0001 |
Referenced by gsl_instr_validate(), and validate().
#define TYPE_LABEL 0x90005 |
#define TYPE_OP_EQUAL 6 |
#define TYPE_PTR 0x90004 |
Referenced by commit_node(), and validate().
#define TYPE_PVAR 0xa0003 |
Referenced by gsl_instr_validate(), and validate().
#define TYPE_SVAR 0xa0004 |
#define TYPE_VAR 0x90003 |
Referenced by commit_ext_call(), commit_node(), and gsl_instr_validate().
#define VAR_NODE 4 |
Referenced by commit_node(), new_affect_list_after(), and new_var().
typedef struct _ConstFloatNodeType ConstFloatNodeType |
typedef struct _ConstIntNodeType ConstIntNodeType |
typedef struct _ConstPtrNodeType ConstPtrNodeType |
typedef struct _ExternalFunctionStruct ExternalFunctionStruct |
typedef struct _FAST_INSTRUCTION FastInstruction |
typedef struct _FastInstructionFlow FastInstructionFlow |
typedef struct _GSL_Struct GSL_Struct |
typedef struct _GSL_StructField GSL_StructField |
typedef struct _INSTRUCTION Instruction |
typedef struct _INSTRUCTION_DATA InstructionData |
typedef struct _INSTRUCTION_FLOW InstructionFlow |
typedef struct _NODE_TYPE NodeType |
typedef struct _OprNodeType OprNodeType |
void gsl_commit_compilation | ( | void | ) |
References commit_node(), lastNode, and rootNode.
Referenced by gsl_compile().
void gsl_declare_external_task | ( | const char * | name | ) |
void gsl_declare_task | ( | const char * | name | ) |
References currentGoomSL, _ExternalFunctionStruct::function, _GoomSL::functions, goom_hash_get(), goom_hash_new(), goom_hash_put_ptr(), _ExternalFunctionStruct::is_extern, name, and _ExternalFunctionStruct::vars.
Referenced by new_call(), and yyparse().
void gsl_enternamespace | ( | const char * | name | ) |
References currentGoomSL, _GoomSL::currentNS, function, _GoomSL::functions, goom_hash_get(), name, _GoomSL::namespaces, _GoomSL::num_lines, and HashValue::ptr.
Referenced by yyparse().
GoomHash * gsl_find_namespace | ( | const char * | name | ) |
References currentGoomSL, _GoomSL::currentNS, goom_hash_get(), name, _GoomSL::namespaces, and NULL.
Referenced by new_call_expr(), and new_var().
void gsl_instr_add_param | ( | Instruction * | _this, |
const char * | param, | ||
int | type ) |
References _GoomSL::compilationOK, _INSTRUCTION::cur_param, gsl_instr_display(), gsl_instr_free(), gsl_instr_validate(), _INSTRUCTION::id, _GoomSL::iflow, iflow_add_instr(), INSTR_NOP, NULL, _GoomSL::num_lines, _INSTRUCTION::params, _INSTRUCTION::parent, type, _INSTRUCTION::types, and VALIDATE_OK.
Referenced by commit_call(), commit_ext_call(), commit_foreach(), commit_function_intro(), commit_function_outro(), commit_node(), commit_not(), GSL_PUT_JUMP(), GSL_PUT_JXXX(), and GSL_PUT_LABEL().
Instruction * gsl_instr_init | ( | GoomSL * | parent, |
const char * | name, | ||
int | id, | ||
int | nb_param, | ||
int | line_number ) |
References _INSTRUCTION::cur_param, _INSTRUCTION::id, _INSTRUCTION::jump_label, _INSTRUCTION::line_number, _INSTRUCTION::name, name, _INSTRUCTION::nb_param, NULL, _INSTRUCTION::params, _INSTRUCTION::parent, _INSTRUCTION::types, and _INSTRUCTION::vnamespace.
Referenced by commit_call(), commit_div_eq(), commit_ext_call(), commit_foreach(), commit_function_intro(), commit_function_outro(), commit_mul_eq(), commit_not(), commit_plus_eq(), commit_sub_eq(), commit_test2(), GSL_PUT_JUMP(), GSL_PUT_JXXX(), GSL_PUT_LABEL(), and precommit_expr().
void gsl_instr_set_namespace | ( | Instruction * | _this, |
GoomHash * | ns ) |
References _INSTRUCTION::cur_param, _INSTRUCTION::line_number, and _INSTRUCTION::vnamespace.
Referenced by commit_node().
GoomHash * gsl_leavenamespace | ( | void | ) |
References currentGoomSL, _GoomSL::currentNS, and _GoomSL::namespaces.
Referenced by yyparse().
void gsl_reenternamespace | ( | GoomHash * | ns | ) |
References currentGoomSL, _GoomSL::currentNS, and _GoomSL::namespaces.
Referenced by yyparse().
int gsl_type_of_var | ( | GoomHash * | namespace, |
const char * | name ) |
References goom_hash_get(), HashValue::i, name, and NULL.
Referenced by gsl_instr_validate(), new_neg(), precommit_call_expr(), and precommit_expr().
|
extern |