source: trunk/yao/share/antlr-2.7.7/lib/cpp/antlr/CommonAST.hpp @ 1

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

Initial import of YAO sources

File size: 1.9 KB
Line 
1#ifndef INC_CommonAST_hpp__
2#define INC_CommonAST_hpp__
3
4/* ANTLR Translator Generator
5 * Project led by Terence Parr at http://www.jGuru.com
6 * Software rights: http://www.antlr.org/license.html
7 *
8 * $Id: //depot/code/org.antlr/release/antlr-2.7.7/lib/cpp/antlr/CommonAST.hpp#2 $
9 */
10
11#include <antlr/config.hpp>
12#include <antlr/BaseAST.hpp>
13
14#ifdef ANTLR_CXX_SUPPORTS_NAMESPACE
15namespace antlr {
16#endif
17
18class ANTLR_API CommonAST : public BaseAST {
19public:
20        CommonAST()
21        : BaseAST()
22        , ttype( Token::INVALID_TYPE )
23        , text()
24        {
25        }
26
27        CommonAST( RefToken t )
28        : BaseAST()
29        , ttype( t->getType() )
30        , text( t->getText() )
31        {
32        }
33
34        CommonAST( const CommonAST& other )
35        : BaseAST(other)
36        , ttype(other.ttype)
37        , text(other.text)
38        {
39        }
40
41        virtual ~CommonAST()
42        {
43        }
44
45        virtual const char* typeName( void ) const
46        {
47                return CommonAST::TYPE_NAME;
48        }
49
50        /// Clone this AST node.
51        virtual RefAST clone( void ) const
52        {
53                CommonAST *ast = new CommonAST( *this );
54                return RefAST(ast);
55        }
56
57        virtual ANTLR_USE_NAMESPACE(std)string getText() const
58        {
59                return text;
60        }
61        virtual int getType() const
62        {
63                return ttype;
64        }
65
66        virtual void initialize( int t, const ANTLR_USE_NAMESPACE(std)string& txt )
67        {
68                setType(t);
69                setText(txt);
70        }
71
72        virtual void initialize( RefAST t )
73        {
74                setType(t->getType());
75                setText(t->getText());
76        }
77        virtual void initialize( RefToken t )
78        {
79                setType(t->getType());
80                setText(t->getText());
81        }
82
83#ifdef ANTLR_SUPPORT_XML
84        virtual void initialize( ANTLR_USE_NAMESPACE(std)istream& in );
85#endif
86
87        virtual void setText( const ANTLR_USE_NAMESPACE(std)string& txt )
88        {
89                text = txt;
90        }
91        virtual void setType( int type )
92        {
93                ttype = type;
94        }
95
96        static RefAST factory();
97
98        static const char* const TYPE_NAME;
99protected:
100        int ttype;
101        ANTLR_USE_NAMESPACE(std)string text;
102};
103
104typedef ASTRefCount<CommonAST> RefCommonAST;
105
106#ifdef ANTLR_CXX_SUPPORTS_NAMESPACE
107}
108#endif
109
110#endif //INC_CommonAST_hpp__
Note: See TracBrowser for help on using the repository browser.