1 /* Generated By:JavaCC: Do not edit this line. Token.java Version 0.7pre3 */ 2 3 /** 4 * Redistribution and use of this software and associated documentation 5 * ("Software"), with or without modification, are permitted provided 6 * that the following conditions are met: 7 * 8 * 1. Redistributions of source code must retain copyright 9 * statements and notices. Redistributions must also contain a 10 * copy of this document. 11 * 12 * 2. Redistributions in binary form must reproduce the 13 * above copyright notice, this list of conditions and the 14 * following disclaimer in the documentation and/or other 15 * materials provided with the distribution. 16 * 17 * 3. The name "Exolab" must not be used to endorse or promote 18 * products derived from this Software without prior written 19 * permission of Intalio, Inc. For written permission, 20 * please contact info@exolab.org. 21 * 22 * 4. Products derived from this Software may not be called "Exolab" 23 * nor may "Exolab" appear in their names without prior written 24 * permission of Intalio, Inc. Exolab is a registered 25 * trademark of Intalio, Inc. 26 * 27 * 5. Due credit should be given to the Exolab Project 28 * (http://www.exolab.org/). 29 * 30 * THIS SOFTWARE IS PROVIDED BY INTALIO, INC. AND CONTRIBUTORS 31 * ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT 32 * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 33 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL 34 * INTALIO, INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 35 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 36 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 37 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 38 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 39 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 40 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 41 * OF THE POSSIBILITY OF SUCH DAMAGE. 42 * 43 * Copyright 2000 (C) Intalio Inc. All Rights Reserved. 44 * 45 * $Id$ 46 */ 47 48 package org.exolab.castor.xml.dtd.parser; 49 50 /** 51 * Describes the input token stream. 52 * @author Generated automatically by <b>JavaCC</b> 53 * @version Version 0.7pre3 54 */ 55 public class Token { 56 57 /** 58 * An integer that describes the kind of this token. This numbering 59 * system is determined by JavaCCParser, and a table of these numbers is 60 * stored in the file ...Constants.java. 61 */ 62 public int kind; 63 64 /** 65 * beginLine and beginColumn describe the position of the first character 66 * of this token; endLine and endColumn describe the position of the 67 * last character of this token. 68 */ 69 public int beginLine, beginColumn, endLine, endColumn; 70 71 /** 72 * The string image of the token. 73 */ 74 public String image; 75 76 /** 77 * A reference to the next regular (non-special) token from the input 78 * stream. If this is the last token from the input stream, or if the 79 * token manager has not read tokens beyond this one, this field is 80 * set to null. This is true only if this token is also a regular 81 * token. Otherwise, see below for a description of the contents of 82 * this field. 83 */ 84 public Token next; 85 86 /** 87 * This field is used to access special tokens that occur prior to this 88 * token, but after the immediately preceding regular (non-special) token. 89 * If there are no such special tokens, this field is set to null. 90 * When there are more than one such special token, this field refers 91 * to the last of these special tokens, which in turn refers to the next 92 * previous special token through its specialToken field, and so on 93 * until the first special token (whose specialToken field is null). 94 * The next fields of special tokens refer to other special tokens that 95 * immediately follow it (without an intervening regular token). If there 96 * is no such token, this field is null. 97 */ 98 public Token specialToken; 99 100 /** 101 * Returns the image. 102 */ 103 public final String toString() 104 { 105 return image; 106 } 107 108 /** 109 * Returns a new Token object, by default. However, if you want, you 110 * can create and return subclass objects based on the value of ofKind. 111 * Simply add the cases to the switch for all those special cases. 112 * For example, if you have a subclass of Token called IDToken that 113 * you want to create if ofKind is ID, simlpy add something like : 114 * 115 * case MyParserConstants.ID : return new IDToken(); 116 * 117 * to the following switch statement. Then you can cast matchedToken 118 * variable to the appropriate type and use it in your lexical actions. 119 */ 120 public static final Token newToken(int ofKind) 121 { 122 switch(ofKind) 123 { 124 default : return new Token(); 125 } 126 } 127 128 }