001/* Generated By:JavaCC: Do not edit this line. Token.java Version 7.0 */ 002/* JavaCCOptions:TOKEN_EXTENDS=,KEEP_LINE_COLUMN=true,SUPPORT_CLASS_VISIBILITY_PUBLIC=true */ 003/**************************************************************** 004 * Licensed to the Apache Software Foundation (ASF) under one * 005 * or more contributor license agreements. See the NOTICE file * 006 * distributed with this work for additional information * 007 * regarding copyright ownership. The ASF licenses this file * 008 * to you under the Apache License, Version 2.0 (the * 009 * "License"); you may not use this file except in compliance * 010 * with the License. You may obtain a copy of the License at * 011 * * 012 * http://www.apache.org/licenses/LICENSE-2.0 * 013 * * 014 * Unless required by applicable law or agreed to in writing, * 015 * software distributed under the License is distributed on an * 016 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * 017 * KIND, either express or implied. See the License for the * 018 * specific language governing permissions and limitations * 019 * under the License. * 020 ****************************************************************/ 021package org.apache.james.mime4j.field.address; 022 023/** 024 * Describes the input token stream. 025 */ 026 027public class Token implements java.io.Serializable { 028 029 /** 030 * The version identifier for this Serializable class. 031 * Increment only if the <i>serialized</i> form of the 032 * class changes. 033 */ 034 private static final long serialVersionUID = 1L; 035 036 /** 037 * An integer that describes the kind of this token. This numbering 038 * system is determined by JavaCCParser, and a table of these numbers is 039 * stored in the file ...Constants.java. 040 */ 041 public int kind; 042 043 /** The line number of the first character of this Token. */ 044 public int beginLine; 045 /** The column number of the first character of this Token. */ 046 public int beginColumn; 047 /** The line number of the last character of this Token. */ 048 public int endLine; 049 /** The column number of the last character of this Token. */ 050 public int endColumn; 051 052 /** 053 * The string image of the token. 054 */ 055 public String image; 056 057 /** 058 * A reference to the next regular (non-special) token from the input 059 * stream. If this is the last token from the input stream, or if the 060 * token manager has not read tokens beyond this one, this field is 061 * set to null. This is true only if this token is also a regular 062 * token. Otherwise, see below for a description of the contents of 063 * this field. 064 */ 065 public Token next; 066 067 /** 068 * This field is used to access special tokens that occur prior to this 069 * token, but after the immediately preceding regular (non-special) token. 070 * If there are no such special tokens, this field is set to null. 071 * When there are more than one such special token, this field refers 072 * to the last of these special tokens, which in turn refers to the next 073 * previous special token through its specialToken field, and so on 074 * until the first special token (whose specialToken field is null). 075 * The next fields of special tokens refer to other special tokens that 076 * immediately follow it (without an intervening regular token). If there 077 * is no such token, this field is null. 078 */ 079 public Token specialToken; 080 081 /** 082 * An optional attribute value of the Token. 083 * Tokens which are not used as syntactic sugar will often contain 084 * meaningful values that will be used later on by the compiler or 085 * interpreter. This attribute value is often different from the image. 086 * Any subclass of Token that actually wants to return a non-null value can 087 * override this method as appropriate. 088 */ 089 public Object getValue() { 090 return null; 091 } 092 093 /** 094 * No-argument constructor 095 */ 096 public Token() {} 097 098 /** 099 * Constructs a new token for the specified Image. 100 */ 101 public Token(int kind) 102 { 103 this(kind, null); 104 } 105 106 /** 107 * Constructs a new token for the specified Image and Kind. 108 */ 109 public Token(int kind, String image) 110 { 111 this.kind = kind; 112 this.image = image; 113 } 114 115 /** 116 * Returns the image. 117 */ 118 public String toString() 119 { 120 return image; 121 } 122 123 /** 124 * Returns a new Token object, by default. However, if you want, you 125 * can create and return subclass objects based on the value of ofKind. 126 * Simply add the cases to the switch for all those special cases. 127 * For example, if you have a subclass of Token called IDToken that 128 * you want to create if ofKind is ID, simply add something like : 129 * 130 * case MyParserConstants.ID : return new IDToken(ofKind, image); 131 * 132 * to the following switch statement. Then you can cast matchedToken 133 * variable to the appropriate type and use sit in your lexical actions. 134 */ 135 public static Token newToken(int ofKind, String image) 136 { 137 switch(ofKind) 138 { 139 default : return new Token(ofKind, image); 140 } 141 } 142 143 public static Token newToken(int ofKind) 144 { 145 return newToken(ofKind, null); 146 } 147 148} 149/* JavaCC - OriginalChecksum=a6fff4cbde627b7d2e1dea3ab5bf78cb (do not edit this line) */