00001
00002 #ifndef _SCRIPT_H_
00003 #define _SCRIPT_H_
00004
00005 extern struct Script_Config {
00006 int warn_func_no_comma;
00007 int warn_cmd_no_comma;
00008 int warn_func_mismatch_paramnum;
00009 int warn_cmd_mismatch_paramnum;
00010 int check_cmdcount;
00011 int check_gotocount;
00012
00013 int event_script_type;
00014 char* die_event_name;
00015 char* kill_event_name;
00016 char* login_event_name;
00017 char* logout_event_name;
00018 int event_requires_trigger;
00019 } script_config;
00020
00021 struct script_data {
00022 int type;
00023 union {
00024 intptr_t num;
00025 char *str;
00026 } u;
00027 };
00028
00029 struct script_stack {
00030 int sp, sp_max;
00031 struct script_data *stack_data;
00032 };
00033 struct script_state {
00034 struct script_stack *stack;
00035 int start, end;
00036 int pos, state;
00037 int rid, oid;
00038 char *script,*new_script;
00039 int defsp, new_pos, new_defsp;
00040 };
00041
00042 unsigned char * parse_script(unsigned char *,int);
00043 int run_script(unsigned char *, int, int, int);
00044
00045 struct dbt* script_get_label_db();
00046 struct dbt* script_get_userfunc_db();
00047
00048 int script_config_read(char *cfgName);
00049 int do_init_script();
00050 int do_final_script();
00051
00052 extern char mapreg_txt[1024];
00053
00054 extern short log_script_level;
00055
00056 #endif // _SCRIPT_H_
00057