00001 #ifndef INC_ExpressionParser_hpp_
00002 #define INC_ExpressionParser_hpp_
00003
00004 #include "antlr/config.hpp"
00005
00006 #include "antlr/TokenStream.hpp"
00007 #include "antlr/TokenBuffer.hpp"
00008 #include "ExpressionParserTokenTypes.hpp"
00009 #include "antlr/LLkParser.hpp"
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035 #include <string>
00036 #include <map>
00037 #include <list>
00038 #include "UAPNode.hpp"
00039
00054 class ExpressionParser : public ANTLR_USE_NAMESPACE(antlr)LLkParser, public ExpressionParserTokenTypes
00055 {
00056
00057 int* nident;
00058 std::list<std::string> idents;
00059
00060 public:
00061
00065 std::list<std::string>& getIdentifiers()
00066 {
00067 return idents;
00068 }
00069 protected:
00070 ExpressionParser(ANTLR_USE_NAMESPACE(antlr)TokenBuffer& tokenBuf, int k);
00071 public:
00072 ExpressionParser(ANTLR_USE_NAMESPACE(antlr)TokenBuffer& tokenBuf);
00073 protected:
00074 ExpressionParser(ANTLR_USE_NAMESPACE(antlr)TokenStream& lexer, int k);
00075 public:
00076 ExpressionParser(ANTLR_USE_NAMESPACE(antlr)TokenStream& lexer);
00077 ExpressionParser(const ANTLR_USE_NAMESPACE(antlr)ParserSharedInputState& state);
00078 public: int expr();
00079 public: void aExpr();
00080 public: void prodExpr();
00081 public: void powExpr();
00082 public: void tExpr();
00083 public: void tFunc();
00084 public: void atom();
00085 public: void mathFunction();
00086 public: void amlPath();
00087 public: void amlPathElement();
00088 public: void amlPathAttrib();
00089 public: void amlPathNode();
00090 public: void amlPathTagList();
00091 public: void amlPathAttrExpr();
00092 private:
00093 static const char* _tokenNames[];
00094
00095 static const unsigned long _tokenSet_0_data_[];
00096 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_0;
00097 static const unsigned long _tokenSet_1_data_[];
00098 static const ANTLR_USE_NAMESPACE(antlr)BitSet _tokenSet_1;
00099 };
00100
00101 #endif