KDevelop API Documentation

LLkParser.cpp

Go to the documentation of this file.
00001 /* ANTLR Translator Generator
00002  * Project led by Terence Parr at http://www.jGuru.com
00003  * Software rights: http://www.antlr.org/RIGHTS.html
00004  *
00005  * $Id: LLkParser.cpp,v 1.2 2003/05/02 00:36:20 okellogg Exp $
00006  */
00007 
00008 #include "antlr/LLkParser.hpp"
00009 #include <iostream>
00010 
00011 #ifdef ANTLR_CXX_SUPPORTS_NAMESPACE
00012 namespace antlr {
00013 #endif
00014 
00015 ANTLR_USING_NAMESPACE(std)
00016 
00017 
00024 //  LLkParser(int k_);
00025 
00026 LLkParser::LLkParser(const ParserSharedInputState& state, int k_)
00027 : Parser(state), k(k_)
00028 {
00029 }
00030 
00031 LLkParser::LLkParser(TokenBuffer& tokenBuf, int k_)
00032 : Parser(tokenBuf), k(k_)
00033 {
00034 }
00035 
00036 LLkParser::LLkParser(TokenStream& lexer, int k_)
00037 : Parser(new TokenBuffer(lexer)), k(k_)
00038 {
00039 }
00040 
00041 void LLkParser::trace(const char* ee, const char* rname)
00042 {
00043     traceIndent();
00044 
00045     cout << ee << rname << ((inputState->guessing>0)?"; [guessing]":"; ");
00046 
00047     for (int i = 1; i <= k; i++)
00048     {
00049         if (i != 1) {
00050             cout << ", ";
00051         }
00052         cout << "LA(" << i << ")==";
00053 
00054         string temp;
00055 
00056         try {
00057             temp = LT(i)->getText().c_str();
00058         }
00059         catch( ANTLRException& ae )
00060         {
00061             temp = "[error: ";
00062             temp += ae.toString();
00063             temp += ']';
00064         }
00065         cout << temp;
00066     }
00067 
00068     cout << endl;
00069 }
00070 
00071 void LLkParser::traceIn(const char* rname)
00072 {
00073     traceDepth++;
00074     trace("> ",rname);
00075 }
00076 
00077 void LLkParser::traceOut(const char* rname)
00078 {
00079     trace("< ",rname);
00080     traceDepth--;
00081 }
00082 
00083 #ifdef ANTLR_CXX_SUPPORTS_NAMESPACE
00084 }
00085 #endif
KDE Logo
This file is part of the documentation for KDevelop Version 3.1.2.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Wed Mar 23 00:03:50 2005 by doxygen 1.3.9.1 written by Dimitri van Heesch, © 1997-2003