ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE-3.0/src/antlr/CommonAST.hpp
Revision: 2469
Committed: Fri Dec 2 15:38:03 2005 UTC (18 years, 7 months ago) by tim
File size: 1877 byte(s)
Log Message:
End of the Link --> List
Return of the Oject-Oriented
replace yacc/lex parser with antlr parser

File Contents

# Content
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: CommonAST.hpp,v 1.1 2005-12-02 15:38:02 tim Exp $
9 */
10
11 #include <antlr/config.hpp>
12 #include <antlr/BaseAST.hpp>
13
14 #ifdef ANTLR_CXX_SUPPORTS_NAMESPACE
15 namespace antlr {
16 #endif
17
18 class ANTLR_API CommonAST : public BaseAST {
19 public:
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;
99 protected:
100 int ttype;
101 ANTLR_USE_NAMESPACE(std)string text;
102 };
103
104 typedef ASTRefCount<CommonAST> RefCommonAST;
105
106 #ifdef ANTLR_CXX_SUPPORTS_NAMESPACE
107 }
108 #endif
109
110 #endif //INC_CommonAST_hpp__