diff --git a/trunk/src/com/jpexs/decompiler/flash/action/parser/script/ActionScriptLexer.java b/trunk/src/com/jpexs/decompiler/flash/action/parser/script/ActionScriptLexer.java
index c5ec9cd48..c57eca282 100644
--- a/trunk/src/com/jpexs/decompiler/flash/action/parser/script/ActionScriptLexer.java
+++ b/trunk/src/com/jpexs/decompiler/flash/action/parser/script/ActionScriptLexer.java
@@ -1,4 +1,4 @@
-/* The following code was generated by JFlex 1.4.3 on 7.4.13 15:38 */
+/* The following code was generated by JFlex 1.4.3 on 14.4.13 9:35 */
/*
* Copyright (C) 2013 JPEXS
@@ -17,732 +17,729 @@
* along with this program. If not, see .
*/
package com.jpexs.decompiler.flash.action.parser.script;
-
import com.jpexs.decompiler.flash.action.parser.ParseException;
import java.util.Stack;
+
/**
- * This class is a scanner generated by
- * JFlex 1.4.3 on 7.4.13 15:38 from the
- * specification file
+ * This class is a scanner generated by
+ * JFlex 1.4.3
+ * on 14.4.13 9:35 from the specification file
* D:/Dokumenty/Programovani/JavaSE/FFDec/trunk/src/com/jpexs/decompiler/flash/action/parser/script/actionscript.flex
*/
public final class ActionScriptLexer {
- /**
- * 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 XML = 8;
- public static final int XMLSTARTTAG = 6;
- public static final int STRING = 2;
- public static final int YYINITIAL = 0;
- public static final int CHARLITERAL = 4;
- /**
- * 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
- };
- /**
- * Translates characters to character classes
- */
- private static final String ZZ_CMAP_PACKED =
- "\11\7\1\3\1\2\1\0\1\3\1\1\16\7\4\0\1\14\1\70"
- + "\1\16\1\0\1\6\1\77\1\73\1\30\1\60\1\61\1\5\1\75"
- + "\1\67\1\26\1\11\1\4\1\17\3\23\4\24\2\20\1\10\1\66"
- + "\1\12\1\15\1\13\1\72\1\100\4\22\1\25\1\22\21\6\1\21"
- + "\2\6\1\64\1\27\1\65\1\76\1\6\1\0\1\34\1\31\1\36"
- + "\1\45\1\33\1\46\1\57\1\51\1\43\1\6\1\35\1\47\1\54"
- + "\1\41\1\40\1\52\1\6\1\32\1\37\1\42\1\44\1\55\1\50"
- + "\1\56\1\53\1\6\1\62\1\74\1\63\1\71\41\7\2\0\4\6"
- + "\4\0\1\6\2\0\1\7\7\0\1\6\4\0\1\6\5\0\27\6"
- + "\1\0\37\6\1\0\u01ca\6\4\0\14\6\16\0\5\6\7\0\1\6"
- + "\1\0\1\6\21\0\160\7\5\6\1\0\2\6\2\0\4\6\10\0"
- + "\1\6\1\0\3\6\1\0\1\6\1\0\24\6\1\0\123\6\1\0"
- + "\213\6\1\0\5\7\2\0\236\6\11\0\46\6\2\0\1\6\7\0"
- + "\47\6\11\0\55\7\1\0\1\7\1\0\2\7\1\0\2\7\1\0"
- + "\1\7\10\0\33\6\5\0\3\6\15\0\4\7\7\0\1\6\4\0"
- + "\13\7\5\0\53\6\37\7\4\0\2\6\1\7\143\6\1\0\1\6"
- + "\10\7\1\0\6\7\2\6\2\7\1\0\4\7\2\6\12\7\3\6"
- + "\2\0\1\6\17\0\1\7\1\6\1\7\36\6\33\7\2\0\131\6"
- + "\13\7\1\6\16\0\12\7\41\6\11\7\2\6\4\0\1\6\5\0"
- + "\26\6\4\7\1\6\11\7\1\6\3\7\1\6\5\7\22\0\31\6"
- + "\3\7\244\0\4\7\66\6\3\7\1\6\22\7\1\6\7\7\12\6"
- + "\2\7\2\0\12\7\1\0\7\6\1\0\7\6\1\0\3\7\1\0"
- + "\10\6\2\0\2\6\2\0\26\6\1\0\7\6\1\0\1\6\3\0"
- + "\4\6\2\0\1\7\1\6\7\7\2\0\2\7\2\0\3\7\1\6"
- + "\10\0\1\7\4\0\2\6\1\0\3\6\2\7\2\0\12\7\4\6"
- + "\7\0\1\6\5\0\3\7\1\0\6\6\4\0\2\6\2\0\26\6"
- + "\1\0\7\6\1\0\2\6\1\0\2\6\1\0\2\6\2\0\1\7"
- + "\1\0\5\7\4\0\2\7\2\0\3\7\3\0\1\7\7\0\4\6"
- + "\1\0\1\6\7\0\14\7\3\6\1\7\13\0\3\7\1\0\11\6"
- + "\1\0\3\6\1\0\26\6\1\0\7\6\1\0\2\6\1\0\5\6"
- + "\2\0\1\7\1\6\10\7\1\0\3\7\1\0\3\7\2\0\1\6"
- + "\17\0\2\6\2\7\2\0\12\7\1\0\1\6\17\0\3\7\1\0"
- + "\10\6\2\0\2\6\2\0\26\6\1\0\7\6\1\0\2\6\1\0"
- + "\5\6\2\0\1\7\1\6\7\7\2\0\2\7\2\0\3\7\10\0"
- + "\2\7\4\0\2\6\1\0\3\6\2\7\2\0\12\7\1\0\1\6"
- + "\20\0\1\7\1\6\1\0\6\6\3\0\3\6\1\0\4\6\3\0"
- + "\2\6\1\0\1\6\1\0\2\6\3\0\2\6\3\0\3\6\3\0"
- + "\14\6\4\0\5\7\3\0\3\7\1\0\4\7\2\0\1\6\6\0"
- + "\1\7\16\0\12\7\11\0\1\6\7\0\3\7\1\0\10\6\1\0"
- + "\3\6\1\0\27\6\1\0\12\6\1\0\5\6\3\0\1\6\7\7"
- + "\1\0\3\7\1\0\4\7\7\0\2\7\1\0\2\6\6\0\2\6"
- + "\2\7\2\0\12\7\22\0\2\7\1\0\10\6\1\0\3\6\1\0"
- + "\27\6\1\0\12\6\1\0\5\6\2\0\1\7\1\6\7\7\1\0"
- + "\3\7\1\0\4\7\7\0\2\7\7\0\1\6\1\0\2\6\2\7"
- + "\2\0\12\7\1\0\2\6\17\0\2\7\1\0\10\6\1\0\3\6"
- + "\1\0\51\6\2\0\1\6\7\7\1\0\3\7\1\0\4\7\1\6"
- + "\10\0\1\7\10\0\2\6\2\7\2\0\12\7\12\0\6\6\2\0"
- + "\2\7\1\0\22\6\3\0\30\6\1\0\11\6\1\0\1\6\2\0"
- + "\7\6\3\0\1\7\4\0\6\7\1\0\1\7\1\0\10\7\22\0"
- + "\2\7\15\0\60\6\1\7\2\6\7\7\4\0\10\6\10\7\1\0"
- + "\12\7\47\0\2\6\1\0\1\6\2\0\2\6\1\0\1\6\2\0"
- + "\1\6\6\0\4\6\1\0\7\6\1\0\3\6\1\0\1\6\1\0"
- + "\1\6\2\0\2\6\1\0\4\6\1\7\2\6\6\7\1\0\2\7"
- + "\1\6\2\0\5\6\1\0\1\6\1\0\6\7\2\0\12\7\2\0"
- + "\2\6\42\0\1\6\27\0\2\7\6\0\12\7\13\0\1\7\1\0"
- + "\1\7\1\0\1\7\4\0\2\7\10\6\1\0\44\6\4\0\24\7"
- + "\1\0\2\7\5\6\13\7\1\0\44\7\11\0\1\7\71\0\53\6"
- + "\24\7\1\6\12\7\6\0\6\6\4\7\4\6\3\7\1\6\3\7"
- + "\2\6\7\7\3\6\4\7\15\6\14\7\1\6\17\7\2\0\46\6"
- + "\12\0\53\6\1\0\1\6\3\0\u0149\6\1\0\4\6\2\0\7\6"
- + "\1\0\1\6\1\0\4\6\2\0\51\6\1\0\4\6\2\0\41\6"
- + "\1\0\4\6\2\0\7\6\1\0\1\6\1\0\4\6\2\0\17\6"
- + "\1\0\71\6\1\0\4\6\2\0\103\6\2\0\3\7\40\0\20\6"
- + "\20\0\125\6\14\0\u026c\6\2\0\21\6\1\0\32\6\5\0\113\6"
- + "\3\0\3\6\17\0\15\6\1\0\4\6\3\7\13\0\22\6\3\7"
- + "\13\0\22\6\2\7\14\0\15\6\1\0\3\6\1\0\2\7\14\0"
- + "\64\6\40\7\3\0\1\6\3\0\2\6\1\7\2\0\12\7\41\0"
- + "\3\7\2\0\12\7\6\0\130\6\10\0\51\6\1\7\1\6\5\0"
- + "\106\6\12\0\35\6\3\0\14\7\4\0\14\7\12\0\12\7\36\6"
- + "\2\0\5\6\13\0\54\6\4\0\21\7\7\6\2\7\6\0\12\7"
- + "\46\0\27\6\5\7\4\0\65\6\12\7\1\0\35\7\2\0\13\7"
- + "\6\0\12\7\15\0\1\6\130\0\5\7\57\6\21\7\7\6\4\0"
- + "\12\7\21\0\11\7\14\0\3\7\36\6\12\7\3\0\2\6\12\7"
- + "\6\0\46\6\16\7\14\0\44\6\24\7\10\0\12\7\3\0\3\6"
- + "\12\7\44\6\122\0\3\7\1\0\25\7\4\6\1\7\4\6\1\7"
- + "\15\0\300\6\47\7\25\0\4\7\u0116\6\2\0\6\6\2\0\46\6"
- + "\2\0\6\6\2\0\10\6\1\0\1\6\1\0\1\6\1\0\1\6"
- + "\1\0\37\6\2\0\65\6\1\0\7\6\1\0\1\6\3\0\3\6"
- + "\1\0\7\6\3\0\4\6\2\0\6\6\4\0\15\6\5\0\3\6"
- + "\1\0\7\6\16\0\5\7\32\0\5\7\20\0\2\6\23\0\1\6"
- + "\13\0\5\7\5\0\6\7\1\0\1\6\15\0\1\6\20\0\15\6"
- + "\3\0\32\6\26\0\15\7\4\0\1\7\3\0\14\7\21\0\1\6"
- + "\4\0\1\6\2\0\12\6\1\0\1\6\3\0\5\6\6\0\1\6"
- + "\1\0\1\6\1\0\1\6\1\0\4\6\1\0\13\6\2\0\4\6"
- + "\5\0\5\6\4\0\1\6\21\0\51\6\u0a77\0\57\6\1\0\57\6"
- + "\1\0\205\6\6\0\4\6\3\7\16\0\46\6\12\0\66\6\11\0"
- + "\1\6\17\0\1\7\27\6\11\0\7\6\1\0\7\6\1\0\7\6"
- + "\1\0\7\6\1\0\7\6\1\0\7\6\1\0\7\6\1\0\7\6"
- + "\1\0\40\7\57\0\1\6\u01d5\0\3\6\31\0\11\6\6\7\1\0"
- + "\5\6\2\0\5\6\4\0\126\6\2\0\2\7\2\0\3\6\1\0"
- + "\132\6\1\0\4\6\5\0\51\6\3\0\136\6\21\0\33\6\65\0"
- + "\20\6\u0200\0\u19b6\6\112\0\u51cc\6\64\0\u048d\6\103\0\56\6\2\0"
- + "\u010d\6\3\0\20\6\12\7\2\6\24\0\57\6\1\7\14\0\2\7"
- + "\1\0\31\6\10\0\120\6\2\7\45\0\11\6\2\0\147\6\2\0"
- + "\4\6\1\0\2\6\16\0\12\6\120\0\10\6\1\7\3\6\1\7"
- + "\4\6\1\7\27\6\5\7\20\0\1\6\7\0\64\6\14\0\2\7"
- + "\62\6\21\7\13\0\12\7\6\0\22\7\6\6\3\0\1\6\4\0"
- + "\12\7\34\6\10\7\2\0\27\6\15\7\14\0\35\6\3\0\4\7"
- + "\57\6\16\7\16\0\1\6\12\7\46\0\51\6\16\7\11\0\3\6"
- + "\1\7\10\6\2\7\2\0\12\7\6\0\27\6\3\0\1\6\1\7"
- + "\4\0\60\6\1\7\1\6\3\7\2\6\2\7\5\6\2\7\1\6"
- + "\1\7\1\6\30\0\3\6\43\0\6\6\2\0\6\6\2\0\6\6"
- + "\11\0\7\6\1\0\7\6\221\0\43\6\10\7\1\0\2\7\2\0"
- + "\12\7\6\0\u2ba4\6\14\0\27\6\4\0\61\6\u2104\0\u012e\6\2\0"
- + "\76\6\2\0\152\6\46\0\7\6\14\0\5\6\5\0\1\6\1\7"
- + "\12\6\1\0\15\6\1\0\5\6\1\0\1\6\1\0\2\6\1\0"
- + "\2\6\1\0\154\6\41\0\u016b\6\22\0\100\6\2\0\66\6\50\0"
- + "\15\6\3\0\20\7\20\0\7\7\14\0\2\6\30\0\3\6\31\0"
- + "\1\6\6\0\5\6\1\0\207\6\2\0\1\7\4\0\1\6\13\0"
- + "\12\7\7\0\32\6\4\0\1\6\1\0\32\6\13\0\131\6\3\0"
- + "\6\6\2\0\6\6\2\0\6\6\2\0\3\6\3\0\2\6\3\0"
- + "\2\6\22\0\3\7\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 =
- "\5\0\1\1\2\2\1\3\1\4\1\5\1\6\1\7"
- + "\1\10\1\11\1\12\1\13\1\14\2\15\1\16\1\17"
- + "\21\6\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\1\41\2\42\1\43\1\1\1\41\2\44"
- + "\1\41\1\1\1\45\3\41\1\3\1\0\1\46\1\47"
- + "\1\50\2\0\1\51\1\0\1\52\1\53\1\54\1\55"
- + "\1\56\1\57\1\51\1\0\2\57\1\0\1\60\1\61"
- + "\5\6\1\62\16\6\1\63\1\64\1\65\3\6\1\66"
- + "\15\6\1\67\1\70\1\71\1\72\1\73\1\74\1\75"
- + "\1\76\1\77\1\100\1\101\2\102\1\103\1\104\1\105"
- + "\1\106\1\107\1\110\1\111\6\0\2\3\2\0\1\112"
- + "\3\0\1\113\1\0\1\114\1\115\1\116\2\117\1\57"
- + "\1\51\1\0\11\6\1\120\4\6\1\121\3\6\1\122"
- + "\6\6\1\123\4\6\1\124\10\6\1\125\1\6\1\126"
- + "\1\102\7\0\1\127\5\0\1\130\1\117\1\57\2\6"
- + "\1\131\1\132\1\6\1\133\11\6\1\134\1\135\1\6"
- + "\1\136\13\6\1\137\5\6\1\140\1\41\1\0\1\141"
- + "\12\0\1\117\1\57\1\142\2\6\1\143\1\144\1\6"
- + "\1\145\1\6\1\146\3\6\1\147\10\6\1\150\2\6"
- + "\1\151\4\6\10\0\1\117\1\57\1\152\2\6\1\153"
- + "\1\154\2\6\1\155\3\6\1\156\2\6\1\157\6\6"
- + "\1\160\2\0\1\113\1\117\1\57\1\161\7\6\1\162"
- + "\1\163\1\164\2\6\1\165\1\166\1\41\1\117\1\57"
- + "\1\167\1\170\2\6\1\171\2\6\1\172\1\6\1\117"
- + "\1\57\1\173\1\6\1\174\1\6\1\175\1\117\1\57"
- + "\1\176\1\177\6\57";
+ /** This character denotes the end of file */
+ public static final int YYEOF = -1;
- private static int[] zzUnpackAction() {
- int[] result = new int[397];
- int offset = 0;
- offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
- return result;
+ /** initial size of the lookahead buffer */
+ private static final int ZZ_BUFFERSIZE = 16384;
+
+ /** lexical states */
+ public static final int XML = 8;
+ public static final int XMLSTARTTAG = 6;
+ public static final int STRING = 2;
+ public static final int YYINITIAL = 0;
+ public static final int CHARLITERAL = 4;
+
+ /**
+ * 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
+ };
+
+ /**
+ * Translates characters to character classes
+ */
+ private static final String ZZ_CMAP_PACKED =
+ "\11\7\1\3\1\2\1\0\1\3\1\1\16\7\4\0\1\14\1\70"+
+ "\1\16\1\0\1\6\1\77\1\73\1\30\1\60\1\61\1\5\1\75"+
+ "\1\67\1\26\1\11\1\4\1\17\3\23\4\24\2\20\1\10\1\66"+
+ "\1\12\1\15\1\13\1\72\1\100\4\22\1\25\1\22\21\6\1\21"+
+ "\2\6\1\64\1\27\1\65\1\76\1\6\1\0\1\34\1\31\1\36"+
+ "\1\45\1\33\1\46\1\57\1\51\1\43\1\6\1\35\1\47\1\54"+
+ "\1\41\1\40\1\52\1\6\1\32\1\37\1\42\1\44\1\55\1\50"+
+ "\1\56\1\53\1\6\1\62\1\74\1\63\1\71\41\7\2\0\4\6"+
+ "\4\0\1\6\2\0\1\7\7\0\1\6\4\0\1\6\5\0\27\6"+
+ "\1\0\37\6\1\0\u01ca\6\4\0\14\6\16\0\5\6\7\0\1\6"+
+ "\1\0\1\6\21\0\160\7\5\6\1\0\2\6\2\0\4\6\10\0"+
+ "\1\6\1\0\3\6\1\0\1\6\1\0\24\6\1\0\123\6\1\0"+
+ "\213\6\1\0\5\7\2\0\236\6\11\0\46\6\2\0\1\6\7\0"+
+ "\47\6\11\0\55\7\1\0\1\7\1\0\2\7\1\0\2\7\1\0"+
+ "\1\7\10\0\33\6\5\0\3\6\15\0\4\7\7\0\1\6\4\0"+
+ "\13\7\5\0\53\6\37\7\4\0\2\6\1\7\143\6\1\0\1\6"+
+ "\10\7\1\0\6\7\2\6\2\7\1\0\4\7\2\6\12\7\3\6"+
+ "\2\0\1\6\17\0\1\7\1\6\1\7\36\6\33\7\2\0\131\6"+
+ "\13\7\1\6\16\0\12\7\41\6\11\7\2\6\4\0\1\6\5\0"+
+ "\26\6\4\7\1\6\11\7\1\6\3\7\1\6\5\7\22\0\31\6"+
+ "\3\7\244\0\4\7\66\6\3\7\1\6\22\7\1\6\7\7\12\6"+
+ "\2\7\2\0\12\7\1\0\7\6\1\0\7\6\1\0\3\7\1\0"+
+ "\10\6\2\0\2\6\2\0\26\6\1\0\7\6\1\0\1\6\3\0"+
+ "\4\6\2\0\1\7\1\6\7\7\2\0\2\7\2\0\3\7\1\6"+
+ "\10\0\1\7\4\0\2\6\1\0\3\6\2\7\2\0\12\7\4\6"+
+ "\7\0\1\6\5\0\3\7\1\0\6\6\4\0\2\6\2\0\26\6"+
+ "\1\0\7\6\1\0\2\6\1\0\2\6\1\0\2\6\2\0\1\7"+
+ "\1\0\5\7\4\0\2\7\2\0\3\7\3\0\1\7\7\0\4\6"+
+ "\1\0\1\6\7\0\14\7\3\6\1\7\13\0\3\7\1\0\11\6"+
+ "\1\0\3\6\1\0\26\6\1\0\7\6\1\0\2\6\1\0\5\6"+
+ "\2\0\1\7\1\6\10\7\1\0\3\7\1\0\3\7\2\0\1\6"+
+ "\17\0\2\6\2\7\2\0\12\7\1\0\1\6\17\0\3\7\1\0"+
+ "\10\6\2\0\2\6\2\0\26\6\1\0\7\6\1\0\2\6\1\0"+
+ "\5\6\2\0\1\7\1\6\7\7\2\0\2\7\2\0\3\7\10\0"+
+ "\2\7\4\0\2\6\1\0\3\6\2\7\2\0\12\7\1\0\1\6"+
+ "\20\0\1\7\1\6\1\0\6\6\3\0\3\6\1\0\4\6\3\0"+
+ "\2\6\1\0\1\6\1\0\2\6\3\0\2\6\3\0\3\6\3\0"+
+ "\14\6\4\0\5\7\3\0\3\7\1\0\4\7\2\0\1\6\6\0"+
+ "\1\7\16\0\12\7\11\0\1\6\7\0\3\7\1\0\10\6\1\0"+
+ "\3\6\1\0\27\6\1\0\12\6\1\0\5\6\3\0\1\6\7\7"+
+ "\1\0\3\7\1\0\4\7\7\0\2\7\1\0\2\6\6\0\2\6"+
+ "\2\7\2\0\12\7\22\0\2\7\1\0\10\6\1\0\3\6\1\0"+
+ "\27\6\1\0\12\6\1\0\5\6\2\0\1\7\1\6\7\7\1\0"+
+ "\3\7\1\0\4\7\7\0\2\7\7\0\1\6\1\0\2\6\2\7"+
+ "\2\0\12\7\1\0\2\6\17\0\2\7\1\0\10\6\1\0\3\6"+
+ "\1\0\51\6\2\0\1\6\7\7\1\0\3\7\1\0\4\7\1\6"+
+ "\10\0\1\7\10\0\2\6\2\7\2\0\12\7\12\0\6\6\2\0"+
+ "\2\7\1\0\22\6\3\0\30\6\1\0\11\6\1\0\1\6\2\0"+
+ "\7\6\3\0\1\7\4\0\6\7\1\0\1\7\1\0\10\7\22\0"+
+ "\2\7\15\0\60\6\1\7\2\6\7\7\4\0\10\6\10\7\1\0"+
+ "\12\7\47\0\2\6\1\0\1\6\2\0\2\6\1\0\1\6\2\0"+
+ "\1\6\6\0\4\6\1\0\7\6\1\0\3\6\1\0\1\6\1\0"+
+ "\1\6\2\0\2\6\1\0\4\6\1\7\2\6\6\7\1\0\2\7"+
+ "\1\6\2\0\5\6\1\0\1\6\1\0\6\7\2\0\12\7\2\0"+
+ "\2\6\42\0\1\6\27\0\2\7\6\0\12\7\13\0\1\7\1\0"+
+ "\1\7\1\0\1\7\4\0\2\7\10\6\1\0\44\6\4\0\24\7"+
+ "\1\0\2\7\5\6\13\7\1\0\44\7\11\0\1\7\71\0\53\6"+
+ "\24\7\1\6\12\7\6\0\6\6\4\7\4\6\3\7\1\6\3\7"+
+ "\2\6\7\7\3\6\4\7\15\6\14\7\1\6\17\7\2\0\46\6"+
+ "\12\0\53\6\1\0\1\6\3\0\u0149\6\1\0\4\6\2\0\7\6"+
+ "\1\0\1\6\1\0\4\6\2\0\51\6\1\0\4\6\2\0\41\6"+
+ "\1\0\4\6\2\0\7\6\1\0\1\6\1\0\4\6\2\0\17\6"+
+ "\1\0\71\6\1\0\4\6\2\0\103\6\2\0\3\7\40\0\20\6"+
+ "\20\0\125\6\14\0\u026c\6\2\0\21\6\1\0\32\6\5\0\113\6"+
+ "\3\0\3\6\17\0\15\6\1\0\4\6\3\7\13\0\22\6\3\7"+
+ "\13\0\22\6\2\7\14\0\15\6\1\0\3\6\1\0\2\7\14\0"+
+ "\64\6\40\7\3\0\1\6\3\0\2\6\1\7\2\0\12\7\41\0"+
+ "\3\7\2\0\12\7\6\0\130\6\10\0\51\6\1\7\1\6\5\0"+
+ "\106\6\12\0\35\6\3\0\14\7\4\0\14\7\12\0\12\7\36\6"+
+ "\2\0\5\6\13\0\54\6\4\0\21\7\7\6\2\7\6\0\12\7"+
+ "\46\0\27\6\5\7\4\0\65\6\12\7\1\0\35\7\2\0\13\7"+
+ "\6\0\12\7\15\0\1\6\130\0\5\7\57\6\21\7\7\6\4\0"+
+ "\12\7\21\0\11\7\14\0\3\7\36\6\12\7\3\0\2\6\12\7"+
+ "\6\0\46\6\16\7\14\0\44\6\24\7\10\0\12\7\3\0\3\6"+
+ "\12\7\44\6\122\0\3\7\1\0\25\7\4\6\1\7\4\6\1\7"+
+ "\15\0\300\6\47\7\25\0\4\7\u0116\6\2\0\6\6\2\0\46\6"+
+ "\2\0\6\6\2\0\10\6\1\0\1\6\1\0\1\6\1\0\1\6"+
+ "\1\0\37\6\2\0\65\6\1\0\7\6\1\0\1\6\3\0\3\6"+
+ "\1\0\7\6\3\0\4\6\2\0\6\6\4\0\15\6\5\0\3\6"+
+ "\1\0\7\6\16\0\5\7\32\0\5\7\20\0\2\6\23\0\1\6"+
+ "\13\0\5\7\5\0\6\7\1\0\1\6\15\0\1\6\20\0\15\6"+
+ "\3\0\32\6\26\0\15\7\4\0\1\7\3\0\14\7\21\0\1\6"+
+ "\4\0\1\6\2\0\12\6\1\0\1\6\3\0\5\6\6\0\1\6"+
+ "\1\0\1\6\1\0\1\6\1\0\4\6\1\0\13\6\2\0\4\6"+
+ "\5\0\5\6\4\0\1\6\21\0\51\6\u0a77\0\57\6\1\0\57\6"+
+ "\1\0\205\6\6\0\4\6\3\7\16\0\46\6\12\0\66\6\11\0"+
+ "\1\6\17\0\1\7\27\6\11\0\7\6\1\0\7\6\1\0\7\6"+
+ "\1\0\7\6\1\0\7\6\1\0\7\6\1\0\7\6\1\0\7\6"+
+ "\1\0\40\7\57\0\1\6\u01d5\0\3\6\31\0\11\6\6\7\1\0"+
+ "\5\6\2\0\5\6\4\0\126\6\2\0\2\7\2\0\3\6\1\0"+
+ "\132\6\1\0\4\6\5\0\51\6\3\0\136\6\21\0\33\6\65\0"+
+ "\20\6\u0200\0\u19b6\6\112\0\u51cc\6\64\0\u048d\6\103\0\56\6\2\0"+
+ "\u010d\6\3\0\20\6\12\7\2\6\24\0\57\6\1\7\14\0\2\7"+
+ "\1\0\31\6\10\0\120\6\2\7\45\0\11\6\2\0\147\6\2\0"+
+ "\4\6\1\0\2\6\16\0\12\6\120\0\10\6\1\7\3\6\1\7"+
+ "\4\6\1\7\27\6\5\7\20\0\1\6\7\0\64\6\14\0\2\7"+
+ "\62\6\21\7\13\0\12\7\6\0\22\7\6\6\3\0\1\6\4\0"+
+ "\12\7\34\6\10\7\2\0\27\6\15\7\14\0\35\6\3\0\4\7"+
+ "\57\6\16\7\16\0\1\6\12\7\46\0\51\6\16\7\11\0\3\6"+
+ "\1\7\10\6\2\7\2\0\12\7\6\0\27\6\3\0\1\6\1\7"+
+ "\4\0\60\6\1\7\1\6\3\7\2\6\2\7\5\6\2\7\1\6"+
+ "\1\7\1\6\30\0\3\6\43\0\6\6\2\0\6\6\2\0\6\6"+
+ "\11\0\7\6\1\0\7\6\221\0\43\6\10\7\1\0\2\7\2\0"+
+ "\12\7\6\0\u2ba4\6\14\0\27\6\4\0\61\6\u2104\0\u012e\6\2\0"+
+ "\76\6\2\0\152\6\46\0\7\6\14\0\5\6\5\0\1\6\1\7"+
+ "\12\6\1\0\15\6\1\0\5\6\1\0\1\6\1\0\2\6\1\0"+
+ "\2\6\1\0\154\6\41\0\u016b\6\22\0\100\6\2\0\66\6\50\0"+
+ "\15\6\3\0\20\7\20\0\7\7\14\0\2\6\30\0\3\6\31\0"+
+ "\1\6\6\0\5\6\1\0\207\6\2\0\1\7\4\0\1\6\13\0"+
+ "\12\7\7\0\32\6\4\0\1\6\1\0\32\6\13\0\131\6\3\0"+
+ "\6\6\2\0\6\6\2\0\6\6\2\0\3\6\3\0\2\6\3\0"+
+ "\2\6\22\0\3\7\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 =
+ "\5\0\1\1\2\2\1\3\1\4\1\5\1\6\1\7"+
+ "\1\10\1\11\1\12\1\13\1\14\2\15\1\16\1\17"+
+ "\21\6\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\1\41\2\42\1\43\1\1\1\41\2\44"+
+ "\1\41\1\1\1\45\3\41\1\3\1\0\1\46\1\47"+
+ "\1\50\2\0\1\51\1\0\1\52\1\53\1\54\1\55"+
+ "\1\56\1\57\1\51\1\0\2\57\1\0\1\60\1\61"+
+ "\5\6\1\62\16\6\1\63\1\64\1\65\3\6\1\66"+
+ "\15\6\1\67\1\70\1\71\1\72\1\73\1\74\1\75"+
+ "\1\76\1\77\1\100\1\101\2\102\1\103\1\104\1\105"+
+ "\1\106\1\107\1\110\1\111\6\0\2\3\2\0\1\112"+
+ "\3\0\1\113\1\0\1\114\1\115\1\116\1\117\2\120"+
+ "\1\57\1\51\1\0\11\6\1\121\4\6\1\122\3\6"+
+ "\1\123\6\6\1\124\4\6\1\125\10\6\1\126\1\6"+
+ "\1\127\1\130\1\102\7\0\1\131\5\0\1\132\1\120"+
+ "\1\57\2\6\1\133\1\134\1\6\1\135\11\6\1\136"+
+ "\1\137\1\6\1\140\13\6\1\141\5\6\1\142\1\41"+
+ "\1\0\1\143\12\0\1\120\1\57\1\144\2\6\1\145"+
+ "\1\146\1\6\1\147\1\6\1\150\3\6\1\151\10\6"+
+ "\1\152\2\6\1\153\4\6\10\0\1\120\1\57\1\154"+
+ "\2\6\1\155\1\156\2\6\1\157\3\6\1\160\2\6"+
+ "\1\161\6\6\1\162\2\0\1\113\1\120\1\57\1\163"+
+ "\7\6\1\164\1\165\1\166\2\6\1\167\1\170\1\41"+
+ "\1\120\1\57\1\171\1\172\2\6\1\173\2\6\1\174"+
+ "\1\6\1\120\1\57\1\175\1\6\1\176\1\6\1\177"+
+ "\1\120\1\57\1\200\1\201\6\57";
+
+ private static int [] zzUnpackAction() {
+ int [] result = new int[399];
+ 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;
+ }
- 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\101\0\202\0\303\0\u0104\0\u0145\0\u0186\0\u0145"+
+ "\0\u01c7\0\u0208\0\u0249\0\u028a\0\u02cb\0\u030c\0\u034d\0\u038e"+
+ "\0\u03cf\0\u0145\0\u0410\0\u0451\0\u0492\0\u0145\0\u04d3\0\u0514"+
+ "\0\u0555\0\u0596\0\u05d7\0\u0618\0\u0659\0\u069a\0\u06db\0\u071c"+
+ "\0\u075d\0\u079e\0\u07df\0\u0820\0\u0861\0\u08a2\0\u08e3\0\u0145"+
+ "\0\u0145\0\u0145\0\u0145\0\u0145\0\u0145\0\u0145\0\u0145\0\u0924"+
+ "\0\u0145\0\u0145\0\u0965\0\u09a6\0\u09e7\0\u0a28\0\u0a69\0\u0145"+
+ "\0\u0aaa\0\u0aeb\0\u0145\0\u0145\0\u0b2c\0\u0b6d\0\u0bae\0\u0145"+
+ "\0\u0bef\0\u0c30\0\u0145\0\u0c71\0\u0145\0\u0cb2\0\u0cf3\0\u0d34"+
+ "\0\u0145\0\u0145\0\u0145\0\u0d75\0\u0db6\0\u0df7\0\u0e38\0\u0e79"+
+ "\0\u0145\0\u0eba\0\u0145\0\u0efb\0\u0f3c\0\u0f7d\0\u0fbe\0\u0fff"+
+ "\0\u1040\0\u1081\0\u0145\0\u0145\0\u10c2\0\u1103\0\u1144\0\u1185"+
+ "\0\u11c6\0\u028a\0\u1207\0\u1248\0\u1289\0\u12ca\0\u130b\0\u134c"+
+ "\0\u138d\0\u13ce\0\u140f\0\u1450\0\u1491\0\u14d2\0\u1513\0\u1554"+
+ "\0\u028a\0\u1595\0\u028a\0\u15d6\0\u1617\0\u1658\0\u028a\0\u1699"+
+ "\0\u16da\0\u171b\0\u175c\0\u179d\0\u17de\0\u181f\0\u1860\0\u18a1"+
+ "\0\u18e2\0\u1923\0\u1964\0\u19a5\0\u19e6\0\u0145\0\u0145\0\u0145"+
+ "\0\u0145\0\u0145\0\u0145\0\u0145\0\u0145\0\u0145\0\u0145\0\u1a27"+
+ "\0\u1a68\0\u0145\0\u0145\0\u0145\0\u0145\0\u0145\0\u0145\0\u0145"+
+ "\0\u0c30\0\u1aa9\0\u1aea\0\u1b2b\0\u1b6c\0\u1bad\0\u1bee\0\u0145"+
+ "\0\u1c2f\0\u1c70\0\u0145\0\u1cb1\0\u1cf2\0\u1d33\0\u0145\0\u1d74"+
+ "\0\u0145\0\u1db5\0\u0145\0\u0145\0\u0fbe\0\u1df6\0\u1e37\0\u1e78"+
+ "\0\u1e78\0\u1eb9\0\u1efa\0\u1f3b\0\u1f7c\0\u1fbd\0\u1ffe\0\u203f"+
+ "\0\u2080\0\u20c1\0\u028a\0\u2102\0\u2143\0\u2184\0\u21c5\0\u028a"+
+ "\0\u2206\0\u2247\0\u2288\0\u028a\0\u22c9\0\u230a\0\u234b\0\u238c"+
+ "\0\u23cd\0\u240e\0\u028a\0\u244f\0\u2490\0\u24d1\0\u2512\0\u028a"+
+ "\0\u2553\0\u2594\0\u25d5\0\u2616\0\u2657\0\u2698\0\u26d9\0\u271a"+
+ "\0\u028a\0\u275b\0\u028a\0\u0145\0\u0145\0\u279c\0\u27dd\0\u281e"+
+ "\0\u285f\0\u28a0\0\u28e1\0\u2922\0\u0145\0\u2963\0\u29a4\0\u29e5"+
+ "\0\u2a26\0\u2a67\0\u0145\0\u2aa8\0\u2ae9\0\u2b2a\0\u2b6b\0\u028a"+
+ "\0\u028a\0\u2bac\0\u028a\0\u2bed\0\u2c2e\0\u2c6f\0\u2cb0\0\u2cf1"+
+ "\0\u2d32\0\u2d73\0\u2db4\0\u2df5\0\u028a\0\u028a\0\u2e36\0\u028a"+
+ "\0\u2e77\0\u2eb8\0\u2ef9\0\u2f3a\0\u2f7b\0\u2fbc\0\u2ffd\0\u303e"+
+ "\0\u307f\0\u30c0\0\u3101\0\u028a\0\u3142\0\u3183\0\u31c4\0\u3205"+
+ "\0\u3246\0\u028a\0\u3287\0\u32c8\0\u0145\0\u3309\0\u334a\0\u338b"+
+ "\0\u33cc\0\u340d\0\u344e\0\u348f\0\u34d0\0\u3511\0\u3552\0\u3593"+
+ "\0\u35d4\0\u028a\0\u3615\0\u3656\0\u028a\0\u028a\0\u3697\0\u028a"+
+ "\0\u36d8\0\u028a\0\u3719\0\u375a\0\u379b\0\u028a\0\u37dc\0\u381d"+
+ "\0\u385e\0\u389f\0\u38e0\0\u3921\0\u3962\0\u39a3\0\u028a\0\u39e4"+
+ "\0\u3a25\0\u028a\0\u3a66\0\u3aa7\0\u3ae8\0\u3b29\0\u3b6a\0\u3bab"+
+ "\0\u3bec\0\u3c2d\0\u3c6e\0\u3caf\0\u3cf0\0\u3d31\0\u3d72\0\u3db3"+
+ "\0\u028a\0\u3df4\0\u3e35\0\u028a\0\u028a\0\u3e76\0\u3eb7\0\u028a"+
+ "\0\u3ef8\0\u3f39\0\u3f7a\0\u028a\0\u3fbb\0\u3ffc\0\u028a\0\u403d"+
+ "\0\u407e\0\u40bf\0\u4100\0\u4141\0\u4182\0\u028a\0\u41c3\0\u4204"+
+ "\0\u348f\0\u4245\0\u4286\0\u028a\0\u42c7\0\u4308\0\u4349\0\u438a"+
+ "\0\u43cb\0\u440c\0\u444d\0\u028a\0\u028a\0\u028a\0\u448e\0\u44cf"+
+ "\0\u028a\0\u028a\0\u3bec\0\u4510\0\u4551\0\u028a\0\u028a\0\u4592"+
+ "\0\u45d3\0\u028a\0\u4614\0\u4655\0\u028a\0\u4696\0\u46d7\0\u4718"+
+ "\0\u028a\0\u4759\0\u028a\0\u479a\0\u028a\0\u0145\0\u47db\0\u028a"+
+ "\0\u028a\0\u481c\0\u485d\0\u489e\0\u48df\0\u4920\0\u0f7d";
+
+ private static int [] zzUnpackRowMap() {
+ int [] result = new int[399];
+ 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++);
}
- /**
- * 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\101\0\202\0\303\0\u0104\0\u0145\0\u0186\0\u0145"
- + "\0\u01c7\0\u0208\0\u0249\0\u028a\0\u02cb\0\u030c\0\u034d\0\u038e"
- + "\0\u03cf\0\u0145\0\u0410\0\u0451\0\u0492\0\u0145\0\u04d3\0\u0514"
- + "\0\u0555\0\u0596\0\u05d7\0\u0618\0\u0659\0\u069a\0\u06db\0\u071c"
- + "\0\u075d\0\u079e\0\u07df\0\u0820\0\u0861\0\u08a2\0\u08e3\0\u0145"
- + "\0\u0145\0\u0145\0\u0145\0\u0145\0\u0145\0\u0145\0\u0145\0\u0924"
- + "\0\u0145\0\u0145\0\u0965\0\u09a6\0\u09e7\0\u0a28\0\u0a69\0\u0145"
- + "\0\u0aaa\0\u0aeb\0\u0145\0\u0145\0\u0b2c\0\u0b6d\0\u0bae\0\u0145"
- + "\0\u0bef\0\u0c30\0\u0145\0\u0c71\0\u0145\0\u0cb2\0\u0cf3\0\u0d34"
- + "\0\u0145\0\u0145\0\u0145\0\u0d75\0\u0db6\0\u0df7\0\u0e38\0\u0e79"
- + "\0\u0145\0\u0eba\0\u0145\0\u0145\0\u0efb\0\u0f3c\0\u0f7d\0\u0fbe"
- + "\0\u0fff\0\u1040\0\u0145\0\u0145\0\u1081\0\u10c2\0\u1103\0\u1144"
- + "\0\u1185\0\u028a\0\u11c6\0\u1207\0\u1248\0\u1289\0\u12ca\0\u130b"
- + "\0\u134c\0\u138d\0\u13ce\0\u140f\0\u1450\0\u1491\0\u14d2\0\u1513"
- + "\0\u028a\0\u1554\0\u028a\0\u1595\0\u15d6\0\u1617\0\u028a\0\u1658"
- + "\0\u1699\0\u16da\0\u171b\0\u175c\0\u179d\0\u17de\0\u181f\0\u1860"
- + "\0\u18a1\0\u18e2\0\u1923\0\u1964\0\u0145\0\u0145\0\u0145\0\u0145"
- + "\0\u0145\0\u0145\0\u0145\0\u0145\0\u0145\0\u0145\0\u0145\0\u19a5"
- + "\0\u19e6\0\u0145\0\u0145\0\u0145\0\u0145\0\u0145\0\u0145\0\u0145"
- + "\0\u0c30\0\u1a27\0\u1a68\0\u1aa9\0\u1aea\0\u1b2b\0\u1b6c\0\u0145"
- + "\0\u1bad\0\u1bee\0\u0145\0\u1c2f\0\u1c70\0\u1cb1\0\u0145\0\u1cf2"
- + "\0\u0145\0\u1d33\0\u0145\0\u0f7d\0\u1d74\0\u1db5\0\u1df6\0\u1df6"
- + "\0\u1e37\0\u1e78\0\u1eb9\0\u1efa\0\u1f3b\0\u1f7c\0\u1fbd\0\u1ffe"
- + "\0\u203f\0\u028a\0\u2080\0\u20c1\0\u2102\0\u2143\0\u028a\0\u2184"
- + "\0\u21c5\0\u2206\0\u028a\0\u2247\0\u2288\0\u22c9\0\u230a\0\u234b"
- + "\0\u238c\0\u028a\0\u23cd\0\u240e\0\u244f\0\u2490\0\u028a\0\u24d1"
- + "\0\u2512\0\u2553\0\u2594\0\u25d5\0\u2616\0\u2657\0\u2698\0\u028a"
- + "\0\u26d9\0\u028a\0\u0145\0\u271a\0\u275b\0\u279c\0\u27dd\0\u281e"
- + "\0\u285f\0\u28a0\0\u0145\0\u28e1\0\u2922\0\u2963\0\u29a4\0\u29e5"
- + "\0\u0145\0\u2a26\0\u2a67\0\u2aa8\0\u2ae9\0\u028a\0\u028a\0\u2b2a"
- + "\0\u028a\0\u2b6b\0\u2bac\0\u2bed\0\u2c2e\0\u2c6f\0\u2cb0\0\u2cf1"
- + "\0\u2d32\0\u2d73\0\u028a\0\u028a\0\u2db4\0\u028a\0\u2df5\0\u2e36"
- + "\0\u2e77\0\u2eb8\0\u2ef9\0\u2f3a\0\u2f7b\0\u2fbc\0\u2ffd\0\u303e"
- + "\0\u307f\0\u028a\0\u30c0\0\u3101\0\u3142\0\u3183\0\u31c4\0\u028a"
- + "\0\u3205\0\u3246\0\u0145\0\u3287\0\u32c8\0\u3309\0\u334a\0\u338b"
- + "\0\u33cc\0\u340d\0\u344e\0\u348f\0\u34d0\0\u3511\0\u3552\0\u028a"
- + "\0\u3593\0\u35d4\0\u028a\0\u028a\0\u3615\0\u028a\0\u3656\0\u028a"
- + "\0\u3697\0\u36d8\0\u3719\0\u028a\0\u375a\0\u379b\0\u37dc\0\u381d"
- + "\0\u385e\0\u389f\0\u38e0\0\u3921\0\u028a\0\u3962\0\u39a3\0\u028a"
- + "\0\u39e4\0\u3a25\0\u3a66\0\u3aa7\0\u3ae8\0\u3b29\0\u3b6a\0\u3bab"
- + "\0\u3bec\0\u3c2d\0\u3c6e\0\u3caf\0\u3cf0\0\u3d31\0\u028a\0\u3d72"
- + "\0\u3db3\0\u028a\0\u028a\0\u3df4\0\u3e35\0\u028a\0\u3e76\0\u3eb7"
- + "\0\u3ef8\0\u028a\0\u3f39\0\u3f7a\0\u028a\0\u3fbb\0\u3ffc\0\u403d"
- + "\0\u407e\0\u40bf\0\u4100\0\u028a\0\u4141\0\u4182\0\u340d\0\u41c3"
- + "\0\u4204\0\u028a\0\u4245\0\u4286\0\u42c7\0\u4308\0\u4349\0\u438a"
- + "\0\u43cb\0\u028a\0\u028a\0\u028a\0\u440c\0\u444d\0\u028a\0\u028a"
- + "\0\u3b6a\0\u448e\0\u44cf\0\u028a\0\u028a\0\u4510\0\u4551\0\u028a"
- + "\0\u4592\0\u45d3\0\u028a\0\u4614\0\u4655\0\u4696\0\u028a\0\u46d7"
- + "\0\u028a\0\u4718\0\u028a\0\u0145\0\u4759\0\u028a\0\u028a\0\u479a"
- + "\0\u47db\0\u481c\0\u485d\0\u489e\0\u0f3c";
+ return j;
+ }
- private static int[] zzUnpackRowMap() {
- int[] result = new int[397];
- int offset = 0;
- offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
- return result;
+ /**
+ * The transition table of the DFA
+ */
+ private static final int [] ZZ_TRANS = zzUnpackTrans();
+
+ private static final String ZZ_TRANS_PACKED_0 =
+ "\1\6\1\7\1\10\1\11\1\12\1\13\1\14\1\6"+
+ "\1\15\1\16\1\17\1\20\1\11\1\21\1\22\1\23"+
+ "\1\24\2\14\2\24\1\14\1\25\1\6\1\26\1\27"+
+ "\1\30\1\31\1\32\1\14\1\33\1\34\1\35\1\36"+
+ "\1\37\1\40\1\41\1\42\1\43\1\14\1\44\1\14"+
+ "\1\45\2\14\1\46\1\14\1\47\1\50\1\51\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\13\71\1\74\10\71\1\75\51\71\1\76\1\72"+
+ "\1\73\24\76\1\75\1\74\50\76\1\6\1\77\1\100"+
+ "\1\101\2\6\1\102\4\6\1\103\1\104\4\6\2\102"+
+ "\2\6\1\102\3\6\27\102\21\6\1\105\1\77\1\100"+
+ "\7\105\1\106\66\105\103\0\1\10\101\0\1\11\10\0"+
+ "\1\11\70\0\1\107\1\110\7\0\1\111\100\0\1\112"+
+ "\71\0\2\14\7\0\7\14\3\0\27\14\31\0\1\113"+
+ "\101\0\1\114\1\115\4\0\2\116\2\0\2\116\62\0"+
+ "\1\117\3\0\1\120\2\0\1\121\3\0\2\117\2\0"+
+ "\1\117\3\0\27\117\34\0\1\122\1\0\1\123\100\0"+
+ "\1\124\74\0\1\116\5\0\1\125\1\126\1\127\1\0"+
+ "\1\130\1\131\1\132\5\0\1\132\22\0\1\127\33\0"+
+ "\1\116\5\0\2\24\2\0\2\24\1\132\5\0\1\132"+
+ "\62\0\1\133\10\0\1\134\60\0\2\14\7\0\7\14"+
+ "\3\0\1\14\1\135\25\14\27\0\2\14\7\0\7\14"+
+ "\3\0\2\14\1\136\24\14\27\0\2\14\7\0\7\14"+
+ "\3\0\3\14\1\137\12\14\1\140\6\14\1\141\1\14"+
+ "\27\0\2\14\7\0\7\14\3\0\6\14\1\142\20\14"+
+ "\27\0\2\14\7\0\7\14\3\0\3\14\1\143\3\14"+
+ "\1\144\6\14\1\145\10\14\27\0\2\14\7\0\7\14"+
+ "\3\0\2\14\1\146\6\14\1\147\1\14\1\150\3\14"+
+ "\1\151\7\14\27\0\2\14\7\0\7\14\3\0\24\14"+
+ "\1\152\2\14\27\0\2\14\7\0\7\14\3\0\2\14"+
+ "\1\153\1\154\7\14\1\155\13\14\27\0\2\14\7\0"+
+ "\7\14\3\0\1\14\1\156\16\14\1\157\1\14\1\160"+
+ "\4\14\27\0\2\14\7\0\7\14\3\0\6\14\1\161"+
+ "\1\14\1\162\4\14\1\163\5\14\1\164\3\14\27\0"+
+ "\2\14\7\0\7\14\3\0\6\14\1\165\20\14\27\0"+
+ "\2\14\7\0\7\14\3\0\2\14\1\166\4\14\1\167"+
+ "\12\14\1\170\4\14\27\0\2\14\7\0\7\14\3\0"+
+ "\3\14\1\171\3\14\1\172\2\14\1\173\1\174\13\14"+
+ "\27\0\2\14\7\0\7\14\3\0\12\14\1\175\5\14"+
+ "\1\176\6\14\27\0\2\14\7\0\7\14\3\0\1\14"+
+ "\1\177\1\14\1\200\7\14\1\201\13\14\27\0\2\14"+
+ "\7\0\7\14\3\0\3\14\1\202\3\14\1\203\17\14"+
+ "\27\0\2\14\7\0\7\14\3\0\2\14\1\204\24\14"+
+ "\36\0\1\205\100\0\1\206\55\0\1\207\22\0\1\210"+
+ "\56\0\1\211\21\0\1\212\57\0\1\213\20\0\1\214"+
+ "\100\0\1\215\63\0\1\71\2\0\13\71\1\0\10\71"+
+ "\1\0\51\71\2\0\1\73\76\0\2\216\1\0\13\216"+
+ "\1\217\1\220\3\216\1\220\1\221\2\216\1\222\1\223"+
+ "\1\224\1\225\6\216\1\226\1\227\3\216\1\230\32\216"+
+ "\1\76\2\0\24\76\2\0\50\76\2\0\1\100\101\0"+
+ "\1\101\10\0\1\101\72\0\2\231\1\232\3\0\1\233"+
+ "\1\234\1\0\7\231\3\0\27\231\24\0\1\101\2\0"+
+ "\1\231\5\0\1\104\4\0\2\231\2\0\1\231\3\0"+
+ "\27\231\25\0\1\235\1\0\1\236\12\0\2\236\2\0"+
+ "\1\236\3\0\27\236\21\0\1\107\1\237\1\240\76\107"+
+ "\5\241\1\242\73\241\11\0\1\243\75\0\1\244\12\0"+
+ "\2\244\2\0\1\244\3\0\27\244\40\0\2\116\2\0"+
+ "\2\116\1\132\5\0\1\132\53\0\1\245\1\117\1\246"+
+ "\2\0\1\247\1\250\2\0\2\117\2\245\2\117\1\245"+
+ "\3\0\27\245\36\0\1\251\76\0\1\252\1\0\1\253"+
+ "\100\0\1\254\74\0\1\116\5\0\1\125\1\126\2\0"+
+ "\1\130\1\131\1\132\5\0\1\132\56\0\1\116\5\0"+
+ "\2\126\2\0\2\126\1\132\5\0\1\132\64\0\1\255"+
+ "\1\256\1\0\4\256\3\0\1\256\1\0\2\256\1\0"+
+ "\1\256\6\0\2\256\43\0\1\116\5\0\1\131\1\126"+
+ "\2\0\2\131\1\132\5\0\1\132\56\0\1\116\5\0"+
+ "\1\257\1\126\2\0\2\257\1\132\5\0\1\132\64\0"+
+ "\2\260\2\0\2\260\1\0\1\261\46\0\1\261\11\0"+
+ "\2\14\7\0\7\14\3\0\2\14\1\262\24\14\27\0"+
+ "\2\14\7\0\7\14\3\0\11\14\1\263\15\14\27\0"+
+ "\2\14\7\0\7\14\3\0\5\14\1\264\21\14\27\0"+
+ "\2\14\7\0\7\14\3\0\6\14\1\265\20\14\27\0"+
+ "\2\14\7\0\7\14\3\0\11\14\1\266\15\14\27\0"+
+ "\2\14\7\0\7\14\3\0\6\14\1\267\2\14\1\270"+
+ "\15\14\27\0\2\14\7\0\7\14\3\0\10\14\1\271"+
+ "\16\14\27\0\2\14\7\0\7\14\3\0\3\14\1\272"+
+ "\23\14\27\0\2\14\7\0\7\14\3\0\11\14\1\273"+
+ "\15\14\27\0\2\14\7\0\7\14\3\0\3\14\1\274"+
+ "\23\14\27\0\2\14\7\0\7\14\3\0\21\14\1\275"+
+ "\5\14\27\0\2\14\7\0\7\14\3\0\12\14\1\276"+
+ "\14\14\27\0\2\14\7\0\7\14\3\0\2\14\1\277"+
+ "\24\14\27\0\2\14\7\0\7\14\3\0\17\14\1\300"+
+ "\7\14\27\0\2\14\7\0\7\14\3\0\23\14\1\301"+
+ "\3\14\27\0\2\14\7\0\7\14\3\0\16\14\1\302"+
+ "\10\14\27\0\2\14\7\0\7\14\3\0\13\14\1\303"+
+ "\6\14\1\304\4\14\27\0\2\14\7\0\7\14\3\0"+
+ "\1\14\1\305\10\14\1\306\14\14\27\0\2\14\7\0"+
+ "\7\14\3\0\21\14\1\307\5\14\27\0\2\14\7\0"+
+ "\7\14\3\0\6\14\1\310\2\14\1\311\15\14\27\0"+
+ "\2\14\7\0\7\14\3\0\21\14\1\312\5\14\27\0"+
+ "\2\14\7\0\7\14\3\0\2\14\1\313\24\14\27\0"+
+ "\2\14\7\0\7\14\3\0\15\14\1\314\1\315\10\14"+
+ "\27\0\2\14\7\0\7\14\3\0\10\14\1\316\16\14"+
+ "\27\0\2\14\7\0\7\14\3\0\16\14\1\317\10\14"+
+ "\27\0\2\14\7\0\7\14\3\0\1\14\1\320\25\14"+
+ "\27\0\2\14\7\0\7\14\3\0\10\14\1\321\16\14"+
+ "\27\0\2\14\7\0\7\14\3\0\10\14\1\322\16\14"+
+ "\27\0\2\14\7\0\7\14\3\0\11\14\1\323\15\14"+
+ "\27\0\2\14\7\0\7\14\3\0\12\14\1\324\14\14"+
+ "\27\0\2\14\7\0\7\14\3\0\7\14\1\325\2\14"+
+ "\1\326\14\14\27\0\2\14\7\0\7\14\3\0\5\14"+
+ "\1\327\21\14\27\0\2\14\7\0\7\14\3\0\1\330"+
+ "\26\14\27\0\2\14\7\0\7\14\3\0\1\14\1\331"+
+ "\25\14\27\0\2\14\7\0\7\14\3\0\12\14\1\332"+
+ "\14\14\27\0\2\14\7\0\7\14\3\0\11\14\1\333"+
+ "\15\14\36\0\1\334\102\0\1\221\3\0\2\221\73\0"+
+ "\1\335\3\0\2\335\62\0\1\336\12\0\2\336\2\0"+
+ "\1\336\3\0\27\336\35\0\1\233\1\234\77\0\1\234"+
+ "\1\0\1\337\70\0\1\340\12\0\2\340\2\0\1\340"+
+ "\3\0\27\340\27\0\1\341\1\236\1\342\2\0\1\105"+
+ "\1\343\2\0\2\236\2\341\2\236\1\341\3\0\27\341"+
+ "\23\0\1\240\76\0\5\241\1\344\73\241\4\0\1\240"+
+ "\1\242\101\0\2\244\3\0\1\345\3\0\7\244\3\0"+
+ "\27\244\27\0\2\245\1\346\2\0\1\247\1\347\1\350"+
+ "\1\0\7\245\3\0\27\245\27\0\1\351\12\0\2\351"+
+ "\2\0\1\351\3\0\27\351\27\0\1\352\5\0\1\250"+
+ "\4\0\2\352\2\0\1\352\3\0\27\352\36\0\1\353"+
+ "\102\0\2\354\1\0\4\354\3\0\1\354\1\0\2\354"+
+ "\1\0\1\354\6\0\2\354\43\0\1\116\5\0\1\355"+
+ "\1\126\2\0\2\355\1\132\5\0\1\132\64\0\2\260"+
+ "\2\0\2\260\62\0\2\14\7\0\7\14\3\0\3\14"+
+ "\1\356\23\14\27\0\2\14\7\0\7\14\3\0\13\14"+
+ "\1\357\13\14\27\0\2\14\7\0\7\14\3\0\20\14"+
+ "\1\360\6\14\27\0\2\14\7\0\7\14\3\0\2\14"+
+ "\1\361\24\14\27\0\2\14\7\0\7\14\3\0\2\14"+
+ "\1\362\24\14\27\0\2\14\7\0\7\14\3\0\2\14"+
+ "\1\363\24\14\27\0\2\14\7\0\7\14\3\0\5\14"+
+ "\1\364\21\14\27\0\2\14\7\0\7\14\3\0\6\14"+
+ "\1\365\2\14\1\366\15\14\27\0\2\14\7\0\7\14"+
+ "\3\0\6\14\1\367\20\14\27\0\2\14\7\0\7\14"+
+ "\3\0\11\14\1\370\15\14\27\0\2\14\7\0\7\14"+
+ "\3\0\2\14\1\371\24\14\27\0\2\14\7\0\7\14"+
+ "\3\0\11\14\1\372\15\14\27\0\2\14\7\0\7\14"+
+ "\3\0\1\14\1\373\25\14\27\0\2\14\7\0\7\14"+
+ "\3\0\2\14\1\374\24\14\27\0\2\14\7\0\7\14"+
+ "\3\0\16\14\1\375\10\14\27\0\2\14\7\0\7\14"+
+ "\3\0\2\14\1\376\24\14\27\0\2\14\7\0\7\14"+
+ "\3\0\7\14\1\377\17\14\27\0\2\14\7\0\7\14"+
+ "\3\0\6\14\1\u0100\20\14\27\0\2\14\7\0\7\14"+
+ "\3\0\2\14\1\u0101\24\14\27\0\2\14\7\0\7\14"+
+ "\3\0\11\14\1\u0102\15\14\27\0\2\14\7\0\7\14"+
+ "\3\0\2\14\1\u0103\24\14\27\0\2\14\7\0\7\14"+
+ "\3\0\7\14\1\u0104\6\14\1\u0105\10\14\27\0\2\14"+
+ "\7\0\7\14\3\0\3\14\1\u0106\23\14\27\0\2\14"+
+ "\7\0\7\14\3\0\2\14\1\u0107\24\14\27\0\2\14"+
+ "\7\0\7\14\3\0\3\14\1\u0108\23\14\27\0\2\14"+
+ "\7\0\7\14\3\0\6\14\1\u0109\20\14\27\0\2\14"+
+ "\7\0\7\14\3\0\3\14\1\u010a\23\14\27\0\2\14"+
+ "\7\0\7\14\3\0\5\14\1\u010b\21\14\27\0\2\14"+
+ "\7\0\7\14\3\0\20\14\1\u010c\6\14\27\0\2\14"+
+ "\7\0\7\14\3\0\16\14\1\u010d\10\14\27\0\2\14"+
+ "\7\0\7\14\3\0\11\14\1\u010e\15\14\27\0\2\14"+
+ "\7\0\7\14\3\0\24\14\1\u010f\2\14\27\0\2\14"+
+ "\7\0\7\14\3\0\4\14\1\u0110\22\14\27\0\2\14"+
+ "\7\0\7\14\3\0\16\14\1\u0111\10\14\27\0\2\14"+
+ "\7\0\7\14\3\0\14\14\1\u0112\12\14\27\0\2\336"+
+ "\4\0\1\233\1\234\1\0\7\336\3\0\27\336\21\0"+
+ "\1\337\2\0\13\337\1\u0113\62\337\6\0\2\340\1\u0114"+
+ "\2\0\1\u0115\3\0\7\340\3\0\27\340\27\0\2\341"+
+ "\1\u0116\2\0\1\105\1\u0117\1\u0118\1\0\7\341\3\0"+
+ "\27\341\27\0\1\u0119\12\0\2\u0119\2\0\1\u0119\3\0"+
+ "\27\u0119\27\0\1\u011a\5\0\1\343\4\0\2\u011a\2\0"+
+ "\1\u011a\3\0\27\u011a\21\0\4\241\1\240\1\344\73\241"+
+ "\6\0\1\u011b\12\0\2\u011b\2\0\1\u011b\3\0\27\u011b"+
+ "\27\0\1\352\5\0\1\347\1\350\3\0\2\352\2\0"+
+ "\1\352\3\0\27\352\35\0\1\350\1\0\1\u011c\70\0"+
+ "\1\u011d\1\351\3\0\1\247\1\250\2\0\2\351\2\u011d"+
+ "\2\351\1\u011d\3\0\27\u011d\27\0\2\352\1\u011e\3\0"+
+ "\1\u011f\1\350\1\0\7\352\3\0\27\352\40\0\2\u0120"+
+ "\1\0\4\u0120\3\0\1\u0120\1\0\2\u0120\1\0\1\u0120"+
+ "\6\0\2\u0120\43\0\1\116\5\0\1\u0121\1\126\2\0"+
+ "\2\u0121\1\132\5\0\1\132\53\0\2\14\7\0\7\14"+
+ "\3\0\4\14\1\u0122\22\14\27\0\2\14\7\0\7\14"+
+ "\3\0\1\14\1\u0123\25\14\27\0\2\14\7\0\7\14"+
+ "\3\0\10\14\1\u0124\16\14\27\0\2\14\7\0\7\14"+
+ "\3\0\20\14\1\u0125\6\14\27\0\2\14\7\0\7\14"+
+ "\3\0\11\14\1\u0126\15\14\27\0\2\14\7\0\7\14"+
+ "\3\0\12\14\1\u0127\14\14\27\0\2\14\7\0\7\14"+
+ "\3\0\6\14\1\u0128\20\14\27\0\2\14\7\0\7\14"+
+ "\3\0\12\14\1\u0129\14\14\27\0\2\14\7\0\7\14"+
+ "\3\0\1\14\1\u012a\25\14\27\0\2\14\7\0\7\14"+
+ "\3\0\5\14\1\u012b\21\14\27\0\2\14\7\0\7\14"+
+ "\3\0\1\14\1\u012c\25\14\27\0\2\14\7\0\7\14"+
+ "\3\0\6\14\1\u012d\20\14\27\0\2\14\7\0\7\14"+
+ "\3\0\17\14\1\u012e\7\14\27\0\2\14\7\0\7\14"+
+ "\3\0\7\14\1\u012f\17\14\27\0\2\14\7\0\7\14"+
+ "\3\0\3\14\1\u0130\23\14\27\0\2\14\7\0\7\14"+
+ "\3\0\1\14\1\u0131\25\14\27\0\2\14\7\0\7\14"+
+ "\3\0\1\14\1\u0132\25\14\27\0\2\14\7\0\7\14"+
+ "\3\0\2\14\1\u0133\24\14\27\0\2\14\7\0\7\14"+
+ "\3\0\13\14\1\u0134\13\14\27\0\2\14\7\0\7\14"+
+ "\3\0\11\14\1\u0135\15\14\27\0\2\14\7\0\7\14"+
+ "\3\0\23\14\1\u0136\3\14\27\0\2\14\7\0\7\14"+
+ "\3\0\2\14\1\u0137\24\14\27\0\2\14\7\0\7\14"+
+ "\3\0\16\14\1\u0138\10\14\27\0\2\14\7\0\7\14"+
+ "\3\0\11\14\1\u0139\15\14\27\0\2\14\7\0\7\14"+
+ "\3\0\2\14\1\u013a\24\14\27\0\2\14\7\0\7\14"+
+ "\3\0\2\14\1\u013b\24\14\27\0\2\14\7\0\7\14"+
+ "\3\0\3\14\1\u013c\23\14\27\0\2\14\7\0\7\14"+
+ "\3\0\3\14\1\u013d\23\14\27\0\2\14\7\0\7\14"+
+ "\3\0\12\14\1\u013e\14\14\21\0\1\337\2\0\11\337"+
+ "\1\u0113\1\337\1\u0113\62\337\6\0\1\u013f\12\0\2\u013f"+
+ "\2\0\1\u013f\3\0\27\u013f\27\0\1\u0140\12\0\2\u0140"+
+ "\2\0\1\u0140\3\0\27\u0140\27\0\1\u011a\5\0\1\u0117"+
+ "\1\u0118\3\0\2\u011a\2\0\1\u011a\3\0\27\u011a\35\0"+
+ "\1\u0118\1\0\1\u0141\70\0\1\u0142\1\u0119\3\0\1\105"+
+ "\1\343\2\0\2\u0119\2\u0142\2\u0119\1\u0142\3\0\27\u0142"+
+ "\27\0\2\u011a\1\u0143\3\0\1\u0144\1\u0118\1\0\7\u011a"+
+ "\3\0\27\u011a\27\0\1\u011d\1\u011b\3\0\1\247\1\347"+
+ "\1\350\1\0\2\u011b\2\u011d\2\u011b\1\u011d\3\0\27\u011d"+
+ "\21\0\1\u011c\2\0\13\u011c\1\u0145\62\u011c\6\0\2\u011d"+
+ "\1\u011e\2\0\1\247\1\347\1\350\1\0\7\u011d\3\0"+
+ "\27\u011d\27\0\1\u0146\12\0\2\u0146\2\0\1\u0146\3\0"+
+ "\27\u0146\35\0\1\u011f\1\350\102\0\2\u0147\1\0\4\u0147"+
+ "\3\0\1\u0147\1\0\2\u0147\1\0\1\u0147\6\0\2\u0147"+
+ "\43\0\1\116\5\0\1\u0148\1\126\2\0\2\u0148\1\132"+
+ "\5\0\1\132\53\0\2\14\7\0\7\14\3\0\10\14"+
+ "\1\u0149\16\14\27\0\2\14\7\0\7\14\3\0\14\14"+
+ "\1\u014a\12\14\27\0\2\14\7\0\7\14\3\0\10\14"+
+ "\1\u014b\16\14\27\0\2\14\7\0\7\14\3\0\5\14"+
+ "\1\u014c\21\14\27\0\2\14\7\0\7\14\3\0\20\14"+
+ "\1\u014d\6\14\27\0\2\14\7\0\7\14\3\0\12\14"+
+ "\1\u014e\14\14\27\0\2\14\7\0\7\14\3\0\21\14"+
+ "\1\u014f\5\14\27\0\2\14\7\0\7\14\3\0\15\14"+
+ "\1\u0150\11\14\27\0\2\14\7\0\7\14\3\0\10\14"+
+ "\1\u0151\16\14\27\0\2\14\7\0\7\14\3\0\10\14"+
+ "\1\u0152\4\14\1\u0153\11\14\27\0\2\14\7\0\7\14"+
+ "\3\0\11\14\1\u0154\15\14\27\0\2\14\7\0\7\14"+
+ "\3\0\23\14\1\u0155\3\14\27\0\2\14\7\0\7\14"+
+ "\3\0\16\14\1\u0156\10\14\27\0\2\14\7\0\7\14"+
+ "\3\0\2\14\1\u0157\24\14\27\0\2\14\7\0\7\14"+
+ "\3\0\12\14\1\u0158\14\14\27\0\2\14\7\0\7\14"+
+ "\3\0\16\14\1\u0159\10\14\27\0\2\14\7\0\7\14"+
+ "\3\0\12\14\1\u015a\14\14\27\0\2\14\7\0\7\14"+
+ "\3\0\5\14\1\u015b\21\14\27\0\2\14\7\0\7\14"+
+ "\3\0\11\14\1\u015c\15\14\27\0\2\14\7\0\7\14"+
+ "\3\0\26\14\1\u015d\27\0\2\14\7\0\7\14\3\0"+
+ "\5\14\1\u015e\21\14\27\0\2\u013f\3\0\1\u0115\3\0"+
+ "\7\u013f\3\0\27\u013f\27\0\1\u0142\1\u0140\3\0\1\105"+
+ "\1\u0117\1\u0118\1\0\2\u0140\2\u0142\2\u0140\1\u0142\3\0"+
+ "\27\u0142\21\0\1\u0141\2\0\13\u0141\1\u015f\62\u0141\6\0"+
+ "\2\u0142\1\u0143\2\0\1\105\1\u0117\1\u0118\1\0\7\u0142"+
+ "\3\0\27\u0142\27\0\1\u0160\12\0\2\u0160\2\0\1\u0160"+
+ "\3\0\27\u0160\35\0\1\u0144\1\u0118\63\0\1\u011c\2\0"+
+ "\10\u011c\1\u0161\1\u0145\1\u011c\1\u0145\62\u011c\6\0\2\u0146"+
+ "\4\0\1\u011f\1\350\1\0\7\u0146\3\0\27\u0146\40\0"+
+ "\2\u0162\1\0\4\u0162\3\0\1\u0162\1\0\2\u0162\1\0"+
+ "\1\u0162\6\0\2\u0162\43\0\1\116\5\0\1\u0163\1\126"+
+ "\2\0\2\u0163\1\132\5\0\1\132\53\0\2\14\7\0"+
+ "\7\14\3\0\6\14\1\u0164\20\14\27\0\2\14\7\0"+
+ "\7\14\3\0\13\14\1\u0165\13\14\27\0\2\14\7\0"+
+ "\7\14\3\0\14\14\1\u0166\12\14\27\0\2\14\7\0"+
+ "\7\14\3\0\3\14\1\u0167\23\14\27\0\2\14\7\0"+
+ "\7\14\3\0\5\14\1\u0168\21\14\27\0\2\14\7\0"+
+ "\7\14\3\0\3\14\1\u0169\23\14\27\0\2\14\7\0"+
+ "\7\14\3\0\3\14\1\u016a\23\14\27\0\2\14\7\0"+
+ "\7\14\3\0\2\14\1\u016b\24\14\27\0\2\14\7\0"+
+ "\7\14\3\0\11\14\1\u016c\15\14\27\0\2\14\7\0"+
+ "\7\14\3\0\5\14\1\u016d\21\14\27\0\2\14\7\0"+
+ "\7\14\3\0\22\14\1\u016e\4\14\27\0\2\14\7\0"+
+ "\7\14\3\0\7\14\1\u016f\17\14\27\0\2\14\7\0"+
+ "\7\14\3\0\11\14\1\u0170\15\14\27\0\2\14\7\0"+
+ "\7\14\3\0\2\14\1\u0171\24\14\27\0\2\14\7\0"+
+ "\7\14\3\0\2\14\1\u0172\24\14\21\0\1\u0141\2\0"+
+ "\10\u0141\1\u0173\1\u015f\1\u0141\1\u015f\62\u0141\6\0\2\u0160"+
+ "\4\0\1\u0144\1\u0118\1\0\7\u0160\3\0\27\u0160\40\0"+
+ "\2\u0174\1\0\4\u0174\3\0\1\u0174\1\0\2\u0174\1\0"+
+ "\1\u0174\6\0\2\u0174\43\0\1\116\5\0\1\u0175\1\126"+
+ "\2\0\2\u0175\1\132\5\0\1\132\53\0\2\14\7\0"+
+ "\7\14\3\0\2\14\1\u0176\24\14\27\0\2\14\7\0"+
+ "\7\14\3\0\2\14\1\u0177\24\14\27\0\2\14\7\0"+
+ "\7\14\3\0\5\14\1\u0178\21\14\27\0\2\14\7\0"+
+ "\7\14\3\0\2\14\1\u0179\24\14\27\0\2\14\7\0"+
+ "\7\14\3\0\16\14\1\u017a\10\14\27\0\2\14\7\0"+
+ "\7\14\3\0\5\14\1\u017b\21\14\27\0\2\14\7\0"+
+ "\7\14\3\0\10\14\1\u017c\16\14\27\0\2\14\7\0"+
+ "\7\14\3\0\10\14\1\u017d\16\14\27\0\2\14\7\0"+
+ "\7\14\3\0\2\14\1\u017e\24\14\40\0\2\u017f\1\0"+
+ "\4\u017f\3\0\1\u017f\1\0\2\u017f\1\0\1\u017f\6\0"+
+ "\2\u017f\43\0\1\116\5\0\1\u0180\1\126\2\0\2\u0180"+
+ "\1\132\5\0\1\132\53\0\2\14\7\0\7\14\3\0"+
+ "\2\14\1\u0181\24\14\27\0\2\14\7\0\7\14\3\0"+
+ "\7\14\1\u0182\17\14\27\0\2\14\7\0\7\14\3\0"+
+ "\2\14\1\u0183\24\14\27\0\2\14\7\0\7\14\3\0"+
+ "\11\14\1\u0184\15\14\27\0\2\14\7\0\7\14\3\0"+
+ "\14\14\1\u0185\12\14\40\0\2\u0186\1\0\4\u0186\3\0"+
+ "\1\u0186\1\0\2\u0186\1\0\1\u0186\6\0\2\u0186\43\0"+
+ "\1\116\5\0\1\u0187\1\126\2\0\2\u0187\1\132\5\0"+
+ "\1\132\53\0\2\14\7\0\7\14\3\0\15\14\1\u0188"+
+ "\11\14\27\0\2\14\7\0\7\14\3\0\6\14\1\u0189"+
+ "\20\14\32\0\1\116\5\0\1\u018a\1\126\2\0\2\u018a"+
+ "\1\132\5\0\1\132\56\0\1\116\5\0\1\u018b\1\126"+
+ "\2\0\2\u018b\1\132\5\0\1\132\56\0\1\116\5\0"+
+ "\1\u018c\1\126\2\0\2\u018c\1\132\5\0\1\132\56\0"+
+ "\1\116\5\0\1\u018d\1\126\2\0\2\u018d\1\132\5\0"+
+ "\1\132\56\0\1\116\5\0\1\u018e\1\126\2\0\2\u018e"+
+ "\1\132\5\0\1\132\56\0\1\116\5\0\1\u018f\1\126"+
+ "\2\0\2\u018f\1\132\5\0\1\132\45\0";
+
+ private static int [] zzUnpackTrans() {
+ int [] result = new int[18785];
+ 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;
+ }
- 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;
+
+ /* 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 aState
+ */
+ private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute();
+
+ private static final String ZZ_ATTRIBUTE_PACKED_0 =
+ "\5\0\1\11\1\1\1\11\11\1\1\11\3\1\1\11"+
+ "\21\1\10\11\1\1\2\11\5\1\1\11\2\1\2\11"+
+ "\3\1\1\11\2\1\1\11\1\1\1\11\2\1\1\0"+
+ "\3\11\2\0\1\1\1\0\1\1\1\11\1\1\1\11"+
+ "\3\1\1\0\2\1\1\0\2\11\51\1\12\11\2\1"+
+ "\7\11\6\0\1\1\1\11\2\0\1\11\3\0\1\11"+
+ "\1\0\1\11\1\1\2\11\4\1\1\0\52\1\2\11"+
+ "\7\0\1\11\5\0\1\11\50\1\1\0\1\11\12\0"+
+ "\37\1\10\0\30\1\2\0\45\1\1\11\11\1";
+
+ private static int [] zzUnpackAttribute() {
+ int [] result = new int[399];
+ 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);
}
- /**
- * The transition table of the DFA
- */
- private static final int[] ZZ_TRANS = zzUnpackTrans();
- private static final String ZZ_TRANS_PACKED_0 =
- "\1\6\1\7\1\10\1\11\1\12\1\13\1\14\1\6"
- + "\1\15\1\16\1\17\1\20\1\11\1\21\1\22\1\23"
- + "\1\24\2\14\2\24\1\14\1\25\1\6\1\26\1\27"
- + "\1\30\1\31\1\32\1\14\1\33\1\34\1\35\1\36"
- + "\1\37\1\40\1\41\1\42\1\43\1\14\1\44\1\14"
- + "\1\45\2\14\1\46\1\14\1\47\1\50\1\51\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\13\71\1\74\10\71\1\75\51\71\1\76\1\72"
- + "\1\73\24\76\1\75\1\74\50\76\1\6\1\77\1\100"
- + "\1\101\2\6\1\102\4\6\1\103\1\104\4\6\2\102"
- + "\2\6\1\102\3\6\27\102\21\6\1\105\1\77\1\100"
- + "\7\105\1\106\66\105\103\0\1\10\101\0\1\11\10\0"
- + "\1\11\70\0\1\107\1\110\7\0\1\111\100\0\1\112"
- + "\71\0\2\14\7\0\7\14\3\0\27\14\31\0\1\113"
- + "\101\0\1\114\1\115\4\0\2\116\2\0\2\116\62\0"
- + "\1\117\3\0\1\120\2\0\1\121\3\0\2\117\2\0"
- + "\1\117\3\0\27\117\34\0\1\122\1\0\1\123\100\0"
- + "\1\124\74\0\1\116\5\0\1\125\1\126\1\127\1\0"
- + "\1\130\1\131\1\132\5\0\1\132\22\0\1\127\33\0"
- + "\1\116\5\0\2\24\2\0\2\24\1\132\5\0\1\132"
- + "\62\0\1\133\10\0\1\134\60\0\2\14\7\0\7\14"
- + "\3\0\1\14\1\135\25\14\27\0\2\14\7\0\7\14"
- + "\3\0\2\14\1\136\24\14\27\0\2\14\7\0\7\14"
- + "\3\0\3\14\1\137\12\14\1\140\6\14\1\141\1\14"
- + "\27\0\2\14\7\0\7\14\3\0\6\14\1\142\20\14"
- + "\27\0\2\14\7\0\7\14\3\0\3\14\1\143\3\14"
- + "\1\144\6\14\1\145\10\14\27\0\2\14\7\0\7\14"
- + "\3\0\2\14\1\146\6\14\1\147\1\14\1\150\3\14"
- + "\1\151\7\14\27\0\2\14\7\0\7\14\3\0\24\14"
- + "\1\152\2\14\27\0\2\14\7\0\7\14\3\0\2\14"
- + "\1\153\1\154\7\14\1\155\13\14\27\0\2\14\7\0"
- + "\7\14\3\0\1\14\1\156\16\14\1\157\1\14\1\160"
- + "\4\14\27\0\2\14\7\0\7\14\3\0\6\14\1\161"
- + "\1\14\1\162\4\14\1\163\5\14\1\164\3\14\27\0"
- + "\2\14\7\0\7\14\3\0\6\14\1\165\20\14\27\0"
- + "\2\14\7\0\7\14\3\0\2\14\1\166\4\14\1\167"
- + "\12\14\1\170\4\14\27\0\2\14\7\0\7\14\3\0"
- + "\3\14\1\171\3\14\1\172\2\14\1\173\1\174\13\14"
- + "\27\0\2\14\7\0\7\14\3\0\12\14\1\175\5\14"
- + "\1\176\6\14\27\0\2\14\7\0\7\14\3\0\1\14"
- + "\1\177\1\14\1\200\7\14\1\201\13\14\27\0\2\14"
- + "\7\0\7\14\3\0\3\14\1\202\3\14\1\203\17\14"
- + "\27\0\2\14\7\0\7\14\3\0\2\14\1\204\24\14"
- + "\36\0\1\205\100\0\1\206\55\0\1\207\22\0\1\210"
- + "\56\0\1\211\21\0\1\212\57\0\1\213\20\0\1\214"
- + "\100\0\1\215\63\0\1\71\2\0\13\71\1\0\10\71"
- + "\1\0\51\71\2\0\1\73\76\0\2\216\1\0\13\216"
- + "\1\217\1\220\3\216\1\220\1\221\2\216\1\222\1\223"
- + "\1\224\1\225\6\216\1\226\1\227\3\216\1\230\32\216"
- + "\1\76\2\0\24\76\2\0\50\76\2\0\1\100\101\0"
- + "\1\101\10\0\1\101\72\0\2\231\1\232\3\0\1\233"
- + "\1\234\1\0\7\231\3\0\27\231\24\0\1\101\2\0"
- + "\1\231\5\0\1\104\4\0\2\231\2\0\1\231\3\0"
- + "\27\231\25\0\1\235\1\0\1\236\12\0\2\236\2\0"
- + "\1\236\3\0\27\236\21\0\1\107\1\237\1\240\76\107"
- + "\5\241\1\242\73\241\11\0\1\243\75\0\1\244\12\0"
- + "\2\244\2\0\1\244\3\0\27\244\40\0\2\116\2\0"
- + "\2\116\1\132\5\0\1\132\53\0\1\245\1\117\1\246"
- + "\2\0\1\247\1\250\2\0\2\117\2\245\2\117\1\245"
- + "\3\0\27\245\36\0\1\251\76\0\1\252\1\0\1\253"
- + "\74\0\1\116\5\0\1\125\1\126\2\0\1\130\1\131"
- + "\1\132\5\0\1\132\56\0\1\116\5\0\2\126\2\0"
- + "\2\126\1\132\5\0\1\132\64\0\1\254\1\255\1\0"
- + "\4\255\3\0\1\255\1\0\2\255\1\0\1\255\6\0"
- + "\2\255\43\0\1\116\5\0\1\131\1\126\2\0\2\131"
- + "\1\132\5\0\1\132\56\0\1\116\5\0\1\256\1\126"
- + "\2\0\2\256\1\132\5\0\1\132\64\0\2\257\2\0"
- + "\2\257\1\0\1\260\46\0\1\260\11\0\2\14\7\0"
- + "\7\14\3\0\2\14\1\261\24\14\27\0\2\14\7\0"
- + "\7\14\3\0\11\14\1\262\15\14\27\0\2\14\7\0"
- + "\7\14\3\0\5\14\1\263\21\14\27\0\2\14\7\0"
- + "\7\14\3\0\6\14\1\264\20\14\27\0\2\14\7\0"
- + "\7\14\3\0\11\14\1\265\15\14\27\0\2\14\7\0"
- + "\7\14\3\0\6\14\1\266\2\14\1\267\15\14\27\0"
- + "\2\14\7\0\7\14\3\0\10\14\1\270\16\14\27\0"
- + "\2\14\7\0\7\14\3\0\3\14\1\271\23\14\27\0"
- + "\2\14\7\0\7\14\3\0\11\14\1\272\15\14\27\0"
- + "\2\14\7\0\7\14\3\0\3\14\1\273\23\14\27\0"
- + "\2\14\7\0\7\14\3\0\21\14\1\274\5\14\27\0"
- + "\2\14\7\0\7\14\3\0\12\14\1\275\14\14\27\0"
- + "\2\14\7\0\7\14\3\0\2\14\1\276\24\14\27\0"
- + "\2\14\7\0\7\14\3\0\17\14\1\277\7\14\27\0"
- + "\2\14\7\0\7\14\3\0\23\14\1\300\3\14\27\0"
- + "\2\14\7\0\7\14\3\0\16\14\1\301\10\14\27\0"
- + "\2\14\7\0\7\14\3\0\13\14\1\302\6\14\1\303"
- + "\4\14\27\0\2\14\7\0\7\14\3\0\1\14\1\304"
- + "\10\14\1\305\14\14\27\0\2\14\7\0\7\14\3\0"
- + "\21\14\1\306\5\14\27\0\2\14\7\0\7\14\3\0"
- + "\6\14\1\307\2\14\1\310\15\14\27\0\2\14\7\0"
- + "\7\14\3\0\21\14\1\311\5\14\27\0\2\14\7\0"
- + "\7\14\3\0\2\14\1\312\24\14\27\0\2\14\7\0"
- + "\7\14\3\0\15\14\1\313\1\314\10\14\27\0\2\14"
- + "\7\0\7\14\3\0\10\14\1\315\16\14\27\0\2\14"
- + "\7\0\7\14\3\0\16\14\1\316\10\14\27\0\2\14"
- + "\7\0\7\14\3\0\1\14\1\317\25\14\27\0\2\14"
- + "\7\0\7\14\3\0\10\14\1\320\16\14\27\0\2\14"
- + "\7\0\7\14\3\0\10\14\1\321\16\14\27\0\2\14"
- + "\7\0\7\14\3\0\11\14\1\322\15\14\27\0\2\14"
- + "\7\0\7\14\3\0\12\14\1\323\14\14\27\0\2\14"
- + "\7\0\7\14\3\0\7\14\1\324\2\14\1\325\14\14"
- + "\27\0\2\14\7\0\7\14\3\0\5\14\1\326\21\14"
- + "\27\0\2\14\7\0\7\14\3\0\1\327\26\14\27\0"
- + "\2\14\7\0\7\14\3\0\1\14\1\330\25\14\27\0"
- + "\2\14\7\0\7\14\3\0\12\14\1\331\14\14\27\0"
- + "\2\14\7\0\7\14\3\0\11\14\1\332\15\14\40\0"
- + "\1\221\3\0\2\221\73\0\1\333\3\0\2\333\62\0"
- + "\1\334\12\0\2\334\2\0\1\334\3\0\27\334\35\0"
- + "\1\233\1\234\77\0\1\234\1\0\1\335\70\0\1\336"
- + "\12\0\2\336\2\0\1\336\3\0\27\336\27\0\1\337"
- + "\1\236\1\340\2\0\1\105\1\341\2\0\2\236\2\337"
- + "\2\236\1\337\3\0\27\337\23\0\1\240\76\0\5\241"
- + "\1\342\73\241\4\0\1\240\1\242\101\0\2\244\3\0"
- + "\1\343\3\0\7\244\3\0\27\244\27\0\2\245\1\344"
- + "\2\0\1\247\1\345\1\346\1\0\7\245\3\0\27\245"
- + "\27\0\1\347\12\0\2\347\2\0\1\347\3\0\27\347"
- + "\27\0\1\350\5\0\1\250\4\0\2\350\2\0\1\350"
- + "\3\0\27\350\36\0\1\351\102\0\2\352\1\0\4\352"
- + "\3\0\1\352\1\0\2\352\1\0\1\352\6\0\2\352"
- + "\43\0\1\116\5\0\1\353\1\126\2\0\2\353\1\132"
- + "\5\0\1\132\64\0\2\257\2\0\2\257\62\0\2\14"
- + "\7\0\7\14\3\0\3\14\1\354\23\14\27\0\2\14"
- + "\7\0\7\14\3\0\13\14\1\355\13\14\27\0\2\14"
- + "\7\0\7\14\3\0\20\14\1\356\6\14\27\0\2\14"
- + "\7\0\7\14\3\0\2\14\1\357\24\14\27\0\2\14"
- + "\7\0\7\14\3\0\2\14\1\360\24\14\27\0\2\14"
- + "\7\0\7\14\3\0\2\14\1\361\24\14\27\0\2\14"
- + "\7\0\7\14\3\0\5\14\1\362\21\14\27\0\2\14"
- + "\7\0\7\14\3\0\6\14\1\363\2\14\1\364\15\14"
- + "\27\0\2\14\7\0\7\14\3\0\6\14\1\365\20\14"
- + "\27\0\2\14\7\0\7\14\3\0\11\14\1\366\15\14"
- + "\27\0\2\14\7\0\7\14\3\0\2\14\1\367\24\14"
- + "\27\0\2\14\7\0\7\14\3\0\11\14\1\370\15\14"
- + "\27\0\2\14\7\0\7\14\3\0\1\14\1\371\25\14"
- + "\27\0\2\14\7\0\7\14\3\0\2\14\1\372\24\14"
- + "\27\0\2\14\7\0\7\14\3\0\16\14\1\373\10\14"
- + "\27\0\2\14\7\0\7\14\3\0\2\14\1\374\24\14"
- + "\27\0\2\14\7\0\7\14\3\0\7\14\1\375\17\14"
- + "\27\0\2\14\7\0\7\14\3\0\6\14\1\376\20\14"
- + "\27\0\2\14\7\0\7\14\3\0\2\14\1\377\24\14"
- + "\27\0\2\14\7\0\7\14\3\0\11\14\1\u0100\15\14"
- + "\27\0\2\14\7\0\7\14\3\0\2\14\1\u0101\24\14"
- + "\27\0\2\14\7\0\7\14\3\0\7\14\1\u0102\6\14"
- + "\1\u0103\10\14\27\0\2\14\7\0\7\14\3\0\3\14"
- + "\1\u0104\23\14\27\0\2\14\7\0\7\14\3\0\2\14"
- + "\1\u0105\24\14\27\0\2\14\7\0\7\14\3\0\3\14"
- + "\1\u0106\23\14\27\0\2\14\7\0\7\14\3\0\6\14"
- + "\1\u0107\20\14\27\0\2\14\7\0\7\14\3\0\3\14"
- + "\1\u0108\23\14\27\0\2\14\7\0\7\14\3\0\5\14"
- + "\1\u0109\21\14\27\0\2\14\7\0\7\14\3\0\20\14"
- + "\1\u010a\6\14\27\0\2\14\7\0\7\14\3\0\16\14"
- + "\1\u010b\10\14\27\0\2\14\7\0\7\14\3\0\11\14"
- + "\1\u010c\15\14\27\0\2\14\7\0\7\14\3\0\24\14"
- + "\1\u010d\2\14\27\0\2\14\7\0\7\14\3\0\4\14"
- + "\1\u010e\22\14\27\0\2\14\7\0\7\14\3\0\16\14"
- + "\1\u010f\10\14\27\0\2\14\7\0\7\14\3\0\14\14"
- + "\1\u0110\12\14\27\0\2\334\4\0\1\233\1\234\1\0"
- + "\7\334\3\0\27\334\21\0\1\335\2\0\13\335\1\u0111"
- + "\62\335\6\0\2\336\1\u0112\2\0\1\u0113\3\0\7\336"
- + "\3\0\27\336\27\0\2\337\1\u0114\2\0\1\105\1\u0115"
- + "\1\u0116\1\0\7\337\3\0\27\337\27\0\1\u0117\12\0"
- + "\2\u0117\2\0\1\u0117\3\0\27\u0117\27\0\1\u0118\5\0"
- + "\1\341\4\0\2\u0118\2\0\1\u0118\3\0\27\u0118\21\0"
- + "\4\241\1\240\1\342\73\241\6\0\1\u0119\12\0\2\u0119"
- + "\2\0\1\u0119\3\0\27\u0119\27\0\1\350\5\0\1\345"
- + "\1\346\3\0\2\350\2\0\1\350\3\0\27\350\35\0"
- + "\1\346\1\0\1\u011a\70\0\1\u011b\1\347\3\0\1\247"
- + "\1\250\2\0\2\347\2\u011b\2\347\1\u011b\3\0\27\u011b"
- + "\27\0\2\350\1\u011c\3\0\1\u011d\1\346\1\0\7\350"
- + "\3\0\27\350\40\0\2\u011e\1\0\4\u011e\3\0\1\u011e"
- + "\1\0\2\u011e\1\0\1\u011e\6\0\2\u011e\43\0\1\116"
- + "\5\0\1\u011f\1\126\2\0\2\u011f\1\132\5\0\1\132"
- + "\53\0\2\14\7\0\7\14\3\0\4\14\1\u0120\22\14"
- + "\27\0\2\14\7\0\7\14\3\0\1\14\1\u0121\25\14"
- + "\27\0\2\14\7\0\7\14\3\0\10\14\1\u0122\16\14"
- + "\27\0\2\14\7\0\7\14\3\0\20\14\1\u0123\6\14"
- + "\27\0\2\14\7\0\7\14\3\0\11\14\1\u0124\15\14"
- + "\27\0\2\14\7\0\7\14\3\0\12\14\1\u0125\14\14"
- + "\27\0\2\14\7\0\7\14\3\0\6\14\1\u0126\20\14"
- + "\27\0\2\14\7\0\7\14\3\0\12\14\1\u0127\14\14"
- + "\27\0\2\14\7\0\7\14\3\0\1\14\1\u0128\25\14"
- + "\27\0\2\14\7\0\7\14\3\0\5\14\1\u0129\21\14"
- + "\27\0\2\14\7\0\7\14\3\0\1\14\1\u012a\25\14"
- + "\27\0\2\14\7\0\7\14\3\0\6\14\1\u012b\20\14"
- + "\27\0\2\14\7\0\7\14\3\0\17\14\1\u012c\7\14"
- + "\27\0\2\14\7\0\7\14\3\0\7\14\1\u012d\17\14"
- + "\27\0\2\14\7\0\7\14\3\0\3\14\1\u012e\23\14"
- + "\27\0\2\14\7\0\7\14\3\0\1\14\1\u012f\25\14"
- + "\27\0\2\14\7\0\7\14\3\0\1\14\1\u0130\25\14"
- + "\27\0\2\14\7\0\7\14\3\0\2\14\1\u0131\24\14"
- + "\27\0\2\14\7\0\7\14\3\0\13\14\1\u0132\13\14"
- + "\27\0\2\14\7\0\7\14\3\0\11\14\1\u0133\15\14"
- + "\27\0\2\14\7\0\7\14\3\0\23\14\1\u0134\3\14"
- + "\27\0\2\14\7\0\7\14\3\0\2\14\1\u0135\24\14"
- + "\27\0\2\14\7\0\7\14\3\0\16\14\1\u0136\10\14"
- + "\27\0\2\14\7\0\7\14\3\0\11\14\1\u0137\15\14"
- + "\27\0\2\14\7\0\7\14\3\0\2\14\1\u0138\24\14"
- + "\27\0\2\14\7\0\7\14\3\0\2\14\1\u0139\24\14"
- + "\27\0\2\14\7\0\7\14\3\0\3\14\1\u013a\23\14"
- + "\27\0\2\14\7\0\7\14\3\0\3\14\1\u013b\23\14"
- + "\27\0\2\14\7\0\7\14\3\0\12\14\1\u013c\14\14"
- + "\21\0\1\335\2\0\11\335\1\u0111\1\335\1\u0111\62\335"
- + "\6\0\1\u013d\12\0\2\u013d\2\0\1\u013d\3\0\27\u013d"
- + "\27\0\1\u013e\12\0\2\u013e\2\0\1\u013e\3\0\27\u013e"
- + "\27\0\1\u0118\5\0\1\u0115\1\u0116\3\0\2\u0118\2\0"
- + "\1\u0118\3\0\27\u0118\35\0\1\u0116\1\0\1\u013f\70\0"
- + "\1\u0140\1\u0117\3\0\1\105\1\341\2\0\2\u0117\2\u0140"
- + "\2\u0117\1\u0140\3\0\27\u0140\27\0\2\u0118\1\u0141\3\0"
- + "\1\u0142\1\u0116\1\0\7\u0118\3\0\27\u0118\27\0\1\u011b"
- + "\1\u0119\3\0\1\247\1\345\1\346\1\0\2\u0119\2\u011b"
- + "\2\u0119\1\u011b\3\0\27\u011b\21\0\1\u011a\2\0\13\u011a"
- + "\1\u0143\62\u011a\6\0\2\u011b\1\u011c\2\0\1\247\1\345"
- + "\1\346\1\0\7\u011b\3\0\27\u011b\27\0\1\u0144\12\0"
- + "\2\u0144\2\0\1\u0144\3\0\27\u0144\35\0\1\u011d\1\346"
- + "\102\0\2\u0145\1\0\4\u0145\3\0\1\u0145\1\0\2\u0145"
- + "\1\0\1\u0145\6\0\2\u0145\43\0\1\116\5\0\1\u0146"
- + "\1\126\2\0\2\u0146\1\132\5\0\1\132\53\0\2\14"
- + "\7\0\7\14\3\0\10\14\1\u0147\16\14\27\0\2\14"
- + "\7\0\7\14\3\0\14\14\1\u0148\12\14\27\0\2\14"
- + "\7\0\7\14\3\0\10\14\1\u0149\16\14\27\0\2\14"
- + "\7\0\7\14\3\0\5\14\1\u014a\21\14\27\0\2\14"
- + "\7\0\7\14\3\0\20\14\1\u014b\6\14\27\0\2\14"
- + "\7\0\7\14\3\0\12\14\1\u014c\14\14\27\0\2\14"
- + "\7\0\7\14\3\0\21\14\1\u014d\5\14\27\0\2\14"
- + "\7\0\7\14\3\0\15\14\1\u014e\11\14\27\0\2\14"
- + "\7\0\7\14\3\0\10\14\1\u014f\16\14\27\0\2\14"
- + "\7\0\7\14\3\0\10\14\1\u0150\4\14\1\u0151\11\14"
- + "\27\0\2\14\7\0\7\14\3\0\11\14\1\u0152\15\14"
- + "\27\0\2\14\7\0\7\14\3\0\23\14\1\u0153\3\14"
- + "\27\0\2\14\7\0\7\14\3\0\16\14\1\u0154\10\14"
- + "\27\0\2\14\7\0\7\14\3\0\2\14\1\u0155\24\14"
- + "\27\0\2\14\7\0\7\14\3\0\12\14\1\u0156\14\14"
- + "\27\0\2\14\7\0\7\14\3\0\16\14\1\u0157\10\14"
- + "\27\0\2\14\7\0\7\14\3\0\12\14\1\u0158\14\14"
- + "\27\0\2\14\7\0\7\14\3\0\5\14\1\u0159\21\14"
- + "\27\0\2\14\7\0\7\14\3\0\11\14\1\u015a\15\14"
- + "\27\0\2\14\7\0\7\14\3\0\26\14\1\u015b\27\0"
- + "\2\14\7\0\7\14\3\0\5\14\1\u015c\21\14\27\0"
- + "\2\u013d\3\0\1\u0113\3\0\7\u013d\3\0\27\u013d\27\0"
- + "\1\u0140\1\u013e\3\0\1\105\1\u0115\1\u0116\1\0\2\u013e"
- + "\2\u0140\2\u013e\1\u0140\3\0\27\u0140\21\0\1\u013f\2\0"
- + "\13\u013f\1\u015d\62\u013f\6\0\2\u0140\1\u0141\2\0\1\105"
- + "\1\u0115\1\u0116\1\0\7\u0140\3\0\27\u0140\27\0\1\u015e"
- + "\12\0\2\u015e\2\0\1\u015e\3\0\27\u015e\35\0\1\u0142"
- + "\1\u0116\63\0\1\u011a\2\0\10\u011a\1\u015f\1\u0143\1\u011a"
- + "\1\u0143\62\u011a\6\0\2\u0144\4\0\1\u011d\1\346\1\0"
- + "\7\u0144\3\0\27\u0144\40\0\2\u0160\1\0\4\u0160\3\0"
- + "\1\u0160\1\0\2\u0160\1\0\1\u0160\6\0\2\u0160\43\0"
- + "\1\116\5\0\1\u0161\1\126\2\0\2\u0161\1\132\5\0"
- + "\1\132\53\0\2\14\7\0\7\14\3\0\6\14\1\u0162"
- + "\20\14\27\0\2\14\7\0\7\14\3\0\13\14\1\u0163"
- + "\13\14\27\0\2\14\7\0\7\14\3\0\14\14\1\u0164"
- + "\12\14\27\0\2\14\7\0\7\14\3\0\3\14\1\u0165"
- + "\23\14\27\0\2\14\7\0\7\14\3\0\5\14\1\u0166"
- + "\21\14\27\0\2\14\7\0\7\14\3\0\3\14\1\u0167"
- + "\23\14\27\0\2\14\7\0\7\14\3\0\3\14\1\u0168"
- + "\23\14\27\0\2\14\7\0\7\14\3\0\2\14\1\u0169"
- + "\24\14\27\0\2\14\7\0\7\14\3\0\11\14\1\u016a"
- + "\15\14\27\0\2\14\7\0\7\14\3\0\5\14\1\u016b"
- + "\21\14\27\0\2\14\7\0\7\14\3\0\22\14\1\u016c"
- + "\4\14\27\0\2\14\7\0\7\14\3\0\7\14\1\u016d"
- + "\17\14\27\0\2\14\7\0\7\14\3\0\11\14\1\u016e"
- + "\15\14\27\0\2\14\7\0\7\14\3\0\2\14\1\u016f"
- + "\24\14\27\0\2\14\7\0\7\14\3\0\2\14\1\u0170"
- + "\24\14\21\0\1\u013f\2\0\10\u013f\1\u0171\1\u015d\1\u013f"
- + "\1\u015d\62\u013f\6\0\2\u015e\4\0\1\u0142\1\u0116\1\0"
- + "\7\u015e\3\0\27\u015e\40\0\2\u0172\1\0\4\u0172\3\0"
- + "\1\u0172\1\0\2\u0172\1\0\1\u0172\6\0\2\u0172\43\0"
- + "\1\116\5\0\1\u0173\1\126\2\0\2\u0173\1\132\5\0"
- + "\1\132\53\0\2\14\7\0\7\14\3\0\2\14\1\u0174"
- + "\24\14\27\0\2\14\7\0\7\14\3\0\2\14\1\u0175"
- + "\24\14\27\0\2\14\7\0\7\14\3\0\5\14\1\u0176"
- + "\21\14\27\0\2\14\7\0\7\14\3\0\2\14\1\u0177"
- + "\24\14\27\0\2\14\7\0\7\14\3\0\16\14\1\u0178"
- + "\10\14\27\0\2\14\7\0\7\14\3\0\5\14\1\u0179"
- + "\21\14\27\0\2\14\7\0\7\14\3\0\10\14\1\u017a"
- + "\16\14\27\0\2\14\7\0\7\14\3\0\10\14\1\u017b"
- + "\16\14\27\0\2\14\7\0\7\14\3\0\2\14\1\u017c"
- + "\24\14\40\0\2\u017d\1\0\4\u017d\3\0\1\u017d\1\0"
- + "\2\u017d\1\0\1\u017d\6\0\2\u017d\43\0\1\116\5\0"
- + "\1\u017e\1\126\2\0\2\u017e\1\132\5\0\1\132\53\0"
- + "\2\14\7\0\7\14\3\0\2\14\1\u017f\24\14\27\0"
- + "\2\14\7\0\7\14\3\0\7\14\1\u0180\17\14\27\0"
- + "\2\14\7\0\7\14\3\0\2\14\1\u0181\24\14\27\0"
- + "\2\14\7\0\7\14\3\0\11\14\1\u0182\15\14\27\0"
- + "\2\14\7\0\7\14\3\0\14\14\1\u0183\12\14\40\0"
- + "\2\u0184\1\0\4\u0184\3\0\1\u0184\1\0\2\u0184\1\0"
- + "\1\u0184\6\0\2\u0184\43\0\1\116\5\0\1\u0185\1\126"
- + "\2\0\2\u0185\1\132\5\0\1\132\53\0\2\14\7\0"
- + "\7\14\3\0\15\14\1\u0186\11\14\27\0\2\14\7\0"
- + "\7\14\3\0\6\14\1\u0187\20\14\32\0\1\116\5\0"
- + "\1\u0188\1\126\2\0\2\u0188\1\132\5\0\1\132\56\0"
- + "\1\116\5\0\1\u0189\1\126\2\0\2\u0189\1\132\5\0"
- + "\1\132\56\0\1\116\5\0\1\u018a\1\126\2\0\2\u018a"
- + "\1\132\5\0\1\132\56\0\1\116\5\0\1\u018b\1\126"
- + "\2\0\2\u018b\1\132\5\0\1\132\56\0\1\116\5\0"
- + "\1\u018c\1\126\2\0\2\u018c\1\132\5\0\1\132\56\0"
- + "\1\116\5\0\1\u018d\1\126\2\0\2\u018d\1\132\5\0"
- + "\1\132\45\0";
+ return j;
+ }
- private static int[] zzUnpackTrans() {
- int[] result = new int[18655];
- int offset = 0;
- offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);
- return result;
- }
+ /** the input device */
+ private java.io.Reader zzReader;
- 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;
+ /** the current state of the DFA */
+ private int zzState;
- /* 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
- * aState
- */
- private static final int[] ZZ_ATTRIBUTE = zzUnpackAttribute();
- private static final String ZZ_ATTRIBUTE_PACKED_0 =
- "\5\0\1\11\1\1\1\11\11\1\1\11\3\1\1\11"
- + "\21\1\10\11\1\1\2\11\5\1\1\11\2\1\2\11"
- + "\3\1\1\11\2\1\1\11\1\1\1\11\2\1\1\0"
- + "\3\11\2\0\1\1\1\0\1\1\1\11\1\1\2\11"
- + "\2\1\1\0\2\1\1\0\2\11\50\1\13\11\2\1"
- + "\7\11\6\0\1\1\1\11\2\0\1\11\3\0\1\11"
- + "\1\0\1\11\1\1\1\11\4\1\1\0\52\1\1\11"
- + "\7\0\1\11\5\0\1\11\50\1\1\0\1\11\12\0"
- + "\37\1\10\0\30\1\2\0\45\1\1\11\11\1";
+ /** the current lexical state */
+ private int zzLexicalState = YYINITIAL;
- private static int[] zzUnpackAttribute() {
- int[] result = new int[397];
- int offset = 0;
- offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
- return result;
- }
+ /** this buffer contains the current text to be matched and is
+ the source of the yytext() string */
+ private char zzBuffer[] = new char[ZZ_BUFFERSIZE];
- 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;
+ /** 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: */
- /* user code: */
StringBuffer string = new StringBuffer();
- private static String xmlTagName = "";
+
+ private static String xmlTagName="";
public int yychar() {
return yychar;
}
- private Stack pushedBack = new Stack();
+
+ private Stack pushedBack=new Stack();
public int yyline() {
- return yyline + 1;
+ return yyline+1;
}
public void pushback(ParsedSymbol symb) {
@@ -750,973 +747,862 @@ public final class ActionScriptLexer {
last = null;
}
ParsedSymbol last;
-
- public ParsedSymbol lex() throws java.io.IOException, ParseException {
- if (!pushedBack.isEmpty()) {
- return last = pushedBack.pop();
+ public ParsedSymbol lex() throws java.io.IOException, ParseException{
+ if(!pushedBack.isEmpty()){
+ return last=pushedBack.pop();
}
- return last = yylex();
+ return last=yylex();
}
- /**
- * 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 ActionScriptLexer(java.io.Reader in) {
- this.zzReader = in;
+
+
+ /**
+ * 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 ActionScriptLexer(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 ActionScriptLexer(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 < 2228) {
+ int count = packed.charAt(i++);
+ char value = packed.charAt(i++);
+ do map[j++] = value; while (--count > 0);
+ }
+ return map;
+ }
+
+
+ /**
+ * Refills the input buffer.
+ *
+ * @return false, 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;
}
- /**
- * 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 ActionScriptLexer(java.io.InputStream in) {
- this(new java.io.InputStreamReader(in));
+ /* 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;
}
- /**
- * 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 < 2228) {
- int count = packed.charAt(i++);
- char value = packed.charAt(i++);
- do {
- map[j++] = value;
- } while (--count > 0);
- }
- return map;
+ /* finally: fill the buffer with new input */
+ int numRead = zzReader.read(zzBuffer, zzEndRead,
+ zzBuffer.length-zzEndRead);
+
+ if (numRead > 0) {
+ zzEndRead+= numRead;
+ return false;
}
-
- /**
- * Refills the input buffer.
- *
- * @return false, 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
+ // 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;
+ }
}
- /**
- * Closes the input stream.
- */
- public final void yyclose() throws java.io.IOException {
- zzAtEOF = true; /* indicate end of file */
- zzEndRead = zzStartRead; /* invalidate buffer */
+ // numRead < 0
+ return true;
+ }
- if (zzReader != null) {
- zzReader.close();
- }
+
+ /**
+ * 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
+ * cannot be reused (internal buffer is discarded and lost).
+ * Lexical state is set to ZZ_INITIAL.
+ *
+ * @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 pos 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];
}
- /**
- * 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
- * cannot be reused (internal buffer is discarded and lost). Lexical
- * state is set to ZZ_INITIAL.
- *
- * @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;
- }
+ throw new Error(message);
+ }
- /**
- * 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;
- }
+ /**
+ * 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);
- /**
- * Returns the text matched by the current regular expression.
- */
- public final String yytext() {
- return new String(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead);
- }
+ zzMarkedPos -= number;
+ }
- /**
- * Returns the character at position pos 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;
- }
+ /**
+ * 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 ParsedSymbol yylex() throws java.io.IOException, ParseException {
+ int zzInput;
+ int zzAction;
- /**
- * 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];
- }
+ // cached fields:
+ int zzCurrentPosL;
+ int zzMarkedPosL;
+ int zzEndReadL = zzEndRead;
+ char [] zzBufferL = zzBuffer;
+ char [] zzCMapL = ZZ_CMAP;
- throw new Error(message);
- }
+ int [] zzTransL = ZZ_TRANS;
+ int [] zzRowMapL = ZZ_ROWMAP;
+ int [] zzAttrL = ZZ_ATTRIBUTE;
- /**
- * 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);
- }
+ while (true) {
+ zzMarkedPosL = zzMarkedPos;
- zzMarkedPos -= number;
- }
+ yychar+= zzMarkedPosL-zzStartRead;
- /**
- * 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 ParsedSymbol yylex() throws java.io.IOException, ParseException {
- int zzInput;
- int zzAction;
+ zzAction = -1;
- // cached fields:
- int zzCurrentPosL;
- int zzMarkedPosL;
- int zzEndReadL = zzEndRead;
- char[] zzBufferL = zzBuffer;
- char[] zzCMapL = ZZ_CMAP;
+ zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL;
+
+ zzState = ZZ_LEXSTATE[zzLexicalState];
- int[] zzTransL = ZZ_TRANS;
- int[] zzRowMapL = ZZ_ROWMAP;
- int[] zzAttrL = ZZ_ATTRIBUTE;
+ zzForAction: {
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;
- }
- }
-
- }
+
+ 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;
}
-
- // store back cached position
- zzMarkedPos = zzMarkedPosL;
-
- switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) {
- case 27: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.BITAND, yytext());
- }
- case 128:
- break;
- case 58: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_BITOR, yytext());
- }
- case 129:
- break;
- case 60: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_PLUS, yytext());
- }
- case 130:
- break;
- case 102: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.SUPER, yytext());
- }
- case 131:
- break;
- case 106: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.RETURN, yytext());
- }
- case 132:
- break;
- case 20: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.BRACKET_OPEN, yytext());
- }
- case 133:
- break;
- case 42: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.SHIFT_LEFT, yytext());
- }
- case 134:
- break;
- case 11: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN, yytext());
- }
- case 135:
- break;
- case 97: {
- string.append(yytext());
- String endtagname = yytext();
- endtagname = endtagname.substring(2, endtagname.length() - 1);
- if (endtagname.equals(xmlTagName)) {
- yybegin(YYINITIAL);
- return new ParsedSymbol(SymbolGroup.XML, SymbolType.XML, string.toString());
- }
- }
- case 136:
- break;
- case 51: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.IS, yytext());
- }
- case 137:
- break;
- case 83: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.USE, yytext());
- }
- case 138:
- break;
- case 5: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.MULTIPLY, yytext());
- }
- case 139:
- break;
- case 126: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.INSTANCEOF, yytext());
- }
- case 140:
- break;
- case 52: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.IN, yytext());
- }
- case 141:
- break;
- case 122: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.FUNCTION, yytext());
- }
- case 142:
- break;
- case 117: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.PRIVATE, yytext());
- }
- case 143:
- break;
- case 22: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.SEMICOLON, yytext());
- }
- case 144:
- break;
- case 96: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.VOID, yytext());
- }
- case 145:
- break;
- case 84: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.FOR, yytext());
- }
- case 146:
- break;
- case 3: { /*ignore*/
-
- }
- case 147:
- break;
- case 120: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.OVERRIDE, yytext());
- }
- case 148:
- break;
- case 92: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.NULL, yytext());
- }
- case 149:
- break;
- case 72: {
- string.append('\t');
- }
- case 150:
- break;
- case 66: {
- char val = (char) Integer.parseInt(yytext().substring(1), 8);
- string.append(val);
- }
- case 151:
- break;
- case 127: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.IMPLEMENTS, yytext());
- }
- case 152:
- break;
- case 49: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.DECREMENT, yytext());
- }
- case 153:
- break;
- case 18: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.CURLY_OPEN, yytext());
- }
- case 154:
- break;
- case 64: {
- throw new ParseException("Illegal escape sequence \"" + yytext() + "\"", yyline + 1);
- }
- case 155:
- break;
- case 59: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.OR, yytext());
- }
- case 156:
- break;
- case 10: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.GREATER_THAN, yytext());
- }
- case 157:
- break;
- case 34: {
- yybegin(YYINITIAL);
- yyline++;
- }
- case 158:
- break;
- case 103: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.THROW, yytext());
- }
- case 159:
- break;
- case 95: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.WITH, yytext());
- }
- case 160:
- break;
- case 75: {
- string.setLength(0);
- yybegin(XML);
- String s = yytext();
- s = s.substring(1, s.length() - 1);
- if (s.contains(" ")) {
- s = s.substring(0, s.indexOf(" "));
- }
- xmlTagName = s;
- string.append(yytext());
- }
- case 161:
- break;
- case 13: {
- return new ParsedSymbol(SymbolGroup.INTEGER, SymbolType.INTEGER, new Long(Long.parseLong((yytext()))));
- }
- case 162:
- break;
- case 15: {
- string.setLength(0);
- yybegin(CHARLITERAL);
- }
- case 163:
- break;
- case 54: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.DO, yytext());
- }
- case 164:
- break;
- case 53: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.IF, yytext());
- }
- case 165:
- break;
- case 80: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.SET, yytext());
- }
- case 166:
- break;
- case 29: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.PLUS, yytext());
- }
- case 167:
- break;
- case 21: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.BRACKET_CLOSE, yytext());
- }
- case 168:
- break;
- case 100: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.CONST, yytext());
- }
- case 169:
- break;
- case 71: {
- string.append('\n');
- }
- case 170:
- break;
- case 76: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_SHIFT_LEFT, yytext());
- }
- case 171:
- break;
- case 43: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.LOWER_EQUAL, yytext());
- }
- case 172:
- break;
- case 56: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_BITAND, yytext());
- }
- case 173:
- break;
- case 41: {
- return new ParsedSymbol(SymbolGroup.DOUBLE, SymbolType.DOUBLE, new Double(Double.parseDouble((yytext()))));
- }
- case 174:
- break;
- case 86: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.GET, yytext());
- }
- case 175:
- break;
- case 35: {
- yybegin(YYINITIAL);
- // length also includes the trailing quote
- return new ParsedSymbol(SymbolGroup.STRING, SymbolType.STRING, string.toString());
- }
- case 176:
- break;
- case 125: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.PROTECTED, yytext());
- }
- case 177:
- break;
- case 111: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.DELETE, yytext());
- }
- case 178:
- break;
- case 91: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.CASE, yytext());
- }
- case 179:
- break;
- case 104: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.FALSE, yytext());
- }
- case 180:
- break;
- case 4: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.DIVIDE, yytext());
- }
- case 181:
- break;
- case 40: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.NAMESPACE_OP, yytext());
- }
- case 182:
- break;
- case 17: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.PARENT_CLOSE, yytext());
- }
- case 183:
- break;
- case 31: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.MODULO, yytext());
- }
- case 184:
- break;
- case 115: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.DYNAMIC, yytext());
- }
- case 185:
- break;
- case 90: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.ELSE, yytext());
- }
- case 186:
- break;
- case 113: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.EXTENDS, yytext());
- }
- case 187:
- break;
- case 107: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.STATIC, yytext());
- }
- case 188:
- break;
- case 14: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.MINUS, yytext());
- }
- case 189:
- break;
- case 81: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.NEW, yytext());
- }
- case 190:
- break;
- case 19: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.CURLY_CLOSE, yytext());
- }
- case 191:
- break;
- case 89: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.EACH, yytext());
- }
- case 192:
- break;
- case 28: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.BITOR, yytext());
- }
- case 193:
- break;
- case 110: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.IMPORT, yytext());
- }
- case 194:
- break;
- case 70: {
- string.append('\r');
- }
- case 195:
- break;
- case 26: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.TERNAR, yytext());
- }
- case 196:
- break;
- case 2: {
- yyline++;
- }
- case 197:
- break;
- case 85: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.VAR, yytext());
- }
- case 198:
- break;
- case 69: {
- string.append('\b');
- }
- case 199:
- break;
- case 82: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.TRY, yytext());
- }
- case 200:
- break;
- case 46: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.EQUALS, yytext());
- }
- case 201:
- break;
- case 62: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_XOR, yytext());
- }
- case 202:
- break;
- case 99: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.CATCH, yytext());
- }
- case 203:
- break;
- case 65: {
- string.append('\"');
- }
- case 204:
- break;
- case 8: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.DOT, yytext());
- }
- case 205:
- break;
- case 30: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.XOR, yytext());
- }
- case 206:
- break;
- case 9: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.LOWER_THAN, yytext());
- }
- case 207:
- break;
- case 78: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_SHIFT_RIGHT, yytext());
- }
- case 208:
- break;
- case 50: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.AS, yytext());
- }
- case 209:
- break;
- case 68: {
- string.append('\'');
- }
- case 210:
- break;
- case 67: {
- string.append('\\');
- }
- case 211:
- break;
- case 124: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.INTERFACE, yytext());
- }
- case 212:
- break;
- case 112: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.PUBLIC, yytext());
- }
- case 213:
- break;
- case 105: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.WHILE, yytext());
- }
- case 214:
- break;
- case 38: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_DIVIDE, yytext());
- }
- case 215:
- break;
- case 118: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.PACKAGE, yytext());
- }
- case 216:
- break;
- case 109: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.TYPEOF, yytext());
- }
- case 217:
- break;
- case 63: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_MODULO, yytext());
- }
- case 218:
- break;
- case 108: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.SWITCH, yytext());
- }
- case 219:
- break;
- case 77: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.USHIFT_RIGHT, yytext());
- }
- case 220:
- break;
- case 121: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.INTERNAL, yytext());
- }
- case 221:
- break;
- case 37: {
- yybegin(XML);
- string.append(yytext());
- }
- case 222:
- break;
- case 114: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.DEFAULT, yytext());
- }
- case 223:
- break;
- case 32: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ATTRIBUTE, yytext());
- }
- case 224:
- break;
- case 16: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.PARENT_OPEN, yytext());
- }
- case 225:
- break;
- case 44: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.SHIFT_RIGHT, yytext());
- }
- case 226:
- break;
- case 101: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.CLASS, yytext());
- }
- case 227:
- break;
- case 73: {
- string.append('\f');
- }
- case 228:
- break;
- case 88: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_USHIFT_RIGHT, yytext());
- }
- case 229:
- break;
- case 39: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_MULTIPLY, yytext());
- }
- case 230:
- break;
- case 79: {
- return new ParsedSymbol(SymbolGroup.INTEGER, SymbolType.INTEGER, new Long(Long.parseLong(yytext().substring(2), 16)));
- }
- case 231:
- break;
- case 93: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.TRUE, yytext());
- }
- case 232:
- break;
- case 23: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.COMMA, yytext());
- }
- case 233:
- break;
- case 74: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.REST, yytext());
- }
- case 234:
- break;
- case 61: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.INCREMENT, yytext());
- }
- case 235:
- break;
- case 47: {
- return new ParsedSymbol(SymbolGroup.INTEGER, SymbolType.INTEGER, new Long(Long.parseLong(yytext(), 8)));
- }
- case 236:
- break;
- case 33: {
- string.append(yytext());
- }
- case 237:
- break;
- case 12: {
- string.setLength(0);
- yybegin(STRING);
- }
- case 238:
- break;
- case 98: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.BREAK, yytext());
- }
- case 239:
- break;
- case 57: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.AND, yytext());
- }
- case 240:
- break;
- case 7: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.COLON, yytext());
- }
- case 241:
- break;
- case 123: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.NAMESPACE, yytext());
- }
- case 242:
- break;
- case 119: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.CONTINUE, yytext());
- }
- case 243:
- break;
- case 6: {
- return new ParsedSymbol(SymbolGroup.IDENTIFIER, SymbolType.IDENTIFIER, yytext());
- }
- case 244:
- break;
- case 116: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.FINALLY, yytext());
- }
- case 245:
- break;
- case 87: {
- String t = yytext();
- return new ParsedSymbol(SymbolGroup.TYPENAME, SymbolType.TYPENAME, t.substring(2, t.length() - 1));
- }
- case 246:
- break;
- case 24: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.NOT, yytext());
- }
- case 247:
- break;
- case 25: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.NEGATE, yytext());
- }
- case 248:
- break;
- case 45: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.GREATER_EQUAL, yytext());
- }
- case 249:
- break;
- case 48: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_MINUS, yytext());
- }
- case 250:
- break;
- case 55: {
- return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.NOT_EQUAL, yytext());
- }
- case 251:
- break;
- case 36: {
- string.append(yytext());
- yyline++;
- }
- case 252:
- break;
- case 94: {
- return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.THIS, yytext());
- }
- case 253:
- break;
- case 1: {
- }
- case 254:
- break;
- default:
- if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
- zzAtEOF = true;
- {
- return null;
- }
- } else {
- zzScanError(ZZ_NO_MATCH);
- }
+ 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 27:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.BITAND,yytext());
+ }
+ case 130: break;
+ case 58:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_BITOR,yytext());
+ }
+ case 131: break;
+ case 60:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_PLUS,yytext());
+ }
+ case 132: break;
+ case 104:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.SUPER,yytext());
+ }
+ case 133: break;
+ case 108:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.RETURN,yytext());
+ }
+ case 134: break;
+ case 20:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.BRACKET_OPEN,yytext());
+ }
+ case 135: break;
+ case 42:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.SHIFT_LEFT,yytext());
+ }
+ case 136: break;
+ case 11:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN,yytext());
+ }
+ case 137: break;
+ case 99:
+ { string.append( yytext() );
+ String endtagname=yytext();
+ endtagname=endtagname.substring(2,endtagname.length()-1);
+ if(endtagname.equals(xmlTagName)){
+ yybegin(YYINITIAL);
+ return new ParsedSymbol(SymbolGroup.XML,SymbolType.XML, string.toString());
+ }
+ }
+ case 138: break;
+ case 51:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.IS,yytext());
+ }
+ case 139: break;
+ case 84:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.USE,yytext());
+ }
+ case 140: break;
+ case 5:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.MULTIPLY,yytext());
+ }
+ case 141: break;
+ case 128:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.INSTANCEOF,yytext());
+ }
+ case 142: break;
+ case 52:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.IN,yytext());
+ }
+ case 143: break;
+ case 124:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.FUNCTION,yytext());
+ }
+ case 144: break;
+ case 119:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.PRIVATE,yytext());
+ }
+ case 145: break;
+ case 22:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.SEMICOLON,yytext());
+ }
+ case 146: break;
+ case 98:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.VOID,yytext());
+ }
+ case 147: break;
+ case 85:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.FOR,yytext());
+ }
+ case 148: break;
+ case 3:
+ { /*ignore*/
+ }
+ case 149: break;
+ case 122:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.OVERRIDE,yytext());
+ }
+ case 150: break;
+ case 94:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.NULL,yytext());
+ }
+ case 151: break;
+ case 72:
+ { string.append( '\t' );
+ }
+ case 152: break;
+ case 66:
+ { char val = (char) Integer.parseInt(yytext().substring(1),8);
+ string.append( val );
+ }
+ case 153: break;
+ case 129:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.IMPLEMENTS,yytext());
+ }
+ case 154: break;
+ case 49:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.DECREMENT,yytext());
+ }
+ case 155: break;
+ case 18:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.CURLY_OPEN,yytext());
+ }
+ case 156: break;
+ case 64:
+ { throw new ParseException("Illegal escape sequence \""+yytext()+"\"",yyline+1);
+ }
+ case 157: break;
+ case 59:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.OR,yytext());
+ }
+ case 158: break;
+ case 10:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.GREATER_THAN,yytext());
+ }
+ case 159: break;
+ case 34:
+ { yybegin(YYINITIAL); yyline++;
+ }
+ case 160: break;
+ case 105:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.THROW,yytext());
+ }
+ case 161: break;
+ case 97:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.WITH,yytext());
+ }
+ case 162: break;
+ case 75:
+ { string.setLength(0);
+ yybegin(XML);
+ String s=yytext();
+ s=s.substring(1,s.length()-1);
+ if(s.contains(" ")){
+ s=s.substring(0,s.indexOf(" "));
+ }
+ xmlTagName = s;
+ string.append(yytext());
+ }
+ case 163: break;
+ case 13:
+ { return new ParsedSymbol(SymbolGroup.INTEGER,SymbolType.INTEGER,new Long(Long.parseLong((yytext()))));
+ }
+ case 164: break;
+ case 15:
+ { string.setLength(0);
+ yybegin(CHARLITERAL);
+ }
+ case 165: break;
+ case 54:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.DO,yytext());
+ }
+ case 166: break;
+ case 53:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.IF,yytext());
+ }
+ case 167: break;
+ case 81:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.SET,yytext());
+ }
+ case 168: break;
+ case 29:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.PLUS,yytext());
+ }
+ case 169: break;
+ case 21:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.BRACKET_CLOSE,yytext());
+ }
+ case 170: break;
+ case 102:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.CONST,yytext());
+ }
+ case 171: break;
+ case 71:
+ { string.append( '\n' );
+ }
+ case 172: break;
+ case 76:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_SHIFT_LEFT,yytext());
+ }
+ case 173: break;
+ case 43:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.LOWER_EQUAL,yytext());
+ }
+ case 174: break;
+ case 56:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_BITAND,yytext());
+ }
+ case 175: break;
+ case 41:
+ { return new ParsedSymbol(SymbolGroup.DOUBLE,SymbolType.DOUBLE,new Double(Double.parseDouble((yytext()))));
+ }
+ case 176: break;
+ case 87:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.GET,yytext());
+ }
+ case 177: break;
+ case 35:
+ { yybegin(YYINITIAL);
+ // length also includes the trailing quote
+ return new ParsedSymbol(SymbolGroup.STRING,SymbolType.STRING,string.toString());
+ }
+ case 178: break;
+ case 127:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.PROTECTED,yytext());
+ }
+ case 179: break;
+ case 113:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.DELETE,yytext());
+ }
+ case 180: break;
+ case 93:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.CASE,yytext());
+ }
+ case 181: break;
+ case 88:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.STRICT_NOT_EQUAL,yytext());
+ }
+ case 182: break;
+ case 106:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.FALSE,yytext());
+ }
+ case 183: break;
+ case 4:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.DIVIDE,yytext());
+ }
+ case 184: break;
+ case 40:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.NAMESPACE_OP,yytext());
+ }
+ case 185: break;
+ case 17:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.PARENT_CLOSE,yytext());
+ }
+ case 186: break;
+ case 31:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.MODULO,yytext());
+ }
+ case 187: break;
+ case 117:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.DYNAMIC,yytext());
+ }
+ case 188: break;
+ case 92:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.ELSE,yytext());
+ }
+ case 189: break;
+ case 79:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.STRICT_EQUALS,yytext());
+ }
+ case 190: break;
+ case 115:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.EXTENDS,yytext());
+ }
+ case 191: break;
+ case 109:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.STATIC,yytext());
+ }
+ case 192: break;
+ case 14:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.MINUS,yytext());
+ }
+ case 193: break;
+ case 82:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.NEW,yytext());
+ }
+ case 194: break;
+ case 19:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.CURLY_CLOSE,yytext());
+ }
+ case 195: break;
+ case 91:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.EACH,yytext());
+ }
+ case 196: break;
+ case 28:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.BITOR,yytext());
+ }
+ case 197: break;
+ case 112:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.IMPORT,yytext());
+ }
+ case 198: break;
+ case 70:
+ { string.append( '\r' );
+ }
+ case 199: break;
+ case 26:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.TERNAR,yytext());
+ }
+ case 200: break;
+ case 2:
+ { yyline++;
+ }
+ case 201: break;
+ case 86:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.VAR,yytext());
+ }
+ case 202: break;
+ case 69:
+ { string.append( '\b' );
+ }
+ case 203: break;
+ case 83:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.TRY,yytext());
+ }
+ case 204: break;
+ case 46:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.EQUALS,yytext());
+ }
+ case 205: break;
+ case 62:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_XOR,yytext());
+ }
+ case 206: break;
+ case 101:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.CATCH,yytext());
+ }
+ case 207: break;
+ case 65:
+ { string.append( '\"' );
+ }
+ case 208: break;
+ case 8:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.DOT,yytext());
+ }
+ case 209: break;
+ case 30:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.XOR,yytext());
+ }
+ case 210: break;
+ case 9:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.LOWER_THAN,yytext());
+ }
+ case 211: break;
+ case 78:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_SHIFT_RIGHT,yytext());
+ }
+ case 212: break;
+ case 50:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.AS,yytext());
+ }
+ case 213: break;
+ case 68:
+ { string.append( '\'' );
+ }
+ case 214: break;
+ case 67:
+ { string.append( '\\' );
+ }
+ case 215: break;
+ case 126:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.INTERFACE,yytext());
+ }
+ case 216: break;
+ case 114:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.PUBLIC,yytext());
+ }
+ case 217: break;
+ case 107:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.WHILE,yytext());
+ }
+ case 218: break;
+ case 38:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_DIVIDE,yytext());
+ }
+ case 219: break;
+ case 120:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.PACKAGE,yytext());
+ }
+ case 220: break;
+ case 111:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.TYPEOF,yytext());
+ }
+ case 221: break;
+ case 63:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_MODULO,yytext());
+ }
+ case 222: break;
+ case 110:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.SWITCH,yytext());
+ }
+ case 223: break;
+ case 77:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.USHIFT_RIGHT,yytext());
+ }
+ case 224: break;
+ case 123:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.INTERNAL,yytext());
+ }
+ case 225: break;
+ case 37:
+ { yybegin(XML); string.append( yytext() );
+ }
+ case 226: break;
+ case 116:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.DEFAULT,yytext());
+ }
+ case 227: break;
+ case 32:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ATTRIBUTE,yytext());
+ }
+ case 228: break;
+ case 16:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.PARENT_OPEN,yytext());
+ }
+ case 229: break;
+ case 44:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.SHIFT_RIGHT,yytext());
+ }
+ case 230: break;
+ case 103:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.CLASS,yytext());
+ }
+ case 231: break;
+ case 73:
+ { string.append( '\f' );
+ }
+ case 232: break;
+ case 90:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_USHIFT_RIGHT,yytext());
+ }
+ case 233: break;
+ case 39:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_MULTIPLY,yytext());
+ }
+ case 234: break;
+ case 80:
+ { return new ParsedSymbol(SymbolGroup.INTEGER,SymbolType.INTEGER,new Long(Long.parseLong(yytext().substring(2),16)));
+ }
+ case 235: break;
+ case 95:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.TRUE,yytext());
+ }
+ case 236: break;
+ case 23:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.COMMA,yytext());
+ }
+ case 237: break;
+ case 74:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.REST,yytext());
+ }
+ case 238: break;
+ case 61:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.INCREMENT,yytext());
+ }
+ case 239: break;
+ case 47:
+ { return new ParsedSymbol(SymbolGroup.INTEGER,SymbolType.INTEGER,new Long(Long.parseLong(yytext(),8)));
+ }
+ case 240: break;
+ case 33:
+ { string.append( yytext() );
+ }
+ case 241: break;
+ case 12:
+ { string.setLength(0);
+ yybegin(STRING);
+ }
+ case 242: break;
+ case 100:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.BREAK,yytext());
+ }
+ case 243: break;
+ case 57:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.AND,yytext());
+ }
+ case 244: break;
+ case 7:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.COLON,yytext());
+ }
+ case 245: break;
+ case 125:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.NAMESPACE,yytext());
+ }
+ case 246: break;
+ case 121:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.CONTINUE,yytext());
+ }
+ case 247: break;
+ case 6:
+ { return new ParsedSymbol(SymbolGroup.IDENTIFIER,SymbolType.IDENTIFIER, yytext());
+ }
+ case 248: break;
+ case 118:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.FINALLY,yytext());
+ }
+ case 249: break;
+ case 89:
+ { String t=yytext(); return new ParsedSymbol(SymbolGroup.TYPENAME,SymbolType.TYPENAME,t.substring(2,t.length()-1));
+ }
+ case 250: break;
+ case 24:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.NOT,yytext());
+ }
+ case 251: break;
+ case 25:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.NEGATE,yytext());
+ }
+ case 252: break;
+ case 45:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.GREATER_EQUAL,yytext());
+ }
+ case 253: break;
+ case 48:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_MINUS,yytext());
+ }
+ case 254: break;
+ case 55:
+ { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.NOT_EQUAL,yytext());
+ }
+ case 255: break;
+ case 36:
+ { string.append( yytext() ); yyline++;
+ }
+ case 256: break;
+ case 96:
+ { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.THIS,yytext());
+ }
+ case 257: break;
+ case 1:
+ {
+ }
+ case 258: break;
+ default:
+ if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
+ zzAtEOF = true;
+ {
+ return new ParsedSymbol(SymbolGroup.EOF,SymbolType.EOF,null);
+ }
+ }
+ else {
+ zzScanError(ZZ_NO_MATCH);
+ }
+ }
}
+ }
+
+
}
diff --git a/trunk/src/com/jpexs/decompiler/flash/action/parser/script/ActionScriptParser.java b/trunk/src/com/jpexs/decompiler/flash/action/parser/script/ActionScriptParser.java
index 0a0b1a7a0..b1711583a 100644
--- a/trunk/src/com/jpexs/decompiler/flash/action/parser/script/ActionScriptParser.java
+++ b/trunk/src/com/jpexs/decompiler/flash/action/parser/script/ActionScriptParser.java
@@ -71,10 +71,11 @@ public class ActionScriptParser {
public static final int REGISTER_ARGUMENTS = 4;
public static final int REGISTER_THIS = 5;
public static final int REGISTER_GLOBAL = 6;
- private static long uniqLast=0;
- private static String uniqId(){
+ private static long uniqLast = 0;
+
+ private static String uniqId() {
uniqLast++;
- return ""+uniqLast;
+ return "" + uniqLast;
}
private static List commands(ActionScriptLexer lexer, HashMap registerVars, boolean inFunction, boolean inMethod) throws IOException, ParseException {
@@ -111,6 +112,13 @@ public class ActionScriptParser {
}
}
+ private static List nonempty(List list) {
+ if (list == null) {
+ return new ArrayList();
+ }
+ return list;
+ }
+
private static List typeToActions(List type, boolean set) throws IOException, ParseException {
List ret = new ArrayList();
if (type.isEmpty()) {
@@ -150,18 +158,18 @@ public class ActionScriptParser {
return ret;
}
- private static List variable(ActionScriptLexer lexer, HashMap registerVars,boolean inFunction,boolean inMethod) throws IOException, ParseException {
+ private static List variable(ActionScriptLexer lexer, HashMap registerVars, boolean inFunction, boolean inMethod) throws IOException, ParseException {
List ret = new ArrayList();
ParsedSymbol s = lex(lexer);
expected(s, lexer.yyline(), SymbolType.IDENTIFIER, SymbolType.THIS, SymbolType.SUPER);
if (registerVars.containsKey(s.value.toString())) {
ret.add(new ActionPush(new RegisterNumber(registerVars.get(s.value.toString()))));
} else {
- if(inMethod){
- ret.add(new ActionPush(new RegisterNumber(REGISTER_THIS)));
+ if (inMethod) {
+ ret.add(new ActionPush(new RegisterNumber(REGISTER_THIS)));
ret.add(new ActionPush(s.value));
ret.add(new ActionGetMember());
- }else{
+ } else {
ret.add(new ActionPush(s.value));
ret.add(new ActionGetVariable());
}
@@ -169,7 +177,7 @@ public class ActionScriptParser {
s = lex(lexer);
while (s.isType(SymbolType.DOT, SymbolType.BRACKET_OPEN)) {
if (s.type == SymbolType.BRACKET_OPEN) {
- ret.addAll(expression(lexer, registerVars,inFunction,inMethod));
+ ret.addAll(expression(lexer, registerVars, inFunction, inMethod));
expected(lexer, SymbolType.BRACKET_CLOSE);
ret.add(new ActionGetMember());
s = lex(lexer);
@@ -218,7 +226,7 @@ public class ActionScriptParser {
return ret;
}
- private static List call(ActionScriptLexer lexer, HashMap registerVars,boolean inFunction,boolean inMethod) throws IOException, ParseException {
+ private static List call(ActionScriptLexer lexer, HashMap registerVars, boolean inFunction, boolean inMethod) throws IOException, ParseException {
List ret = new ArrayList();
//expected(lexer, SymbolType.PARENT_OPEN); //MUST BE HANDLED BY CALLER
int cnt = 0;
@@ -228,7 +236,7 @@ public class ActionScriptParser {
lexer.pushback(s);
}
cnt++;
- ret.addAll(expression(lexer, registerVars,inFunction,inMethod));
+ ret.addAll(0,expression(lexer, registerVars, inFunction, inMethod));
s = lex(lexer);
expected(s, lexer.yyline(), SymbolType.COMMA, SymbolType.PARENT_CLOSE);
}
@@ -247,9 +255,10 @@ public class ActionScriptParser {
if (s.type != SymbolType.COMMA) {
lexer.pushback(s);
}
- expected(lexer, SymbolType.IDENTIFIER);
- s = lex(lexer);
+ s = lex(lexer);
+ expected(s,lexer.yyline(), SymbolType.IDENTIFIER);
paramNames.add(s.value.toString());
+ s = lex(lexer);
if (s.type == SymbolType.COLON) {
type(lexer);
s = lex(lexer);
@@ -270,7 +279,7 @@ public class ActionScriptParser {
registerVars.put("this", REGISTER_THIS);
registerVars.put("_global", REGISTER_GLOBAL);
for (int i = 0; i < paramNames.size(); i++) {
- registerVars.put(paramNames.get(i), 7 + i);
+ registerVars.put(paramNames.get(i), (7 + (paramNames.size()-i-1)));
}
boolean preloadParentFlag = false;
boolean preloadRootFlag = false;
@@ -350,6 +359,9 @@ public class ActionScriptParser {
registerMap.put(6, newpos);
newpos++;
}
+ if(newpos<1){
+ newpos=1;
+ }
for (int i = 0; i < paramNames.size(); i++) {
registerMap.put(7 + i, newpos);
paramRegs.add(newpos);
@@ -480,7 +492,7 @@ public class ActionScriptParser {
s = lex(lexer);
}
if (s.type == SymbolType.ASSIGN) {
- ifbody.addAll(expression(lexer, new HashMap(),false,false));
+ ifbody.addAll(expression(lexer, new HashMap(), false, false));
ifbody.add(new ActionPush(new RegisterNumber(isStatic ? 1 : 2)));
ifbody.add(new ActionPush(ident));
ifbody.add(new ActionSetMember());
@@ -547,10 +559,10 @@ public class ActionScriptParser {
List ret = new ArrayList();
System.out.println("command:");
ParsedSymbol s = lex(lexer);
- if (s == null) {
+ if (s.type == SymbolType.EOF) {
return null;
}
- switch (s.type) {
+ switch (s.type) {
case CLASS:
List classTypeStr = type(lexer);
s = lex(lexer);
@@ -593,17 +605,19 @@ public class ActionScriptParser {
ret.addAll(function(lexer, true, s.value.toString(), false));
break;
case NEW:
- ret.addAll(typeToActions(type(lexer), false));
+ List newcmds=new ArrayList();
+ newcmds.addAll(typeToActions(type(lexer), false));
expected(lexer, SymbolType.PARENT_OPEN);
- if (ret.get(ret.size() - 1) instanceof ActionGetMember) {
- ret.remove(ret.size() - 1);
- ret.addAll(call(lexer, registerVars,inFunction,inMethod));
- ret.add(new ActionNewMethod());
- } else if (ret.get(ret.size() - 1) instanceof ActionGetVariable) {
- ret.remove(ret.size() - 1);
- ret.addAll(call(lexer, registerVars,inFunction,inMethod));
- ret.add(new ActionNewObject());
+ if (newcmds.get(newcmds.size() - 1) instanceof ActionGetMember) {
+ newcmds.remove(newcmds.size() - 1);
+ newcmds.addAll(0,call(lexer, registerVars, inFunction, inMethod));
+ newcmds.add(new ActionNewMethod());
+ } else if (newcmds.get(newcmds.size() - 1) instanceof ActionGetVariable) {
+ newcmds.remove(newcmds.size() - 1);
+ newcmds.addAll(0,call(lexer, registerVars, inFunction, inMethod));
+ newcmds.add(new ActionNewObject());
}
+ ret.addAll(newcmds);
break;
case VAR:
s = lex(lexer);
@@ -618,7 +632,7 @@ public class ActionScriptParser {
}
if (s.type == SymbolType.ASSIGN) {
- ret.addAll(expression(lexer, registerVars,inFunction,inMethod));
+ ret.addAll(expression(lexer, registerVars, inFunction, inMethod));
if (inFunction) {
for (int i = 0; i < 256; i++) {
if (!registerVars.containsValue(i)) {
@@ -629,7 +643,7 @@ public class ActionScriptParser {
}
}
} else {
- ret.add(new ActionDefineLocal2());
+ ret.add(new ActionDefineLocal());
}
} else {
if (inFunction) {
@@ -640,7 +654,7 @@ public class ActionScriptParser {
}
}
} else {
- ret.add(new ActionDefineLocal());
+ ret.add(new ActionDefineLocal2());
}
lexer.pushback(s);
}
@@ -651,7 +665,7 @@ public class ActionScriptParser {
break;
case INCREMENT:
case DECREMENT:
- List varincdec = variable(lexer, registerVars,inFunction,inMethod);
+ List varincdec = variable(lexer, registerVars, inFunction, inMethod);
List incdecval = new ArrayList();
incdecval.addAll(varincdec);
if (s.type == SymbolType.INCREMENT) {
@@ -659,19 +673,19 @@ public class ActionScriptParser {
} else if (s.type == SymbolType.DECREMENT) {
incdecval.add(new ActionDecrement());
}
- gettoset(varincdec, incdecval);
+ varincdec = gettoset(varincdec, incdecval);
ret.addAll(varincdec);
break;
case IDENTIFIER:
case THIS:
case SUPER:
lexer.pushback(s);
- List var = variable(lexer, registerVars,inFunction,inMethod);
+ List var = variable(lexer, registerVars, inFunction, inMethod);
s = lex(lexer);
switch (s.type) {
case ASSIGN:
ret.addAll(var);
- gettoset(ret, expression(lexer, registerVars,inFunction,inMethod));
+ ret = gettoset(ret, expression(lexer, registerVars, inFunction, inMethod));
break;
case ASSIGN_BITAND:
case ASSIGN_BITOR:
@@ -686,7 +700,7 @@ public class ActionScriptParser {
case ASSIGN_XOR:
List varset = new ArrayList();
varset.addAll(var);
- var.addAll(expression(lexer, registerVars,inFunction,inMethod));
+ var.addAll(expression(lexer, registerVars, inFunction, inMethod));
switch (s.type) {
case ASSIGN_BITAND:
var.add(new ActionBitAnd());
@@ -710,7 +724,7 @@ public class ActionScriptParser {
var.add(new ActionAdd());
break;
}
- gettoset(varset, var);
+ varset = gettoset(varset, var);
ret.addAll(varset);
break;
case INCREMENT:
@@ -733,17 +747,28 @@ public class ActionScriptParser {
}
break;
case PARENT_OPEN: //function call
- ret.addAll(var);
- if (ret.get(ret.size() - 1) instanceof ActionGetMember) {
- ret.remove(ret.size() - 1);
- ret.addAll(call(lexer, registerVars,inFunction,inMethod));
- ret.add(new ActionCallMethod());
- } else if (ret.get(ret.size() - 1) instanceof ActionGetVariable) {
- ret.remove(ret.size() - 1);
- ret.addAll(call(lexer, registerVars,inFunction,inMethod));
- ret.add(new ActionCallFunction());
+ List callcmds=new ArrayList();
+ callcmds.addAll(var);
+ if (callcmds.get(callcmds.size() - 1) instanceof ActionGetMember) {
+ callcmds.remove(callcmds.size() - 1);
+ callcmds.addAll(0,call(lexer, registerVars, inFunction, inMethod));
+ callcmds.add(new ActionCallMethod());
+ callcmds.add(new ActionPop());
+ } else if (callcmds.get(callcmds.size() - 1) instanceof ActionGetVariable) {
+ callcmds.remove(callcmds.size() - 1);
+ ActionPush ap = (ActionPush) callcmds.get(callcmds.size() - 1);
+ if (ap.values.get(0).equals("trace")) {
+ callcmds.remove(callcmds.size() - 1);
+ callcmds.addAll(expression(lexer, registerVars, inFunction, inMethod));
+ expected(lexer, SymbolType.COMMA, SymbolType.PARENT_CLOSE);
+ callcmds.add(new ActionTrace());
+ } else {
+ callcmds.addAll(0,call(lexer, registerVars, inFunction, inMethod));
+ callcmds.add(new ActionCallFunction());
+ callcmds.add(new ActionPop());
+ }
}
- ret.add(new ActionPop());
+ ret.addAll(callcmds);
break;
default:
throw new ParseException("Not a command", lexer.yyline());
@@ -751,7 +776,7 @@ public class ActionScriptParser {
break;
case IF:
expected(lexer, SymbolType.PARENT_OPEN);
- ret.addAll(expression(lexer, registerVars,inFunction,inMethod));
+ ret.addAll(expression(lexer, registerVars, inFunction, inMethod));
expected(lexer, SymbolType.PARENT_CLOSE);
List onTrue = command(lexer, registerVars, inFunction, inMethod);
List onFalse = null;
@@ -770,18 +795,26 @@ public class ActionScriptParser {
ifaif.setJumpOffset(onTrueLen);
ActionJump ajmp = null;
if (onFalse != null) {
- ajmp = new ActionJump(0);
- ret.add(ajmp);
- ifaif.setJumpOffset(onTrueLen + ajmp.getBytes(SWF.DEFAULT_VERSION).length);
+ if (!((!nonempty(onTrue).isEmpty())
+ && (onTrue.get(onTrue.size() - 1) instanceof ActionJump)
+ && ((((ActionJump) onTrue.get(onTrue.size() - 1)).isContinue)
+ || (((ActionJump) onTrue.get(onTrue.size() - 1)).isBreak)))) {
+ ajmp = new ActionJump(0);
+ ret.add(ajmp);
+ onTrueLen += ajmp.getBytes(SWF.DEFAULT_VERSION).length;
+ }
+ ifaif.setJumpOffset(onTrueLen);
byte onFalseBytes[] = Action.actionsToBytes(onFalse, false, SWF.DEFAULT_VERSION);
int onFalseLen = onFalseBytes.length;
- ajmp.setJumpOffset(onFalseLen);
+ if (ajmp != null) {
+ ajmp.setJumpOffset(onFalseLen);
+ }
ret.addAll(onFalse);
}
break;
case WHILE:
expected(lexer, SymbolType.PARENT_OPEN);
- List whileExpr = expression(lexer, registerVars,inFunction,inMethod);
+ List whileExpr = expression(lexer, registerVars, inFunction, inMethod);
expected(lexer, SymbolType.PARENT_CLOSE);
List whileBody = command(lexer, registerVars, inFunction, inMethod);
whileExpr.add(new ActionNot());
@@ -802,7 +835,7 @@ public class ActionScriptParser {
List doBody = command(lexer, registerVars, inFunction, inMethod);
expected(lexer, SymbolType.WHILE);
expected(lexer, SymbolType.PARENT_OPEN);
- List doExpr = expression(lexer, registerVars,inFunction,inMethod);
+ List doExpr = expression(lexer, registerVars, inFunction, inMethod);
expected(lexer, SymbolType.PARENT_CLOSE);
int doBodyLen = Action.actionsToBytes(doBody, false, SWF.DEFAULT_VERSION).length;
@@ -810,8 +843,9 @@ public class ActionScriptParser {
ret.addAll(doBody);
ret.addAll(doExpr);
- ActionIf doif = new ActionIf(-doBodyLen - doExprLen);
+ ActionIf doif = new ActionIf(0);
ret.add(doif);
+ doif.setJumpOffset(-doBodyLen - doExprLen - doif.getBytes(SWF.DEFAULT_VERSION).length);
fixLoop(doBody, doBodyLen + doExprLen + doif.getBytes(SWF.DEFAULT_VERSION).length, doBodyLen);
break;
case FOR:
@@ -823,7 +857,7 @@ public class ActionScriptParser {
if (s2.type == SymbolType.IDENTIFIER) {
ParsedSymbol s3 = lex(lexer);
if (s3.type == SymbolType.IN) {
- expression(lexer, registerVars,inFunction,inMethod);
+ expression(lexer, registerVars, inFunction, inMethod);
forin = true;
}
} else {
@@ -836,9 +870,9 @@ public class ActionScriptParser {
List forFinalCommands = new ArrayList();
List forExpr = new ArrayList();
if (!forin) {
- ret.addAll(command(lexer, registerVars, inFunction, inMethod));
+ ret.addAll(nonempty(command(lexer, registerVars, inFunction, inMethod)));
expected(lexer, SymbolType.SEMICOLON);
- forExpr = expression(lexer, registerVars,inFunction,inMethod);
+ forExpr = expression(lexer, registerVars, inFunction, inMethod);
expected(lexer, SymbolType.SEMICOLON);
forFinalCommands = command(lexer, registerVars, inFunction, inMethod);
}
@@ -863,7 +897,7 @@ public class ActionScriptParser {
break;
case SWITCH:
expected(lexer, SymbolType.PARENT_OPEN);
- List switchExpr = expression(lexer, registerVars,inFunction,inMethod);
+ List switchExpr = expression(lexer, registerVars, inFunction, inMethod);
expected(lexer, SymbolType.PARENT_CLOSE);
expected(lexer, SymbolType.CURLY_OPEN);
s = lex(lexer);
@@ -871,7 +905,7 @@ public class ActionScriptParser {
int exprReg = 0;
for (int i = 0; i < 256; i++) {
if (!registerVars.containsValue(i)) {
- registerVars.put("__switch"+uniqId(), i);
+ registerVars.put("__switch" + uniqId(), i);
exprReg = i;
break;
}
@@ -884,10 +918,10 @@ public class ActionScriptParser {
List> caseExprs = new ArrayList>();
List caseIfsOne = new ArrayList();
while (s.type == SymbolType.CASE) {
- List curCaseExpr = expression(lexer, registerVars,inFunction,inMethod);
+ List curCaseExpr = expression(lexer, registerVars, inFunction, inMethod);
caseExprs.add(curCaseExpr);
if (firstCase) {
- curCaseExpr.add(new ActionStoreRegister(exprReg));
+ curCaseExpr.add(0,new ActionStoreRegister(exprReg));
} else {
curCaseExpr.add(0, new ActionPush(new RegisterNumber(exprReg)));
}
@@ -913,6 +947,7 @@ public class ActionScriptParser {
if (s.type == SymbolType.DEFAULT) {
expected(lexer, SymbolType.COLON);
defCmd = commands(lexer, registerVars, inFunction, inMethod);
+ s=lexer.lex();
}
for (List caseCmd : caseCmds) {
ret.addAll(caseCmd);
@@ -936,8 +971,8 @@ public class ActionScriptParser {
for (int i = 0; i < caseIfs.size(); i++) {
for (int c = 0; c < caseIfs.get(i).size(); c++) {
int jmpPos = 0;
- for (int j = c; j < caseIfs.get(i).size(); j++) {
- jmpPos += exprLengths.get(i).get(c);
+ for (int j = c+1; j < caseIfs.get(i).size(); j++) {
+ jmpPos += exprLengths.get(i).get(j);
}
for (int k = i + 1; k < caseIfs.size(); k++) {
for (int m = 0; m < caseIfs.get(k).size(); m++) {
@@ -979,7 +1014,7 @@ public class ActionScriptParser {
ret.add(acontinue);
break;
case RETURN:
- List retexpr = expression(lexer, true, registerVars,inFunction,inMethod);
+ List retexpr = expression(lexer, true, registerVars, inFunction, inMethod);
if (retexpr.isEmpty()) {
ret.add(new ActionPush(new Undefined()));
}
@@ -1002,14 +1037,12 @@ public class ActionScriptParser {
s = lex(lexer);
found = true;
catchSize = Action.actionsToBytes(catchCommands, false, SWF.DEFAULT_VERSION).length;
+ tryCommands.add(new ActionJump(catchSize));
}
List finallyCommands = null;
int finallySize = 0;
if (s.type == SymbolType.FINALLY) {
finallyCommands = command(lexer, registerVars, inFunction, inMethod);
- if (catchCommands != null) {
- tryCommands.add(new ActionJump(catchSize));
- }
found = true;
s = lex(lexer);
finallySize = Action.actionsToBytes(finallyCommands, false, SWF.DEFAULT_VERSION).length;
@@ -1021,10 +1054,16 @@ public class ActionScriptParser {
int trySize = Action.actionsToBytes(tryCommands, false, SWF.DEFAULT_VERSION).length;
ret.add(new ActionTry(false, finallyCommands != null, catchCommands != null, catchName, 0, trySize, catchSize, finallySize, SWF.DEFAULT_VERSION));
-
+ ret.addAll(tryCommands);
+ if (catchCommands != null) {
+ ret.addAll(catchCommands);
+ }
+ if (finallyCommands != null) {
+ ret.addAll(finallyCommands);
+ }
break;
case THROW:
- ret.addAll(expression(lexer, registerVars,inFunction,inMethod));
+ ret.addAll(expression(lexer, registerVars, inFunction, inMethod));
ret.add(new ActionThrow());
break;
default:
@@ -1041,61 +1080,70 @@ public class ActionScriptParser {
}
- private static List expression(ActionScriptLexer lexer, HashMap registerVars,boolean inFunction,boolean inMethod) throws IOException, ParseException {
- return expression(lexer, false, registerVars,inFunction,inMethod);
+ private static List expression(ActionScriptLexer lexer, HashMap registerVars, boolean inFunction, boolean inMethod) throws IOException, ParseException {
+ return expression(lexer, false, registerVars, inFunction, inMethod);
}
- private static List expressionRemainder(ActionScriptLexer lexer, HashMap registerVars,boolean inFunction,boolean inMethod) throws IOException, ParseException {
- return expressionRemainder(new ArrayList(), lexer, registerVars,inFunction,inMethod);
+ private static List expressionRemainder(ActionScriptLexer lexer, HashMap registerVars, boolean inFunction, boolean inMethod) throws IOException, ParseException {
+ return expressionRemainder(new ArrayList(), lexer, registerVars, inFunction, inMethod);
}
- private static List expressionRemainder(List expr, ActionScriptLexer lexer, HashMap registerVars,boolean inFunction,boolean inMethod) throws IOException, ParseException {
+ private static List expressionRemainder(List expr, ActionScriptLexer lexer, HashMap registerVars, boolean inFunction, boolean inMethod) throws IOException, ParseException {
List ret = new ArrayList();
ParsedSymbol s = lex(lexer);
switch (s.type) {
case BITAND:
- ret.addAll(expression(lexer, registerVars,inFunction,inMethod));
+ ret.addAll(expression(lexer, registerVars, inFunction, inMethod));
ret.add(new ActionBitAnd());
break;
case BITOR:
- ret.addAll(expression(lexer, registerVars,inFunction,inMethod));
+ ret.addAll(expression(lexer, registerVars, inFunction, inMethod));
ret.add(new ActionBitOr());
break;
case DIVIDE:
- ret.addAll(expression(lexer, registerVars,inFunction,inMethod));
+ ret.addAll(expression(lexer, registerVars, inFunction, inMethod));
ret.add(new ActionDivide());
break;
case EQUALS:
- ret.addAll(expression(lexer, registerVars,inFunction,inMethod));
- ret.add(new ActionEquals());
+ ret.addAll(expression(lexer, registerVars, inFunction, inMethod));
+ ret.add(new ActionEquals2());
+ break;
+ case STRICT_EQUALS:
+ ret.addAll(expression(lexer, registerVars, inFunction, inMethod));
+ ret.add(new ActionStrictEquals());
break;
case NOT_EQUAL:
- ret.addAll(expression(lexer, registerVars,inFunction,inMethod));
+ ret.addAll(expression(lexer, registerVars, inFunction, inMethod));
ret.add(new ActionEquals());
ret.add(new ActionNot());
break;
+ case STRICT_NOT_EQUAL:
+ ret.addAll(expression(lexer, registerVars, inFunction, inMethod));
+ ret.add(new ActionStrictEquals());
+ ret.add(new ActionNot());
+ break;
case LOWER_THAN:
- ret.addAll(expression(lexer, registerVars,inFunction,inMethod));
- ret.add(new ActionLess());
+ ret.addAll(expression(lexer, registerVars, inFunction, inMethod));
+ ret.add(new ActionLess2());
break;
case LOWER_EQUAL:
- ret.addAll(expression(lexer, registerVars,inFunction,inMethod));
+ ret.addAll(expression(lexer, registerVars, inFunction, inMethod));
ret.add(new ActionGreater());
ret.add(new ActionNot());
break;
case GREATER_THAN:
- ret.addAll(expression(lexer, registerVars,inFunction,inMethod));
+ ret.addAll(expression(lexer, registerVars, inFunction, inMethod));
ret.add(new ActionGreater());
break;
case GREATER_EQUAL:
- ret.addAll(expression(lexer, registerVars,inFunction,inMethod));
- ret.add(new ActionLess());
+ ret.addAll(expression(lexer, registerVars, inFunction, inMethod));
+ ret.add(new ActionLess2());
ret.add(new ActionNot());
break;
case AND:
ret.add(new ActionPushDuplicate());
ret.add(new ActionNot());
- List andExpr = expression(lexer, registerVars,inFunction,inMethod);
+ List andExpr = expression(lexer, registerVars, inFunction, inMethod);
andExpr.add(0, new ActionPop());
int andExprLen = Action.actionsToBytes(andExpr, false, SWF.DEFAULT_VERSION).length;
ret.add(new ActionIf(andExprLen));
@@ -1103,40 +1151,50 @@ public class ActionScriptParser {
break;
case OR:
ret.add(new ActionPushDuplicate());
- List orExpr = expression(lexer, registerVars,inFunction,inMethod);
+ List orExpr = expression(lexer, registerVars, inFunction, inMethod);
orExpr.add(0, new ActionPop());
int orExprLen = Action.actionsToBytes(orExpr, false, SWF.DEFAULT_VERSION).length;
ret.add(new ActionIf(orExprLen));
ret.addAll(orExpr);
break;
case MINUS:
- ret.addAll(expression(lexer, registerVars,inFunction,inMethod));
- ret.add(new ActionSubtract());
+ List minusExp = expression(lexer, registerVars, inFunction, inMethod);
+ if ((minusExp.size() == 1) && (minusExp.get(0) instanceof ActionPush) && (((ActionPush) minusExp.get(0)).values.get(0).equals(new Long(1)))) {
+ ret.add(new ActionDecrement());
+ } else {
+ ret.addAll(minusExp);
+ ret.add(new ActionSubtract());
+ }
break;
case MULTIPLY:
- ret.addAll(expression(lexer, registerVars,inFunction,inMethod));
+ ret.addAll(expression(lexer, registerVars, inFunction, inMethod));
ret.add(new ActionMultiply());
break;
case PLUS:
- ret.addAll(expression(lexer, registerVars,inFunction,inMethod));
- ret.add(new ActionAdd());
+ List plusExp = expression(lexer, registerVars, inFunction, inMethod);
+ if ((plusExp.size() == 1) && (plusExp.get(0) instanceof ActionPush) && (((ActionPush) plusExp.get(0)).values.get(0).equals(new Long(1)))) {
+ ret.add(new ActionIncrement());
+ } else {
+ ret.addAll(plusExp);
+ ret.add(new ActionAdd2());
+ }
break;
case XOR:
- ret.addAll(expression(lexer, registerVars,inFunction,inMethod));
+ ret.addAll(expression(lexer, registerVars, inFunction, inMethod));
ret.add(new ActionBitXor());
break;
case AS:
break;
case INSTANCEOF:
- ret.addAll(expression(lexer, registerVars,inFunction,inMethod));
+ ret.addAll(expression(lexer, registerVars, inFunction, inMethod));
ret.add(new ActionInstanceOf());
break;
case IS:
break;
case TYPEOF:
- ret.addAll(expression(lexer, registerVars,inFunction,inMethod));
+ ret.addAll(expression(lexer, registerVars, inFunction, inMethod));
ret.add(new ActionTypeOf());
break;
default:
@@ -1145,7 +1203,7 @@ public class ActionScriptParser {
return ret;
}
- private static List expression(ActionScriptLexer lexer, boolean allowEmpty, HashMap registerVars, boolean inFunction,boolean inMethod) throws IOException, ParseException {
+ private static List expression(ActionScriptLexer lexer, boolean allowEmpty, HashMap registerVars, boolean inFunction, boolean inMethod) throws IOException, ParseException {
List ret = new ArrayList();
ParsedSymbol s = lex(lexer);
switch (s.type) {
@@ -1157,9 +1215,9 @@ public class ActionScriptParser {
lexer.pushback(s);
}
objCnt++;
- ret.addAll(expression(lexer, registerVars,inFunction,inMethod));
+ ret.addAll(expression(lexer, registerVars, inFunction, inMethod));
expected(lexer, SymbolType.COLON);
- ret.addAll(expression(lexer, registerVars,inFunction,inMethod));
+ ret.addAll(expression(lexer, registerVars, inFunction, inMethod));
s = lex(lexer);
if (!s.isType(SymbolType.COMMA, SymbolType.CURLY_CLOSE)) {
expected(s, lexer.yyline(), SymbolType.COMMA, SymbolType.CURLY_CLOSE);
@@ -1176,7 +1234,7 @@ public class ActionScriptParser {
lexer.pushback(s);
}
arrCnt++;
- expression(lexer, registerVars,inFunction,inMethod);
+ expression(lexer, registerVars, inFunction, inMethod);
s = lex(lexer);
if (!s.isType(SymbolType.COMMA, SymbolType.BRACKET_CLOSE)) {
expected(s, lexer.yyline(), SymbolType.COMMA, SymbolType.BRACKET_CLOSE);
@@ -1200,15 +1258,15 @@ public class ActionScriptParser {
case INTEGER:
case DOUBLE:
ret.add(new ActionPush(s.value));
- ret.addAll(expressionRemainder(lexer, registerVars,inFunction,inMethod));
+ ret.addAll(expressionRemainder(lexer, registerVars, inFunction, inMethod));
break;
case DELETE:
- ret.addAll(variable(lexer, registerVars,inFunction,inMethod));
+ ret.addAll(variable(lexer, registerVars, inFunction, inMethod));
ret.add(new ActionDelete());
break;
case INCREMENT:
case DECREMENT: //preincrement
- List prevar = variable(lexer, registerVars,inFunction,inMethod);
+ List prevar = variable(lexer, registerVars, inFunction, inMethod);
ret.addAll(prevar);
Action prelast = ret.remove(ret.size() - 1);
ret.addAll(prevar);
@@ -1218,7 +1276,7 @@ public class ActionScriptParser {
if (s.type == SymbolType.DECREMENT) {
ret.add(new ActionDecrement());
}
- int tmpReg=0;
+ int tmpReg = 0;
for (int i = 0; i < 256; i++) {
if (!registerVars.containsValue(i)) {
tmpReg = i;
@@ -1233,41 +1291,43 @@ public class ActionScriptParser {
ret.add(new ActionSetMember());
}
ret.add(new ActionPush(new RegisterNumber(tmpReg)));
- ret.addAll(expressionRemainder(lexer, registerVars,inFunction,inMethod));
+ ret.addAll(expressionRemainder(lexer, registerVars, inFunction, inMethod));
break;
case NOT:
- ret.addAll(expression(lexer, registerVars,inFunction,inMethod));
+ ret.addAll(expression(lexer, registerVars, inFunction, inMethod));
ret.add(new ActionNot());
- ret.addAll(expressionRemainder(lexer, registerVars,inFunction,inMethod));
+ ret.addAll(expressionRemainder(lexer, registerVars, inFunction, inMethod));
break;
case PARENT_OPEN:
- ret.addAll(expression(lexer, registerVars,inFunction,inMethod));
+ ret.addAll(expression(lexer, registerVars, inFunction, inMethod));
expected(lexer, SymbolType.PARENT_CLOSE);
- ret.addAll(expressionRemainder(lexer, registerVars,inFunction,inMethod));
+ ret.addAll(expressionRemainder(lexer, registerVars, inFunction, inMethod));
break;
case NEW:
- ret.addAll(variable(lexer, registerVars,inFunction,inMethod));
+ List newcmds=new ArrayList();
+ newcmds.addAll(variable(lexer, registerVars, inFunction, inMethod));
expected(lexer, SymbolType.PARENT_OPEN);
- if (ret.get(ret.size() - 1) instanceof ActionGetMember) {
- ret.remove(ret.size() - 1);
- ret.addAll(call(lexer, registerVars,inFunction,inMethod));
- ret.add(new ActionNewMethod());
- } else if (ret.get(ret.size() - 1) instanceof ActionGetVariable) {
- ret.remove(ret.size() - 1);
- ret.addAll(call(lexer, registerVars,inFunction,inMethod));
- ret.add(new ActionNewObject());
+ if (newcmds.get(newcmds.size() - 1) instanceof ActionGetMember) {
+ newcmds.remove(newcmds.size() - 1);
+ newcmds.addAll(0,call(lexer, registerVars, inFunction, inMethod));
+ newcmds.add(new ActionNewMethod());
+ } else if (newcmds.get(newcmds.size() - 1) instanceof ActionGetVariable) {
+ newcmds.remove(newcmds.size() - 1);
+ newcmds.addAll(0,call(lexer, registerVars, inFunction, inMethod));
+ newcmds.add(new ActionNewObject());
}
+ ret.addAll(newcmds);
break;
case IDENTIFIER:
case THIS:
lexer.pushback(s);
- List var = variable(lexer, registerVars,inFunction,inMethod);
+ List var = variable(lexer, registerVars, inFunction, inMethod);
s = lex(lexer);
switch (s.type) {
case ASSIGN:
- gettoset(var, expression(lexer, registerVars,inFunction,inMethod));
+ var = gettoset(var, expression(lexer, registerVars, inFunction, inMethod));
ret.addAll(var);
break;
case ASSIGN_BITAND:
@@ -1280,7 +1340,7 @@ public class ActionScriptParser {
case ASSIGN_XOR:
List varset = new ArrayList();
varset.addAll(var);
- var.addAll(expression(lexer, registerVars,inFunction,inMethod));
+ var.addAll(expression(lexer, registerVars, inFunction, inMethod));
switch (s.type) {
case ASSIGN_BITAND:
var.add(new ActionBitAnd());
@@ -1304,15 +1364,15 @@ public class ActionScriptParser {
var.add(new ActionAdd());
break;
}
- int asTmpReg=0;
+ int asTmpReg = 0;
for (int i = 0; i < 256; i++) {
if (!registerVars.containsValue(i)) {
- asTmpReg=i;
+ asTmpReg = i;
break;
}
}
var.add(new ActionStoreRegister(asTmpReg));
- gettoset(varset, var);
+ varset = gettoset(varset, var);
ret.addAll(varset);
ret.add(new ActionPush(new RegisterNumber(asTmpReg)));
break;
@@ -1338,11 +1398,11 @@ public class ActionScriptParser {
case PARENT_OPEN: //function call
if (var.get(var.size() - 1) instanceof ActionGetMember) {
var.remove(var.size() - 1);
- var.addAll(call(lexer, registerVars,inFunction,inMethod));
+ var.addAll(0,call(lexer, registerVars, inFunction, inMethod));
var.add(new ActionCallMethod());
} else if (var.get(var.size() - 1) instanceof ActionGetVariable) {
var.remove(var.size() - 1);
- var.addAll(call(lexer, registerVars,inFunction,inMethod));
+ var.addAll(0,call(lexer, registerVars, inFunction, inMethod));
var.add(new ActionCallFunction());
}
ret.addAll(var);
@@ -1350,7 +1410,7 @@ public class ActionScriptParser {
default:
ret.addAll(var);
lexer.pushback(s);
- expressionRemainder(lexer, registerVars,inFunction,inMethod);
+ ret.addAll(expressionRemainder(lexer, registerVars, inFunction, inMethod));
}
break;
default:
@@ -1372,9 +1432,10 @@ public class ActionScriptParser {
ret.addAll(commands(lexer, new HashMap(), false, false));
- if (lexer.lex() != null) {
+ if (lexer.lex().type!=SymbolType.EOF) {
throw new ParseException("Parsing finisned before end of the file", lexer.yyline());
}
+ Action.setActionsAddresses(ret, 0, SWF.DEFAULT_VERSION);
return ret;
}
}
diff --git a/trunk/src/com/jpexs/decompiler/flash/action/parser/script/SymbolGroup.java b/trunk/src/com/jpexs/decompiler/flash/action/parser/script/SymbolGroup.java
index 365a237f9..43bed0ef8 100644
--- a/trunk/src/com/jpexs/decompiler/flash/action/parser/script/SymbolGroup.java
+++ b/trunk/src/com/jpexs/decompiler/flash/action/parser/script/SymbolGroup.java
@@ -30,5 +30,6 @@ public enum SymbolGroup {
IDENTIFIER,
INTEGER,
DOUBLE,
- TYPENAME
+ TYPENAME,
+ EOF
}
diff --git a/trunk/src/com/jpexs/decompiler/flash/action/parser/script/SymbolType.java b/trunk/src/com/jpexs/decompiler/flash/action/parser/script/SymbolType.java
index 49de21171..6abf4f4d3 100644
--- a/trunk/src/com/jpexs/decompiler/flash/action/parser/script/SymbolType.java
+++ b/trunk/src/com/jpexs/decompiler/flash/action/parser/script/SymbolType.java
@@ -85,9 +85,11 @@ public enum SymbolType {
TERNAR,
COLON,
EQUALS,
+ STRICT_EQUALS,
LOWER_EQUAL,
GREATER_EQUAL,
NOT_EQUAL,
+ STRICT_NOT_EQUAL,
AND,
OR,
INCREMENT,
@@ -130,5 +132,6 @@ public enum SymbolType {
IDENTIFIER,
INTEGER,
DOUBLE,
- TYPENAME
+ TYPENAME,
+ EOF
}
diff --git a/trunk/src/com/jpexs/decompiler/flash/action/parser/script/actionscript.flex b/trunk/src/com/jpexs/decompiler/flash/action/parser/script/actionscript.flex
index 166cc0830..f649bcf0c 100644
--- a/trunk/src/com/jpexs/decompiler/flash/action/parser/script/actionscript.flex
+++ b/trunk/src/com/jpexs/decompiler/flash/action/parser/script/actionscript.flex
@@ -178,9 +178,11 @@ SingleCharacter = [^\r\n\'\\]
"~" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.NEGATE,yytext()); }
"?" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.TERNAR,yytext()); }
":" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.COLON,yytext()); }
+ "===" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.STRICT_EQUALS,yytext()); }
"==" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.EQUALS,yytext()); }
"<=" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.LOWER_EQUAL,yytext()); }
">=" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.GREATER_EQUAL,yytext()); }
+ "!==" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.STRICT_NOT_EQUAL,yytext()); }
"!=" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.NOT_EQUAL,yytext()); }
"&&" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.AND,yytext()); }
"||" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.OR,yytext()); }
@@ -338,4 +340,4 @@ SingleCharacter = [^\r\n\'\\]
/* error fallback */
.|\n { }
-<> { return null; }
+<> { return new ParsedSymbol(SymbolGroup.EOF,SymbolType.EOF,null); }