ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/branches/development/src/antlr/Token.hpp
Revision: 1442
Committed: Mon May 10 17:28:26 2010 UTC (14 years, 11 months ago) by gezelter
Original Path: trunk/src/antlr/Token.hpp
File size: 2177 byte(s)
Log Message:
Adding property set to svn entries

File Contents

# User Rev Content
1 tim 770 #ifndef INC_Token_hpp__
2     #define INC_Token_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 gezelter 1442 * $Id$
9 tim 770 */
10    
11     #include <antlr/config.hpp>
12     #include <antlr/TokenRefCount.hpp>
13     #include <string>
14    
15     #ifdef ANTLR_CXX_SUPPORTS_NAMESPACE
16     namespace antlr {
17     #endif
18    
19     struct TokenRef;
20    
21     /** A token is minimally a token type. Subclasses can add the text matched
22     * for the token and line info.
23     */
24     class ANTLR_API Token
25     {
26     public:
27     // constants
28     #ifndef NO_STATIC_CONSTS
29     static const int MIN_USER_TYPE = 4;
30     static const int NULL_TREE_LOOKAHEAD = 3;
31     static const int INVALID_TYPE = 0;
32     static const int EOF_TYPE = 1;
33     static const int SKIP = -1;
34     #else
35     enum {
36     MIN_USER_TYPE = 4,
37     NULL_TREE_LOOKAHEAD = 3,
38     INVALID_TYPE = 0,
39     EOF_TYPE = 1,
40     SKIP = -1
41     };
42     #endif
43    
44     Token()
45     : ref(0)
46     , type(INVALID_TYPE)
47     {
48     }
49     Token(int t)
50     : ref(0)
51     , type(t)
52     {
53     }
54     Token(int t, const ANTLR_USE_NAMESPACE(std)string& txt)
55     : ref(0)
56     , type(t)
57     {
58     setText(txt);
59     }
60     virtual ~Token()
61     {
62     }
63    
64     virtual int getColumn() const;
65     virtual int getLine() const;
66     virtual ANTLR_USE_NAMESPACE(std)string getText() const;
67     virtual const ANTLR_USE_NAMESPACE(std)string& getFilename() const;
68     virtual int getType() const;
69    
70     virtual void setColumn(int c);
71    
72     virtual void setLine(int l);
73     virtual void setText(const ANTLR_USE_NAMESPACE(std)string& t);
74     virtual void setType(int t);
75    
76     virtual void setFilename( const std::string& file );
77    
78     virtual ANTLR_USE_NAMESPACE(std)string toString() const;
79    
80     private:
81     friend struct TokenRef;
82     TokenRef* ref;
83    
84     int type; ///< the type of the token
85    
86     Token(RefToken other);
87     Token& operator=(const Token& other);
88     Token& operator=(RefToken other);
89    
90     Token(const Token&);
91     };
92    
93     extern ANTLR_API RefToken nullToken;
94    
95     #ifdef NEEDS_OPERATOR_LESS_THAN
96     // RK: Added after 2.7.2 previously it was undefined.
97     // AL: what to return if l and/or r point to nullToken???
98     inline bool operator<( RefToken l, RefToken r )
99     {
100     return nullToken == l ? ( nullToken == r ? false : true ) : l->getType() < r->getType();
101     }
102     #endif
103    
104     #ifdef ANTLR_CXX_SUPPORTS_NAMESPACE
105     }
106     #endif
107    
108     #endif //INC_Token_hpp__

Properties

Name Value
svn:keywords Author Id Revision Date