1bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook/* Generated By:JavaCC: Do not edit this line. ContentTypeParser.java */
2bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook/*
3bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook *  Copyright 2004 the mime4j project
4bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook *
5bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook *  Licensed under the Apache License, Version 2.0 (the "License");
6bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook *  you may not use this file except in compliance with the License.
7bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook *  You may obtain a copy of the License at
8bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook *
9bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook *      http://www.apache.org/licenses/LICENSE-2.0
10bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook *
11bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook *  Unless required by applicable law or agreed to in writing, software
12bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook *  distributed under the License is distributed on an "AS IS" BASIS,
13bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook *  See the License for the specific language governing permissions and
15bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook *  limitations under the License.
16bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook */
17bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrookpackage org.apache.james.mime4j.field.contenttype.parser;
18bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook
19bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrookimport java.util.ArrayList;
20bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrookimport java.util.Vector;
21bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook
22bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrookpublic class ContentTypeParser implements ContentTypeParserConstants {
23bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook
24bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook        private String type;
25bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook        private String subtype;
26bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook        private ArrayList<String> paramNames = new ArrayList<String>();
27bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook        private ArrayList<String> paramValues = new ArrayList<String>();
28bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook
29bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook        public String getType() { return type; }
30bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook        public String getSubType() { return subtype; }
31bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook        public ArrayList<String> getParamNames() { return paramNames; }
32bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook        public ArrayList<String> getParamValues() { return paramValues; }
33bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook
34bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    public static void main(String args[]) throws ParseException {
35bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook        while (true) {
36bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook            try {
37bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook                ContentTypeParser parser = new ContentTypeParser(System.in);
38bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook                parser.parseLine();
39bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook            } catch (Exception x) {
40bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook                x.printStackTrace();
41bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook                return;
42bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook            }
43bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook        }
44bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    }
45bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook
46bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook  final public void parseLine() throws ParseException {
47bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    parse();
48bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
49bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    case 1:
50bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook      jj_consume_token(1);
51bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook      break;
52bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    default:
53bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook      jj_la1[0] = jj_gen;
54bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook      ;
55bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    }
56bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    jj_consume_token(2);
57bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook  }
58bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook
59bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook  final public void parseAll() throws ParseException {
60bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    parse();
61bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    jj_consume_token(0);
62bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook  }
63bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook
64bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook  final public void parse() throws ParseException {
65bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook        Token type;
66bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook        Token subtype;
67bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    type = jj_consume_token(ATOKEN);
68bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    jj_consume_token(3);
69bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    subtype = jj_consume_token(ATOKEN);
70bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook                this.type = type.image;
71bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook                this.subtype = subtype.image;
72bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    label_1:
73bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    while (true) {
74bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
75bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook      case 4:
76bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook        ;
77bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook        break;
78bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook      default:
79bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook        jj_la1[1] = jj_gen;
80bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook        break label_1;
81bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook      }
82bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook      jj_consume_token(4);
83bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook      parameter();
84bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    }
85bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook  }
86bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook
87bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook  final public void parameter() throws ParseException {
88bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook        Token attrib;
89bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook        String val;
90bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    attrib = jj_consume_token(ATOKEN);
91bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    jj_consume_token(5);
92bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    val = value();
93bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook                paramNames.add(attrib.image);
94bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook                paramValues.add(val);
95bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook  }
96bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook
97bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook  final public String value() throws ParseException {
98bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook Token t;
99bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
100bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    case ATOKEN:
101bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook      t = jj_consume_token(ATOKEN);
102bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook      break;
103bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    case QUOTEDSTRING:
104bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook      t = jj_consume_token(QUOTEDSTRING);
105bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook      break;
106bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    default:
107bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook      jj_la1[2] = jj_gen;
108bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook      jj_consume_token(-1);
109bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook      throw new ParseException();
110bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    }
111bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook          {if (true) return t.image;}
112bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    throw new Error("Missing return statement in function");
113bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook  }
114bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook
115bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook  public ContentTypeParserTokenManager token_source;
116bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook  SimpleCharStream jj_input_stream;
117bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook  public Token token, jj_nt;
118bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook  private int jj_ntk;
119bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook  private int jj_gen;
120bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook  final private int[] jj_la1 = new int[3];
121bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook  static private int[] jj_la1_0;
122bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook  static {
123bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook      jj_la1_0();
124bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook   }
125bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook   private static void jj_la1_0() {
126bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook      jj_la1_0 = new int[] {0x2,0x10,0x280000,};
127bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook   }
128bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook
129bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook  public ContentTypeParser(java.io.InputStream stream) {
130bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook     this(stream, null);
131bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook  }
132bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook  public ContentTypeParser(java.io.InputStream stream, String encoding) {
133bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    try { jj_input_stream = new SimpleCharStream(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); }
134bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    token_source = new ContentTypeParserTokenManager(jj_input_stream);
135bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    token = new Token();
136bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    jj_ntk = -1;
137bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    jj_gen = 0;
138bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    for (int i = 0; i < 3; i++) jj_la1[i] = -1;
139bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook  }
140bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook
141bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook  public void ReInit(java.io.InputStream stream) {
142bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook     ReInit(stream, null);
143bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook  }
144bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook  public void ReInit(java.io.InputStream stream, String encoding) {
145bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    try { jj_input_stream.ReInit(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); }
146bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    token_source.ReInit(jj_input_stream);
147bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    token = new Token();
148bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    jj_ntk = -1;
149bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    jj_gen = 0;
150bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    for (int i = 0; i < 3; i++) jj_la1[i] = -1;
151bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook  }
152bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook
153bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook  public ContentTypeParser(java.io.Reader stream) {
154bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    jj_input_stream = new SimpleCharStream(stream, 1, 1);
155bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    token_source = new ContentTypeParserTokenManager(jj_input_stream);
156bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    token = new Token();
157bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    jj_ntk = -1;
158bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    jj_gen = 0;
159bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    for (int i = 0; i < 3; i++) jj_la1[i] = -1;
160bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook  }
161bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook
162bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook  public void ReInit(java.io.Reader stream) {
163bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    jj_input_stream.ReInit(stream, 1, 1);
164bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    token_source.ReInit(jj_input_stream);
165bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    token = new Token();
166bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    jj_ntk = -1;
167bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    jj_gen = 0;
168bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    for (int i = 0; i < 3; i++) jj_la1[i] = -1;
169bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook  }
170bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook
171bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook  public ContentTypeParser(ContentTypeParserTokenManager tm) {
172bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    token_source = tm;
173bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    token = new Token();
174bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    jj_ntk = -1;
175bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    jj_gen = 0;
176bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    for (int i = 0; i < 3; i++) jj_la1[i] = -1;
177bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook  }
178bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook
179bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook  public void ReInit(ContentTypeParserTokenManager tm) {
180bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    token_source = tm;
181bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    token = new Token();
182bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    jj_ntk = -1;
183bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    jj_gen = 0;
184bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    for (int i = 0; i < 3; i++) jj_la1[i] = -1;
185bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook  }
186bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook
187bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook  final private Token jj_consume_token(int kind) throws ParseException {
188bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    Token oldToken;
189bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    if ((oldToken = token).next != null) token = token.next;
190bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    else token = token.next = token_source.getNextToken();
191bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    jj_ntk = -1;
192bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    if (token.kind == kind) {
193bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook      jj_gen++;
194bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook      return token;
195bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    }
196bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    token = oldToken;
197bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    jj_kind = kind;
198bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    throw generateParseException();
199bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook  }
200bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook
201bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook  final public Token getNextToken() {
202bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    if (token.next != null) token = token.next;
203bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    else token = token.next = token_source.getNextToken();
204bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    jj_ntk = -1;
205bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    jj_gen++;
206bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    return token;
207bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook  }
208bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook
209bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook  final public Token getToken(int index) {
210bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    Token t = token;
211bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    for (int i = 0; i < index; i++) {
212bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook      if (t.next != null) t = t.next;
213bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook      else t = t.next = token_source.getNextToken();
214bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    }
215bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    return t;
216bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook  }
217bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook
218bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook  final private int jj_ntk() {
219bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    if ((jj_nt=token.next) == null)
220bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook      return (jj_ntk = (token.next=token_source.getNextToken()).kind);
221bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    else
222bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook      return (jj_ntk = jj_nt.kind);
223bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook  }
224bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook
225bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook  private Vector<int[]> jj_expentries = new Vector<int[]>();
226bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook  private int[] jj_expentry;
227bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook  private int jj_kind = -1;
228bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook
229bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook  public ParseException generateParseException() {
230bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    jj_expentries.removeAllElements();
231bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    boolean[] la1tokens = new boolean[24];
232bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    for (int i = 0; i < 24; i++) {
233bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook      la1tokens[i] = false;
234bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    }
235bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    if (jj_kind >= 0) {
236bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook      la1tokens[jj_kind] = true;
237bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook      jj_kind = -1;
238bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    }
239bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    for (int i = 0; i < 3; i++) {
240bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook      if (jj_la1[i] == jj_gen) {
241bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook        for (int j = 0; j < 32; j++) {
242bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook          if ((jj_la1_0[i] & (1<<j)) != 0) {
243bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook            la1tokens[j] = true;
244bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook          }
245bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook        }
246bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook      }
247bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    }
248bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    for (int i = 0; i < 24; i++) {
249bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook      if (la1tokens[i]) {
250bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook        jj_expentry = new int[1];
251bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook        jj_expentry[0] = i;
252bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook        jj_expentries.addElement(jj_expentry);
253bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook      }
254bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    }
255bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    int[][] exptokseq = new int[jj_expentries.size()][];
256bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    for (int i = 0; i < jj_expentries.size(); i++) {
257bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook      exptokseq[i] = jj_expentries.elementAt(i);
258bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    }
259bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook    return new ParseException(token, exptokseq, tokenImage);
260bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook  }
261bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook
262bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook  final public void enable_tracing() {
263bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook  }
264bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook
265bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook  final public void disable_tracing() {
266bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook  }
267bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook
268bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook}
269