Lucene.Net  3.0.3
Lucene.Net is a port of the Lucene search engine library, written in C# and targeted at .NET runtime users.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Properties Pages
Token.cs
Go to the documentation of this file.
1 /*
2  * Licensed to the Apache Software Foundation (ASF) under one or more
3  * contributor license agreements. See the NOTICE file distributed with
4  * this work for additional information regarding copyright ownership.
5  * The ASF licenses this file to You under the Apache License, Version 2.0
6  * (the "License"); you may not use this file except in compliance with
7  * the License. You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17 
18 /* Generated By:JavaCC: Do not edit this line. Token.java Version 4.1 */
19 /* JavaCCOptions:TOKEN_EXTENDS=,KEEP_LINE_COL=null */
20 
21 using System;
22 
23 namespace Lucene.Net.QueryParsers
24 {
25 
26  /// <summary> Describes the input token stream.</summary>
27 
28  public class Token
29  {
30 
31  /// <summary> An integer that describes the kind of this token. This numbering
32  /// system is determined by JavaCCParser, and a table of these numbers is
33  /// stored in the file ...Constants.java.
34  /// </summary>
35  public int kind;
36 
37  /// <summary>The line number of the first character of this Token. </summary>
38  public int beginLine;
39  /// <summary>The column number of the first character of this Token. </summary>
40  public int beginColumn;
41  /// <summary>The line number of the last character of this Token. </summary>
42  public int endLine;
43  /// <summary>The column number of the last character of this Token. </summary>
44  public int endColumn;
45 
46  /// <summary> The string image of the token.</summary>
47  public System.String image;
48 
49  /// <summary> A reference to the next regular (non-special) token from the input
50  /// stream. If this is the last token from the input stream, or if the
51  /// token manager has not read tokens beyond this one, this field is
52  /// set to null. This is true only if this token is also a regular
53  /// token. Otherwise, see below for a description of the contents of
54  /// this field.
55  /// </summary>
56  public Token next;
57 
58  /// <summary> This field is used to access special tokens that occur prior to this
59  /// token, but after the immediately preceding regular (non-special) token.
60  /// If there are no such special tokens, this field is set to null.
61  /// When there are more than one such special token, this field refers
62  /// to the last of these special tokens, which in turn refers to the next
63  /// previous special token through its specialToken field, and so on
64  /// until the first special token (whose specialToken field is null).
65  /// The next fields of special tokens refer to other special tokens that
66  /// immediately follow it (without an intervening regular token). If there
67  /// is no such token, this field is null.
68  /// </summary>
70 
71  /// <summary> An optional attribute value of the Token.
72  /// Tokens which are not used as syntactic sugar will often contain
73  /// meaningful values that will be used later on by the compiler or
74  /// interpreter. This attribute value is often different from the image.
75  /// Any subclass of Token that actually wants to return a non-null value can
76  /// override this method as appropriate.
77  /// </summary>
78  public virtual object Value
79  {
80  get { return null; }
81  }
82 
83  /// <summary> No-argument constructor</summary>
84  public Token()
85  {
86  }
87 
88  /// <summary> Constructs a new token for the specified Image.</summary>
89  public Token(int kind):this(kind, null)
90  {
91  }
92 
93  /// <summary> Constructs a new token for the specified Image and Kind.</summary>
94  public Token(int kind, System.String image)
95  {
96  this.kind = kind;
97  this.image = image;
98  }
99 
100  /// <summary> Returns the image.</summary>
101  public override System.String ToString()
102  {
103  return image;
104  }
105 
106  /// <summary> Returns a new Token object, by default. However, if you want, you
107  /// can create and return subclass objects based on the value of ofKind.
108  /// Simply add the cases to the switch for all those special cases.
109  /// For example, if you have a subclass of Token called IDToken that
110  /// you want to create if ofKind is ID, simply add something like :
111  ///
112  /// case MyParserConstants.ID : return new IDToken(ofKind, image);
113  ///
114  /// to the following switch statement. Then you can cast matchedToken
115  /// variable to the appropriate type and use sit in your lexical actions.
116  /// </summary>
117  public static Token NewToken(int ofKind, System.String image)
118  {
119  switch (ofKind)
120  {
121 
122  default: return new Token(ofKind, image);
123 
124  }
125  }
126 
127  public static Token NewToken(int ofKind)
128  {
129  return NewToken(ofKind, null);
130  }
131  }
132  /* JavaCC - OriginalChecksum=c147cc166a7cf8812c7c39bc8c5eb868 (do not edit this line) */
133 }