ANTLR Support Libraries 2.7.1+
 All Classes Namespaces Files Functions Variables Typedefs Friends Defines
antlr/LLkParser.hpp
Go to the documentation of this file.
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__