View Javadoc

    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 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 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  }