/* | 
|
 * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved. | 
|
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. | 
|
 * | 
|
 * This code is free software; you can redistribute it and/or modify it | 
|
 * under the terms of the GNU General Public License version 2 only, as | 
|
 * published by the Free Software Foundation.  Oracle designates this | 
|
 * particular file as subject to the "Classpath" exception as provided | 
|
 * by Oracle in the LICENSE file that accompanied this code. | 
|
 * | 
|
 * This code is distributed in the hope that it will be useful, but WITHOUT | 
|
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 
|
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License | 
|
 * version 2 for more details (a copy is included in the LICENSE file that | 
|
 * accompanied this code). | 
|
 * | 
|
 * You should have received a copy of the GNU General Public License version | 
|
 * 2 along with this work; if not, write to the Free Software Foundation, | 
|
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. | 
|
 * | 
|
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA | 
|
 * or visit www.oracle.com if you need additional information or have any | 
|
 * questions. | 
|
*/  | 
|
/*  | 
|
* This source code is provided to illustrate the usage of a given feature  | 
|
* or technique and has been deliberately simplified. Additional steps  | 
|
* required for a production-quality application, such as security checks,  | 
|
* input validation and proper error handling, might not be present in  | 
|
* this sample code.  | 
|
*/  | 
|
/* Generated By:JavaCC: Do not edit this line. Token.java Version 0.7pre3 */ | 
|
package com.sun.tools.example.debug.expr;  | 
|
/**  | 
|
* Describes the input token stream.  | 
|
*/  | 
|
public class Token { | 
|
  /** | 
|
   * An integer that describes the kind of this token.  This numbering | 
|
   * system is determined by JavaCCParser, and a table of these numbers is | 
|
   * stored in the file ...Constants.java. | 
|
*/  | 
|
public int kind;  | 
|
  /** | 
|
   * beginLine and beginColumn describe the position of the first character | 
|
   * of this token; endLine and endColumn describe the position of the | 
|
   * last character of this token. | 
|
*/  | 
|
public int beginLine, beginColumn, endLine, endColumn;  | 
|
  /** | 
|
   * The string image of the token. | 
|
*/  | 
|
public String image;  | 
|
  /** | 
|
   * A reference to the next regular (non-special) token from the input | 
|
   * stream.  If this is the last token from the input stream, or if the | 
|
   * token manager has not read tokens beyond this one, this field is | 
|
   * set to null.  This is true only if this token is also a regular | 
|
   * token.  Otherwise, see below for a description of the contents of | 
|
   * this field. | 
|
*/  | 
|
public Token next;  | 
|
  /** | 
|
   * This field is used to access special tokens that occur prior to this | 
|
   * token, but after the immediately preceding regular (non-special) token. | 
|
   * If there are no such special tokens, this field is set to null. | 
|
   * When there are more than one such special token, this field refers | 
|
   * to the last of these special tokens, which in turn refers to the next | 
|
   * previous special token through its specialToken field, and so on | 
|
   * until the first special token (whose specialToken field is null). | 
|
   * The next fields of special tokens refer to other special tokens that | 
|
   * immediately follow it (without an intervening regular token).  If there | 
|
   * is no such token, this field is null. | 
|
*/  | 
|
public Token specialToken;  | 
|
  /** | 
|
   * Returns the image. | 
|
*/  | 
|
@Override  | 
|
public final String toString()  | 
|
  { | 
|
return image;  | 
|
}  | 
|
  /** | 
|
   * Returns a new Token object, by default. However, if you want, you | 
|
   * can create and return subclass objects based on the value of ofKind. | 
|
   * Simply add the cases to the switch for all those special cases. | 
|
   * For example, if you have a subclass of Token called IDToken that | 
|
   * you want to create if ofKind is ID, simlpy add something like : | 
|
   * | 
|
   *    case MyParserConstants.ID : return new IDToken(); | 
|
   * | 
|
   * to the following switch statement. Then you can cast matchedToken | 
|
   * variable to the appropriate type and use it in your lexical actions. | 
|
*/  | 
|
public static final Token newToken(int ofKind)  | 
|
  { | 
|
switch(ofKind)  | 
|
     { | 
|
default : return new Token();  | 
|
}  | 
|
}  | 
|
}  |