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

File Contents

# User Rev Content
1 tim 2469 #ifndef INC_TokenWithIndex_hpp__
2     #define INC_TokenWithIndex_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: TokenWithIndex.hpp,v 1.1 2005-12-02 15:38:02 tim Exp $
9     */
10    
11     #include <antlr/config.hpp>
12     #include <antlr/CommonToken.hpp>
13     #include <antlr/String.hpp>
14    
15     #ifdef ANTLR_CXX_SUPPORTS_NAMESPACE
16     namespace antlr {
17     #endif
18    
19     class ANTLR_API TokenWithIndex : public ANTLR_USE_NAMESPACE(antlr)CommonToken {
20     public:
21     // static size_t count;
22     TokenWithIndex() : CommonToken(), index(0)
23     {
24     // std::cout << __PRETTY_FUNCTION__ << std::endl;
25     // count++;
26     }
27     TokenWithIndex(int t, const ANTLR_USE_NAMESPACE(std)string& txt)
28     : CommonToken(t,txt)
29     , index(0)
30     {
31     // std::cout << __PRETTY_FUNCTION__ << std::endl;
32     // count++;
33     }
34     TokenWithIndex(const ANTLR_USE_NAMESPACE(std)string& s)
35     : CommonToken(s)
36     , index(0)
37     {
38     // std::cout << __PRETTY_FUNCTION__ << std::endl;
39     // count++;
40     }
41     ~TokenWithIndex()
42     {
43     // count--;
44     }
45     void setIndex( size_t idx )
46     {
47     index = idx;
48     }
49     size_t getIndex( void ) const
50     {
51     return index;
52     }
53    
54     ANTLR_USE_NAMESPACE(std)string toString() const
55     {
56     return ANTLR_USE_NAMESPACE(std)string("[")+
57     index+
58     ":\""+
59     getText()+"\",<"+
60     getType()+">,line="+
61     getLine()+",column="+
62     getColumn()+"]";
63     }
64    
65     static RefToken factory()
66     {
67     return RefToken(new TokenWithIndex());
68     }
69    
70     protected:
71     size_t index;
72    
73     private:
74     TokenWithIndex(const TokenWithIndex&);
75     const TokenWithIndex& operator=(const TokenWithIndex&);
76     };
77    
78     typedef TokenRefCount<TokenWithIndex> RefTokenWithIndex;
79    
80     #ifdef ANTLR_CXX_SUPPORTS_NAMESPACE
81     }
82     #endif
83    
84     #endif //INC_CommonToken_hpp__