001/* Generated By:JavaCC: Do not edit this line. Token.java Version 5.0 */
002/* JavaCCOptions:TOKEN_EXTENDS=,KEEP_LINE_COL=null,SUPPORT_CLASS_VISIBILITY_PUBLIC=true */
003/**
004 * Licensed to the Apache Software Foundation (ASF) under one or more
005 * contributor license agreements.  See the NOTICE file distributed with
006 * this work for additional information regarding copyright ownership.
007 * The ASF licenses this file to You under the Apache License, Version 2.0
008 * (the "License"); you may not use this file except in compliance with
009 * the License.  You may obtain a copy of the License at
010 *
011 *      http://www.apache.org/licenses/LICENSE-2.0
012 *
013 * Unless required by applicable law or agreed to in writing, software
014 * distributed under the License is distributed on an "AS IS" BASIS,
015 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
016 * See the License for the specific language governing permissions and
017 * limitations under the License.
018 */
019
020package org.apache.activemq.selector;
021
022/**
023 * Describes the input token stream.
024 */
025
026public class Token implements java.io.Serializable {
027
028  /**
029   * The version identifier for this Serializable class.
030   * Increment only if the <i>serialized</i> form of the
031   * class changes.
032   */
033  private static final long serialVersionUID = 1L;
034
035  /**
036   * An integer that describes the kind of this token.  This numbering
037   * system is determined by JavaCCParser, and a table of these numbers is
038   * stored in the file ...Constants.java.
039   */
040  public int kind;
041
042  /** The line number of the first character of this Token. */
043  public int beginLine;
044  /** The column number of the first character of this Token. */
045  public int beginColumn;
046  /** The line number of the last character of this Token. */
047  public int endLine;
048  /** The column number of the last character of this Token. */
049  public int endColumn;
050
051  /**
052   * The string image of the token.
053   */
054  public String image;
055
056  /**
057   * A reference to the next regular (non-special) token from the input
058   * stream.  If this is the last token from the input stream, or if the
059   * token manager has not read tokens beyond this one, this field is
060   * set to null.  This is true only if this token is also a regular
061   * token.  Otherwise, see below for a description of the contents of
062   * this field.
063   */
064  public Token next;
065
066  /**
067   * This field is used to access special tokens that occur prior to this
068   * token, but after the immediately preceding regular (non-special) token.
069   * If there are no such special tokens, this field is set to null.
070   * When there are more than one such special token, this field refers
071   * to the last of these special tokens, which in turn refers to the next
072   * previous special token through its specialToken field, and so on
073   * until the first special token (whose specialToken field is null).
074   * The next fields of special tokens refer to other special tokens that
075   * immediately follow it (without an intervening regular token).  If there
076   * is no such token, this field is null.
077   */
078  public Token specialToken;
079
080  /**
081   * An optional attribute value of the Token.
082   * Tokens which are not used as syntactic sugar will often contain
083   * meaningful values that will be used later on by the compiler or
084   * interpreter. This attribute value is often different from the image.
085   * Any subclass of Token that actually wants to return a non-null value can
086   * override this method as appropriate.
087   */
088  public Object getValue() {
089    return null;
090  }
091
092  /**
093   * No-argument constructor
094   */
095  public Token() {}
096
097  /**
098   * Constructs a new token for the specified Image.
099   */
100  public Token(int kind)
101  {
102    this(kind, null);
103  }
104
105  /**
106   * Constructs a new token for the specified Image and Kind.
107   */
108  public Token(int kind, String image)
109  {
110    this.kind = kind;
111    this.image = image;
112  }
113
114  /**
115   * Returns the image.
116   */
117  public String toString()
118  {
119    return image;
120  }
121
122  /**
123   * Returns a new Token object, by default. However, if you want, you
124   * can create and return subclass objects based on the value of ofKind.
125   * Simply add the cases to the switch for all those special cases.
126   * For example, if you have a subclass of Token called IDToken that
127   * you want to create if ofKind is ID, simply add something like :
128   *
129   *    case MyParserConstants.ID : return new IDToken(ofKind, image);
130   *
131   * to the following switch statement. Then you can cast matchedToken
132   * variable to the appropriate type and use sit in your lexical actions.
133   */
134  public static Token newToken(int ofKind, String image)
135  {
136    switch(ofKind)
137    {
138      default : return new Token(ofKind, image);
139    }
140  }
141
142  public static Token newToken(int ofKind)
143  {
144    return newToken(ofKind, null);
145  }
146
147}
148/* JavaCC - OriginalChecksum=cceebd6172351f8acb945ed975ac0c61 (do not edit this line) */