KDevelop API Documentation

lib/antlr/src/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.0.4.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Wed Oct 6 17:39:06 2004 by doxygen 1.3.7 written by Dimitri van Heesch, © 1997-2003