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