00001 #ifndef java_lexer_h 00002 #define java_lexer_h 00003 00004 #include "config.h" 00005 00006 #ifdef HAVE_IXLIB 00007 00008 #include "lexer.h" 00009 #include "java_file.h" 00010 00011 #undef PACKAGE 00012 #undef VERSION 00013 00014 #include <ixlib_javascript.hh> 00015 00016 #undef PACKAGE 00017 #undef VERSION 00018 00019 00020 using namespace ixion; 00021 using namespace javascript; 00022 00023 class JavaLexer : public value_with_methods 00024 { 00025 private: 00026 typedef value_with_methods super; 00027 00028 Lexer *lexer; 00029 00030 std::string error; 00031 00032 bool valid; 00033 00034 public: 00035 JavaLexer( JavaFile in, JavaFile out, std::string current_dir = "" ); 00036 ~JavaLexer() { if( lexer ) delete lexer; } 00037 00038 value_type getType() const { return VT_BUILTIN; } 00039 00040 ref<value> duplicate() { return this; } 00041 00042 ref<value> lookup( std::string const &identifier ); 00043 ref<value> callMethod( std::string const &identifier, parameter_list const ¶meters ); 00044 }; 00045 00046 class JavaLexerConstructor : public value 00047 { 00048 public: 00049 value_type getType() const { return VT_BUILTIN; } 00050 00051 ref<value> duplicate() { return this; } 00052 00053 ref<value> construct( parameter_list const ¶meters ); 00054 }; 00055 00056 #endif 00057 00058 #endif