summaryrefslogtreecommitdiff
path: root/src/post/goom/goom_script_scanner.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/post/goom/goom_script_scanner.h')
-rw-r--r--src/post/goom/goom_script_scanner.h207
1 files changed, 0 insertions, 207 deletions
diff --git a/src/post/goom/goom_script_scanner.h b/src/post/goom/goom_script_scanner.h
deleted file mode 100644
index 40360dc24..000000000
--- a/src/post/goom/goom_script_scanner.h
+++ /dev/null
@@ -1,207 +0,0 @@
-#ifndef _GOOM_SCRIPT_SCANNER_H
-#define _GOOM_SCRIPT_SCANNER_H
-
-#include "goom_plugin_info.h"
-
-void goom_script_scanner_compile(GoomScriptScanner *scanner, PluginInfo *pluginInfo, const char *script);
-void goom_script_scanner_execute(GoomScriptScanner *scanner);
-int goom_script_scanner_is_compiled(GoomScriptScanner *gss);
-
-GoomScriptScanner *goom_script_scanner_new(void);
-void goom_script_scanner_free(GoomScriptScanner *gss);
-
-
-/* -- internal use -- */
-
-#include "goom_hash.h"
-
-#define EMPTY_NODE 0
-#define CONST_INT_NODE 1
-#define CONST_FLOAT_NODE 2
-#define VAR_NODE 3
-#define PARAM_NODE 4
-#define READ_PARAM_NODE 5
-#define OPR_NODE 6
-
-#define OPR_SET 1
-#define OPR_DECLARE_INT 2
-#define OPR_DECLARE_FLOAT 3
-#define OPR_IF 4
-#define OPR_BLOCK 5
-#define OPR_ADD 6
-#define OPR_MUL 7
-#define OPR_EQU 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
-
-typedef struct {
-/* char *name;*/
-} ParamNodeType;
-
-typedef struct {
-/* char *name;*/
-} VarNodeType;
-
-typedef struct {
- int val;
-} ConstIntNodeType;
-
-typedef struct {
- float val;
-} ConstFloatNodeType;
-
-typedef struct {
- int type;
- int nbOp;
- struct _NODE_TYPE *op[3]; /* maximal number of operand needed */
- struct _NODE_TYPE *next;
-} OprNodeType;
-
-typedef struct _NODE_TYPE{
- int type;
- char *str;
- union {
- ParamNodeType param;
- VarNodeType var;
- ConstIntNodeType constInt;
- ConstFloatNodeType constFloat;
- OprNodeType opr;
- } unode;
-} NodeType;
-
-void gsl_commit_compilation(void);
-
-/* ------------- SCRIPT_EXEC_ENV ------------ */
-
-typedef struct _SCRIPT_EXEC_ENV {
- int ip;
- GoomHash *vars;
-} ScriptExecEnv;
-
-/* ------------- INSTRUCTIONS -------------- */
-
-typedef struct _INSTRUCTION {
-
- int id;
- GoomScriptScanner *parent;
- const char *name; /* name of the instruction */
-
- char **params; /* parametres de l'instruction */
- int *types; /* type des parametres de l'instruction */
- int cur_param;
- int nb_param;
-
- int address;
- char *jump_label;
-
- union {
-
- /* PARAM - INTEGER */
- struct {
- PluginParam *param;
- int value;
- } p_i;
-
- /* PARAM - FLOAT */
- struct {
- PluginParam *param;
- float value;
- } p_f;
-
- /* VAR - PARAM */
- struct {
- PluginParam *param;
- HashValue *var;
- } v_p;
-
- /* VAR - INTEGER */
- struct {
- HashValue *var;
- int value;
- } v_i;
-
- /* VAR - FLOAT */
- struct {
- HashValue *var;
- float value;
- } v_f;
-
- /* VAR - VAR */
- struct {
- HashValue *var_src;
- HashValue *var_dest;
- } v_v;
-
- /* VAR */
- struct {
- int jump_offset;
- HashValue *var;
- } v;
-
- int jump_offset;
-
- } data;
-
-} Instruction;
-
-Instruction *instr_init(GoomScriptScanner *parent, const char *name, int id, int nb_param);
-void instr_add_param(Instruction *_this, char *param, int type);
-void instr_display(Instruction *_this);
-
-/* ----------- INSTRUCTION_FLOW ------------- */
-
-typedef struct _INSTRUCTION_FLOW {
-
- Instruction **instr;
- int number;
- int tabsize;
- GoomHash *labels;
-
-} InstructionFlow;
-
-/* ----------- GOOM SCRIPT SCANNER ------------- */
-
-struct _GoomScriptScanner {
- int num_lines;
- Instruction *instr; /* instruction en cours de construction */
-
- InstructionFlow *iflow; /* flow d'instruction racine */
- GoomHash *vars; /* table de variables */
- InstructionFlow *current_flow;
-
- PluginInfo *pluginInfo;
- int compilationOK;
-};
-
-/* #define TYPE_PARAM 1
- #define TYPE_INTEGER 2
- #define TYPE_FLOAT 3
- #define TYPE_VAR 4 */
-#define TYPE_LABEL 5
-#define TYPE_OP_EQUAL 6
-
-#define INSTR_JUMP 6
-
-#define INSTR_SETI 10001
-#define INSTR_SETF 10002
-#define INSTR_INT 10003
-#define INSTR_LABEL 10004
-#define INSTR_ISLOWERI 10005
-#define INSTR_ISLOWERF 10006
-#define INSTR_ADDI 10007
-#define INSTR_ADDF 10008
-#define INSTR_MULI 10009
-#define INSTR_MULF 10010
-#define INSTR_DIVF 10011
-#define INSTR_SUBF 10012
-#define INSTR_ISEQUALI 10013
-#define INSTR_ISEQUALF 10014
-#define INSTR_JZERO 29
-#define INSTR_CALL 34
-#define INSTR_RET 35
-
-#endif