14ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira/* Generated By:JavaCC: Do not edit this line. ContentTypeParser.java */
24fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy/*
34fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy *  Copyright 2004 the mime4j project
44fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy *
54fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy *  Licensed under the Apache License, Version 2.0 (the "License");
64fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy *  you may not use this file except in compliance with the License.
74fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy *  You may obtain a copy of the License at
84fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy *
94fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy *      http://www.apache.org/licenses/LICENSE-2.0
104fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy *
114fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy *  Unless required by applicable law or agreed to in writing, software
124fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy *  distributed under the License is distributed on an "AS IS" BASIS,
134fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
144fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy *  See the License for the specific language governing permissions and
154fa0a3295bcacbdcd6a9e7709cf17aa5adb90356Scott Kennedy *  limitations under the License.
164ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira */
174ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereirapackage org.apache.james.mime4j.field.contenttype.parser;
184ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
194ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereiraimport java.util.ArrayList;
204ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereiraimport java.util.Vector;
214ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
224ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereirapublic class ContentTypeParser implements ContentTypeParserConstants {
234ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
244ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        private String type;
254ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        private String subtype;
264ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        private ArrayList<String> paramNames = new ArrayList<String>();
274ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        private ArrayList<String> paramValues = new ArrayList<String>();
284ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
294ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        public String getType() { return type; }
304ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        public String getSubType() { return subtype; }
314ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        public ArrayList<String> getParamNames() { return paramNames; }
324ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        public ArrayList<String> getParamValues() { return paramValues; }
334ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
344ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    public static void main(String args[]) throws ParseException {
354ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        while (true) {
364ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            try {
374ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira                ContentTypeParser parser = new ContentTypeParser(System.in);
384ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira                parser.parseLine();
394ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            } catch (Exception x) {
404ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira                x.printStackTrace();
414ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira                return;
424ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            }
434ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        }
444ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    }
454ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
464ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  final public void parseLine() throws ParseException {
474ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    parse();
484ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
494ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    case 1:
504ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      jj_consume_token(1);
514ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      break;
524ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    default:
534ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      jj_la1[0] = jj_gen;
544ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      ;
554ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    }
564ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    jj_consume_token(2);
574ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  }
584ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
594ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  final public void parseAll() throws ParseException {
604ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    parse();
614ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    jj_consume_token(0);
624ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  }
634ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
644ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  final public void parse() throws ParseException {
654ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        Token type;
664ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        Token subtype;
674ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    type = jj_consume_token(ATOKEN);
684ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    jj_consume_token(3);
694ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    subtype = jj_consume_token(ATOKEN);
704ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira                this.type = type.image;
714ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira                this.subtype = subtype.image;
724ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    label_1:
734ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    while (true) {
744ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
754ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      case 4:
764ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        ;
774ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        break;
784ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      default:
794ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        jj_la1[1] = jj_gen;
804ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        break label_1;
814ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      }
824ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      jj_consume_token(4);
834ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      parameter();
844ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    }
854ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  }
864ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
874ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  final public void parameter() throws ParseException {
884ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        Token attrib;
894ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        String val;
904ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    attrib = jj_consume_token(ATOKEN);
914ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    jj_consume_token(5);
924ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    val = value();
934ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira                paramNames.add(attrib.image);
944ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira                paramValues.add(val);
954ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  }
964ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
974ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  final public String value() throws ParseException {
984ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira Token t;
994ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1004ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    case ATOKEN:
1014ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      t = jj_consume_token(ATOKEN);
1024ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      break;
1034ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    case QUOTEDSTRING:
1044ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      t = jj_consume_token(QUOTEDSTRING);
1054ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      break;
1064ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    default:
1074ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      jj_la1[2] = jj_gen;
1084ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      jj_consume_token(-1);
1094ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      throw new ParseException();
1104ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    }
1114ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          {if (true) return t.image;}
1124ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    throw new Error("Missing return statement in function");
1134ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  }
1144ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
1154ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  public ContentTypeParserTokenManager token_source;
1164ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  SimpleCharStream jj_input_stream;
1174ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  public Token token, jj_nt;
1184ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  private int jj_ntk;
1194ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  private int jj_gen;
1204ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  final private int[] jj_la1 = new int[3];
1214ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  static private int[] jj_la1_0;
1224ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  static {
1234ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      jj_la1_0();
1244ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira   }
1254ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira   private static void jj_la1_0() {
1264ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      jj_la1_0 = new int[] {0x2,0x10,0x280000,};
1274ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira   }
1284ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
1294ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  public ContentTypeParser(java.io.InputStream stream) {
1304ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira     this(stream, null);
1314ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  }
1324ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  public ContentTypeParser(java.io.InputStream stream, String encoding) {
1334ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    try { jj_input_stream = new SimpleCharStream(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); }
1344ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    token_source = new ContentTypeParserTokenManager(jj_input_stream);
1354ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    token = new Token();
1364ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    jj_ntk = -1;
1374ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    jj_gen = 0;
1384ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    for (int i = 0; i < 3; i++) jj_la1[i] = -1;
1394ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  }
1404ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
1414ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  public void ReInit(java.io.InputStream stream) {
1424ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira     ReInit(stream, null);
1434ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  }
1444ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  public void ReInit(java.io.InputStream stream, String encoding) {
1454ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    try { jj_input_stream.ReInit(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); }
1464ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    token_source.ReInit(jj_input_stream);
1474ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    token = new Token();
1484ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    jj_ntk = -1;
1494ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    jj_gen = 0;
1504ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    for (int i = 0; i < 3; i++) jj_la1[i] = -1;
1514ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  }
1524ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
1534ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  public ContentTypeParser(java.io.Reader stream) {
1544ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    jj_input_stream = new SimpleCharStream(stream, 1, 1);
1554ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    token_source = new ContentTypeParserTokenManager(jj_input_stream);
1564ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    token = new Token();
1574ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    jj_ntk = -1;
1584ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    jj_gen = 0;
1594ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    for (int i = 0; i < 3; i++) jj_la1[i] = -1;
1604ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  }
1614ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
1624ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  public void ReInit(java.io.Reader stream) {
1634ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    jj_input_stream.ReInit(stream, 1, 1);
1644ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    token_source.ReInit(jj_input_stream);
1654ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    token = new Token();
1664ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    jj_ntk = -1;
1674ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    jj_gen = 0;
1684ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    for (int i = 0; i < 3; i++) jj_la1[i] = -1;
1694ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  }
1704ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
1714ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  public ContentTypeParser(ContentTypeParserTokenManager tm) {
1724ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    token_source = tm;
1734ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    token = new Token();
1744ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    jj_ntk = -1;
1754ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    jj_gen = 0;
1764ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    for (int i = 0; i < 3; i++) jj_la1[i] = -1;
1774ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  }
1784ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
1794ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  public void ReInit(ContentTypeParserTokenManager tm) {
1804ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    token_source = tm;
1814ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    token = new Token();
1824ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    jj_ntk = -1;
1834ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    jj_gen = 0;
1844ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    for (int i = 0; i < 3; i++) jj_la1[i] = -1;
1854ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  }
1864ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
1874ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  final private Token jj_consume_token(int kind) throws ParseException {
1884ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    Token oldToken;
1894ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    if ((oldToken = token).next != null) token = token.next;
1904ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    else token = token.next = token_source.getNextToken();
1914ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    jj_ntk = -1;
1924ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    if (token.kind == kind) {
1934ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      jj_gen++;
1944ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      return token;
1954ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    }
1964ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    token = oldToken;
1974ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    jj_kind = kind;
1984ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    throw generateParseException();
1994ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  }
2004ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
2014ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  final public Token getNextToken() {
2024ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    if (token.next != null) token = token.next;
2034ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    else token = token.next = token_source.getNextToken();
2044ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    jj_ntk = -1;
2054ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    jj_gen++;
2064ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    return token;
2074ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  }
2084ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
2094ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  final public Token getToken(int index) {
2104ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    Token t = token;
2114ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    for (int i = 0; i < index; i++) {
2124ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      if (t.next != null) t = t.next;
2134ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      else t = t.next = token_source.getNextToken();
2144ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    }
2154ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    return t;
2164ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  }
2174ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
2184ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  final private int jj_ntk() {
2194ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    if ((jj_nt=token.next) == null)
2204ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      return (jj_ntk = (token.next=token_source.getNextToken()).kind);
2214ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    else
2224ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      return (jj_ntk = jj_nt.kind);
2234ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  }
2244ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
2254ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  private Vector<int[]> jj_expentries = new Vector<int[]>();
2264ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  private int[] jj_expentry;
2274ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  private int jj_kind = -1;
2284ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
2294ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  public ParseException generateParseException() {
2304ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    jj_expentries.removeAllElements();
2314ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    boolean[] la1tokens = new boolean[24];
2324ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    for (int i = 0; i < 24; i++) {
2334ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      la1tokens[i] = false;
2344ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    }
2354ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    if (jj_kind >= 0) {
2364ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      la1tokens[jj_kind] = true;
2374ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      jj_kind = -1;
2384ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    }
2394ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    for (int i = 0; i < 3; i++) {
2404ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      if (jj_la1[i] == jj_gen) {
2414ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        for (int j = 0; j < 32; j++) {
2424ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          if ((jj_la1_0[i] & (1<<j)) != 0) {
2434ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            la1tokens[j] = true;
2444ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          }
2454ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        }
2464ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      }
2474ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    }
2484ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    for (int i = 0; i < 24; i++) {
2494ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      if (la1tokens[i]) {
2504ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        jj_expentry = new int[1];
2514ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        jj_expentry[0] = i;
2524ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        jj_expentries.addElement(jj_expentry);
2534ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      }
2544ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    }
2554ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    int[][] exptokseq = new int[jj_expentries.size()][];
2564ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    for (int i = 0; i < jj_expentries.size(); i++) {
2574ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      exptokseq[i] = jj_expentries.elementAt(i);
2584ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    }
2594ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    return new ParseException(token, exptokseq, tokenImage);
2604ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  }
2614ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
2624ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  final public void enable_tracing() {
2634ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  }
2644ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
2654ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  final public void disable_tracing() {
2664ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  }
2674ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
2684ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira}
269