KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > commons > jexl > parser > Token


1 /*
2  * Copyright 2002-2006 The Apache Software Foundation.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */

16 /* Generated By:JavaCC: Do not edit this line. Token.java Version 2.1 */
17 package org.apache.commons.jexl.parser;
18
19 /**
20  * Describes the input token stream.
21  */

22
23 public class Token {
24
25     /**
26      * An integer that describes the kind of this token. This numbering system
27      * is determined by JavaCCParser, and a table of these numbers is stored in
28      * the file ...Constants.java.
29      */

30     public int kind;
31
32     /**
33      * beginLine and beginColumn describe the position of the first character of
34      * this token; endLine and endColumn describe the position of the last
35      * character of this token.
36      */

37     public int beginLine, beginColumn, endLine, endColumn;
38
39     /**
40      * The string image of the token.
41      */

42     public String JavaDoc image;
43
44     /**
45      * A reference to the next regular (non-special) token from the input
46      * stream. If this is the last token from the input stream, or if the token
47      * manager has not read tokens beyond this one, this field is set to null.
48      * This is true only if this token is also a regular token. Otherwise, see
49      * below for a description of the contents of this field.
50      */

51     public Token next;
52
53     /**
54      * This field is used to access special tokens that occur prior to this
55      * token, but after the immediately preceding regular (non-special) token.
56      * If there are no such special tokens, this field is set to null. When
57      * there are more than one such special token, this field refers to the last
58      * of these special tokens, which in turn refers to the next previous
59      * special token through its specialToken field, and so on until the first
60      * special token (whose specialToken field is null). The next fields of
61      * special tokens refer to other special tokens that immediately follow it
62      * (without an intervening regular token). If there is no such token, this
63      * field is null.
64      */

65     public Token specialToken;
66
67     /**
68      * Returns the image.
69      */

70     public final String JavaDoc toString() {
71         return image;
72     }
73
74     /**
75      * Returns a new Token object, by default. However, if you want, you can
76      * create and return subclass objects based on the value of ofKind. Simply
77      * add the cases to the switch for all those special cases. For example, if
78      * you have a subclass of Token called IDToken that you want to create if
79      * ofKind is ID, simlpy add something like :
80      *
81      * case MyParserConstants.ID : return new IDToken();
82      *
83      * to the following switch statement. Then you can cast matchedToken
84      * variable to the appropriate type and use it in your lexical actions.
85      */

86     public static final Token newToken(int ofKind) {
87         switch (ofKind) {
88             default:
89                 return new Token();
90         }
91     }
92
93 }
94
Popular Tags