00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef var_h
00023 #define var_h
00024
00025 #include "ID.h"
00026 #include "Expr.h"
00027 #include "Type.h"
00028
00029 class Func;
00030 class EventHandlerPtr;
00031
00032 typedef enum { VAR_REGULAR, VAR_CONST, VAR_REDEF, } decl_type;
00033
00034 extern void add_global(ID* id, BroType* t, init_class c, Expr* init,
00035 attr_list* attr, decl_type dt);
00036 extern Stmt* add_local(ID* id, BroType* t, init_class c, Expr* init,
00037 attr_list* attr, decl_type dt);
00038
00039 extern void add_type(ID* id, BroType* t, attr_list* attr, int is_event);
00040
00041 extern void begin_func(ID* id, const char* module_name, function_flavor flavor,
00042 int is_redef, FuncType* t);
00043 extern void end_func(Stmt* body);
00044
00045 extern Val* internal_val(const char* name);
00046 extern Val* opt_internal_val(const char* name);
00047 extern double opt_internal_double(const char* name);
00048 extern bro_int_t opt_internal_int(const char* name);
00049 extern StringVal* opt_internal_string(const char* name);
00050 extern TableVal* opt_internal_table(const char* name);
00051 extern ListVal* internal_list_val(const char* name);
00052 extern BroType* internal_type(const char* name);
00053 extern Func* internal_func(const char* name);
00054 extern EventHandlerPtr internal_handler(const char* name);
00055
00056 extern EventHandlerPtr bro_signal;
00057 extern int signal_val;
00058
00059 #endif