196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project/* Generated By:JavaCC: Do not edit this line. Token.java Version 3.0 */
296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project/*
396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project *  Copyright 2004 the mime4j project
496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project *
596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project *  Licensed under the Apache License, Version 2.0 (the "License");
696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project *  you may not use this file except in compliance with the License.
796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project *  You may obtain a copy of the License at
896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project *
996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project *      http://www.apache.org/licenses/LICENSE-2.0
1096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project *
1196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project *  Unless required by applicable law or agreed to in writing, software
1296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project *  distributed under the License is distributed on an "AS IS" BASIS,
1396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project *  See the License for the specific language governing permissions and
1596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project *  limitations under the License.
1696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */
1796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Projectpackage org.apache.james.mime4j.field.address.parser;
1896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project
1996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project/**
2096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project * Describes the input token stream.
2196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project */
2296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project
2396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Projectpublic class Token {
2496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project
2596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project  /**
2696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project   * An integer that describes the kind of this token.  This numbering
2796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project   * system is determined by JavaCCParser, and a table of these numbers is
2896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project   * stored in the file ...Constants.java.
2996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project   */
3096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project  public int kind;
3196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project
3296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project  /**
3396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project   * beginLine and beginColumn describe the position of the first character
3496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project   * of this token; endLine and endColumn describe the position of the
3596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project   * last character of this token.
3696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project   */
3796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project  public int beginLine, beginColumn, endLine, endColumn;
3896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project
3996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project  /**
4096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project   * The string image of the token.
4196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project   */
4296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project  public String image;
4396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project
4496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project  /**
4596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project   * A reference to the next regular (non-special) token from the input
4696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project   * stream.  If this is the last token from the input stream, or if the
4796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project   * token manager has not read tokens beyond this one, this field is
4896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project   * set to null.  This is true only if this token is also a regular
4996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project   * token.  Otherwise, see below for a description of the contents of
5096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project   * this field.
5196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project   */
5296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project  public Token next;
5396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project
5496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project  /**
5596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project   * This field is used to access special tokens that occur prior to this
5696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project   * token, but after the immediately preceding regular (non-special) token.
5796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project   * If there are no such special tokens, this field is set to null.
5896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project   * When there are more than one such special token, this field refers
5996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project   * to the last of these special tokens, which in turn refers to the next
6096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project   * previous special token through its specialToken field, and so on
6196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project   * until the first special token (whose specialToken field is null).
6296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project   * The next fields of special tokens refer to other special tokens that
6396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project   * immediately follow it (without an intervening regular token).  If there
6496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project   * is no such token, this field is null.
6596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project   */
6696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project  public Token specialToken;
6796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project
6896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project  /**
6996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project   * Returns the image.
7096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project   */
7196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project  public String toString()
7296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project  {
7396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project     return image;
7496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project  }
7596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project
7696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project  /**
7796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project   * Returns a new Token object, by default. However, if you want, you
7896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project   * can create and return subclass objects based on the value of ofKind.
7996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project   * Simply add the cases to the switch for all those special cases.
8096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project   * For example, if you have a subclass of Token called IDToken that
8196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project   * you want to create if ofKind is ID, simlpy add something like :
8296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project   *
8396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project   *    case MyParserConstants.ID : return new IDToken();
8496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project   *
8596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project   * to the following switch statement. Then you can cast matchedToken
8696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project   * variable to the appropriate type and use it in your lexical actions.
8796c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project   */
8896c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project  public static final Token newToken(int ofKind)
8996c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project  {
9096c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project     switch(ofKind)
9196c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project     {
9296c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project       default : return new Token();
9396c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project     }
9496c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project  }
9596c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project
9696c5af40d639d629267794f4f0338a267ff94ce5The Android Open Source Project}
97