1 /* Generated By:JavaCC: Do not edit this line. Token.java Version 5.0 */
2 /* JavaCCOptions:TOKEN_EXTENDS=,KEEP_LINE_COL=null,SUPPORT_CLASS_VISIBILITY_PUBLIC=true */
3 /* Copyright (C) 2002 Albert Tumanov
4
5 This library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
9
10 This library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public
16 License along with this library; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18
19 */
20
21 package net.sourceforge.pmd.lang.plsql.ast;
22
23 /**
24 * Describes the input token stream.
25 */
26
27 public class Token implements java.io.Serializable {
28
29 /**
30 * The version identifier for this Serializable class.
31 * Increment only if the <i>serialized</i> form of the
32 * class changes.
33 */
34 private static final long serialVersionUID = 1L;
35
36 /**
37 * An integer that describes the kind of this token. This numbering
38 * system is determined by JavaCCParser, and a table of these numbers is
39 * stored in the file ...Constants.java.
40 */
41 public int kind;
42
43 /** The line number of the first character of this Token. */
44 public int beginLine;
45 /** The column number of the first character of this Token. */
46 public int beginColumn;
47 /** The line number of the last character of this Token. */
48 public int endLine;
49 /** The column number of the last character of this Token. */
50 public int endColumn;
51
52 /**
53 * The string image of the token.
54 */
55 public String image;
56
57 /**
58 * A reference to the next regular (non-special) token from the input
59 * stream. If this is the last token from the input stream, or if the
60 * token manager has not read tokens beyond this one, this field is
61 * set to null. This is true only if this token is also a regular
62 * token. Otherwise, see below for a description of the contents of
63 * this field.
64 */
65 public Token next;
66
67 /**
68 * This field is used to access special tokens that occur prior to this
69 * token, but after the immediately preceding regular (non-special) token.
70 * If there are no such special tokens, this field is set to null.
71 * When there are more than one such special token, this field refers
72 * to the last of these special tokens, which in turn refers to the next
73 * previous special token through its specialToken field, and so on
74 * until the first special token (whose specialToken field is null).
75 * The next fields of special tokens refer to other special tokens that
76 * immediately follow it (without an intervening regular token). If there
77 * is no such token, this field is null.
78 */
79 public Token specialToken;
80
81 /**
82 * An optional attribute value of the Token.
83 * Tokens which are not used as syntactic sugar will often contain
84 * meaningful values that will be used later on by the compiler or
85 * interpreter. This attribute value is often different from the image.
86 * Any subclass of Token that actually wants to return a non-null value can
87 * override this method as appropriate.
88 */
89 public Object getValue() {
90 return null;
91 }
92
93 /**
94 * No-argument constructor
95 */
96 public Token() {}
97
98 /**
99 * Constructs a new token for the specified Image.
100 */
101 public Token(int kind)
102 {
103 this(kind, null);
104 }
105
106 /**
107 * Constructs a new token for the specified Image and Kind.
108 */
109 public Token(int kind, String image)
110 {
111 this.kind = kind;
112 this.image = image;
113 }
114
115 /**
116 * Returns the image.
117 */
118 public String toString()
119 {
120 return image;
121 }
122
123 /**
124 * Returns a new Token object, by default. However, if you want, you
125 * can create and return subclass objects based on the value of ofKind.
126 * Simply add the cases to the switch for all those special cases.
127 * For example, if you have a subclass of Token called IDToken that
128 * you want to create if ofKind is ID, simply add something like :
129 *
130 * case MyParserConstants.ID : return new IDToken(ofKind, image);
131 *
132 * to the following switch statement. Then you can cast matchedToken
133 * variable to the appropriate type and use sit in your lexical actions.
134 */
135 public static Token newToken(int ofKind, String image)
136 {
137 switch(ofKind)
138 {
139 default : return new Token(ofKind, image);
140 }
141 }
142
143 public static Token newToken(int ofKind)
144 {
145 return newToken(ofKind, null);
146 }
147
148 }
149 /* JavaCC - OriginalChecksum=24ca477238e72ac9c11ff63c8ce9c549 (do not edit this line) */