14ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira/* Generated By:JJTree&JavaCC: Do not edit this line. AddressListParser.java */
24ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira/*
34ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira *  Copyright 2004 the mime4j project
44ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira *
54ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira *  Licensed under the Apache License, Version 2.0 (the "License");
64ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira *  you may not use this file except in compliance with the License.
74ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira *  You may obtain a copy of the License at
84ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira *
94ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira *      http://www.apache.org/licenses/LICENSE-2.0
104ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira *
114ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira *  Unless required by applicable law or agreed to in writing, software
124ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira *  distributed under the License is distributed on an "AS IS" BASIS,
134ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
144ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira *  See the License for the specific language governing permissions and
154ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira *  limitations under the License.
164ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira */
174ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereirapackage org.apache.james.mime4j.field.address.parser;
184ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
194ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereirapublic class AddressListParser/*@bgen(jjtree)*/implements AddressListParserTreeConstants, AddressListParserConstants {/*@bgen(jjtree)*/
204ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  protected JJTAddressListParserState jjtree = new JJTAddressListParserState();public static void main(String args[]) throws ParseException {
214ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira                while (true) {
224ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira                    try {
234ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira                                AddressListParser parser = new AddressListParser(System.in);
244ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira                        parser.parseLine();
254ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira                        ((SimpleNode)parser.jjtree.rootNode()).dump("> ");
264ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira                    } catch (Exception x) {
274ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira                                x.printStackTrace();
284ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira                                return;
294ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira                    }
304ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira                }
314ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    }
324ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
334ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    private static void log(String msg) {
344ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        System.out.print(msg);
354ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    }
364ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
374ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    public ASTaddress_list parse() throws ParseException {
384ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        try {
394ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            parseAll();
404ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            return (ASTaddress_list)jjtree.rootNode();
414ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        } catch (TokenMgrError tme) {
424ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            throw new ParseException(tme.getMessage());
434ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        }
444ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    }
454ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
464ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
474ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    void jjtreeOpenNodeScope(Node n) {
484ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        ((SimpleNode)n).firstToken = getToken(1);
494ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    }
504ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
514ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    void jjtreeCloseNodeScope(Node n) {
524ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        ((SimpleNode)n).lastToken = getToken(0);
534ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    }
544ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
554ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  final public void parseLine() throws ParseException {
564ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    address_list();
574ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
584ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    case 1:
594ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      jj_consume_token(1);
604ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      break;
614ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    default:
624ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      jj_la1[0] = jj_gen;
634ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      ;
644ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    }
654ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    jj_consume_token(2);
664ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  }
674ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
684ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  final public void parseAll() throws ParseException {
694ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    address_list();
704ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    jj_consume_token(0);
714ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  }
724ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
734ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  final public void address_list() throws ParseException {
744ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira /*@bgen(jjtree) address_list */
754ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  ASTaddress_list jjtn000 = new ASTaddress_list(JJTADDRESS_LIST);
764ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  boolean jjtc000 = true;
774ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  jjtree.openNodeScope(jjtn000);
784ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  jjtreeOpenNodeScope(jjtn000);
794ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    try {
804ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
814ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      case 6:
824ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      case DOTATOM:
834ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      case QUOTEDSTRING:
844ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        address();
854ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        break;
864ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      default:
874ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        jj_la1[1] = jj_gen;
884ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        ;
894ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      }
904ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      label_1:
914ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      while (true) {
924ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
934ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        case 3:
944ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          ;
954ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          break;
964ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        default:
974ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          jj_la1[2] = jj_gen;
984ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          break label_1;
994ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        }
1004ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        jj_consume_token(3);
1014ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1024ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        case 6:
1034ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        case DOTATOM:
1044ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        case QUOTEDSTRING:
1054ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          address();
1064ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          break;
1074ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        default:
1084ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          jj_la1[3] = jj_gen;
1094ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          ;
1104ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        }
1114ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      }
1124ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    } catch (Throwable jjte000) {
1134ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          if (jjtc000) {
1144ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            jjtree.clearNodeScope(jjtn000);
1154ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            jjtc000 = false;
1164ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          } else {
1174ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            jjtree.popNode();
1184ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          }
1194ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          if (jjte000 instanceof RuntimeException) {
1204ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            {if (true) throw (RuntimeException)jjte000;}
1214ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          }
1224ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          if (jjte000 instanceof ParseException) {
1234ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            {if (true) throw (ParseException)jjte000;}
1244ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          }
1254ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          {if (true) throw (Error)jjte000;}
1264ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    } finally {
1274ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          if (jjtc000) {
1284ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            jjtree.closeNodeScope(jjtn000, true);
1294ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            jjtreeCloseNodeScope(jjtn000);
1304ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          }
1314ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    }
1324ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  }
1334ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
1344ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  final public void address() throws ParseException {
1354ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira /*@bgen(jjtree) address */
1364ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  ASTaddress jjtn000 = new ASTaddress(JJTADDRESS);
1374ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  boolean jjtc000 = true;
1384ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  jjtree.openNodeScope(jjtn000);
1394ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  jjtreeOpenNodeScope(jjtn000);
1404ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    try {
1414ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      if (jj_2_1(2147483647)) {
1424ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        addr_spec();
1434ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      } else {
1444ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1454ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        case 6:
1464ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          angle_addr();
1474ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          break;
1484ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        case DOTATOM:
1494ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        case QUOTEDSTRING:
1504ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          phrase();
1514ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
1524ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          case 4:
1534ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            group_body();
1544ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            break;
1554ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          case 6:
1564ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            angle_addr();
1574ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            break;
1584ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          default:
1594ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            jj_la1[4] = jj_gen;
1604ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            jj_consume_token(-1);
1614ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            throw new ParseException();
1624ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          }
1634ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          break;
1644ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        default:
1654ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          jj_la1[5] = jj_gen;
1664ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          jj_consume_token(-1);
1674ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          throw new ParseException();
1684ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        }
1694ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      }
1704ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    } catch (Throwable jjte000) {
1714ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          if (jjtc000) {
1724ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            jjtree.clearNodeScope(jjtn000);
1734ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            jjtc000 = false;
1744ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          } else {
1754ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            jjtree.popNode();
1764ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          }
1774ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          if (jjte000 instanceof RuntimeException) {
1784ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            {if (true) throw (RuntimeException)jjte000;}
1794ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          }
1804ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          if (jjte000 instanceof ParseException) {
1814ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            {if (true) throw (ParseException)jjte000;}
1824ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          }
1834ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          {if (true) throw (Error)jjte000;}
1844ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    } finally {
1854ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          if (jjtc000) {
1864ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            jjtree.closeNodeScope(jjtn000, true);
1874ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            jjtreeCloseNodeScope(jjtn000);
1884ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          }
1894ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    }
1904ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  }
1914ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
1924ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  final public void mailbox() throws ParseException {
1934ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira /*@bgen(jjtree) mailbox */
1944ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  ASTmailbox jjtn000 = new ASTmailbox(JJTMAILBOX);
1954ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  boolean jjtc000 = true;
1964ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  jjtree.openNodeScope(jjtn000);
1974ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  jjtreeOpenNodeScope(jjtn000);
1984ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    try {
1994ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      if (jj_2_2(2147483647)) {
2004ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        addr_spec();
2014ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      } else {
2024ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2034ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        case 6:
2044ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          angle_addr();
2054ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          break;
2064ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        case DOTATOM:
2074ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        case QUOTEDSTRING:
2084ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          name_addr();
2094ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          break;
2104ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        default:
2114ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          jj_la1[6] = jj_gen;
2124ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          jj_consume_token(-1);
2134ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          throw new ParseException();
2144ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        }
2154ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      }
2164ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    } catch (Throwable jjte000) {
2174ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          if (jjtc000) {
2184ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            jjtree.clearNodeScope(jjtn000);
2194ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            jjtc000 = false;
2204ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          } else {
2214ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            jjtree.popNode();
2224ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          }
2234ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          if (jjte000 instanceof RuntimeException) {
2244ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            {if (true) throw (RuntimeException)jjte000;}
2254ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          }
2264ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          if (jjte000 instanceof ParseException) {
2274ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            {if (true) throw (ParseException)jjte000;}
2284ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          }
2294ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          {if (true) throw (Error)jjte000;}
2304ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    } finally {
2314ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          if (jjtc000) {
2324ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            jjtree.closeNodeScope(jjtn000, true);
2334ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            jjtreeCloseNodeScope(jjtn000);
2344ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          }
2354ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    }
2364ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  }
2374ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
2384ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  final public void name_addr() throws ParseException {
2394ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira /*@bgen(jjtree) name_addr */
2404ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  ASTname_addr jjtn000 = new ASTname_addr(JJTNAME_ADDR);
2414ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  boolean jjtc000 = true;
2424ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  jjtree.openNodeScope(jjtn000);
2434ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  jjtreeOpenNodeScope(jjtn000);
2444ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    try {
2454ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      phrase();
2464ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      angle_addr();
2474ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    } catch (Throwable jjte000) {
2484ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          if (jjtc000) {
2494ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            jjtree.clearNodeScope(jjtn000);
2504ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            jjtc000 = false;
2514ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          } else {
2524ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            jjtree.popNode();
2534ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          }
2544ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          if (jjte000 instanceof RuntimeException) {
2554ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            {if (true) throw (RuntimeException)jjte000;}
2564ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          }
2574ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          if (jjte000 instanceof ParseException) {
2584ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            {if (true) throw (ParseException)jjte000;}
2594ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          }
2604ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          {if (true) throw (Error)jjte000;}
2614ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    } finally {
2624ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          if (jjtc000) {
2634ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            jjtree.closeNodeScope(jjtn000, true);
2644ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            jjtreeCloseNodeScope(jjtn000);
2654ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          }
2664ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    }
2674ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  }
2684ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
2694ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  final public void group_body() throws ParseException {
2704ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira /*@bgen(jjtree) group_body */
2714ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  ASTgroup_body jjtn000 = new ASTgroup_body(JJTGROUP_BODY);
2724ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  boolean jjtc000 = true;
2734ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  jjtree.openNodeScope(jjtn000);
2744ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  jjtreeOpenNodeScope(jjtn000);
2754ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    try {
2764ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      jj_consume_token(4);
2774ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2784ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      case 6:
2794ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      case DOTATOM:
2804ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      case QUOTEDSTRING:
2814ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        mailbox();
2824ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        break;
2834ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      default:
2844ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        jj_la1[7] = jj_gen;
2854ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        ;
2864ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      }
2874ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      label_2:
2884ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      while (true) {
2894ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2904ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        case 3:
2914ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          ;
2924ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          break;
2934ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        default:
2944ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          jj_la1[8] = jj_gen;
2954ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          break label_2;
2964ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        }
2974ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        jj_consume_token(3);
2984ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
2994ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        case 6:
3004ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        case DOTATOM:
3014ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        case QUOTEDSTRING:
3024ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          mailbox();
3034ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          break;
3044ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        default:
3054ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          jj_la1[9] = jj_gen;
3064ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          ;
3074ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        }
3084ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      }
3094ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      jj_consume_token(5);
3104ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    } catch (Throwable jjte000) {
3114ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          if (jjtc000) {
3124ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            jjtree.clearNodeScope(jjtn000);
3134ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            jjtc000 = false;
3144ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          } else {
3154ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            jjtree.popNode();
3164ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          }
3174ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          if (jjte000 instanceof RuntimeException) {
3184ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            {if (true) throw (RuntimeException)jjte000;}
3194ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          }
3204ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          if (jjte000 instanceof ParseException) {
3214ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            {if (true) throw (ParseException)jjte000;}
3224ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          }
3234ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          {if (true) throw (Error)jjte000;}
3244ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    } finally {
3254ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          if (jjtc000) {
3264ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            jjtree.closeNodeScope(jjtn000, true);
3274ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            jjtreeCloseNodeScope(jjtn000);
3284ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          }
3294ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    }
3304ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  }
3314ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
3324ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  final public void angle_addr() throws ParseException {
3334ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira /*@bgen(jjtree) angle_addr */
3344ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  ASTangle_addr jjtn000 = new ASTangle_addr(JJTANGLE_ADDR);
3354ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  boolean jjtc000 = true;
3364ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  jjtree.openNodeScope(jjtn000);
3374ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  jjtreeOpenNodeScope(jjtn000);
3384ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    try {
3394ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      jj_consume_token(6);
3404ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3414ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      case 8:
3424ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        route();
3434ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        break;
3444ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      default:
3454ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        jj_la1[10] = jj_gen;
3464ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        ;
3474ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      }
3484ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      addr_spec();
3494ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      jj_consume_token(7);
3504ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    } catch (Throwable jjte000) {
3514ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          if (jjtc000) {
3524ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            jjtree.clearNodeScope(jjtn000);
3534ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            jjtc000 = false;
3544ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          } else {
3554ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            jjtree.popNode();
3564ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          }
3574ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          if (jjte000 instanceof RuntimeException) {
3584ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            {if (true) throw (RuntimeException)jjte000;}
3594ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          }
3604ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          if (jjte000 instanceof ParseException) {
3614ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            {if (true) throw (ParseException)jjte000;}
3624ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          }
3634ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          {if (true) throw (Error)jjte000;}
3644ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    } finally {
3654ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          if (jjtc000) {
3664ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            jjtree.closeNodeScope(jjtn000, true);
3674ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            jjtreeCloseNodeScope(jjtn000);
3684ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          }
3694ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    }
3704ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  }
3714ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
3724ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  final public void route() throws ParseException {
3734ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira /*@bgen(jjtree) route */
3744ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  ASTroute jjtn000 = new ASTroute(JJTROUTE);
3754ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  boolean jjtc000 = true;
3764ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  jjtree.openNodeScope(jjtn000);
3774ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  jjtreeOpenNodeScope(jjtn000);
3784ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    try {
3794ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      jj_consume_token(8);
3804ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      domain();
3814ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      label_3:
3824ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      while (true) {
3834ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3844ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        case 3:
3854ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        case 8:
3864ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          ;
3874ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          break;
3884ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        default:
3894ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          jj_la1[11] = jj_gen;
3904ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          break label_3;
3914ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        }
3924ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        label_4:
3934ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        while (true) {
3944ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
3954ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          case 3:
3964ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            ;
3974ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            break;
3984ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          default:
3994ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            jj_la1[12] = jj_gen;
4004ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            break label_4;
4014ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          }
4024ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          jj_consume_token(3);
4034ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        }
4044ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        jj_consume_token(8);
4054ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        domain();
4064ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      }
4074ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      jj_consume_token(4);
4084ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    } catch (Throwable jjte000) {
4094ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          if (jjtc000) {
4104ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            jjtree.clearNodeScope(jjtn000);
4114ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            jjtc000 = false;
4124ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          } else {
4134ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            jjtree.popNode();
4144ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          }
4154ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          if (jjte000 instanceof RuntimeException) {
4164ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            {if (true) throw (RuntimeException)jjte000;}
4174ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          }
4184ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          if (jjte000 instanceof ParseException) {
4194ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            {if (true) throw (ParseException)jjte000;}
4204ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          }
4214ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          {if (true) throw (Error)jjte000;}
4224ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    } finally {
4234ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          if (jjtc000) {
4244ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            jjtree.closeNodeScope(jjtn000, true);
4254ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            jjtreeCloseNodeScope(jjtn000);
4264ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          }
4274ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    }
4284ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  }
4294ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
4304ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  final public void phrase() throws ParseException {
4314ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira /*@bgen(jjtree) phrase */
4324ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  ASTphrase jjtn000 = new ASTphrase(JJTPHRASE);
4334ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  boolean jjtc000 = true;
4344ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  jjtree.openNodeScope(jjtn000);
4354ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  jjtreeOpenNodeScope(jjtn000);
4364ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    try {
4374ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      label_5:
4384ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      while (true) {
4394ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4404ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        case DOTATOM:
4414ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          jj_consume_token(DOTATOM);
4424ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          break;
4434ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        case QUOTEDSTRING:
4444ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          jj_consume_token(QUOTEDSTRING);
4454ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          break;
4464ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        default:
4474ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          jj_la1[13] = jj_gen;
4484ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          jj_consume_token(-1);
4494ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          throw new ParseException();
4504ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        }
4514ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
4524ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        case DOTATOM:
4534ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        case QUOTEDSTRING:
4544ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          ;
4554ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          break;
4564ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        default:
4574ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          jj_la1[14] = jj_gen;
4584ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          break label_5;
4594ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        }
4604ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      }
4614ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    } finally {
4624ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  if (jjtc000) {
4634ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    jjtree.closeNodeScope(jjtn000, true);
4644ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    jjtreeCloseNodeScope(jjtn000);
4654ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  }
4664ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    }
4674ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  }
4684ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
4694ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  final public void addr_spec() throws ParseException {
4704ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira /*@bgen(jjtree) addr_spec */
4714ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  ASTaddr_spec jjtn000 = new ASTaddr_spec(JJTADDR_SPEC);
4724ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  boolean jjtc000 = true;
4734ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  jjtree.openNodeScope(jjtn000);
4744ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  jjtreeOpenNodeScope(jjtn000);
4754ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    try {
4764ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      local_part();
4774ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      jj_consume_token(8);
4784ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      domain();
4794ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    } catch (Throwable jjte000) {
4804ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          if (jjtc000) {
4814ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            jjtree.clearNodeScope(jjtn000);
4824ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            jjtc000 = false;
4834ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          } else {
4844ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            jjtree.popNode();
4854ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          }
4864ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          if (jjte000 instanceof RuntimeException) {
4874ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            {if (true) throw (RuntimeException)jjte000;}
4884ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          }
4894ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          if (jjte000 instanceof ParseException) {
4904ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            {if (true) throw (ParseException)jjte000;}
4914ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          }
4924ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          {if (true) throw (Error)jjte000;}
4934ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    } finally {
4944ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          if (jjtc000) {
4954ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            jjtree.closeNodeScope(jjtn000, true);
4964ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            jjtreeCloseNodeScope(jjtn000);
4974ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          }
4984ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    }
4994ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  }
5004ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
5014ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  final public void local_part() throws ParseException {
5024ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira /*@bgen(jjtree) local_part */
5034ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  ASTlocal_part jjtn000 = new ASTlocal_part(JJTLOCAL_PART);
5044ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  boolean jjtc000 = true;
5054ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  jjtree.openNodeScope(jjtn000);
5064ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  jjtreeOpenNodeScope(jjtn000);Token t;
5074ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    try {
5084ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
5094ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      case DOTATOM:
5104ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        t = jj_consume_token(DOTATOM);
5114ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        break;
5124ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      case QUOTEDSTRING:
5134ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        t = jj_consume_token(QUOTEDSTRING);
5144ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        break;
5154ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      default:
5164ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        jj_la1[15] = jj_gen;
5174ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        jj_consume_token(-1);
5184ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        throw new ParseException();
5194ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      }
5204ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      label_6:
5214ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      while (true) {
5224ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
5234ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        case 9:
5244ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        case DOTATOM:
5254ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        case QUOTEDSTRING:
5264ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          ;
5274ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          break;
5284ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        default:
5294ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          jj_la1[16] = jj_gen;
5304ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          break label_6;
5314ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        }
5324ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
5334ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        case 9:
5344ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          t = jj_consume_token(9);
5354ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          break;
5364ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        default:
5374ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          jj_la1[17] = jj_gen;
5384ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          ;
5394ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        }
5404ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira                        if (t.image.charAt(t.image.length() - 1) != '.' || t.kind == AddressListParserConstants.QUOTEDSTRING)
5414ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira                                {if (true) throw new ParseException("Words in local part must be separated by '.'");}
5424ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
5434ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        case DOTATOM:
5444ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          t = jj_consume_token(DOTATOM);
5454ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          break;
5464ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        case QUOTEDSTRING:
5474ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          t = jj_consume_token(QUOTEDSTRING);
5484ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          break;
5494ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        default:
5504ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          jj_la1[18] = jj_gen;
5514ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          jj_consume_token(-1);
5524ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          throw new ParseException();
5534ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        }
5544ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      }
5554ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    } finally {
5564ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          if (jjtc000) {
5574ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            jjtree.closeNodeScope(jjtn000, true);
5584ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            jjtreeCloseNodeScope(jjtn000);
5594ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          }
5604ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    }
5614ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  }
5624ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
5634ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  final public void domain() throws ParseException {
5644ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira /*@bgen(jjtree) domain */
5654ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  ASTdomain jjtn000 = new ASTdomain(JJTDOMAIN);
5664ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  boolean jjtc000 = true;
5674ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  jjtree.openNodeScope(jjtn000);
5684ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  jjtreeOpenNodeScope(jjtn000);Token t;
5694ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    try {
5704ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
5714ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      case DOTATOM:
5724ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        t = jj_consume_token(DOTATOM);
5734ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        label_7:
5744ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        while (true) {
5754ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
5764ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          case 9:
5774ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          case DOTATOM:
5784ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            ;
5794ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            break;
5804ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          default:
5814ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            jj_la1[19] = jj_gen;
5824ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            break label_7;
5834ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          }
5844ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
5854ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          case 9:
5864ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            t = jj_consume_token(9);
5874ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            break;
5884ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          default:
5894ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            jj_la1[20] = jj_gen;
5904ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            ;
5914ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          }
5924ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira                                if (t.image.charAt(t.image.length() - 1) != '.')
5934ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira                                        {if (true) throw new ParseException("Atoms in domain names must be separated by '.'");}
5944ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          t = jj_consume_token(DOTATOM);
5954ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        }
5964ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        break;
5974ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      case DOMAINLITERAL:
5984ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        jj_consume_token(DOMAINLITERAL);
5994ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        break;
6004ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      default:
6014ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        jj_la1[21] = jj_gen;
6024ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        jj_consume_token(-1);
6034ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        throw new ParseException();
6044ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      }
6054ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    } finally {
6064ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          if (jjtc000) {
6074ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            jjtree.closeNodeScope(jjtn000, true);
6084ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            jjtreeCloseNodeScope(jjtn000);
6094ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          }
6104ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    }
6114ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  }
6124ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
6134ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  final private boolean jj_2_1(int xla) {
6144ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    jj_la = xla; jj_lastpos = jj_scanpos = token;
6154ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    try { return !jj_3_1(); }
6164ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    catch(LookaheadSuccess ls) { return true; }
6174ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    finally { jj_save(0, xla); }
6184ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  }
6194ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
6204ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  final private boolean jj_2_2(int xla) {
6214ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    jj_la = xla; jj_lastpos = jj_scanpos = token;
6224ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    try { return !jj_3_2(); }
6234ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    catch(LookaheadSuccess ls) { return true; }
6244ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    finally { jj_save(1, xla); }
6254ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  }
6264ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
6274ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  final private boolean jj_3R_11() {
6284ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    Token xsp;
6294ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    xsp = jj_scanpos;
6304ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    if (jj_scan_token(9)) jj_scanpos = xsp;
6314ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    xsp = jj_scanpos;
6324ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    if (jj_scan_token(14)) {
6334ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    jj_scanpos = xsp;
6344ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    if (jj_scan_token(31)) return true;
6354ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    }
6364ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    return false;
6374ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  }
6384ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
6394ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  final private boolean jj_3R_13() {
6404ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    Token xsp;
6414ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    xsp = jj_scanpos;
6424ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    if (jj_scan_token(9)) jj_scanpos = xsp;
6434ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    if (jj_scan_token(DOTATOM)) return true;
6444ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    return false;
6454ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  }
6464ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
6474ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  final private boolean jj_3R_8() {
6484ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    if (jj_3R_9()) return true;
6494ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    if (jj_scan_token(8)) return true;
6504ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    if (jj_3R_10()) return true;
6514ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    return false;
6524ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  }
6534ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
6544ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  final private boolean jj_3_1() {
6554ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    if (jj_3R_8()) return true;
6564ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    return false;
6574ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  }
6584ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
6594ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  final private boolean jj_3R_12() {
6604ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    if (jj_scan_token(DOTATOM)) return true;
6614ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    Token xsp;
6624ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    while (true) {
6634ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      xsp = jj_scanpos;
6644ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      if (jj_3R_13()) { jj_scanpos = xsp; break; }
6654ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    }
6664ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    return false;
6674ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  }
6684ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
6694ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  final private boolean jj_3R_10() {
6704ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    Token xsp;
6714ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    xsp = jj_scanpos;
6724ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    if (jj_3R_12()) {
6734ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    jj_scanpos = xsp;
6744ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    if (jj_scan_token(18)) return true;
6754ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    }
6764ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    return false;
6774ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  }
6784ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
6794ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  final private boolean jj_3_2() {
6804ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    if (jj_3R_8()) return true;
6814ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    return false;
6824ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  }
6834ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
6844ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  final private boolean jj_3R_9() {
6854ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    Token xsp;
6864ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    xsp = jj_scanpos;
6874ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    if (jj_scan_token(14)) {
6884ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    jj_scanpos = xsp;
6894ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    if (jj_scan_token(31)) return true;
6904ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    }
6914ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    while (true) {
6924ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      xsp = jj_scanpos;
6934ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      if (jj_3R_11()) { jj_scanpos = xsp; break; }
6944ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    }
6954ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    return false;
6964ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  }
6974ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
6984ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  public AddressListParserTokenManager token_source;
6994ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  SimpleCharStream jj_input_stream;
7004ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  public Token token, jj_nt;
7014ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  private int jj_ntk;
7024ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  private Token jj_scanpos, jj_lastpos;
7034ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  private int jj_la;
7044ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  public boolean lookingAhead = false;
7054ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  private boolean jj_semLA;
7064ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  private int jj_gen;
7074ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  final private int[] jj_la1 = new int[22];
7084ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  static private int[] jj_la1_0;
7094ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  static private int[] jj_la1_1;
7104ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  static {
7114ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      jj_la1_0();
7124ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      jj_la1_1();
7134ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira   }
7144ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira   private static void jj_la1_0() {
7154ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      jj_la1_0 = new int[] {0x2,0x80004040,0x8,0x80004040,0x50,0x80004040,0x80004040,0x80004040,0x8,0x80004040,0x100,0x108,0x8,0x80004000,0x80004000,0x80004000,0x80004200,0x200,0x80004000,0x4200,0x200,0x44000,};
7164ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira   }
7174ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira   private static void jj_la1_1() {
7184ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      jj_la1_1 = new int[] {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,};
7194ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira   }
7204ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  final private JJCalls[] jj_2_rtns = new JJCalls[2];
7214ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  private boolean jj_rescan = false;
7224ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  private int jj_gc = 0;
7234ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
7244ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  public AddressListParser(java.io.InputStream stream) {
7254ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira     this(stream, null);
7264ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  }
7274ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  public AddressListParser(java.io.InputStream stream, String encoding) {
7284ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    try { jj_input_stream = new SimpleCharStream(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); }
7294ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    token_source = new AddressListParserTokenManager(jj_input_stream);
7304ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    token = new Token();
7314ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    jj_ntk = -1;
7324ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    jj_gen = 0;
7334ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    for (int i = 0; i < 22; i++) jj_la1[i] = -1;
7344ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
7354ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  }
7364ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
7374ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  public void ReInit(java.io.InputStream stream) {
7384ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira     ReInit(stream, null);
7394ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  }
7404ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  public void ReInit(java.io.InputStream stream, String encoding) {
7414ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    try { jj_input_stream.ReInit(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); }
7424ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    token_source.ReInit(jj_input_stream);
7434ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    token = new Token();
7444ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    jj_ntk = -1;
7454ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    jjtree.reset();
7464ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    jj_gen = 0;
7474ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    for (int i = 0; i < 22; i++) jj_la1[i] = -1;
7484ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
7494ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  }
7504ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
7514ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  public AddressListParser(java.io.Reader stream) {
7524ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    jj_input_stream = new SimpleCharStream(stream, 1, 1);
7534ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    token_source = new AddressListParserTokenManager(jj_input_stream);
7544ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    token = new Token();
7554ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    jj_ntk = -1;
7564ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    jj_gen = 0;
7574ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    for (int i = 0; i < 22; i++) jj_la1[i] = -1;
7584ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
7594ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  }
7604ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
7614ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  public void ReInit(java.io.Reader stream) {
7624ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    jj_input_stream.ReInit(stream, 1, 1);
7634ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    token_source.ReInit(jj_input_stream);
7644ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    token = new Token();
7654ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    jj_ntk = -1;
7664ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    jjtree.reset();
7674ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    jj_gen = 0;
7684ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    for (int i = 0; i < 22; i++) jj_la1[i] = -1;
7694ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
7704ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  }
7714ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
7724ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  public AddressListParser(AddressListParserTokenManager tm) {
7734ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    token_source = tm;
7744ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    token = new Token();
7754ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    jj_ntk = -1;
7764ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    jj_gen = 0;
7774ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    for (int i = 0; i < 22; i++) jj_la1[i] = -1;
7784ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
7794ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  }
7804ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
7814ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  public void ReInit(AddressListParserTokenManager tm) {
7824ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    token_source = tm;
7834ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    token = new Token();
7844ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    jj_ntk = -1;
7854ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    jjtree.reset();
7864ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    jj_gen = 0;
7874ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    for (int i = 0; i < 22; i++) jj_la1[i] = -1;
7884ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
7894ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  }
7904ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
7914ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  final private Token jj_consume_token(int kind) throws ParseException {
7924ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    Token oldToken;
7934ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    if ((oldToken = token).next != null) token = token.next;
7944ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    else token = token.next = token_source.getNextToken();
7954ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    jj_ntk = -1;
7964ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    if (token.kind == kind) {
7974ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      jj_gen++;
7984ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      if (++jj_gc > 100) {
7994ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        jj_gc = 0;
8004ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        for (int i = 0; i < jj_2_rtns.length; i++) {
8014ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          JJCalls c = jj_2_rtns[i];
8024ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          while (c != null) {
8034ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            if (c.gen < jj_gen) c.first = null;
8044ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            c = c.next;
8054ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          }
8064ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        }
8074ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      }
8084ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      return token;
8094ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    }
8104ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    token = oldToken;
8114ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    jj_kind = kind;
8124ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    throw generateParseException();
8134ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  }
8144ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
8154ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  static private final class LookaheadSuccess extends java.lang.Error { }
8164ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  final private LookaheadSuccess jj_ls = new LookaheadSuccess();
8174ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  final private boolean jj_scan_token(int kind) {
8184ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    if (jj_scanpos == jj_lastpos) {
8194ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      jj_la--;
8204ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      if (jj_scanpos.next == null) {
8214ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        jj_lastpos = jj_scanpos = jj_scanpos.next = token_source.getNextToken();
8224ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      } else {
8234ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        jj_lastpos = jj_scanpos = jj_scanpos.next;
8244ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      }
8254ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    } else {
8264ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      jj_scanpos = jj_scanpos.next;
8274ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    }
8284ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    if (jj_rescan) {
8294ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      int i = 0; Token tok = token;
8304ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      while (tok != null && tok != jj_scanpos) { i++; tok = tok.next; }
8314ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      if (tok != null) jj_add_error_token(kind, i);
8324ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    }
8334ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    if (jj_scanpos.kind != kind) return true;
8344ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    if (jj_la == 0 && jj_scanpos == jj_lastpos) throw jj_ls;
8354ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    return false;
8364ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  }
8374ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
8384ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  final public Token getNextToken() {
8394ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    if (token.next != null) token = token.next;
8404ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    else token = token.next = token_source.getNextToken();
8414ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    jj_ntk = -1;
8424ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    jj_gen++;
8434ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    return token;
8444ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  }
8454ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
8464ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  final public Token getToken(int index) {
8474ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    Token t = lookingAhead ? jj_scanpos : token;
8484ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    for (int i = 0; i < index; i++) {
8494ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      if (t.next != null) t = t.next;
8504ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      else t = t.next = token_source.getNextToken();
8514ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    }
8524ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    return t;
8534ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  }
8544ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
8554ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  final private int jj_ntk() {
8564ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    if ((jj_nt=token.next) == null)
8574ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      return (jj_ntk = (token.next=token_source.getNextToken()).kind);
8584ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    else
8594ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      return (jj_ntk = jj_nt.kind);
8604ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  }
8614ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
8624ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  private java.util.Vector<int[]> jj_expentries = new java.util.Vector<int[]>();
8634ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  private int[] jj_expentry;
8644ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  private int jj_kind = -1;
8654ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  private int[] jj_lasttokens = new int[100];
8664ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  private int jj_endpos;
8674ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
8684ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  private void jj_add_error_token(int kind, int pos) {
8694ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    if (pos >= 100) return;
8704ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    if (pos == jj_endpos + 1) {
8714ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      jj_lasttokens[jj_endpos++] = kind;
8724ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    } else if (jj_endpos != 0) {
8734ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      jj_expentry = new int[jj_endpos];
8744ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      for (int i = 0; i < jj_endpos; i++) {
8754ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        jj_expentry[i] = jj_lasttokens[i];
8764ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      }
8774ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      boolean exists = false;
8784ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      for (java.util.Enumeration<int[]> e = jj_expentries.elements(); e.hasMoreElements();) {
8794ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        int[] oldentry = e.nextElement();
8804ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        if (oldentry.length == jj_expentry.length) {
8814ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          exists = true;
8824ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          for (int i = 0; i < jj_expentry.length; i++) {
8834ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            if (oldentry[i] != jj_expentry[i]) {
8844ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira              exists = false;
8854ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira              break;
8864ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            }
8874ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          }
8884ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          if (exists) break;
8894ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        }
8904ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      }
8914ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      if (!exists) jj_expentries.addElement(jj_expentry);
8924ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      if (pos != 0) jj_lasttokens[(jj_endpos = pos) - 1] = kind;
8934ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    }
8944ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  }
8954ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
8964ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  public ParseException generateParseException() {
8974ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    jj_expentries.removeAllElements();
8984ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    boolean[] la1tokens = new boolean[34];
8994ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    for (int i = 0; i < 34; i++) {
9004ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      la1tokens[i] = false;
9014ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    }
9024ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    if (jj_kind >= 0) {
9034ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      la1tokens[jj_kind] = true;
9044ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      jj_kind = -1;
9054ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    }
9064ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    for (int i = 0; i < 22; i++) {
9074ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      if (jj_la1[i] == jj_gen) {
9084ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        for (int j = 0; j < 32; j++) {
9094ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          if ((jj_la1_0[i] & (1<<j)) != 0) {
9104ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            la1tokens[j] = true;
9114ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          }
9124ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          if ((jj_la1_1[i] & (1<<j)) != 0) {
9134ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            la1tokens[32+j] = true;
9144ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          }
9154ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        }
9164ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      }
9174ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    }
9184ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    for (int i = 0; i < 34; i++) {
9194ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      if (la1tokens[i]) {
9204ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        jj_expentry = new int[1];
9214ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        jj_expentry[0] = i;
9224ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        jj_expentries.addElement(jj_expentry);
9234ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      }
9244ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    }
9254ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    jj_endpos = 0;
9264ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    jj_rescan_token();
9274ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    jj_add_error_token(0, 0);
9284ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    int[][] exptokseq = new int[jj_expentries.size()][];
9294ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    for (int i = 0; i < jj_expentries.size(); i++) {
9304ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      exptokseq[i] = jj_expentries.elementAt(i);
9314ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    }
9324ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    return new ParseException(token, exptokseq, tokenImage);
9334ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  }
9344ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
9354ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  final public void enable_tracing() {
9364ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  }
9374ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
9384ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  final public void disable_tracing() {
9394ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  }
9404ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
9414ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  final private void jj_rescan_token() {
9424ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    jj_rescan = true;
9434ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    for (int i = 0; i < 2; i++) {
9444ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    try {
9454ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      JJCalls p = jj_2_rtns[i];
9464ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      do {
9474ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        if (p.gen > jj_gen) {
9484ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          jj_la = p.arg; jj_lastpos = jj_scanpos = p.first;
9494ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          switch (i) {
9504ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            case 0: jj_3_1(); break;
9514ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira            case 1: jj_3_2(); break;
9524ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira          }
9534ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        }
9544ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira        p = p.next;
9554ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      } while (p != null);
9564ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      } catch(LookaheadSuccess ls) { }
9574ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    }
9584ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    jj_rescan = false;
9594ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  }
9604ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
9614ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  final private void jj_save(int index, int xla) {
9624ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    JJCalls p = jj_2_rtns[index];
9634ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    while (p.gen > jj_gen) {
9644ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      if (p.next == null) { p = p.next = new JJCalls(); break; }
9654ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira      p = p.next;
9664ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    }
9674ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    p.gen = jj_gen + xla - jj_la; p.first = token; p.arg = xla;
9684ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  }
9694ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
9704ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  static final class JJCalls {
9714ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    int gen;
9724ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    Token first;
9734ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    int arg;
9744ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira    JJCalls next;
9754ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira  }
9764ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira
9774ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira}
978