source: trunk/yao/share/antlr-2.7.7/lib/cpp/src/TreeParser.cpp @ 1

Last change on this file since 1 was 1, checked in by lnalod, 15 years ago

Initial import of YAO sources

  • Property svn:eol-style set to native
File size: 2.0 KB
Line 
1/* ANTLR Translator Generator
2 * Project led by Terence Parr at http://www.jGuru.com
3 * Software rights: http://www.antlr.org/license.html
4 *
5 * $Id: //depot/code/org.antlr/release/antlr-2.7.7/lib/cpp/src/TreeParser.cpp#2 $
6 */
7
8#include "antlr/TreeParser.hpp"
9#include "antlr/ASTNULLType.hpp"
10
11#ifdef ANTLR_CXX_SUPPORTS_NAMESPACE
12namespace antlr {
13#endif
14
15/** The AST Null object; the parsing cursor is set to this when
16 *  it is found to be null.  This way, we can test the
17 *  token type of a node without having to have tests for null
18 *  everywhere.
19 */
20RefAST TreeParser::ASTNULL(new ASTNULLType);
21
22/** Parser error-reporting function can be overridden in subclass */
23void TreeParser::reportError(const RecognitionException& ex)
24{
25        ANTLR_USE_NAMESPACE(std)cerr << ex.toString().c_str() << ANTLR_USE_NAMESPACE(std)endl;
26}
27
28/** Parser error-reporting function can be overridden in subclass */
29void TreeParser::reportError(const ANTLR_USE_NAMESPACE(std)string& s)
30{
31        ANTLR_USE_NAMESPACE(std)cerr << "error: " << s.c_str() << ANTLR_USE_NAMESPACE(std)endl;
32}
33
34/** Parser warning-reporting function can be overridden in subclass */
35void TreeParser::reportWarning(const ANTLR_USE_NAMESPACE(std)string& s)
36{
37        ANTLR_USE_NAMESPACE(std)cerr << "warning: " << s.c_str() << ANTLR_USE_NAMESPACE(std)endl;
38}
39
40/** Procedure to write out an indent for traceIn and traceOut */
41void TreeParser::traceIndent()
42{
43        for( int i = 0; i < traceDepth; i++ )
44                ANTLR_USE_NAMESPACE(std)cout << " ";
45}
46
47void TreeParser::traceIn(const char* rname, RefAST t)
48{
49        traceDepth++;
50        traceIndent();
51
52        ANTLR_USE_NAMESPACE(std)cout << "> " << rname
53                        << "(" << (t ? t->toString().c_str() : "null") << ")"
54                        << ((inputState->guessing>0)?" [guessing]":"")
55                        << ANTLR_USE_NAMESPACE(std)endl;
56}
57
58void TreeParser::traceOut(const char* rname, RefAST t)
59{
60        traceIndent();
61
62        ANTLR_USE_NAMESPACE(std)cout << "< " << rname
63                        << "(" << (t ? t->toString().c_str() : "null") << ")"
64                        << ((inputState->guessing>0)?" [guessing]":"")
65                        << ANTLR_USE_NAMESPACE(std)endl;
66
67        traceDepth--;
68}
69
70#ifdef ANTLR_CXX_SUPPORTS_NAMESPACE
71}
72#endif
Note: See TracBrowser for help on using the repository browser.