/******************************************************************************* * Copyright © 2013 IBM Corporation 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: * IBM Corporation - initial API and implementation * *******************************************************************************/ /* The following code was generated by JFlex 1.4.3 on 11/19/12 4:04 PM */ package org.eclipse.edt.compiler.core.ast; import java.io.Reader; import java.util.ArrayList; import java.util.List; import java_cup.runtime.Symbol; /** * This class is a scanner generated by * <a href="http://www.jflex.de/">JFlex</a> 1.4.3 * on 11/19/12 4:04 PM from the specification file * <tt>egl.flex</tt> */ public class Lexer implements java_cup.runtime.Scanner { /** 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 = 128; /** lexical states */ public static final int STRING = 2; public static final int SQLDELIMITEDID = 8; public static final int BLOCK_COMMENT = 4; public static final int YYINITIAL = 0; public static final int SQL = 6; public static final int SQLSTRING = 10; /** * ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l * ZZ_LEXSTATE[l+1] is the state in the DFA for the lexical state l * at the beginning of a line * l is of the form l = 2*k, k a non negative integer */ private static final int ZZ_LEXSTATE[] = { 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5 }; /** * Translates characters to character classes */ private static final String ZZ_CMAP_PACKED = "\11\5\1\3\1\1\1\0\1\3\1\2\16\5\4\0\1\3\1\55"+ "\1\23\1\25\1\4\1\67\1\62\1\76\1\53\1\54\1\24\1\13"+ "\1\56\1\22\1\11\1\21\1\16\5\6\1\52\3\6\1\60\1\57"+ "\1\64\1\61\1\65\1\66\1\73\1\37\1\20\1\32\1\35\1\12"+ "\1\14\1\45\1\46\1\7\1\4\1\51\1\30\1\43\1\34\1\33"+ "\1\44\1\27\1\41\1\26\1\36\1\40\1\47\1\50\1\17\1\42"+ "\1\4\1\70\1\75\1\71\1\0\1\4\1\0\1\37\1\77\1\32"+ "\1\35\1\12\1\15\1\45\1\46\1\10\1\4\1\51\1\30\1\43"+ "\1\100\1\33\1\44\1\27\1\101\1\26\1\102\1\40\1\47\1\50"+ "\1\17\1\42\1\4\1\31\1\63\1\72\1\74\41\5\2\0\4\4"+ "\4\0\1\4\2\0\1\5\7\0\1\4\4\0\1\4\5\0\27\4"+ "\1\0\37\4\1\0\u013f\4\31\0\162\4\4\0\14\4\16\0\5\4"+ "\11\0\1\4\21\0\130\5\5\0\23\5\12\0\1\4\13\0\1\4"+ "\1\0\3\4\1\0\1\4\1\0\24\4\1\0\54\4\1\0\46\4"+ "\1\0\5\4\4\0\202\4\1\0\4\5\3\0\105\4\1\0\46\4"+ "\2\0\2\4\6\0\20\4\41\0\46\4\2\0\1\4\7\0\47\4"+ "\11\0\21\5\1\0\27\5\1\0\3\5\1\0\1\5\1\0\2\5"+ "\1\0\1\5\13\0\33\4\5\0\3\4\15\0\4\5\14\0\6\5"+ "\13\0\32\4\5\0\13\4\16\5\7\0\12\5\4\0\2\4\1\5"+ "\143\4\1\0\1\4\10\5\1\0\6\5\2\4\2\5\1\0\4\5"+ "\2\4\12\5\3\4\2\0\1\4\17\0\1\5\1\4\1\5\36\4"+ "\33\5\2\0\3\4\60\0\46\4\13\5\1\4\u014f\0\3\5\66\4"+ "\2\0\1\5\1\4\20\5\2\0\1\4\4\5\3\0\12\4\2\5"+ "\2\0\12\5\21\0\3\5\1\0\10\4\2\0\2\4\2\0\26\4"+ "\1\0\7\4\1\0\1\4\3\0\4\4\2\0\1\5\1\4\7\5"+ "\2\0\2\5\2\0\3\5\11\0\1\5\4\0\2\4\1\0\3\4"+ "\2\5\2\0\12\5\4\4\15\0\3\5\1\0\6\4\4\0\2\4"+ "\2\0\26\4\1\0\7\4\1\0\2\4\1\0\2\4\1\0\2\4"+ "\2\0\1\5\1\0\5\5\4\0\2\5\2\0\3\5\13\0\4\4"+ "\1\0\1\4\7\0\14\5\3\4\14\0\3\5\1\0\11\4\1\0"+ "\3\4\1\0\26\4\1\0\7\4\1\0\2\4\1\0\5\4\2\0"+ "\1\5\1\4\10\5\1\0\3\5\1\0\3\5\2\0\1\4\17\0"+ "\2\4\2\5\2\0\12\5\1\0\1\4\17\0\3\5\1\0\10\4"+ "\2\0\2\4\2\0\26\4\1\0\7\4\1\0\2\4\1\0\5\4"+ "\2\0\1\5\1\4\6\5\3\0\2\5\2\0\3\5\10\0\2\5"+ "\4\0\2\4\1\0\3\4\4\0\12\5\1\0\1\4\20\0\1\5"+ "\1\4\1\0\6\4\3\0\3\4\1\0\4\4\3\0\2\4\1\0"+ "\1\4\1\0\2\4\3\0\2\4\3\0\3\4\3\0\10\4\1\0"+ "\3\4\4\0\5\5\3\0\3\5\1\0\4\5\11\0\1\5\17\0"+ "\11\5\11\0\1\4\7\0\3\5\1\0\10\4\1\0\3\4\1\0"+ "\27\4\1\0\12\4\1\0\5\4\4\0\7\5\1\0\3\5\1\0"+ "\4\5\7\0\2\5\11\0\2\4\4\0\12\5\22\0\2\5\1\0"+ "\10\4\1\0\3\4\1\0\27\4\1\0\12\4\1\0\5\4\2\0"+ "\1\5\1\4\7\5\1\0\3\5\1\0\4\5\7\0\2\5\7\0"+ "\1\4\1\0\2\4\4\0\12\5\22\0\2\5\1\0\10\4\1\0"+ "\3\4\1\0\27\4\1\0\20\4\4\0\6\5\2\0\3\5\1\0"+ "\4\5\11\0\1\5\10\0\2\4\4\0\12\5\22\0\2\5\1\0"+ "\22\4\3\0\30\4\1\0\11\4\1\0\1\4\2\0\7\4\3\0"+ "\1\5\4\0\6\5\1\0\1\5\1\0\10\5\22\0\2\5\15\0"+ "\60\4\1\5\2\4\7\5\4\0\10\4\10\5\1\0\12\5\47\0"+ "\2\4\1\0\1\4\2\0\2\4\1\0\1\4\2\0\1\4\6\0"+ "\4\4\1\0\7\4\1\0\3\4\1\0\1\4\1\0\1\4\2\0"+ "\2\4\1\0\4\4\1\5\2\4\6\5\1\0\2\5\1\4\2\0"+ "\5\4\1\0\1\4\1\0\6\5\2\0\12\5\2\0\2\4\42\0"+ "\1\4\27\0\2\5\6\0\12\5\13\0\1\5\1\0\1\5\1\0"+ "\1\5\4\0\2\5\10\4\1\0\42\4\6\0\24\5\1\0\2\5"+ "\4\4\4\0\10\5\1\0\44\5\11\0\1\5\71\0\42\4\1\0"+ "\5\4\1\0\2\4\1\0\7\5\3\0\4\5\6\0\12\5\6\0"+ "\6\4\4\5\106\0\46\4\12\0\51\4\7\0\132\4\5\0\104\4"+ "\5\0\122\4\6\0\7\4\1\0\77\4\1\0\1\4\1\0\4\4"+ "\2\0\7\4\1\0\1\4\1\0\4\4\2\0\47\4\1\0\1\4"+ "\1\0\4\4\2\0\37\4\1\0\1\4\1\0\4\4\2\0\7\4"+ "\1\0\1\4\1\0\4\4\2\0\7\4\1\0\7\4\1\0\27\4"+ "\1\0\37\4\1\0\1\4\1\0\4\4\2\0\7\4\1\0\47\4"+ "\1\0\23\4\16\0\11\5\56\0\125\4\14\0\u026c\4\2\0\10\4"+ "\12\0\32\4\5\0\113\4\3\0\3\4\17\0\15\4\1\0\4\4"+ "\3\5\13\0\22\4\3\5\13\0\22\4\2\5\14\0\15\4\1\0"+ "\3\4\1\0\2\5\14\0\64\4\40\5\3\0\1\4\3\0\2\4"+ "\1\5\2\0\12\5\41\0\3\5\2\0\12\5\6\0\130\4\10\0"+ "\51\4\1\5\126\0\35\4\3\0\14\5\4\0\14\5\12\0\12\5"+ "\36\4\2\0\5\4\u038b\0\154\4\224\0\234\4\4\0\132\4\6\0"+ "\26\4\2\0\6\4\2\0\46\4\2\0\6\4\2\0\10\4\1\0"+ "\1\4\1\0\1\4\1\0\1\4\1\0\37\4\2\0\65\4\1\0"+ "\7\4\1\0\1\4\3\0\3\4\1\0\7\4\3\0\4\4\2\0"+ "\6\4\4\0\15\4\5\0\3\4\1\0\7\4\17\0\4\5\32\0"+ "\5\5\20\0\2\4\23\0\1\4\13\0\4\5\6\0\6\5\1\0"+ "\1\4\15\0\1\4\40\0\22\4\36\0\15\5\4\0\1\5\3\0"+ "\6\5\27\0\1\4\4\0\1\4\2\0\12\4\1\0\1\4\3\0"+ "\5\4\6\0\1\4\1\0\1\4\1\0\1\4\1\0\4\4\1\0"+ "\3\4\1\0\7\4\3\0\3\4\5\0\5\4\26\0\44\4\u0e81\0"+ "\3\4\31\0\11\4\6\5\1\0\5\4\2\0\5\4\4\0\126\4"+ "\2\0\2\5\2\0\3\4\1\0\137\4\5\0\50\4\4\0\136\4"+ "\21\0\30\4\70\0\20\4\u0200\0\u19b6\4\112\0\u51a6\4\132\0\u048d\4"+ "\u0773\0\u2ba4\4\u215c\0\u012e\4\2\0\73\4\225\0\7\4\14\0\5\4"+ "\5\0\1\4\1\5\12\4\1\0\15\4\1\0\5\4\1\0\1\4"+ "\1\0\2\4\1\0\2\4\1\0\154\4\41\0\u016b\4\22\0\100\4"+ "\2\0\66\4\50\0\15\4\3\0\20\5\20\0\4\5\17\0\2\4"+ "\30\0\3\4\31\0\1\4\6\0\5\4\1\0\207\4\2\0\1\5"+ "\4\0\1\4\13\0\12\5\7\0\32\4\4\0\1\4\1\0\32\4"+ "\12\0\132\4\3\0\6\4\2\0\6\4\2\0\6\4\2\0\3\4"+ "\3\0\2\4\3\0\2\4\22\0\3\5\4\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 = "\3\0\1\1\2\0\1\2\1\3\1\4\1\5\1\6"+ "\1\5\1\7\1\5\1\10\1\5\1\6\2\5\1\11"+ "\1\12\1\13\1\14\1\2\2\5\1\15\16\5\1\16"+ "\1\17\1\20\1\21\1\22\1\23\1\24\1\25\1\26"+ "\1\27\1\30\1\31\1\32\1\33\1\34\1\35\1\36"+ "\1\37\1\40\2\41\1\42\1\43\2\4\4\1\1\44"+ "\1\45\1\46\1\1\2\47\1\50\1\1\1\51\1\0"+ "\1\52\1\53\1\54\1\0\1\55\1\56\1\57\1\60"+ "\1\61\4\5\1\62\5\5\1\0\1\5\1\63\1\64"+ "\1\65\1\66\1\67\1\70\1\71\1\0\13\5\1\72"+ "\3\5\1\73\2\5\1\74\2\5\1\75\4\5\1\76"+ "\24\5\1\77\1\100\1\101\1\102\1\103\1\104\1\73"+ "\1\105\1\106\1\107\1\110\1\111\1\112\1\113\1\114"+ "\1\115\1\116\1\117\1\120\1\121\1\122\1\123\1\124"+ "\1\1\1\125\1\126\1\55\1\0\1\127\11\5\1\130"+ "\2\5\1\131\3\5\1\132\1\133\2\5\2\64\1\134"+ "\1\0\1\5\1\135\20\5\1\136\2\5\1\137\1\5"+ "\1\140\4\5\1\141\4\5\1\142\1\103\1\143\1\5"+ "\1\144\1\145\1\5\1\146\5\5\1\147\5\5\1\150"+ "\10\5\1\151\1\152\1\153\1\154\1\155\1\1\3\5"+ "\1\156\3\5\1\157\2\5\1\160\6\5\1\161\1\162"+ "\2\5\1\0\10\5\1\163\5\5\1\164\1\165\3\5"+ "\1\166\1\167\1\5\1\170\2\5\1\171\1\172\12\5"+ "\1\173\5\5\1\174\1\5\1\175\1\5\1\176\1\177"+ "\1\5\1\200\1\5\1\201\1\5\1\202\10\5\1\203"+ "\2\5\1\74\3\5\1\0\1\204\1\0\3\5\1\205"+ "\1\5\1\206\1\5\1\207\1\5\1\210\1\211\1\212"+ "\10\5\1\213\2\5\1\214\13\5\1\215\2\5\1\216"+ "\1\217\1\220\3\5\1\221\7\5\1\222\1\5\1\0"+ "\2\5\1\223\1\224\10\5\1\225\5\5\1\226\1\5"+ "\1\227\1\230\14\5\1\231\1\232\2\5\1\233\3\5"+ "\1\0\1\5\1\234\1\235\3\5\1\236\12\5\1\237"+ "\1\240\1\241\1\242\1\243\1\244\1\5\1\245\1\246"+ "\2\5\1\247\4\5\1\250\1\5\1\0\3\5\1\251"+ "\2\5\1\252\1\253\1\5\1\254\1\255\1\5\1\256"+ "\1\5\1\257\1\5\1\260\3\5\1\261\1\5\1\0"+ "\1\262\3\5\1\263\1\264\1\265\1\266\1\5\1\267"+ "\2\5\1\270\1\0\5\5\1\271\1\0\1\5\1\272"+ "\1\273\1\5\1\274\1\0\2\5\1\0\1\5\1\275"+ "\1\276\1\277"; private static int [] zzUnpackAction() { int [] result = new int[562]; 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\103\0\206\0\311\0\u010c\0\u014f\0\u0192\0\u01d5"+ "\0\u0218\0\u025b\0\u029e\0\u02e1\0\u0324\0\u0367\0\u03aa\0\u03ed"+ "\0\u0430\0\u0473\0\u04b6\0\u04f9\0\u053c\0\u0192\0\u057f\0\u05c2"+ "\0\u0605\0\u0648\0\u0192\0\u068b\0\u06ce\0\u0711\0\u0754\0\u0797"+ "\0\u07da\0\u081d\0\u0860\0\u08a3\0\u08e6\0\u0929\0\u096c\0\u09af"+ "\0\u09f2\0\u0192\0\u0192\0\u0a35\0\u0192\0\u0192\0\u0a78\0\u0abb"+ "\0\u0afe\0\u0b41\0\u0b84\0\u0bc7\0\u0c0a\0\u0c4d\0\u0192\0\u0192"+ "\0\u0192\0\u0192\0\u0192\0\u0c90\0\u0192\0\u0cd3\0\u0192\0\u0d16"+ "\0\u0192\0\u0d59\0\u0192\0\u0d9c\0\u0ddf\0\u0e22\0\u0192\0\u0192"+ "\0\u0192\0\u0e65\0\u0192\0\u0ea8\0\u0eeb\0\u0f2e\0\u0f71\0\u01d5"+ "\0\u0192\0\u0192\0\u0fb4\0\u0ff7\0\u0192\0\u0192\0\u025b\0\u103a"+ "\0\u107d\0\u10c0\0\u1103\0\u1146\0\u1189\0\u0192\0\u11cc\0\u120f"+ "\0\u1252\0\u1295\0\u12d8\0\u131b\0\u135e\0\u13a1\0\u13e4\0\u0192"+ "\0\u0192\0\u0192\0\u1427\0\u0192\0\u146a\0\u14ad\0\u14f0\0\u1533"+ "\0\u1576\0\u15b9\0\u15fc\0\u163f\0\u1682\0\u16c5\0\u1708\0\u174b"+ "\0\u025b\0\u178e\0\u17d1\0\u1814\0\u025b\0\u1857\0\u189a\0\u18dd"+ "\0\u1920\0\u1963\0\u025b\0\u19a6\0\u19e9\0\u1a2c\0\u1a6f\0\u025b"+ "\0\u1ab2\0\u1af5\0\u1b38\0\u1b7b\0\u1bbe\0\u1c01\0\u1c44\0\u1c87"+ "\0\u1cca\0\u1d0d\0\u1d50\0\u1d93\0\u1dd6\0\u1e19\0\u1e5c\0\u1e9f"+ "\0\u1ee2\0\u1f25\0\u1f68\0\u1fab\0\u0192\0\u1fee\0\u0192\0\u0192"+ "\0\u0192\0\u0192\0\u0192\0\u0192\0\u2031\0\u0192\0\u2074\0\u20b7"+ "\0\u0192\0\u0192\0\u0192\0\u0192\0\u0192\0\u0192\0\u0192\0\u0192"+ "\0\u0192\0\u0192\0\u0192\0\u20fa\0\u0192\0\u0192\0\u213d\0\u213d"+ "\0\u025b\0\u2180\0\u21c3\0\u2206\0\u2249\0\u228c\0\u22cf\0\u2312"+ "\0\u2355\0\u2398\0\u025b\0\u23db\0\u241e\0\u2461\0\u24a4\0\u24e7"+ "\0\u252a\0\u131b\0\u256d\0\u25b0\0\u25f3\0\u0192\0\u2636\0\u0192"+ "\0\u2679\0\u26bc\0\u025b\0\u26ff\0\u2742\0\u2785\0\u27c8\0\u280b"+ "\0\u284e\0\u2891\0\u28d4\0\u2917\0\u295a\0\u299d\0\u29e0\0\u2a23"+ "\0\u2a66\0\u2aa9\0\u2aec\0\u025b\0\u2b2f\0\u2b72\0\u025b\0\u2bb5"+ "\0\u025b\0\u2bf8\0\u2c3b\0\u2c7e\0\u2cc1\0\u025b\0\u2d04\0\u2d47"+ "\0\u2d8a\0\u2dcd\0\u025b\0\u025b\0\u025b\0\u2e10\0\u025b\0\u025b"+ "\0\u2e53\0\u025b\0\u2e96\0\u2ed9\0\u2f1c\0\u2f5f\0\u2fa2\0\u025b"+ "\0\u2fe5\0\u3028\0\u306b\0\u30ae\0\u30f1\0\u025b\0\u3134\0\u3177"+ "\0\u31ba\0\u31fd\0\u3240\0\u3283\0\u32c6\0\u3309\0\u0192\0\u0192"+ "\0\u0192\0\u334c\0\u0192\0\u338f\0\u33d2\0\u3415\0\u3458\0\u025b"+ "\0\u349b\0\u34de\0\u3521\0\u025b\0\u3564\0\u35a7\0\u025b\0\u35ea"+ "\0\u362d\0\u3670\0\u36b3\0\u36f6\0\u3739\0\u025b\0\u0192\0\u377c"+ "\0\u37bf\0\u3802\0\u3845\0\u3888\0\u38cb\0\u390e\0\u3951\0\u3994"+ "\0\u39d7\0\u3a1a\0\u025b\0\u3a5d\0\u3aa0\0\u3ae3\0\u3b26\0\u3b69"+ "\0\u025b\0\u025b\0\u3bac\0\u3bef\0\u3c32\0\u025b\0\u025b\0\u3c75"+ "\0\u025b\0\u3cb8\0\u3cfb\0\u025b\0\u025b\0\u3d3e\0\u3d81\0\u3dc4"+ "\0\u3e07\0\u3e4a\0\u3e8d\0\u3ed0\0\u3f13\0\u3f56\0\u3f99\0\u025b"+ "\0\u3fdc\0\u401f\0\u4062\0\u40a5\0\u40e8\0\u025b\0\u412b\0\u025b"+ "\0\u416e\0\u41b1\0\u025b\0\u41f4\0\u025b\0\u4237\0\u0192\0\u427a"+ "\0\u025b\0\u42bd\0\u4300\0\u4343\0\u4386\0\u43c9\0\u440c\0\u444f"+ "\0\u4492\0\u025b\0\u44d5\0\u4518\0\u025b\0\u455b\0\u459e\0\u45e1"+ "\0\u4624\0\u0192\0\u4667\0\u46aa\0\u46ed\0\u4730\0\u025b\0\u4773"+ "\0\u025b\0\u47b6\0\u025b\0\u47f9\0\u025b\0\u025b\0\u483c\0\u487f"+ "\0\u48c2\0\u4905\0\u4948\0\u498b\0\u49ce\0\u4a11\0\u4a54\0\u025b"+ "\0\u4a97\0\u4ada\0\u4b1d\0\u4b60\0\u4ba3\0\u4be6\0\u4c29\0\u4c6c"+ "\0\u4caf\0\u4cf2\0\u4d35\0\u4d78\0\u4dbb\0\u4dfe\0\u025b\0\u4e41"+ "\0\u4e84\0\u025b\0\u025b\0\u025b\0\u4ec7\0\u4f0a\0\u4f4d\0\u025b"+ "\0\u4f90\0\u4fd3\0\u5016\0\u5059\0\u509c\0\u50df\0\u5122\0\u025b"+ "\0\u5165\0\u51a8\0\u51eb\0\u522e\0\u025b\0\u025b\0\u5271\0\u52b4"+ "\0\u52f7\0\u533a\0\u537d\0\u53c0\0\u5403\0\u5446\0\u025b\0\u5489"+ "\0\u54cc\0\u550f\0\u5552\0\u5595\0\u025b\0\u55d8\0\u025b\0\u561b"+ "\0\u565e\0\u56a1\0\u56e4\0\u5727\0\u576a\0\u57ad\0\u57f0\0\u5833"+ "\0\u5876\0\u58b9\0\u58fc\0\u593f\0\u025b\0\u025b\0\u5982\0\u59c5"+ "\0\u025b\0\u5a08\0\u5a4b\0\u5a8e\0\u5ad1\0\u5b14\0\u025b\0\u025b"+ "\0\u5b57\0\u5b9a\0\u5bdd\0\u025b\0\u5c20\0\u5c63\0\u5ca6\0\u5ce9"+ "\0\u5d2c\0\u5d6f\0\u5db2\0\u5df5\0\u5e38\0\u5e7b\0\u025b\0\u025b"+ "\0\u025b\0\u025b\0\u025b\0\u025b\0\u5ebe\0\u025b\0\u025b\0\u5f01"+ "\0\u5f44\0\u025b\0\u5f87\0\u5fca\0\u600d\0\u6050\0\u025b\0\u6093"+ "\0\u60d6\0\u6119\0\u615c\0\u619f\0\u025b\0\u61e2\0\u6225\0\u025b"+ "\0\u025b\0\u6268\0\u025b\0\u025b\0\u62ab\0\u025b\0\u62ee\0\u025b"+ "\0\u6331\0\u025b\0\u6374\0\u63b7\0\u63fa\0\u025b\0\u643d\0\u6480"+ "\0\u025b\0\u64c3\0\u6506\0\u6549\0\u025b\0\u025b\0\u025b\0\u025b"+ "\0\u658c\0\u025b\0\u65cf\0\u6612\0\u025b\0\u6655\0\u6698\0\u66db"+ "\0\u671e\0\u6761\0\u67a4\0\u025b\0\u67e7\0\u682a\0\u025b\0\u025b"+ "\0\u686d\0\u025b\0\u68b0\0\u68f3\0\u6936\0\u6979\0\u69bc\0\u025b"+ "\0\u0192\0\u025b"; private static int [] zzUnpackRowMap() { int [] result = new int[562]; 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\7\2\10\1\11\1\12\1\7\1\13\2\14\1\15"+ "\1\16\1\17\2\20\1\21\1\22\1\23\1\24\1\25"+ "\1\26\1\27\1\30\1\31\1\12\1\32\1\33\1\34"+ "\1\35\1\36\1\37\1\40\1\41\1\42\1\43\1\44"+ "\1\45\1\46\1\47\1\50\1\12\1\51\1\12\1\13"+ "\1\52\1\53\1\54\1\55\1\56\1\57\1\60\1\61"+ "\1\62\1\63\1\64\1\65\1\66\1\67\1\70\1\71"+ "\1\72\1\73\2\7\1\23\1\36\1\43\1\40\1\74"+ "\1\75\1\76\20\74\1\77\51\74\1\100\5\74\24\101"+ "\1\102\56\101\1\103\3\104\1\105\2\103\2\105\1\103"+ "\1\105\1\103\2\105\1\103\2\105\1\103\1\106\1\107"+ "\2\103\3\105\1\103\20\105\20\103\1\110\3\103\1\111"+ "\4\105\1\112\1\113\1\114\20\112\1\115\57\112\1\116"+ "\1\113\1\114\73\116\1\117\4\116\104\0\2\10\1\120"+ "\102\0\1\11\103\0\5\12\1\0\1\12\1\0\5\12"+ "\5\0\3\12\1\0\21\12\24\0\4\12\6\0\1\13"+ "\1\121\1\122\1\123\1\124\1\0\1\125\1\126\1\13"+ "\33\0\1\13\34\0\5\12\1\0\1\12\1\0\2\127"+ "\3\12\5\0\1\130\2\12\1\0\2\12\1\131\6\12"+ "\1\132\7\12\24\0\1\12\1\131\2\12\6\0\1\123"+ "\7\0\1\123\33\0\1\123\34\0\5\12\1\0\1\12"+ "\1\0\3\12\1\133\1\12\5\0\2\12\1\134\1\0"+ "\2\12\1\135\16\12\24\0\1\12\1\135\2\12\61\0"+ "\1\136\25\0\3\12\2\137\1\0\1\12\1\0\5\12"+ "\5\0\3\12\1\0\1\12\1\140\3\12\1\141\1\142"+ "\1\143\11\12\24\0\2\12\1\143\1\12\6\0\1\13"+ "\1\121\1\122\1\123\1\124\1\0\1\125\1\126\1\13"+ "\1\144\32\0\1\13\34\0\5\12\1\0\1\12\1\0"+ "\5\12\5\0\3\12\1\0\1\12\1\145\17\12\24\0"+ "\4\12\4\0\5\12\1\0\1\12\1\0\5\12\5\0"+ "\3\12\1\0\10\12\1\146\10\12\24\0\4\12\21\0"+ "\1\147\2\0\1\150\34\0\1\151\102\0\1\152\45\0"+ "\1\153\34\0\1\154\47\0\1\155\60\0\3\12\2\156"+ "\1\0\1\157\1\0\5\12\5\0\3\12\1\0\1\160"+ "\3\12\1\161\1\12\1\162\12\12\24\0\3\12\1\161"+ "\4\0\3\12\2\163\1\0\1\12\1\0\5\12\5\0"+ "\3\12\1\0\5\12\1\164\13\12\24\0\4\12\4\0"+ "\5\12\1\0\1\12\1\0\5\12\5\0\2\12\1\165"+ "\1\0\1\12\1\166\3\12\1\167\1\170\12\12\24\0"+ "\4\12\4\0\5\12\1\0\1\12\1\0\2\171\3\12"+ "\5\0\3\12\1\0\2\12\1\172\1\12\1\173\1\12"+ "\1\174\1\175\2\12\1\176\6\12\24\0\1\12\1\172"+ "\1\175\1\173\4\0\5\12\1\0\1\177\1\0\5\12"+ "\5\0\3\12\1\0\1\12\1\200\4\12\1\201\12\12"+ "\24\0\4\12\4\0\5\12\1\0\1\202\1\0\5\12"+ "\5\0\3\12\1\0\21\12\24\0\4\12\4\0\5\12"+ "\1\0\1\12\1\0\5\12\5\0\3\12\1\0\1\12"+ "\1\203\5\12\1\204\1\205\3\12\1\206\4\12\24\0"+ "\2\12\1\204\1\12\4\0\5\12\1\0\1\12\1\0"+ "\4\12\1\207\5\0\1\210\1\12\1\211\1\0\2\12"+ "\1\212\1\213\15\12\24\0\1\207\1\212\2\12\4\0"+ "\5\12\1\0\1\12\1\0\5\12\5\0\1\214\2\12"+ "\1\0\7\12\1\215\2\12\1\216\6\12\24\0\2\12"+ "\1\215\1\12\4\0\5\12\1\0\1\217\1\0\5\12"+ "\5\0\3\12\1\0\6\12\1\220\12\12\24\0\4\12"+ "\4\0\5\12\1\0\1\221\1\0\5\12\5\0\3\12"+ "\1\0\21\12\24\0\4\12\4\0\5\12\1\0\1\12"+ "\1\0\5\12\5\0\3\12\1\0\1\12\1\222\17\12"+ "\24\0\4\12\4\0\5\12\1\0\1\12\1\0\5\12"+ "\5\0\3\12\1\0\5\12\1\223\1\12\1\224\11\12"+ "\24\0\2\12\1\224\1\12\4\0\5\12\1\0\1\225"+ "\1\0\5\12\5\0\3\12\1\0\1\12\1\226\5\12"+ "\1\227\11\12\24\0\2\12\1\227\1\12\4\0\5\12"+ "\1\0\1\12\1\0\5\12\5\0\3\12\1\0\1\12"+ "\1\230\3\12\1\231\13\12\24\0\4\12\4\0\3\12"+ "\2\232\1\0\1\12\1\0\5\12\5\0\3\12\1\0"+ "\7\12\1\233\4\12\1\234\4\12\24\0\2\12\1\233"+ "\1\12\61\0\1\235\101\0\1\236\103\0\1\237\102\0"+ "\1\240\1\241\101\0\1\242\1\0\1\243\100\0\1\244"+ "\2\0\1\245\77\0\1\246\3\0\1\247\75\0\1\250"+ "\5\0\1\251\75\0\1\252\21\0\1\74\2\0\20\74"+ "\1\0\51\74\1\0\5\74\1\0\1\75\116\0\1\253"+ "\5\0\1\254\51\0\1\255\1\256\1\257\1\260\1\261"+ "\1\262\21\0\1\263\62\0\3\104\103\0\5\105\1\0"+ "\1\105\1\0\5\105\5\0\3\105\1\0\21\105\24\0"+ "\4\105\22\0\1\264\60\0\1\112\2\0\20\112\1\0"+ "\57\112\1\0\1\113\124\0\1\265\57\0\1\116\2\0"+ "\73\116\1\0\4\116\76\0\1\266\12\0\1\123\3\0"+ "\1\124\1\0\1\125\1\126\1\123\33\0\1\123\36\0"+ "\1\267\4\0\1\270\2\0\1\267\3\0\1\270\27\0"+ "\1\267\34\0\5\12\1\0\1\12\1\0\5\12\5\0"+ "\3\12\1\0\5\12\1\271\13\12\24\0\4\12\4\0"+ "\5\12\1\0\1\12\1\0\5\12\5\0\1\272\2\12"+ "\1\0\1\12\1\273\2\12\1\274\5\12\1\275\6\12"+ "\24\0\3\12\1\274\4\0\5\12\1\0\1\12\1\0"+ "\5\12\5\0\3\12\1\0\12\12\1\276\6\12\24\0"+ "\4\12\4\0\3\12\2\277\1\0\1\300\1\0\5\12"+ "\5\0\3\12\1\0\4\12\1\301\14\12\24\0\3\12"+ "\1\301\4\0\5\12\1\0\1\12\1\0\5\12\5\0"+ "\1\302\2\12\1\0\21\12\24\0\4\12\4\0\5\12"+ "\1\0\1\12\1\0\5\12\5\0\3\12\1\0\3\12"+ "\1\303\2\12\1\304\12\12\24\0\4\12\4\0\5\12"+ "\1\0\1\12\1\0\5\12\5\0\3\12\1\0\7\12"+ "\1\305\11\12\24\0\2\12\1\305\1\12\4\0\5\12"+ "\1\0\1\12\1\0\5\12\5\0\3\12\1\0\7\12"+ "\1\306\11\12\24\0\2\12\1\306\1\12\4\0\5\12"+ "\1\0\1\12\1\0\5\12\5\0\2\12\1\307\1\0"+ "\21\12\24\0\4\12\4\0\5\12\1\0\1\12\1\0"+ "\5\12\5\0\3\12\1\0\2\12\1\310\16\12\24\0"+ "\1\12\1\310\2\12\4\0\5\12\1\0\1\12\1\0"+ "\5\12\5\0\3\12\1\0\1\12\1\311\17\12\24\0"+ "\4\12\6\0\1\312\3\0\1\312\1\0\3\312\1\0"+ "\1\312\11\0\1\312\2\0\1\312\1\0\1\312\12\0"+ "\1\312\24\0\1\312\7\0\5\12\1\0\1\12\1\0"+ "\5\12\5\0\3\12\1\0\7\12\1\313\11\12\24\0"+ "\2\12\1\313\1\12\4\0\5\12\1\0\1\12\1\0"+ "\5\12\5\0\3\12\1\0\2\12\1\314\7\12\1\315"+ "\6\12\24\0\1\12\1\314\2\12\1\147\1\316\1\317"+ "\100\147\61\0\1\320\50\0\1\321\57\0\5\12\1\0"+ "\1\12\1\0\5\12\5\0\3\12\1\0\2\12\1\322"+ "\16\12\24\0\1\12\1\322\2\12\4\0\5\12\1\0"+ "\1\12\1\0\5\12\5\0\3\12\1\0\4\12\1\323"+ "\2\12\1\324\11\12\24\0\2\12\1\324\1\323\4\0"+ "\5\12\1\0\1\12\1\0\5\12\5\0\3\12\1\0"+ "\7\12\1\325\11\12\24\0\2\12\1\325\1\12\4\0"+ "\5\12\1\0\1\12\1\0\5\12\5\0\3\12\1\0"+ "\5\12\1\326\13\12\24\0\4\12\4\0\5\12\1\0"+ "\1\12\1\0\5\12\5\0\3\12\1\0\12\12\1\327"+ "\6\12\24\0\4\12\4\0\5\12\1\0\1\12\1\0"+ "\4\12\1\330\5\0\3\12\1\0\21\12\24\0\1\330"+ "\3\12\4\0\5\12\1\0\1\12\1\0\4\12\1\331"+ "\5\0\1\332\2\12\1\0\2\12\1\333\16\12\24\0"+ "\1\331\1\333\2\12\4\0\5\12\1\0\1\12\1\0"+ "\5\12\5\0\3\12\1\0\1\12\1\334\3\12\1\335"+ "\13\12\24\0\4\12\4\0\5\12\1\0\1\12\1\0"+ "\5\12\5\0\3\12\1\0\2\12\1\336\16\12\24\0"+ "\1\12\1\336\2\12\4\0\5\12\1\0\1\12\1\0"+ "\5\12\5\0\1\337\1\12\1\340\1\0\21\12\24\0"+ "\4\12\4\0\5\12\1\0\1\12\1\0\5\12\5\0"+ "\3\12\1\0\7\12\1\341\11\12\24\0\2\12\1\341"+ "\1\12\4\0\5\12\1\0\1\342\1\0\5\12\5\0"+ "\3\12\1\0\21\12\24\0\4\12\4\0\5\12\1\0"+ "\1\12\1\0\5\12\5\0\3\12\1\0\14\12\1\343"+ "\4\12\24\0\4\12\4\0\5\12\1\0\1\12\1\0"+ "\5\12\5\0\3\12\1\0\4\12\1\344\14\12\24\0"+ "\3\12\1\344\4\0\5\12\1\0\1\345\1\0\5\12"+ "\5\0\3\12\1\0\21\12\24\0\4\12\4\0\5\12"+ "\1\0\1\12\1\0\3\12\1\346\1\12\5\0\3\12"+ "\1\0\16\12\1\347\2\12\24\0\4\12\4\0\5\12"+ "\1\0\1\12\1\0\5\12\5\0\3\12\1\0\1\350"+ "\3\12\1\351\14\12\24\0\3\12\1\351\4\0\5\12"+ "\1\0\1\12\1\0\5\12\5\0\2\12\1\352\1\0"+ "\21\12\24\0\4\12\4\0\5\12\1\0\1\12\1\0"+ "\5\12\5\0\2\12\1\353\1\0\1\354\20\12\24\0"+ "\4\12\4\0\5\12\1\0\1\12\1\0\5\12\5\0"+ "\3\12\1\0\6\12\1\355\1\12\1\356\10\12\24\0"+ "\4\12\4\0\5\12\1\0\1\12\1\0\5\12\5\0"+ "\3\12\1\0\12\12\1\357\6\12\24\0\4\12\4\0"+ "\3\12\2\360\1\0\1\12\1\0\5\12\5\0\3\12"+ "\1\0\7\12\1\361\11\12\24\0\2\12\1\361\1\12"+ "\4\0\5\12\1\0\1\12\1\0\5\12\5\0\1\362"+ "\2\12\1\0\21\12\24\0\4\12\4\0\5\12\1\0"+ "\1\12\1\0\5\12\5\0\2\12\1\363\1\0\21\12"+ "\24\0\4\12\4\0\5\12\1\0\1\12\1\0\5\12"+ "\5\0\3\12\1\0\3\12\1\364\15\12\24\0\4\12"+ "\4\0\5\12\1\0\1\12\1\0\5\12\5\0\3\12"+ "\1\0\3\12\1\365\15\12\24\0\4\12\4\0\3\12"+ "\2\366\1\0\1\367\1\0\5\12\5\0\3\12\1\0"+ "\21\12\24\0\4\12\4\0\5\12\1\0\1\12\1\0"+ "\5\12\5\0\2\12\1\370\1\0\21\12\24\0\4\12"+ "\4\0\5\12\1\0\1\12\1\0\5\12\5\0\3\12"+ "\1\0\3\12\1\371\15\12\24\0\4\12\4\0\5\12"+ "\1\0\1\12\1\0\2\372\3\12\5\0\2\12\1\373"+ "\1\0\1\374\3\12\1\375\5\12\1\376\6\12\24\0"+ "\3\12\1\375\4\0\5\12\1\0\1\12\1\0\5\12"+ "\5\0\3\12\1\0\2\12\1\377\16\12\24\0\1\12"+ "\1\377\2\12\4\0\5\12\1\0\1\12\1\0\5\12"+ "\5\0\1\u0100\2\12\1\0\21\12\24\0\4\12\4\0"+ "\5\12\1\0\1\12\1\0\5\12\5\0\3\12\1\0"+ "\15\12\1\u0101\3\12\24\0\4\12\4\0\5\12\1\0"+ "\1\12\1\0\5\12\5\0\3\12\1\0\1\u0102\20\12"+ "\24\0\4\12\4\0\3\12\2\u0103\1\0\1\u0104\1\0"+ "\5\12\5\0\3\12\1\0\1\12\1\u0105\17\12\24\0"+ "\4\12\4\0\5\12\1\0\1\12\1\0\5\12\5\0"+ "\3\12\1\0\4\12\1\u0106\14\12\24\0\3\12\1\u0106"+ "\4\0\5\12\1\0\1\12\1\0\5\12\5\0\3\12"+ "\1\0\4\12\1\u0107\14\12\24\0\3\12\1\u0107\4\0"+ "\5\12\1\0\1\12\1\0\5\12\5\0\3\12\1\0"+ "\1\12\1\u0108\17\12\24\0\4\12\4\0\5\12\1\0"+ "\1\12\1\0\5\12\5\0\2\12\1\u0109\1\0\21\12"+ "\24\0\4\12\4\0\5\12\1\0\1\12\1\0\5\12"+ "\5\0\3\12\1\0\2\12\1\u010a\16\12\24\0\1\12"+ "\1\u010a\2\12\4\0\5\12\1\0\1\12\1\0\5\12"+ "\5\0\3\12\1\0\4\12\1\u010b\14\12\24\0\3\12"+ "\1\u010b\4\0\5\12\1\0\1\12\1\0\5\12\5\0"+ "\3\12\1\0\5\12\1\u010c\13\12\24\0\4\12\4\0"+ "\3\12\2\u010d\1\0\1\u010e\1\0\5\12\5\0\3\12"+ "\1\0\21\12\24\0\4\12\61\0\1\u010f\102\0\1\u0110"+ "\102\0\1\u0111\3\0\1\u0112\76\0\1\u0113\21\0\1\264"+ "\1\103\1\u0114\100\264\6\0\1\267\7\0\1\267\33\0"+ "\1\267\34\0\5\12\1\0\1\u0115\1\0\5\12\5\0"+ "\3\12\1\0\21\12\24\0\4\12\4\0\5\12\1\0"+ "\1\12\1\0\5\12\5\0\3\12\1\0\6\12\1\u0116"+ "\12\12\24\0\4\12\4\0\5\12\1\0\1\u0117\1\0"+ "\5\12\5\0\3\12\1\0\1\12\1\u0118\17\12\24\0"+ "\4\12\4\0\5\12\1\0\1\12\1\0\5\12\5\0"+ "\3\12\1\0\5\12\1\u0119\13\12\24\0\4\12\4\0"+ "\5\12\1\0\1\12\1\0\5\12\5\0\2\12\1\u011a"+ "\1\0\1\12\1\u011b\17\12\24\0\4\12\4\0\5\12"+ "\1\0\1\12\1\0\5\12\5\0\3\12\1\0\4\12"+ "\1\u011c\14\12\24\0\3\12\1\u011c\4\0\5\12\1\0"+ "\1\12\1\0\5\12\5\0\3\12\1\0\1\u011d\20\12"+ "\24\0\4\12\4\0\5\12\1\0\1\u011e\1\0\5\12"+ "\5\0\3\12\1\0\21\12\24\0\4\12\4\0\5\12"+ "\1\0\1\u011f\1\0\5\12\5\0\3\12\1\0\21\12"+ "\24\0\4\12\4\0\5\12\1\0\1\12\1\0\5\12"+ "\5\0\3\12\1\0\11\12\1\u0120\7\12\24\0\4\12"+ "\4\0\5\12\1\0\1\12\1\0\5\12\5\0\1\u0121"+ "\2\12\1\0\21\12\24\0\4\12\4\0\5\12\1\0"+ "\1\u0122\1\0\5\12\5\0\3\12\1\0\6\12\1\u0123"+ "\12\12\24\0\4\12\4\0\5\12\1\0\1\12\1\0"+ "\5\12\5\0\1\u0124\2\12\1\0\21\12\24\0\4\12"+ "\4\0\5\12\1\0\1\12\1\0\5\12\5\0\3\12"+ "\1\0\1\u0125\20\12\24\0\4\12\4\0\5\12\1\0"+ "\1\12\1\0\5\12\5\0\3\12\1\0\11\12\1\u0126"+ "\7\12\24\0\4\12\4\0\5\12\1\0\1\12\1\0"+ "\5\12\5\0\3\12\1\0\21\12\6\0\1\u0127\15\0"+ "\4\12\4\0\5\12\1\0\1\12\1\0\5\12\5\0"+ "\3\12\1\0\5\12\1\u0128\13\12\24\0\4\12\4\0"+ "\5\12\1\0\1\12\1\0\5\12\5\0\3\12\1\0"+ "\1\12\1\u0129\17\12\24\0\4\12\1\0\1\316\131\0"+ "\1\u012a\56\0\5\12\1\0\1\12\1\0\5\12\5\0"+ "\3\12\1\0\13\12\1\u012b\5\12\24\0\4\12\4\0"+ "\5\12\1\0\1\12\1\0\5\12\5\0\3\12\1\0"+ "\15\12\1\u012c\3\12\24\0\4\12\4\0\5\12\1\0"+ "\1\12\1\0\5\12\5\0\3\12\1\0\1\12\1\u012d"+ "\17\12\24\0\4\12\4\0\5\12\1\0\1\12\1\0"+ "\5\12\5\0\3\12\1\0\1\u012e\3\12\1\u012f\14\12"+ "\24\0\3\12\1\u012f\4\0\5\12\1\0\1\u0130\1\0"+ "\5\12\5\0\3\12\1\0\21\12\24\0\4\12\4\0"+ "\5\12\1\0\1\12\1\0\5\12\5\0\3\12\1\0"+ "\7\12\1\u0131\11\12\24\0\2\12\1\u0131\1\12\4\0"+ "\5\12\1\0\1\u0132\1\0\5\12\5\0\3\12\1\0"+ "\21\12\24\0\4\12\4\0\5\12\1\0\1\12\1\0"+ "\5\12\5\0\3\12\1\0\4\12\1\u0133\14\12\24\0"+ "\3\12\1\u0133\4\0\5\12\1\0\1\12\1\0\5\12"+ "\5\0\3\12\1\0\13\12\1\u0134\5\12\24\0\4\12"+ "\4\0\5\12\1\0\1\12\1\0\5\12\5\0\1\u0135"+ "\2\12\1\0\21\12\24\0\4\12\4\0\5\12\1\0"+ "\1\12\1\0\5\12\5\0\1\u0136\2\12\1\0\21\12"+ "\24\0\4\12\4\0\5\12\1\0\1\12\1\0\5\12"+ "\5\0\1\u0137\2\12\1\0\4\12\1\u0138\14\12\24\0"+ "\3\12\1\u0138\4\0\5\12\1\0\1\u0139\1\0\5\12"+ "\5\0\3\12\1\0\21\12\24\0\4\12\4\0\5\12"+ "\1\0\1\12\1\0\5\12\5\0\2\12\1\u013a\1\0"+ "\21\12\24\0\4\12\4\0\5\12\1\0\1\12\1\0"+ "\5\12\5\0\3\12\1\0\7\12\1\u013b\11\12\24\0"+ "\2\12\1\u013b\1\12\4\0\5\12\1\0\1\12\1\0"+ "\3\12\1\u013c\1\12\5\0\3\12\1\0\21\12\24\0"+ "\4\12\4\0\5\12\1\0\1\u013d\1\0\5\12\5\0"+ "\3\12\1\0\21\12\24\0\4\12\4\0\5\12\1\0"+ "\1\12\1\0\5\12\5\0\3\12\1\0\2\12\1\u013e"+ "\16\12\24\0\1\12\1\u013e\2\12\4\0\5\12\1\0"+ "\1\12\1\0\5\12\5\0\3\12\1\0\4\12\1\u013f"+ "\14\12\24\0\3\12\1\u013f\4\0\5\12\1\0\1\12"+ "\1\0\5\12\5\0\3\12\1\0\6\12\1\u0140\12\12"+ "\24\0\4\12\4\0\5\12\1\0\1\12\1\0\5\12"+ "\5\0\2\12\1\u0141\1\0\21\12\24\0\4\12\4\0"+ "\5\12\1\0\1\u0142\1\0\5\12\5\0\3\12\1\0"+ "\21\12\24\0\4\12\4\0\5\12\1\0\1\12\1\0"+ "\5\12\5\0\3\12\1\0\7\12\1\u0143\11\12\24\0"+ "\2\12\1\u0143\1\12\4\0\5\12\1\0\1\u0100\1\0"+ "\5\12\5\0\3\12\1\0\21\12\24\0\4\12\4\0"+ "\5\12\1\0\1\u0144\1\0\5\12\5\0\3\12\1\0"+ "\21\12\24\0\4\12\4\0\5\12\1\0\1\12\1\0"+ "\5\12\5\0\1\u0145\2\12\1\0\21\12\24\0\4\12"+ "\4\0\5\12\1\0\1\12\1\0\5\12\5\0\3\12"+ "\1\0\1\12\1\u0146\17\12\24\0\4\12\4\0\5\12"+ "\1\0\1\12\1\0\5\12\5\0\3\12\1\0\1\12"+ "\1\u0147\2\12\1\u0148\14\12\24\0\3\12\1\u0148\4\0"+ "\5\12\1\0\1\12\1\0\5\12\5\0\3\12\1\0"+ "\2\12\1\u0149\16\12\24\0\1\12\1\u0149\2\12\4\0"+ "\5\12\1\0\1\12\1\0\5\12\5\0\3\12\1\0"+ "\5\12\1\u014a\13\12\24\0\4\12\4\0\5\12\1\0"+ "\1\12\1\0\5\12\5\0\3\12\1\0\5\12\1\u014b"+ "\13\12\24\0\4\12\4\0\5\12\1\0\1\12\1\0"+ "\5\12\5\0\3\12\1\0\1\12\1\u014c\17\12\24\0"+ "\4\12\4\0\5\12\1\0\1\12\1\0\5\12\5\0"+ "\3\12\1\0\6\12\1\u014d\12\12\24\0\4\12\4\0"+ "\5\12\1\0\1\12\1\0\5\12\5\0\2\12\1\u014e"+ "\1\0\21\12\24\0\4\12\4\0\5\12\1\0\1\12"+ "\1\0\5\12\5\0\3\12\1\0\6\12\1\u014f\12\12"+ "\24\0\4\12\4\0\5\12\1\0\1\u0150\1\0\5\12"+ "\5\0\3\12\1\0\21\12\24\0\4\12\4\0\5\12"+ "\1\0\1\12\1\0\5\12\5\0\3\12\1\0\17\12"+ "\1\u0151\1\12\24\0\4\12\4\0\5\12\1\0\1\12"+ "\1\0\5\12\5\0\3\12\1\0\15\12\1\u0152\3\12"+ "\24\0\4\12\4\0\5\12\1\0\1\12\1\0\5\12"+ "\5\0\3\12\1\0\12\12\1\u0153\2\12\1\u0154\3\12"+ "\24\0\4\12\4\0\5\12\1\0\1\12\1\0\5\12"+ "\5\0\3\12\1\0\13\12\1\u0155\5\12\24\0\4\12"+ "\4\0\5\12\1\0\1\12\1\0\5\12\5\0\3\12"+ "\1\0\1\12\1\u0156\17\12\24\0\4\12\4\0\5\12"+ "\1\0\1\12\1\0\5\12\5\0\3\12\1\0\6\12"+ "\1\u0157\12\12\24\0\4\12\4\0\5\12\1\0\1\12"+ "\1\0\5\12\5\0\3\12\1\0\3\12\1\u0158\15\12"+ "\24\0\4\12\4\0\5\12\1\0\1\12\1\0\5\12"+ "\5\0\3\12\1\0\3\12\1\u0159\15\12\24\0\4\12"+ "\4\0\5\12\1\0\1\12\1\0\5\12\5\0\3\12"+ "\1\0\14\12\1\u015a\4\12\24\0\4\12\4\0\5\12"+ "\1\0\1\12\1\0\5\12\5\0\3\12\1\0\12\12"+ "\1\u015b\6\12\24\0\4\12\4\0\5\12\1\0\1\12"+ "\1\0\5\12\5\0\2\12\1\u015c\1\0\21\12\24\0"+ "\4\12\4\0\5\12\1\0\1\12\1\0\5\12\5\0"+ "\3\12\1\0\2\12\1\u015d\4\12\1\u015e\11\12\24\0"+ "\1\12\1\u015d\1\u015e\1\12\61\0\1\u015f\22\0\1\103"+ "\105\0\5\12\1\0\1\12\1\0\5\12\5\0\3\12"+ "\1\0\7\12\1\u0160\11\12\24\0\2\12\1\u0160\1\12"+ "\4\0\5\12\1\0\1\12\1\0\5\12\5\0\3\12"+ "\1\0\4\12\1\u0161\14\12\24\0\3\12\1\u0161\4\0"+ "\5\12\1\0\1\12\1\0\5\12\5\0\3\12\1\0"+ "\7\12\1\u0162\11\12\24\0\2\12\1\u0162\1\12\4\0"+ "\5\12\1\0\1\12\1\0\5\12\5\0\3\12\1\0"+ "\7\12\1\u0163\11\12\24\0\2\12\1\u0163\1\12\4\0"+ "\5\12\1\0\1\u0164\1\0\5\12\5\0\3\12\1\0"+ "\21\12\24\0\4\12\4\0\5\12\1\0\1\12\1\0"+ "\5\12\5\0\3\12\1\0\7\12\1\u0165\11\12\24\0"+ "\2\12\1\u0165\1\12\4\0\5\12\1\0\1\12\1\0"+ "\5\12\5\0\3\12\1\0\6\12\1\u0166\12\12\24\0"+ "\4\12\4\0\5\12\1\0\1\12\1\0\5\12\5\0"+ "\3\12\1\0\2\12\1\u0167\4\12\1\u0168\11\12\24\0"+ "\1\12\1\u0167\1\u0168\1\12\4\0\5\12\1\0\1\u0169"+ "\1\0\5\12\5\0\3\12\1\0\21\12\24\0\4\12"+ "\4\0\5\12\1\0\1\12\1\0\5\12\5\0\3\12"+ "\1\0\4\12\1\u016a\14\12\24\0\3\12\1\u016a\4\0"+ "\5\12\1\0\1\12\1\0\5\12\5\0\3\12\1\0"+ "\5\12\1\u016b\13\12\24\0\4\12\4\0\5\12\1\0"+ "\1\12\1\0\5\12\5\0\3\12\1\0\12\12\1\u016c"+ "\6\12\24\0\4\12\4\0\5\12\1\0\1\u016d\1\0"+ "\5\12\5\0\3\12\1\0\21\12\24\0\4\12\4\0"+ "\5\12\1\0\1\12\1\0\5\12\5\0\3\12\1\0"+ "\4\12\1\u016e\14\12\24\0\3\12\1\u016e\4\0\5\12"+ "\1\0\1\12\1\0\5\12\5\0\3\12\1\0\11\12"+ "\1\u016f\7\12\24\0\4\12\4\0\5\12\1\0\1\12"+ "\1\0\5\12\5\0\1\u0170\2\12\1\0\21\12\24\0"+ "\4\12\1\0\3\u0171\25\0\1\u0172\1\u0173\54\0\5\12"+ "\1\0\1\12\1\0\5\12\5\0\2\12\1\u0174\1\0"+ "\21\12\24\0\4\12\4\0\3\12\2\u0175\1\0\1\12"+ "\1\0\5\12\5\0\3\12\1\0\21\12\24\0\4\12"+ "\4\0\5\12\1\0\1\12\1\0\5\12\5\0\2\12"+ "\1\u0176\1\0\21\12\24\0\4\12\4\0\5\12\1\0"+ "\1\12\1\0\5\12\5\0\3\12\1\0\17\12\1\u0177"+ "\1\12\24\0\4\12\4\0\3\12\2\u0178\1\0\1\12"+ "\1\0\5\12\5\0\3\12\1\0\21\12\24\0\4\12"+ "\4\0\5\12\1\0\1\12\1\0\5\12\5\0\3\12"+ "\1\0\7\12\1\u0179\11\12\24\0\2\12\1\u0179\1\12"+ "\4\0\5\12\1\0\1\12\1\0\5\12\5\0\3\12"+ "\1\0\5\12\1\u017a\13\12\24\0\4\12\4\0\5\12"+ "\1\0\1\12\1\0\5\12\5\0\2\12\1\u017b\1\0"+ "\21\12\24\0\4\12\4\0\5\12\1\0\1\12\1\0"+ "\5\12\5\0\3\12\1\0\6\12\1\u017c\12\12\24\0"+ "\4\12\4\0\5\12\1\0\1\u017d\1\0\5\12\5\0"+ "\3\12\1\0\21\12\24\0\4\12\4\0\5\12\1\0"+ "\1\12\1\0\5\12\5\0\1\u017e\2\12\1\0\21\12"+ "\24\0\4\12\4\0\5\12\1\0\1\12\1\0\5\12"+ "\5\0\3\12\1\0\4\12\1\u017f\14\12\24\0\3\12"+ "\1\u017f\4\0\3\12\2\u0180\1\0\1\12\1\0\5\12"+ "\5\0\3\12\1\0\21\12\24\0\4\12\4\0\5\12"+ "\1\0\1\u0181\1\0\5\12\5\0\3\12\1\0\21\12"+ "\24\0\4\12\4\0\5\12\1\0\1\12\1\0\5\12"+ "\5\0\3\12\1\0\1\u0182\20\12\24\0\4\12\4\0"+ "\5\12\1\0\1\12\1\0\5\12\5\0\3\12\1\0"+ "\7\12\1\u0183\11\12\24\0\2\12\1\u0183\1\12\4\0"+ "\5\12\1\0\1\12\1\0\5\12\5\0\3\12\1\0"+ "\7\12\1\u0184\11\12\24\0\2\12\1\u0184\1\12\4\0"+ "\5\12\1\0\1\12\1\0\5\12\5\0\3\12\1\0"+ "\4\12\1\u0185\6\12\1\u0186\5\12\24\0\3\12\1\u0185"+ "\4\0\5\12\1\0\1\u0187\1\0\5\12\5\0\3\12"+ "\1\0\21\12\24\0\4\12\4\0\5\12\1\0\1\12"+ "\1\0\5\12\5\0\3\12\1\0\16\12\1\u0188\2\12"+ "\24\0\4\12\4\0\5\12\1\0\1\12\1\0\5\12"+ "\5\0\2\12\1\u0189\1\0\21\12\24\0\4\12\4\0"+ "\5\12\1\0\1\12\1\0\5\12\5\0\3\12\1\0"+ "\7\12\1\u018a\11\12\24\0\2\12\1\u018a\1\12\4\0"+ "\5\12\1\0\1\12\1\0\5\12\5\0\3\12\1\0"+ "\13\12\1\u018b\5\12\24\0\4\12\4\0\5\12\1\0"+ "\1\12\1\0\5\12\5\0\3\12\1\0\4\12\1\u018c"+ "\14\12\24\0\3\12\1\u018c\4\0\5\12\1\0\1\12"+ "\1\0\5\12\5\0\3\12\1\0\4\12\1\u018d\14\12"+ "\24\0\3\12\1\u018d\4\0\5\12\1\0\1\12\1\0"+ "\5\12\5\0\3\12\1\0\7\12\1\u018e\11\12\24\0"+ "\2\12\1\u018e\1\12\4\0\5\12\1\0\1\12\1\0"+ "\5\12\5\0\3\12\1\0\7\12\1\u018f\11\12\24\0"+ "\2\12\1\u018f\1\12\4\0\5\12\1\0\1\12\1\0"+ "\5\12\5\0\3\12\1\0\5\12\1\u0190\13\12\24\0"+ "\4\12\4\0\5\12\1\0\1\12\1\0\5\12\5\0"+ "\3\12\1\0\2\12\1\u0191\16\12\24\0\1\12\1\u0191"+ "\2\12\4\0\5\12\1\0\1\12\1\0\5\12\5\0"+ "\3\12\1\0\5\12\1\u0192\13\12\24\0\4\12\4\0"+ "\5\12\1\0\1\12\1\0\5\12\5\0\3\12\1\0"+ "\5\12\1\u0193\13\12\24\0\4\12\4\0\5\12\1\0"+ "\1\12\1\0\5\12\5\0\3\12\1\0\5\12\1\u0194"+ "\13\12\24\0\4\12\4\0\3\12\2\u0195\1\0\1\12"+ "\1\0\5\12\5\0\3\12\1\0\21\12\24\0\4\12"+ "\4\0\5\12\1\0\1\12\1\0\5\12\5\0\3\12"+ "\1\0\7\12\1\u0196\11\12\24\0\2\12\1\u0196\1\12"+ "\4\0\5\12\1\0\1\12\1\0\5\12\5\0\3\12"+ "\1\0\12\12\1\u0197\6\12\24\0\4\12\4\0\5\12"+ "\1\0\1\12\1\0\5\12\5\0\2\12\1\u0198\1\0"+ "\21\12\24\0\4\12\4\0\5\12\1\0\1\12\1\0"+ "\5\12\5\0\3\12\1\0\15\12\1\u0199\3\12\24\0"+ "\4\12\4\0\5\12\1\0\1\u019a\1\0\5\12\5\0"+ "\3\12\1\0\21\12\24\0\4\12\4\0\5\12\1\0"+ "\1\u019b\1\0\5\12\5\0\3\12\1\0\21\12\24\0"+ "\4\12\4\0\5\12\1\0\1\12\1\0\5\12\5\0"+ "\3\12\1\0\4\12\1\u019c\14\12\24\0\3\12\1\u019c"+ "\4\0\5\12\1\0\1\12\1\0\2\u019d\3\12\5\0"+ "\3\12\1\0\21\12\24\0\4\12\4\0\5\12\1\0"+ "\1\u019e\1\0\5\12\5\0\3\12\1\0\21\12\24\0"+ "\4\12\4\0\5\12\1\0\1\12\1\0\5\12\5\0"+ "\3\12\1\0\11\12\1\u019f\7\12\24\0\4\12\4\0"+ "\5\12\1\0\1\12\1\0\5\12\5\0\3\12\1\0"+ "\4\12\1\u01a0\14\12\24\0\3\12\1\u01a0\4\0\5\12"+ "\1\0\1\12\1\0\5\12\5\0\3\12\1\0\4\12"+ "\1\u01a1\14\12\24\0\3\12\1\u01a1\4\0\5\12\1\0"+ "\1\12\1\0\5\12\5\0\3\12\1\0\3\12\1\u01a2"+ "\15\12\24\0\4\12\4\0\5\12\1\0\1\12\1\0"+ "\5\12\5\0\3\12\1\0\2\12\1\u01a3\16\12\24\0"+ "\1\12\1\u01a3\2\12\4\0\5\12\1\0\1\12\1\0"+ "\5\12\5\0\3\12\1\0\7\12\1\u01a4\11\12\24\0"+ "\2\12\1\u01a4\1\12\4\0\5\12\1\0\1\12\1\0"+ "\5\12\5\0\3\12\1\0\1\u01a5\20\12\24\0\4\12"+ "\4\0\5\12\1\0\1\12\1\0\5\12\5\0\3\12"+ "\1\0\3\12\1\u01a6\15\12\24\0\4\12\4\0\3\12"+ "\2\u01a7\1\0\1\12\1\0\5\12\5\0\3\12\1\0"+ "\21\12\24\0\4\12\4\0\5\12\1\0\1\u01a8\1\0"+ "\5\12\5\0\3\12\1\0\21\12\24\0\4\12\4\0"+ "\3\12\2\u01a9\1\0\1\12\1\0\5\12\5\0\3\12"+ "\1\0\21\12\24\0\4\12\1\0\3\u0171\25\0\1\u0172"+ "\104\0\1\u01aa\53\0\5\12\1\0\1\u01ab\1\0\5\12"+ "\5\0\3\12\1\0\21\12\24\0\4\12\4\0\5\12"+ "\1\0\1\12\1\0\5\12\5\0\3\12\1\0\1\u01ac"+ "\20\12\24\0\4\12\4\0\5\12\1\0\1\12\1\0"+ "\5\12\5\0\2\12\1\u01ad\1\0\21\12\24\0\4\12"+ "\4\0\5\12\1\0\1\12\1\0\5\12\5\0\3\12"+ "\1\0\1\u01ae\20\12\24\0\4\12\4\0\5\12\1\0"+ "\1\12\1\0\5\12\5\0\3\12\1\0\7\12\1\u01af"+ "\11\12\24\0\2\12\1\u01af\1\12\4\0\5\12\1\0"+ "\1\12\1\0\5\12\5\0\3\12\1\0\5\12\1\u01b0"+ "\13\12\24\0\4\12\4\0\5\12\1\0\1\12\1\0"+ "\5\12\5\0\3\12\1\0\7\12\1\u01b1\11\12\24\0"+ "\2\12\1\u01b1\1\12\4\0\5\12\1\0\1\12\1\0"+ "\5\12\5\0\3\12\1\0\2\12\1\u01b2\16\12\24\0"+ "\1\12\1\u01b2\2\12\4\0\5\12\1\0\1\12\1\0"+ "\5\12\5\0\3\12\1\0\2\12\1\u01b3\16\12\24\0"+ "\1\12\1\u01b3\2\12\4\0\5\12\1\0\1\u01b4\1\0"+ "\5\12\5\0\3\12\1\0\21\12\24\0\4\12\4\0"+ "\5\12\1\0\1\12\1\0\5\12\5\0\3\12\1\0"+ "\16\12\1\u01b5\2\12\24\0\4\12\4\0\5\12\1\0"+ "\1\12\1\0\5\12\5\0\1\u01b6\2\12\1\0\21\12"+ "\24\0\4\12\4\0\5\12\1\0\1\u01b7\1\0\5\12"+ "\5\0\3\12\1\0\21\12\24\0\4\12\4\0\5\12"+ "\1\0\1\12\1\0\5\12\5\0\3\12\1\0\5\12"+ "\1\u01b8\13\12\24\0\4\12\4\0\5\12\1\0\1\12"+ "\1\0\5\12\5\0\3\12\1\0\11\12\1\u01b9\7\12"+ "\24\0\4\12\4\0\5\12\1\0\1\12\1\0\5\12"+ "\5\0\3\12\1\0\6\12\1\u01ba\12\12\24\0\4\12"+ "\4\0\5\12\1\0\1\12\1\0\5\12\5\0\3\12"+ "\1\0\5\12\1\u01bb\13\12\24\0\4\12\4\0\5\12"+ "\1\0\1\12\1\0\5\12\5\0\3\12\1\0\17\12"+ "\1\u01bc\1\12\24\0\4\12\4\0\5\12\1\0\1\u01bd"+ "\1\0\5\12\5\0\3\12\1\0\21\12\24\0\4\12"+ "\4\0\3\12\2\u01be\1\0\1\12\1\0\5\12\5\0"+ "\3\12\1\0\21\12\24\0\4\12\4\0\5\12\1\0"+ "\1\12\1\0\5\12\5\0\3\12\1\0\3\12\1\u01bf"+ "\15\12\24\0\4\12\4\0\5\12\1\0\1\12\1\0"+ "\5\12\5\0\3\12\1\0\2\12\1\u01c0\16\12\24\0"+ "\1\12\1\u01c0\2\12\4\0\5\12\1\0\1\12\1\0"+ "\5\12\5\0\3\12\1\0\1\u01c1\20\12\24\0\4\12"+ "\4\0\3\12\2\u01c2\1\0\1\12\1\0\5\12\5\0"+ "\3\12\1\0\21\12\24\0\4\12\4\0\5\12\1\0"+ "\1\12\1\0\5\12\5\0\3\12\1\0\13\12\1\u01c3"+ "\5\12\24\0\4\12\4\0\5\12\1\0\1\12\1\0"+ "\5\12\5\0\3\12\1\0\4\12\1\u01c4\14\12\24\0"+ "\3\12\1\u01c4\4\0\5\12\1\0\1\12\1\0\5\12"+ "\5\0\3\12\1\0\7\12\1\u01c5\11\12\24\0\2\12"+ "\1\u01c5\1\12\4\0\5\12\1\0\1\12\1\0\5\12"+ "\5\0\3\12\1\0\1\12\1\u01c6\17\12\24\0\4\12"+ "\4\0\5\12\1\0\1\12\1\0\5\12\5\0\3\12"+ "\1\0\5\12\1\u01c7\13\12\24\0\4\12\4\0\5\12"+ "\1\0\1\u01c8\1\0\5\12\5\0\3\12\1\0\21\12"+ "\24\0\4\12\4\0\5\12\1\0\1\12\1\0\5\12"+ "\5\0\3\12\1\0\20\12\1\u01c9\24\0\4\12\4\0"+ "\5\12\1\0\1\12\1\0\5\12\5\0\3\12\1\0"+ "\5\12\1\u01ca\13\12\24\0\4\12\4\0\5\12\1\0"+ "\1\12\1\0\5\12\5\0\3\12\1\0\2\12\1\u01cb"+ "\16\12\24\0\1\12\1\u01cb\2\12\4\0\5\12\1\0"+ "\1\u01cc\1\0\5\12\5\0\3\12\1\0\21\12\24\0"+ "\4\12\4\0\5\12\1\0\1\u01cd\1\0\5\12\5\0"+ "\3\12\1\0\21\12\24\0\4\12\4\0\5\12\1\0"+ "\1\12\1\0\5\12\5\0\1\u01ce\2\12\1\0\21\12"+ "\24\0\4\12\4\0\5\12\1\0\1\12\1\0\5\12"+ "\5\0\3\12\1\0\5\12\1\u01cf\13\12\24\0\4\12"+ "\4\0\5\12\1\0\1\12\1\0\5\12\5\0\3\12"+ "\1\0\5\12\1\u01d0\13\12\24\0\4\12\4\0\5\12"+ "\1\0\1\12\1\0\5\12\5\0\3\12\1\0\14\12"+ "\1\u01d1\4\12\24\0\4\12\4\0\5\12\1\0\1\12"+ "\1\0\5\12\5\0\3\12\1\0\5\12\1\u01d2\13\12"+ "\24\0\4\12\4\0\5\12\1\0\1\12\1\0\5\12"+ "\5\0\3\12\1\0\1\12\1\u01d3\17\12\24\0\4\12"+ "\4\0\5\12\1\0\1\12\1\0\5\12\5\0\3\12"+ "\1\0\4\12\1\u01d4\14\12\24\0\3\12\1\u01d4\34\0"+ "\1\u01d5\43\0\1\u01d5\6\0\5\12\1\0\1\12\1\0"+ "\5\12\5\0\3\12\1\0\7\12\1\u01d6\11\12\24\0"+ "\2\12\1\u01d6\1\12\4\0\5\12\1\0\1\u01d7\1\0"+ "\5\12\5\0\3\12\1\0\21\12\24\0\4\12\4\0"+ "\5\12\1\0\1\12\1\0\5\12\5\0\3\12\1\0"+ "\10\12\1\u01d8\10\12\24\0\4\12\4\0\5\12\1\0"+ "\1\12\1\0\5\12\5\0\3\12\1\0\13\12\1\u01d9"+ "\5\12\24\0\4\12\4\0\5\12\1\0\1\12\1\0"+ "\5\12\5\0\3\12\1\0\6\12\1\u01da\12\12\24\0"+ "\4\12\4\0\5\12\1\0\1\12\1\0\5\12\5\0"+ "\3\12\1\0\6\12\1\u01db\12\12\24\0\4\12\4\0"+ "\5\12\1\0\1\12\1\0\5\12\5\0\3\12\1\0"+ "\4\12\1\u01dc\14\12\24\0\3\12\1\u01dc\4\0\5\12"+ "\1\0\1\12\1\0\5\12\5\0\3\12\1\0\12\12"+ "\1\u01dd\6\12\24\0\4\12\4\0\3\12\2\u01de\1\0"+ "\1\12\1\0\5\12\5\0\3\12\1\0\21\12\24\0"+ "\4\12\4\0\5\12\1\0\1\12\1\0\5\12\5\0"+ "\3\12\1\0\1\12\1\u01df\17\12\24\0\4\12\4\0"+ "\5\12\1\0\1\12\1\0\5\12\5\0\3\12\1\0"+ "\4\12\1\u01e0\14\12\24\0\3\12\1\u01e0\4\0\5\12"+ "\1\0\1\u01e1\1\0\5\12\5\0\3\12\1\0\21\12"+ "\24\0\4\12\4\0\5\12\1\0\1\12\1\0\5\12"+ "\5\0\3\12\1\0\4\12\1\u01e2\14\12\24\0\3\12"+ "\1\u01e2\4\0\5\12\1\0\1\12\1\0\5\12\5\0"+ "\3\12\1\0\1\u01e3\20\12\24\0\4\12\4\0\5\12"+ "\1\0\1\u01e4\1\0\5\12\5\0\3\12\1\0\21\12"+ "\24\0\4\12\4\0\5\12\1\0\1\12\1\0\5\12"+ "\5\0\3\12\1\0\15\12\1\u01e5\3\12\24\0\4\12"+ "\4\0\3\12\2\u01e6\1\0\1\12\1\0\5\12\5\0"+ "\1\u01e7\2\12\1\0\21\12\24\0\4\12\4\0\5\12"+ "\1\0\1\u01e8\1\0\5\12\5\0\3\12\1\0\21\12"+ "\24\0\4\12\4\0\5\12\1\0\1\12\1\0\5\12"+ "\5\0\3\12\1\0\4\12\1\u01e9\14\12\24\0\3\12"+ "\1\u01e9\4\0\5\12\1\0\1\u01ea\1\0\5\12\5\0"+ "\3\12\1\0\21\12\24\0\4\12\4\0\5\12\1\0"+ "\1\u01eb\1\0\5\12\5\0\3\12\1\0\21\12\24\0"+ "\4\12\4\0\5\12\1\0\1\u01ec\1\0\5\12\5\0"+ "\3\12\1\0\21\12\24\0\4\12\4\0\5\12\1\0"+ "\1\12\1\0\5\12\5\0\3\12\1\0\6\12\1\u01ed"+ "\12\12\24\0\4\12\4\0\5\12\1\0\1\12\1\0"+ "\5\12\5\0\3\12\1\0\11\12\1\u01ee\7\12\24\0"+ "\4\12\4\0\5\12\1\0\1\12\1\0\5\12\5\0"+ "\3\12\1\0\7\12\1\u01ef\11\12\24\0\2\12\1\u01ef"+ "\1\12\4\0\5\12\1\0\1\12\1\0\2\12\1\u01f0"+ "\2\12\5\0\3\12\1\0\21\12\24\0\4\12\4\0"+ "\5\12\1\0\1\12\1\0\5\12\5\0\3\12\1\0"+ "\1\u01f1\20\12\24\0\4\12\4\0\5\12\1\0\1\12"+ "\1\0\5\12\5\0\3\12\1\0\4\12\1\u01f2\14\12"+ "\24\0\3\12\1\u01f2\4\0\5\12\1\0\1\12\1\0"+ "\5\12\5\0\3\12\1\0\2\12\1\u01f3\16\12\24\0"+ "\1\12\1\u01f3\2\12\4\0\5\12\1\0\1\12\1\0"+ "\5\12\5\0\2\12\1\u01f4\1\0\21\12\24\0\4\12"+ "\4\0\5\12\1\0\1\12\1\0\5\12\5\0\3\12"+ "\1\0\4\12\1\u01f5\14\12\24\0\3\12\1\u01f5\4\0"+ "\5\12\1\0\1\12\1\0\5\12\5\0\3\12\1\0"+ "\4\12\1\u01f6\14\12\24\0\3\12\1\u01f6\4\0\5\12"+ "\1\0\1\12\1\0\5\12\5\0\3\12\1\0\2\12"+ "\1\u01f7\16\12\24\0\1\12\1\u01f7\2\12\4\0\3\12"+ "\2\u01f8\1\0\1\12\1\0\5\12\5\0\3\12\1\0"+ "\21\12\24\0\4\12\35\0\1\u01f9\51\0\5\12\1\0"+ "\1\12\1\0\5\12\5\0\3\12\1\0\1\12\1\u01fa"+ "\17\12\24\0\4\12\4\0\5\12\1\0\1\u01fb\1\0"+ "\5\12\5\0\3\12\1\0\21\12\24\0\4\12\4\0"+ "\5\12\1\0\1\12\1\0\5\12\5\0\3\12\1\0"+ "\1\u01fc\20\12\24\0\4\12\4\0\5\12\1\0\1\u01fd"+ "\1\0\5\12\5\0\3\12\1\0\21\12\24\0\4\12"+ "\4\0\5\12\1\0\1\12\1\0\5\12\5\0\3\12"+ "\1\0\4\12\1\u01fe\14\12\24\0\3\12\1\u01fe\4\0"+ "\5\12\1\0\1\12\1\0\5\12\5\0\1\u01ff\2\12"+ "\1\0\21\12\24\0\4\12\4\0\5\12\1\0\1\12"+ "\1\0\5\12\5\0\3\12\1\0\7\12\1\u0200\11\12"+ "\24\0\2\12\1\u0200\1\12\4\0\5\12\1\0\1\u0201"+ "\1\0\5\12\5\0\3\12\1\0\21\12\24\0\4\12"+ "\4\0\5\12\1\0\1\12\1\0\5\12\5\0\3\12"+ "\1\0\2\12\1\u0202\16\12\24\0\1\12\1\u0202\2\12"+ "\4\0\5\12\1\0\1\u0203\1\0\5\12\5\0\3\12"+ "\1\0\21\12\24\0\4\12\4\0\5\12\1\0\1\12"+ "\1\0\5\12\5\0\3\12\1\0\4\12\1\u0204\14\12"+ "\24\0\3\12\1\u0204\4\0\5\12\1\0\1\12\1\0"+ "\5\12\5\0\3\12\1\0\10\12\1\u0205\10\12\24\0"+ "\4\12\4\0\5\12\1\0\1\u0206\1\0\5\12\5\0"+ "\3\12\1\0\21\12\24\0\4\12\4\0\5\12\1\0"+ "\1\12\1\0\5\12\5\0\3\12\1\0\2\12\1\u0207"+ "\16\12\24\0\1\12\1\u0207\2\12\4\0\5\12\1\0"+ "\1\12\1\0\5\12\5\0\1\u0208\2\12\1\0\21\12"+ "\24\0\4\12\4\0\5\12\1\0\1\12\1\0\5\12"+ "\5\0\3\12\1\0\1\u0209\20\12\24\0\4\12\4\0"+ "\5\12\1\0\1\u020a\1\0\5\12\5\0\3\12\1\0"+ "\21\12\24\0\4\12\4\0\5\12\1\0\1\12\1\0"+ "\5\12\5\0\3\12\1\0\4\12\1\u020b\14\12\24\0"+ "\3\12\1\u020b\4\0\5\12\1\0\1\12\1\0\5\12"+ "\5\0\3\12\1\0\4\12\1\u020c\14\12\24\0\3\12"+ "\1\u020c\4\0\3\12\2\u020d\1\0\1\12\1\0\5\12"+ "\5\0\3\12\1\0\21\12\24\0\4\12\4\0\5\12"+ "\1\0\1\u020e\1\0\5\12\5\0\3\12\1\0\21\12"+ "\24\0\4\12\4\0\5\12\1\0\1\12\1\0\5\12"+ "\5\0\3\12\1\0\1\12\1\u020f\17\12\24\0\4\12"+ "\7\0\2\u0210\76\0\5\12\1\0\1\12\1\0\5\12"+ "\5\0\3\12\1\0\16\12\1\u0211\2\12\24\0\4\12"+ "\4\0\5\12\1\0\1\12\1\0\4\12\1\u0212\5\0"+ "\3\12\1\0\21\12\24\0\1\u0212\3\12\4\0\5\12"+ "\1\0\1\12\1\0\5\12\5\0\3\12\1\0\4\12"+ "\1\u0213\14\12\24\0\3\12\1\u0213\4\0\3\12\2\u0214"+ "\1\0\1\12\1\0\5\12\5\0\3\12\1\0\21\12"+ "\24\0\4\12\4\0\5\12\1\0\1\u0215\1\0\5\12"+ "\5\0\3\12\1\0\21\12\24\0\4\12\4\0\5\12"+ "\1\0\1\12\1\0\5\12\5\0\3\12\1\0\4\12"+ "\1\u0216\14\12\24\0\3\12\1\u0216\4\0\5\12\1\0"+ "\1\12\1\0\5\12\5\0\1\u0217\2\12\1\0\21\12"+ "\24\0\4\12\4\0\5\12\1\0\1\12\1\0\5\12"+ "\5\0\3\12\1\0\13\12\1\u0218\5\12\24\0\4\12"+ "\4\0\5\12\1\0\1\12\1\0\5\12\5\0\3\12"+ "\1\0\1\12\1\u0219\17\12\24\0\4\12\4\0\5\12"+ "\1\0\1\12\1\0\5\12\5\0\1\u021a\2\12\1\0"+ "\21\12\24\0\4\12\4\0\5\12\1\0\1\12\1\0"+ "\5\12\5\0\3\12\1\0\10\12\1\u021b\10\12\24\0"+ "\4\12\4\0\5\12\1\0\1\12\1\0\5\12\5\0"+ "\3\12\1\0\1\12\1\u021c\17\12\24\0\4\12\4\0"+ "\5\12\1\0\1\12\1\0\5\12\5\0\3\12\1\0"+ "\2\12\1\u021d\16\12\24\0\1\12\1\u021d\2\12\36\0"+ "\1\u021e\43\0\1\u021e\4\0\5\12\1\0\1\12\1\0"+ "\5\12\5\0\3\12\1\0\6\12\1\u021f\12\12\24\0"+ "\4\12\4\0\5\12\1\0\1\12\1\0\5\12\5\0"+ "\3\12\1\0\1\12\1\u0220\17\12\24\0\4\12\4\0"+ "\5\12\1\0\1\12\1\0\5\12\5\0\3\12\1\0"+ "\1\12\1\u0221\17\12\24\0\4\12\4\0\5\12\1\0"+ "\1\12\1\0\5\12\5\0\3\12\1\0\11\12\1\u0222"+ "\7\12\24\0\4\12\4\0\5\12\1\0\1\12\1\0"+ "\5\12\5\0\3\12\1\0\12\12\1\u0223\6\12\24\0"+ "\4\12\4\0\5\12\1\0\1\12\1\0\5\12\5\0"+ "\3\12\1\0\2\12\1\u0224\16\12\24\0\1\12\1\u0224"+ "\2\12\7\0\2\u0225\76\0\5\12\1\0\1\12\1\0"+ "\5\12\5\0\3\12\1\0\2\12\1\u0226\16\12\24\0"+ "\1\12\1\u0226\2\12\4\0\5\12\1\0\1\12\1\0"+ "\5\12\5\0\3\12\1\0\7\12\1\u0227\11\12\24\0"+ "\2\12\1\u0227\1\12\4\0\5\12\1\0\1\12\1\0"+ "\5\12\5\0\3\12\1\0\2\12\1\u0228\16\12\24\0"+ "\1\12\1\u0228\2\12\4\0\5\12\1\0\1\12\1\0"+ "\5\12\5\0\3\12\1\0\12\12\1\u0229\6\12\24\0"+ "\4\12\4\0\5\12\1\0\1\u022a\1\0\5\12\5\0"+ "\3\12\1\0\21\12\24\0\4\12\33\0\1\u022b\53\0"+ "\5\12\1\0\1\12\1\0\5\12\5\0\3\12\1\0"+ "\3\12\1\u022c\15\12\24\0\4\12\4\0\5\12\1\0"+ "\1\12\1\0\5\12\5\0\3\12\1\0\5\12\1\u022d"+ "\13\12\24\0\4\12\34\0\1\u022e\43\0\1\u022e\6\0"+ "\5\12\1\0\1\12\1\0\5\12\5\0\2\12\1\u022f"+ "\1\0\21\12\24\0\4\12\4\0\5\12\1\0\1\12"+ "\1\0\5\12\5\0\3\12\1\0\4\12\1\u0230\14\12"+ "\24\0\3\12\1\u0230\1\0\3\u022e\25\0\1\u0231\55\0"+ "\5\12\1\0\1\u0232\1\0\5\12\5\0\3\12\1\0"+ "\21\12\24\0\4\12"; private static int [] zzUnpackTrans() { int [] result = new int[27135]; 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 = "\3\0\1\1\2\0\1\11\16\1\1\11\4\1\1\11"+ "\16\1\2\11\1\1\2\11\10\1\5\11\1\1\1\11"+ "\1\1\1\11\1\1\1\11\1\1\1\11\3\1\3\11"+ "\1\1\1\11\4\1\1\0\2\11\1\1\1\0\2\11"+ "\7\1\1\11\5\1\1\0\3\1\3\11\1\1\1\11"+ "\1\0\57\1\1\11\1\1\6\11\1\1\1\11\2\1"+ "\13\11\1\1\2\11\1\1\1\0\25\1\1\11\1\1"+ "\1\11\1\0\75\1\3\11\1\1\1\11\23\1\1\11"+ "\2\1\1\0\64\1\1\11\21\1\1\0\1\11\1\0"+ "\66\1\1\0\52\1\1\0\43\1\1\0\26\1\1\0"+ "\15\1\1\0\6\1\1\0\5\1\1\0\2\1\1\0"+ "\2\1\1\11\1\1"; private static int [] zzUnpackAttribute() { int [] result = new int[562]; 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 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; /** denotes if the user-EOF-code has already been executed */ private boolean zzEOFDone; /* user code: */ private Symbol symbol(int type) { return new Symbol(type, yychar, yychar + yylength()); } private Symbol symbol(int type, int offset, int length) { return new Symbol(type, offset, offset + length); } private Symbol symbol(int type, Object value) { return new Symbol(type, yychar, yychar + yylength(), value); } private Symbol symbol(int type, Object value, int offset, int length) { return new Symbol(type, offset, offset + length, value); } private Symbol sqlStatement() { rawString.append("}"); if(openingBraceOffset != "#sql{".length()) { lexerErrors.add(new SyntaxError(2206, startOffset + "#sql".length(), startOffset + openingBraceOffset - 1, SyntaxError.WARNING)); } return symbol(NodeTypes.SQLSTMTLIT, new InlineSQLStatement(rawString.toString(), openingBraceOffset, startOffset, startOffset+rawString.length()), startOffset, rawString.length()); } private Symbol sqlCondition() { rawString.append("}"); if(openingBraceOffset != "#sqlcondition{".length()) { lexerErrors.add(new SyntaxError(2207, startOffset + "#sqlcondition".length(), startOffset + openingBraceOffset - 1, SyntaxError.WARNING)); } return symbol(NodeTypes.SQLCONDITION, new InlineSQLStatement(rawString.toString(), openingBraceOffset, startOffset, startOffset+rawString.length()), startOffset, rawString.length()); } private Symbol byteslit() { String text = yytext(); return symbol(NodeTypes.BYTESLIT, new BytesLiteral(text, text.substring(2), yychar, yychar + yylength()), yychar, yylength()); } private Symbol bigintlit() { String text = yytext(); return symbol(NodeTypes.BIGINTLIT, new IntegerLiteral(LiteralExpression.BIGINT_LITERAL, text.substring(0, text.length() - 1), yychar, yychar + yylength()), yychar, yylength()); } private Symbol smallintlit() { String text = yytext(); return symbol(NodeTypes.SMALLINTLIT, new IntegerLiteral(LiteralExpression.SMALLINT_LITERAL, text.substring(0, text.length() - 1), yychar, yychar + yylength()), yychar, yylength()); } private Symbol floatlit() { String text = yytext(); if (text.endsWith("F")) { return symbol(NodeTypes.FLOATLIT, new FloatLiteral(LiteralExpression.FLOAT_LITERAL, text.substring(0, text.length() - 1), yychar, yychar + yylength()), yychar, yylength()); } return symbol(NodeTypes.FLOATLIT, new FloatLiteral(LiteralExpression.FLOAT_LITERAL, text, yychar, yychar + yylength()), yychar, yylength()); } private Symbol smallfloatlit() { String text = yytext(); return symbol(NodeTypes.SMALLFLOATLIT, new FloatLiteral(LiteralExpression.SMALLFLOAT_LITERAL, text.substring(0, text.length() - 1), yychar, yychar + yylength()), yychar, yylength()); } private static final int LITERALTYPE_STRING = 0; private Symbol string() { switch(stringLiteralType) { case LITERALTYPE_STRING: return symbol(NodeTypes.STRING, new StringLiteral(rawString.toString(), stringValue.toString(), false, startOffset, startOffset+rawString.length()), startOffset, rawString.length()); default: throw new RuntimeException("Should not happen."); } } public List getLexerErrors() { return lexerErrors; } public void reset(Reader reader) { lexerErrors = new ArrayList(); yyreset(reader); } protected int stringLiteralType; protected StringBuffer rawString = new StringBuffer(); // The raw string of delimited tokens (i.e. for string literals, including the ") protected StringBuffer stringValue = new StringBuffer(); // The canonical string of delimiated tokens (i.e. for string literals, excluding the ") protected int startOffset; // The start offset of delimited tokens protected int openingBraceOffset; // The offset of the opening brace for inline SQL and inline SQL Condition tokens protected boolean isSQLCondition; protected List lexerErrors = new ArrayList(); protected boolean returnLineBreaks; protected boolean returnLineComments; protected boolean returnBlockComments; protected List lineBreaks = new ArrayList(); protected List lineComments = new ArrayList(); protected List blockComments = new ArrayList(); /** * 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. */ public Lexer(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. */ public Lexer(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 < 1814) { 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; 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) { zzEndRead+= numRead; return false; } // unlikely but not impossible: read 0 characters, but not at end of stream if (numRead == 0) { int c = zzReader.read(); if (c == -1) { return true; } else { zzBuffer[zzEndRead++] = (char) c; return false; } } // numRead < 0 return true; } /** * 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; zzEOFDone = false; zzEndRead = zzStartRead = 0; zzCurrentPos = zzMarkedPos = 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; } /** * Contains user EOF-code, which will be executed exactly once, * when the end of file is reached */ private void zzDoEOF() throws java.io.IOException { if (!zzEOFDone) { zzEOFDone = true; yyclose(); } } /** * 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 java_cup.runtime.Symbol next_token() throws java.io.IOException { 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; while (true) { zzMarkedPosL = zzMarkedPos; yychar+= zzMarkedPosL-zzStartRead; zzAction = -1; zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL; zzState = ZZ_LEXSTATE[zzLexicalState]; 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; boolean eof = zzRefill(); // get translated positions and possibly new buffer zzCurrentPosL = zzCurrentPos; zzMarkedPosL = zzMarkedPos; zzBufferL = zzBuffer; zzEndReadL = zzEndRead; 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 & 1) == 1 ) { zzAction = zzState; zzMarkedPosL = zzCurrentPosL; if ( (zzAttributes & 8) == 8 ) break zzForAction; } } } // store back cached position zzMarkedPos = zzMarkedPosL; switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) { case 165: { return symbol(NodeTypes.PROGRAM); } case 192: break; case 103: { return symbol(NodeTypes.BOOLEANLIT, org.eclipse.edt.compiler.core.Boolean.YES); } case 193: break; case 1: { rawString.append(yytext()); } case 194: break; case 71: { return symbol(NodeTypes.GE); } case 195: break; case 56: { return symbol(NodeTypes.TIMESTIMES); } case 196: break; case 60: { return symbol(NodeTypes.BOOLEANLIT, org.eclipse.edt.compiler.core.Boolean.NO); } case 197: break; case 108: { return symbol(NodeTypes.RIGHTSHIFTLOGICAL); } case 198: break; case 187: { return symbol(NodeTypes.ONEXCEPTION); } case 199: break; case 50: { return symbol(NodeTypes.PLUSEQ); } case 200: break; case 172: { return symbol(NodeTypes.ABSOLUTE); } case 201: break; case 10: { return symbol(NodeTypes.MINUS); } case 202: break; case 106: { return symbol(NodeTypes.LEFTSHIFTEQ); } case 203: break; case 124: { return symbol(NodeTypes.GOTO); } case 204: break; case 155: { return symbol(NodeTypes.FOREACH); } case 205: break; case 111: { return symbol(NodeTypes.EXIT); } case 206: break; case 30: { return symbol(NodeTypes.AT); } case 207: break; case 46: { return smallfloatlit(); } case 208: break; case 145: { return symbol(NodeTypes.IMPORT); } case 209: break; case 69: { return symbol(NodeTypes.LE); } case 210: break; case 45: { return floatlit(); } case 211: break; case 118: { return symbol(NodeTypes.OPEN); } case 212: break; case 164: { return symbol(NodeTypes.PREPARE); } case 213: break; case 101: { return symbol(NodeTypes.URL); } case 214: break; case 179: { return symbol(NodeTypes.OTHERWISE); } case 215: break; case 107: { return symbol(NodeTypes.RIGHTSHIFTARITHMETICEQ); } case 216: break; case 59: { return symbol(NodeTypes.OR); } case 217: break; case 131: { return symbol(NodeTypes.FIRST); } case 218: break; case 123: { return symbol(NodeTypes.MOVE); } case 219: break; case 182: { return symbol(NodeTypes.RETURNING); } case 220: break; case 139: { return symbol(NodeTypes.THROW); } case 221: break; case 76: { rawString.append("\\f"); stringValue.append('\f'); } case 222: break; case 142: { return symbol(NodeTypes.WHILE); } case 223: break; case 104: { return symbol(NodeTypes.GET); } case 224: break; case 75: { return symbol(NodeTypes.MODULOEQ); } case 225: break; case 53: { yybegin(BLOCK_COMMENT); startOffset = yychar; } case 226: break; case 7: { return symbol(NodeTypes.DOT); } case 227: break; case 180: { return symbol(NodeTypes.DECREMENT); } case 228: break; case 125: { return symbol(NodeTypes.HOLD); } case 229: break; case 102: { return symbol(NodeTypes.REF); } case 230: break; case 15: { return symbol(NodeTypes.RPAREN); } case 231: break; case 168: { return symbol(NodeTypes.FUNCTION); } case 232: break; case 58: { return symbol(NodeTypes.OF); } case 233: break; case 52: { Symbol symbol = symbol(NodeTypes.LINE_COMMENT); if(returnLineComments) lineComments.add(symbol); return symbol; } case 234: break; case 189: { return symbol(NodeTypes.WITHV60COMPAT); } case 235: break; case 169: { return symbol(NodeTypes.CONTINUE); } case 236: break; case 137: { return symbol(NodeTypes.CLASS); } case 237: break; case 112: { return symbol(NodeTypes.ELSE); } case 238: break; case 3: { Symbol symbol = symbol(NodeTypes.LINEBREAKS); if(returnLineBreaks) lineBreaks.add(symbol); return symbol; } case 239: break; case 167: { return symbol(NodeTypes.INPARENT); } case 240: break; case 39: { yybegin(SQL); rawString.append(yytext()); } case 241: break; case 80: { rawString.append("\\b"); stringValue.append('\b'); } case 242: break; case 25: { return symbol(NodeTypes.QUESTION); } case 243: break; case 5: { return symbol(NodeTypes.ID, yytext()); } case 244: break; case 84: { yybegin(YYINITIAL); Symbol symbol = symbol(NodeTypes.BLOCK_COMMENT, startOffset, yychar + 2 - startOffset); if(returnBlockComments) blockComments.add(symbol); return symbol; } case 245: break; case 105: { return symbol(NodeTypes.CONCATEQ); } case 246: break; case 87: { return symbol(NodeTypes.ISA); } case 247: break; case 21: { return symbol(NodeTypes.BITAND); } case 248: break; case 48: { return symbol(NodeTypes.IS); } case 249: break; case 77: { rawString.append("\\\""); stringValue.append('\"'); } case 250: break; case 37: { yybegin(YYINITIAL); return isSQLCondition ? sqlCondition() : sqlStatement(); } case 251: break; case 28: { return symbol(NodeTypes.RBRACKET); } case 252: break; case 160: { return symbol(NodeTypes.REPLACE); } case 253: break; case 158: { return symbol(NodeTypes.CURRENT); } case 254: break; case 154: { return symbol(NodeTypes.EXTENDS); } case 255: break; case 175: { return symbol(NodeTypes.PREVIOUS); } case 256: break; case 96: { return symbol(NodeTypes.NOT); } case 257: break; case 148: { return symbol(NodeTypes.STATIC); } case 258: break; case 92: { return symbol(NodeTypes.TIMESTIMESEQ); } case 259: break; case 94: { return symbol(NodeTypes.OUT); } case 260: break; case 85: { rawString.append("\"\""); } case 261: break; case 152: { return symbol(NodeTypes.RETURN); } case 262: break; case 24: { return symbol(NodeTypes.GT); } case 263: break; case 162: { return symbol(NodeTypes.PACKAGE); } case 264: break; case 176: { return symbol(NodeTypes.INTERFACE); } case 265: break; case 8: { return symbol(NodeTypes.PLUS); } case 266: break; case 14: { return symbol(NodeTypes.LPAREN); } case 267: break; case 64: { return symbol(NodeTypes.CONCAT); } case 268: break; case 191: { return symbol(NodeTypes.LANGUAGEBUNDLE); } case 269: break; case 128: { return symbol(NodeTypes.WHEN); } case 270: break; case 134: { return symbol(NodeTypes.SUPER); } case 271: break; case 136: { return symbol(NodeTypes.CLOSE); } case 272: break; case 98: { return symbol(NodeTypes.ALL); } case 273: break; case 31: { return symbol(NodeTypes.NEGATE); } case 274: break; case 126: { return symbol(NodeTypes.WITH); } case 275: break; case 32: { rawString.append(yytext()); stringValue.append(yytext()); } case 276: break; case 23: { return symbol(NodeTypes.LT); } case 277: break; case 140: { return symbol(NodeTypes.USING); } case 278: break; case 183: { return symbol(NodeTypes.IMPLEMENTS); } case 279: break; case 65: { return symbol(NodeTypes.EQ); } case 280: break; case 157: { return symbol(NodeTypes.LIBRARY); } case 281: break; case 16: { return symbol(NodeTypes.BANG); } case 282: break; case 40: { yybegin(SQL); rawString.append('\"'); } case 283: break; case 55: { return symbol(NodeTypes.MINUSEQ); } case 284: break; case 188: { return symbol(NodeTypes.EXTERNALTYPE); } case 285: break; case 17: { return symbol(NodeTypes.COMMA); } case 286: break; case 6: { return symbol(NodeTypes.INTEGER, yytext()); } case 287: break; case 18: { return symbol(NodeTypes.SEMI); } case 288: break; case 135: { return symbol(NodeTypes.LABEL); } case 289: break; case 63: { return symbol(NodeTypes.NE); } case 290: break; case 161: { return symbol(NodeTypes.RUNUNIT); } case 291: break; case 115: { return symbol(NodeTypes.LAST); } case 292: break; case 150: { return symbol(NodeTypes.UPDATE); } case 293: break; case 91: { return symbol(NodeTypes.XOR); } case 294: break; case 29: { return symbol(NodeTypes.RCURLY); } case 295: break; case 54: { return symbol(NodeTypes.DIVEQ); } case 296: break; case 44: { return symbol(NodeTypes.DECIMALLIT, yytext()); } case 297: break; case 41: { yybegin(SQL); rawString.append('\''); } case 298: break; case 68: { return symbol(NodeTypes.BITOREQ); } case 299: break; case 143: { return symbol(NodeTypes.WHERE); } case 300: break; case 11: { yybegin(STRING); stringLiteralType = LITERALTYPE_STRING; rawString.setLength(0); rawString.append('\"'); stringValue.setLength(0); startOffset = yychar; } case 301: break; case 62: { return symbol(NodeTypes.AS); } case 302: break; case 149: { return symbol(NodeTypes.DELETE); } case 303: break; case 166: { return symbol(NodeTypes.HANDLER); } case 304: break; case 19: { return symbol(NodeTypes.COLON); } case 305: break; case 147: { return symbol(NodeTypes.SCROLL); } case 306: break; case 144: { return symbol(NodeTypes.INSERT); } case 307: break; case 133: { return symbol(NodeTypes.STACK); } case 308: break; case 184: { return symbol(NodeTypes.BYPOSITION); } case 309: break; case 89: { return symbol(NodeTypes.FOR); } case 310: break; case 146: { return symbol(NodeTypes.BYNAME); } case 311: break; case 36: { yybegin(SQLDELIMITEDID); rawString.append('\"'); } case 312: break; case 130: { return symbol(NodeTypes.INOUT); } case 313: break; case 95: { return symbol(NodeTypes.NEW); } case 314: break; case 86: { rawString.append("\'\'"); } case 315: break; case 132: { yybegin(SQL); isSQLCondition = false; rawString.setLength(0); rawString.append(yytext()); startOffset = yychar; openingBraceOffset = yylength(); } case 316: break; case 177: { return symbol(NodeTypes.FORUPDATE); } case 317: break; case 79: { rawString.append("\\\'"); stringValue.append('\''); } case 318: break; case 12: { return symbol(NodeTypes.TIMES); } case 319: break; case 20: { return symbol(NodeTypes.ASSIGN); } case 320: break; case 141: { return symbol(NodeTypes.GROUP); } case 321: break; case 26: { return symbol(NodeTypes.MODULO); } case 322: break; case 34: { yybegin(YYINITIAL); rawString.append('\"'); return string(); } case 323: break; case 127: { return symbol(NodeTypes.WRAP); } case 324: break; case 57: { return symbol(NodeTypes.TIMESEQ); } case 325: break; case 61: { return symbol(NodeTypes.TO); } case 326: break; case 174: { return symbol(NodeTypes.RELATIVE); } case 327: break; case 51: { return symbol(NodeTypes.BY); } case 328: break; case 13: { return symbol(NodeTypes.LCURLY); } case 329: break; case 73: { return symbol(NodeTypes.NULLCONCAT); } case 330: break; case 117: { return symbol(NodeTypes.CALL); } case 331: break; case 151: { return symbol(NodeTypes.RECORD); } case 332: break; case 97: { return symbol(NodeTypes.TRY); } case 333: break; case 153: { return symbol(NodeTypes.EXECUTE); } case 334: break; case 35: { rawString.append("\\"); stringValue.append('\\'); lexerErrors.add(new SyntaxError(2205, yychar, yychar+2)); } case 335: break; case 186: { return symbol(NodeTypes.CONSTRUCTOR); } case 336: break; case 93: { return symbol(NodeTypes.SET); } case 337: break; case 78: { rawString.append("\\\\"); stringValue.append('\\'); } case 338: break; case 27: { return symbol(NodeTypes.LBRACKET); } case 339: break; case 99: { return symbol(NodeTypes.ADD); } case 340: break; case 2: { return symbol(NodeTypes.error); } case 341: break; case 173: { return symbol(NodeTypes.ABSTRACT); } case 342: break; case 114: { return symbol(NodeTypes.XOREQ); } case 343: break; case 171: { return symbol(NodeTypes.DELEGATE); } case 344: break; case 83: { rawString.append("\\t"); stringValue.append('\t'); } case 345: break; case 109: { return symbol(NodeTypes.NULLCONCATEQ); } case 346: break; case 88: { return symbol(NodeTypes.END); } case 347: break; case 121: { return symbol(NodeTypes.TYPE); } case 348: break; case 43: { return smallintlit(); } case 349: break; case 22: { return symbol(NodeTypes.BITOR); } case 350: break; case 190: { yybegin(SQL); isSQLCondition = true; rawString.setLength(0); rawString.append(yytext()); startOffset = yychar; openingBraceOffset = yylength(); } case 351: break; case 116: { return symbol(NodeTypes.CASE); } case 352: break; case 110: { return symbol(NodeTypes.INTO); } case 353: break; case 9: { return symbol(NodeTypes.DIV); } case 354: break; case 138: { return symbol(NodeTypes.CONST); } case 355: break; case 49: { return symbol(NodeTypes.IN); } case 356: break; case 72: { return symbol(NodeTypes.RIGHTSHIFTARITHMETIC); } case 357: break; case 178: { return symbol(NodeTypes.SINGLEROW); } case 358: break; case 100: { return symbol(NodeTypes.USE); } case 359: break; case 113: { return symbol(NodeTypes.FROM); } case 360: break; case 33: { yybegin(YYINITIAL); rawString.append(yytext()); lexerErrors.add(new SyntaxError(2200, startOffset, yychar)); return string(); } case 361: break; case 42: { return bigintlit(); } case 362: break; case 90: { return byteslit(); } case 363: break; case 82: { rawString.append("\\r"); stringValue.append('\r'); } case 364: break; case 70: { return symbol(NodeTypes.LEFTSHIFT); } case 365: break; case 74: { return symbol(NodeTypes.QUESTIONQUESTION); } case 366: break; case 47: { return symbol(NodeTypes.IF); } case 367: break; case 156: { return symbol(NodeTypes.SERVICE); } case 368: break; case 67: { return symbol(NodeTypes.AND); } case 369: break; case 181: { return symbol(NodeTypes.USINGKEYS); } case 370: break; case 163: { return symbol(NodeTypes.PRIVATE); } case 371: break; case 81: { rawString.append("\\n"); stringValue.append('\n'); } case 372: break; case 120: { return symbol(NodeTypes.NULL); } case 373: break; case 170: { return symbol(NodeTypes.NOCURSOR); } case 374: break; case 122: { return symbol(NodeTypes.THIS); } case 375: break; case 129: { return symbol(NodeTypes.RIGHTSHIFTLOGICALEQ); } case 376: break; case 38: { yybegin(SQLSTRING); rawString.append('\''); } case 377: break; case 66: { return symbol(NodeTypes.BITANDEQ); } case 378: break; case 185: { return symbol(NodeTypes.ENUMERATION); } case 379: break; case 159: { return symbol(NodeTypes.RETURNS); } case 380: break; case 4: { } case 381: break; case 119: { return symbol(NodeTypes.NEXT); } case 382: break; default: if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { zzAtEOF = true; zzDoEOF(); switch (zzLexicalState) { case STRING: { yybegin(YYINITIAL); lexerErrors.add(new SyntaxError(2200, startOffset, yychar)); return string(); } case 563: break; case SQLDELIMITEDID: { yybegin(SQL); } case 564: break; case BLOCK_COMMENT: { yybegin(YYINITIAL); lexerErrors.add(new SyntaxError(2201, startOffset, startOffset + 2)); Symbol symbol = symbol(NodeTypes.BLOCK_COMMENT, startOffset, yychar); if(returnBlockComments) blockComments.add(symbol); return symbol; } case 565: break; case SQL: { yybegin(YYINITIAL); lexerErrors.add(new SyntaxError(isSQLCondition ? 2203 : 2202, startOffset, startOffset + openingBraceOffset)); return isSQLCondition ? sqlCondition() : sqlStatement(); } case 566: break; case SQLSTRING: { yybegin(SQL); } case 567: break; default: { return new java_cup.runtime.Symbol(NodeTypes.EOF, yychar, yychar); } } } else { zzScanError(ZZ_NO_MATCH); } } } } }