001: /*
002: * Copyright (c) 2007, intarsys consulting GmbH
003: *
004: * Redistribution and use in source and binary forms, with or without
005: * modification, are permitted provided that the following conditions are met:
006: *
007: * - Redistributions of source code must retain the above copyright notice,
008: * this list of conditions and the following disclaimer.
009: *
010: * - Redistributions in binary form must reproduce the above copyright notice,
011: * this list of conditions and the following disclaimer in the documentation
012: * and/or other materials provided with the distribution.
013: *
014: * - Neither the name of intarsys nor the names of its contributors may be used
015: * to endorse or promote products derived from this software without specific
016: * prior written permission.
017: *
018: * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
019: * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
020: * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
021: * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
022: * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
023: * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
024: * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
025: * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
026: * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
027: * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
028: * POSSIBILITY OF SUCH DAMAGE.
029: */
030: /* Generated By:JavaCC: Do not edit this line. Token.java Version 3.0 */
031: package de.intarsys.pdf.postscript;
032:
033: /**
034: * Describes the input token stream.
035: */
036: public class Token {
037: /**
038: * Returns a new Token object, by default. However, if you want, you can
039: * create and return subclass objects based on the value of ofKind. Simply
040: * add the cases to the switch for all those special cases. For example, if
041: * you have a subclass of Token called IDToken that you want to create if
042: * ofKind is ID, simlpy add something like :
043: *
044: * case MyParserConstants.ID : return new IDToken();
045: *
046: * to the following switch statement. Then you can cast matchedToken
047: * variable to the appropriate type and use it in your lexical actions.
048: */
049: public static final Token newToken(int ofKind) {
050: switch (ofKind) {
051: default:
052: return new Token();
053: }
054: }
055:
056: /**
057: * beginLine and beginColumn describe the position of the first character of
058: * this token; endLine and endColumn describe the position of the last
059: * character of this token.
060: */
061: public int beginLine;
062:
063: /**
064: * beginLine and beginColumn describe the position of the first character of
065: * this token; endLine and endColumn describe the position of the last
066: * character of this token.
067: */
068: public int beginColumn;
069:
070: /**
071: * beginLine and beginColumn describe the position of the first character of
072: * this token; endLine and endColumn describe the position of the last
073: * character of this token.
074: */
075: public int endLine;
076:
077: /**
078: * beginLine and beginColumn describe the position of the first character of
079: * this token; endLine and endColumn describe the position of the last
080: * character of this token.
081: */
082: public int endColumn;
083:
084: /**
085: * The string image of the token.
086: */
087: public String image;
088:
089: /**
090: * An integer that describes the kind of this token. This numbering system
091: * is determined by JavaCCParser, and a table of these numbers is stored in
092: * the file ...Constants.java.
093: */
094: public int kind;
095:
096: /**
097: * A reference to the next regular (non-special) token from the input
098: * stream. If this is the last token from the input stream, or if the token
099: * manager has not read tokens beyond this one, this field is set to null.
100: * This is true only if this token is also a regular token. Otherwise, see
101: * below for a description of the contents of this field.
102: */
103: public Token next;
104:
105: /**
106: * This field is used to access special tokens that occur prior to this
107: * token, but after the immediately preceding regular (non-special) token.
108: * If there are no such special tokens, this field is set to null. When
109: * there are more than one such special token, this field refers to the last
110: * of these special tokens, which in turn refers to the next previous
111: * special token through its specialToken field, and so on until the first
112: * special token (whose specialToken field is null). The next fields of
113: * special tokens refer to other special tokens that immediately follow it
114: * (without an intervening regular token). If there is no such token, this
115: * field is null.
116: */
117: public Token specialToken;
118:
119: /**
120: * Returns the image.
121: */
122: public String toString() {
123: return image;
124: }
125: }
|