00001 #ifndef INC_LLkParser_hpp__
00002 #define INC_LLkParser_hpp__
00003
00004
00005
00006
00007
00008
00009
00010
00011 #include <antlr/config.hpp>
00012 #include <antlr/Parser.hpp>
00013
00014 #ifdef ANTLR_CXX_SUPPORTS_NAMESPACE
00015 namespace antlr {
00016 #endif
00017
00024 class ANTLR_API LLkParser : public Parser {
00025 public:
00026 LLkParser(const ParserSharedInputState& lexer, int k_);
00027
00028 LLkParser(TokenBuffer& tokenBuf, int k_);
00029
00030 LLkParser(TokenStream& lexer, int k_);
00031
00039 virtual inline void consume()
00040 {
00041 inputState->getInput().consume();
00042 }
00043
00044 virtual inline int LA(unsigned int i)
00045 {
00046 return inputState->getInput().LA(i);
00047 }
00048
00049 virtual inline RefToken LT(unsigned int i)
00050 {
00051 return inputState->getInput().LT(i);
00052 }
00053 protected:
00055 int k;
00056 private:
00057 void trace(const char* ee, const char* rname);
00058 public:
00059 virtual void traceIn(const char* rname);
00060 virtual void traceOut(const char* rname);
00061 };
00062
00063 #ifdef ANTLR_CXX_SUPPORTS_NAMESPACE
00064 }
00065 #endif
00066
00067 #endif //INC_LLkParser_hpp__