00001 #ifndef user_h 00002 #define user_h 00003 00004 #include "define.h" 00005 #include "ih.h" 00006 #include "strings.h" 00007 00009 class UserHandler 00010 { 00011 public: 00012 struct Def 00013 { 00014 DefineOpen def; 00015 File buffer; 00016 Interpreter::Type itype; 00017 00018 Def() {} 00019 00020 Def( DefineOpen& def, File& buffer ) 00021 : def( def ), 00022 buffer( buffer ), 00023 itype( "leohtml/javascript", def.get_interpreter() ) 00024 {} 00025 }; 00026 00027 typedef std::list<Def> def_list; 00028 typedef def_list::iterator def_list_it; 00029 00030 private: 00031 def_list defs; 00032 00033 public: 00034 00035 bool add( DefineOpen& def, File buffer ); 00036 bool get_command( Tag& tag, std::string& command ); 00037 bool is_user_tag( std::string tag_type, std::string init_scan ); 00038 00039 def_list get_defs() const { return defs; } 00040 00041 Strings::string_list get_init_scan_types(); 00042 00043 private: 00044 bool find( std::string name, Def& def ); 00045 }; 00046 00047 #endif 00048