source: trunk/yao/share/antlr-2.7.7/lib/cpp/antlr/TokenWithIndex.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.6 KB
Line 
1#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:$
9 */
10
11#include <antlr/config.hpp>
12#include <antlr/CommonToken.hpp>
13#include <antlr/String.hpp>
14
15#ifdef ANTLR_CXX_SUPPORTS_NAMESPACE
16namespace antlr {
17#endif
18
19class ANTLR_API TokenWithIndex : public ANTLR_USE_NAMESPACE(antlr)CommonToken {
20public:
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
70protected:
71        size_t index;
72
73private:
74        TokenWithIndex(const TokenWithIndex&);
75        const TokenWithIndex& operator=(const TokenWithIndex&);
76};
77
78typedef TokenRefCount<TokenWithIndex> RefTokenWithIndex;
79
80#ifdef ANTLR_CXX_SUPPORTS_NAMESPACE
81}
82#endif
83
84#endif //INC_CommonToken_hpp__
Note: See TracBrowser for help on using the repository browser.