ANTLR Support Libraries 2.7.1+
|
00001 #ifndef INC_LLkParser_hpp__ 00002 #define INC_LLkParser_hpp__ 00003 00004 /* ANTLR Translator Generator 00005 * Project led by Terence Parr at http://www.jGuru.com 00006 * Software rights: http://www.antlr.org/license.html 00007 * 00008 * $Id: //depot/code/org.antlr/release/antlr-2.7.7/lib/cpp/antlr/LLkParser.hpp#2 $ 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__