| /* The following code was generated by JFlex 1.4.1 on 7/27/09 3:59 PM */ |
| |
| /******************************************************************************* |
| * Copyright (c) 2009 University of Illinois at Urbana-Champaign and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * UIUC - Initial API and implementation |
| *******************************************************************************/ |
| |
| /* |
| * First phase of fixed form lexical analysis for Fortran 95 parser |
| * |
| * FixedFormLexerPhase1 acts as a "token stream" feeding FreeFormLexerPhase2 |
| * and is feeded by FixedFormLexerPrepass |
| * (See FixedFormLexerPrepass and FixedFormLexerPhase2.java and f95t.bnf) |
| * |
| * @author Jeffrey Overbey and Dirk Rossow |
| * |
| * @see FixedFormLexerPrepass |
| * @see FixedFormLexerPhase2 |
| * @see Parser |
| * |
| * NOTE: Get rid of (space out) "yybegin(YYSTANDARD);" in the lines |
| * for any tokens that can appear in an IMPLICIT statement |
| * (It was also omitted in the lines for T_SLASH so that |
| * INTERFACE OPERATOR (/) would tokenize correctly.) |
| * |
| * Changes: |
| * 29.06.2005 Jeff Overbey: Added Fortran INCLUDE and CPP directives |
| */ |
| |
| package org.eclipse.photran.internal.core.lexer; |
| import java.io.IOException; |
| import java.io.InputStream; |
| import java.util.List; |
| import java.util.LinkedList; |
| import org.eclipse.core.resources.IFile; |
| |
| |
| /** |
| * This class is a scanner generated by |
| * <a href="http://www.jflex.de/">JFlex</a> 1.4.1 |
| * on 7/27/09 3:59 PM from the specification file |
| * <tt>FixedFormLexerPhase1.flex</tt> |
| */ |
| class FixedFormLexerPhase1 implements ILexer { |
| |
| /** This character denotes the end of file */ |
| public static final int YYEOF = -1; |
| |
| /** initial size of the lookahead buffer */ |
| private static final int ZZ_BUFFERSIZE = 16384; |
| |
| /** lexical states */ |
| public static final int OPERATORorFORMAT = 6; |
| public static final int DBLQUOTED = 3; |
| public static final int QUOTED = 2; |
| public static final int YYINITIAL = 0; |
| public static final int IDENT = 7; |
| public static final int HOLLERITH = 4; |
| public static final int YYSTANDARD = 5; |
| public static final int IMPLICIT = 1; |
| |
| /** |
| * Translates characters to character classes |
| */ |
| private static final String ZZ_CMAP_PACKED = |
| "\11\0\1\47\1\2\2\37\1\1\22\0\1\47\1\37\1\16\1\40"+ |
| "\1\0\1\64\1\0\1\14\1\33\1\35\1\3\1\6\1\34\1\7"+ |
| "\1\11\1\65\2\15\6\20\2\4\1\61\1\36\1\63\1\54\1\62"+ |
| "\2\0\1\22\1\13\1\43\1\10\1\5\1\25\1\27\1\23\1\24"+ |
| "\1\12\1\57\1\42\1\46\1\41\1\17\1\30\1\60\1\45\1\26"+ |
| "\1\50\1\44\1\56\1\51\1\31\1\55\1\21\1\52\1\0\1\53"+ |
| "\1\0\1\32\1\0\1\22\1\13\1\43\1\10\1\5\1\25\1\27"+ |
| "\1\23\1\24\1\12\1\57\1\42\1\46\1\41\1\17\1\30\1\60"+ |
| "\1\45\1\26\1\50\1\44\1\56\1\51\1\31\1\55\1\21\12\0"+ |
| "\1\37\u1fa2\0\2\37\udfd6\0"; |
| |
| /** |
| * Translates characters to character classes |
| */ |
| private static final char [] ZZ_CMAP = zzUnpackCMap(ZZ_CMAP_PACKED); |
| |
| /** |
| * Translates DFA states to action switch labels. |
| */ |
| private static final int [] ZZ_ACTION = zzUnpackAction(); |
| |
| private static final String ZZ_ACTION_PACKED_0 = |
| "\10\0\1\1\2\2\1\3\1\4\1\1\1\5\1\6"+ |
| "\3\1\1\7\1\10\10\1\1\11\1\12\1\13\1\14"+ |
| "\11\1\1\15\1\16\1\17\2\1\1\20\1\21\1\22"+ |
| "\1\23\1\24\1\4\1\1\1\5\1\6\10\1\1\12"+ |
| "\1\24\1\25\1\26\1\27\1\25\1\30\1\31\1\32"+ |
| "\1\12\1\33\1\34\1\35\7\0\1\36\36\0\1\37"+ |
| "\1\40\1\41\13\0\1\42\34\0\1\43\6\0\1\44"+ |
| "\1\45\3\0\1\46\1\47\1\50\1\51\1\52\3\0"+ |
| "\1\53\1\54\1\55\5\0\1\56\1\0\1\57\1\60"+ |
| "\1\61\1\62\3\0\1\63\17\0\1\64\26\0\1\65"+ |
| "\11\0\1\66\64\0\1\67\11\0\1\70\23\0\1\56"+ |
| "\1\0\1\71\1\0\1\56\10\0\1\72\12\0\1\73"+ |
| "\1\0\1\74\2\0\1\75\1\76\7\0\1\77\2\0"+ |
| "\1\100\1\0\1\101\2\0\1\102\1\103\1\104\2\0"+ |
| "\1\105\1\106\1\0\1\107\1\0\1\110\2\0\1\111"+ |
| "\1\112\2\0\1\113\1\114\25\0\1\115\1\0\1\116"+ |
| "\2\0\1\117\3\0\1\120\3\0\1\121\4\0\1\122"+ |
| "\1\123\1\124\3\0\1\125\12\0\2\126\5\0\1\127"+ |
| "\2\0\1\130\1\0\1\131\1\132\4\0\1\133\1\134"+ |
| "\6\0\1\135\1\136\3\0\1\137\5\0\1\140\1\141"+ |
| "\1\142\5\0\1\143\1\56\2\144\1\0\2\145\1\4"+ |
| "\3\0\1\146\1\0\1\147\14\0\1\150\14\0\1\151"+ |
| "\1\152\2\0\1\153\2\0\1\154\17\0\1\155\12\0"+ |
| "\1\156\1\157\1\160\3\0\1\161\1\162\2\0\1\163"+ |
| "\5\0\1\164\6\0\1\165\12\0\1\166\10\0\1\167"+ |
| "\1\170\1\171\1\172\2\0\1\173\2\0\1\174\6\0"+ |
| "\1\175\1\176\1\177\1\0\1\200\1\201\1\202\20\0"+ |
| "\1\203\5\0\1\204\1\0\1\205\3\0\1\206\1\207"+ |
| "\2\0\1\210\15\0\1\211\2\0\1\212\3\0\1\213"+ |
| "\1\0\1\214\1\215\1\0\1\216\11\0\1\217\10\0"+ |
| "\1\220\2\0\1\221\7\0\1\222\3\0\1\136\1\223"+ |
| "\1\0\1\224\1\225\1\226\1\227\1\230\1\231\1\0"+ |
| "\1\232\4\0\1\233\5\0\1\234\10\0\1\235\3\0"+ |
| "\1\236\1\0\1\237\2\0\1\240\10\0\1\241\1\242"+ |
| "\1\243\2\0\1\244\2\0\1\245\7\0\1\246\1\247"+ |
| "\1\250\1\0\1\251\3\0\1\252\2\0\1\253\4\0"+ |
| "\1\254\1\255\1\256\2\0\1\257\5\0\1\260\1\261"+ |
| "\7\0\1\262\6\0\1\263\1\264\1\205\4\0\1\265"+ |
| "\1\266\1\267\1\270\3\0\1\271\6\0\1\272\1\0"+ |
| "\1\273\1\0\1\274\2\0\1\275\5\0\1\276\2\0"+ |
| "\1\277\1\0\1\300\1\301\5\0\1\302\2\0\1\303"+ |
| "\1\0\1\304\2\0\1\305\1\306\1\0\1\307\1\310"+ |
| "\3\0\1\311\1\312\1\313\1\314\3\0\1\315\1\0"+ |
| "\1\244\1\316\1\317\4\0\1\320\1\321\1\322\1\323"+ |
| "\1\324\2\0\1\256\1\257\1\325\2\0\1\326\4\0"+ |
| "\1\327\1\330\1\0\1\331\1\0\1\332\2\0\1\333"+ |
| "\1\334\1\0\1\335\4\0\1\336\2\0\1\337\1\0"+ |
| "\1\340\2\0\1\341\1\342\2\0\1\325\1\0\1\343"+ |
| "\1\344\2\0\1\345\2\0\1\346\1\347\2\0\1\350"+ |
| "\1\0\1\351\2\0\1\352\1\353\1\0\1\352"; |
| |
| private static int [] zzUnpackAction() { |
| int [] result = new int[976]; |
| int offset = 0; |
| offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result); |
| return result; |
| } |
| |
| private static int zzUnpackAction(String packed, int offset, int [] result) { |
| int i = 0; /* index in packed string */ |
| int j = offset; /* index in unpacked array */ |
| int l = packed.length(); |
| while (i < l) { |
| int count = packed.charAt(i++); |
| int value = packed.charAt(i++); |
| do result[j++] = value; while (--count > 0); |
| } |
| return j; |
| } |
| |
| |
| /** |
| * Translates a state to a row index in the transition table |
| */ |
| private static final int [] ZZ_ROWMAP = zzUnpackRowMap(); |
| |
| private static final String ZZ_ROWMAP_PACKED_0 = |
| "\0\0\0\66\0\154\0\242\0\330\0\u010e\0\u0144\0\u017a"+ |
| "\0\u01b0\0\u01e6\0\u01b0\0\u021c\0\u0252\0\u0288\0\u01b0\0\u01b0"+ |
| "\0\u02be\0\u02f4\0\u032a\0\u01b0\0\u01b0\0\u0360\0\u0396\0\u03cc"+ |
| "\0\u0402\0\u0438\0\u046e\0\u04a4\0\u04da\0\u01b0\0\u01b0\0\u01b0"+ |
| "\0\u01b0\0\u0510\0\u0546\0\u057c\0\u05b2\0\u05e8\0\u061e\0\u0654"+ |
| "\0\u068a\0\u06c0\0\u01b0\0\u01b0\0\u06f6\0\u072c\0\u0762\0\u01b0"+ |
| "\0\u0798\0\u07ce\0\u01b0\0\u0804\0\u083a\0\u0870\0\u08a6\0\u08a6"+ |
| "\0\u08dc\0\u0912\0\u0948\0\u097e\0\u09b4\0\u09ea\0\u0a20\0\u0a56"+ |
| "\0\u0a8c\0\u0ac2\0\u0af8\0\u01b0\0\u0b2e\0\u0b64\0\u0b9a\0\u01b0"+ |
| "\0\u01b0\0\u0bd0\0\u01b0\0\u0c06\0\u01b0\0\u0c3c\0\u0c72\0\u0ca8"+ |
| "\0\u0cde\0\u0d14\0\u0d4a\0\u0d80\0\u0db6\0\u0dec\0\u0e22\0\u0e58"+ |
| "\0\u0e8e\0\u0ec4\0\u0efa\0\u0f30\0\u0f66\0\u0f9c\0\u0fd2\0\u1008"+ |
| "\0\u103e\0\u1074\0\u10aa\0\u10e0\0\u1116\0\u114c\0\u1182\0\u11b8"+ |
| "\0\u11ee\0\u1224\0\u125a\0\u1290\0\u12c6\0\u12fc\0\u1332\0\u1368"+ |
| "\0\u139e\0\u13d4\0\u140a\0\u01b0\0\u01b0\0\u1440\0\u1476\0\u14ac"+ |
| "\0\u14e2\0\u1518\0\u154e\0\u1584\0\u15ba\0\u15f0\0\u1626\0\u165c"+ |
| "\0\u1692\0\u16c8\0\u16fe\0\u1734\0\u176a\0\u17a0\0\u17d6\0\u180c"+ |
| "\0\u1842\0\u1878\0\u18ae\0\u18e4\0\u191a\0\u1950\0\u1986\0\u19bc"+ |
| "\0\u19f2\0\u1a28\0\u1a5e\0\u1a94\0\u1aca\0\u1b00\0\u1b36\0\u1b6c"+ |
| "\0\u1ba2\0\u1bd8\0\u1c0e\0\u1c44\0\u1c7a\0\u1cb0\0\u01b0\0\u1ce6"+ |
| "\0\u1d1c\0\u1d52\0\u1d88\0\u1dbe\0\u1df4\0\u01b0\0\u01b0\0\u1e2a"+ |
| "\0\u1e60\0\u1e96\0\u01b0\0\u01b0\0\u01b0\0\u01b0\0\u01b0\0\u1ecc"+ |
| "\0\u1f02\0\u1f38\0\u01b0\0\u01b0\0\u01b0\0\u1f6e\0\u1fa4\0\u1fda"+ |
| "\0\u2010\0\u2046\0\u207c\0\u20b2\0\u01b0\0\u01b0\0\u01b0\0\u01b0"+ |
| "\0\u20e8\0\u211e\0\u2154\0\u218a\0\u21c0\0\u21f6\0\u222c\0\u2262"+ |
| "\0\u2298\0\u22ce\0\u2304\0\u233a\0\u2370\0\u23a6\0\u23dc\0\u2412"+ |
| "\0\u2448\0\u247e\0\u24b4\0\u01b0\0\u24ea\0\u2520\0\u2556\0\u258c"+ |
| "\0\u25c2\0\u25f8\0\u262e\0\u2664\0\u269a\0\u26d0\0\u2706\0\u273c"+ |
| "\0\u2772\0\u27a8\0\u27de\0\u2814\0\u284a\0\u2880\0\u28b6\0\u28ec"+ |
| "\0\u2922\0\u2958\0\u01b0\0\u298e\0\u29c4\0\u29fa\0\u2a30\0\u2a66"+ |
| "\0\u2a9c\0\u2ad2\0\u2b08\0\u2b3e\0\u01b0\0\u2b74\0\u2baa\0\u2be0"+ |
| "\0\u2c16\0\u2c4c\0\u2c82\0\u2cb8\0\u2cee\0\u2d24\0\u2d5a\0\u2d90"+ |
| "\0\u2dc6\0\u2dfc\0\u2e32\0\u2e68\0\u2e9e\0\u2ed4\0\u2f0a\0\u2f40"+ |
| "\0\u2f76\0\u2fac\0\u2fe2\0\u3018\0\u304e\0\u3084\0\u30ba\0\u30f0"+ |
| "\0\u3126\0\u315c\0\u3192\0\u31c8\0\u31fe\0\u3234\0\u326a\0\u32a0"+ |
| "\0\u32d6\0\u330c\0\u3342\0\u3378\0\u33ae\0\u33e4\0\u341a\0\u3450"+ |
| "\0\u3486\0\u34bc\0\u34f2\0\u3528\0\u355e\0\u3594\0\u35ca\0\u3600"+ |
| "\0\u3636\0\u366c\0\u36a2\0\u36d8\0\u370e\0\u3744\0\u377a\0\u37b0"+ |
| "\0\u37e6\0\u381c\0\u3852\0\u01b0\0\u3888\0\u38be\0\u38f4\0\u392a"+ |
| "\0\u3960\0\u3996\0\u39cc\0\u3a02\0\u3a38\0\u3a6e\0\u3aa4\0\u3ada"+ |
| "\0\u3b10\0\u3b46\0\u3b7c\0\u3bb2\0\u3be8\0\u3c1e\0\u3c54\0\u3c8a"+ |
| "\0\u3cc0\0\u3cf6\0\u3cf6\0\u01b0\0\u3d2c\0\u3d62\0\u3d98\0\u3dce"+ |
| "\0\u3e04\0\u3e3a\0\u3e70\0\u3ea6\0\u01b0\0\u3edc\0\u3f12\0\u3f48"+ |
| "\0\u3f7e\0\u3fb4\0\u3fea\0\u4020\0\u4056\0\u408c\0\u40c2\0\u01b0"+ |
| "\0\u40f8\0\u412e\0\u4164\0\u419a\0\u41d0\0\u01b0\0\u4206\0\u423c"+ |
| "\0\u4272\0\u42a8\0\u42de\0\u4314\0\u434a\0\u01b0\0\u4380\0\u43b6"+ |
| "\0\u01b0\0\u43ec\0\u01b0\0\u4422\0\u4458\0\u01b0\0\u01b0\0\u01b0"+ |
| "\0\u448e\0\u44c4\0\u01b0\0\u01b0\0\u44fa\0\u01b0\0\u4530\0\u01b0"+ |
| "\0\u4566\0\u459c\0\u01b0\0\u45d2\0\u4608\0\u463e\0\u01b0\0\u01b0"+ |
| "\0\u4674\0\u46aa\0\u46e0\0\u4716\0\u474c\0\u4782\0\u47b8\0\u47ee"+ |
| "\0\u4824\0\u485a\0\u4890\0\u48c6\0\u48fc\0\u4932\0\u4968\0\u499e"+ |
| "\0\u49d4\0\u4a0a\0\u4a40\0\u4a76\0\u4aac\0\u4ae2\0\u4b18\0\u01b0"+ |
| "\0\u4b4e\0\u4b84\0\u01b0\0\u4bba\0\u4bf0\0\u4c26\0\u01b0\0\u4c5c"+ |
| "\0\u4c92\0\u4cc8\0\u01b0\0\u4cfe\0\u4d34\0\u4d6a\0\u4da0\0\u01b0"+ |
| "\0\u01b0\0\u01b0\0\u4dd6\0\u4e0c\0\u4e42\0\u01b0\0\u4e78\0\u4eae"+ |
| "\0\u4ee4\0\u4f1a\0\u4f50\0\u4f86\0\u4fbc\0\u4ff2\0\u5028\0\u505e"+ |
| "\0\u5094\0\u01b0\0\u50ca\0\u5100\0\u5136\0\u516c\0\u51a2\0\u01b0"+ |
| "\0\u51d8\0\u520e\0\u5244\0\u527a\0\u01b0\0\u01b0\0\u52b0\0\u52e6"+ |
| "\0\u531c\0\u5352\0\u01b0\0\u01b0\0\u5388\0\u53be\0\u53f4\0\u542a"+ |
| "\0\u5460\0\u5496\0\u54cc\0\u5502\0\u5538\0\u556e\0\u55a4\0\u01b0"+ |
| "\0\u55da\0\u5610\0\u5646\0\u567c\0\u56b2\0\u01b0\0\u01b0\0\u01b0"+ |
| "\0\u56e8\0\u571e\0\u5754\0\u578a\0\u57c0\0\u57f6\0\u3cc0\0\u582c"+ |
| "\0\u3d98\0\u5862\0\u5898\0\u01b0\0\u3e70\0\u58ce\0\u5904\0\u593a"+ |
| "\0\u01b0\0\u5970\0\u01b0\0\u59a6\0\u59dc\0\u5a12\0\u5a48\0\u5a7e"+ |
| "\0\u5ab4\0\u5aea\0\u5b20\0\u5b56\0\u5b8c\0\u5bc2\0\u5bf8\0\u01b0"+ |
| "\0\u5c2e\0\u5c64\0\u5c9a\0\u5cd0\0\u5d06\0\u5d3c\0\u5d72\0\u5da8"+ |
| "\0\u5dde\0\u5e14\0\u5e4a\0\u5e80\0\u01b0\0\u01b0\0\u5eb6\0\u5eec"+ |
| "\0\u01b0\0\u5f22\0\u5f58\0\u5f8e\0\u5fc4\0\u5ffa\0\u6030\0\u6066"+ |
| "\0\u609c\0\u60d2\0\u6108\0\u613e\0\u6174\0\u61aa\0\u61e0\0\u6216"+ |
| "\0\u624c\0\u6282\0\u62b8\0\u01b0\0\u62ee\0\u6324\0\u635a\0\u6390"+ |
| "\0\u63c6\0\u63fc\0\u6432\0\u6468\0\u649e\0\u64d4\0\u01b0\0\u01b0"+ |
| "\0\u01b0\0\u650a\0\u6540\0\u6576\0\u01b0\0\u01b0\0\u65ac\0\u65e2"+ |
| "\0\u01b0\0\u6618\0\u664e\0\u6684\0\u66ba\0\u66f0\0\u01b0\0\u6726"+ |
| "\0\u675c\0\u6792\0\u67c8\0\u67fe\0\u6834\0\u01b0\0\u686a\0\u68a0"+ |
| "\0\u68d6\0\u690c\0\u6942\0\u6978\0\u69ae\0\u69e4\0\u6a1a\0\u6a50"+ |
| "\0\u01b0\0\u6a86\0\u6abc\0\u6af2\0\u6b28\0\u6b5e\0\u6b94\0\u6bca"+ |
| "\0\u6c00\0\u01b0\0\u01b0\0\u01b0\0\u01b0\0\u6c36\0\u6c6c\0\u01b0"+ |
| "\0\u6ca2\0\u6cd8\0\u01b0\0\u6d0e\0\u6d44\0\u6d7a\0\u6db0\0\u6de6"+ |
| "\0\u6e1c\0\u01b0\0\u01b0\0\u6e52\0\u6e88\0\u01b0\0\u01b0\0\u01b0"+ |
| "\0\u6ebe\0\u6ef4\0\u6f2a\0\u6f60\0\u6f96\0\u6fcc\0\u7002\0\u7038"+ |
| "\0\u706e\0\u70a4\0\u70da\0\u7110\0\u7146\0\u717c\0\u71b2\0\u71e8"+ |
| "\0\u01b0\0\u721e\0\u7254\0\u728a\0\u72c0\0\u72f6\0\u01b0\0\u732c"+ |
| "\0\u7362\0\u7398\0\u73ce\0\u7404\0\u01b0\0\u01b0\0\u743a\0\u7470"+ |
| "\0\u01b0\0\u74a6\0\u74dc\0\u7512\0\u7548\0\u757e\0\u75b4\0\u75ea"+ |
| "\0\u7620\0\u7656\0\u768c\0\u76c2\0\u76f8\0\u772e\0\u01b0\0\u7764"+ |
| "\0\u779a\0\u01b0\0\u77d0\0\u7806\0\u783c\0\u01b0\0\u7872\0\u01b0"+ |
| "\0\u78a8\0\u78de\0\u7914\0\u794a\0\u7980\0\u79b6\0\u79ec\0\u7a22"+ |
| "\0\u7a58\0\u7a8e\0\u7ac4\0\u7afa\0\u01b0\0\u7b30\0\u7b66\0\u7b9c"+ |
| "\0\u7bd2\0\u7c08\0\u7c3e\0\u7c74\0\u7caa\0\u01b0\0\u7ce0\0\u7d16"+ |
| "\0\u01b0\0\u7d4c\0\u7d82\0\u7db8\0\u7dee\0\u7e24\0\u7e5a\0\u7e90"+ |
| "\0\u01b0\0\u7ec6\0\u7efc\0\u7f32\0\u6ca2\0\u01b0\0\u7f68\0\u01b0"+ |
| "\0\u01b0\0\u01b0\0\u01b0\0\u01b0\0\u01b0\0\u7f9e\0\u01b0\0\u7fd4"+ |
| "\0\u800a\0\u8040\0\u8076\0\u01b0\0\u80ac\0\u80e2\0\u8118\0\u814e"+ |
| "\0\u8184\0\u01b0\0\u81ba\0\u81f0\0\u8226\0\u825c\0\u8292\0\u82c8"+ |
| "\0\u82fe\0\u8334\0\u01b0\0\u836a\0\u83a0\0\u83d6\0\u01b0\0\u840c"+ |
| "\0\u01b0\0\u8442\0\u8478\0\u01b0\0\u84ae\0\u84e4\0\u851a\0\u8550"+ |
| "\0\u8586\0\u85bc\0\u85f2\0\u8628\0\u01b0\0\u01b0\0\u01b0\0\u865e"+ |
| "\0\u8694\0\u86ca\0\u8700\0\u8736\0\u01b0\0\u876c\0\u87a2\0\u87d8"+ |
| "\0\u880e\0\u8844\0\u887a\0\u88b0\0\u01b0\0\u01b0\0\u01b0\0\u88e6"+ |
| "\0\u01b0\0\u891c\0\u8952\0\u8988\0\u01b0\0\u89be\0\u89f4\0\u01b0"+ |
| "\0\u8a2a\0\u8a60\0\u8a96\0\u8acc\0\u01b0\0\u01b0\0\u8b02\0\u8b38"+ |
| "\0\u8b6e\0\u8ba4\0\u8bda\0\u8c10\0\u8c46\0\u8c7c\0\u8cb2\0\u01b0"+ |
| "\0\u8ce8\0\u8d1e\0\u8d54\0\u8d8a\0\u8dc0\0\u8df6\0\u8e2c\0\u8e62"+ |
| "\0\u01b0\0\u8e98\0\u8ece\0\u8f04\0\u8f3a\0\u8f70\0\u8fa6\0\u01b0"+ |
| "\0\u01b0\0\u83a0\0\u8fdc\0\u9012\0\u9048\0\u907e\0\u01b0\0\u01b0"+ |
| "\0\u01b0\0\u01b0\0\u90b4\0\u90ea\0\u9120\0\u01b0\0\u9156\0\u918c"+ |
| "\0\u91c2\0\u91f8\0\u922e\0\u9264\0\u01b0\0\u929a\0\u01b0\0\u92d0"+ |
| "\0\u01b0\0\u9306\0\u933c\0\u01b0\0\u9372\0\u93a8\0\u93de\0\u9414"+ |
| "\0\u944a\0\u01b0\0\u9480\0\u94b6\0\u01b0\0\u94ec\0\u01b0\0\u01b0"+ |
| "\0\u9522\0\u9558\0\u958e\0\u95c4\0\u95fa\0\u01b0\0\u9630\0\u9666"+ |
| "\0\u01b0\0\u969c\0\u01b0\0\u96d2\0\u9708\0\u01b0\0\u01b0\0\u973e"+ |
| "\0\u01b0\0\u01b0\0\u9774\0\u97aa\0\u97e0\0\u01b0\0\u01b0\0\u01b0"+ |
| "\0\u01b0\0\u9816\0\u984c\0\u9882\0\u01b0\0\u98b8\0\u91f8\0\u01b0"+ |
| "\0\u01b0\0\u98ee\0\u9924\0\u995a\0\u9990\0\u01b0\0\u01b0\0\u01b0"+ |
| "\0\u01b0\0\u01b0\0\u99c6\0\u99fc\0\u94ec\0\u9522\0\u9a32\0\u9a68"+ |
| "\0\u9a9e\0\u01b0\0\u9ad4\0\u9b0a\0\u9b40\0\u9b76\0\u01b0\0\u01b0"+ |
| "\0\u9bac\0\u01b0\0\u9be2\0\u01b0\0\u9c18\0\u9c4e\0\u01b0\0\u01b0"+ |
| "\0\u9c84\0\u01b0\0\u9cba\0\u9cf0\0\u9d26\0\u9d5c\0\u01b0\0\u9d92"+ |
| "\0\u9dc8\0\u01b0\0\u9dfe\0\u01b0\0\u9e34\0\u9e6a\0\u01b0\0\u01b0"+ |
| "\0\u9ea0\0\u9ed6\0\u9d26\0\u9f0c\0\u01b0\0\u01b0\0\u9f42\0\u9f78"+ |
| "\0\u9fae\0\u9fe4\0\ua01a\0\u01b0\0\u01b0\0\ua050\0\u9fae\0\u01b0"+ |
| "\0\ua086\0\u01b0\0\ua0bc\0\ua0f2\0\ua128\0\u01b0\0\ua15e\0\ua15e"; |
| |
| private static int [] zzUnpackRowMap() { |
| int [] result = new int[976]; |
| int offset = 0; |
| offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result); |
| return result; |
| } |
| |
| private static int zzUnpackRowMap(String packed, int offset, int [] result) { |
| int i = 0; /* index in packed string */ |
| int j = offset; /* index in unpacked array */ |
| int l = packed.length(); |
| while (i < l) { |
| int high = packed.charAt(i++) << 16; |
| result[j++] = high | packed.charAt(i++); |
| } |
| return j; |
| } |
| |
| /** |
| * The transition table of the DFA |
| */ |
| private static final int [] ZZ_TRANS = zzUnpackTrans(); |
| |
| private static final String ZZ_TRANS_PACKED_0 = |
| "\1\11\1\12\1\13\1\14\1\15\1\16\1\17\1\20"+ |
| "\1\21\1\22\1\11\1\23\1\24\1\15\1\25\1\26"+ |
| "\1\15\1\27\1\30\1\11\1\31\1\32\1\33\1\34"+ |
| "\1\35\1\11\1\36\1\37\1\40\1\41\1\13\1\11"+ |
| "\1\42\1\43\1\44\1\45\1\46\1\47\1\50\1\11"+ |
| "\1\51\1\52\1\53\1\54\1\55\1\11\1\56\1\57"+ |
| "\1\11\1\60\1\61\1\62\1\63\1\64\1\11\1\12"+ |
| "\1\13\1\14\1\65\1\66\1\67\1\70\1\71\1\72"+ |
| "\1\11\1\73\1\24\1\65\1\25\1\74\1\65\1\75"+ |
| "\1\30\1\11\1\76\1\77\1\33\1\100\1\35\1\11"+ |
| "\1\36\1\101\1\40\1\41\1\13\1\11\1\42\1\43"+ |
| "\1\44\1\45\1\46\1\47\1\50\1\11\1\51\1\52"+ |
| "\1\53\1\54\1\55\1\11\1\56\1\57\1\11\1\60"+ |
| "\1\61\1\62\1\63\1\102\1\103\2\104\11\103\1\105"+ |
| "\51\103\1\106\2\104\13\106\1\107\47\106\1\110\2\111"+ |
| "\63\110\1\11\1\12\1\13\1\14\1\65\1\66\1\67"+ |
| "\1\70\1\71\1\72\1\11\1\73\1\24\1\65\1\25"+ |
| "\1\74\1\65\1\75\1\30\1\11\1\76\1\77\1\33"+ |
| "\1\100\1\35\1\11\1\36\1\112\1\40\1\41\1\13"+ |
| "\1\11\1\42\1\43\1\44\1\45\1\46\1\47\1\50"+ |
| "\1\11\1\51\1\52\1\53\1\54\1\55\1\11\1\56"+ |
| "\1\57\1\11\1\60\1\61\1\62\1\63\1\102\1\11"+ |
| "\1\12\1\13\1\14\1\65\1\66\1\67\1\70\1\71"+ |
| "\1\72\1\11\1\73\1\24\1\65\1\25\1\74\1\65"+ |
| "\1\75\1\30\1\11\1\76\1\77\1\33\1\100\1\35"+ |
| "\1\11\1\36\1\37\1\40\1\41\1\13\1\11\1\42"+ |
| "\1\43\1\44\1\45\1\46\1\47\1\50\1\11\1\51"+ |
| "\1\52\1\53\1\54\1\55\1\11\1\56\1\57\1\11"+ |
| "\1\60\1\61\1\62\1\63\1\64\2\113\1\0\2\113"+ |
| "\1\114\2\113\1\114\1\113\2\114\3\113\1\114\1\113"+ |
| "\11\114\7\113\6\114\1\113\2\114\3\113\4\114\5\113"+ |
| "\70\0\1\13\66\0\1\115\66\0\1\15\1\116\7\0"+ |
| "\1\15\2\0\1\15\76\0\1\117\7\0\1\120\1\121"+ |
| "\2\0\1\122\12\0\1\123\12\0\1\124\11\0\1\125"+ |
| "\2\0\1\126\1\0\1\127\46\0\1\130\2\0\1\131"+ |
| "\1\0\2\131\3\0\1\132\1\0\1\131\1\133\2\131"+ |
| "\1\134\1\131\1\135\2\131\7\0\1\136\1\137\4\131"+ |
| "\1\0\1\140\1\131\3\0\4\131\21\0\1\141\1\0"+ |
| "\1\142\3\0\1\143\1\0\1\144\15\0\1\145\37\0"+ |
| "\1\146\1\0\1\147\11\0\1\150\10\0\1\151\2\0"+ |
| "\1\152\35\0\1\153\1\0\1\154\57\0\1\155\2\0"+ |
| "\1\156\12\0\1\157\13\0\1\160\1\161\32\0\1\162"+ |
| "\6\0\1\163\5\0\1\164\1\165\12\0\1\166\4\0"+ |
| "\1\167\36\0\1\170\4\0\1\171\17\0\1\172\1\0"+ |
| "\1\173\24\0\1\174\14\0\1\175\1\0\1\176\17\0"+ |
| "\1\177\3\0\1\200\22\0\1\201\11\0\1\202\53\0"+ |
| "\1\203\11\0\1\204\2\0\1\205\21\0\1\206\1\207"+ |
| "\25\0\1\210\2\0\1\211\13\0\1\212\3\0\1\213"+ |
| "\11\0\1\214\1\0\1\215\26\0\1\216\11\0\1\217"+ |
| "\2\0\1\220\21\0\1\221\1\0\1\222\24\0\1\223"+ |
| "\11\0\1\224\65\0\1\225\2\0\1\226\1\227\16\0"+ |
| "\1\230\12\0\1\231\36\0\1\232\12\0\1\233\31\0"+ |
| "\1\234\11\0\1\235\65\0\1\236\65\0\1\237\2\0"+ |
| "\1\240\1\241\31\0\1\242\32\0\1\243\1\244\21\0"+ |
| "\1\245\74\0\1\246\5\0\1\247\22\0\1\250\2\0"+ |
| "\1\251\67\0\1\252\115\0\1\253\65\0\1\254\5\0"+ |
| "\1\255\57\0\1\256\10\0\1\257\4\0\1\65\1\260"+ |
| "\2\0\1\261\1\262\3\0\1\65\2\0\1\65\2\0"+ |
| "\1\263\4\0\1\264\1\265\40\0\1\266\10\0\1\266"+ |
| "\2\0\1\266\5\0\1\267\2\0\1\117\7\0\1\270"+ |
| "\1\121\2\0\1\122\12\0\1\123\11\0\1\271\10\0"+ |
| "\1\271\2\0\1\271\51\0\1\272\1\124\7\0\1\272"+ |
| "\1\0\1\125\1\272\1\0\1\126\1\0\1\127\45\0"+ |
| "\1\273\1\130\2\0\1\131\1\0\2\131\1\0\1\273"+ |
| "\1\0\1\132\1\273\1\131\1\133\2\131\1\134\1\131"+ |
| "\1\135\2\131\7\0\1\136\1\137\4\131\1\0\1\140"+ |
| "\1\131\3\0\4\131\11\0\1\272\7\0\1\141\1\272"+ |
| "\1\142\1\0\1\272\1\0\1\143\1\0\1\144\15\0"+ |
| "\1\145\27\0\1\272\7\0\1\146\1\272\1\147\1\0"+ |
| "\1\272\7\0\1\150\10\0\1\151\2\0\1\152\25\0"+ |
| "\1\272\7\0\1\153\1\272\1\154\1\0\1\272\51\0"+ |
| "\1\272\3\0\1\162\4\0\1\272\1\0\1\163\1\272"+ |
| "\4\0\1\164\1\165\12\0\1\166\4\0\1\167\23\0"+ |
| "\1\272\10\0\1\272\1\0\1\170\1\272\3\0\1\171"+ |
| "\17\0\1\172\1\0\1\173\23\0\1\266\1\201\7\0"+ |
| "\1\266\1\0\1\202\1\266\52\0\1\274\2\0\1\274"+ |
| "\1\0\2\274\3\0\1\274\1\0\11\274\7\0\6\274"+ |
| "\1\0\2\274\3\0\4\274\4\0\1\275\35\0\1\276"+ |
| "\16\0\1\256\10\0\1\257\1\103\2\0\11\103\1\0"+ |
| "\51\103\14\0\1\277\51\0\1\106\2\0\13\106\1\0"+ |
| "\47\106\16\0\1\300\134\0\1\275\4\0\2\114\2\0"+ |
| "\1\114\1\0\2\114\1\0\1\114\1\0\14\114\6\0"+ |
| "\6\114\1\0\2\114\3\0\4\114\11\0\1\301\10\0"+ |
| "\1\301\2\0\1\301\71\0\1\302\23\0\1\303\25\0"+ |
| "\1\304\32\0\1\305\1\306\3\0\1\307\22\0\1\310"+ |
| "\20\0\1\311\104\0\1\312\64\0\1\313\43\0\1\314"+ |
| "\2\0\1\315\14\0\1\316\1\317\66\0\1\320\71\0"+ |
| "\1\321\62\0\1\322\1\323\24\0\1\131\2\0\1\131"+ |
| "\1\324\2\131\3\0\1\131\1\0\11\131\7\0\6\131"+ |
| "\1\0\2\131\3\0\3\131\1\325\12\0\1\131\2\0"+ |
| "\1\131\1\324\2\131\3\0\1\131\1\0\11\131\7\0"+ |
| "\6\131\1\0\2\131\3\0\4\131\12\0\1\131\2\0"+ |
| "\1\131\1\324\2\131\3\0\1\131\1\0\11\131\7\0"+ |
| "\4\131\1\326\1\131\1\0\2\131\3\0\4\131\12\0"+ |
| "\1\131\2\0\1\131\1\324\2\131\3\0\1\131\1\0"+ |
| "\11\131\7\0\1\327\5\131\1\0\2\131\3\0\4\131"+ |
| "\12\0\1\131\2\0\1\131\1\324\2\131\3\0\1\131"+ |
| "\1\0\1\131\1\330\7\131\7\0\6\131\1\0\2\131"+ |
| "\3\0\4\131\12\0\1\331\2\0\1\131\1\324\2\131"+ |
| "\3\0\1\131\1\0\11\131\7\0\6\131\1\0\1\332"+ |
| "\1\131\3\0\4\131\12\0\1\333\2\0\1\131\1\324"+ |
| "\2\131\3\0\1\334\1\0\11\131\7\0\6\131\1\0"+ |
| "\2\131\3\0\4\131\12\0\1\335\2\0\1\131\1\324"+ |
| "\2\131\3\0\1\131\1\0\11\131\7\0\6\131\1\0"+ |
| "\1\336\1\131\3\0\4\131\12\0\1\131\2\0\1\131"+ |
| "\1\324\2\131\3\0\1\131\1\0\11\131\7\0\4\131"+ |
| "\1\337\1\131\1\0\2\131\3\0\4\131\22\0\1\340"+ |
| "\65\0\1\341\113\0\1\342\63\0\1\343\43\0\1\344"+ |
| "\2\0\1\345\60\0\1\346\2\0\1\346\62\0\1\347"+ |
| "\2\0\1\347\52\0\1\350\42\0\1\351\57\0\1\352"+ |
| "\73\0\1\353\21\0\2\354\2\0\1\354\2\0\1\354"+ |
| "\1\0\1\354\2\0\1\354\1\0\1\354\2\0\1\354"+ |
| "\15\0\1\354\26\0\2\355\2\0\1\355\2\0\1\355"+ |
| "\1\0\1\355\2\0\1\355\1\0\1\355\2\0\1\355"+ |
| "\15\0\1\355\100\0\1\356\35\0\1\357\65\0\1\360"+ |
| "\26\0\1\361\52\0\1\362\66\0\1\363\4\0\1\364"+ |
| "\64\0\1\162\4\0\1\365\37\0\1\366\13\0\1\367"+ |
| "\3\0\1\370\36\0\1\371\23\0\1\372\4\0\1\373"+ |
| "\7\0\1\374\35\0\1\375\102\0\1\376\61\0\1\377"+ |
| "\1\u0100\64\0\1\u0101\74\0\1\u0102\57\0\1\u0103\15\0"+ |
| "\1\u0104\63\0\1\u0105\30\0\1\u0106\5\0\1\u0107\51\0"+ |
| "\1\u0108\71\0\1\u0109\2\0\1\u010a\22\0\1\u010b\61\0"+ |
| "\1\u010c\74\0\1\u010d\56\0\1\u010e\50\0\1\u010f\1\0"+ |
| "\1\u0110\47\0\1\u0111\15\0\1\u0112\15\0\1\u0113\1\u0114"+ |
| "\33\0\1\u0115\31\0\1\u0116\25\0\1\u0117\11\0\1\u0118"+ |
| "\4\0\1\u0119\102\0\1\u011a\1\u011b\2\0\1\u011c\25\0"+ |
| "\1\u011d\105\0\1\u011e\13\0\1\u011f\71\0\1\u0120\44\0"+ |
| "\1\u0121\102\0\1\u0122\55\0\1\u0123\64\0\1\u0124\10\0"+ |
| "\1\u0125\72\0\1\u0126\61\0\1\u0127\3\0\1\u0128\61\0"+ |
| "\1\u0129\64\0\1\u012a\53\0\1\u012b\77\0\1\u012c\4\0"+ |
| "\1\u012d\45\0\1\u012e\13\0\1\u012f\45\0\1\u0130\62\0"+ |
| "\1\u0131\2\0\1\u0132\106\0\1\u0133\27\0\1\u0134\104\0"+ |
| "\1\u0135\1\u0136\62\0\1\u0137\3\0\1\u0138\14\0\1\u0139"+ |
| "\4\0\1\u013a\1\u013b\60\0\1\u013c\31\0\1\u013d\122\0"+ |
| "\1\u013e\25\0\1\u013f\110\0\1\u0140\61\0\1\u0141\46\0"+ |
| "\1\u0142\16\0\1\u0143\65\0\1\u0144\103\0\1\u0145\65\0"+ |
| "\1\u0146\64\0\1\u0147\30\0\1\u0148\1\0\2\u0149\5\0"+ |
| "\1\u0148\2\0\1\u0148\51\0\1\u014a\1\0\2\u014b\5\0"+ |
| "\1\u014a\2\0\1\u014a\45\0\4\u014c\1\273\1\u014d\2\u014c"+ |
| "\1\261\1\u014c\2\0\1\u014c\1\273\1\u014c\1\0\1\273"+ |
| "\11\0\7\u014c\6\0\1\u014c\2\0\3\u014c\4\0\5\u014c"+ |
| "\4\0\1\266\4\0\1\u014e\3\0\1\266\2\0\1\266"+ |
| "\51\0\1\266\10\0\1\266\2\0\1\266\51\0\1\266"+ |
| "\3\0\1\304\4\0\1\266\2\0\1\266\22\0\1\305"+ |
| "\1\306\3\0\1\307\21\0\1\271\10\0\1\271\2\0"+ |
| "\1\271\7\0\1\264\41\0\1\272\4\0\1\u014f\3\0"+ |
| "\1\272\2\0\1\272\51\0\1\273\1\u014d\2\0\1\261"+ |
| "\4\0\1\273\2\0\1\273\54\0\1\u0150\24\0\1\u0151"+ |
| "\1\u0152\34\0\1\301\4\0\1\u0153\3\0\1\301\2\0"+ |
| "\1\301\73\0\1\u0154\21\0\1\u0155\22\0\1\u0156\70\0"+ |
| "\1\u0157\2\0\1\u0158\10\0\1\u0159\1\u015a\1\u015b\1\0"+ |
| "\1\u015c\15\0\1\u015d\1\0\1\u015e\1\u015f\2\0\1\u0160"+ |
| "\30\0\1\u0161\114\0\1\u0162\64\0\1\u0163\66\0\1\u0164"+ |
| "\24\0\1\u0165\134\0\1\u0166\35\0\1\u0167\103\0\1\u0168"+ |
| "\30\0\1\u0169\14\0\1\u016a\67\0\1\u016b\65\0\1\u016c"+ |
| "\54\0\1\u016d\74\0\1\u016e\50\0\1\u016f\65\0\1\u0170"+ |
| "\65\0\1\131\2\0\1\131\1\u0171\2\131\3\0\1\131"+ |
| "\1\0\11\131\7\0\6\131\1\0\2\131\3\0\1\131"+ |
| "\1\u0172\2\131\12\0\1\131\2\0\1\131\1\u0173\2\131"+ |
| "\3\0\1\131\1\0\11\131\7\0\6\131\1\0\2\131"+ |
| "\3\0\4\131\12\0\1\131\2\0\1\u0174\1\324\2\131"+ |
| "\3\0\1\131\1\0\11\131\7\0\6\131\1\0\2\131"+ |
| "\3\0\4\131\12\0\1\131\2\0\1\131\1\324\2\131"+ |
| "\3\0\1\131\1\0\11\131\7\0\1\131\1\u0175\4\131"+ |
| "\1\0\2\131\3\0\4\131\12\0\1\131\2\0\1\131"+ |
| "\1\u0176\2\131\3\0\1\131\1\0\11\131\7\0\6\131"+ |
| "\1\0\2\131\3\0\4\131\12\0\1\131\2\0\1\131"+ |
| "\1\u0177\2\131\3\0\1\131\1\0\11\131\7\0\6\131"+ |
| "\1\0\2\131\3\0\4\131\12\0\1\131\2\0\1\131"+ |
| "\1\u0178\2\131\3\0\1\131\1\0\11\131\7\0\6\131"+ |
| "\1\0\2\131\3\0\3\131\1\u0179\12\0\1\131\2\0"+ |
| "\1\131\1\324\2\131\3\0\1\131\1\0\11\131\7\0"+ |
| "\6\131\1\0\1\u017a\1\131\3\0\4\131\12\0\1\131"+ |
| "\2\0\1\131\1\u017b\2\131\3\0\1\131\1\0\11\131"+ |
| "\7\0\6\131\1\0\2\131\3\0\4\131\12\0\1\131"+ |
| "\2\0\1\131\1\u017c\2\131\3\0\1\131\1\0\11\131"+ |
| "\7\0\6\131\1\0\2\131\3\0\4\131\12\0\1\131"+ |
| "\2\0\1\131\1\324\2\131\3\0\1\131\1\0\11\131"+ |
| "\7\0\3\131\1\u017d\2\131\1\0\2\131\3\0\4\131"+ |
| "\21\0\1\u017e\1\340\65\0\1\341\1\u017e\126\0\1\u017f"+ |
| "\16\0\1\u0180\120\0\1\u0181\63\0\1\u0182\40\0\1\u0183"+ |
| "\1\346\2\0\1\346\62\0\1\347\1\u0183\1\0\1\347"+ |
| "\106\0\1\u0184\3\0\1\u0185\44\0\1\u0186\116\0\1\u0187"+ |
| "\14\0\2\354\2\0\1\354\2\0\1\354\1\u0188\1\354"+ |
| "\2\0\1\354\1\0\1\354\2\0\1\354\15\0\1\354"+ |
| "\26\0\2\355\2\0\1\355\2\0\1\355\1\0\1\355"+ |
| "\1\u0188\1\0\1\355\1\0\1\355\2\0\1\355\15\0"+ |
| "\1\355\44\0\1\u0189\113\0\1\u018a\34\0\1\u018b\4\0"+ |
| "\1\u018c\102\0\1\u018d\43\0\1\u018e\53\0\1\u018f\104\0"+ |
| "\1\u0190\111\0\1\u0191\22\0\1\u0192\106\0\1\u0193\103\0"+ |
| "\1\u0194\63\0\1\u0195\30\0\1\u0196\37\0\1\u0197\64\0"+ |
| "\1\u0198\40\0\1\u0199\22\0\1\u019a\45\0\1\u019b\23\0"+ |
| "\1\u019c\41\0\1\u019d\50\0\1\u019e\123\0\1\u019f\76\0"+ |
| "\1\u01a0\16\0\1\u01a1\124\0\1\u01a2\26\0\1\u01a3\65\0"+ |
| "\1\u01a4\121\0\1\u01a5\71\0\1\u01a6\50\0\1\u01a7\105\0"+ |
| "\1\u01a8\22\0\1\u01a9\65\0\1\u01aa\77\0\1\u01ab\56\0"+ |
| "\1\u01ac\116\0\1\u01ad\50\0\1\u01ae\22\0\1\u01af\4\0"+ |
| "\1\u01b0\65\0\1\u01b1\37\0\1\u01b2\65\0\1\u01b3\61\0"+ |
| "\1\u01b4\105\0\1\u01b5\30\0\1\u01b6\123\0\1\u01b7\51\0"+ |
| "\1\u01b8\13\0\1\u01b9\4\0\1\u01ba\56\0\1\u01bb\14\0"+ |
| "\1\u01bc\17\0\1\u01bd\101\0\1\u01be\1\0\1\u01bf\104\0"+ |
| "\1\u01c0\45\0\1\214\40\0\1\u011e\1\u01c1\1\u01c2\63\u011e"+ |
| "\43\0\1\u01c3\44\0\1\u01c4\104\0\1\u01bf\34\0\1\u01c5"+ |
| "\125\0\1\u01c6\37\0\1\u01c7\50\0\1\u01c8\24\0\1\u01c9"+ |
| "\40\0\1\u01ca\122\0\1\u01cb\36\0\1\u01cc\126\0\1\u01cd"+ |
| "\65\0\1\u01ce\35\0\1\u01cf\111\0\1\u01d0\45\0\1\u01d1"+ |
| "\15\0\1\u01d2\24\0\1\u01d3\122\0\1\u01d4\70\0\1\u01d5"+ |
| "\46\0\1\u01d6\65\0\1\u01d7\101\0\1\u01d8\73\0\1\u01d9"+ |
| "\34\0\1\u01da\56\0\1\u01db\31\0\1\u01dc\67\0\1\u01dd"+ |
| "\63\0\1\u01de\1\0\1\u01df\7\0\1\u01e0\55\0\1\u01e1"+ |
| "\45\0\1\u01e2\102\0\1\u01e3\70\0\1\u01e4\50\0\1\u01e5"+ |
| "\77\0\1\u01e6\31\0\1\u01e7\130\0\1\u01e8\62\0\1\u01e9"+ |
| "\62\0\1\u01ea\73\0\1\u01eb\37\0\1\u01ec\107\0\1\u01ed"+ |
| "\31\0\1\u01ee\61\0\1\u0148\4\0\1\u0153\3\0\1\u0148"+ |
| "\2\0\1\u0148\51\0\1\u01ef\10\0\1\u01ef\2\0\1\u01ef"+ |
| "\51\0\1\u014a\10\0\1\u014a\2\0\1\u014a\51\0\1\u01ef"+ |
| "\1\0\2\u0149\5\0\1\u01ef\2\0\1\u01ef\51\0\1\u01f0"+ |
| "\10\0\1\u01f0\2\0\1\u01f0\51\0\1\u01f1\10\0\1\u01f1"+ |
| "\2\0\1\u01f1\52\0\1\u01f2\2\0\1\u01f2\1\0\2\u01f2"+ |
| "\3\0\1\u01f2\1\0\11\u01f2\7\0\6\u01f2\1\0\2\u01f2"+ |
| "\3\0\4\u01f2\12\0\1\274\2\0\1\274\1\0\2\274"+ |
| "\3\0\1\274\1\0\11\274\7\0\6\274\1\0\2\274"+ |
| "\3\0\4\274\6\0\1\u01f3\1\u01f4\31\0\1\u01f4\1\0"+ |
| "\2\u01f4\32\0\1\u01f5\10\0\1\u01f5\2\0\1\u01f5\115\0"+ |
| "\1\u01f6\56\0\1\u01f7\3\0\1\u01f8\37\0\1\u01f9\110\0"+ |
| "\1\u01fa\50\0\1\u01fb\13\0\1\u01fc\43\0\1\u01fd\4\0"+ |
| "\1\u01fe\17\0\1\u01ff\26\0\1\u0200\36\0\1\u0201\66\0"+ |
| "\1\u0202\37\0\1\u0203\123\0\1\u0204\33\0\1\u0205\52\0"+ |
| "\1\u0206\62\0\1\u0207\135\0\1\u0208\15\0\1\u0209\104\0"+ |
| "\1\u020a\24\0\1\u020b\72\0\1\u020c\51\0\1\u020d\70\0"+ |
| "\1\u020e\64\0\1\u020f\67\0\1\u0210\65\0\1\u0211\61\0"+ |
| "\1\u0212\66\0\1\u0213\63\0\1\u0214\31\0\1\131\2\0"+ |
| "\1\131\1\u0215\2\131\3\0\1\131\1\0\11\131\7\0"+ |
| "\6\131\1\0\2\131\3\0\4\131\12\0\1\131\2\0"+ |
| "\1\131\1\u0216\2\131\3\0\1\131\1\0\11\131\7\0"+ |
| "\6\131\1\0\2\131\3\0\4\131\12\0\1\131\2\0"+ |
| "\1\131\1\324\2\131\3\0\1\131\1\0\5\131\1\u0217"+ |
| "\3\131\7\0\6\131\1\0\2\131\3\0\4\131\12\0"+ |
| "\1\131\2\0\1\131\1\324\2\131\3\0\1\131\1\0"+ |
| "\11\131\7\0\6\131\1\0\2\131\3\0\1\131\1\u0218"+ |
| "\2\131\12\0\1\131\2\0\1\131\1\u0219\2\131\3\0"+ |
| "\1\131\1\0\11\131\7\0\6\131\1\0\2\131\3\0"+ |
| "\4\131\12\0\1\u021a\2\0\1\131\1\324\2\131\3\0"+ |
| "\1\131\1\0\11\131\7\0\6\131\1\0\2\131\3\0"+ |
| "\4\131\33\0\1\u021b\116\0\1\u021c\65\0\1\u021d\13\0"+ |
| "\1\u021e\102\0\1\u021f\62\0\1\u0220\107\0\1\u0221\71\0"+ |
| "\1\u0222\63\0\1\u0223\51\0\1\u0224\101\0\1\u0225\65\0"+ |
| "\1\u0226\50\0\1\u0227\56\0\1\u0228\70\0\1\u0229\104\0"+ |
| "\1\u022a\53\0\1\u022b\106\0\1\u022c\61\0\1\u022d\50\0"+ |
| "\1\u022e\11\0\1\u022f\3\0\1\u0230\44\0\1\u0231\65\0"+ |
| "\1\u0232\106\0\1\u0233\44\0\1\u0234\103\0\1\u0235\45\0"+ |
| "\1\u0236\31\0\1\u0237\53\0\1\u0238\77\0\1\u0239\61\0"+ |
| "\1\u023a\60\0\1\u023b\27\0\1\u023c\134\0\1\u023d\60\0"+ |
| "\1\u01a5\4\0\1\u023e\30\0\1\u023f\112\0\1\u0240\7\0"+ |
| "\1\u0241\33\0\1\u0242\110\0\1\u0243\44\0\1\u0244\111\0"+ |
| "\1\u0245\65\0\1\u0246\64\0\1\u01af\4\0\1\u01b0\16\0"+ |
| "\1\u0247\126\0\1\u0248\43\0\1\u0249\65\0\1\u024a\106\0"+ |
| "\1\u024b\25\0\1\u024c\65\0\1\u024d\130\0\1\u024e\37\0"+ |
| "\1\u024f\67\0\1\u01be\66\0\1\u011e\45\0\1\u011e\77\0"+ |
| "\1\u0250\50\0\1\u01c2\125\0\1\u0251\52\0\1\u0252\43\0"+ |
| "\1\u01be\125\0\1\u0253\46\0\1\u0254\56\0\1\u0255\4\0"+ |
| "\1\u0256\51\0\1\u0257\31\0\1\u0258\11\0\1\u0259\35\0"+ |
| "\1\u025a\46\0\1\u025b\123\0\1\u025c\44\0\1\u025d\1\0"+ |
| "\1\u025e\103\0\1\u025f\42\0\1\u0260\70\0\1\u0261\50\0"+ |
| "\1\u0262\106\0\1\u0263\44\0\1\u0264\134\0\1\u0265\56\0"+ |
| "\1\u0266\71\0\1\u0267\2\0\1\u0268\14\0\1\u0269\124\0"+ |
| "\1\u026a\77\0\1\u026b\56\0\1\u026c\65\0\1\u026d\61\0"+ |
| "\1\u026e\34\0\1\u026f\117\0\1\u0270\30\0\1\u0271\65\0"+ |
| "\1\u0272\65\0\1\u0273\65\0\1\u0274\130\0\1\u0275\22\0"+ |
| "\1\u0276\134\0\1\u0277\15\0\1\u01f0\1\u014f\7\0\1\u01f0"+ |
| "\2\0\1\u01f0\101\0\1\u0151\1\u0152\32\0\1\u01f4\137\0"+ |
| "\1\u0278\21\0\1\u0279\116\0\1\u027a\43\0\1\u027b\116\0"+ |
| "\1\u027c\62\0\1\u027d\62\0\1\u027e\64\0\1\u027f\66\0"+ |
| "\1\u0280\36\0\1\u0281\71\0\1\u0282\56\0\1\u0283\105\0"+ |
| "\1\u0284\42\0\1\u0285\104\0\1\u0286\106\0\1\u0287\61\0"+ |
| "\1\u0288\51\0\1\u0289\63\0\1\u028a\64\0\1\u028b\62\0"+ |
| "\1\u028c\113\0\1\u028d\62\0\1\u028e\77\0\1\u028f\33\0"+ |
| "\1\u0290\50\0\1\u0291\130\0\1\u0292\43\0\1\u0293\44\0"+ |
| "\1\u0294\2\0\1\131\1\324\2\131\3\0\1\131\1\0"+ |
| "\11\131\7\0\6\131\1\0\2\131\3\0\4\131\12\0"+ |
| "\1\131\2\0\1\131\1\u0295\2\131\3\0\1\131\1\0"+ |
| "\11\131\7\0\6\131\1\0\2\131\3\0\4\131\12\0"+ |
| "\1\131\2\0\1\131\1\u0296\2\131\3\0\1\131\1\0"+ |
| "\11\131\7\0\6\131\1\0\2\131\3\0\4\131\35\0"+ |
| "\1\u0297\45\0\1\u0298\131\0\1\u0299\21\0\1\u029a\125\0"+ |
| "\1\u029b\56\0\1\u029c\67\0\1\u029d\44\0\1\u029e\67\0"+ |
| "\1\u029f\102\0\1\u02a0\47\0\1\u02a1\64\0\1\u02a2\71\0"+ |
| "\1\u02a3\100\0\1\u02a4\74\0\1\u02a5\44\0\1\u02a6\105\0"+ |
| "\1\u022b\4\0\1\u02a7\21\0\1\u02a8\62\0\1\u02a9\130\0"+ |
| "\1\u02aa\42\0\1\u02ab\101\0\1\u02ac\71\0\1\u02ad\70\0"+ |
| "\1\u02ae\60\0\1\u02af\64\0\1\u02b0\73\0\1\u02b1\41\0"+ |
| "\1\u02b2\111\0\1\u02b3\56\0\1\u02b4\70\0\1\u02b5\47\0"+ |
| "\1\u02b6\105\0\1\u02b7\43\0\1\u02b8\102\0\1\u02b9\31\0"+ |
| "\1\u02ba\104\0\1\u02bb\46\0\1\u02bc\123\0\1\u02bd\50\0"+ |
| "\1\u02be\61\0\1\u02bf\53\0\1\u02c0\120\0\1\u02c1\72\0"+ |
| "\1\u02c2\62\0\1\u011e\64\0\1\u02c3\67\0\1\u02c4\24\0"+ |
| "\1\u02c5\106\0\1\u02c6\115\0\1\u02c7\50\0\1\u02c8\100\0"+ |
| "\1\u02c9\35\0\1\u02ca\66\0\1\u02cb\105\0\1\u02cc\42\0"+ |
| "\1\u02cd\67\0\1\u02ce\102\0\1\u02cf\31\0\1\u02d0\121\0"+ |
| "\1\u02d1\67\0\1\u02d2\70\0\1\u02d3\64\0\1\u02d4\24\0"+ |
| "\1\u02d5\10\0\1\u02d5\2\0\1\u02d5\115\0\1\u02d6\43\0"+ |
| "\1\u02d7\100\0\1\u02d8\34\0\1\u02d9\124\0\1\u026f\4\0"+ |
| "\1\u02da\16\0\1\u02db\130\0\1\u02dc\71\0\1\u02dd\35\0"+ |
| "\1\u02de\67\0\1\u02df\61\0\1\u02e0\106\0\1\u02e1\27\0"+ |
| "\1\u02e2\102\0\1\u02e3\50\0\1\u02e4\123\0\1\u02e5\27\0"+ |
| "\1\u02e6\125\0\1\u02e7\47\0\1\u02e8\102\0\1\u02e9\26\0"+ |
| "\1\u02ea\125\0\1\u02eb\61\0\1\u02ec\46\0\1\u02ed\113\0"+ |
| "\1\u02ee\22\0\1\u02ef\122\0\1\u02f0\66\0\1\u02f1\27\0"+ |
| "\1\u02f2\130\0\1\u02f3\57\0\1\u02f4\26\0\1\u02f5\24\0"+ |
| "\1\u02f6\111\0\1\u02f7\35\0\1\u02f8\46\0\1\131\2\0"+ |
| "\1\131\1\u02f9\2\131\3\0\1\131\1\0\11\131\7\0"+ |
| "\6\131\1\0\2\131\3\0\4\131\27\0\1\u02fa\65\0"+ |
| "\1\u02fb\117\0\1\u02fc\30\0\1\u02fd\70\0\1\u02fe\50\0"+ |
| "\1\u02ff\123\0\1\u0300\44\0\1\u0301\111\0\1\u0302\64\0"+ |
| "\1\u0303\70\0\1\u0304\71\0\1\u0305\65\0\1\u0306\65\0"+ |
| "\1\u0307\61\0\1\u0308\22\0\1\u0309\125\0\1\u030a\42\0"+ |
| "\1\u030b\71\0\1\u030c\44\0\1\u030d\104\0\1\u030e\111\0"+ |
| "\1\u030f\34\0\1\u0310\111\0\1\u0311\65\0\1\u0312\4\0"+ |
| "\1\u0313\65\0\1\u0314\71\0\1\u0315\60\0\1\u02b7\4\0"+ |
| "\1\u0316\54\0\1\u0317\51\0\1\u0318\103\0\1\u0319\37\0"+ |
| "\1\u031a\116\0\1\u031b\41\0\1\u031c\107\0\1\u031d\63\0"+ |
| "\1\u031e\71\0\1\u031f\22\0\1\u0320\70\0\1\u01bf\77\0"+ |
| "\1\u011e\106\0\1\u0321\27\0\1\u0322\130\0\1\u0323\43\0"+ |
| "\1\u0324\114\0\1\u0325\64\0\1\u0326\53\0\1\u0327\64\0"+ |
| "\1\u0328\70\0\1\u0329\52\0\1\u032a\104\0\1\u032b\37\0"+ |
| "\1\u032c\67\0\1\u032d\65\0\1\u032e\103\0\1\u032f\65\0"+ |
| "\1\u0330\102\0\1\u0331\53\0\1\u0332\62\0\1\u0333\73\0"+ |
| "\1\u0334\60\0\1\u0335\41\0\1\u0336\113\0\1\u0337\62\0"+ |
| "\1\u0338\30\0\1\u0339\107\0\1\u033a\106\0\1\u033b\37\0"+ |
| "\1\u033c\110\0\1\u033d\25\0\1\u033e\102\0\1\u033f\53\0"+ |
| "\1\u0340\124\0\1\u02f4\4\0\1\u0341\15\0\1\u0342\10\0"+ |
| "\1\u0342\2\0\1\u0342\112\0\1\u0343\37\0\1\u0344\111\0"+ |
| "\1\u0345\72\0\1\u0346\62\0\1\u0347\62\0\1\u0348\77\0"+ |
| "\1\u0349\61\0\1\u034a\65\0\1\u034b\22\0\1\u034c\77\0"+ |
| "\1\u034d\53\0\1\u034e\14\0\1\u034f\66\0\1\u0350\56\0"+ |
| "\1\u0351\1\0\1\u0351\30\0\1\u0309\21\0\1\u0352\125\0"+ |
| "\1\u0353\46\0\1\u0354\111\0\1\u0355\22\0\1\u0356\121\0"+ |
| "\1\u0357\46\0\1\u0358\50\0\1\u0359\104\0\1\u035a\65\0"+ |
| "\1\u035b\110\0\1\u0318\4\0\1\u035c\52\0\1\u035d\31\0"+ |
| "\1\u035e\77\0\1\u035f\113\0\1\u0360\25\0\1\u0361\134\0"+ |
| "\1\u0362\56\0\1\u0363\65\0\1\u0364\70\0\1\u0365\20\0"+ |
| "\1\u0366\110\0\1\u0367\44\0\1\u0368\63\0\1\u0369\67\0"+ |
| "\1\u036a\130\0\1\u036b\65\0\1\u036c\73\0\1\u036d\14\0"+ |
| "\1\u036e\70\0\1\u036f\102\0\1\u0370\102\0\1\u0371\47\0"+ |
| "\1\u0372\111\0\1\u0373\61\0\1\u0374\43\0\1\u0375\50\0"+ |
| "\1\u0376\127\0\1\u033a\4\0\1\u0377\30\0\1\u0378\110\0"+ |
| "\1\u0379\30\0\1\u037a\121\0\1\u037b\74\0\1\u037c\22\0"+ |
| "\1\u037d\121\0\1\u037e\31\0\1\u037f\102\0\1\u0380\50\0"+ |
| "\1\u0381\121\0\1\u0382\65\0\1\u0383\37\0\1\u0384\126\0"+ |
| "\1\u0385\11\0\1\u0351\2\0\11\u0351\1\u0386\1\u0351\1\u0386"+ |
| "\47\u0351\4\0\1\u0387\10\0\1\u0387\2\0\1\u0387\52\0"+ |
| "\1\u0388\123\0\1\u0389\32\0\1\u038a\103\0\1\u038b\61\0"+ |
| "\1\u038c\104\0\1\u038d\100\0\1\u038e\56\0\1\u038f\61\0"+ |
| "\1\u0390\31\0\1\u0391\70\0\1\u0392\122\0\1\u0393\44\0"+ |
| "\1\u0394\45\0\1\u0395\10\0\1\u0395\2\0\1\u0395\51\0"+ |
| "\1\u0396\10\0\1\u0396\2\0\1\u0396\112\0\1\u0397\70\0"+ |
| "\1\u0398\22\0\1\u0399\65\0\1\u039a\102\0\1\u039b\65\0"+ |
| "\1\u039c\62\0\1\u039d\116\0\1\u039e\63\0\1\u039f\64\0"+ |
| "\1\u03a0\63\0\1\u03a1\27\0\1\u03a2\123\0\1\u03a3\72\0"+ |
| "\1\u03a4\34\0\1\u03a5\110\0\1\u03a6\23\0\1\u0351\1\u01c1"+ |
| "\1\u01c2\11\u0351\1\u0386\1\u0351\1\u0386\47\u0351\54\0\1\u03a7"+ |
| "\16\0\1\u03a8\122\0\1\u03a9\30\0\1\u03aa\104\0\1\u03ab"+ |
| "\102\0\1\u03ac\27\0\1\u03ad\67\0\1\u03ae\134\0\1\u03af"+ |
| "\61\0\1\u03b0\60\0\1\u03b1\63\0\1\u03b2\50\0\1\u03b3"+ |
| "\46\0\1\u03b4\104\0\1\u03b5\105\0\1\u03b6\26\0\1\u03b7"+ |
| "\134\0\1\u03b8\21\0\1\u03b9\103\0\1\u03ba\43\0\1\u03bb"+ |
| "\10\0\1\u03bb\2\0\1\u03bb\55\0\1\u03bc\77\0\1\u03bd"+ |
| "\50\0\1\u03be\121\0\1\u03bf\52\0\1\u03c0\65\0\1\u03c1"+ |
| "\61\0\1\u03c2\67\0\1\u03c3\115\0\1\u03c4\16\0\1\u03c5"+ |
| "\104\0\1\u03c6\110\0\1\u03c7\4\0\1\u03c8\24\0\1\u03c9"+ |
| "\115\0\1\u03ca\41\0\1\u03cb\110\0\1\u03cc\64\0\1\u03cd"+ |
| "\31\0\1\u03ce\63\0\1\u03cf\66\0\1\u03d0\10\0\1\u03d0"+ |
| "\2\0\1\u03d0\45\0"; |
| |
| private static int [] zzUnpackTrans() { |
| int [] result = new int[41364]; |
| int offset = 0; |
| offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); |
| return result; |
| } |
| |
| private static int zzUnpackTrans(String packed, int offset, int [] result) { |
| int i = 0; /* index in packed string */ |
| int j = offset; /* index in unpacked array */ |
| int l = packed.length(); |
| while (i < l) { |
| int count = packed.charAt(i++); |
| int value = packed.charAt(i++); |
| value--; |
| do result[j++] = value; while (--count > 0); |
| } |
| return j; |
| } |
| |
| |
| /* error codes */ |
| private static final int ZZ_UNKNOWN_ERROR = 0; |
| private static final int ZZ_NO_MATCH = 1; |
| private static final int ZZ_PUSHBACK_2BIG = 2; |
| |
| /* error messages for the codes above */ |
| private static final String ZZ_ERROR_MSG[] = { |
| "Unkown internal scanner error", |
| "Error: could not match input", |
| "Error: pushback value was too large" |
| }; |
| |
| /** |
| * ZZ_ATTRIBUTE[aState] contains the attributes of state <code>aState</code> |
| */ |
| private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); |
| |
| private static final String ZZ_ATTRIBUTE_PACKED_0 = |
| "\10\0\1\11\1\1\1\11\3\1\2\11\3\1\2\11"+ |
| "\10\1\4\11\11\1\2\11\3\1\1\11\2\1\1\11"+ |
| "\20\1\1\11\3\1\2\11\1\1\1\11\1\1\1\11"+ |
| "\7\0\1\1\36\0\2\11\1\1\13\0\1\1\34\0"+ |
| "\1\11\6\0\2\11\3\0\5\11\2\0\1\2\3\11"+ |
| "\5\0\1\1\1\0\4\11\3\0\1\1\17\0\1\11"+ |
| "\26\0\1\11\11\0\1\11\64\0\1\1\11\0\1\11"+ |
| "\23\0\1\1\1\0\1\1\1\0\1\15\5\0\1\2"+ |
| "\2\0\1\11\12\0\1\11\1\0\1\1\2\0\1\1"+ |
| "\1\11\7\0\1\11\2\0\1\11\1\0\1\11\2\0"+ |
| "\3\11\2\0\2\11\1\0\1\11\1\0\1\11\2\0"+ |
| "\1\11\1\1\2\0\2\11\25\0\1\1\1\0\1\11"+ |
| "\2\0\1\11\3\0\1\11\3\0\1\11\4\0\3\11"+ |
| "\3\0\1\11\12\0\1\1\1\11\5\0\1\11\2\0"+ |
| "\1\1\1\0\2\11\4\0\2\11\6\0\2\1\3\0"+ |
| "\1\11\5\0\3\11\5\0\4\1\1\0\1\5\1\15"+ |
| "\1\1\3\0\1\11\1\0\1\11\14\0\1\11\14\0"+ |
| "\2\11\2\0\1\11\2\0\1\1\17\0\1\11\12\0"+ |
| "\3\11\3\0\2\11\2\0\1\11\5\0\1\11\6\0"+ |
| "\1\11\12\0\1\11\10\0\4\11\2\0\1\11\2\0"+ |
| "\1\11\6\0\2\11\1\1\1\0\3\11\20\0\1\11"+ |
| "\5\0\1\11\1\0\1\1\3\0\2\11\2\0\1\11"+ |
| "\15\0\1\11\2\0\1\11\3\0\1\11\1\0\1\11"+ |
| "\1\1\1\0\1\1\11\0\1\11\10\0\1\11\2\0"+ |
| "\1\11\7\0\1\11\3\0\1\1\1\11\1\0\6\11"+ |
| "\1\0\1\11\4\0\1\11\5\0\1\11\10\0\1\11"+ |
| "\3\0\1\11\1\0\1\11\2\0\1\11\10\0\3\11"+ |
| "\2\0\1\1\2\0\1\11\7\0\3\11\1\0\1\11"+ |
| "\3\0\1\11\2\0\1\11\4\0\2\11\1\1\2\0"+ |
| "\1\1\5\0\1\11\1\1\7\0\1\11\6\0\2\11"+ |
| "\1\1\4\0\4\11\3\0\1\11\6\0\1\11\1\0"+ |
| "\1\11\1\0\1\11\2\0\1\11\5\0\1\11\2\0"+ |
| "\1\11\1\0\2\11\5\0\1\11\2\0\1\11\1\0"+ |
| "\1\11\2\0\2\11\1\0\2\11\3\0\4\11\3\0"+ |
| "\1\11\1\0\1\1\2\11\4\0\5\11\2\0\3\1"+ |
| "\2\0\1\11\4\0\2\11\1\0\1\11\1\0\1\11"+ |
| "\2\0\2\11\1\0\1\11\4\0\1\11\2\0\1\11"+ |
| "\1\0\1\11\2\0\2\11\2\0\1\1\1\0\2\11"+ |
| "\2\0\1\1\2\0\2\11\2\0\1\11\1\0\1\11"+ |
| "\2\0\1\1\1\11\1\0\1\1"; |
| |
| private static int [] zzUnpackAttribute() { |
| int [] result = new int[976]; |
| int offset = 0; |
| offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result); |
| return result; |
| } |
| |
| private static int zzUnpackAttribute(String packed, int offset, int [] result) { |
| int i = 0; /* index in packed string */ |
| int j = offset; /* index in unpacked array */ |
| int l = packed.length(); |
| while (i < l) { |
| int count = packed.charAt(i++); |
| int value = packed.charAt(i++); |
| do result[j++] = value; while (--count > 0); |
| } |
| return j; |
| } |
| |
| /** the input device */ |
| private java.io.Reader zzReader; |
| |
| /** the current state of the DFA */ |
| private int zzState; |
| |
| /** the current lexical state */ |
| private int zzLexicalState = YYINITIAL; |
| |
| /** this buffer contains the current text to be matched and is |
| the source of the yytext() string */ |
| private char zzBuffer[] = new char[ZZ_BUFFERSIZE]; |
| |
| /** the textposition at the last accepting state */ |
| private int zzMarkedPos; |
| |
| /** the textposition at the last state to be included in yytext */ |
| private int zzPushbackPos; |
| |
| /** the current text position in the buffer */ |
| private int zzCurrentPos; |
| |
| /** startRead marks the beginning of the yytext() string in the buffer */ |
| private int zzStartRead; |
| |
| /** endRead marks the last character in the buffer, that has been read |
| from input */ |
| private int zzEndRead; |
| |
| /** number of newlines encountered up to the start of the matched text */ |
| private int yyline; |
| |
| /** the number of characters up to the start of the matched text */ |
| private int yychar; |
| |
| /** |
| * the number of characters from the last newline up to the start of the |
| * matched text |
| */ |
| private int yycolumn; |
| |
| /** |
| * zzAtBOL == true <=> the scanner is currently at the beginning of a line |
| */ |
| private boolean zzAtBOL = true; |
| |
| /** zzAtEOF == true <=> the scanner is at the EOF */ |
| private boolean zzAtEOF; |
| |
| /* user code: */ |
| private IToken prevToken = null; |
| |
| private FixedFormLexerPrepass prepass; |
| |
| private TokenFactory tokenFactory; |
| |
| public FixedFormLexerPhase1(InputStream in, FixedFormLexerPrepass _prepass, TokenFactory tokenFactory) { |
| this(new LineAppendingInputStream(in)); |
| this.prepass=_prepass; |
| this.tokenFactory = tokenFactory; |
| } |
| |
| //unset start of line state |
| private void unsetSOL() { |
| if (yystate()==YYINITIAL) yybegin(YYSTANDARD); |
| } |
| |
| public int getLine() { |
| return prepass.getLine(yychar); |
| } |
| |
| public int getCol() { |
| return prepass.getColumn(yychar); |
| } |
| |
| protected IFile lastTokenFile = null; |
| protected int lastTokenLine = 1, lastTokenCol = 1, lastTokenFileOffset = 0, lastTokenStreamOffset = 0, lastTokenLength = 0; |
| |
| private IToken token(Terminal terminal) |
| { |
| //For some there are 2 terminals of type Terminal.END_OF_INPUT that get here in a row |
| // so, technically, the function below sets the whitespaceAfter on the first one it sees, |
| // which is not really the expected behavior, but that token's whitespace is not used for |
| // anything anyway, so this should be OK |
| if(prevToken != null && terminal == Terminal.END_OF_INPUT) |
| { |
| //We need to manually set this, because the input string to the lexer does not |
| // have any whitespace, or at the very list has it trimmed, so we are loosing all |
| // of the trailing whitespace on any refactoring. That is why we assign it as |
| // whitespaceAfter to the last END_OF_STATEMENT token before END_OF_INPUT |
| String whiteAfter = prepass.getTrailingWhitespace(); |
| prevToken.setWhiteAfter(whiteAfter); |
| } |
| |
| lastTokenLine = prepass.getLine(yychar)+1; |
| lastTokenCol = prepass.getColumn(yychar)+1; |
| lastTokenFileOffset = prepass.getOffset(yychar); |
| lastTokenStreamOffset = prepass.getOffset(yychar); |
| lastTokenLength = prepass.getOffset(yychar+yylength()-1)-prepass.getOffset(yychar)+1; |
| |
| //For some reason the author of above code needed to add 1 to the line/col values |
| // for my code, I actually need the original value of token positions, so |
| // I added those variables for that |
| int tokLine = lastTokenLine-1; |
| int tokCol = lastTokenCol-1; |
| int tokOff = lastTokenFileOffset; |
| |
| String tokenText = ""; |
| //If it is the end of statement, use text from original string to get the line separator. |
| // For some reason the text returned by yytext() in this case is always '/n', while the |
| // actual separator is '/r/n' |
| if(terminal == Terminal.T_EOS) |
| { |
| tokenText = prepass.getFileEOL(); |
| } |
| //If it is the end of input, use the Lexer's text. |
| else if(terminal == Terminal.END_OF_INPUT) |
| { |
| tokenText = yytext(); |
| } |
| //If it is a quote, use text accumulated in the buffer string |
| else if(terminal == Terminal.T_SCON || terminal == Terminal.T_HCON) |
| { |
| tokenText = stringBuffer.toString(); |
| //lastTokenColumn and lastTokenOffset of quoted strings actually IS the position of the last character |
| // of that string (for some reason w/o the final quote). So, in order to correctly map it to the whitespace |
| // before it, we need to shift the column and offset we are using by 1 less than the length of the string |
| tokCol = tokCol - (tokenText.length() - 1); |
| tokOff = tokOff - (tokenText.length() - 1); |
| } |
| //Otherwise, use the text directly from file (that way all the whitespace is preserved in the |
| // tokens text) |
| else |
| tokenText = prepass.getTokenText(lastTokenFileOffset, lastTokenLength); |
| |
| prevToken = tokenFactory.createToken(terminal, |
| prepass.getWhitespaceBefore(tokLine, tokCol, tokOff), |
| tokenText, |
| ""); |
| |
| if(!tokenText.equals(yytext()) && terminal != Terminal.T_EOS) |
| { |
| prevToken.setPreprocessorDirective(tokenText); |
| prevToken.setText(yytext()); |
| } |
| |
| return prevToken; |
| } |
| |
| /* |
| private IToken token(Terminal terminal) |
| { |
| IToken t = new Token(); |
| t.setTerminal(terminal); |
| t.setFilename(this.filename); |
| t.setFileOffset(prepass.getOffset(yychar)); |
| t.setStreamOffset(prepass.getOffset(yychar)); |
| t.setLength(prepass.getOffset(yychar+yylength()-1)-prepass.getOffset(yychar)+1); |
| t.setText(terminal == Terminal.T_SCON || terminal == Terminal.T_HCON |
| ? stringBuffer.toString() |
| : yytext()); |
| t.setStartLine(prepass.getLine(yychar)+1); |
| t.setStartCol(prepass.getColumn(yychar)+1); |
| t.setEndLine(prepass.getLine(yychar+yylength()-1)+1); |
| t.setEndCol(prepass.getColumn(yychar+yylength()-1)+1); |
| |
| return t; |
| } |
| */ |
| |
| private StringBuffer stringBuffer = null; |
| private int hollerithLength = 0; |
| |
| private boolean wantEos = false; |
| |
| private String filename = "<stdin>"; |
| |
| public FixedFormLexerPhase1(java.io.InputStream in, FixedFormLexerPrepass _prepass, IFile file, String filename, TokenFactory tokenFactory) |
| { |
| this(in, _prepass, tokenFactory); |
| this.lastTokenFile = file; |
| this.filename = filename; |
| } |
| |
| public String getFilename() |
| { |
| return filename; |
| } |
| |
| public TokenFactory getTokenFactory() |
| { |
| return tokenFactory; |
| } |
| |
| public int getLastTokenLine() |
| { |
| return lastTokenLine; |
| } |
| |
| public int getLastTokenCol() |
| { |
| return lastTokenCol; |
| } |
| |
| public IFile getLastTokenFile() |
| { |
| return lastTokenFile; |
| } |
| |
| public int getLastTokenFileOffset() |
| { |
| return lastTokenFileOffset; |
| } |
| |
| public int getLastTokenStreamOffset() |
| { |
| return lastTokenStreamOffset; |
| } |
| |
| public int getLastTokenLength() |
| { |
| return lastTokenLength; |
| } |
| |
| // private List/*<NonTreeToken>*/ nonTreeTokens = new LinkedList(); |
| // public List/*<NonTreeToken>*/ getNonTreeTokens() |
| // { |
| // return nonTreeTokens; |
| // } |
| // |
| private void storeNonTreeToken() |
| { |
| // nonTreeTokens.add(new NonTreeToken(this.filename, |
| // prepass.getOffset(yychar), // int offset |
| // prepass.getLine(yychar)+1, // int row |
| // prepass.getColumn(yychar)+1, // int col |
| // yytext())); |
| } |
| |
| |
| /** |
| * Creates a new scanner |
| * There is also a java.io.InputStream version of this constructor. |
| * |
| * @param in the java.io.Reader to read input from. |
| */ |
| FixedFormLexerPhase1(java.io.Reader in) { |
| this.zzReader = in; |
| } |
| |
| /** |
| * Creates a new scanner. |
| * There is also java.io.Reader version of this constructor. |
| * |
| * @param in the java.io.Inputstream to read input from. |
| */ |
| FixedFormLexerPhase1(java.io.InputStream in) { |
| this(new java.io.InputStreamReader(in)); |
| } |
| |
| /** |
| * Unpacks the compressed character translation table. |
| * |
| * @param packed the packed character translation table |
| * @return the unpacked character translation table |
| */ |
| private static char [] zzUnpackCMap(String packed) { |
| char [] map = new char[0x10000]; |
| int i = 0; /* index in packed string */ |
| int j = 0; /* index in unpacked array */ |
| while (i < 188) { |
| int count = packed.charAt(i++); |
| char value = packed.charAt(i++); |
| do map[j++] = value; while (--count > 0); |
| } |
| return map; |
| } |
| |
| |
| /** |
| * Refills the input buffer. |
| * |
| * @return <code>false</code>, iff there was new input. |
| * |
| * @exception java.io.IOException if any I/O-Error occurs |
| */ |
| private boolean zzRefill() throws java.io.IOException { |
| |
| /* first: make room (if you can) */ |
| if (zzStartRead > 0) { |
| System.arraycopy(zzBuffer, zzStartRead, |
| zzBuffer, 0, |
| zzEndRead-zzStartRead); |
| |
| /* translate stored positions */ |
| zzEndRead-= zzStartRead; |
| zzCurrentPos-= zzStartRead; |
| zzMarkedPos-= zzStartRead; |
| zzPushbackPos-= zzStartRead; |
| zzStartRead = 0; |
| } |
| |
| /* is the buffer big enough? */ |
| if (zzCurrentPos >= zzBuffer.length) { |
| /* if not: blow it up */ |
| char newBuffer[] = new char[zzCurrentPos*2]; |
| System.arraycopy(zzBuffer, 0, newBuffer, 0, zzBuffer.length); |
| zzBuffer = newBuffer; |
| } |
| |
| /* finally: fill the buffer with new input */ |
| int numRead = zzReader.read(zzBuffer, zzEndRead, |
| zzBuffer.length-zzEndRead); |
| |
| if (numRead < 0) { |
| return true; |
| } |
| else { |
| zzEndRead+= numRead; |
| return false; |
| } |
| } |
| |
| |
| /** |
| * Closes the input stream. |
| */ |
| public final void yyclose() throws java.io.IOException { |
| zzAtEOF = true; /* indicate end of file */ |
| zzEndRead = zzStartRead; /* invalidate buffer */ |
| |
| if (zzReader != null) |
| zzReader.close(); |
| } |
| |
| |
| /** |
| * Resets the scanner to read from a new input stream. |
| * Does not close the old reader. |
| * |
| * All internal variables are reset, the old input stream |
| * <b>cannot</b> be reused (internal buffer is discarded and lost). |
| * Lexical state is set to <tt>ZZ_INITIAL</tt>. |
| * |
| * @param reader the new input stream |
| */ |
| public final void yyreset(java.io.Reader reader) { |
| zzReader = reader; |
| zzAtBOL = true; |
| zzAtEOF = false; |
| zzEndRead = zzStartRead = 0; |
| zzCurrentPos = zzMarkedPos = zzPushbackPos = 0; |
| yyline = yychar = yycolumn = 0; |
| zzLexicalState = YYINITIAL; |
| } |
| |
| |
| /** |
| * Returns the current lexical state. |
| */ |
| public final int yystate() { |
| return zzLexicalState; |
| } |
| |
| |
| /** |
| * Enters a new lexical state |
| * |
| * @param newState the new lexical state |
| */ |
| public final void yybegin(int newState) { |
| zzLexicalState = newState; |
| } |
| |
| |
| /** |
| * Returns the text matched by the current regular expression. |
| */ |
| public final String yytext() { |
| return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead ); |
| } |
| |
| |
| /** |
| * Returns the character at position <tt>pos</tt> from the |
| * matched text. |
| * |
| * It is equivalent to yytext().charAt(pos), but faster |
| * |
| * @param pos the position of the character to fetch. |
| * A value from 0 to yylength()-1. |
| * |
| * @return the character at position pos |
| */ |
| public final char yycharat(int pos) { |
| return zzBuffer[zzStartRead+pos]; |
| } |
| |
| |
| /** |
| * Returns the length of the matched text region. |
| */ |
| public final int yylength() { |
| return zzMarkedPos-zzStartRead; |
| } |
| |
| |
| /** |
| * Reports an error that occured while scanning. |
| * |
| * In a wellformed scanner (no or only correct usage of |
| * yypushback(int) and a match-all fallback rule) this method |
| * will only be called with things that "Can't Possibly Happen". |
| * If this method is called, something is seriously wrong |
| * (e.g. a JFlex bug producing a faulty scanner etc.). |
| * |
| * Usual syntax/scanner level error handling should be done |
| * in error fallback rules. |
| * |
| * @param errorCode the code of the errormessage to display |
| */ |
| private void zzScanError(int errorCode) { |
| String message; |
| try { |
| message = ZZ_ERROR_MSG[errorCode]; |
| } |
| catch (ArrayIndexOutOfBoundsException e) { |
| message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; |
| } |
| |
| throw new Error(message); |
| } |
| |
| |
| /** |
| * Pushes the specified amount of characters back into the input stream. |
| * |
| * They will be read again by then next call of the scanning method |
| * |
| * @param number the number of characters to be read again. |
| * This number must not be greater than yylength()! |
| */ |
| public void yypushback(int number) { |
| if ( number > yylength() ) |
| zzScanError(ZZ_PUSHBACK_2BIG); |
| |
| zzMarkedPos -= number; |
| } |
| |
| |
| /** |
| * Resumes scanning until the next regular expression is matched, |
| * the end of input is encountered or an I/O-Error occurs. |
| * |
| * @return the next token |
| * @exception java.io.IOException if any I/O-Error occurs |
| */ |
| public IToken yylex() throws java.io.IOException, LexerException { |
| int zzInput; |
| int zzAction; |
| |
| // cached fields: |
| int zzCurrentPosL; |
| int zzMarkedPosL; |
| int zzEndReadL = zzEndRead; |
| char [] zzBufferL = zzBuffer; |
| char [] zzCMapL = ZZ_CMAP; |
| |
| int [] zzTransL = ZZ_TRANS; |
| int [] zzRowMapL = ZZ_ROWMAP; |
| int [] zzAttrL = ZZ_ATTRIBUTE; |
| int zzPushbackPosL = zzPushbackPos = -1; |
| boolean zzWasPushback; |
| |
| while (true) { |
| zzMarkedPosL = zzMarkedPos; |
| |
| yychar+= zzMarkedPosL-zzStartRead; |
| |
| boolean zzR = false; |
| for (zzCurrentPosL = zzStartRead; zzCurrentPosL < zzMarkedPosL; |
| zzCurrentPosL++) { |
| switch (zzBufferL[zzCurrentPosL]) { |
| case '\u000B': |
| case '\u000C': |
| case '\u0085': |
| case '\u2028': |
| case '\u2029': |
| yyline++; |
| yycolumn = 0; |
| zzR = false; |
| break; |
| case '\r': |
| yyline++; |
| yycolumn = 0; |
| zzR = true; |
| break; |
| case '\n': |
| if (zzR) |
| zzR = false; |
| else { |
| yyline++; |
| yycolumn = 0; |
| } |
| break; |
| default: |
| zzR = false; |
| yycolumn++; |
| } |
| } |
| |
| if (zzR) { |
| // peek one character ahead if it is \n (if we have counted one line too much) |
| boolean zzPeek; |
| if (zzMarkedPosL < zzEndReadL) |
| zzPeek = zzBufferL[zzMarkedPosL] == '\n'; |
| else if (zzAtEOF) |
| zzPeek = false; |
| else { |
| boolean eof = zzRefill(); |
| zzEndReadL = zzEndRead; |
| zzMarkedPosL = zzMarkedPos; |
| zzBufferL = zzBuffer; |
| if (eof) |
| zzPeek = false; |
| else |
| zzPeek = zzBufferL[zzMarkedPosL] == '\n'; |
| } |
| if (zzPeek) yyline--; |
| } |
| zzAction = -1; |
| |
| zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL; |
| |
| zzState = zzLexicalState; |
| |
| zzWasPushback = false; |
| |
| zzForAction: { |
| while (true) { |
| |
| if (zzCurrentPosL < zzEndReadL) |
| zzInput = zzBufferL[zzCurrentPosL++]; |
| else if (zzAtEOF) { |
| zzInput = YYEOF; |
| break zzForAction; |
| } |
| else { |
| // store back cached positions |
| zzCurrentPos = zzCurrentPosL; |
| zzMarkedPos = zzMarkedPosL; |
| zzPushbackPos = zzPushbackPosL; |
| boolean eof = zzRefill(); |
| // get translated positions and possibly new buffer |
| zzCurrentPosL = zzCurrentPos; |
| zzMarkedPosL = zzMarkedPos; |
| zzBufferL = zzBuffer; |
| zzEndReadL = zzEndRead; |
| zzPushbackPosL = zzPushbackPos; |
| if (eof) { |
| zzInput = YYEOF; |
| break zzForAction; |
| } |
| else { |
| zzInput = zzBufferL[zzCurrentPosL++]; |
| } |
| } |
| int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMapL[zzInput] ]; |
| if (zzNext == -1) break zzForAction; |
| zzState = zzNext; |
| |
| int zzAttributes = zzAttrL[zzState]; |
| if ( (zzAttributes & 2) == 2 ) |
| zzPushbackPosL = zzCurrentPosL; |
| |
| if ( (zzAttributes & 1) == 1 ) { |
| zzWasPushback = (zzAttributes & 4) == 4; |
| zzAction = zzState; |
| zzMarkedPosL = zzCurrentPosL; |
| if ( (zzAttributes & 8) == 8 ) break zzForAction; |
| } |
| |
| } |
| } |
| |
| // store back cached position |
| zzMarkedPos = zzMarkedPosL; |
| if (zzWasPushback) |
| zzMarkedPos = zzPushbackPosL; |
| |
| switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) { |
| case 51: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_END); |
| } |
| case 236: break; |
| case 154: |
| { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_EXTENDS); |
| } |
| case 237: break; |
| case 110: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_FORMEQ); |
| } |
| case 238: break; |
| case 203: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_BLOCKDATA); |
| } |
| case 239: break; |
| case 79: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_SAVE); |
| } |
| case 240: break; |
| case 111: |
| { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_FINAL); |
| } |
| case 241: break; |
| case 169: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_POINTER); |
| } |
| case 242: break; |
| case 235: |
| { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_NON_OVERRIDABLE); |
| } |
| case 243: break; |
| case 96: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_THEN); |
| } |
| case 244: break; |
| case 123: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_READEQ); |
| } |
| case 245: break; |
| case 86: |
| { storeNonTreeToken(); |
| } |
| case 246: break; |
| case 158: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_DIRECTEQ); |
| } |
| case 247: break; |
| case 87: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_NONE); |
| } |
| case 248: break; |
| case 232: |
| { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_ASYNCHRONOUSEQ); |
| } |
| case 249: break; |
| case 139: |
| { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_IMPORT); |
| } |
| case 250: break; |
| case 207: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_INTRINSIC); |
| } |
| case 251: break; |
| case 43: |
| { stringBuffer = new StringBuffer(); |
| String text = yytext(); |
| stringBuffer.append(text); |
| hollerithLength=Integer.parseInt(text.substring(0,text.length()-1)); |
| if (hollerithLength==0) |
| throw new LexerException(this, "Lexer Error (line " + (getLine()+1) + ", col " + (getCol()+1) + "): Invalid length of hollerith literal: 0"); |
| yybegin(HOLLERITH); |
| } |
| case 252: break; |
| case 62: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ERREQ); |
| } |
| case 253: break; |
| case 56: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_USE); |
| } |
| case 254: break; |
| case 106: |
| { wantEos = true; unsetSOL(); return token(Terminal.T_AND); |
| } |
| case 255: break; |
| case 143: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_PUBLIC); |
| } |
| case 256: break; |
| case 10: |
| { wantEos = true; unsetSOL(); return token(Terminal.T_LPAREN); |
| } |
| case 257: break; |
| case 157: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_DEFAULT); |
| } |
| case 258: break; |
| case 46: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_RCON); |
| } |
| case 259: break; |
| case 227: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ENDBLOCKDATA); |
| } |
| case 260: break; |
| case 24: |
| { stringBuffer.append('\"'); |
| yybegin(YYSTANDARD); |
| wantEos = true; |
| return token(Terminal.T_SCON); |
| } |
| case 261: break; |
| case 30: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_DO); |
| } |
| case 262: break; |
| case 128: |
| { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_VALUE); |
| } |
| case 263: break; |
| case 60: |
| { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_ENUM); |
| } |
| case 264: break; |
| case 108: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_BLOCK); |
| } |
| case 265: break; |
| case 20: |
| { wantEos = true; unsetSOL(); return token(Terminal.T_SLASH); |
| } |
| case 266: break; |
| case 84: |
| { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_PASS); |
| } |
| case 267: break; |
| case 138: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_INTENT); |
| } |
| case 268: break; |
| case 233: |
| { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_NON_INTRINSIC); |
| } |
| case 269: break; |
| case 99: |
| { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_KIND); |
| } |
| case 270: break; |
| case 3: |
| { wantEos = true; unsetSOL(); return token(Terminal.T_ASTERISK); |
| } |
| case 271: break; |
| case 181: |
| { wantEos = true; yybegin(OPERATORorFORMAT); return token(Terminal.T_OPERATOR); |
| } |
| case 272: break; |
| case 162: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ACTIONEQ); |
| } |
| case 273: break; |
| case 92: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_CALL); |
| } |
| case 274: break; |
| case 187: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_FUNCTION); |
| } |
| case 275: break; |
| case 205: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_IOLENGTHEQ); |
| } |
| case 276: break; |
| case 11: |
| { wantEos = true; unsetSOL(); return token(Terminal.T_COMMA); |
| } |
| case 277: break; |
| case 144: |
| { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_NOPASS); |
| } |
| case 278: break; |
| case 66: |
| { wantEos = true; unsetSOL(); return token(Terminal.T_GE); |
| } |
| case 279: break; |
| case 193: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_CONTINUE); |
| } |
| case 280: break; |
| case 19: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_PERCENT); |
| } |
| case 281: break; |
| case 50: |
| { stringBuffer.append('\"'); |
| } |
| case 282: break; |
| case 175: |
| { wantEos = true; unsetSOL(); return token(Terminal.T_COMPLEX); |
| } |
| case 283: break; |
| case 90: |
| { wantEos = true; unsetSOL(); return token(Terminal.T_LENEQ); |
| } |
| case 284: break; |
| case 4: |
| { wantEos = true; unsetSOL(); return token(Terminal.T_ICON); |
| } |
| case 285: break; |
| case 104: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ENTRY); |
| } |
| case 286: break; |
| case 223: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ENDFUNCTION); |
| } |
| case 287: break; |
| case 168: |
| { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_GENERIC); |
| } |
| case 288: break; |
| case 78: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_FMTEQ); |
| } |
| case 289: break; |
| case 174: |
| { wantEos = true; unsetSOL(); return token(Terminal.T_LOGICAL); |
| } |
| case 290: break; |
| case 5: |
| { wantEos = true; unsetSOL(); return token(Terminal.T_PLUS); |
| } |
| case 291: break; |
| case 186: |
| { wantEos = true; yybegin(IMPLICIT); return token(Terminal.T_IMPLICIT); |
| } |
| case 292: break; |
| case 91: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_CASE); |
| } |
| case 293: break; |
| case 77: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_FILE); |
| } |
| case 294: break; |
| case 25: |
| { hollerithLength--; |
| stringBuffer.append(yytext()); |
| if (hollerithLength==0) { |
| yybegin(YYSTANDARD); |
| wantEos = true; |
| return token(Terminal.T_HCON); |
| } |
| } |
| case 295: break; |
| case 41: |
| { wantEos = true; unsetSOL(); return token(Terminal.T_SLASHEQ); |
| } |
| case 296: break; |
| case 132: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_DELIMEQ); |
| } |
| case 297: break; |
| case 69: |
| { wantEos = true; unsetSOL(); return token(Terminal.T_LE); |
| } |
| case 298: break; |
| case 171: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_PRIVATE); |
| } |
| case 299: break; |
| case 26: |
| { throw new LexerException(this, "Lexer Error (line " + (getLine()+1) + ", col " + (getCol()+1) + "): Hollerith literal spans multiple lines without continuation"); |
| } |
| case 300: break; |
| case 98: |
| { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_WAIT); |
| } |
| case 301: break; |
| case 49: |
| { stringBuffer.append('\''); |
| } |
| case 302: break; |
| case 82: |
| { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_POSEQ); |
| } |
| case 303: break; |
| case 126: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_WHILE); |
| } |
| case 304: break; |
| case 22: |
| { throw new LexerException(this, "Lexer Error (line " + (getLine()+1) + ", col " + (getCol()+1) + "): String literal spans multiple lines without continuation"); |
| } |
| case 305: break; |
| case 65: |
| { wantEos = true; unsetSOL(); return token(Terminal.T_OR); |
| } |
| case 306: break; |
| case 200: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ELSEWHERE); |
| } |
| case 307: break; |
| case 27: |
| { wantEos = true; unsetSOL(); return token(Terminal.T_UNEXPECTED_CHARACTER); |
| } |
| case 308: break; |
| case 134: |
| { wantEos = true; unsetSOL(); return token(Terminal.T_NEQV); |
| } |
| case 309: break; |
| case 124: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_RECLEQ); |
| } |
| case 310: break; |
| case 170: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_PROGRAM); |
| } |
| case 311: break; |
| case 42: |
| { wantEos = true; unsetSOL(); return token(Terminal.T_SLASHSLASH); |
| } |
| case 312: break; |
| case 164: |
| { wantEos = true; unsetSOL(); return token(Terminal.T_INTEGER); |
| } |
| case 313: break; |
| case 122: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_UNITEQ); |
| } |
| case 314: break; |
| case 89: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_NMLEQ); |
| } |
| case 315: break; |
| case 15: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_EQUALS); |
| } |
| case 316: break; |
| case 209: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_PARAMETER); |
| } |
| case 317: break; |
| case 7: |
| { stringBuffer = new StringBuffer(); |
| stringBuffer.append('\''); |
| yybegin(QUOTED); |
| } |
| case 318: break; |
| case 215: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ENDPROGRAM); |
| } |
| case 319: break; |
| case 222: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_READWRITEEQ); |
| } |
| case 320: break; |
| case 160: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_OPENEDEQ); |
| } |
| case 321: break; |
| case 29: |
| { wantEos = true; unsetSOL(); return token(Terminal.T_POW); |
| } |
| case 322: break; |
| case 113: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_SIZEEQ); |
| } |
| case 323: break; |
| case 167: |
| { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_STREAMEQ); |
| } |
| case 324: break; |
| case 71: |
| { wantEos = true; unsetSOL(); return token(Terminal.T_BCON); |
| } |
| case 325: break; |
| case 14: |
| { wantEos = true; return token(Terminal.T_RBRACKET); |
| } |
| case 326: break; |
| case 197: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ENDMODULE); |
| } |
| case 327: break; |
| case 196: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ENDSELECT); |
| } |
| case 328: break; |
| case 189: |
| { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_PENDINGEQ); |
| } |
| case 329: break; |
| case 133: |
| { wantEos = true; unsetSOL(); return token(Terminal.T_DOUBLE); |
| } |
| case 330: break; |
| case 18: |
| { wantEos = true; unsetSOL(); return token(Terminal.T_LESSTHAN); |
| } |
| case 331: break; |
| case 190: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_NEXTRECEQ); |
| } |
| case 332: break; |
| case 185: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ALLOCATE); |
| } |
| case 333: break; |
| case 83: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_PADEQ); |
| } |
| case 334: break; |
| case 172: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_NULLIFY); |
| } |
| case 335: break; |
| case 204: |
| { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_ASSOCIATE); |
| } |
| case 336: break; |
| case 2: |
| { yybegin(YYINITIAL); boolean b = wantEos; wantEos = false; if (b) return token(Terminal.T_EOS); else storeNonTreeToken(); |
| } |
| case 337: break; |
| case 105: |
| { wantEos = true; unsetSOL(); return token(Terminal.T_EQV); |
| } |
| case 338: break; |
| case 156: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ENDTYPE); |
| } |
| case 339: break; |
| case 182: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_OPTIONAL); |
| } |
| case 340: break; |
| case 188: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_SEQUENCE); |
| } |
| case 341: break; |
| case 103: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ENDIF); |
| } |
| case 342: break; |
| case 81: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_GOTO); |
| } |
| case 343: break; |
| case 55: |
| { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_LEN); |
| } |
| case 344: break; |
| case 155: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ENDFILE); |
| } |
| case 345: break; |
| case 140: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_FORALL); |
| } |
| case 346: break; |
| case 54: |
| { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_IDEQ); |
| } |
| case 347: break; |
| case 58: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_EXIT); |
| } |
| case 348: break; |
| case 219: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_FORMATTEDEQ); |
| } |
| case 349: break; |
| case 23: |
| { stringBuffer.append('\''); |
| yybegin(YYSTANDARD); |
| wantEos = true; |
| return token(Terminal.T_SCON); |
| } |
| case 350: break; |
| case 107: |
| { wantEos = true; unsetSOL(); return token(Terminal.T_NOT); |
| } |
| case 351: break; |
| case 57: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_DCON); |
| } |
| case 352: break; |
| case 210: |
| { wantEos = true; unsetSOL(); return token(Terminal.T_PRECISION); |
| } |
| case 353: break; |
| case 74: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_OPEN); |
| } |
| case 354: break; |
| case 115: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_STATEQ); |
| } |
| case 355: break; |
| case 28: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_IDENT); |
| } |
| case 356: break; |
| case 148: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_RETURN); |
| } |
| case 357: break; |
| case 184: |
| { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_ABSTRACT); |
| } |
| case 358: break; |
| case 39: |
| { wantEos = true; unsetSOL(); return token(Terminal.T_LESSTHANEQ); |
| } |
| case 359: break; |
| case 220: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_SELECTCASE); |
| } |
| case 360: break; |
| case 218: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ASSIGNMENT); |
| } |
| case 361: break; |
| case 213: |
| { wantEos = true; unsetSOL(); return token(Terminal.T_CHARACTER); |
| } |
| case 362: break; |
| case 40: |
| { wantEos = true; return token(Terminal.T_NE); |
| } |
| case 363: break; |
| case 36: |
| { wantEos = true; unsetSOL(); return token(Terminal.T_EQEQ); |
| } |
| case 364: break; |
| case 8: |
| { stringBuffer = new StringBuffer(); |
| stringBuffer.append('\"'); |
| yybegin(DBLQUOTED); |
| } |
| case 365: break; |
| case 180: |
| { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_DECIMALEQ); |
| } |
| case 366: break; |
| case 67: |
| { wantEos = true; unsetSOL(); return token(Terminal.T_GT); |
| } |
| case 367: break; |
| case 137: |
| { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_IOMSGEQ); |
| } |
| case 368: break; |
| case 153: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_WRITEEQ); |
| } |
| case 369: break; |
| case 80: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_STOP); |
| } |
| case 370: break; |
| case 141: |
| { wantEos = true; yybegin(OPERATORorFORMAT); return token(Terminal.T_FORMAT); |
| } |
| case 371: break; |
| case 53: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_OUT); |
| } |
| case 372: break; |
| case 146: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_COMMON); |
| } |
| case 373: break; |
| case 119: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_CLOSE); |
| } |
| case 374: break; |
| case 35: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_TO); |
| } |
| case 375: break; |
| case 166: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_STATUSEQ); |
| } |
| case 376: break; |
| case 44: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_PCON); |
| } |
| case 377: break; |
| case 21: |
| { stringBuffer.append( yytext() ); |
| } |
| case 378: break; |
| case 178: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ENDWHERE); |
| } |
| case 379: break; |
| case 9: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_UNDERSCORE); |
| } |
| case 380: break; |
| case 93: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_READ); |
| } |
| case 381: break; |
| case 127: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_WRITE); |
| } |
| case 382: break; |
| case 76: |
| { wantEos = true; unsetSOL(); return token(Terminal.T_ZCON); |
| } |
| case 383: break; |
| case 225: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ALLOCATABLE); |
| } |
| case 384: break; |
| case 6: |
| { wantEos = true; unsetSOL(); return token(Terminal.T_MINUS); |
| } |
| case 385: break; |
| case 199: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ELEMENTAL); |
| } |
| case 386: break; |
| case 221: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_SUBROUTINE); |
| } |
| case 387: break; |
| case 202: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_BACKSPACE); |
| } |
| case 388: break; |
| case 38: |
| { wantEos = true; unsetSOL(); return token(Terminal.T_GREATERTHANEQ); |
| } |
| case 389: break; |
| case 70: |
| { wantEos = true; unsetSOL(); return token(Terminal.T_LT); |
| } |
| case 390: break; |
| case 64: |
| { wantEos = true; unsetSOL(); return token(Terminal.T_EQ); |
| } |
| case 391: break; |
| case 97: |
| { wantEos = true; unsetSOL(); return token(Terminal.T_TYPE); |
| } |
| case 392: break; |
| case 165: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_INQUIRE); |
| } |
| case 393: break; |
| case 206: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_INTERFACE); |
| } |
| case 394: break; |
| case 61: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ELSE); |
| } |
| case 395: break; |
| case 45: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_XCON); |
| } |
| case 396: break; |
| case 173: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_NUMBEREQ); |
| } |
| case 397: break; |
| case 129: |
| { wantEos = true; unsetSOL(); return token(Terminal.T_KINDEQ); |
| } |
| case 398: break; |
| case 230: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_UNFORMATTEDEQ); |
| } |
| case 399: break; |
| case 95: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_RECEQ); |
| } |
| case 400: break; |
| case 234: |
| { wantEos = true; unsetSOL(); return token(Terminal.T_DOUBLEPRECISION); |
| } |
| case 401: break; |
| case 201: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_DIMENSION); |
| } |
| case 402: break; |
| case 68: |
| { wantEos = true; unsetSOL(); return token(Terminal.T_NE); |
| } |
| case 403: break; |
| case 47: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_LPARENSLASH); |
| } |
| case 404: break; |
| case 33: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_IN); |
| } |
| case 405: break; |
| case 135: |
| { wantEos = true; unsetSOL(); return token(Terminal.T_TRUE); |
| } |
| case 406: break; |
| case 125: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_WHERE); |
| } |
| case 407: break; |
| case 161: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ACCESSEQ); |
| } |
| case 408: break; |
| case 208: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_POSITIONEQ); |
| } |
| case 409: break; |
| case 228: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ENDINTERFACE); |
| } |
| case 410: break; |
| case 16: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_COLON); |
| } |
| case 411: break; |
| case 85: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_PURE); |
| } |
| case 412: break; |
| case 211: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_PROCEDURE); |
| } |
| case 413: break; |
| case 63: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_DATA); |
| } |
| case 414: break; |
| case 152: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_TARGET); |
| } |
| case 415: break; |
| case 34: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_GO); |
| } |
| case 416: break; |
| case 73: |
| { wantEos = true; unsetSOL(); return token(Terminal.T_OCON); |
| } |
| case 417: break; |
| case 131: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ELSEIF); |
| } |
| case 418: break; |
| case 118: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_NAMEEQ); |
| } |
| case 419: break; |
| case 216: |
| { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_ENUMERATOR); |
| } |
| case 420: break; |
| case 13: |
| { wantEos = true; return token(Terminal.T_LBRACKET); |
| } |
| case 421: break; |
| case 116: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_PAUSE); |
| } |
| case 422: break; |
| case 31: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_IF); |
| } |
| case 423: break; |
| case 32: |
| { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_IS); |
| } |
| case 424: break; |
| case 102: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ENDDO); |
| } |
| case 425: break; |
| case 109: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_INOUT); |
| } |
| case 426: break; |
| case 52: |
| { wantEos = true; unsetSOL(); return token(Terminal.T_XDOP); |
| } |
| case 427: break; |
| case 88: |
| { wantEos = true; unsetSOL(); return token(Terminal.T_NULL); |
| } |
| case 428: break; |
| case 121: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_CYCLE); |
| } |
| case 429: break; |
| case 136: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_BLANKEQ); |
| } |
| case 430: break; |
| case 72: |
| { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_BIND); |
| } |
| case 431: break; |
| case 117: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_PRINT); |
| } |
| case 432: break; |
| case 217: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_DEALLOCATE); |
| } |
| case 433: break; |
| case 191: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_NAMELIST); |
| } |
| case 434: break; |
| case 120: |
| { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_CLASS); |
| } |
| case 435: break; |
| case 145: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_NAMEDEQ); |
| } |
| case 436: break; |
| case 114: |
| { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_SIGNEQ); |
| } |
| case 437: break; |
| case 48: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_SLASHRPAREN); |
| } |
| case 438: break; |
| case 176: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_EXTERNAL); |
| } |
| case 439: break; |
| case 12: |
| { wantEos = true; unsetSOL(); return token(Terminal.T_RPAREN); |
| } |
| case 440: break; |
| case 192: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_CONTAINS); |
| } |
| case 441: break; |
| case 149: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_REWIND); |
| } |
| case 442: break; |
| case 147: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_RESULT); |
| } |
| case 443: break; |
| case 112: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_FILEEQ); |
| } |
| case 444: break; |
| case 226: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_SEQUENTIALEQ); |
| } |
| case 445: break; |
| case 150: |
| { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_ROUNDEQ); |
| } |
| case 446: break; |
| case 214: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_RECURSIVE); |
| } |
| case 447: break; |
| case 231: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ENDSUBROUTINE); |
| } |
| case 448: break; |
| case 37: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_EQGREATERTHAN); |
| } |
| case 449: break; |
| case 224: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_EQUIVALENCE); |
| } |
| case 450: break; |
| case 151: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_MODULE); |
| } |
| case 451: break; |
| case 142: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_SELECT); |
| } |
| case 452: break; |
| case 195: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ENDFORALL); |
| } |
| case 453: break; |
| case 198: |
| { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_ENCODINGEQ); |
| } |
| case 454: break; |
| case 101: |
| { wantEos = true; return token(Terminal.T_X_IMPL); |
| } |
| case 455: break; |
| case 229: |
| { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_ASYNCHRONOUS); |
| } |
| case 456: break; |
| case 179: |
| { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_DEFERRED); |
| } |
| case 457: break; |
| case 94: |
| { wantEos = true; unsetSOL(); return token(Terminal.T_REAL); |
| } |
| case 458: break; |
| case 159: |
| { wantEos = true; unsetSOL(); return token(Terminal.T_FALSE); |
| } |
| case 459: break; |
| case 194: |
| { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_VOLATILE); |
| } |
| case 460: break; |
| case 212: |
| { wantEos = true; yybegin(YYINITIAL); return token(Terminal.T_PROTECTED); |
| } |
| case 461: break; |
| case 1: |
| { yypushback(1); |
| int state=yystate(); |
| yybegin(IDENT); |
| IToken token = yylex(); |
| yybegin(state); |
| return token; |
| } |
| case 462: break; |
| case 75: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ONLY); |
| } |
| case 463: break; |
| case 59: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ENDEQ); |
| } |
| case 464: break; |
| case 17: |
| { wantEos = true; unsetSOL(); return token(Terminal.T_GREATERTHAN); |
| } |
| case 465: break; |
| case 163: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_IOSTATEQ); |
| } |
| case 466: break; |
| case 183: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ADVANCEEQ); |
| } |
| case 467: break; |
| case 177: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_ENDBLOCK); |
| } |
| case 468: break; |
| case 100: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_FCON); |
| } |
| case 469: break; |
| case 130: |
| { wantEos = true; yybegin(YYSTANDARD); return token(Terminal.T_EXISTEQ); |
| } |
| case 470: break; |
| default: |
| if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { |
| zzAtEOF = true; |
| switch (zzLexicalState) { |
| case OPERATORorFORMAT: { |
| wantEos = false; yybegin(YYSTANDARD); return token(Terminal.END_OF_INPUT); |
| } |
| case 977: break; |
| case DBLQUOTED: { |
| throw new LexerException(this, "Lexer Error (line " + (getLine()+1) + ", col " + (getCol()+1) + "): End of file encountered before string literal terminated"); |
| } |
| case 978: break; |
| case QUOTED: { |
| throw new LexerException(this, "Lexer Error (line " + (getLine()+1) + ", col " + (getCol()+1) + "): End of file encountered before string literal terminated"); |
| } |
| case 979: break; |
| case YYINITIAL: { |
| wantEos = false; yybegin(YYSTANDARD); return token(Terminal.END_OF_INPUT); |
| } |
| case 980: break; |
| case HOLLERITH: { |
| throw new LexerException(this, "Lexer Error (line " + (getLine()+1) + ", col " + (getCol()+1) + "): End of file encountered before hollerith literal terminated"); |
| } |
| case 981: break; |
| case YYSTANDARD: { |
| wantEos = false; yybegin(YYSTANDARD); return token(Terminal.END_OF_INPUT); |
| } |
| case 982: break; |
| case IMPLICIT: { |
| wantEos = false; yybegin(YYSTANDARD); return token(Terminal.END_OF_INPUT); |
| } |
| case 983: break; |
| default: |
| return null; |
| } |
| } |
| else { |
| zzScanError(ZZ_NO_MATCH); |
| } |
| } |
| } |
| } |
| |
| |
| } |