diff --git a/lib/jsyntaxpane-0.9.5.jar b/lib/jsyntaxpane-0.9.5.jar index e42465728..cd65def36 100644 Binary files a/lib/jsyntaxpane-0.9.5.jar and b/lib/jsyntaxpane-0.9.5.jar differ diff --git a/libsrc/ffdec_lib/lexers/actionscript3_methodinfo.flex b/libsrc/ffdec_lib/lexers/actionscript3_methodinfo.flex index cb7113614..ad6513f47 100644 --- a/libsrc/ffdec_lib/lexers/actionscript3_methodinfo.flex +++ b/libsrc/ffdec_lib/lexers/actionscript3_methodinfo.flex @@ -31,7 +31,7 @@ package com.jpexs.decompiler.flash.abc.methodinfo_parser; %{ - StringBuffer string = new StringBuffer(); + StringBuilder string = new StringBuilder(); boolean isMultiname = false; long multinameId = 0; diff --git a/libsrc/ffdec_lib/lexers/actionscript3_pcode.flex b/libsrc/ffdec_lib/lexers/actionscript3_pcode.flex index 2b5011912..5e57af061 100644 --- a/libsrc/ffdec_lib/lexers/actionscript3_pcode.flex +++ b/libsrc/ffdec_lib/lexers/actionscript3_pcode.flex @@ -34,7 +34,7 @@ import java.util.Stack; %{ - StringBuffer string = new StringBuffer(); + StringBuilder string = new StringBuilder(); boolean isMultiname = false; long multinameId = 0; diff --git a/libsrc/ffdec_lib/lexers/actionscript3_script.flex b/libsrc/ffdec_lib/lexers/actionscript3_script.flex index f0b94ba62..ce3714738 100644 --- a/libsrc/ffdec_lib/lexers/actionscript3_script.flex +++ b/libsrc/ffdec_lib/lexers/actionscript3_script.flex @@ -52,7 +52,7 @@ import java.util.Stack; yypushbackstr(s, YYINITIAL); } - StringBuffer string = new StringBuffer(); + StringBuilder string = new StringBuilder(); private static String xmlTagName = ""; diff --git a/libsrc/ffdec_lib/lexers/actionscript_pcode.flex b/libsrc/ffdec_lib/lexers/actionscript_pcode.flex index 6db5ef65f..e6fdf37fa 100644 --- a/libsrc/ffdec_lib/lexers/actionscript_pcode.flex +++ b/libsrc/ffdec_lib/lexers/actionscript_pcode.flex @@ -1,190 +1,190 @@ -/* - * Copyright (C) 2010-2015 JPEXS, All rights reserved. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3.0 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library. - */ -/* Flash assembler language lexer specification */ -package com.jpexs.decompiler.flash.action.parser.pcode; - -import com.jpexs.decompiler.flash.action.parser.ActionParseException; -import com.jpexs.decompiler.flash.action.swf4.ConstantIndex; -import com.jpexs.decompiler.flash.action.swf4.RegisterNumber; -import com.jpexs.decompiler.flash.ecma.Null; -import com.jpexs.decompiler.flash.ecma.Undefined; - -%% - -%public -%class FlasmLexer -%final -%unicode -%char -%line -%column -%type ASMParsedSymbol -%throws ActionParseException - -%{ - - StringBuffer string = new StringBuffer(); - - /** - * Create an empty lexer, yyrset will be called later to reset and assign - * the reader - */ - public FlasmLexer() { - - } - - public int yychar() { - return yychar; - } - - public int yyline() { - return yyline + 1; - } - -%} - -/* main character classes */ -LineTerminator = \r|\n|\r\n - -InputCharacter = [^\r\n] -Comment = ";" {InputCharacter}* - -WhiteSpace = [ \t\f]+ - - -/* identifiers */ - -Identifier = [:jletter:][:jletterdigit:]* - -InstructionName = [a-zA-Z][a-zA-Z0-9_]* - -Label = {Identifier}: - -StartOfBlock = "{" - -EndOfBlock = "}" - -True = "true" -False = "false" -False = "false" -Null = "null" -Undefined = "undefined" - -Infinity = -? "Infinity" - -/* integer literals */ -PositiveNumberLiteral = 0 | [1-9][0-9]* -NegativeNumberLiteral = - {PositiveNumberLiteral} - -NumberLiteral = {PositiveNumberLiteral}|{NegativeNumberLiteral} - -/* floating point literals */ -FloatLiteral = "NaN" | {Infinity} | -?(({FLit1}|{FLit2}|{FLit3}) {Exponent}?) - -FLit1 = [0-9]+ \. [0-9]* -FLit2 = \. [0-9]+ -FLit3 = [0-9]+ -Exponent = [eE] [+-]? [0-9]+ - -HexDigit = [0-9a-fA-F] - -/* string and character literals */ -StringCharacter = [^\r\n\"\\] - -Register= register{PositiveNumberLiteral} -Constant= constant{PositiveNumberLiteral} - -%state STRING,PARAMETERS - -%% - - { - - - /* whitespace */ - {WhiteSpace} { } - - {Label} { - String s=yytext(); - return new ASMParsedSymbol(ASMParsedSymbol.TYPE_LABEL, s.substring(0, s.length() - 1)); - } - - /* identifiers */ - {InstructionName} { yybegin(PARAMETERS); - return new ASMParsedSymbol(ASMParsedSymbol.TYPE_INSTRUCTION_NAME, yytext()); - } - {EndOfBlock} { return new ASMParsedSymbol(ASMParsedSymbol.TYPE_BLOCK_END); } -} - - { - /* string literal */ - \" { - yybegin(STRING); - string.setLength(0); - } - - /* numeric literals */ - - {NumberLiteral} { return new ASMParsedSymbol(ASMParsedSymbol.TYPE_INTEGER, Long.parseLong((yytext()))); } - {FloatLiteral} { return new ASMParsedSymbol(ASMParsedSymbol.TYPE_FLOAT, Double.parseDouble((yytext()))); } - {LineTerminator} {yybegin(YYINITIAL); return new ASMParsedSymbol(ASMParsedSymbol.TYPE_EOL); } - {Comment} {return new ASMParsedSymbol(ASMParsedSymbol.TYPE_COMMENT, yytext().substring(1));} - {StartOfBlock} { yybegin(YYINITIAL); return new ASMParsedSymbol(ASMParsedSymbol.TYPE_BLOCK_START); } - {True} {return new ASMParsedSymbol(ASMParsedSymbol.TYPE_BOOLEAN,Boolean.TRUE);} - {False} {return new ASMParsedSymbol(ASMParsedSymbol.TYPE_BOOLEAN,Boolean.FALSE);} - {Null} {return new ASMParsedSymbol(ASMParsedSymbol.TYPE_NULL, new Null());} - {Undefined} {return new ASMParsedSymbol(ASMParsedSymbol.TYPE_UNDEFINED, new Undefined());} - - {Register} { return new ASMParsedSymbol(ASMParsedSymbol.TYPE_REGISTER, new RegisterNumber(Integer.parseInt(yytext().substring(8)))); } - {Constant} { return new ASMParsedSymbol(ASMParsedSymbol.TYPE_CONSTANT, new ConstantIndex(Integer.parseInt(yytext().substring(8)))); } - - {Identifier} { return new ASMParsedSymbol(ASMParsedSymbol.TYPE_IDENTIFIER, yytext()); } - -} - - { - \" { - yybegin(PARAMETERS); - // length also includes the trailing quote - return new ASMParsedSymbol(ASMParsedSymbol.TYPE_STRING, string.toString()); - } - - {StringCharacter}+ { string.append(yytext()); } - - /* escape sequences */ - "\\b" { string.append('\b'); } - "\\t" { string.append('\t'); } - "\\n" { string.append('\n'); } - "\\f" { string.append('\f'); } - "\\r" { string.append('\r'); } - "\\\"" { string.append('\"'); } - "\\'" { string.append('\''); } - "\\\\" { string.append('\\'); } - \\x{HexDigit}{2} { char val = (char) Integer.parseInt(yytext().substring(2), 16); - string.append(val); } - \\u{HexDigit}{4} { char val = (char) Integer.parseInt(yytext().substring(2), 16); - string.append(val); } - - /* error cases */ - \\. { throw new ActionParseException("Illegal escape sequence \"" + yytext() + "\"", yyline + 1); } - {LineTerminator} { throw new ActionParseException("Unterminated string at end of line", yyline + 1); } - -} - -/* error fallback */ -[^] { } -<> { return new ASMParsedSymbol(ASMParsedSymbol.TYPE_EOF); } +/* + * Copyright (C) 2010-2015 JPEXS, All rights reserved. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3.0 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. + */ +/* Flash assembler language lexer specification */ +package com.jpexs.decompiler.flash.action.parser.pcode; + +import com.jpexs.decompiler.flash.action.parser.ActionParseException; +import com.jpexs.decompiler.flash.action.swf4.ConstantIndex; +import com.jpexs.decompiler.flash.action.swf4.RegisterNumber; +import com.jpexs.decompiler.flash.ecma.Null; +import com.jpexs.decompiler.flash.ecma.Undefined; + +%% + +%public +%class FlasmLexer +%final +%unicode +%char +%line +%column +%type ASMParsedSymbol +%throws ActionParseException + +%{ + + StringBuilder string = new StringBuilder(); + + /** + * Create an empty lexer, yyrset will be called later to reset and assign + * the reader + */ + public FlasmLexer() { + + } + + public int yychar() { + return yychar; + } + + public int yyline() { + return yyline + 1; + } + +%} + +/* main character classes */ +LineTerminator = \r|\n|\r\n + +InputCharacter = [^\r\n] +Comment = ";" {InputCharacter}* + +WhiteSpace = [ \t\f]+ + + +/* identifiers */ + +Identifier = [:jletter:][:jletterdigit:]* + +InstructionName = [a-zA-Z][a-zA-Z0-9_]* + +Label = {Identifier}: + +StartOfBlock = "{" + +EndOfBlock = "}" + +True = "true" +False = "false" +False = "false" +Null = "null" +Undefined = "undefined" + +Infinity = -? "Infinity" + +/* integer literals */ +PositiveNumberLiteral = 0 | [1-9][0-9]* +NegativeNumberLiteral = - {PositiveNumberLiteral} + +NumberLiteral = {PositiveNumberLiteral}|{NegativeNumberLiteral} + +/* floating point literals */ +FloatLiteral = "NaN" | {Infinity} | -?(({FLit1}|{FLit2}|{FLit3}) {Exponent}?) + +FLit1 = [0-9]+ \. [0-9]* +FLit2 = \. [0-9]+ +FLit3 = [0-9]+ +Exponent = [eE] [+-]? [0-9]+ + +HexDigit = [0-9a-fA-F] + +/* string and character literals */ +StringCharacter = [^\r\n\"\\] + +Register= register{PositiveNumberLiteral} +Constant= constant{PositiveNumberLiteral} + +%state STRING,PARAMETERS + +%% + + { + + + /* whitespace */ + {WhiteSpace} { } + + {Label} { + String s=yytext(); + return new ASMParsedSymbol(ASMParsedSymbol.TYPE_LABEL, s.substring(0, s.length() - 1)); + } + + /* identifiers */ + {InstructionName} { yybegin(PARAMETERS); + return new ASMParsedSymbol(ASMParsedSymbol.TYPE_INSTRUCTION_NAME, yytext()); + } + {EndOfBlock} { return new ASMParsedSymbol(ASMParsedSymbol.TYPE_BLOCK_END); } +} + + { + /* string literal */ + \" { + yybegin(STRING); + string.setLength(0); + } + + /* numeric literals */ + + {NumberLiteral} { return new ASMParsedSymbol(ASMParsedSymbol.TYPE_INTEGER, Long.parseLong((yytext()))); } + {FloatLiteral} { return new ASMParsedSymbol(ASMParsedSymbol.TYPE_FLOAT, Double.parseDouble((yytext()))); } + {LineTerminator} {yybegin(YYINITIAL); return new ASMParsedSymbol(ASMParsedSymbol.TYPE_EOL); } + {Comment} {return new ASMParsedSymbol(ASMParsedSymbol.TYPE_COMMENT, yytext().substring(1));} + {StartOfBlock} { yybegin(YYINITIAL); return new ASMParsedSymbol(ASMParsedSymbol.TYPE_BLOCK_START); } + {True} {return new ASMParsedSymbol(ASMParsedSymbol.TYPE_BOOLEAN,Boolean.TRUE);} + {False} {return new ASMParsedSymbol(ASMParsedSymbol.TYPE_BOOLEAN,Boolean.FALSE);} + {Null} {return new ASMParsedSymbol(ASMParsedSymbol.TYPE_NULL, Null.INSTANCE);} + {Undefined} {return new ASMParsedSymbol(ASMParsedSymbol.TYPE_UNDEFINED, Undefined.INSTANCE);} + + {Register} { return new ASMParsedSymbol(ASMParsedSymbol.TYPE_REGISTER, new RegisterNumber(Integer.parseInt(yytext().substring(8)))); } + {Constant} { return new ASMParsedSymbol(ASMParsedSymbol.TYPE_CONSTANT, new ConstantIndex(Integer.parseInt(yytext().substring(8)))); } + + {Identifier} { return new ASMParsedSymbol(ASMParsedSymbol.TYPE_IDENTIFIER, yytext()); } + +} + + { + \" { + yybegin(PARAMETERS); + // length also includes the trailing quote + return new ASMParsedSymbol(ASMParsedSymbol.TYPE_STRING, string.toString()); + } + + {StringCharacter}+ { string.append(yytext()); } + + /* escape sequences */ + "\\b" { string.append('\b'); } + "\\t" { string.append('\t'); } + "\\n" { string.append('\n'); } + "\\f" { string.append('\f'); } + "\\r" { string.append('\r'); } + "\\\"" { string.append('\"'); } + "\\'" { string.append('\''); } + "\\\\" { string.append('\\'); } + \\x{HexDigit}{2} { char val = (char) Integer.parseInt(yytext().substring(2), 16); + string.append(val); } + \\u{HexDigit}{4} { char val = (char) Integer.parseInt(yytext().substring(2), 16); + string.append(val); } + + /* error cases */ + \\. { throw new ActionParseException("Illegal escape sequence \"" + yytext() + "\"", yyline + 1); } + {LineTerminator} { throw new ActionParseException("Unterminated string at end of line", yyline + 1); } + +} + +/* error fallback */ +[^] { } +<> { return new ASMParsedSymbol(ASMParsedSymbol.TYPE_EOF); } diff --git a/libsrc/ffdec_lib/lexers/actionscript_script.flex b/libsrc/ffdec_lib/lexers/actionscript_script.flex index d00294b43..329bcaa30 100644 --- a/libsrc/ffdec_lib/lexers/actionscript_script.flex +++ b/libsrc/ffdec_lib/lexers/actionscript_script.flex @@ -32,7 +32,7 @@ import java.util.Stack; %{ - StringBuffer string = new StringBuffer(); + StringBuilder string = new StringBuilder(); private static String xmlTagName = ""; diff --git a/libsrc/ffdec_lib/lexers/text.flex b/libsrc/ffdec_lib/lexers/text.flex index 179535dda..3e2993da4 100644 --- a/libsrc/ffdec_lib/lexers/text.flex +++ b/libsrc/ffdec_lib/lexers/text.flex @@ -31,7 +31,7 @@ package com.jpexs.decompiler.flash.tags.text; %{ - StringBuffer string = null; + StringBuilder string = null; boolean finish = false; boolean parameter = false; String parameterName = null; @@ -74,22 +74,22 @@ HexDigit = [0-9a-fA-F] } } /* escape sequences */ - "\\[" { if (string == null) string = new StringBuffer(); string.append('['); } - "\\]" { if (string == null) string = new StringBuffer(); string.append(']'); } - "\\b" { if (string == null) string = new StringBuffer(); string.append('\b'); } - "\\t" { if (string == null) string = new StringBuffer(); string.append('\t'); } - "\\n" { if (string == null) string = new StringBuffer(); string.append('\n'); } - "\\f" { if (string == null) string = new StringBuffer(); string.append('\f'); } - "\\r" { if (string == null) string = new StringBuffer(); string.append('\r'); } - "\\\"" { if (string == null) string = new StringBuffer(); string.append('\"'); } - "\\'" { if (string == null) string = new StringBuffer(); string.append('\''); } - "\\\\" { if (string == null) string = new StringBuffer(); string.append('\\'); } + "\\[" { if (string == null) string = new StringBuilder(); string.append('['); } + "\\]" { if (string == null) string = new StringBuilder(); string.append(']'); } + "\\b" { if (string == null) string = new StringBuilder(); string.append('\b'); } + "\\t" { if (string == null) string = new StringBuilder(); string.append('\t'); } + "\\n" { if (string == null) string = new StringBuilder(); string.append('\n'); } + "\\f" { if (string == null) string = new StringBuilder(); string.append('\f'); } + "\\r" { if (string == null) string = new StringBuilder(); string.append('\r'); } + "\\\"" { if (string == null) string = new StringBuilder(); string.append('\"'); } + "\\'" { if (string == null) string = new StringBuilder(); string.append('\''); } + "\\\\" { if (string == null) string = new StringBuilder(); string.append('\\'); } \\x{HexDigit}{HexDigit} { char val = (char) Integer.parseInt(yytext().substring(2), 16); string.append(val); } /* error cases */ \\. { throw new TextParseException("Illegal escape sequence \"" + yytext() + "\"", yyline + 1); } - . { if (string == null) string = new StringBuffer(); string.append(yytext()); } + . { if (string == null) string = new StringBuilder(); string.append(yytext()); } <> { if (finish) {return null;} else {finish=true; return new ParsedSymbol(SymbolType.TEXT, string == null ? null : string.toString());}} } @@ -118,5 +118,5 @@ HexDigit = [0-9a-fA-F] } /* error fallback */ -[^] { if (!parameter) { if (string == null) string = new StringBuffer(); string.append(yytext()); } } +[^] { if (!parameter) { if (string == null) string = new StringBuilder(); string.append(yytext()); } } <> { return null; } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/SWF.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/SWF.java index b9e4cd4fb..291d2232c 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/SWF.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/SWF.java @@ -1788,7 +1788,7 @@ public final class SWF implements SWFContainerItem, Timelined { // for..in return if (((ins instanceof ActionEquals) || (ins instanceof ActionEquals2)) && (stack.size() == 1) && (stack.peek() instanceof DirectValueActionItem)) { - stack.push(new DirectValueActionItem(null, 0, new Null(), new ArrayList<>())); + stack.push(new DirectValueActionItem(null, 0, Null.INSTANCE, new ArrayList<>())); } if (ins instanceof ActionConstantPool) { diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/deobfuscation/AVM2DeobfuscatorSimple.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/deobfuscation/AVM2DeobfuscatorSimple.java index 8481d5180..21754601f 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/deobfuscation/AVM2DeobfuscatorSimple.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/deobfuscation/AVM2DeobfuscatorSimple.java @@ -154,9 +154,9 @@ public class AVM2DeobfuscatorSimple implements SWFDecompilerListener { } else if (graphTargetItem instanceof FalseItem) { return makePush(Boolean.FALSE, cpool); } else if (graphTargetItem instanceof NullAVM2Item) { - return makePush(new Null(), cpool); + return makePush(Null.INSTANCE, cpool); } else if (graphTargetItem instanceof UndefinedAVM2Item) { - return makePush(new Undefined(), cpool); + return makePush(Undefined.INSTANCE, cpool); } else { return null; } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/model/CoerceAVM2Item.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/model/CoerceAVM2Item.java index fcae92833..da8502bcb 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/model/CoerceAVM2Item.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/model/CoerceAVM2Item.java @@ -77,7 +77,7 @@ public class CoerceAVM2Item extends AVM2Item { return ret; } if (ret instanceof Undefined) { - return new Null(); + return Null.INSTANCE; } return ret.toString(); case "*": diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/model/NullAVM2Item.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/model/NullAVM2Item.java index df2c1be06..9af56a447 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/model/NullAVM2Item.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/model/NullAVM2Item.java @@ -49,7 +49,7 @@ public class NullAVM2Item extends AVM2Item { @Override public Object getResult() { - return new Null(); + return Null.INSTANCE; } @Override diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/model/UndefinedAVM2Item.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/model/UndefinedAVM2Item.java index 9c7e01331..2f77f9998 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/model/UndefinedAVM2Item.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/model/UndefinedAVM2Item.java @@ -49,7 +49,7 @@ public class UndefinedAVM2Item extends AVM2Item { @Override public Object getResult() { - return new Undefined(); + return Undefined.INSTANCE; } @Override diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/pcode/Flasm3Lexer.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/pcode/Flasm3Lexer.java index dc86e8164..382825853 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/pcode/Flasm3Lexer.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/pcode/Flasm3Lexer.java @@ -24,8 +24,9 @@ import java.util.Stack; /** * This class is a scanner generated by - * JFlex 1.6.0 from the specification file - * D:/Dropbox/Programovani/JavaSE/FFDec/libsrc/ffdec_lib/lexers/actionscript3_pcode.flex + * JFlex 1.6.0 + * from the specification file + * C:/FFDec/jpexs-decompiler/libsrc/ffdec_lib/lexers/actionscript3_pcode.flex */ public final class Flasm3Lexer { @@ -50,8 +51,9 @@ public final class Flasm3Lexer { /** * 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 + * 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 @@ -2579,8 +2581,8 @@ public final class Flasm3Lexer { private int zzLexicalState = YYINITIAL; /** - * this buffer contains the current text to be matched and is the source of - * the yytext() string + * this buffer contains the current text to be matched and is + * the source of the yytext() string */ private char zzBuffer[] = new char[ZZ_BUFFERSIZE]; @@ -2600,8 +2602,8 @@ public final class Flasm3Lexer { private int zzStartRead; /** - * endRead marks the last character in the buffer, that has been read from - * input + * endRead marks the last character in the buffer, that has been read + * from input */ private int zzEndRead; @@ -2637,15 +2639,15 @@ public final class Flasm3Lexer { private boolean zzEOFDone; /** - * The number of occupied positions in zzBuffer beyond zzEndRead. When a - * lead/high surrogate has been read from the input stream into the final - * zzBuffer position, this will have a value of 1; otherwise, it will have a - * value of 0. + * The number of occupied positions in zzBuffer beyond zzEndRead. + * When a lead/high surrogate has been read from the input stream + * into the final zzBuffer position, this will have a value of 1; + * otherwise, it will have a value of 0. */ private int zzFinalHighSurrogate = 0; /* user code: */ - StringBuffer string = new StringBuffer(); + StringBuilder string = new StringBuilder(); boolean isMultiname = false; @@ -2780,8 +2782,6 @@ public final class Flasm3Lexer { /** * Closes the input stream. - * - * @throws java.io.IOException */ public final void yyclose() throws java.io.IOException { zzAtEOF = true; /* indicate end of file */ @@ -2794,12 +2794,12 @@ public final class Flasm3Lexer { } /** - * Resets the scanner to read from a new input stream. Does not close the - * old reader. + * 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. + * cannot be reused (internal buffer is discarded and lost). + * Lexical state is set to ZZ_INITIAL. * * Internal scan buffer is resized down to its initial length, if it has * grown. @@ -2823,8 +2823,6 @@ public final class Flasm3Lexer { /** * Returns the current lexical state. - * - * @return */ public final int yystate() { return zzLexicalState; @@ -2841,20 +2839,19 @@ public final class Flasm3Lexer { /** * Returns the text matched by the current regular expression. - * - * @return */ public final String yytext() { return new String(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); } /** - * Returns the character at position pos from the matched text. + * 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. + * @param pos the position of the character to fetch. + * A value from 0 to yylength()-1. * * @return the character at position pos */ @@ -2864,8 +2861,6 @@ public final class Flasm3Lexer { /** * Returns the length of the matched text region. - * - * @return */ public final int yylength() { return zzMarkedPos - zzStartRead; @@ -2874,13 +2869,14 @@ public final class Flasm3Lexer { /** * 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.). + * 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. + * Usual syntax/scanner level error handling should be done + * in error fallback rules. * * @param errorCode the code of the errormessage to display */ @@ -2900,8 +2896,8 @@ public final class Flasm3Lexer { * * 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()! + * @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()) { @@ -2912,12 +2908,11 @@ public final class Flasm3Lexer { } /** - * Resumes scanning until the next regular expression is matched, the end of - * input is encountered or an I/O-Error occurs. + * 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 - * @throws com.jpexs.decompiler.flash.abc.avm2.parser.AVM2ParseException */ public ParsedSymbol yylex() throws java.io.IOException, AVM2ParseException { int zzInput; diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/ActionScriptLexer.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/ActionScriptLexer.java index 645a9916e..219837ed2 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/ActionScriptLexer.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/ActionScriptLexer.java @@ -28,7 +28,7 @@ import java.util.Stack; * This class is a scanner generated by * JFlex 1.6.0 * from the specification file - * D:/Dropbox/Programovani/JavaSE/FFDec/libsrc/ffdec_lib/lexers/actionscript3_script.flex + * C:/FFDec/jpexs-decompiler/libsrc/ffdec_lib/lexers/actionscript3_script.flex */ public final class ActionScriptLexer { @@ -262,32 +262,32 @@ public final class ActionScriptLexer { + "\1\60\1\61\1\62\1\63\1\64\1\65\1\66\1\67" + "\1\70\1\71\1\72\1\73\1\74\1\75\1\76\1\0" + "\1\77\1\63\1\100\1\0\2\100\7\6\1\101\1\102" - + "\2\6\1\103\16\6\1\104\1\105\1\106\4\6\1\107" - + "\13\6\1\110\1\111\1\112\1\113\1\114\1\115\1\116" - + "\1\117\1\120\1\116\1\121\1\122\1\123\1\124\1\125" - + "\1\126\1\116\1\127\1\0\1\130\1\0\1\131\1\0" - + "\1\132\1\133\1\0\1\134\4\0\1\135\2\0\1\136" - + "\4\137\2\3\2\0\1\140\1\141\1\142\1\143\1\144" - + "\1\0\1\63\1\145\2\146\1\100\1\6\1\147\13\6" - + "\1\150\4\6\1\151\4\6\1\152\6\6\1\153\12\6" - + "\1\154\1\6\1\155\1\6\1\156\3\0\1\134\1\157" - + "\1\160\1\0\1\161\2\0\1\162\1\163\1\164\1\0" - + "\1\165\1\146\1\100\4\6\1\166\1\167\2\6\1\170" - + "\12\6\1\171\1\172\1\6\1\173\11\6\1\174\5\6" - + "\1\175\1\6\1\176\2\0\1\177\1\200\1\0\1\146" - + "\1\100\1\201\1\202\2\6\1\203\1\6\1\204\1\205" - + "\1\6\1\206\1\6\1\207\4\6\1\210\11\6\1\211" - + "\5\6\1\0\1\146\1\100\3\6\1\212\1\6\1\213" - + "\1\214\1\6\1\215\1\6\1\216\3\6\1\217\3\6" - + "\1\220\4\6\1\221\1\6\1\0\1\146\1\100\1\222" - + "\1\6\1\223\10\6\1\224\1\225\1\6\1\226\1\227" - + "\1\6\1\0\1\146\1\100\1\230\1\231\1\232\3\6" - + "\1\233\3\6\1\234\1\0\1\146\1\100\1\235\1\6" - + "\1\236\1\6\1\237\1\240\1\241\1\146\1\100\1\242" - + "\1\243\6\100"; + + "\1\0\2\6\1\103\16\6\1\104\1\105\1\106\4\6" + + "\1\107\13\6\1\110\1\111\1\112\1\113\1\114\1\115" + + "\1\116\1\117\1\120\1\116\1\121\1\122\1\123\1\124" + + "\1\125\1\126\1\116\1\127\1\0\1\130\1\0\1\131" + + "\1\0\1\132\1\133\1\0\1\134\4\0\1\135\2\0" + + "\1\136\4\137\2\3\2\0\1\140\1\141\1\142\1\143" + + "\1\144\1\0\1\63\1\145\2\146\1\100\1\6\1\147" + + "\5\6\1\150\6\6\1\151\4\6\1\152\4\6\1\153" + + "\6\6\1\154\12\6\1\155\1\6\1\156\1\6\1\157" + + "\3\0\1\134\1\160\1\161\1\0\1\162\2\0\1\163" + + "\1\164\1\165\1\0\1\166\1\146\1\100\4\6\1\167" + + "\1\170\2\6\1\171\12\6\1\172\1\173\1\6\1\174" + + "\11\6\1\175\5\6\1\176\1\6\1\177\2\0\1\200" + + "\1\201\1\0\1\146\1\100\1\202\1\203\2\6\1\204" + + "\1\6\1\205\1\206\1\6\1\207\1\6\1\210\4\6" + + "\1\211\11\6\1\212\5\6\1\0\1\146\1\100\3\6" + + "\1\213\1\6\1\214\1\215\1\6\1\216\1\6\1\217" + + "\3\6\1\220\3\6\1\221\4\6\1\222\1\6\1\0" + + "\1\146\1\100\1\223\1\6\1\224\10\6\1\225\1\226" + + "\1\6\1\227\1\230\1\6\1\0\1\146\1\100\1\231" + + "\1\232\1\233\3\6\1\234\3\6\1\235\1\0\1\146" + + "\1\100\1\236\1\6\1\237\1\6\1\240\1\241\1\242" + + "\1\146\1\100\1\243\1\244\6\100"; private static int[] zzUnpackAction() { - int[] result = new int[446]; + int[] result = new int[448]; int offset = 0; offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result); return result; @@ -319,61 +319,61 @@ public final class ActionScriptLexer { + "\0\u0260\0\u02ac\0\u02f8\0\u0344\0\u0390\0\u0344\0\u03dc\0\u0428" + "\0\u0474\0\u04c0\0\u050c\0\u0558\0\u05a4\0\u05f0\0\u063c\0\u0688" + "\0\u06d4\0\u0344\0\u0344\0\u0344\0\u0720\0\u0344\0\u0344\0\u076c" - + "\0\u07b8\0\u0804\0\u0850\0\u0344\0\u089c\0\u08e8\0\u0934\0\u0980" - + "\0\u09cc\0\u0a18\0\u0a64\0\u0ab0\0\u0afc\0\u0b48\0\u0b94\0\u0be0" - + "\0\u0c2c\0\u0c78\0\u0cc4\0\u0d10\0\u0d5c\0\u0344\0\u0344\0\u0344" - + "\0\u0344\0\u0344\0\u0344\0\u0344\0\u0da8\0\u0df4\0\u0e40\0\u0e8c" - + "\0\u0344\0\u0ed8\0\u0f24\0\u0344\0\u0344\0\u0f70\0\u0fbc\0\u1008" - + "\0\u0344\0\u1054\0\u0344\0\u10a0\0\u10ec\0\u1138\0\u0344\0\u0344" - + "\0\u1184\0\u0344\0\u11d0\0\u121c\0\u0344\0\u1268\0\u0344\0\u0344" - + "\0\u12b4\0\u1300\0\u0344\0\u134c\0\u1398\0\u0344\0\u13e4\0\u1430" - + "\0\u0344\0\u147c\0\u14c8\0\u0344\0\u0344\0\u1514\0\u0344\0\u1560" - + "\0\u0344\0\u15ac\0\u15f8\0\u0344\0\u0344\0\u1644\0\u0344\0\u0344" - + "\0\u1690\0\u0344\0\u0344\0\u16dc\0\u1728\0\u1774\0\u17c0\0\u180c" - + "\0\u1858\0\u18a4\0\u18f0\0\u193c\0\u1988\0\u19d4\0\u1a20\0\u1a6c" - + "\0\u1ab8\0\u0344\0\u0344\0\u1b04\0\u1b50\0\u04c0\0\u1b9c\0\u1be8" - + "\0\u1c34\0\u1c80\0\u1ccc\0\u1d18\0\u1d64\0\u1db0\0\u1dfc\0\u1e48" - + "\0\u1e94\0\u1ee0\0\u1f2c\0\u1f78\0\u04c0\0\u04c0\0\u1fc4\0\u2010" - + "\0\u205c\0\u20a8\0\u20f4\0\u04c0\0\u2140\0\u218c\0\u21d8\0\u2224" - + "\0\u2270\0\u22bc\0\u2308\0\u2354\0\u23a0\0\u23ec\0\u2438\0\u0344" + + "\0\u07b8\0\u0804\0\u0850\0\u089c\0\u08e8\0\u0934\0\u0980\0\u09cc" + + "\0\u0a18\0\u0a64\0\u0ab0\0\u0afc\0\u0b48\0\u0b94\0\u0be0\0\u0c2c" + + "\0\u0c78\0\u0cc4\0\u0d10\0\u0d5c\0\u0da8\0\u0344\0\u0344\0\u0344" + + "\0\u0344\0\u0344\0\u0344\0\u0344\0\u0df4\0\u0e40\0\u0e8c\0\u0ed8" + + "\0\u0344\0\u0f24\0\u0f70\0\u0344\0\u0344\0\u0fbc\0\u1008\0\u1054" + + "\0\u0344\0\u10a0\0\u0344\0\u10ec\0\u1138\0\u1184\0\u0344\0\u0344" + + "\0\u11d0\0\u0344\0\u121c\0\u1268\0\u0344\0\u12b4\0\u0344\0\u0344" + + "\0\u1300\0\u134c\0\u0344\0\u1398\0\u13e4\0\u0344\0\u1430\0\u147c" + + "\0\u0344\0\u14c8\0\u1514\0\u0344\0\u0344\0\u1560\0\u0344\0\u15ac" + + "\0\u0344\0\u15f8\0\u1644\0\u0344\0\u0344\0\u1690\0\u0344\0\u0344" + + "\0\u16dc\0\u0344\0\u0344\0\u1728\0\u1774\0\u17c0\0\u180c\0\u1858" + + "\0\u18a4\0\u18f0\0\u193c\0\u1988\0\u19d4\0\u1a20\0\u1a6c\0\u1ab8" + + "\0\u1b04\0\u0344\0\u0344\0\u1b50\0\u1b9c\0\u1be8\0\u04c0\0\u1c34" + + "\0\u1c80\0\u1ccc\0\u1d18\0\u1d64\0\u1db0\0\u1dfc\0\u1e48\0\u1e94" + + "\0\u1ee0\0\u1f2c\0\u1f78\0\u1fc4\0\u2010\0\u04c0\0\u04c0\0\u205c" + + "\0\u20a8\0\u20f4\0\u2140\0\u218c\0\u04c0\0\u21d8\0\u2224\0\u2270" + + "\0\u22bc\0\u2308\0\u2354\0\u23a0\0\u23ec\0\u2438\0\u2484\0\u24d0" + "\0\u0344\0\u0344\0\u0344\0\u0344\0\u0344\0\u0344\0\u0344\0\u0344" - + "\0\u2484\0\u0344\0\u0344\0\u0344\0\u0344\0\u0344\0\u0344\0\u24d0" - + "\0\u0344\0\u1138\0\u0344\0\u1184\0\u0344\0\u11d0\0\u0344\0\u0344" - + "\0\u1268\0\u251c\0\u2568\0\u25b4\0\u2600\0\u264c\0\u2698\0\u26e4" - + "\0\u2730\0\u0344\0\u0344\0\u2484\0\u24d0\0\u277c\0\u27c8\0\u0344" - + "\0\u2814\0\u2860\0\u0344\0\u0344\0\u0344\0\u28ac\0\u0344\0\u28f8" - + "\0\u28f8\0\u0344\0\u2944\0\u180c\0\u2990\0\u29dc\0\u04c0\0\u2a28" - + "\0\u2a74\0\u2ac0\0\u2b0c\0\u2b58\0\u2ba4\0\u2bf0\0\u2c3c\0\u2c88" - + "\0\u2cd4\0\u2d20\0\u04c0\0\u2d6c\0\u2db8\0\u2e04\0\u2e50\0\u04c0" - + "\0\u2e9c\0\u2ee8\0\u2f34\0\u2f80\0\u04c0\0\u2fcc\0\u3018\0\u3064" - + "\0\u30b0\0\u30fc\0\u3148\0\u04c0\0\u3194\0\u31e0\0\u322c\0\u3278" - + "\0\u32c4\0\u3310\0\u335c\0\u33a8\0\u33f4\0\u3440\0\u04c0\0\u348c" - + "\0\u04c0\0\u34d8\0\u04c0\0\u3524\0\u3570\0\u251c\0\u0344\0\u0344" - + "\0\u0344\0\u35bc\0\u0344\0\u3608\0\u3654\0\u36a0\0\u0344\0\u0344" - + "\0\u36ec\0\u0344\0\u3738\0\u3784\0\u37d0\0\u381c\0\u3868\0\u38b4" - + "\0\u04c0\0\u04c0\0\u3900\0\u394c\0\u04c0\0\u3998\0\u39e4\0\u3a30" - + "\0\u3a7c\0\u3ac8\0\u3b14\0\u3b60\0\u3bac\0\u3bf8\0\u3c44\0\u04c0" - + "\0\u04c0\0\u3c90\0\u04c0\0\u3cdc\0\u3d28\0\u3d74\0\u3dc0\0\u3e0c" - + "\0\u3e58\0\u3ea4\0\u3ef0\0\u3f3c\0\u04c0\0\u3f88\0\u3fd4\0\u4020" - + "\0\u406c\0\u40b8\0\u04c0\0\u4104\0\u0344\0\u2484\0\u4150\0\u0344" - + "\0\u0344\0\u419c\0\u41e8\0\u4234\0\u04c0\0\u4280\0\u42cc\0\u4318" - + "\0\u04c0\0\u4364\0\u04c0\0\u04c0\0\u43b0\0\u04c0\0\u43fc\0\u04c0" - + "\0\u4448\0\u4494\0\u44e0\0\u452c\0\u04c0\0\u4578\0\u45c4\0\u4610" - + "\0\u465c\0\u46a8\0\u46f4\0\u4740\0\u478c\0\u47d8\0\u04c0\0\u4824" - + "\0\u4870\0\u48bc\0\u4908\0\u4954\0\u49a0\0\u49ec\0\u4a38\0\u4a84" - + "\0\u4ad0\0\u4b1c\0\u04c0\0\u4b68\0\u04c0\0\u04c0\0\u4bb4\0\u04c0" - + "\0\u4c00\0\u04c0\0\u4c4c\0\u4c98\0\u4ce4\0\u04c0\0\u4d30\0\u4d7c" - + "\0\u4dc8\0\u04c0\0\u4e14\0\u4e60\0\u4eac\0\u4ef8\0\u04c0\0\u4f44" - + "\0\u4f90\0\u4fdc\0\u5028\0\u04c0\0\u5074\0\u04c0\0\u50c0\0\u510c" - + "\0\u5158\0\u51a4\0\u51f0\0\u523c\0\u5288\0\u52d4\0\u04c0\0\u04c0" - + "\0\u5320\0\u04c0\0\u04c0\0\u536c\0\u53b8\0\u5404\0\u5450\0\u04c0" - + "\0\u04c0\0\u04c0\0\u549c\0\u54e8\0\u5534\0\u04c0\0\u5580\0\u55cc" - + "\0\u5618\0\u04c0\0\u5664\0\u56b0\0\u56fc\0\u04c0\0\u5748\0\u04c0" - + "\0\u5794\0\u04c0\0\u04c0\0\u0344\0\u0344\0\u57e0\0\u04c0\0\u04c0" - + "\0\u582c\0\u5878\0\u58c4\0\u5910\0\u595c\0\u1774"; + + "\0\u0344\0\u251c\0\u0344\0\u0344\0\u0344\0\u0344\0\u0344\0\u0344" + + "\0\u2568\0\u0344\0\u1184\0\u0344\0\u11d0\0\u0344\0\u121c\0\u0344" + + "\0\u0344\0\u12b4\0\u25b4\0\u2600\0\u264c\0\u2698\0\u26e4\0\u2730" + + "\0\u277c\0\u27c8\0\u0344\0\u0344\0\u251c\0\u2568\0\u2814\0\u2860" + + "\0\u0344\0\u28ac\0\u28f8\0\u0344\0\u0344\0\u0344\0\u2944\0\u0344" + + "\0\u2990\0\u2990\0\u0344\0\u29dc\0\u1858\0\u2a28\0\u2a74\0\u04c0" + + "\0\u2ac0\0\u2b0c\0\u2b58\0\u2ba4\0\u2bf0\0\u2c3c\0\u2c88\0\u2cd4" + + "\0\u2d20\0\u2d6c\0\u2db8\0\u2e04\0\u04c0\0\u2e50\0\u2e9c\0\u2ee8" + + "\0\u2f34\0\u04c0\0\u2f80\0\u2fcc\0\u3018\0\u3064\0\u04c0\0\u30b0" + + "\0\u30fc\0\u3148\0\u3194\0\u31e0\0\u322c\0\u04c0\0\u3278\0\u32c4" + + "\0\u3310\0\u335c\0\u33a8\0\u33f4\0\u3440\0\u348c\0\u34d8\0\u3524" + + "\0\u04c0\0\u3570\0\u04c0\0\u35bc\0\u04c0\0\u3608\0\u3654\0\u25b4" + + "\0\u0344\0\u0344\0\u0344\0\u36a0\0\u0344\0\u36ec\0\u3738\0\u3784" + + "\0\u0344\0\u0344\0\u37d0\0\u0344\0\u381c\0\u3868\0\u38b4\0\u3900" + + "\0\u394c\0\u3998\0\u04c0\0\u04c0\0\u39e4\0\u3a30\0\u04c0\0\u3a7c" + + "\0\u3ac8\0\u3b14\0\u3b60\0\u3bac\0\u3bf8\0\u3c44\0\u3c90\0\u3cdc" + + "\0\u3d28\0\u04c0\0\u04c0\0\u3d74\0\u04c0\0\u3dc0\0\u3e0c\0\u3e58" + + "\0\u3ea4\0\u3ef0\0\u3f3c\0\u3f88\0\u3fd4\0\u4020\0\u04c0\0\u406c" + + "\0\u40b8\0\u4104\0\u4150\0\u419c\0\u04c0\0\u41e8\0\u0344\0\u251c" + + "\0\u4234\0\u0344\0\u0344\0\u4280\0\u42cc\0\u4318\0\u04c0\0\u4364" + + "\0\u43b0\0\u43fc\0\u04c0\0\u4448\0\u04c0\0\u04c0\0\u4494\0\u04c0" + + "\0\u44e0\0\u04c0\0\u452c\0\u4578\0\u45c4\0\u4610\0\u04c0\0\u465c" + + "\0\u46a8\0\u46f4\0\u4740\0\u478c\0\u47d8\0\u4824\0\u4870\0\u48bc" + + "\0\u04c0\0\u4908\0\u4954\0\u49a0\0\u49ec\0\u4a38\0\u4a84\0\u4ad0" + + "\0\u4b1c\0\u4b68\0\u4bb4\0\u4c00\0\u04c0\0\u4c4c\0\u04c0\0\u04c0" + + "\0\u4c98\0\u04c0\0\u4ce4\0\u04c0\0\u4d30\0\u4d7c\0\u4dc8\0\u04c0" + + "\0\u4e14\0\u4e60\0\u4eac\0\u04c0\0\u4ef8\0\u4f44\0\u4f90\0\u4fdc" + + "\0\u04c0\0\u5028\0\u5074\0\u50c0\0\u510c\0\u04c0\0\u5158\0\u04c0" + + "\0\u51a4\0\u51f0\0\u523c\0\u5288\0\u52d4\0\u5320\0\u536c\0\u53b8" + + "\0\u04c0\0\u04c0\0\u5404\0\u04c0\0\u04c0\0\u5450\0\u549c\0\u54e8" + + "\0\u5534\0\u04c0\0\u04c0\0\u04c0\0\u5580\0\u55cc\0\u5618\0\u04c0" + + "\0\u5664\0\u56b0\0\u56fc\0\u04c0\0\u5748\0\u5794\0\u57e0\0\u04c0" + + "\0\u582c\0\u04c0\0\u5878\0\u04c0\0\u04c0\0\u0344\0\u0344\0\u58c4" + + "\0\u04c0\0\u04c0\0\u5910\0\u595c\0\u59a8\0\u59f4\0\u5a40\0\u17c0"; private static int[] zzUnpackRowMap() { - int[] result = new int[446]; + int[] result = new int[448]; int offset = 0; offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result); return result; @@ -434,423 +434,427 @@ public final class ActionScriptLexer { + "\1\174\2\22\1\175\1\176\13\22\14\0\1\22\7\0" + "\3\22\7\0\2\22\3\0\4\22\4\0\1\22\1\177" + "\6\22\3\0\2\22\1\200\11\22\1\201\11\22\14\0" - + "\1\22\33\0\1\202\12\0\1\203\54\0\3\22\7\0" - + "\2\22\3\0\4\22\4\0\10\22\3\0\1\22\1\204" - + "\24\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0" - + "\4\22\4\0\7\22\1\205\3\0\26\22\14\0\1\22" - + "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22" - + "\3\0\5\22\1\206\20\22\14\0\1\22\7\0\3\22" - + "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\2\22" - + "\1\207\3\22\1\210\5\22\1\211\11\22\14\0\1\22" - + "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\7\22" - + "\1\212\3\0\10\22\1\213\1\22\1\214\2\22\1\215" - + "\10\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0" - + "\4\22\4\0\10\22\3\0\22\22\1\216\3\22\14\0" - + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0" - + "\7\22\1\217\3\0\2\22\1\220\7\22\1\221\13\22" + + "\1\22\33\0\1\202\12\0\1\203\115\0\1\204\52\0" + + "\3\22\7\0\2\22\3\0\4\22\4\0\10\22\3\0" + + "\1\22\1\205\24\22\14\0\1\22\7\0\3\22\7\0" + + "\2\22\3\0\4\22\4\0\7\22\1\206\3\0\26\22" + "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22" - + "\4\0\10\22\3\0\1\22\1\222\14\22\1\223\1\22" - + "\1\224\5\22\14\0\1\22\7\0\3\22\7\0\2\22" - + "\3\0\4\22\4\0\3\22\1\225\4\22\3\0\5\22" - + "\1\226\1\22\1\227\11\22\1\230\4\22\14\0\1\22" + + "\4\0\10\22\3\0\5\22\1\207\20\22\14\0\1\22" + "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22" - + "\3\0\5\22\1\231\1\22\1\232\16\22\14\0\1\22" - + "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\7\22" - + "\1\233\3\0\6\22\1\234\11\22\1\235\5\22\14\0" - + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0" - + "\10\22\3\0\11\22\1\236\4\22\1\237\7\22\14\0" - + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0" - + "\10\22\3\0\1\22\1\240\1\241\7\22\1\242\13\22" + + "\3\0\2\22\1\210\3\22\1\211\5\22\1\212\11\22" + "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22" - + "\4\0\10\22\3\0\2\22\1\243\3\22\1\244\17\22" - + "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22" - + "\4\0\7\22\1\245\3\0\26\22\14\0\1\22\7\0" - + "\3\22\7\0\2\22\3\0\4\22\4\0\10\22\3\0" - + "\7\22\1\246\16\22\14\0\1\22\7\0\3\22\7\0" - + "\2\22\3\0\4\22\4\0\10\22\3\0\2\22\1\247" - + "\23\22\14\0\1\22\33\0\1\250\52\0\1\251\40\0" - + "\1\252\53\0\1\253\37\0\1\254\113\0\1\255\61\0" - + "\1\102\2\0\30\102\1\0\12\102\1\0\45\102\2\0" - + "\1\104\111\0\1\256\3\0\27\256\1\257\1\260\1\256" - + "\1\261\1\256\1\262\5\256\1\263\1\256\1\264\1\265" - + "\5\256\1\266\1\267\1\256\1\270\30\256\1\0\1\107" - + "\2\0\31\107\1\0\11\107\1\0\45\107\2\0\1\111" - + "\113\0\1\113\114\0\1\114\7\0\1\114\116\0\1\271" - + "\105\0\2\272\3\0\1\272\1\0\4\272\2\0\4\272" - + "\1\0\1\273\2\0\10\272\3\0\26\272\16\0\1\274" - + "\2\0\30\274\1\275\60\274\10\0\2\276\3\0\1\276" - + "\1\0\4\276\2\0\4\276\1\0\1\277\2\0\10\276" - + "\3\0\26\276\34\0\1\300\75\0\1\301\2\0\30\301" - + "\1\302\1\303\57\301\31\0\1\304\64\0\1\133\126\0" - + "\1\305\102\0\1\306\3\0\1\307\3\0\1\310\2\0" - + "\2\307\2\0\1\311\1\0\4\307\5\0\3\307\2\0" - + "\2\307\3\0\26\307\2\0\1\312\13\0\1\137\2\0" - + "\43\137\2\0\44\137\1\313\3\0\32\313\1\314\1\313" - + "\1\262\5\313\1\263\1\313\1\264\1\265\5\313\1\266" - + "\1\267\1\313\1\315\27\313\1\316\1\0\1\142\1\317" - + "\1\320\111\142\5\321\1\322\106\321\11\0\1\323\123\0" - + "\1\150\13\0\1\150\3\0\2\150\2\164\57\0\2\152" - + "\3\0\1\152\1\0\4\152\2\0\4\152\4\0\10\152" - + "\3\0\26\152\50\0\1\324\113\0\1\325\77\0\1\326" - + "\13\0\1\327\76\0\1\330\3\0\1\331\13\0\1\331" - + "\3\0\2\331\2\0\1\330\100\0\1\332\72\0\1\150" - + "\7\0\1\166\13\0\1\166\3\0\2\166\2\164\60\0" - + "\1\150\7\0\1\166\13\0\1\167\3\0\1\171\1\172" - + "\2\164\67\0\2\333\3\0\3\333\5\0\1\334\2\0" - + "\5\333\3\0\1\333\1\0\1\333\1\0\1\333\6\0" - + "\1\333\41\0\1\150\7\0\1\166\13\0\1\172\3\0" - + "\2\172\2\164\60\0\1\150\7\0\1\166\13\0\1\335" - + "\3\0\2\335\2\164\55\0\3\22\7\0\2\22\3\0" - + "\4\22\4\0\10\22\3\0\14\22\1\336\11\22\14\0" - + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0" - + "\10\22\3\0\1\22\1\337\24\22\14\0\1\22\7\0" - + "\3\22\7\0\2\22\3\0\4\22\4\0\10\22\3\0" - + "\7\22\1\340\16\22\14\0\1\22\7\0\3\22\7\0" - + "\2\22\3\0\4\22\4\0\10\22\3\0\7\22\1\341" - + "\16\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0" - + "\4\22\4\0\10\22\3\0\10\22\1\342\15\22\14\0" - + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0" - + "\10\22\3\0\4\22\1\343\21\22\14\0\1\22\7\0" - + "\3\22\7\0\2\22\3\0\4\22\4\0\10\22\3\0" - + "\5\22\1\344\20\22\14\0\1\22\7\0\3\22\7\0" - + "\2\22\3\0\4\22\4\0\7\22\1\345\3\0\26\22" - + "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22" - + "\4\0\10\22\3\0\10\22\1\346\15\22\14\0\1\22" - + "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22" - + "\3\0\5\22\1\347\2\22\1\350\15\22\14\0\1\22" - + "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22" - + "\3\0\7\22\1\351\16\22\14\0\1\22\7\0\3\22" - + "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\2\22" - + "\1\352\23\22\14\0\1\22\7\0\3\22\7\0\2\22" - + "\3\0\4\22\4\0\10\22\3\0\10\22\1\353\15\22" - + "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22" - + "\4\0\10\22\3\0\2\22\1\354\23\22\14\0\1\22" - + "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22" - + "\3\0\17\22\1\355\6\22\14\0\1\22\7\0\3\22" - + "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\11\22" - + "\1\356\14\22\14\0\1\22\7\0\3\22\7\0\2\22" - + "\3\0\4\22\4\0\7\22\1\357\3\0\26\22\14\0" - + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0" - + "\10\22\3\0\15\22\1\360\10\22\14\0\1\22\7\0" - + "\3\22\7\0\2\22\3\0\4\22\4\0\10\22\3\0" - + "\10\22\1\361\10\22\1\362\4\22\14\0\1\22\7\0" - + "\3\22\7\0\2\22\3\0\4\22\4\0\10\22\3\0" - + "\14\22\1\363\11\22\14\0\1\22\7\0\3\22\7\0" - + "\2\22\3\0\4\22\4\0\10\22\3\0\12\22\1\364" - + "\5\22\1\365\5\22\14\0\1\22\7\0\3\22\7\0" - + "\2\22\3\0\4\22\4\0\10\22\3\0\1\22\1\366" - + "\7\22\1\367\14\22\14\0\1\22\7\0\3\22\7\0" - + "\2\22\3\0\4\22\4\0\10\22\3\0\17\22\1\370" - + "\6\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0" - + "\4\22\4\0\10\22\3\0\5\22\1\371\2\22\1\372" - + "\15\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0" - + "\4\22\4\0\10\22\3\0\17\22\1\373\6\22\14\0" - + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0" - + "\7\22\1\374\3\0\26\22\14\0\1\22\7\0\3\22" - + "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\13\22" - + "\1\375\12\22\14\0\1\22\7\0\3\22\7\0\2\22" - + "\3\0\4\22\4\0\3\22\1\376\4\22\3\0\14\22" - + "\1\377\11\22\14\0\1\22\7\0\3\22\7\0\2\22" - + "\3\0\4\22\4\0\10\22\3\0\7\22\1\u0100\16\22" - + "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22" - + "\4\0\10\22\3\0\10\22\1\u0101\15\22\14\0\1\22" - + "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22" - + "\3\0\11\22\1\u0102\14\22\14\0\1\22\7\0\3\22" - + "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\6\22" - + "\1\u0103\2\22\1\u0104\14\22\14\0\1\22\7\0\3\22" - + "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\4\22" - + "\1\u0105\21\22\14\0\1\22\7\0\3\22\7\0\2\22" - + "\3\0\4\22\4\0\10\22\3\0\1\u0106\25\22\14\0" - + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0" - + "\10\22\3\0\1\22\1\u0107\24\22\14\0\1\22\7\0" - + "\3\22\7\0\2\22\3\0\4\22\4\0\10\22\3\0" - + "\11\22\1\u0108\14\22\14\0\1\22\7\0\3\22\7\0" - + "\2\22\3\0\4\22\4\0\10\22\3\0\10\22\1\u0109" - + "\15\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0" - + "\4\22\4\0\3\22\1\u010a\4\22\3\0\26\22\14\0" - + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0" - + "\10\22\3\0\25\22\1\u010b\14\0\1\22\21\0\2\u010c" - + "\3\0\3\u010c\5\0\1\u010c\2\0\5\u010c\3\0\1\u010c" - + "\1\0\1\u010c\1\0\1\u010c\6\0\1\u010c\50\0\2\u010d" - + "\3\0\3\u010d\5\0\1\u010d\2\0\5\u010d\3\0\1\u010d" - + "\1\0\1\u010d\1\0\1\u010d\6\0\1\u010d\30\0\1\u010e" - + "\2\0\30\u010e\1\302\1\0\57\u010e\1\303\2\0\30\303" - + "\1\u010f\60\303\16\0\1\u0110\113\0\1\u0111\105\0\1\u0112" - + "\6\0\2\u0112\4\0\4\u0112\5\0\3\u0112\2\0\2\u0112" - + "\3\0\26\u0112\2\0\1\u0113\23\0\2\307\3\0\1\307" - + "\1\0\4\307\2\0\4\307\4\0\10\307\3\0\26\307" - + "\33\0\1\u0114\6\0\1\u0115\77\0\1\u0116\6\0\2\u0116" - + "\4\0\4\u0116\5\0\3\u0116\2\0\2\u0116\3\0\26\u0116" - + "\2\0\1\u0117\62\0\1\u0118\46\0\1\320\111\0\5\321" - + "\1\u0119\106\321\4\0\1\320\1\322\140\0\1\u011a\102\0" - + "\1\331\13\0\1\331\3\0\2\331\71\0\2\u011b\3\0" - + "\3\u011b\5\0\1\u011b\2\0\5\u011b\3\0\1\u011b\1\0" - + "\1\u011b\1\0\1\u011b\6\0\1\u011b\41\0\1\150\7\0" - + "\1\166\13\0\1\u011c\3\0\2\u011c\2\164\55\0\3\22" - + "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\5\22" - + "\1\u011d\20\22\14\0\1\22\7\0\3\22\7\0\2\22" - + "\3\0\4\22\4\0\10\22\3\0\2\22\1\u011e\23\22" - + "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22" - + "\4\0\10\22\3\0\4\22\1\u011f\21\22\14\0\1\22" - + "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\7\22" - + "\1\u0120\3\0\26\22\14\0\1\22\7\0\3\22\7\0" - + "\2\22\3\0\4\22\4\0\10\22\3\0\16\22\1\u0121" - + "\7\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0" - + "\4\22\4\0\7\22\1\u0122\3\0\26\22\14\0\1\22" - + "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22" - + "\3\0\2\22\1\u0123\23\22\14\0\1\22\7\0\3\22" - + "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\12\22" - + "\1\u0124\13\22\14\0\1\22\7\0\3\22\7\0\2\22" - + "\3\0\4\22\4\0\7\22\1\u0125\3\0\26\22\14\0" - + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0" - + "\10\22\3\0\4\22\1\u0126\21\22\14\0\1\22\7\0" - + "\3\22\7\0\2\22\3\0\4\22\4\0\10\22\3\0" - + "\5\22\1\u0127\2\22\1\u0128\15\22\14\0\1\22\7\0" - + "\3\22\7\0\2\22\3\0\4\22\4\0\10\22\3\0" - + "\5\22\1\u0129\20\22\14\0\1\22\7\0\3\22\7\0" - + "\2\22\3\0\4\22\4\0\10\22\3\0\10\22\1\u012a" - + "\15\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0" - + "\4\22\4\0\7\22\1\u012b\3\0\26\22\14\0\1\22" - + "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22" - + "\3\0\10\22\1\u012c\15\22\14\0\1\22\7\0\3\22" - + "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\1\22" - + "\1\u012d\24\22\14\0\1\22\7\0\3\22\7\0\2\22" - + "\3\0\4\22\4\0\10\22\3\0\11\22\1\u012e\14\22" - + "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22" - + "\4\0\7\22\1\u012f\3\0\26\22\14\0\1\22\7\0" - + "\3\22\7\0\2\22\3\0\4\22\4\0\10\22\3\0" - + "\14\22\1\u0130\11\22\14\0\1\22\7\0\3\22\7\0" - + "\2\22\3\0\4\22\4\0\7\22\1\u0131\3\0\26\22" - + "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22" - + "\4\0\10\22\3\0\6\22\1\u0132\17\22\14\0\1\22" - + "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22" - + "\3\0\5\22\1\u0133\20\22\14\0\1\22\7\0\3\22" - + "\7\0\2\22\3\0\4\22\4\0\7\22\1\u0134\3\0" - + "\26\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0" - + "\4\22\4\0\10\22\3\0\10\22\1\u0135\15\22\14\0" - + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0" - + "\7\22\1\u0136\3\0\26\22\14\0\1\22\7\0\3\22" - + "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\6\22" - + "\1\u0137\5\22\1\u0138\11\22\14\0\1\22\7\0\3\22" - + "\7\0\2\22\3\0\4\22\4\0\7\22\1\u0139\3\0" - + "\26\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0" - + "\4\22\4\0\10\22\3\0\2\22\1\u013a\23\22\14\0" - + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0" - + "\7\22\1\u013b\3\0\26\22\14\0\1\22\7\0\3\22" - + "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\2\22" - + "\1\u013c\23\22\14\0\1\22\7\0\3\22\7\0\2\22" - + "\3\0\4\22\4\0\10\22\3\0\16\22\1\u013d\7\22" - + "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22" - + "\4\0\10\22\3\0\14\22\1\u013e\11\22\14\0\1\22" - + "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22" - + "\3\0\10\22\1\u013f\15\22\14\0\1\22\7\0\3\22" - + "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\22\22" - + "\1\u0140\3\22\14\0\1\22\7\0\3\22\7\0\2\22" - + "\3\0\4\22\4\0\10\22\3\0\3\22\1\u0141\22\22" - + "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22" - + "\4\0\10\22\3\0\14\22\1\u0142\11\22\14\0\1\22" - + "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22" - + "\3\0\13\22\1\u0143\12\22\14\0\1\22\7\0\3\22" - + "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\11\22" - + "\1\u0144\14\22\14\0\1\22\21\0\2\u0145\3\0\3\u0145" - + "\5\0\1\u0145\2\0\5\u0145\3\0\1\u0145\1\0\1\u0145" - + "\1\0\1\u0145\6\0\1\u0145\50\0\2\u0146\3\0\3\u0146" - + "\5\0\1\u0146\2\0\5\u0146\3\0\1\u0146\1\0\1\u0146" - + "\1\0\1\u0146\6\0\1\u0146\31\0\2\u0147\5\0\2\u0112" - + "\1\0\1\u0147\1\0\1\u0112\1\u0148\4\u0112\2\0\4\u0112" - + "\4\0\10\u0112\3\0\26\u0112\33\0\1\u0149\123\0\1\u014a" - + "\76\0\2\u0116\3\0\1\u0116\1\0\4\u0116\2\0\4\u0116" - + "\4\0\10\u0116\3\0\26\u0116\16\0\4\321\1\320\1\u0119" - + "\106\321\20\0\2\u014b\3\0\3\u014b\5\0\1\u014b\2\0" - + "\5\u014b\3\0\1\u014b\1\0\1\u014b\1\0\1\u014b\6\0" - + "\1\u014b\41\0\1\150\7\0\1\166\13\0\1\u014c\3\0" - + "\2\u014c\2\164\55\0\3\22\7\0\2\22\3\0\4\22" - + "\4\0\7\22\1\u014d\3\0\26\22\14\0\1\22\7\0" - + "\3\22\7\0\2\22\3\0\4\22\4\0\10\22\3\0" - + "\14\22\1\u014e\11\22\14\0\1\22\7\0\3\22\7\0" - + "\2\22\3\0\4\22\4\0\10\22\3\0\10\22\1\u014f" - + "\15\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0" - + "\4\22\4\0\10\22\3\0\7\22\1\u0150\16\22\14\0" - + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0" - + "\10\22\3\0\3\22\1\u0151\22\22\14\0\1\22\7\0" - + "\3\22\7\0\2\22\3\0\4\22\4\0\10\22\3\0" - + "\1\22\1\u0152\24\22\14\0\1\22\7\0\3\22\7\0" - + "\2\22\3\0\4\22\4\0\10\22\3\0\16\22\1\u0153" - + "\7\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0" - + "\4\22\4\0\10\22\3\0\10\22\1\u0154\15\22\14\0" - + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0" - + "\10\22\3\0\11\22\1\u0155\14\22\14\0\1\22\7\0" - + "\3\22\7\0\2\22\3\0\4\22\4\0\10\22\3\0" - + "\5\22\1\u0156\20\22\14\0\1\22\7\0\3\22\7\0" - + "\2\22\3\0\4\22\4\0\10\22\3\0\11\22\1\u0157" - + "\14\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0" - + "\4\22\4\0\10\22\3\0\1\22\1\u0158\24\22\14\0" - + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0" - + "\10\22\3\0\4\22\1\u0159\21\22\14\0\1\22\7\0" - + "\3\22\7\0\2\22\3\0\4\22\4\0\10\22\3\0" - + "\1\22\1\u015a\24\22\14\0\1\22\7\0\3\22\7\0" - + "\2\22\3\0\4\22\4\0\10\22\3\0\22\22\1\u015b" + + "\4\0\7\22\1\213\3\0\10\22\1\214\1\22\1\215" + + "\2\22\1\216\10\22\14\0\1\22\7\0\3\22\7\0" + + "\2\22\3\0\4\22\4\0\10\22\3\0\22\22\1\217" + "\3\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0" - + "\4\22\4\0\10\22\3\0\5\22\1\u015c\20\22\14\0" + + "\4\22\4\0\7\22\1\220\3\0\2\22\1\221\7\22" + + "\1\222\13\22\14\0\1\22\7\0\3\22\7\0\2\22" + + "\3\0\4\22\4\0\10\22\3\0\1\22\1\223\14\22" + + "\1\224\1\22\1\225\5\22\14\0\1\22\7\0\3\22" + + "\7\0\2\22\3\0\4\22\4\0\3\22\1\226\4\22" + + "\3\0\5\22\1\227\1\22\1\230\11\22\1\231\4\22" + + "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22" + + "\4\0\10\22\3\0\5\22\1\232\1\22\1\233\16\22" + + "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22" + + "\4\0\7\22\1\234\3\0\6\22\1\235\11\22\1\236" + + "\5\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0" + + "\4\22\4\0\10\22\3\0\11\22\1\237\4\22\1\240" + + "\7\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0" + + "\4\22\4\0\10\22\3\0\1\22\1\241\1\242\7\22" + + "\1\243\13\22\14\0\1\22\7\0\3\22\7\0\2\22" + + "\3\0\4\22\4\0\10\22\3\0\2\22\1\244\3\22" + + "\1\245\17\22\14\0\1\22\7\0\3\22\7\0\2\22" + + "\3\0\4\22\4\0\7\22\1\246\3\0\26\22\14\0" + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0" - + "\10\22\3\0\15\22\1\u015d\10\22\14\0\1\22\7\0" + + "\10\22\3\0\7\22\1\247\16\22\14\0\1\22\7\0" + "\3\22\7\0\2\22\3\0\4\22\4\0\10\22\3\0" - + "\6\22\1\u015e\17\22\14\0\1\22\7\0\3\22\7\0" - + "\2\22\3\0\4\22\4\0\10\22\3\0\2\22\1\u015f" - + "\23\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0" - + "\4\22\4\0\10\22\3\0\1\22\1\u0160\24\22\14\0" + + "\2\22\1\250\23\22\14\0\1\22\33\0\1\251\52\0" + + "\1\252\40\0\1\253\53\0\1\254\37\0\1\255\113\0" + + "\1\256\61\0\1\102\2\0\30\102\1\0\12\102\1\0" + + "\45\102\2\0\1\104\111\0\1\257\3\0\27\257\1\260" + + "\1\261\1\257\1\262\1\257\1\263\5\257\1\264\1\257" + + "\1\265\1\266\5\257\1\267\1\270\1\257\1\271\30\257" + + "\1\0\1\107\2\0\31\107\1\0\11\107\1\0\45\107" + + "\2\0\1\111\113\0\1\113\114\0\1\114\7\0\1\114" + + "\116\0\1\272\105\0\2\273\3\0\1\273\1\0\4\273" + + "\2\0\4\273\1\0\1\274\2\0\10\273\3\0\26\273" + + "\16\0\1\275\2\0\30\275\1\276\60\275\10\0\2\277" + + "\3\0\1\277\1\0\4\277\2\0\4\277\1\0\1\300" + + "\2\0\10\277\3\0\26\277\34\0\1\301\75\0\1\302" + + "\2\0\30\302\1\303\1\304\57\302\31\0\1\305\64\0" + + "\1\133\126\0\1\306\102\0\1\307\3\0\1\310\3\0" + + "\1\311\2\0\2\310\2\0\1\312\1\0\4\310\5\0" + + "\3\310\2\0\2\310\3\0\26\310\2\0\1\313\13\0" + + "\1\137\2\0\43\137\2\0\44\137\1\314\3\0\32\314" + + "\1\315\1\314\1\263\5\314\1\264\1\314\1\265\1\266" + + "\5\314\1\267\1\270\1\314\1\316\27\314\1\317\1\0" + + "\1\142\1\320\1\321\111\142\5\322\1\323\106\322\11\0" + + "\1\324\123\0\1\150\13\0\1\150\3\0\2\150\2\164" + + "\57\0\2\152\3\0\1\152\1\0\4\152\2\0\4\152" + + "\4\0\10\152\3\0\26\152\50\0\1\325\113\0\1\326" + + "\77\0\1\327\13\0\1\330\76\0\1\331\3\0\1\332" + + "\13\0\1\332\3\0\2\332\2\0\1\331\100\0\1\333" + + "\72\0\1\150\7\0\1\166\13\0\1\166\3\0\2\166" + + "\2\164\60\0\1\150\7\0\1\166\13\0\1\167\3\0" + + "\1\171\1\172\2\164\67\0\2\334\3\0\3\334\5\0" + + "\1\335\2\0\5\334\3\0\1\334\1\0\1\334\1\0" + + "\1\334\6\0\1\334\41\0\1\150\7\0\1\166\13\0" + + "\1\172\3\0\2\172\2\164\60\0\1\150\7\0\1\166" + + "\13\0\1\336\3\0\2\336\2\164\55\0\3\22\7\0" + + "\2\22\3\0\4\22\4\0\10\22\3\0\14\22\1\337" + + "\11\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0" + + "\4\22\4\0\10\22\3\0\1\22\1\340\24\22\14\0" + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0" - + "\10\22\3\0\1\22\1\u0161\24\22\14\0\1\22\7\0" - + "\3\22\7\0\2\22\3\0\4\22\4\0\7\22\1\u0162" + + "\10\22\3\0\7\22\1\341\16\22\14\0\1\22\7\0" + + "\3\22\7\0\2\22\3\0\4\22\4\0\10\22\3\0" + + "\7\22\1\342\16\22\14\0\1\22\7\0\3\22\7\0" + + "\2\22\3\0\4\22\4\0\10\22\3\0\10\22\1\343" + + "\15\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0" + + "\4\22\4\0\10\22\3\0\4\22\1\344\21\22\14\0" + + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0" + + "\10\22\3\0\5\22\1\345\20\22\14\0\1\22\7\0" + + "\1\346\1\0\1\346\7\0\1\346\4\0\4\346\5\0" + + "\3\346\2\0\2\346\3\0\26\346\14\0\1\346\7\0" + + "\3\22\7\0\2\22\3\0\4\22\4\0\7\22\1\347" + "\3\0\26\22\14\0\1\22\7\0\3\22\7\0\2\22" - + "\3\0\4\22\4\0\3\22\1\u0163\4\22\3\0\26\22" + + "\3\0\4\22\4\0\10\22\3\0\10\22\1\350\15\22" + "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22" - + "\4\0\10\22\3\0\12\22\1\u0164\13\22\14\0\1\22" - + "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22" - + "\3\0\10\22\1\u0165\15\22\14\0\1\22\7\0\3\22" - + "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\21\22" - + "\1\u0166\4\22\14\0\1\22\7\0\3\22\7\0\2\22" - + "\3\0\4\22\4\0\7\22\1\u0167\3\0\26\22\14\0" - + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0" - + "\7\22\1\u0168\3\0\26\22\14\0\1\22\7\0\3\22" - + "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\2\22" - + "\1\u0169\23\22\14\0\1\22\7\0\3\22\7\0\2\22" - + "\3\0\4\22\4\0\10\22\3\0\2\22\1\u016a\23\22" + + "\4\0\10\22\3\0\5\22\1\351\2\22\1\352\15\22" + "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22" - + "\4\0\10\22\3\0\11\22\1\u016b\14\22\14\0\1\22" + + "\4\0\10\22\3\0\7\22\1\353\16\22\14\0\1\22" + "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22" - + "\3\0\7\22\1\u016c\16\22\14\0\1\22\2\0\2\u0147" - + "\10\0\1\u0147\2\0\1\u0148\123\0\1\u016d\105\0\2\u016e" - + "\3\0\3\u016e\5\0\1\u016e\2\0\5\u016e\3\0\1\u016e" - + "\1\0\1\u016e\1\0\1\u016e\6\0\1\u016e\41\0\1\150" - + "\7\0\1\166\13\0\1\u016f\3\0\2\u016f\2\164\55\0" - + "\3\22\7\0\2\22\3\0\4\22\4\0\10\22\3\0" - + "\14\22\1\u0170\11\22\14\0\1\22\7\0\3\22\7\0" - + "\2\22\3\0\4\22\4\0\10\22\3\0\11\22\1\u0171" - + "\14\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0" - + "\4\22\4\0\10\22\3\0\13\22\1\u0172\12\22\14\0" - + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0" - + "\10\22\3\0\7\22\1\u0173\16\22\14\0\1\22\7\0" - + "\3\22\7\0\2\22\3\0\4\22\4\0\10\22\3\0" - + "\7\22\1\u0174\16\22\14\0\1\22\7\0\3\22\7\0" - + "\2\22\3\0\4\22\4\0\10\22\3\0\4\22\1\u0175" - + "\21\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0" - + "\4\22\4\0\10\22\3\0\16\22\1\u0176\7\22\14\0" - + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0" - + "\10\22\3\0\11\22\1\u0177\14\22\14\0\1\22\7\0" - + "\3\22\7\0\2\22\3\0\4\22\4\0\7\22\1\u0178" - + "\3\0\26\22\14\0\1\22\7\0\3\22\7\0\2\22" - + "\3\0\4\22\4\0\10\22\3\0\17\22\1\u0179\6\22" - + "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22" - + "\4\0\3\22\1\u017a\4\22\3\0\26\22\14\0\1\22" - + "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22" - + "\3\0\7\22\1\u017b\16\22\14\0\1\22\7\0\3\22" - + "\7\0\2\22\3\0\4\22\4\0\3\22\1\u017c\4\22" - + "\3\0\7\22\1\u017d\16\22\14\0\1\22\7\0\3\22" + + "\3\0\2\22\1\354\23\22\14\0\1\22\7\0\3\22" + "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\10\22" - + "\1\u017e\15\22\14\0\1\22\7\0\3\22\7\0\2\22" - + "\3\0\4\22\4\0\10\22\3\0\21\22\1\u017f\4\22" + + "\1\355\15\22\14\0\1\22\7\0\3\22\7\0\2\22" + + "\3\0\4\22\4\0\10\22\3\0\2\22\1\356\23\22" + "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22" - + "\4\0\10\22\3\0\11\22\1\u0180\14\22\14\0\1\22" + + "\4\0\10\22\3\0\17\22\1\357\6\22\14\0\1\22" + "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22" - + "\3\0\14\22\1\u0181\11\22\14\0\1\22\7\0\3\22" - + "\7\0\2\22\3\0\4\22\4\0\7\22\1\u0182\3\0" + + "\3\0\11\22\1\360\14\22\14\0\1\22\7\0\3\22" + + "\7\0\2\22\3\0\4\22\4\0\7\22\1\361\3\0" + "\26\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0" - + "\4\22\4\0\10\22\3\0\11\22\1\u0183\14\22\14\0" + + "\4\22\4\0\10\22\3\0\15\22\1\362\10\22\14\0" + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0" - + "\10\22\3\0\4\22\1\u0184\21\22\14\0\1\22\7\0" + + "\10\22\3\0\10\22\1\363\10\22\1\364\4\22\14\0" + + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0" + + "\10\22\3\0\14\22\1\365\11\22\14\0\1\22\7\0" + "\3\22\7\0\2\22\3\0\4\22\4\0\10\22\3\0" - + "\10\22\1\u0185\15\22\14\0\1\22\7\0\3\22\7\0" - + "\2\22\3\0\4\22\4\0\10\22\3\0\23\22\1\u0186" - + "\2\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0" - + "\4\22\4\0\10\22\3\0\4\22\1\u0187\21\22\14\0" - + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0" - + "\10\22\3\0\11\22\1\u0188\14\22\14\0\1\22\30\0" - + "\1\u0189\104\0\2\u018a\3\0\3\u018a\5\0\1\u018a\2\0" - + "\5\u018a\3\0\1\u018a\1\0\1\u018a\1\0\1\u018a\6\0" - + "\1\u018a\41\0\1\150\7\0\1\166\13\0\1\u018b\3\0" - + "\2\u018b\2\164\55\0\3\22\7\0\2\22\3\0\4\22" - + "\4\0\10\22\3\0\20\22\1\u018c\5\22\14\0\1\22" + + "\12\22\1\366\5\22\1\367\5\22\14\0\1\22\7\0" + + "\3\22\7\0\2\22\3\0\4\22\4\0\10\22\3\0" + + "\1\22\1\370\7\22\1\371\14\22\14\0\1\22\7\0" + + "\3\22\7\0\2\22\3\0\4\22\4\0\10\22\3\0" + + "\17\22\1\372\6\22\14\0\1\22\7\0\3\22\7\0" + + "\2\22\3\0\4\22\4\0\10\22\3\0\5\22\1\373" + + "\2\22\1\374\15\22\14\0\1\22\7\0\3\22\7\0" + + "\2\22\3\0\4\22\4\0\10\22\3\0\17\22\1\375" + + "\6\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0" + + "\4\22\4\0\7\22\1\376\3\0\26\22\14\0\1\22" + "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22" - + "\3\0\6\22\1\u018d\17\22\14\0\1\22\7\0\3\22" - + "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\5\22" - + "\1\u018e\20\22\14\0\1\22\7\0\3\22\7\0\2\22" - + "\3\0\4\22\4\0\10\22\3\0\12\22\1\u018f\13\22" + + "\3\0\13\22\1\377\12\22\14\0\1\22\7\0\3\22" + + "\7\0\2\22\3\0\4\22\4\0\3\22\1\u0100\4\22" + + "\3\0\14\22\1\u0101\11\22\14\0\1\22\7\0\3\22" + + "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\7\22" + + "\1\u0102\16\22\14\0\1\22\7\0\3\22\7\0\2\22" + + "\3\0\4\22\4\0\10\22\3\0\10\22\1\u0103\15\22" + "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22" - + "\4\0\10\22\3\0\13\22\1\u0190\12\22\14\0\1\22" + + "\4\0\10\22\3\0\11\22\1\u0104\14\22\14\0\1\22" + "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22" - + "\3\0\2\22\1\u0191\23\22\14\0\1\22\7\0\3\22" - + "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\4\22" - + "\1\u0192\21\22\14\0\1\22\7\0\3\22\7\0\2\22" - + "\3\0\4\22\4\0\10\22\3\0\2\22\1\u0193\23\22" - + "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22" - + "\4\0\10\22\3\0\2\22\1\u0194\23\22\14\0\1\22" - + "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\7\22" - + "\1\u0195\3\0\26\22\14\0\1\22\7\0\3\22\7\0" - + "\2\22\3\0\4\22\4\0\10\22\3\0\7\22\1\u0196" - + "\16\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0" - + "\4\22\4\0\10\22\3\0\10\22\1\u0197\15\22\14\0" + + "\3\0\6\22\1\u0105\2\22\1\u0106\14\22\14\0\1\22" + + "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22" + + "\3\0\4\22\1\u0107\21\22\14\0\1\22\7\0\3\22" + + "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\1\u0108" + + "\25\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0" + + "\4\22\4\0\10\22\3\0\1\22\1\u0109\24\22\14\0" + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0" - + "\10\22\3\0\4\22\1\u0198\21\22\14\0\1\22\7\0" + + "\10\22\3\0\11\22\1\u010a\14\22\14\0\1\22\7\0" + "\3\22\7\0\2\22\3\0\4\22\4\0\10\22\3\0" - + "\10\22\1\u0199\15\22\14\0\1\22\7\0\3\22\7\0" - + "\2\22\3\0\4\22\4\0\7\22\1\u019a\3\0\26\22" - + "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22" - + "\4\0\7\22\1\u019b\3\0\26\22\14\0\1\22\7\0" - + "\3\22\7\0\2\22\3\0\4\22\4\0\10\22\3\0" - + "\10\22\1\u019c\15\22\14\0\1\22\31\0\1\u019d\103\0" - + "\2\u019e\3\0\3\u019e\5\0\1\u019e\2\0\5\u019e\3\0" - + "\1\u019e\1\0\1\u019e\1\0\1\u019e\6\0\1\u019e\41\0" - + "\1\150\7\0\1\166\13\0\1\u019f\3\0\2\u019f\2\164" + + "\10\22\1\u010b\15\22\14\0\1\22\7\0\3\22\7\0" + + "\2\22\3\0\4\22\4\0\3\22\1\u010c\4\22\3\0" + + "\26\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0" + + "\4\22\4\0\10\22\3\0\25\22\1\u010d\14\0\1\22" + + "\21\0\2\u010e\3\0\3\u010e\5\0\1\u010e\2\0\5\u010e" + + "\3\0\1\u010e\1\0\1\u010e\1\0\1\u010e\6\0\1\u010e" + + "\50\0\2\u010f\3\0\3\u010f\5\0\1\u010f\2\0\5\u010f" + + "\3\0\1\u010f\1\0\1\u010f\1\0\1\u010f\6\0\1\u010f" + + "\30\0\1\u0110\2\0\30\u0110\1\303\1\0\57\u0110\1\304" + + "\2\0\30\304\1\u0111\60\304\16\0\1\u0112\113\0\1\u0113" + + "\105\0\1\u0114\6\0\2\u0114\4\0\4\u0114\5\0\3\u0114" + + "\2\0\2\u0114\3\0\26\u0114\2\0\1\u0115\23\0\2\310" + + "\3\0\1\310\1\0\4\310\2\0\4\310\4\0\10\310" + + "\3\0\26\310\33\0\1\u0116\6\0\1\u0117\77\0\1\u0118" + + "\6\0\2\u0118\4\0\4\u0118\5\0\3\u0118\2\0\2\u0118" + + "\3\0\26\u0118\2\0\1\u0119\62\0\1\u011a\46\0\1\321" + + "\111\0\5\322\1\u011b\106\322\4\0\1\321\1\323\140\0" + + "\1\u011c\102\0\1\332\13\0\1\332\3\0\2\332\71\0" + + "\2\u011d\3\0\3\u011d\5\0\1\u011d\2\0\5\u011d\3\0" + + "\1\u011d\1\0\1\u011d\1\0\1\u011d\6\0\1\u011d\41\0" + + "\1\150\7\0\1\166\13\0\1\u011e\3\0\2\u011e\2\164" + "\55\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22" - + "\3\0\7\22\1\u01a0\16\22\14\0\1\22\7\0\3\22" - + "\7\0\2\22\3\0\4\22\4\0\7\22\1\u01a1\3\0" - + "\26\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0" - + "\4\22\4\0\7\22\1\u01a2\3\0\26\22\14\0\1\22" - + "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22" - + "\3\0\4\22\1\u01a3\21\22\14\0\1\22\7\0\3\22" - + "\7\0\2\22\3\0\4\22\4\0\7\22\1\u01a4\3\0" - + "\26\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0" - + "\4\22\4\0\10\22\3\0\4\22\1\u01a5\21\22\14\0" - + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0" - + "\10\22\3\0\14\22\1\u01a6\11\22\14\0\1\22\7\0" - + "\3\22\7\0\2\22\3\0\4\22\4\0\10\22\3\0" - + "\7\22\1\u01a7\16\22\14\0\1\22\7\0\3\22\7\0" - + "\2\22\3\0\4\22\4\0\7\22\1\u01a8\3\0\26\22" + + "\3\0\5\22\1\u011f\20\22\14\0\1\22\7\0\3\22" + + "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\2\22" + + "\1\u0120\23\22\14\0\1\22\7\0\3\22\7\0\2\22" + + "\3\0\4\22\4\0\10\22\3\0\4\22\1\u0121\21\22" + "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22" - + "\4\0\7\22\1\u01a9\3\0\26\22\14\0\1\22\7\0" + + "\4\0\7\22\1\u0122\3\0\26\22\14\0\1\22\7\0" + "\3\22\7\0\2\22\3\0\4\22\4\0\10\22\3\0" - + "\20\22\1\u01aa\5\22\14\0\1\22\30\0\1\u01ab\104\0" - + "\2\u01ac\3\0\3\u01ac\5\0\1\u01ac\2\0\5\u01ac\3\0" - + "\1\u01ac\1\0\1\u01ac\1\0\1\u01ac\6\0\1\u01ac\41\0" - + "\1\150\7\0\1\166\13\0\1\u01ad\3\0\2\u01ad\2\164" - + "\55\0\3\22\7\0\2\22\3\0\4\22\4\0\7\22" - + "\1\u01ae\3\0\26\22\14\0\1\22\7\0\3\22\7\0" - + "\2\22\3\0\4\22\4\0\10\22\3\0\6\22\1\u01af" - + "\17\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0" - + "\4\22\4\0\7\22\1\u01b0\3\0\26\22\14\0\1\22" + + "\16\22\1\u0123\7\22\14\0\1\22\7\0\3\22\7\0" + + "\2\22\3\0\4\22\4\0\7\22\1\u0124\3\0\26\22" + + "\14\0\1\22\7\0\3\346\7\0\2\346\3\0\4\346" + + "\4\0\10\346\3\0\26\346\14\0\1\346\7\0\3\22" + + "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\2\22" + + "\1\u0125\23\22\14\0\1\22\7\0\3\22\7\0\2\22" + + "\3\0\4\22\4\0\10\22\3\0\12\22\1\u0126\13\22" + + "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22" + + "\4\0\7\22\1\u0127\3\0\26\22\14\0\1\22\7\0" + + "\3\22\7\0\2\22\3\0\4\22\4\0\10\22\3\0" + + "\4\22\1\u0128\21\22\14\0\1\22\7\0\3\22\7\0" + + "\2\22\3\0\4\22\4\0\10\22\3\0\5\22\1\u0129" + + "\2\22\1\u012a\15\22\14\0\1\22\7\0\3\22\7\0" + + "\2\22\3\0\4\22\4\0\10\22\3\0\5\22\1\u012b" + + "\20\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0" + + "\4\22\4\0\10\22\3\0\10\22\1\u012c\15\22\14\0" + + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0" + + "\7\22\1\u012d\3\0\26\22\14\0\1\22\7\0\3\22" + + "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\10\22" + + "\1\u012e\15\22\14\0\1\22\7\0\3\22\7\0\2\22" + + "\3\0\4\22\4\0\10\22\3\0\1\22\1\u012f\24\22" + + "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22" + + "\4\0\10\22\3\0\11\22\1\u0130\14\22\14\0\1\22" + + "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\7\22" + + "\1\u0131\3\0\26\22\14\0\1\22\7\0\3\22\7\0" + + "\2\22\3\0\4\22\4\0\10\22\3\0\14\22\1\u0132" + + "\11\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0" + + "\4\22\4\0\7\22\1\u0133\3\0\26\22\14\0\1\22" + "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22" - + "\3\0\10\22\1\u01b1\15\22\14\0\1\22\7\0\3\22" + + "\3\0\6\22\1\u0134\17\22\14\0\1\22\7\0\3\22" + + "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\5\22" + + "\1\u0135\20\22\14\0\1\22\7\0\3\22\7\0\2\22" + + "\3\0\4\22\4\0\7\22\1\u0136\3\0\26\22\14\0" + + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0" + + "\10\22\3\0\10\22\1\u0137\15\22\14\0\1\22\7\0" + + "\3\22\7\0\2\22\3\0\4\22\4\0\7\22\1\u0138" + + "\3\0\26\22\14\0\1\22\7\0\3\22\7\0\2\22" + + "\3\0\4\22\4\0\10\22\3\0\6\22\1\u0139\5\22" + + "\1\u013a\11\22\14\0\1\22\7\0\3\22\7\0\2\22" + + "\3\0\4\22\4\0\7\22\1\u013b\3\0\26\22\14\0" + + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0" + + "\10\22\3\0\2\22\1\u013c\23\22\14\0\1\22\7\0" + + "\3\22\7\0\2\22\3\0\4\22\4\0\7\22\1\u013d" + + "\3\0\26\22\14\0\1\22\7\0\3\22\7\0\2\22" + + "\3\0\4\22\4\0\10\22\3\0\2\22\1\u013e\23\22" + + "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22" + + "\4\0\10\22\3\0\16\22\1\u013f\7\22\14\0\1\22" + + "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22" + + "\3\0\14\22\1\u0140\11\22\14\0\1\22\7\0\3\22" + + "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\10\22" + + "\1\u0141\15\22\14\0\1\22\7\0\3\22\7\0\2\22" + + "\3\0\4\22\4\0\10\22\3\0\22\22\1\u0142\3\22" + + "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22" + + "\4\0\10\22\3\0\3\22\1\u0143\22\22\14\0\1\22" + + "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22" + + "\3\0\14\22\1\u0144\11\22\14\0\1\22\7\0\3\22" + "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\13\22" - + "\1\u01b2\12\22\14\0\1\22\7\0\3\22\7\0\2\22" - + "\3\0\4\22\4\0\10\22\3\0\13\22\1\u01b3\12\22" - + "\14\0\1\22\25\0\1\u01b4\107\0\2\u01b5\3\0\3\u01b5" - + "\5\0\1\u01b5\2\0\5\u01b5\3\0\1\u01b5\1\0\1\u01b5" - + "\1\0\1\u01b5\6\0\1\u01b5\41\0\1\150\7\0\1\166" - + "\13\0\1\u01b6\3\0\2\u01b6\2\164\55\0\3\22\7\0" - + "\2\22\3\0\4\22\4\0\3\22\1\u01b7\4\22\3\0" + + "\1\u0145\12\22\14\0\1\22\7\0\3\22\7\0\2\22" + + "\3\0\4\22\4\0\10\22\3\0\11\22\1\u0146\14\22" + + "\14\0\1\22\21\0\2\u0147\3\0\3\u0147\5\0\1\u0147" + + "\2\0\5\u0147\3\0\1\u0147\1\0\1\u0147\1\0\1\u0147" + + "\6\0\1\u0147\50\0\2\u0148\3\0\3\u0148\5\0\1\u0148" + + "\2\0\5\u0148\3\0\1\u0148\1\0\1\u0148\1\0\1\u0148" + + "\6\0\1\u0148\31\0\2\u0149\5\0\2\u0114\1\0\1\u0149" + + "\1\0\1\u0114\1\u014a\4\u0114\2\0\4\u0114\4\0\10\u0114" + + "\3\0\26\u0114\33\0\1\u014b\123\0\1\u014c\76\0\2\u0118" + + "\3\0\1\u0118\1\0\4\u0118\2\0\4\u0118\4\0\10\u0118" + + "\3\0\26\u0118\16\0\4\322\1\321\1\u011b\106\322\20\0" + + "\2\u014d\3\0\3\u014d\5\0\1\u014d\2\0\5\u014d\3\0" + + "\1\u014d\1\0\1\u014d\1\0\1\u014d\6\0\1\u014d\41\0" + + "\1\150\7\0\1\166\13\0\1\u014e\3\0\2\u014e\2\164" + + "\55\0\3\22\7\0\2\22\3\0\4\22\4\0\7\22" + + "\1\u014f\3\0\26\22\14\0\1\22\7\0\3\22\7\0" + + "\2\22\3\0\4\22\4\0\10\22\3\0\14\22\1\u0150" + + "\11\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0" + + "\4\22\4\0\10\22\3\0\10\22\1\u0151\15\22\14\0" + + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0" + + "\10\22\3\0\7\22\1\u0152\16\22\14\0\1\22\7\0" + + "\3\22\7\0\2\22\3\0\4\22\4\0\10\22\3\0" + + "\3\22\1\u0153\22\22\14\0\1\22\7\0\3\22\7\0" + + "\2\22\3\0\4\22\4\0\10\22\3\0\1\22\1\u0154" + + "\24\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0" + + "\4\22\4\0\10\22\3\0\16\22\1\u0155\7\22\14\0" + + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0" + + "\10\22\3\0\10\22\1\u0156\15\22\14\0\1\22\7\0" + + "\3\22\7\0\2\22\3\0\4\22\4\0\10\22\3\0" + + "\11\22\1\u0157\14\22\14\0\1\22\7\0\3\22\7\0" + + "\2\22\3\0\4\22\4\0\10\22\3\0\5\22\1\u0158" + + "\20\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0" + + "\4\22\4\0\10\22\3\0\11\22\1\u0159\14\22\14\0" + + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0" + + "\10\22\3\0\1\22\1\u015a\24\22\14\0\1\22\7\0" + + "\3\22\7\0\2\22\3\0\4\22\4\0\10\22\3\0" + + "\4\22\1\u015b\21\22\14\0\1\22\7\0\3\22\7\0" + + "\2\22\3\0\4\22\4\0\10\22\3\0\1\22\1\u015c" + + "\24\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0" + + "\4\22\4\0\10\22\3\0\22\22\1\u015d\3\22\14\0" + + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0" + + "\10\22\3\0\5\22\1\u015e\20\22\14\0\1\22\7\0" + + "\3\22\7\0\2\22\3\0\4\22\4\0\10\22\3\0" + + "\15\22\1\u015f\10\22\14\0\1\22\7\0\3\22\7\0" + + "\2\22\3\0\4\22\4\0\10\22\3\0\6\22\1\u0160" + + "\17\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0" + + "\4\22\4\0\10\22\3\0\2\22\1\u0161\23\22\14\0" + + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0" + + "\10\22\3\0\1\22\1\u0162\24\22\14\0\1\22\7\0" + + "\3\22\7\0\2\22\3\0\4\22\4\0\10\22\3\0" + + "\1\22\1\u0163\24\22\14\0\1\22\7\0\3\22\7\0" + + "\2\22\3\0\4\22\4\0\7\22\1\u0164\3\0\26\22" + + "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22" + + "\4\0\3\22\1\u0165\4\22\3\0\26\22\14\0\1\22" + + "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22" + + "\3\0\12\22\1\u0166\13\22\14\0\1\22\7\0\3\22" + + "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\10\22" + + "\1\u0167\15\22\14\0\1\22\7\0\3\22\7\0\2\22" + + "\3\0\4\22\4\0\10\22\3\0\21\22\1\u0168\4\22" + + "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22" + + "\4\0\7\22\1\u0169\3\0\26\22\14\0\1\22\7\0" + + "\3\22\7\0\2\22\3\0\4\22\4\0\7\22\1\u016a" + + "\3\0\26\22\14\0\1\22\7\0\3\22\7\0\2\22" + + "\3\0\4\22\4\0\10\22\3\0\2\22\1\u016b\23\22" + + "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22" + + "\4\0\10\22\3\0\2\22\1\u016c\23\22\14\0\1\22" + + "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22" + + "\3\0\11\22\1\u016d\14\22\14\0\1\22\7\0\3\22" + + "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\7\22" + + "\1\u016e\16\22\14\0\1\22\2\0\2\u0149\10\0\1\u0149" + + "\2\0\1\u014a\123\0\1\u016f\105\0\2\u0170\3\0\3\u0170" + + "\5\0\1\u0170\2\0\5\u0170\3\0\1\u0170\1\0\1\u0170" + + "\1\0\1\u0170\6\0\1\u0170\41\0\1\150\7\0\1\166" + + "\13\0\1\u0171\3\0\2\u0171\2\164\55\0\3\22\7\0" + + "\2\22\3\0\4\22\4\0\10\22\3\0\14\22\1\u0172" + + "\11\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0" + + "\4\22\4\0\10\22\3\0\11\22\1\u0173\14\22\14\0" + + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0" + + "\10\22\3\0\13\22\1\u0174\12\22\14\0\1\22\7\0" + + "\3\22\7\0\2\22\3\0\4\22\4\0\10\22\3\0" + + "\7\22\1\u0175\16\22\14\0\1\22\7\0\3\22\7\0" + + "\2\22\3\0\4\22\4\0\10\22\3\0\7\22\1\u0176" + + "\16\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0" + + "\4\22\4\0\10\22\3\0\4\22\1\u0177\21\22\14\0" + + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0" + + "\10\22\3\0\16\22\1\u0178\7\22\14\0\1\22\7\0" + + "\3\22\7\0\2\22\3\0\4\22\4\0\10\22\3\0" + + "\11\22\1\u0179\14\22\14\0\1\22\7\0\3\22\7\0" + + "\2\22\3\0\4\22\4\0\7\22\1\u017a\3\0\26\22" + + "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22" + + "\4\0\10\22\3\0\17\22\1\u017b\6\22\14\0\1\22" + + "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\3\22" + + "\1\u017c\4\22\3\0\26\22\14\0\1\22\7\0\3\22" + + "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\7\22" + + "\1\u017d\16\22\14\0\1\22\7\0\3\22\7\0\2\22" + + "\3\0\4\22\4\0\3\22\1\u017e\4\22\3\0\7\22" + + "\1\u017f\16\22\14\0\1\22\7\0\3\22\7\0\2\22" + + "\3\0\4\22\4\0\10\22\3\0\10\22\1\u0180\15\22" + + "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22" + + "\4\0\10\22\3\0\21\22\1\u0181\4\22\14\0\1\22" + + "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22" + + "\3\0\11\22\1\u0182\14\22\14\0\1\22\7\0\3\22" + + "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\14\22" + + "\1\u0183\11\22\14\0\1\22\7\0\3\22\7\0\2\22" + + "\3\0\4\22\4\0\7\22\1\u0184\3\0\26\22\14\0" + + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0" + + "\10\22\3\0\11\22\1\u0185\14\22\14\0\1\22\7\0" + + "\3\22\7\0\2\22\3\0\4\22\4\0\10\22\3\0" + + "\4\22\1\u0186\21\22\14\0\1\22\7\0\3\22\7\0" + + "\2\22\3\0\4\22\4\0\10\22\3\0\10\22\1\u0187" + + "\15\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0" + + "\4\22\4\0\10\22\3\0\23\22\1\u0188\2\22\14\0" + + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0" + + "\10\22\3\0\4\22\1\u0189\21\22\14\0\1\22\7\0" + + "\3\22\7\0\2\22\3\0\4\22\4\0\10\22\3\0" + + "\11\22\1\u018a\14\22\14\0\1\22\30\0\1\u018b\104\0" + + "\2\u018c\3\0\3\u018c\5\0\1\u018c\2\0\5\u018c\3\0" + + "\1\u018c\1\0\1\u018c\1\0\1\u018c\6\0\1\u018c\41\0" + + "\1\150\7\0\1\166\13\0\1\u018d\3\0\2\u018d\2\164" + + "\55\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22" + + "\3\0\20\22\1\u018e\5\22\14\0\1\22\7\0\3\22" + + "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\6\22" + + "\1\u018f\17\22\14\0\1\22\7\0\3\22\7\0\2\22" + + "\3\0\4\22\4\0\10\22\3\0\5\22\1\u0190\20\22" + + "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22" + + "\4\0\10\22\3\0\12\22\1\u0191\13\22\14\0\1\22" + + "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22" + + "\3\0\13\22\1\u0192\12\22\14\0\1\22\7\0\3\22" + + "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\2\22" + + "\1\u0193\23\22\14\0\1\22\7\0\3\22\7\0\2\22" + + "\3\0\4\22\4\0\10\22\3\0\4\22\1\u0194\21\22" + + "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22" + + "\4\0\10\22\3\0\2\22\1\u0195\23\22\14\0\1\22" + + "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\10\22" + + "\3\0\2\22\1\u0196\23\22\14\0\1\22\7\0\3\22" + + "\7\0\2\22\3\0\4\22\4\0\7\22\1\u0197\3\0" + "\26\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0" - + "\4\22\4\0\10\22\3\0\5\22\1\u01b8\20\22\14\0" - + "\1\22\12\0\1\150\7\0\1\166\13\0\1\u01b9\3\0" - + "\2\u01b9\2\164\60\0\1\150\7\0\1\166\13\0\1\u01ba" - + "\3\0\2\u01ba\2\164\60\0\1\150\7\0\1\166\13\0" - + "\1\u01bb\3\0\2\u01bb\2\164\60\0\1\150\7\0\1\166" - + "\13\0\1\u01bc\3\0\2\u01bc\2\164\60\0\1\150\7\0" - + "\1\166\13\0\1\u01bd\3\0\2\u01bd\2\164\60\0\1\150" - + "\7\0\1\166\13\0\1\u01be\3\0\2\u01be\2\164\47\0"; + + "\4\22\4\0\10\22\3\0\7\22\1\u0198\16\22\14\0" + + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0" + + "\10\22\3\0\10\22\1\u0199\15\22\14\0\1\22\7\0" + + "\3\22\7\0\2\22\3\0\4\22\4\0\10\22\3\0" + + "\4\22\1\u019a\21\22\14\0\1\22\7\0\3\22\7\0" + + "\2\22\3\0\4\22\4\0\10\22\3\0\10\22\1\u019b" + + "\15\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0" + + "\4\22\4\0\7\22\1\u019c\3\0\26\22\14\0\1\22" + + "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\7\22" + + "\1\u019d\3\0\26\22\14\0\1\22\7\0\3\22\7\0" + + "\2\22\3\0\4\22\4\0\10\22\3\0\10\22\1\u019e" + + "\15\22\14\0\1\22\31\0\1\u019f\103\0\2\u01a0\3\0" + + "\3\u01a0\5\0\1\u01a0\2\0\5\u01a0\3\0\1\u01a0\1\0" + + "\1\u01a0\1\0\1\u01a0\6\0\1\u01a0\41\0\1\150\7\0" + + "\1\166\13\0\1\u01a1\3\0\2\u01a1\2\164\55\0\3\22" + + "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\7\22" + + "\1\u01a2\16\22\14\0\1\22\7\0\3\22\7\0\2\22" + + "\3\0\4\22\4\0\7\22\1\u01a3\3\0\26\22\14\0" + + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0" + + "\7\22\1\u01a4\3\0\26\22\14\0\1\22\7\0\3\22" + + "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\4\22" + + "\1\u01a5\21\22\14\0\1\22\7\0\3\22\7\0\2\22" + + "\3\0\4\22\4\0\7\22\1\u01a6\3\0\26\22\14\0" + + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0" + + "\10\22\3\0\4\22\1\u01a7\21\22\14\0\1\22\7\0" + + "\3\22\7\0\2\22\3\0\4\22\4\0\10\22\3\0" + + "\14\22\1\u01a8\11\22\14\0\1\22\7\0\3\22\7\0" + + "\2\22\3\0\4\22\4\0\10\22\3\0\7\22\1\u01a9" + + "\16\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0" + + "\4\22\4\0\7\22\1\u01aa\3\0\26\22\14\0\1\22" + + "\7\0\3\22\7\0\2\22\3\0\4\22\4\0\7\22" + + "\1\u01ab\3\0\26\22\14\0\1\22\7\0\3\22\7\0" + + "\2\22\3\0\4\22\4\0\10\22\3\0\20\22\1\u01ac" + + "\5\22\14\0\1\22\30\0\1\u01ad\104\0\2\u01ae\3\0" + + "\3\u01ae\5\0\1\u01ae\2\0\5\u01ae\3\0\1\u01ae\1\0" + + "\1\u01ae\1\0\1\u01ae\6\0\1\u01ae\41\0\1\150\7\0" + + "\1\166\13\0\1\u01af\3\0\2\u01af\2\164\55\0\3\22" + + "\7\0\2\22\3\0\4\22\4\0\7\22\1\u01b0\3\0" + + "\26\22\14\0\1\22\7\0\3\22\7\0\2\22\3\0" + + "\4\22\4\0\10\22\3\0\6\22\1\u01b1\17\22\14\0" + + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0" + + "\7\22\1\u01b2\3\0\26\22\14\0\1\22\7\0\3\22" + + "\7\0\2\22\3\0\4\22\4\0\10\22\3\0\10\22" + + "\1\u01b3\15\22\14\0\1\22\7\0\3\22\7\0\2\22" + + "\3\0\4\22\4\0\10\22\3\0\13\22\1\u01b4\12\22" + + "\14\0\1\22\7\0\3\22\7\0\2\22\3\0\4\22" + + "\4\0\10\22\3\0\13\22\1\u01b5\12\22\14\0\1\22" + + "\25\0\1\u01b6\107\0\2\u01b7\3\0\3\u01b7\5\0\1\u01b7" + + "\2\0\5\u01b7\3\0\1\u01b7\1\0\1\u01b7\1\0\1\u01b7" + + "\6\0\1\u01b7\41\0\1\150\7\0\1\166\13\0\1\u01b8" + + "\3\0\2\u01b8\2\164\55\0\3\22\7\0\2\22\3\0" + + "\4\22\4\0\3\22\1\u01b9\4\22\3\0\26\22\14\0" + + "\1\22\7\0\3\22\7\0\2\22\3\0\4\22\4\0" + + "\10\22\3\0\5\22\1\u01ba\20\22\14\0\1\22\12\0" + + "\1\150\7\0\1\166\13\0\1\u01bb\3\0\2\u01bb\2\164" + + "\60\0\1\150\7\0\1\166\13\0\1\u01bc\3\0\2\u01bc" + + "\2\164\60\0\1\150\7\0\1\166\13\0\1\u01bd\3\0" + + "\2\u01bd\2\164\60\0\1\150\7\0\1\166\13\0\1\u01be" + + "\3\0\2\u01be\2\164\60\0\1\150\7\0\1\166\13\0" + + "\1\u01bf\3\0\2\u01bf\2\164\60\0\1\150\7\0\1\166" + + "\13\0\1\u01c0\3\0\2\u01c0\2\164\47\0"; private static int[] zzUnpackTrans() { - int[] result = new int[22952]; + int[] result = new int[23180]; int offset = 0; offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); return result; @@ -895,22 +899,21 @@ public final class ActionScriptLexer { private static final String ZZ_ATTRIBUTE_PACKED_0 = "\13\0\1\11\1\1\1\11\13\1\3\11\1\1\2\11" - + "\4\1\1\11\21\1\7\11\4\1\1\11\2\1\2\11" - + "\3\1\1\11\1\1\1\11\3\1\2\11\1\1\1\11" - + "\2\1\1\11\1\1\2\11\2\1\1\11\2\1\1\11" - + "\2\1\1\11\1\1\1\0\2\11\1\1\1\11\1\1" - + "\1\11\2\1\2\11\1\1\2\11\1\1\2\11\1\0" - + "\3\1\1\0\11\1\2\11\44\1\11\11\1\1\6\11" - + "\1\1\1\11\1\0\1\11\1\0\1\11\1\0\2\11" - + "\1\0\1\1\4\0\1\1\2\0\2\11\4\1\1\11" - + "\2\0\3\11\1\1\1\11\1\0\1\1\1\11\61\1" - + "\3\0\3\11\1\0\1\11\2\0\1\1\2\11\1\0" - + "\1\11\52\1\1\11\2\0\2\11\1\0\42\1\1\0" - + "\33\1\1\0\23\1\1\0\15\1\1\0\10\1\2\11" - + "\11\1"; + + "\26\1\7\11\4\1\1\11\2\1\2\11\3\1\1\11" + + "\1\1\1\11\3\1\2\11\1\1\1\11\2\1\1\11" + + "\1\1\2\11\2\1\1\11\2\1\1\11\2\1\1\11" + + "\1\1\1\0\2\11\1\1\1\11\1\1\1\11\2\1" + + "\2\11\1\1\2\11\1\1\2\11\1\0\3\1\1\0" + + "\11\1\2\11\1\0\44\1\11\11\1\1\6\11\1\1" + + "\1\11\1\0\1\11\1\0\1\11\1\0\2\11\1\0" + + "\1\1\4\0\1\1\2\0\2\11\4\1\1\11\2\0" + + "\3\11\1\1\1\11\1\0\1\1\1\11\62\1\3\0" + + "\3\11\1\0\1\11\2\0\1\1\2\11\1\0\1\11" + + "\52\1\1\11\2\0\2\11\1\0\42\1\1\0\33\1" + + "\1\0\23\1\1\0\15\1\1\0\10\1\2\11\11\1"; private static int[] zzUnpackAttribute() { - int[] result = new int[446]; + int[] result = new int[448]; int offset = 0; offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result); return result; @@ -1031,7 +1034,7 @@ public final class ActionScriptLexer { yypushbackstr(s, YYINITIAL); } - StringBuffer string = new StringBuffer(); + StringBuilder string = new StringBuilder(); private static String xmlTagName = ""; @@ -1396,200 +1399,200 @@ public final class ActionScriptLexer { switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) { case 1: { } - case 164: + case 165: break; case 2: { yyline++; } - case 165: + case 166: break; case 3: { /*ignore*/ } - case 166: + case 167: break; case 4: { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.DIVIDE, yytext()); } - case 167: + case 168: break; case 5: { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.MULTIPLY, yytext()); } - case 168: + case 169: break; case 6: { return new ParsedSymbol(SymbolGroup.IDENTIFIER, SymbolType.IDENTIFIER, yytext()); } - case 169: + case 170: break; case 7: { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.DOT, yytext()); } - case 170: + case 171: break; case 8: { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.LOWER_THAN, yytext()); } - case 171: + case 172: break; case 9: { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.NOT, yytext()); } - case 172: + case 173: break; case 10: { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.MINUS, yytext()); } - case 173: + case 174: break; case 11: { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.GREATER_THAN, yytext()); } - case 174: + case 175: break; case 12: { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.COLON, yytext()); } - case 175: + case 176: break; case 13: { return new ParsedSymbol(SymbolGroup.INTEGER, SymbolType.INTEGER, Long.parseLong((yytext()))); } - case 176: + case 177: break; case 14: { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.TERNAR, yytext()); } - case 177: + case 178: break; case 15: { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.BRACKET_OPEN, yytext()); } - case 178: + case 179: break; case 16: { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.BRACKET_CLOSE, yytext()); } - case 179: + case 180: break; case 17: { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN, yytext()); } - case 180: + case 181: break; case 18: { string.setLength(0); yybegin(STRING); } - case 181: + case 182: break; case 19: { string.setLength(0); yybegin(CHARLITERAL); } - case 182: + case 183: break; case 20: { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.PLUS, yytext()); } - case 183: + case 184: break; case 21: { string.setLength(0); yybegin(OIDENTIFIER); } - case 184: + case 185: break; case 22: { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.PARENT_OPEN, yytext()); } - case 185: + case 186: break; case 23: { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.PARENT_CLOSE, yytext()); } - case 186: + case 187: break; case 24: { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.CURLY_OPEN, yytext()); } - case 187: + case 188: break; case 25: { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.CURLY_CLOSE, yytext()); } - case 188: + case 189: break; case 26: { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.SEMICOLON, yytext()); } - case 189: + case 190: break; case 27: { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.COMMA, yytext()); } - case 190: + case 191: break; case 28: { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.NEGATE, yytext()); } - case 191: + case 192: break; case 29: { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.BITAND, yytext()); } - case 192: + case 193: break; case 30: { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.BITOR, yytext()); } - case 193: + case 194: break; case 31: { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.XOR, yytext()); } - case 194: + case 195: break; case 32: { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.MODULO, yytext()); } - case 195: + case 196: break; case 33: { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ATTRIBUTE, yytext()); } - case 196: + case 197: break; case 34: { string.append(yytext()); } - case 197: + case 198: break; case 35: { yybegin(YYINITIAL); yyline++; } - case 198: + case 199: break; case 36: { yybegin(YYINITIAL); // length also includes the trailing quote return new ParsedSymbol(SymbolGroup.STRING, SymbolType.STRING, string.toString()); } - case 199: + case 200: break; case 37: { yybegin(YYINITIAL); yyline++; } - case 200: + case 201: break; case 38: { string.append(yytext()); yyline++; } - case 201: + case 202: break; case 39: { yybegin(XML); @@ -1600,7 +1603,7 @@ public final class ActionScriptLexer { } return lex(); } - case 202: + case 203: break; case 40: { yybegin(YYINITIAL); @@ -1611,13 +1614,13 @@ public final class ActionScriptLexer { } return lex(); } - case 203: + case 204: break; case 41: { yybegin(YYINITIAL); return new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_ATTRVALVAR_BEGIN, yytext()); } - case 204: + case 205: break; case 42: { yybegin(YYINITIAL); @@ -1628,19 +1631,19 @@ public final class ActionScriptLexer { } return lex(); } - case 205: + case 206: break; case 43: { yybegin(YYINITIAL); return new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_INSTRATTRVALVAR_BEGIN, yytext()); } - case 206: + case 207: break; case 44: { string.append(yytext()); yyline++; } - case 207: + case 208: break; case 45: { yybegin(YYINITIAL); @@ -1651,216 +1654,216 @@ public final class ActionScriptLexer { } return lex(); } - case 208: + case 209: break; case 46: { yybegin(YYINITIAL); // length also includes the trailing quote return new ParsedSymbol(SymbolGroup.IDENTIFIER, SymbolType.IDENTIFIER, string.toString()); } - case 209: + case 210: break; case 47: { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_DIVIDE, yytext()); } - case 210: + case 211: break; case 48: { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_MULTIPLY, yytext()); } - case 211: + case 212: break; case 49: { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.DESCENDANTS, yytext()); } - case 212: + case 213: break; case 50: { return new ParsedSymbol(SymbolGroup.TYPENAME, SymbolType.TYPENAME, yytext()); } - case 213: + case 214: break; case 51: { return new ParsedSymbol(SymbolGroup.DOUBLE, SymbolType.DOUBLE, Double.parseDouble((yytext()))); } - case 214: + case 215: break; case 52: { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.FILTER, yytext()); } - case 215: + case 216: break; case 53: { yybegin(XMLOPENTAG); string.setLength(0); return new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_STARTTAG_BEGIN, yytext()); } - case 216: + case 217: break; case 54: { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.SHIFT_LEFT, yytext()); } - case 217: + case 218: break; case 55: { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.LOWER_EQUAL, yytext()); } - case 218: + case 219: break; case 56: { return new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_STARTVARTAG_BEGIN, yytext()); } - case 219: + case 220: break; case 57: { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.NOT_EQUAL, yytext()); } - case 220: + case 221: break; case 58: { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.DECREMENT, yytext()); } - case 221: + case 222: break; case 59: { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_MINUS, yytext()); } - case 222: + case 223: break; case 60: { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.SHIFT_RIGHT, yytext()); } - case 223: + case 224: break; case 61: { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.GREATER_EQUAL, yytext()); } - case 224: + case 225: break; case 62: { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.NAMESPACE_OP, yytext()); } - case 225: + case 226: break; case 63: { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.EQUALS, yytext()); } - case 226: + case 227: break; case 64: { return new ParsedSymbol(SymbolGroup.INTEGER, SymbolType.INTEGER, Long.parseLong(yytext(), 8)); } - case 227: + case 228: break; case 65: { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_PLUS, yytext()); } - case 228: + case 229: break; case 66: { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.INCREMENT, yytext()); } - case 229: + case 230: break; case 67: { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.AS, yytext()); } - case 230: + case 231: break; case 68: { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.IF, yytext()); } - case 231: + case 232: break; case 69: { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.IS, yytext()); } - case 232: + case 233: break; case 70: { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.IN, yytext()); } - case 233: + case 234: break; case 71: { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.DO, yytext()); } - case 234: + case 235: break; case 72: { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_BITAND, yytext()); } - case 235: + case 236: break; case 73: { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.AND, yytext()); } - case 236: + case 237: break; case 74: { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_BITOR, yytext()); } - case 237: + case 238: break; case 75: { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.OR, yytext()); } - case 238: + case 239: break; case 76: { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_XOR, yytext()); } - case 239: + case 240: break; case 77: { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_MODULO, yytext()); } - case 240: + case 241: break; case 78: { /* ignore illegal character escape */ } - case 241: + case 242: break; case 79: { string.append('\"'); } - case 242: + case 243: break; case 80: { string.append('\''); } - case 243: + case 244: break; case 81: { string.append('\f'); } - case 244: + case 245: break; case 82: { string.append('\\'); } - case 245: + case 246: break; case 83: { string.append('\b'); } - case 246: + case 247: break; case 84: { string.append('\r'); } - case 247: + case 248: break; case 85: { string.append('\n'); } - case 248: + case 249: break; case 86: { string.append('\t'); } - case 249: + case 250: break; case 87: { yybegin(XML); @@ -1871,7 +1874,7 @@ public final class ActionScriptLexer { } return lex(); } - case 250: + case 251: break; case 88: { yybegin(XMLOPENTAGATTRIB); @@ -1882,13 +1885,13 @@ public final class ActionScriptLexer { } return lex(); } - case 251: + case 252: break; case 89: { yybegin(XMLOPENTAG); return new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_ATTRIBUTEVALUE, yytext()); } - case 252: + case 253: break; case 90: { yybegin(XMLINSTRATTRIB); @@ -1899,7 +1902,7 @@ public final class ActionScriptLexer { } return lex(); } - case 253: + case 254: break; case 91: { yybegin(XML); @@ -1910,13 +1913,13 @@ public final class ActionScriptLexer { } return lex(); } - case 254: + case 255: break; case 92: { yybegin(XMLINSTROPENTAG); return new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_ATTRIBUTEVALUE, yytext()); } - case 255: + case 256: break; case 93: { yybegin(XMLOPENTAG); @@ -1927,7 +1930,7 @@ public final class ActionScriptLexer { } return lex(); } - case 256: + case 257: break; case 94: { yybegin(YYINITIAL); @@ -1938,107 +1941,112 @@ public final class ActionScriptLexer { } return lex(); } - case 257: + case 258: break; case 95: { throw new AVM2ParseException("Illegal escape sequence \"" + yytext() + "\"", yyline + 1); } - case 258: + case 259: break; case 96: { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.REST, yytext()); } - case 259: + case 260: break; case 97: { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_SHIFT_LEFT, yytext()); } - case 260: + case 261: break; case 98: { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.STRICT_NOT_EQUAL, yytext()); } - case 261: + case 262: break; case 99: { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.USHIFT_RIGHT, yytext()); } - case 262: + case 263: break; case 100: { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_SHIFT_RIGHT, yytext()); } - case 263: + case 264: break; case 101: { return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.STRICT_EQUALS, yytext()); } - case 264: + case 265: break; case 102: { return new ParsedSymbol(SymbolGroup.INTEGER, SymbolType.INTEGER, Long.parseLong(yytext().substring(2), 16)); } - case 265: + case 266: break; case 103: { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.FOR, yytext()); } - case 266: - break; - case 104: { - return new ParsedSymbol(SymbolGroup.IDENTIFIER, SymbolType.SET, yytext()); - } case 267: break; - case 105: { - return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.NEW, yytext()); + case 104: { + return new ParsedSymbol(SymbolGroup.PREPROCESSOR, SymbolType.PREPROCESSOR, yytext().substring(2)); } case 268: break; - case 106: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.TRY, yytext()); + case 105: { + return new ParsedSymbol(SymbolGroup.IDENTIFIER, SymbolType.SET, yytext()); } case 269: break; - case 107: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.USE, yytext()); + case 106: { + return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.NEW, yytext()); } case 270: break; - case 108: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.VAR, yytext()); + case 107: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.TRY, yytext()); } case 271: break; - case 109: { - return new ParsedSymbol(SymbolGroup.IDENTIFIER, SymbolType.GET, yytext()); + case 108: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.USE, yytext()); } case 272: break; - case 110: { - return new ParsedSymbol(SymbolGroup.GLOBALCONST, SymbolType.NAN, yytext()); + case 109: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.VAR, yytext()); } case 273: break; - case 111: { - string.append(yytext()); - yybegin(XML); - String ret = string.toString(); - string.setLength(0); - return new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_CDATA, ret); + case 110: { + return new ParsedSymbol(SymbolGroup.IDENTIFIER, SymbolType.GET, yytext()); } case 274: break; + case 111: { + return new ParsedSymbol(SymbolGroup.GLOBALCONST, SymbolType.NAN, yytext()); + } + case 275: + break; case 112: { string.append(yytext()); yybegin(XML); String ret = string.toString(); string.setLength(0); - return new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_COMMENT, ret); + return new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_CDATA, ret); } - case 275: + case 276: break; case 113: { + string.append(yytext()); + yybegin(XML); + String ret = string.toString(); + string.setLength(0); + return new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_COMMENT, ret); + } + case 277: + break; + case 114: { yybegin(YYINITIAL); pushback(new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_FINISHVARTAG_BEGIN, yytext())); if (string.length() > 0) { @@ -2047,9 +2055,9 @@ public final class ActionScriptLexer { } return lex(); } - case 276: + case 278: break; - case 114: { + case 115: { yybegin(XMLINSTROPENTAG); pushback(new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_INSTR_BEGIN, yytext())); if (string.length() > 0) { @@ -2058,9 +2066,9 @@ public final class ActionScriptLexer { } return lex(); } - case 277: + case 279: break; - case 115: { + case 116: { yybegin(YYINITIAL); pushback(new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_INSTRVARTAG_BEGIN, yytext())); if (string.length() > 0) { @@ -2069,65 +2077,65 @@ public final class ActionScriptLexer { } return lex(); } - case 278: - break; - case 116: { - string.append('\u00A7'); - } - case 279: - break; - case 117: { - return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_USHIFT_RIGHT, yytext()); - } case 280: break; - case 118: { - return new ParsedSymbol(SymbolGroup.IDENTIFIER, SymbolType.EACH, yytext()); + case 117: { + string.append('\u00A7'); } case 281: break; - case 119: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.ELSE, yytext()); + case 118: { + return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.ASSIGN_USHIFT_RIGHT, yytext()); } case 282: break; - case 120: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.CASE, yytext()); + case 119: { + return new ParsedSymbol(SymbolGroup.IDENTIFIER, SymbolType.EACH, yytext()); } case 283: break; - case 121: { - return new ParsedSymbol(SymbolGroup.GLOBALCONST, SymbolType.NULL, yytext()); + case 120: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.ELSE, yytext()); } case 284: break; - case 122: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.TRUE, yytext()); + case 121: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.CASE, yytext()); } case 285: break; - case 123: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.THIS, yytext()); + case 122: { + return new ParsedSymbol(SymbolGroup.GLOBALCONST, SymbolType.NULL, yytext()); } case 286: break; - case 124: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.WITH, yytext()); + case 123: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.TRUE, yytext()); } case 287: break; - case 125: { - return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.VOID, yytext()); + case 124: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.THIS, yytext()); } case 288: break; - case 126: { - char val = (char) Integer.parseInt(yytext().substring(2), 16); - string.append(val); + case 125: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.WITH, yytext()); } case 289: break; + case 126: { + return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.VOID, yytext()); + } + case 290: + break; case 127: { + char val = (char) Integer.parseInt(yytext().substring(2), 16); + string.append(val); + } + case 291: + break; + case 128: { pushback(new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_FINISHTAG, yytext())); if (string.length() > 0) { pushback(new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_TEXT, string.toString())); @@ -2135,9 +2143,9 @@ public final class ActionScriptLexer { } return lex(); } - case 290: + case 292: break; - case 128: { + case 129: { String ret = string.toString(); string.setLength(0); string.append(yytext()); @@ -2146,169 +2154,169 @@ public final class ActionScriptLexer { return new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_TEXT, ret); } } - case 291: - break; - case 129: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.FALSE, yytext()); - } - case 292: - break; - case 130: { - return new ParsedSymbol(SymbolGroup.IDENTIFIER, SymbolType.FINAL, yytext()); - } case 293: break; - case 131: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.BREAK, yytext()); + case 130: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.FALSE, yytext()); } case 294: break; - case 132: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.CATCH, yytext()); + case 131: { + return new ParsedSymbol(SymbolGroup.IDENTIFIER, SymbolType.FINAL, yytext()); } case 295: break; - case 133: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.CONST, yytext()); + case 132: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.BREAK, yytext()); } case 296: break; - case 134: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.CLASS, yytext()); + case 133: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.CATCH, yytext()); } case 297: break; - case 135: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.SUPER, yytext()); + case 134: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.CONST, yytext()); } case 298: break; - case 136: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.THROW, yytext()); + case 135: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.CLASS, yytext()); } case 299: break; - case 137: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.WHILE, yytext()); + case 136: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.SUPER, yytext()); } case 300: break; - case 138: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.RETURN, yytext()); + case 137: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.THROW, yytext()); } case 301: break; - case 139: { - return new ParsedSymbol(SymbolGroup.IDENTIFIER, SymbolType.STATIC, yytext()); + case 138: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.WHILE, yytext()); } case 302: break; - case 140: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.SWITCH, yytext()); + case 139: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.RETURN, yytext()); } case 303: break; - case 141: { - return new ParsedSymbol(SymbolGroup.IDENTIFIER, SymbolType.NATIVE, yytext()); + case 140: { + return new ParsedSymbol(SymbolGroup.IDENTIFIER, SymbolType.STATIC, yytext()); } case 304: break; - case 142: { - return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.TYPEOF, yytext()); + case 141: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.SWITCH, yytext()); } case 305: break; - case 143: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.IMPORT, yytext()); + case 142: { + return new ParsedSymbol(SymbolGroup.IDENTIFIER, SymbolType.NATIVE, yytext()); } case 306: break; - case 144: { - return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.DELETE, yytext()); + case 143: { + return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.TYPEOF, yytext()); } case 307: break; - case 145: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.PUBLIC, yytext()); + case 144: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.IMPORT, yytext()); } case 308: break; - case 146: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.FINALLY, yytext()); + case 145: { + return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.DELETE, yytext()); } case 309: break; - case 147: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.EXTENDS, yytext()); + case 146: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.PUBLIC, yytext()); } case 310: break; - case 148: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.DEFAULT, yytext()); + case 147: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.FINALLY, yytext()); } case 311: break; - case 149: { - return new ParsedSymbol(SymbolGroup.IDENTIFIER, SymbolType.DYNAMIC, yytext()); + case 148: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.EXTENDS, yytext()); } case 312: break; - case 150: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.PRIVATE, yytext()); + case 149: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.DEFAULT, yytext()); } case 313: break; - case 151: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.PACKAGE, yytext()); + case 150: { + return new ParsedSymbol(SymbolGroup.IDENTIFIER, SymbolType.DYNAMIC, yytext()); } case 314: break; - case 152: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.FUNCTION, yytext()); + case 151: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.PRIVATE, yytext()); } case 315: break; - case 153: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.CONTINUE, yytext()); + case 152: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.PACKAGE, yytext()); } case 316: break; - case 154: { - return new ParsedSymbol(SymbolGroup.IDENTIFIER, SymbolType.OVERRIDE, yytext()); + case 153: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.FUNCTION, yytext()); } case 317: break; - case 155: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.INTERNAL, yytext()); + case 154: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.CONTINUE, yytext()); } case 318: break; - case 156: { - return new ParsedSymbol(SymbolGroup.GLOBALCONST, SymbolType.INFINITY, yytext()); + case 155: { + return new ParsedSymbol(SymbolGroup.IDENTIFIER, SymbolType.OVERRIDE, yytext()); } case 319: break; - case 157: { - return new ParsedSymbol(SymbolGroup.IDENTIFIER, SymbolType.NAMESPACE, yytext()); + case 156: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.INTERNAL, yytext()); } case 320: break; - case 158: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.INTERFACE, yytext()); + case 157: { + return new ParsedSymbol(SymbolGroup.GLOBALCONST, SymbolType.INFINITY, yytext()); } case 321: break; - case 159: { - return new ParsedSymbol(SymbolGroup.GLOBALCONST, SymbolType.UNDEFINED, yytext()); + case 158: { + return new ParsedSymbol(SymbolGroup.IDENTIFIER, SymbolType.NAMESPACE, yytext()); } case 322: break; - case 160: { - return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.PROTECTED, yytext()); + case 159: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.INTERFACE, yytext()); } case 323: break; + case 160: { + return new ParsedSymbol(SymbolGroup.GLOBALCONST, SymbolType.UNDEFINED, yytext()); + } + case 324: + break; case 161: { + return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.PROTECTED, yytext()); + } + case 325: + break; + case 162: { String ret = string.toString(); string.setLength(0); string.append(yytext()); @@ -2317,17 +2325,17 @@ public final class ActionScriptLexer { return new ParsedSymbol(SymbolGroup.XML, SymbolType.XML_TEXT, ret); } } - case 324: - break; - case 162: { - return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.INSTANCEOF, yytext()); - } - case 325: + case 326: break; case 163: { + return new ParsedSymbol(SymbolGroup.OPERATOR, SymbolType.INSTANCEOF, yytext()); + } + case 327: + break; + case 164: { return new ParsedSymbol(SymbolGroup.KEYWORD, SymbolType.IMPLEMENTS, yytext()); } - case 326: + case 328: break; default: if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/methodinfo_parser/MethodInfoLexer.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/methodinfo_parser/MethodInfoLexer.java index 9456219ba..a4ad3cf0b 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/methodinfo_parser/MethodInfoLexer.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/methodinfo_parser/MethodInfoLexer.java @@ -21,8 +21,9 @@ package com.jpexs.decompiler.flash.abc.methodinfo_parser; /** * This class is a scanner generated by - * JFlex 1.6.0 from the specification file - * D:/Dropbox/Programovani/JavaSE/FFDec/libsrc/ffdec_lib/lexers/actionscript3_methodinfo.flex + * JFlex 1.6.0 + * from the specification file + * C:/FFDec/jpexs-decompiler/libsrc/ffdec_lib/lexers/actionscript3_methodinfo.flex */ public final class MethodInfoLexer { @@ -45,8 +46,9 @@ public final class MethodInfoLexer { /** * 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 + * 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 @@ -547,8 +549,8 @@ public final class MethodInfoLexer { private int zzLexicalState = YYINITIAL; /** - * this buffer contains the current text to be matched and is the source of - * the yytext() string + * this buffer contains the current text to be matched and is + * the source of the yytext() string */ private char zzBuffer[] = new char[ZZ_BUFFERSIZE]; @@ -568,8 +570,8 @@ public final class MethodInfoLexer { private int zzStartRead; /** - * endRead marks the last character in the buffer, that has been read from - * input + * endRead marks the last character in the buffer, that has been read + * from input */ private int zzEndRead; @@ -605,15 +607,15 @@ public final class MethodInfoLexer { private boolean zzEOFDone; /** - * The number of occupied positions in zzBuffer beyond zzEndRead. When a - * lead/high surrogate has been read from the input stream into the final - * zzBuffer position, this will have a value of 1; otherwise, it will have a - * value of 0. + * The number of occupied positions in zzBuffer beyond zzEndRead. + * When a lead/high surrogate has been read from the input stream + * into the final zzBuffer position, this will have a value of 1; + * otherwise, it will have a value of 0. */ private int zzFinalHighSurrogate = 0; /* user code: */ - StringBuffer string = new StringBuffer(); + StringBuilder string = new StringBuilder(); boolean isMultiname = false; @@ -729,8 +731,6 @@ public final class MethodInfoLexer { /** * Closes the input stream. - * - * @throws java.io.IOException */ public final void yyclose() throws java.io.IOException { zzAtEOF = true; /* indicate end of file */ @@ -743,12 +743,12 @@ public final class MethodInfoLexer { } /** - * Resets the scanner to read from a new input stream. Does not close the - * old reader. + * 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. + * cannot be reused (internal buffer is discarded and lost). + * Lexical state is set to ZZ_INITIAL. * * Internal scan buffer is resized down to its initial length, if it has * grown. @@ -772,8 +772,6 @@ public final class MethodInfoLexer { /** * Returns the current lexical state. - * - * @return */ public final int yystate() { return zzLexicalState; @@ -790,20 +788,19 @@ public final class MethodInfoLexer { /** * Returns the text matched by the current regular expression. - * - * @return */ public final String yytext() { return new String(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); } /** - * Returns the character at position pos from the matched text. + * 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. + * @param pos the position of the character to fetch. + * A value from 0 to yylength()-1. * * @return the character at position pos */ @@ -813,8 +810,6 @@ public final class MethodInfoLexer { /** * Returns the length of the matched text region. - * - * @return */ public final int yylength() { return zzMarkedPos - zzStartRead; @@ -823,13 +818,14 @@ public final class MethodInfoLexer { /** * 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.). + * 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. + * Usual syntax/scanner level error handling should be done + * in error fallback rules. * * @param errorCode the code of the errormessage to display */ @@ -849,8 +845,8 @@ public final class MethodInfoLexer { * * 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()! + * @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()) { @@ -861,13 +857,11 @@ public final class MethodInfoLexer { } /** - * Resumes scanning until the next regular expression is matched, the end of - * input is encountered or an I/O-Error occurs. + * 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 - * @throws - * com.jpexs.decompiler.flash.abc.methodinfo_parser.MethodInfoParseException */ public ParsedSymbol yylex() throws java.io.IOException, MethodInfoParseException { int zzInput; diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/ActionGraph.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/ActionGraph.java index 41e542faf..f66eb1605 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/ActionGraph.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/ActionGraph.java @@ -268,7 +268,7 @@ public class ActionGraph extends Graph { } } if (switchedObject == null) { - switchedObject = new DirectValueActionItem(null, -1, new Null(), null); + switchedObject = new DirectValueActionItem(null, -1, Null.INSTANCE, null); } HashMap caseValuesMap = new HashMap<>(); diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/ActionListReader.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/ActionListReader.java index 3cb87fc5d..f0703f3e7 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/ActionListReader.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/ActionListReader.java @@ -1065,10 +1065,10 @@ public class ActionListReader { } else if (!(a instanceof GraphSourceItemContainer)) { //return in for..in, TODO:Handle this better way if (((a instanceof ActionEquals) || (a instanceof ActionEquals2)) && (stack.size() == 1) && (stack.peek() instanceof DirectValueActionItem)) { - stack.push(new DirectValueActionItem(null, 0, new Null(), new ArrayList<>())); + stack.push(new DirectValueActionItem(null, 0, Null.INSTANCE, new ArrayList<>())); } if ((a instanceof ActionStoreRegister) && stack.isEmpty()) { - stack.push(new DirectValueActionItem(null, 0, new Null(), new ArrayList<>())); + stack.push(new DirectValueActionItem(null, 0, Null.INSTANCE, new ArrayList<>())); } a.translate(localData, stack, output, Graph.SOP_USE_STATIC/*Graph.SOP_SKIP_STATIC*/, path); } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/model/DirectValueActionItem.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/model/DirectValueActionItem.java index 78c69670c..0872391cc 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/model/DirectValueActionItem.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/model/DirectValueActionItem.java @@ -94,7 +94,7 @@ public class DirectValueActionItem extends ActionItem implements SimpleValue { return (this.constants.get(((ConstantIndex) value).index)); } if (value instanceof RegisterNumber) { - return new Undefined(); //has not computed value + return Undefined.INSTANCE; //has not computed value } return value; } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/model/GetVariableActionItem.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/model/GetVariableActionItem.java index 878af466e..fe70e95e6 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/model/GetVariableActionItem.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/model/GetVariableActionItem.java @@ -97,7 +97,7 @@ public class GetVariableActionItem extends ActionItem { @Override public Object getResult() { if (computedValue == null) { - return new Undefined(); + return Undefined.INSTANCE; } return computedResult; } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/model/ReturnActionItem.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/model/ReturnActionItem.java index 00e3dd357..f02a02782 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/model/ReturnActionItem.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/model/ReturnActionItem.java @@ -71,7 +71,7 @@ public class ReturnActionItem extends ActionItem implements ExitItem { int forinlevel = asGenerator.getForInLevel(localData); for (int i = 0; i < forinlevel; i++) { //Must POP all remaining values from enumerations (for..in) List forinret = new ArrayList<>(); - forinret.add(new ActionPush(new Null())); + forinret.add(new ActionPush(Null.INSTANCE)); forinret.add(new ActionEquals2()); forinret.add(new ActionNot()); ActionIf aforinif = new ActionIf(0); @@ -80,7 +80,7 @@ public class ReturnActionItem extends ActionItem implements ExitItem { ret.addAll(forinret); } if (value == null) { - ret.add(new ActionPush(new Undefined())); + ret.add(new ActionPush(Undefined.INSTANCE)); } else { ret.addAll(value.toSource(localData, generator)); } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/model/clauses/ForInActionItem.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/model/clauses/ForInActionItem.java index 66f0286b8..cb3a8324f 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/model/clauses/ForInActionItem.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/model/clauses/ForInActionItem.java @@ -132,7 +132,7 @@ public class ForInActionItem extends LoopActionItem implements Block { int exprReg = asGenerator.getTempRegister(localData); loopExpr.add(new ActionStoreRegister(exprReg)); - loopExpr.add(new ActionPush(new Null())); + loopExpr.add(new ActionPush(Null.INSTANCE)); loopExpr.add(new ActionEquals2()); ActionIf forInEndIf = new ActionIf(0); loopExpr.add(forInEndIf); diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/parser/pcode/FlasmLexer.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/parser/pcode/FlasmLexer.java index 86355d3b0..7f55acb47 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/parser/pcode/FlasmLexer.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/parser/pcode/FlasmLexer.java @@ -2,17 +2,17 @@ /* * Copyright (C) 2010-2015 JPEXS, All rights reserved. - * + * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 3.0 of the License, or (at your option) any later version. - * + * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public * License along with this library. */ @@ -25,589 +25,543 @@ import com.jpexs.decompiler.flash.action.swf4.RegisterNumber; import com.jpexs.decompiler.flash.ecma.Null; import com.jpexs.decompiler.flash.ecma.Undefined; + /** - * This class is a scanner generated by + * This class is a scanner generated by * JFlex 1.6.0 - * from the specification file - * C:/Projects/FFDec/jpexs-decompiler/libsrc/ffdec_lib/lexers/actionscript_pcode.flex + * from the specification file C:/FFDec/jpexs-decompiler/libsrc/ffdec_lib/lexers/actionscript_pcode.flex */ public final class FlasmLexer { - /** - * This character denotes the end of file - */ - public static final int YYEOF = -1; + /** 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; + /** initial size of the lookahead buffer */ + private static final int ZZ_BUFFERSIZE = 16384; - /** - * lexical states - */ - public static final int YYINITIAL = 0; + /** lexical states */ + public static final int YYINITIAL = 0; + public static final int STRING = 2; + public static final int PARAMETERS = 4; - public static final int STRING = 2; + /** + * 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 + }; - public static final int PARAMETERS = 4; + /** + * Translates characters to character classes + */ + private static final String ZZ_CMAP_PACKED = + "\11\6\1\4\1\2\1\51\1\52\1\1\16\6\4\0\1\4\1\0"+ + "\1\45\1\0\1\5\2\0\1\47\3\0\1\37\1\0\1\30\1\35"+ + "\1\0\1\33\11\11\1\12\1\3\5\0\4\40\1\36\1\40\2\7"+ + "\1\31\4\7\1\34\14\7\1\0\1\41\2\0\1\10\1\0\1\22"+ + "\1\46\1\43\1\26\1\20\1\21\1\42\1\7\1\27\2\7\1\23"+ + "\1\7\1\25\1\44\2\7\1\16\1\24\1\15\1\17\2\7\1\50"+ + "\1\32\1\7\1\13\1\0\1\14\1\0\6\6\1\53\32\6\2\0"+ + "\4\5\4\0\1\5\2\0\1\6\7\0\1\5\4\0\1\5\5\0"+ + "\27\5\1\0\37\5\1\0\u01ca\5\4\0\14\5\16\0\5\5\7\0"+ + "\1\5\1\0\1\5\21\0\160\6\5\5\1\0\2\5\2\0\4\5"+ + "\10\0\1\5\1\0\3\5\1\0\1\5\1\0\24\5\1\0\123\5"+ + "\1\0\213\5\1\0\5\6\2\0\236\5\11\0\46\5\2\0\1\5"+ + "\7\0\47\5\7\0\1\5\1\0\55\6\1\0\1\6\1\0\2\6"+ + "\1\0\2\6\1\0\1\6\10\0\33\5\5\0\3\5\15\0\5\6"+ + "\6\0\1\5\4\0\13\6\5\0\53\5\37\6\4\0\2\5\1\6"+ + "\143\5\1\0\1\5\10\6\1\0\6\6\2\5\2\6\1\0\4\6"+ + "\2\5\12\6\3\5\2\0\1\5\17\0\1\6\1\5\1\6\36\5"+ + "\33\6\2\0\131\5\13\6\1\5\16\0\12\6\41\5\11\6\2\5"+ + "\4\0\1\5\5\0\26\5\4\6\1\5\11\6\1\5\3\6\1\5"+ + "\5\6\22\0\31\5\3\6\104\0\1\5\1\0\13\5\67\0\33\6"+ + "\1\0\4\6\66\5\3\6\1\5\22\6\1\5\7\6\12\5\2\6"+ + "\2\0\12\6\1\0\7\5\1\0\7\5\1\0\3\6\1\0\10\5"+ + "\2\0\2\5\2\0\26\5\1\0\7\5\1\0\1\5\3\0\4\5"+ + "\2\0\1\6\1\5\7\6\2\0\2\6\2\0\3\6\1\5\10\0"+ + "\1\6\4\0\2\5\1\0\3\5\2\6\2\0\12\6\4\5\7\0"+ + "\1\5\5\0\3\6\1\0\6\5\4\0\2\5\2\0\26\5\1\0"+ + "\7\5\1\0\2\5\1\0\2\5\1\0\2\5\2\0\1\6\1\0"+ + "\5\6\4\0\2\6\2\0\3\6\3\0\1\6\7\0\4\5\1\0"+ + "\1\5\7\0\14\6\3\5\1\6\13\0\3\6\1\0\11\5\1\0"+ + "\3\5\1\0\26\5\1\0\7\5\1\0\2\5\1\0\5\5\2\0"+ + "\1\6\1\5\10\6\1\0\3\6\1\0\3\6\2\0\1\5\17\0"+ + "\2\5\2\6\2\0\12\6\1\0\1\5\17\0\3\6\1\0\10\5"+ + "\2\0\2\5\2\0\26\5\1\0\7\5\1\0\2\5\1\0\5\5"+ + "\2\0\1\6\1\5\7\6\2\0\2\6\2\0\3\6\10\0\2\6"+ + "\4\0\2\5\1\0\3\5\2\6\2\0\12\6\1\0\1\5\20\0"+ + "\1\6\1\5\1\0\6\5\3\0\3\5\1\0\4\5\3\0\2\5"+ + "\1\0\1\5\1\0\2\5\3\0\2\5\3\0\3\5\3\0\14\5"+ + "\4\0\5\6\3\0\3\6\1\0\4\6\2\0\1\5\6\0\1\6"+ + "\16\0\12\6\11\0\1\5\7\0\3\6\1\0\10\5\1\0\3\5"+ + "\1\0\27\5\1\0\12\5\1\0\5\5\3\0\1\5\7\6\1\0"+ + "\3\6\1\0\4\6\7\0\2\6\1\0\2\5\6\0\2\5\2\6"+ + "\2\0\12\6\22\0\2\6\1\0\10\5\1\0\3\5\1\0\27\5"+ + "\1\0\12\5\1\0\5\5\2\0\1\6\1\5\7\6\1\0\3\6"+ + "\1\0\4\6\7\0\2\6\7\0\1\5\1\0\2\5\2\6\2\0"+ + "\12\6\1\0\2\5\17\0\2\6\1\0\10\5\1\0\3\5\1\0"+ + "\51\5\2\0\1\5\7\6\1\0\3\6\1\0\4\6\1\5\10\0"+ + "\1\6\10\0\2\5\2\6\2\0\12\6\12\0\6\5\2\0\2\6"+ + "\1\0\22\5\3\0\30\5\1\0\11\5\1\0\1\5\2\0\7\5"+ + "\3\0\1\6\4\0\6\6\1\0\1\6\1\0\10\6\22\0\2\6"+ + "\15\0\60\5\1\6\2\5\7\6\4\0\10\5\10\6\1\0\12\6"+ + "\47\0\2\5\1\0\1\5\2\0\2\5\1\0\1\5\2\0\1\5"+ + "\6\0\4\5\1\0\7\5\1\0\3\5\1\0\1\5\1\0\1\5"+ + "\2\0\2\5\1\0\4\5\1\6\2\5\6\6\1\0\2\6\1\5"+ + "\2\0\5\5\1\0\1\5\1\0\6\6\2\0\12\6\2\0\4\5"+ + "\40\0\1\5\27\0\2\6\6\0\12\6\13\0\1\6\1\0\1\6"+ + "\1\0\1\6\4\0\2\6\10\5\1\0\44\5\4\0\24\6\1\0"+ + "\2\6\5\5\13\6\1\0\44\6\11\0\1\6\71\0\53\5\24\6"+ + "\1\5\12\6\6\0\6\5\4\6\4\5\3\6\1\5\3\6\2\5"+ + "\7\6\3\5\4\6\15\5\14\6\1\5\17\6\2\0\46\5\1\0"+ + "\1\5\5\0\1\5\2\0\53\5\1\0\u014d\5\1\0\4\5\2\0"+ + "\7\5\1\0\1\5\1\0\4\5\2\0\51\5\1\0\4\5\2\0"+ + "\41\5\1\0\4\5\2\0\7\5\1\0\1\5\1\0\4\5\2\0"+ + "\17\5\1\0\71\5\1\0\4\5\2\0\103\5\2\0\3\6\40\0"+ + "\20\5\20\0\125\5\14\0\u026c\5\2\0\21\5\1\0\32\5\5\0"+ + "\113\5\3\0\3\5\17\0\15\5\1\0\4\5\3\6\13\0\22\5"+ + "\3\6\13\0\22\5\2\6\14\0\15\5\1\0\3\5\1\0\2\6"+ + "\14\0\64\5\40\6\3\0\1\5\3\0\2\5\1\6\2\0\12\6"+ + "\41\0\3\6\2\0\12\6\6\0\130\5\10\0\51\5\1\6\1\5"+ + "\5\0\106\5\12\0\35\5\3\0\14\6\4\0\14\6\12\0\12\6"+ + "\36\5\2\0\5\5\13\0\54\5\4\0\21\6\7\5\2\6\6\0"+ + "\12\6\46\0\27\5\5\6\4\0\65\5\12\6\1\0\35\6\2\0"+ + "\13\6\6\0\12\6\15\0\1\5\130\0\5\6\57\5\21\6\7\5"+ + "\4\0\12\6\21\0\11\6\14\0\3\6\36\5\15\6\2\5\12\6"+ + "\54\5\16\6\14\0\44\5\24\6\10\0\12\6\3\0\3\5\12\6"+ + "\44\5\122\0\3\6\1\0\25\6\4\5\1\6\4\5\3\6\2\5"+ + "\11\0\300\5\47\6\25\0\4\6\u0116\5\2\0\6\5\2\0\46\5"+ + "\2\0\6\5\2\0\10\5\1\0\1\5\1\0\1\5\1\0\1\5"+ + "\1\0\37\5\2\0\65\5\1\0\7\5\1\0\1\5\3\0\3\5"+ + "\1\0\7\5\3\0\4\5\2\0\6\5\4\0\15\5\5\0\3\5"+ + "\1\0\7\5\16\0\5\6\30\0\1\51\1\51\5\6\20\0\2\5"+ + "\23\0\1\5\13\0\5\6\5\0\6\6\1\0\1\5\15\0\1\5"+ + "\20\0\15\5\3\0\33\5\25\0\15\6\4\0\1\6\3\0\14\6"+ + "\21\0\1\5\4\0\1\5\2\0\12\5\1\0\1\5\3\0\5\5"+ + "\6\0\1\5\1\0\1\5\1\0\1\5\1\0\4\5\1\0\13\5"+ + "\2\0\4\5\5\0\5\5\4\0\1\5\21\0\51\5\u0a77\0\57\5"+ + "\1\0\57\5\1\0\205\5\6\0\4\5\3\6\2\5\14\0\46\5"+ + "\1\0\1\5\5\0\1\5\2\0\70\5\7\0\1\5\17\0\1\6"+ + "\27\5\11\0\7\5\1\0\7\5\1\0\7\5\1\0\7\5\1\0"+ + "\7\5\1\0\7\5\1\0\7\5\1\0\7\5\1\0\40\6\57\0"+ + "\1\5\u01d5\0\3\5\31\0\11\5\6\6\1\0\5\5\2\0\5\5"+ + "\4\0\126\5\2\0\2\6\2\0\3\5\1\0\132\5\1\0\4\5"+ + "\5\0\51\5\3\0\136\5\21\0\33\5\65\0\20\5\u0200\0\u19b6\5"+ + "\112\0\u51cd\5\63\0\u048d\5\103\0\56\5\2\0\u010d\5\3\0\20\5"+ + "\12\6\2\5\24\0\57\5\1\6\4\0\12\6\1\0\31\5\7\0"+ + "\1\6\120\5\2\6\45\0\11\5\2\0\147\5\2\0\4\5\1\0"+ + "\4\5\14\0\13\5\115\0\12\5\1\6\3\5\1\6\4\5\1\6"+ + "\27\5\5\6\20\0\1\5\7\0\64\5\14\0\2\6\62\5\21\6"+ + "\13\0\12\6\6\0\22\6\6\5\3\0\1\5\4\0\12\6\34\5"+ + "\10\6\2\0\27\5\15\6\14\0\35\5\3\0\4\6\57\5\16\6"+ + "\16\0\1\5\12\6\46\0\51\5\16\6\11\0\3\5\1\6\10\5"+ + "\2\6\2\0\12\6\6\0\27\5\3\0\1\5\1\6\4\0\60\5"+ + "\1\6\1\5\3\6\2\5\2\6\5\5\2\6\1\5\1\6\1\5"+ + "\30\0\3\5\2\0\13\5\5\6\2\0\3\5\2\6\12\0\6\5"+ + "\2\0\6\5\2\0\6\5\11\0\7\5\1\0\7\5\221\0\43\5"+ + "\10\6\1\0\2\6\2\0\12\6\6\0\u2ba4\5\14\0\27\5\4\0"+ + "\61\5\u2104\0\u016e\5\2\0\152\5\46\0\7\5\14\0\5\5\5\0"+ + "\1\5\1\6\12\5\1\0\15\5\1\0\5\5\1\0\1\5\1\0"+ + "\2\5\1\0\2\5\1\0\154\5\41\0\u016b\5\22\0\100\5\2\0"+ + "\66\5\50\0\15\5\3\0\20\6\20\0\7\6\14\0\2\5\30\0"+ + "\3\5\31\0\1\5\6\0\5\5\1\0\207\5\2\0\1\6\4\0"+ + "\1\5\13\0\12\6\7\0\32\5\4\0\1\5\1\0\32\5\13\0"+ + "\131\5\3\0\6\5\2\0\6\5\2\0\6\5\2\0\3\5\3\0"+ + "\2\5\3\0\2\5\22\0\3\6\4\0\14\5\1\0\32\5\1\0"+ + "\23\5\1\0\2\5\1\0\17\5\2\0\16\5\42\0\173\5\105\0"+ + "\65\5\210\0\1\6\202\0\35\5\3\0\61\5\57\0\37\5\21\0"+ + "\33\5\65\0\36\5\2\0\44\5\4\0\10\5\1\0\5\5\52\0"+ + "\236\5\2\0\12\6\u0356\0\6\5\2\0\1\5\1\0\54\5\1\0"+ + "\2\5\3\0\1\5\2\0\27\5\252\0\26\5\12\0\32\5\106\0"+ + "\70\5\6\0\2\5\100\0\1\5\3\6\1\0\2\6\5\0\4\6"+ + "\4\5\1\0\3\5\1\0\33\5\4\0\3\6\4\0\1\6\40\0"+ + "\35\5\203\0\66\5\12\0\26\5\12\0\23\5\215\0\111\5\u03b7\0"+ + "\3\6\65\5\17\6\37\0\12\6\20\0\3\6\55\5\13\6\2\0"+ + "\1\6\22\0\31\5\7\0\12\6\6\0\3\6\44\5\16\6\1\0"+ + "\12\6\100\0\3\6\60\5\16\6\4\5\13\0\12\6\u04a6\0\53\5"+ + "\15\6\10\0\12\6\u0936\0\u036f\5\221\0\143\5\u0b9d\0\u042f\5\u33d1\0"+ + "\u0239\5\u04c7\0\105\5\13\0\1\5\56\6\20\0\4\6\15\5\u4060\0"+ + "\2\5\u2163\0\5\6\3\0\26\6\2\0\7\6\36\0\4\6\224\0"+ + "\3\6\u01bb\0\125\5\1\0\107\5\1\0\2\5\2\0\1\5\2\0"+ + "\2\5\2\0\4\5\1\0\14\5\1\0\1\5\1\0\7\5\1\0"+ + "\101\5\1\0\4\5\2\0\10\5\1\0\7\5\1\0\34\5\1\0"+ + "\4\5\1\0\5\5\1\0\1\5\3\0\7\5\1\0\u0154\5\2\0"+ + "\31\5\1\0\31\5\1\0\37\5\1\0\31\5\1\0\37\5\1\0"+ + "\31\5\1\0\37\5\1\0\31\5\1\0\37\5\1\0\31\5\1\0"+ + "\10\5\2\0\62\6\u1600\0\4\5\1\0\33\5\1\0\2\5\1\0"+ + "\1\5\2\0\1\5\1\0\12\5\1\0\4\5\1\0\1\5\1\0"+ + "\1\5\6\0\1\5\4\0\1\5\1\0\1\5\1\0\1\5\1\0"+ + "\3\5\1\0\2\5\1\0\1\5\2\0\1\5\1\0\1\5\1\0"+ + "\1\5\1\0\1\5\1\0\1\5\1\0\2\5\1\0\1\5\2\0"+ + "\4\5\1\0\7\5\1\0\4\5\1\0\4\5\1\0\1\5\1\0"+ + "\12\5\1\0\21\5\5\0\3\5\1\0\5\5\1\0\21\5\u1144\0"+ + "\ua6d7\5\51\0\u1035\5\13\0\336\5\u3fe2\0\u021e\5\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\u05ee\0"+ + "\1\6\36\0\140\6\200\0\360\6\uffff\0\uffff\0\ufe12\0"; - /** - * 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 - }; + /** + * Translates characters to character classes + */ + private static final char [] ZZ_CMAP = zzUnpackCMap(ZZ_CMAP_PACKED); - /** - * Translates characters to character classes - */ - private static final String ZZ_CMAP_PACKED - = "\11\6\1\4\1\2\1\51\1\52\1\1\16\6\4\0\1\4\1\0" - + "\1\45\1\0\1\5\2\0\1\47\3\0\1\37\1\0\1\30\1\35" - + "\1\0\1\33\11\11\1\12\1\3\5\0\4\40\1\36\1\40\2\7" - + "\1\31\4\7\1\34\14\7\1\0\1\41\2\0\1\10\1\0\1\22" - + "\1\46\1\43\1\26\1\20\1\21\1\42\1\7\1\27\2\7\1\23" - + "\1\7\1\25\1\44\2\7\1\16\1\24\1\15\1\17\2\7\1\50" - + "\1\32\1\7\1\13\1\0\1\14\1\0\6\6\1\53\32\6\2\0" - + "\4\5\4\0\1\5\2\0\1\6\7\0\1\5\4\0\1\5\5\0" - + "\27\5\1\0\37\5\1\0\u01ca\5\4\0\14\5\16\0\5\5\7\0" - + "\1\5\1\0\1\5\21\0\160\6\5\5\1\0\2\5\2\0\4\5" - + "\10\0\1\5\1\0\3\5\1\0\1\5\1\0\24\5\1\0\123\5" - + "\1\0\213\5\1\0\5\6\2\0\236\5\11\0\46\5\2\0\1\5" - + "\7\0\47\5\7\0\1\5\1\0\55\6\1\0\1\6\1\0\2\6" - + "\1\0\2\6\1\0\1\6\10\0\33\5\5\0\3\5\15\0\5\6" - + "\6\0\1\5\4\0\13\6\5\0\53\5\37\6\4\0\2\5\1\6" - + "\143\5\1\0\1\5\10\6\1\0\6\6\2\5\2\6\1\0\4\6" - + "\2\5\12\6\3\5\2\0\1\5\17\0\1\6\1\5\1\6\36\5" - + "\33\6\2\0\131\5\13\6\1\5\16\0\12\6\41\5\11\6\2\5" - + "\4\0\1\5\5\0\26\5\4\6\1\5\11\6\1\5\3\6\1\5" - + "\5\6\22\0\31\5\3\6\104\0\1\5\1\0\13\5\67\0\33\6" - + "\1\0\4\6\66\5\3\6\1\5\22\6\1\5\7\6\12\5\2\6" - + "\2\0\12\6\1\0\7\5\1\0\7\5\1\0\3\6\1\0\10\5" - + "\2\0\2\5\2\0\26\5\1\0\7\5\1\0\1\5\3\0\4\5" - + "\2\0\1\6\1\5\7\6\2\0\2\6\2\0\3\6\1\5\10\0" - + "\1\6\4\0\2\5\1\0\3\5\2\6\2\0\12\6\4\5\7\0" - + "\1\5\5\0\3\6\1\0\6\5\4\0\2\5\2\0\26\5\1\0" - + "\7\5\1\0\2\5\1\0\2\5\1\0\2\5\2\0\1\6\1\0" - + "\5\6\4\0\2\6\2\0\3\6\3\0\1\6\7\0\4\5\1\0" - + "\1\5\7\0\14\6\3\5\1\6\13\0\3\6\1\0\11\5\1\0" - + "\3\5\1\0\26\5\1\0\7\5\1\0\2\5\1\0\5\5\2\0" - + "\1\6\1\5\10\6\1\0\3\6\1\0\3\6\2\0\1\5\17\0" - + "\2\5\2\6\2\0\12\6\1\0\1\5\17\0\3\6\1\0\10\5" - + "\2\0\2\5\2\0\26\5\1\0\7\5\1\0\2\5\1\0\5\5" - + "\2\0\1\6\1\5\7\6\2\0\2\6\2\0\3\6\10\0\2\6" - + "\4\0\2\5\1\0\3\5\2\6\2\0\12\6\1\0\1\5\20\0" - + "\1\6\1\5\1\0\6\5\3\0\3\5\1\0\4\5\3\0\2\5" - + "\1\0\1\5\1\0\2\5\3\0\2\5\3\0\3\5\3\0\14\5" - + "\4\0\5\6\3\0\3\6\1\0\4\6\2\0\1\5\6\0\1\6" - + "\16\0\12\6\11\0\1\5\7\0\3\6\1\0\10\5\1\0\3\5" - + "\1\0\27\5\1\0\12\5\1\0\5\5\3\0\1\5\7\6\1\0" - + "\3\6\1\0\4\6\7\0\2\6\1\0\2\5\6\0\2\5\2\6" - + "\2\0\12\6\22\0\2\6\1\0\10\5\1\0\3\5\1\0\27\5" - + "\1\0\12\5\1\0\5\5\2\0\1\6\1\5\7\6\1\0\3\6" - + "\1\0\4\6\7\0\2\6\7\0\1\5\1\0\2\5\2\6\2\0" - + "\12\6\1\0\2\5\17\0\2\6\1\0\10\5\1\0\3\5\1\0" - + "\51\5\2\0\1\5\7\6\1\0\3\6\1\0\4\6\1\5\10\0" - + "\1\6\10\0\2\5\2\6\2\0\12\6\12\0\6\5\2\0\2\6" - + "\1\0\22\5\3\0\30\5\1\0\11\5\1\0\1\5\2\0\7\5" - + "\3\0\1\6\4\0\6\6\1\0\1\6\1\0\10\6\22\0\2\6" - + "\15\0\60\5\1\6\2\5\7\6\4\0\10\5\10\6\1\0\12\6" - + "\47\0\2\5\1\0\1\5\2\0\2\5\1\0\1\5\2\0\1\5" - + "\6\0\4\5\1\0\7\5\1\0\3\5\1\0\1\5\1\0\1\5" - + "\2\0\2\5\1\0\4\5\1\6\2\5\6\6\1\0\2\6\1\5" - + "\2\0\5\5\1\0\1\5\1\0\6\6\2\0\12\6\2\0\4\5" - + "\40\0\1\5\27\0\2\6\6\0\12\6\13\0\1\6\1\0\1\6" - + "\1\0\1\6\4\0\2\6\10\5\1\0\44\5\4\0\24\6\1\0" - + "\2\6\5\5\13\6\1\0\44\6\11\0\1\6\71\0\53\5\24\6" - + "\1\5\12\6\6\0\6\5\4\6\4\5\3\6\1\5\3\6\2\5" - + "\7\6\3\5\4\6\15\5\14\6\1\5\17\6\2\0\46\5\1\0" - + "\1\5\5\0\1\5\2\0\53\5\1\0\u014d\5\1\0\4\5\2\0" - + "\7\5\1\0\1\5\1\0\4\5\2\0\51\5\1\0\4\5\2\0" - + "\41\5\1\0\4\5\2\0\7\5\1\0\1\5\1\0\4\5\2\0" - + "\17\5\1\0\71\5\1\0\4\5\2\0\103\5\2\0\3\6\40\0" - + "\20\5\20\0\125\5\14\0\u026c\5\2\0\21\5\1\0\32\5\5\0" - + "\113\5\3\0\3\5\17\0\15\5\1\0\4\5\3\6\13\0\22\5" - + "\3\6\13\0\22\5\2\6\14\0\15\5\1\0\3\5\1\0\2\6" - + "\14\0\64\5\40\6\3\0\1\5\3\0\2\5\1\6\2\0\12\6" - + "\41\0\3\6\2\0\12\6\6\0\130\5\10\0\51\5\1\6\1\5" - + "\5\0\106\5\12\0\35\5\3\0\14\6\4\0\14\6\12\0\12\6" - + "\36\5\2\0\5\5\13\0\54\5\4\0\21\6\7\5\2\6\6\0" - + "\12\6\46\0\27\5\5\6\4\0\65\5\12\6\1\0\35\6\2\0" - + "\13\6\6\0\12\6\15\0\1\5\130\0\5\6\57\5\21\6\7\5" - + "\4\0\12\6\21\0\11\6\14\0\3\6\36\5\15\6\2\5\12\6" - + "\54\5\16\6\14\0\44\5\24\6\10\0\12\6\3\0\3\5\12\6" - + "\44\5\122\0\3\6\1\0\25\6\4\5\1\6\4\5\3\6\2\5" - + "\11\0\300\5\47\6\25\0\4\6\u0116\5\2\0\6\5\2\0\46\5" - + "\2\0\6\5\2\0\10\5\1\0\1\5\1\0\1\5\1\0\1\5" - + "\1\0\37\5\2\0\65\5\1\0\7\5\1\0\1\5\3\0\3\5" - + "\1\0\7\5\3\0\4\5\2\0\6\5\4\0\15\5\5\0\3\5" - + "\1\0\7\5\16\0\5\6\30\0\1\51\1\51\5\6\20\0\2\5" - + "\23\0\1\5\13\0\5\6\5\0\6\6\1\0\1\5\15\0\1\5" - + "\20\0\15\5\3\0\33\5\25\0\15\6\4\0\1\6\3\0\14\6" - + "\21\0\1\5\4\0\1\5\2\0\12\5\1\0\1\5\3\0\5\5" - + "\6\0\1\5\1\0\1\5\1\0\1\5\1\0\4\5\1\0\13\5" - + "\2\0\4\5\5\0\5\5\4\0\1\5\21\0\51\5\u0a77\0\57\5" - + "\1\0\57\5\1\0\205\5\6\0\4\5\3\6\2\5\14\0\46\5" - + "\1\0\1\5\5\0\1\5\2\0\70\5\7\0\1\5\17\0\1\6" - + "\27\5\11\0\7\5\1\0\7\5\1\0\7\5\1\0\7\5\1\0" - + "\7\5\1\0\7\5\1\0\7\5\1\0\7\5\1\0\40\6\57\0" - + "\1\5\u01d5\0\3\5\31\0\11\5\6\6\1\0\5\5\2\0\5\5" - + "\4\0\126\5\2\0\2\6\2\0\3\5\1\0\132\5\1\0\4\5" - + "\5\0\51\5\3\0\136\5\21\0\33\5\65\0\20\5\u0200\0\u19b6\5" - + "\112\0\u51cd\5\63\0\u048d\5\103\0\56\5\2\0\u010d\5\3\0\20\5" - + "\12\6\2\5\24\0\57\5\1\6\4\0\12\6\1\0\31\5\7\0" - + "\1\6\120\5\2\6\45\0\11\5\2\0\147\5\2\0\4\5\1\0" - + "\4\5\14\0\13\5\115\0\12\5\1\6\3\5\1\6\4\5\1\6" - + "\27\5\5\6\20\0\1\5\7\0\64\5\14\0\2\6\62\5\21\6" - + "\13\0\12\6\6\0\22\6\6\5\3\0\1\5\4\0\12\6\34\5" - + "\10\6\2\0\27\5\15\6\14\0\35\5\3\0\4\6\57\5\16\6" - + "\16\0\1\5\12\6\46\0\51\5\16\6\11\0\3\5\1\6\10\5" - + "\2\6\2\0\12\6\6\0\27\5\3\0\1\5\1\6\4\0\60\5" - + "\1\6\1\5\3\6\2\5\2\6\5\5\2\6\1\5\1\6\1\5" - + "\30\0\3\5\2\0\13\5\5\6\2\0\3\5\2\6\12\0\6\5" - + "\2\0\6\5\2\0\6\5\11\0\7\5\1\0\7\5\221\0\43\5" - + "\10\6\1\0\2\6\2\0\12\6\6\0\u2ba4\5\14\0\27\5\4\0" - + "\61\5\u2104\0\u016e\5\2\0\152\5\46\0\7\5\14\0\5\5\5\0" - + "\1\5\1\6\12\5\1\0\15\5\1\0\5\5\1\0\1\5\1\0" - + "\2\5\1\0\2\5\1\0\154\5\41\0\u016b\5\22\0\100\5\2\0" - + "\66\5\50\0\15\5\3\0\20\6\20\0\7\6\14\0\2\5\30\0" - + "\3\5\31\0\1\5\6\0\5\5\1\0\207\5\2\0\1\6\4\0" - + "\1\5\13\0\12\6\7\0\32\5\4\0\1\5\1\0\32\5\13\0" - + "\131\5\3\0\6\5\2\0\6\5\2\0\6\5\2\0\3\5\3\0" - + "\2\5\3\0\2\5\22\0\3\6\4\0\14\5\1\0\32\5\1\0" - + "\23\5\1\0\2\5\1\0\17\5\2\0\16\5\42\0\173\5\105\0" - + "\65\5\210\0\1\6\202\0\35\5\3\0\61\5\57\0\37\5\21\0" - + "\33\5\65\0\36\5\2\0\44\5\4\0\10\5\1\0\5\5\52\0" - + "\236\5\2\0\12\6\u0356\0\6\5\2\0\1\5\1\0\54\5\1\0" - + "\2\5\3\0\1\5\2\0\27\5\252\0\26\5\12\0\32\5\106\0" - + "\70\5\6\0\2\5\100\0\1\5\3\6\1\0\2\6\5\0\4\6" - + "\4\5\1\0\3\5\1\0\33\5\4\0\3\6\4\0\1\6\40\0" - + "\35\5\203\0\66\5\12\0\26\5\12\0\23\5\215\0\111\5\u03b7\0" - + "\3\6\65\5\17\6\37\0\12\6\20\0\3\6\55\5\13\6\2\0" - + "\1\6\22\0\31\5\7\0\12\6\6\0\3\6\44\5\16\6\1\0" - + "\12\6\100\0\3\6\60\5\16\6\4\5\13\0\12\6\u04a6\0\53\5" - + "\15\6\10\0\12\6\u0936\0\u036f\5\221\0\143\5\u0b9d\0\u042f\5\u33d1\0" - + "\u0239\5\u04c7\0\105\5\13\0\1\5\56\6\20\0\4\6\15\5\u4060\0" - + "\2\5\u2163\0\5\6\3\0\26\6\2\0\7\6\36\0\4\6\224\0" - + "\3\6\u01bb\0\125\5\1\0\107\5\1\0\2\5\2\0\1\5\2\0" - + "\2\5\2\0\4\5\1\0\14\5\1\0\1\5\1\0\7\5\1\0" - + "\101\5\1\0\4\5\2\0\10\5\1\0\7\5\1\0\34\5\1\0" - + "\4\5\1\0\5\5\1\0\1\5\3\0\7\5\1\0\u0154\5\2\0" - + "\31\5\1\0\31\5\1\0\37\5\1\0\31\5\1\0\37\5\1\0" - + "\31\5\1\0\37\5\1\0\31\5\1\0\37\5\1\0\31\5\1\0" - + "\10\5\2\0\62\6\u1600\0\4\5\1\0\33\5\1\0\2\5\1\0" - + "\1\5\2\0\1\5\1\0\12\5\1\0\4\5\1\0\1\5\1\0" - + "\1\5\6\0\1\5\4\0\1\5\1\0\1\5\1\0\1\5\1\0" - + "\3\5\1\0\2\5\1\0\1\5\2\0\1\5\1\0\1\5\1\0" - + "\1\5\1\0\1\5\1\0\1\5\1\0\2\5\1\0\1\5\2\0" - + "\4\5\1\0\7\5\1\0\4\5\1\0\4\5\1\0\1\5\1\0" - + "\12\5\1\0\21\5\5\0\3\5\1\0\5\5\1\0\21\5\u1144\0" - + "\ua6d7\5\51\0\u1035\5\13\0\336\5\u3fe2\0\u021e\5\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\uffff\0\u05ee\0" - + "\1\6\36\0\140\6\200\0\360\6\uffff\0\uffff\0\ufe12\0"; + /** + * Translates DFA states to action switch labels. + */ + private static final int [] ZZ_ACTION = zzUnpackAction(); - /** - * Translates characters to character classes - */ - private static final char[] ZZ_CMAP = zzUnpackCMap(ZZ_CMAP_PACKED); + private static final String ZZ_ACTION_PACKED_0 = + "\3\0\3\1\1\2\1\3\1\4\2\5\1\1\1\6"+ + "\2\7\1\10\1\11\1\12\1\13\5\11\1\1\1\11"+ + "\1\12\1\11\1\1\1\11\1\14\1\0\1\15\1\16"+ + "\1\17\1\20\1\16\1\21\1\22\1\23\1\24\1\25"+ + "\1\26\1\16\1\0\1\27\5\11\2\0\1\11\1\27"+ + "\2\11\2\0\1\27\1\0\5\11\1\0\1\11\1\27"+ + "\1\11\1\0\1\30\1\31\3\11\1\32\1\0\4\11"+ + "\1\33\1\0\4\11\1\0\4\11\1\0\4\11\1\0"+ + "\1\11\2\34\1\35\1\27\2\36"; - /** - * Translates DFA states to action switch labels. - */ - private static final int[] ZZ_ACTION = zzUnpackAction(); + private static int [] zzUnpackAction() { + int [] result = new int[106]; + int offset = 0; + offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result); + return result; + } - private static final String ZZ_ACTION_PACKED_0 - = "\3\0\3\1\1\2\1\3\1\4\2\5\1\1\1\6" - + "\2\7\1\10\1\11\1\12\1\13\5\11\1\1\1\11" - + "\1\12\1\11\1\1\1\11\1\14\1\0\1\15\1\16" - + "\1\17\1\20\1\16\1\21\1\22\1\23\1\24\1\25" - + "\1\26\1\16\1\0\1\27\5\11\2\0\1\11\1\27" - + "\2\11\2\0\1\27\1\0\5\11\1\0\1\11\1\27" - + "\1\11\1\0\1\30\1\31\3\11\1\32\1\0\4\11" - + "\1\33\1\0\4\11\1\0\4\11\1\0\4\11\1\0" - + "\1\11\2\34\1\35\1\27\2\36"; - - private static int[] zzUnpackAction() { - int[] result = new int[106]; - 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 */ + /** + * Translates a state to a row index in the transition table + */ + private static final int [] ZZ_ROWMAP = zzUnpackRowMap(); - 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 final String ZZ_ROWMAP_PACKED_0 = + "\0\0\0\54\0\130\0\204\0\260\0\334\0\u0108\0\204"+ + "\0\u0134\0\u0160\0\204\0\u018c\0\204\0\u01b8\0\204\0\u01e4"+ + "\0\u0210\0\u023c\0\204\0\u0268\0\u0294\0\u02c0\0\u02ec\0\u0318"+ + "\0\u0344\0\u0370\0\u039c\0\u03c8\0\u03f4\0\u0420\0\204\0\334"+ + "\0\204\0\204\0\204\0\204\0\u044c\0\204\0\204\0\204"+ + "\0\204\0\204\0\204\0\u0478\0\u04a4\0\u04d0\0\u04fc\0\u0528"+ + "\0\u0554\0\u0580\0\u05ac\0\u05d8\0\u03f4\0\u0604\0\u039c\0\u0630"+ + "\0\u065c\0\u0688\0\u06b4\0\u06e0\0\u06e0\0\u070c\0\u0738\0\u0764"+ + "\0\u0790\0\u07bc\0\u07e8\0\u0814\0\u0210\0\u0840\0\u0478\0\204"+ + "\0\u0210\0\u086c\0\u0898\0\u08c4\0\u0210\0\u08f0\0\u091c\0\u0948"+ + "\0\u0974\0\u09a0\0\u0210\0\u09cc\0\u09f8\0\u0a24\0\u0a50\0\u0a7c"+ + "\0\u0aa8\0\u0ad4\0\u0b00\0\u0b2c\0\u0b58\0\u0b84\0\u0bb0\0\u0bdc"+ + "\0\u0c08\0\u0c34\0\u0c60\0\u0c8c\0\u0cb8\0\u0210\0\u0210\0\204"+ + "\0\u0ce4\0\u0210"; + + private static int [] zzUnpackRowMap() { + int [] result = new int[106]; + int offset = 0; + offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result); + return result; + } + + private static int zzUnpackRowMap(String packed, int offset, int [] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int high = packed.charAt(i++) << 16; + result[j++] = high | packed.charAt(i++); } + return j; + } - /** - * Translates a state to a row index in the transition table - */ - private static final int[] ZZ_ROWMAP = zzUnpackRowMap(); + /** + * The transition table of the DFA + */ + private static final int [] ZZ_TRANS = zzUnpackTrans(); - private static final String ZZ_ROWMAP_PACKED_0 - = "\0\0\0\54\0\130\0\204\0\260\0\334\0\u0108\0\204" - + "\0\u0134\0\u0160\0\204\0\u018c\0\204\0\u01b8\0\204\0\u01e4" - + "\0\u0210\0\u023c\0\204\0\u0268\0\u0294\0\u02c0\0\u02ec\0\u0318" - + "\0\u0344\0\u0370\0\u039c\0\u03c8\0\u03f4\0\u0420\0\204\0\334" - + "\0\204\0\204\0\204\0\204\0\u044c\0\204\0\204\0\204" - + "\0\204\0\204\0\204\0\u0478\0\u04a4\0\u04d0\0\u04fc\0\u0528" - + "\0\u0554\0\u0580\0\u05ac\0\u05d8\0\u03f4\0\u0604\0\u039c\0\u0630" - + "\0\u065c\0\u0688\0\u06b4\0\u06e0\0\u06e0\0\u070c\0\u0738\0\u0764" - + "\0\u0790\0\u07bc\0\u07e8\0\u0814\0\u0210\0\u0840\0\u0478\0\204" - + "\0\u0210\0\u086c\0\u0898\0\u08c4\0\u0210\0\u08f0\0\u091c\0\u0948" - + "\0\u0974\0\u09a0\0\u0210\0\u09cc\0\u09f8\0\u0a24\0\u0a50\0\u0a7c" - + "\0\u0aa8\0\u0ad4\0\u0b00\0\u0b2c\0\u0b58\0\u0b84\0\u0bb0\0\u0bdc" - + "\0\u0c08\0\u0c34\0\u0c60\0\u0c8c\0\u0cb8\0\u0210\0\u0210\0\204" - + "\0\u0ce4\0\u0210"; + private static final String ZZ_TRANS_PACKED_0 = + "\4\4\1\5\1\6\1\4\1\7\1\6\3\4\1\10"+ + "\13\7\1\4\2\7\1\4\1\7\1\4\1\7\1\4"+ + "\1\7\1\4\3\7\1\4\1\7\1\4\1\7\1\4"+ + "\1\5\1\4\1\11\1\12\1\13\36\11\1\14\3\11"+ + "\1\15\6\11\1\4\1\16\1\17\1\20\1\4\1\21"+ + "\1\4\2\21\1\22\1\4\1\23\1\4\1\24\1\25"+ + "\1\26\1\21\1\27\3\21\1\30\2\21\1\31\1\32"+ + "\1\21\1\33\1\34\1\35\1\21\1\4\1\21\1\4"+ + "\1\21\1\36\1\21\1\37\1\21\1\4\1\21\3\4"+ + "\60\0\1\5\45\0\1\5\6\0\5\40\1\41\2\0"+ + "\13\40\1\0\4\40\1\0\1\40\1\0\1\40\1\0"+ + "\3\40\1\0\1\40\1\0\1\40\2\0\1\40\5\0"+ + "\2\40\3\7\1\41\2\0\13\7\1\0\4\7\1\0"+ + "\1\7\1\0\1\7\1\0\3\7\1\0\1\7\1\0"+ + "\1\7\2\0\1\40\1\11\2\0\36\11\1\0\3\11"+ + "\1\0\6\11\2\0\1\13\51\0\1\42\2\0\12\42"+ + "\1\43\1\44\1\45\1\42\1\46\3\42\1\47\13\42"+ + "\1\50\3\42\1\51\1\52\1\53\1\54\5\0\1\17"+ + "\51\0\1\20\2\0\51\20\5\0\5\21\3\0\13\21"+ + "\1\0\4\21\1\0\1\21\1\0\1\21\1\0\3\21"+ + "\1\0\1\21\1\0\1\21\2\0\1\21\11\0\1\22"+ + "\6\0\1\55\12\0\1\22\1\0\1\56\1\55\22\0"+ + "\5\21\3\0\1\21\1\57\11\21\1\0\4\21\1\0"+ + "\1\21\1\0\1\21\1\0\3\21\1\0\1\21\1\0"+ + "\1\21\2\0\1\21\5\0\5\21\3\0\3\21\1\60"+ + "\7\21\1\0\4\21\1\0\1\21\1\0\1\21\1\0"+ + "\3\21\1\0\1\21\1\0\1\21\2\0\1\21\5\0"+ + "\5\21\3\0\10\21\1\61\2\21\1\0\4\21\1\0"+ + "\1\21\1\0\1\21\1\0\3\21\1\0\1\21\1\0"+ + "\1\21\2\0\1\21\5\0\5\21\3\0\5\21\1\62"+ + "\5\21\1\0\4\21\1\0\1\21\1\0\1\21\1\0"+ + "\3\21\1\0\1\21\1\0\1\21\2\0\1\21\5\0"+ + "\5\21\3\0\2\21\1\63\10\21\1\0\4\21\1\0"+ + "\1\21\1\0\1\21\1\0\3\21\1\0\1\21\1\0"+ + "\1\21\2\0\1\21\11\0\1\22\17\0\1\64\1\0"+ + "\1\33\1\0\1\65\23\0\5\21\3\0\10\21\1\66"+ + "\2\21\1\0\4\21\1\0\1\21\1\0\1\21\1\0"+ + "\3\21\1\0\1\21\1\0\1\21\2\0\1\21\11\0"+ + "\1\67\6\0\1\55\12\0\1\67\1\0\1\56\1\55"+ + "\22\0\5\21\3\0\5\21\1\70\5\21\1\0\4\21"+ + "\1\0\1\21\1\0\1\21\1\0\3\21\1\0\1\21"+ + "\1\0\1\21\2\0\1\21\11\0\1\56\21\0\1\56"+ + "\25\0\5\21\3\0\13\21\1\0\4\21\1\0\1\21"+ + "\1\0\1\21\1\0\2\21\1\71\1\0\1\21\1\0"+ + "\1\21\2\0\1\21\11\0\1\72\6\0\3\72\3\0"+ + "\1\72\4\0\1\72\2\0\1\72\1\0\1\72\2\0"+ + "\1\72\2\0\1\72\16\0\1\73\6\0\3\73\3\0"+ + "\1\73\4\0\1\73\2\0\1\73\1\0\1\73\2\0"+ + "\1\73\2\0\1\73\16\0\1\74\16\0\1\75\2\0"+ + "\1\74\3\0\1\75\25\0\1\56\6\0\1\55\12\0"+ + "\1\56\2\0\1\55\22\0\5\21\3\0\2\21\1\76"+ + "\10\21\1\0\4\21\1\0\1\21\1\0\1\21\1\0"+ + "\3\21\1\0\1\21\1\0\1\21\2\0\1\21\5\0"+ + "\5\21\3\0\13\21\1\0\4\21\1\0\1\21\1\0"+ + "\1\21\1\0\1\77\2\21\1\0\1\21\1\0\1\21"+ + "\2\0\1\21\5\0\5\21\3\0\11\21\1\100\1\21"+ + "\1\0\4\21\1\0\1\21\1\0\1\21\1\0\3\21"+ + "\1\0\1\21\1\0\1\21\2\0\1\21\5\0\5\21"+ + "\3\0\6\21\1\101\4\21\1\0\4\21\1\0\1\21"+ + "\1\0\1\21\1\0\3\21\1\0\1\21\1\0\1\21"+ + "\2\0\1\21\5\0\5\21\3\0\6\21\1\102\4\21"+ + "\1\0\4\21\1\0\1\21\1\0\1\21\1\0\3\21"+ + "\1\0\1\21\1\0\1\21\2\0\1\21\25\0\1\103"+ + "\33\0\5\21\3\0\4\21\1\104\6\21\1\0\4\21"+ + "\1\0\1\21\1\0\1\21\1\0\3\21\1\0\1\21"+ + "\1\0\1\21\2\0\1\21\5\0\5\21\3\0\13\21"+ + "\1\0\3\21\1\105\1\0\1\21\1\0\1\21\1\0"+ + "\3\21\1\0\1\21\1\0\1\21\2\0\1\21\5\0"+ + "\5\21\3\0\10\21\1\106\2\21\1\0\4\21\1\0"+ + "\1\21\1\0\1\21\1\0\3\21\1\0\1\21\1\0"+ + "\1\21\2\0\1\21\11\0\1\107\6\0\3\107\3\0"+ + "\1\107\4\0\1\107\2\0\1\107\1\0\1\107\2\0"+ + "\1\107\2\0\1\107\16\0\1\110\6\0\3\110\3\0"+ + "\1\110\4\0\1\110\2\0\1\110\1\0\1\110\2\0"+ + "\1\110\2\0\1\110\16\0\1\74\21\0\1\74\25\0"+ + "\5\21\3\0\3\21\1\111\7\21\1\0\4\21\1\0"+ + "\1\21\1\0\1\21\1\0\3\21\1\0\1\21\1\0"+ + "\1\21\2\0\1\21\5\0\5\21\3\0\12\21\1\112"+ + "\1\0\4\21\1\0\1\21\1\0\1\21\1\0\3\21"+ + "\1\0\1\21\1\0\1\21\2\0\1\21\5\0\5\21"+ + "\3\0\3\21\1\113\7\21\1\0\4\21\1\0\1\21"+ + "\1\0\1\21\1\0\3\21\1\0\1\21\1\0\1\21"+ + "\2\0\1\21\5\0\5\21\3\0\7\21\1\114\3\21"+ + "\1\0\4\21\1\0\1\21\1\0\1\21\1\0\3\21"+ + "\1\0\1\21\1\0\1\21\2\0\1\21\5\0\5\21"+ + "\3\0\6\21\1\115\4\21\1\0\4\21\1\0\1\21"+ + "\1\0\1\21\1\0\3\21\1\0\1\21\1\0\1\21"+ + "\2\0\1\21\21\0\1\116\37\0\5\21\3\0\12\21"+ + "\1\117\1\0\4\21\1\0\1\21\1\0\1\21\1\0"+ + "\3\21\1\0\1\21\1\0\1\21\2\0\1\21\5\0"+ + "\5\21\3\0\7\21\1\120\3\21\1\0\4\21\1\0"+ + "\1\21\1\0\1\21\1\0\3\21\1\0\1\21\1\0"+ + "\1\21\2\0\1\21\5\0\5\21\3\0\7\21\1\121"+ + "\3\21\1\0\4\21\1\0\1\21\1\0\1\21\1\0"+ + "\3\21\1\0\1\21\1\0\1\21\2\0\1\21\5\0"+ + "\5\21\3\0\4\21\1\122\6\21\1\0\4\21\1\0"+ + "\1\21\1\0\1\21\1\0\3\21\1\0\1\21\1\0"+ + "\1\21\2\0\1\21\5\0\5\21\3\0\3\21\1\123"+ + "\7\21\1\0\4\21\1\0\1\21\1\0\1\21\1\0"+ + "\3\21\1\0\1\21\1\0\1\21\2\0\1\21\27\0"+ + "\1\124\31\0\5\21\3\0\10\21\1\125\2\21\1\0"+ + "\4\21\1\0\1\21\1\0\1\21\1\0\3\21\1\0"+ + "\1\21\1\0\1\21\2\0\1\21\5\0\5\21\3\0"+ + "\1\126\12\21\1\0\4\21\1\0\1\21\1\0\1\21"+ + "\1\0\3\21\1\0\1\21\1\0\1\21\2\0\1\21"+ + "\5\0\5\21\3\0\1\127\12\21\1\0\4\21\1\0"+ + "\1\21\1\0\1\21\1\0\3\21\1\0\1\21\1\0"+ + "\1\21\2\0\1\21\5\0\5\21\3\0\12\21\1\130"+ + "\1\0\4\21\1\0\1\21\1\0\1\21\1\0\3\21"+ + "\1\0\1\21\1\0\1\21\2\0\1\21\25\0\1\131"+ + "\33\0\5\21\3\0\12\21\1\132\1\0\4\21\1\0"+ + "\1\21\1\0\1\21\1\0\3\21\1\0\1\21\1\0"+ + "\1\21\2\0\1\21\5\0\5\21\3\0\5\21\1\133"+ + "\5\21\1\0\4\21\1\0\1\21\1\0\1\21\1\0"+ + "\3\21\1\0\1\21\1\0\1\21\2\0\1\21\5\0"+ + "\5\21\3\0\3\21\1\134\7\21\1\0\4\21\1\0"+ + "\1\21\1\0\1\21\1\0\3\21\1\0\1\21\1\0"+ + "\1\21\2\0\1\21\5\0\5\21\3\0\10\21\1\135"+ + "\2\21\1\0\4\21\1\0\1\21\1\0\1\21\1\0"+ + "\3\21\1\0\1\21\1\0\1\21\2\0\1\21\27\0"+ + "\1\136\31\0\5\21\3\0\1\137\12\21\1\0\4\21"+ + "\1\0\1\21\1\0\1\21\1\0\3\21\1\0\1\21"+ + "\1\0\1\21\2\0\1\21\5\0\5\21\3\0\10\21"+ + "\1\140\2\21\1\0\4\21\1\0\1\21\1\0\1\21"+ + "\1\0\3\21\1\0\1\21\1\0\1\21\2\0\1\21"+ + "\5\0\5\21\3\0\1\21\1\141\11\21\1\0\4\21"+ + "\1\0\1\21\1\0\1\21\1\0\3\21\1\0\1\21"+ + "\1\0\1\21\2\0\1\21\5\0\5\21\3\0\3\21"+ + "\1\142\7\21\1\0\4\21\1\0\1\21\1\0\1\21"+ + "\1\0\3\21\1\0\1\21\1\0\1\21\2\0\1\21"+ + "\15\0\1\143\43\0\5\21\3\0\13\21\1\0\1\21"+ + "\1\105\2\21\1\0\1\21\1\0\1\21\1\0\3\21"+ + "\1\0\1\21\1\0\1\21\2\0\1\21\5\0\5\21"+ + "\3\0\1\144\12\21\1\0\4\21\1\0\1\21\1\0"+ + "\1\21\1\0\3\21\1\0\1\21\1\0\1\21\2\0"+ + "\1\21\5\0\4\21\1\145\3\0\13\21\1\0\2\21"+ + "\1\146\1\21\1\0\1\21\1\0\1\21\1\0\3\21"+ + "\1\0\1\21\1\0\1\21\2\0\1\21\5\0\5\21"+ + "\3\0\11\21\1\147\1\21\1\0\4\21\1\0\1\21"+ + "\1\0\1\21\1\0\3\21\1\0\1\21\1\0\1\21"+ + "\2\0\1\21\32\0\1\150\26\0\4\21\1\151\3\0"+ + "\13\21\1\0\2\21\1\152\1\21\1\0\1\21\1\0"+ + "\1\21\1\0\3\21\1\0\1\21\1\0\1\21\2\0"+ + "\1\21\5\0\4\21\1\145\3\0\13\21\1\0\2\21"+ + "\1\145\1\21\1\0\1\21\1\0\1\21\1\0\3\21"+ + "\1\0\1\21\1\0\1\21\2\0\1\21\5\0\4\21"+ + "\1\151\3\0\13\21\1\0\2\21\1\151\1\21\1\0"+ + "\1\21\1\0\1\21\1\0\3\21\1\0\1\21\1\0"+ + "\1\21\2\0\1\21"; - private static int[] zzUnpackRowMap() { - int[] result = new int[106]; - int offset = 0; - offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result); - return result; + private static int [] zzUnpackTrans() { + int [] result = new int[3344]; + 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 */ + /* 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; - int l = packed.length(); - while (i < l) { - int high = packed.charAt(i++) << 16; - result[j++] = high | packed.charAt(i++); - } - return j; + /* 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 = + "\3\0\1\11\3\1\1\11\2\1\1\11\1\1\1\11"+ + "\1\1\1\11\3\1\1\11\13\1\1\11\1\0\4\11"+ + "\1\1\6\11\1\1\1\0\6\1\2\0\4\1\2\0"+ + "\1\1\1\0\5\1\1\0\3\1\1\0\1\11\5\1"+ + "\1\0\5\1\1\0\4\1\1\0\4\1\1\0\4\1"+ + "\1\0\4\1\1\11\2\1"; + + private static int [] zzUnpackAttribute() { + int [] result = new int[106]; + int offset = 0; + offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result); + return result; + } + + private static int zzUnpackAttribute(String packed, int offset, int [] result) { + int i = 0; /* index in packed string */ + int j = offset; /* index in unpacked array */ + int l = packed.length(); + while (i < l) { + int count = packed.charAt(i++); + int value = packed.charAt(i++); + do result[j++] = value; while (--count > 0); } + return j; + } - /** - * The transition table of the DFA - */ - private static final int[] ZZ_TRANS = zzUnpackTrans(); + /** the input device */ + private java.io.Reader zzReader; - private static final String ZZ_TRANS_PACKED_0 - = "\4\4\1\5\1\6\1\4\1\7\1\6\3\4\1\10" - + "\13\7\1\4\2\7\1\4\1\7\1\4\1\7\1\4" - + "\1\7\1\4\3\7\1\4\1\7\1\4\1\7\1\4" - + "\1\5\1\4\1\11\1\12\1\13\36\11\1\14\3\11" - + "\1\15\6\11\1\4\1\16\1\17\1\20\1\4\1\21" - + "\1\4\2\21\1\22\1\4\1\23\1\4\1\24\1\25" - + "\1\26\1\21\1\27\3\21\1\30\2\21\1\31\1\32" - + "\1\21\1\33\1\34\1\35\1\21\1\4\1\21\1\4" - + "\1\21\1\36\1\21\1\37\1\21\1\4\1\21\3\4" - + "\60\0\1\5\45\0\1\5\6\0\5\40\1\41\2\0" - + "\13\40\1\0\4\40\1\0\1\40\1\0\1\40\1\0" - + "\3\40\1\0\1\40\1\0\1\40\2\0\1\40\5\0" - + "\2\40\3\7\1\41\2\0\13\7\1\0\4\7\1\0" - + "\1\7\1\0\1\7\1\0\3\7\1\0\1\7\1\0" - + "\1\7\2\0\1\40\1\11\2\0\36\11\1\0\3\11" - + "\1\0\6\11\2\0\1\13\51\0\1\42\2\0\12\42" - + "\1\43\1\44\1\45\1\42\1\46\3\42\1\47\13\42" - + "\1\50\3\42\1\51\1\52\1\53\1\54\5\0\1\17" - + "\51\0\1\20\2\0\51\20\5\0\5\21\3\0\13\21" - + "\1\0\4\21\1\0\1\21\1\0\1\21\1\0\3\21" - + "\1\0\1\21\1\0\1\21\2\0\1\21\11\0\1\22" - + "\6\0\1\55\12\0\1\22\1\0\1\56\1\55\22\0" - + "\5\21\3\0\1\21\1\57\11\21\1\0\4\21\1\0" - + "\1\21\1\0\1\21\1\0\3\21\1\0\1\21\1\0" - + "\1\21\2\0\1\21\5\0\5\21\3\0\3\21\1\60" - + "\7\21\1\0\4\21\1\0\1\21\1\0\1\21\1\0" - + "\3\21\1\0\1\21\1\0\1\21\2\0\1\21\5\0" - + "\5\21\3\0\10\21\1\61\2\21\1\0\4\21\1\0" - + "\1\21\1\0\1\21\1\0\3\21\1\0\1\21\1\0" - + "\1\21\2\0\1\21\5\0\5\21\3\0\5\21\1\62" - + "\5\21\1\0\4\21\1\0\1\21\1\0\1\21\1\0" - + "\3\21\1\0\1\21\1\0\1\21\2\0\1\21\5\0" - + "\5\21\3\0\2\21\1\63\10\21\1\0\4\21\1\0" - + "\1\21\1\0\1\21\1\0\3\21\1\0\1\21\1\0" - + "\1\21\2\0\1\21\11\0\1\22\17\0\1\64\1\0" - + "\1\33\1\0\1\65\23\0\5\21\3\0\10\21\1\66" - + "\2\21\1\0\4\21\1\0\1\21\1\0\1\21\1\0" - + "\3\21\1\0\1\21\1\0\1\21\2\0\1\21\11\0" - + "\1\67\6\0\1\55\12\0\1\67\1\0\1\56\1\55" - + "\22\0\5\21\3\0\5\21\1\70\5\21\1\0\4\21" - + "\1\0\1\21\1\0\1\21\1\0\3\21\1\0\1\21" - + "\1\0\1\21\2\0\1\21\11\0\1\56\21\0\1\56" - + "\25\0\5\21\3\0\13\21\1\0\4\21\1\0\1\21" - + "\1\0\1\21\1\0\2\21\1\71\1\0\1\21\1\0" - + "\1\21\2\0\1\21\11\0\1\72\6\0\3\72\3\0" - + "\1\72\4\0\1\72\2\0\1\72\1\0\1\72\2\0" - + "\1\72\2\0\1\72\16\0\1\73\6\0\3\73\3\0" - + "\1\73\4\0\1\73\2\0\1\73\1\0\1\73\2\0" - + "\1\73\2\0\1\73\16\0\1\74\16\0\1\75\2\0" - + "\1\74\3\0\1\75\25\0\1\56\6\0\1\55\12\0" - + "\1\56\2\0\1\55\22\0\5\21\3\0\2\21\1\76" - + "\10\21\1\0\4\21\1\0\1\21\1\0\1\21\1\0" - + "\3\21\1\0\1\21\1\0\1\21\2\0\1\21\5\0" - + "\5\21\3\0\13\21\1\0\4\21\1\0\1\21\1\0" - + "\1\21\1\0\1\77\2\21\1\0\1\21\1\0\1\21" - + "\2\0\1\21\5\0\5\21\3\0\11\21\1\100\1\21" - + "\1\0\4\21\1\0\1\21\1\0\1\21\1\0\3\21" - + "\1\0\1\21\1\0\1\21\2\0\1\21\5\0\5\21" - + "\3\0\6\21\1\101\4\21\1\0\4\21\1\0\1\21" - + "\1\0\1\21\1\0\3\21\1\0\1\21\1\0\1\21" - + "\2\0\1\21\5\0\5\21\3\0\6\21\1\102\4\21" - + "\1\0\4\21\1\0\1\21\1\0\1\21\1\0\3\21" - + "\1\0\1\21\1\0\1\21\2\0\1\21\25\0\1\103" - + "\33\0\5\21\3\0\4\21\1\104\6\21\1\0\4\21" - + "\1\0\1\21\1\0\1\21\1\0\3\21\1\0\1\21" - + "\1\0\1\21\2\0\1\21\5\0\5\21\3\0\13\21" - + "\1\0\3\21\1\105\1\0\1\21\1\0\1\21\1\0" - + "\3\21\1\0\1\21\1\0\1\21\2\0\1\21\5\0" - + "\5\21\3\0\10\21\1\106\2\21\1\0\4\21\1\0" - + "\1\21\1\0\1\21\1\0\3\21\1\0\1\21\1\0" - + "\1\21\2\0\1\21\11\0\1\107\6\0\3\107\3\0" - + "\1\107\4\0\1\107\2\0\1\107\1\0\1\107\2\0" - + "\1\107\2\0\1\107\16\0\1\110\6\0\3\110\3\0" - + "\1\110\4\0\1\110\2\0\1\110\1\0\1\110\2\0" - + "\1\110\2\0\1\110\16\0\1\74\21\0\1\74\25\0" - + "\5\21\3\0\3\21\1\111\7\21\1\0\4\21\1\0" - + "\1\21\1\0\1\21\1\0\3\21\1\0\1\21\1\0" - + "\1\21\2\0\1\21\5\0\5\21\3\0\12\21\1\112" - + "\1\0\4\21\1\0\1\21\1\0\1\21\1\0\3\21" - + "\1\0\1\21\1\0\1\21\2\0\1\21\5\0\5\21" - + "\3\0\3\21\1\113\7\21\1\0\4\21\1\0\1\21" - + "\1\0\1\21\1\0\3\21\1\0\1\21\1\0\1\21" - + "\2\0\1\21\5\0\5\21\3\0\7\21\1\114\3\21" - + "\1\0\4\21\1\0\1\21\1\0\1\21\1\0\3\21" - + "\1\0\1\21\1\0\1\21\2\0\1\21\5\0\5\21" - + "\3\0\6\21\1\115\4\21\1\0\4\21\1\0\1\21" - + "\1\0\1\21\1\0\3\21\1\0\1\21\1\0\1\21" - + "\2\0\1\21\21\0\1\116\37\0\5\21\3\0\12\21" - + "\1\117\1\0\4\21\1\0\1\21\1\0\1\21\1\0" - + "\3\21\1\0\1\21\1\0\1\21\2\0\1\21\5\0" - + "\5\21\3\0\7\21\1\120\3\21\1\0\4\21\1\0" - + "\1\21\1\0\1\21\1\0\3\21\1\0\1\21\1\0" - + "\1\21\2\0\1\21\5\0\5\21\3\0\7\21\1\121" - + "\3\21\1\0\4\21\1\0\1\21\1\0\1\21\1\0" - + "\3\21\1\0\1\21\1\0\1\21\2\0\1\21\5\0" - + "\5\21\3\0\4\21\1\122\6\21\1\0\4\21\1\0" - + "\1\21\1\0\1\21\1\0\3\21\1\0\1\21\1\0" - + "\1\21\2\0\1\21\5\0\5\21\3\0\3\21\1\123" - + "\7\21\1\0\4\21\1\0\1\21\1\0\1\21\1\0" - + "\3\21\1\0\1\21\1\0\1\21\2\0\1\21\27\0" - + "\1\124\31\0\5\21\3\0\10\21\1\125\2\21\1\0" - + "\4\21\1\0\1\21\1\0\1\21\1\0\3\21\1\0" - + "\1\21\1\0\1\21\2\0\1\21\5\0\5\21\3\0" - + "\1\126\12\21\1\0\4\21\1\0\1\21\1\0\1\21" - + "\1\0\3\21\1\0\1\21\1\0\1\21\2\0\1\21" - + "\5\0\5\21\3\0\1\127\12\21\1\0\4\21\1\0" - + "\1\21\1\0\1\21\1\0\3\21\1\0\1\21\1\0" - + "\1\21\2\0\1\21\5\0\5\21\3\0\12\21\1\130" - + "\1\0\4\21\1\0\1\21\1\0\1\21\1\0\3\21" - + "\1\0\1\21\1\0\1\21\2\0\1\21\25\0\1\131" - + "\33\0\5\21\3\0\12\21\1\132\1\0\4\21\1\0" - + "\1\21\1\0\1\21\1\0\3\21\1\0\1\21\1\0" - + "\1\21\2\0\1\21\5\0\5\21\3\0\5\21\1\133" - + "\5\21\1\0\4\21\1\0\1\21\1\0\1\21\1\0" - + "\3\21\1\0\1\21\1\0\1\21\2\0\1\21\5\0" - + "\5\21\3\0\3\21\1\134\7\21\1\0\4\21\1\0" - + "\1\21\1\0\1\21\1\0\3\21\1\0\1\21\1\0" - + "\1\21\2\0\1\21\5\0\5\21\3\0\10\21\1\135" - + "\2\21\1\0\4\21\1\0\1\21\1\0\1\21\1\0" - + "\3\21\1\0\1\21\1\0\1\21\2\0\1\21\27\0" - + "\1\136\31\0\5\21\3\0\1\137\12\21\1\0\4\21" - + "\1\0\1\21\1\0\1\21\1\0\3\21\1\0\1\21" - + "\1\0\1\21\2\0\1\21\5\0\5\21\3\0\10\21" - + "\1\140\2\21\1\0\4\21\1\0\1\21\1\0\1\21" - + "\1\0\3\21\1\0\1\21\1\0\1\21\2\0\1\21" - + "\5\0\5\21\3\0\1\21\1\141\11\21\1\0\4\21" - + "\1\0\1\21\1\0\1\21\1\0\3\21\1\0\1\21" - + "\1\0\1\21\2\0\1\21\5\0\5\21\3\0\3\21" - + "\1\142\7\21\1\0\4\21\1\0\1\21\1\0\1\21" - + "\1\0\3\21\1\0\1\21\1\0\1\21\2\0\1\21" - + "\15\0\1\143\43\0\5\21\3\0\13\21\1\0\1\21" - + "\1\105\2\21\1\0\1\21\1\0\1\21\1\0\3\21" - + "\1\0\1\21\1\0\1\21\2\0\1\21\5\0\5\21" - + "\3\0\1\144\12\21\1\0\4\21\1\0\1\21\1\0" - + "\1\21\1\0\3\21\1\0\1\21\1\0\1\21\2\0" - + "\1\21\5\0\4\21\1\145\3\0\13\21\1\0\2\21" - + "\1\146\1\21\1\0\1\21\1\0\1\21\1\0\3\21" - + "\1\0\1\21\1\0\1\21\2\0\1\21\5\0\5\21" - + "\3\0\11\21\1\147\1\21\1\0\4\21\1\0\1\21" - + "\1\0\1\21\1\0\3\21\1\0\1\21\1\0\1\21" - + "\2\0\1\21\32\0\1\150\26\0\4\21\1\151\3\0" - + "\13\21\1\0\2\21\1\152\1\21\1\0\1\21\1\0" - + "\1\21\1\0\3\21\1\0\1\21\1\0\1\21\2\0" - + "\1\21\5\0\4\21\1\145\3\0\13\21\1\0\2\21" - + "\1\145\1\21\1\0\1\21\1\0\1\21\1\0\3\21" - + "\1\0\1\21\1\0\1\21\2\0\1\21\5\0\4\21" - + "\1\151\3\0\13\21\1\0\2\21\1\151\1\21\1\0" - + "\1\21\1\0\1\21\1\0\3\21\1\0\1\21\1\0" - + "\1\21\2\0\1\21"; + /** the current state of the DFA */ + private int zzState; - private static int[] zzUnpackTrans() { - int[] result = new int[3344]; - int offset = 0; - offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); - return result; - } + /** the current lexical state */ + private int zzLexicalState = YYINITIAL; - private static int zzUnpackTrans(String packed, int offset, int[] result) { - int i = 0; /* index in packed string */ + /** this buffer contains the current text to be matched and is + the source of the yytext() string */ + private char zzBuffer[] = new char[ZZ_BUFFERSIZE]; - int j = offset; /* index in unpacked array */ + /** the textposition at the last accepting state */ + private int zzMarkedPos; - 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; - } + /** the current text position in the buffer */ + private int zzCurrentPos; + /** startRead marks the beginning of the yytext() string in the buffer */ + private int zzStartRead; - /* error codes */ - private static final int ZZ_UNKNOWN_ERROR = 0; + /** endRead marks the last character in the buffer, that has been read + from input */ + private int zzEndRead; - private static final int ZZ_NO_MATCH = 1; + /** number of newlines encountered up to the start of the matched text */ + private int yyline; - private static final int ZZ_PUSHBACK_2BIG = 2; + /** the number of characters up to the start of the matched text */ + private int yychar; - /* 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" - }; + /** + * the number of characters from the last newline up to the start of the + * matched text + */ + private int yycolumn; - /** - * ZZ_ATTRIBUTE[aState] contains the attributes of state aState - */ - private static final int[] ZZ_ATTRIBUTE = zzUnpackAttribute(); + /** + * zzAtBOL == true <=> the scanner is currently at the beginning of a line + */ + private boolean zzAtBOL = true; - private static final String ZZ_ATTRIBUTE_PACKED_0 - = "\3\0\1\11\3\1\1\11\2\1\1\11\1\1\1\11" - + "\1\1\1\11\3\1\1\11\13\1\1\11\1\0\4\11" - + "\1\1\6\11\1\1\1\0\6\1\2\0\4\1\2\0" - + "\1\1\1\0\5\1\1\0\3\1\1\0\1\11\5\1" - + "\1\0\5\1\1\0\4\1\1\0\4\1\1\0\4\1" - + "\1\0\4\1\1\11\2\1"; + /** zzAtEOF == true <=> the scanner is at the EOF */ + private boolean zzAtEOF; - private static int[] zzUnpackAttribute() { - int[] result = new int[106]; - int offset = 0; - offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result); - return result; - } + /** denotes if the user-EOF-code has already been executed */ + private boolean zzEOFDone; + + /** + * The number of occupied positions in zzBuffer beyond zzEndRead. + * When a lead/high surrogate has been read from the input stream + * into the final zzBuffer position, this will have a value of 1; + * otherwise, it will have a value of 0. + */ + private int zzFinalHighSurrogate = 0; - private static int zzUnpackAttribute(String packed, int offset, int[] result) { - int i = 0; /* index in packed string */ + /* user code: */ - 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 number of occupied positions in zzBuffer beyond zzEndRead. - * When a lead/high surrogate has been read from the input stream - * into the final zzBuffer position, this will have a value of 1; - * otherwise, it will have a value of 0. - */ - private int zzFinalHighSurrogate = 0; - - /* user code: */ - StringBuffer string = new StringBuffer(); + StringBuilder string = new StringBuilder(); /** * Create an empty lexer, yyrset will be called later to reset and assign @@ -625,540 +579,513 @@ public final class FlasmLexer { return yyline + 1; } - /** - * Creates a new scanner - * - * @param in the java.io.Reader to read input from. - */ - public FlasmLexer(java.io.Reader in) { - this.zzReader = in; + + + /** + * Creates a new scanner + * + * @param in the java.io.Reader to read input from. + */ + public FlasmLexer(java.io.Reader in) { + this.zzReader = 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[0x110000]; + int i = 0; /* index in packed string */ + int j = 0; /* index in unpacked array */ + while (i < 2854) { + 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) { + zzEndRead += zzFinalHighSurrogate; + zzFinalHighSurrogate = 0; + System.arraycopy(zzBuffer, zzStartRead, + zzBuffer, 0, + zzEndRead-zzStartRead); + + /* translate stored positions */ + zzEndRead-= zzStartRead; + zzCurrentPos-= zzStartRead; + zzMarkedPos-= zzStartRead; + zzStartRead = 0; } - /** - * 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[0x110000]; - int i = 0; /* index in packed string */ + /* is the buffer big enough? */ + if (zzCurrentPos >= zzBuffer.length - zzFinalHighSurrogate) { + /* if not: blow it up */ + char newBuffer[] = new char[zzBuffer.length*2]; + System.arraycopy(zzBuffer, 0, newBuffer, 0, zzBuffer.length); + zzBuffer = newBuffer; + zzEndRead += zzFinalHighSurrogate; + zzFinalHighSurrogate = 0; + } - int j = 0; /* index in unpacked array */ + /* fill the buffer with new input */ + int requested = zzBuffer.length - zzEndRead; + int totalRead = 0; + while (totalRead < requested) { + int numRead = zzReader.read(zzBuffer, zzEndRead + totalRead, requested - totalRead); + if (numRead == -1) { + break; + } + totalRead += numRead; + } - while (i < 2854) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do { - map[j++] = value; - } while (--count > 0); + if (totalRead > 0) { + zzEndRead += totalRead; + if (totalRead == requested) { /* possibly more input available */ + if (Character.isHighSurrogate(zzBuffer[zzEndRead - 1])) { + --zzEndRead; + zzFinalHighSurrogate = 1; } - return map; + } + 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 { + // totalRead = 0: End of stream + return true; + } - /* first: make room (if you can) */ - if (zzStartRead > 0) { - zzEndRead += zzFinalHighSurrogate; - zzFinalHighSurrogate = 0; - System.arraycopy(zzBuffer, zzStartRead, - zzBuffer, 0, - zzEndRead - zzStartRead); + + /** + * Closes the input stream. + */ + public final void yyclose() throws java.io.IOException { + zzAtEOF = true; /* indicate end of file */ + zzEndRead = zzStartRead; /* invalidate buffer */ - /* translate stored positions */ - zzEndRead -= zzStartRead; - zzCurrentPos -= zzStartRead; - zzMarkedPos -= zzStartRead; - zzStartRead = 0; + 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. + * + * Internal scan buffer is resized down to its initial length, if it has grown. + * + * @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; + zzFinalHighSurrogate = 0; + yyline = yychar = yycolumn = 0; + zzLexicalState = YYINITIAL; + if (zzBuffer.length > ZZ_BUFFERSIZE) + zzBuffer = new char[ZZ_BUFFERSIZE]; + } + + + /** + * 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]; + } + + throw new Error(message); + } + + + /** + * Pushes the specified amount of characters back into the input stream. + * + * They will be read again by then next call of the scanning method + * + * @param number the number of characters to be read again. + * This number must not be greater than yylength()! + */ + public void yypushback(int number) { + if ( number > yylength() ) + zzScanError(ZZ_PUSHBACK_2BIG); + + zzMarkedPos -= number; + } + + + /** + * Resumes scanning until the next regular expression is matched, + * the end of input is encountered or an I/O-Error occurs. + * + * @return the next token + * @exception java.io.IOException if any I/O-Error occurs + */ + public ASMParsedSymbol yylex() throws java.io.IOException, ActionParseException { + int zzInput; + int zzAction; + + // cached fields: + int zzCurrentPosL; + int zzMarkedPosL; + int zzEndReadL = zzEndRead; + char [] zzBufferL = zzBuffer; + char [] zzCMapL = ZZ_CMAP; + + int [] zzTransL = ZZ_TRANS; + int [] zzRowMapL = ZZ_ROWMAP; + int [] zzAttrL = ZZ_ATTRIBUTE; + + while (true) { + zzMarkedPosL = zzMarkedPos; + + yychar+= zzMarkedPosL-zzStartRead; + + boolean zzR = false; + int zzCh; + int zzCharCount; + for (zzCurrentPosL = zzStartRead ; + zzCurrentPosL < zzMarkedPosL ; + zzCurrentPosL += zzCharCount ) { + zzCh = Character.codePointAt(zzBufferL, zzCurrentPosL, zzMarkedPosL); + zzCharCount = Character.charCount(zzCh); + switch (zzCh) { + case '\u000B': + case '\u000C': + case '\u0085': + case '\u2028': + case '\u2029': + yyline++; + yycolumn = 0; + zzR = false; + break; + case '\r': + yyline++; + yycolumn = 0; + zzR = true; + break; + case '\n': + if (zzR) + zzR = false; + else { + yyline++; + yycolumn = 0; + } + break; + default: + zzR = false; + yycolumn += zzCharCount; } + } - /* is the buffer big enough? */ - if (zzCurrentPos >= zzBuffer.length - zzFinalHighSurrogate) { - /* if not: blow it up */ - char newBuffer[] = new char[zzBuffer.length * 2]; - System.arraycopy(zzBuffer, 0, newBuffer, 0, zzBuffer.length); - zzBuffer = newBuffer; - zzEndRead += zzFinalHighSurrogate; - zzFinalHighSurrogate = 0; + if (zzR) { + // peek one character ahead if it is \n (if we have counted one line too much) + boolean zzPeek; + if (zzMarkedPosL < zzEndReadL) + zzPeek = zzBufferL[zzMarkedPosL] == '\n'; + else if (zzAtEOF) + zzPeek = false; + else { + boolean eof = zzRefill(); + zzEndReadL = zzEndRead; + zzMarkedPosL = zzMarkedPos; + zzBufferL = zzBuffer; + if (eof) + zzPeek = false; + else + zzPeek = zzBufferL[zzMarkedPosL] == '\n'; } + if (zzPeek) yyline--; + } + zzAction = -1; - /* fill the buffer with new input */ - int requested = zzBuffer.length - zzEndRead; - int totalRead = 0; - while (totalRead < requested) { - int numRead = zzReader.read(zzBuffer, zzEndRead + totalRead, requested - totalRead); - if (numRead == -1) { - break; - } - totalRead += numRead; - } + zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL; + + zzState = ZZ_LEXSTATE[zzLexicalState]; - if (totalRead > 0) { - zzEndRead += totalRead; - if (totalRead == requested) { /* possibly more input available */ + // set up zzAction for empty match case: + int zzAttributes = zzAttrL[zzState]; + if ( (zzAttributes & 1) == 1 ) { + zzAction = zzState; + } - if (Character.isHighSurrogate(zzBuffer[zzEndRead - 1])) { - --zzEndRead; - zzFinalHighSurrogate = 1; - } - } - return false; - } - - // totalRead = 0: End of stream - return true; - } - - /** - * Closes the input stream. - */ - public final void yyclose() throws java.io.IOException { - zzAtEOF = true; /* indicate end of file */ - - zzEndRead = zzStartRead; /* invalidate buffer */ - - if (zzReader != null) { - zzReader.close(); - } - } - - /** - * Resets the scanner to read from a new input stream. - * Does not close the old reader. - * - * All internal variables are reset, the old input stream - * cannot be reused (internal buffer is discarded and lost). - * Lexical state is set to ZZ_INITIAL. - * - * Internal scan buffer is resized down to its initial length, if it has - * grown. - * - * @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; - zzFinalHighSurrogate = 0; - yyline = yychar = yycolumn = 0; - zzLexicalState = YYINITIAL; - if (zzBuffer.length > ZZ_BUFFERSIZE) { - zzBuffer = new char[ZZ_BUFFERSIZE]; - } - } - - /** - * 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]; - } - - throw new Error(message); - } - - /** - * Pushes the specified amount of characters back into the input stream. - * - * They will be read again by then next call of the scanning method - * - * @param number the number of characters to be read again. - * This number must not be greater than yylength()! - */ - public void yypushback(int number) { - if (number > yylength()) { - zzScanError(ZZ_PUSHBACK_2BIG); - } - - zzMarkedPos -= number; - } - - /** - * Resumes scanning until the next regular expression is matched, - * the end of input is encountered or an I/O-Error occurs. - * - * @return the next token - * @exception java.io.IOException if any I/O-Error occurs - */ - public ASMParsedSymbol yylex() throws java.io.IOException, ActionParseException { - int zzInput; - int zzAction; - - // cached fields: - int zzCurrentPosL; - int zzMarkedPosL; - int zzEndReadL = zzEndRead; - char[] zzBufferL = zzBuffer; - char[] zzCMapL = ZZ_CMAP; - - int[] zzTransL = ZZ_TRANS; - int[] zzRowMapL = ZZ_ROWMAP; - int[] zzAttrL = ZZ_ATTRIBUTE; + zzForAction: { while (true) { - zzMarkedPosL = zzMarkedPos; - - yychar += zzMarkedPosL - zzStartRead; - - boolean zzR = false; - int zzCh; - int zzCharCount; - for (zzCurrentPosL = zzStartRead; - zzCurrentPosL < zzMarkedPosL; - zzCurrentPosL += zzCharCount) { - zzCh = Character.codePointAt(zzBufferL, zzCurrentPosL, zzMarkedPosL); - zzCharCount = Character.charCount(zzCh); - switch (zzCh) { - case '\u000B': - case '\u000C': - case '\u0085': - case '\u2028': - case '\u2029': - yyline++; - yycolumn = 0; - zzR = false; - break; - case '\r': - yyline++; - yycolumn = 0; - zzR = true; - break; - case '\n': - if (zzR) { - zzR = false; - } else { - yyline++; - yycolumn = 0; - } - break; - default: - zzR = false; - yycolumn += zzCharCount; - } + + if (zzCurrentPosL < zzEndReadL) { + zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL, zzEndReadL); + zzCurrentPosL += Character.charCount(zzInput); + } + 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; } - - if (zzR) { - // peek one character ahead if it is \n (if we have counted one line too much) - boolean zzPeek; - if (zzMarkedPosL < zzEndReadL) { - zzPeek = zzBufferL[zzMarkedPosL] == '\n'; - } else if (zzAtEOF) { - zzPeek = false; - } else { - boolean eof = zzRefill(); - zzEndReadL = zzEndRead; - zzMarkedPosL = zzMarkedPos; - zzBufferL = zzBuffer; - if (eof) { - zzPeek = false; - } else { - zzPeek = zzBufferL[zzMarkedPosL] == '\n'; - } - } - if (zzPeek) { - yyline--; - } + else { + zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL, zzEndReadL); + zzCurrentPosL += Character.charCount(zzInput); } - zzAction = -1; + } + int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMapL[zzInput] ]; + if (zzNext == -1) break zzForAction; + zzState = zzNext; - zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL; + zzAttributes = zzAttrL[zzState]; + if ( (zzAttributes & 1) == 1 ) { + zzAction = zzState; + zzMarkedPosL = zzCurrentPosL; + if ( (zzAttributes & 8) == 8 ) break zzForAction; + } - zzState = ZZ_LEXSTATE[zzLexicalState]; - - // set up zzAction for empty match case: - int zzAttributes = zzAttrL[zzState]; - if ((zzAttributes & 1) == 1) { - zzAction = zzState; - } - - zzForAction: - { - while (true) { - - if (zzCurrentPosL < zzEndReadL) { - zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL, zzEndReadL); - zzCurrentPosL += Character.charCount(zzInput); - } 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 = Character.codePointAt(zzBufferL, zzCurrentPosL, zzEndReadL); - zzCurrentPosL += Character.charCount(zzInput); - } - } - int zzNext = zzTransL[zzRowMapL[zzState] + zzCMapL[zzInput]]; - if (zzNext == -1) { - break zzForAction; - } - zzState = zzNext; - - 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 1: { - } - case 31: - break; - case 2: { - yybegin(PARAMETERS); - return new ASMParsedSymbol(ASMParsedSymbol.TYPE_INSTRUCTION_NAME, yytext()); - } - case 32: - break; - case 3: { - return new ASMParsedSymbol(ASMParsedSymbol.TYPE_BLOCK_END); - } - case 33: - break; - case 4: { - string.append(yytext()); - } - case 34: - break; - case 5: { - throw new ActionParseException("Unterminated string at end of line", yyline + 1); - } - case 35: - break; - case 6: { - yybegin(PARAMETERS); - // length also includes the trailing quote - return new ASMParsedSymbol(ASMParsedSymbol.TYPE_STRING, string.toString()); - } - case 36: - break; - case 7: { - yybegin(YYINITIAL); - return new ASMParsedSymbol(ASMParsedSymbol.TYPE_EOL); - } - case 37: - break; - case 8: { - return new ASMParsedSymbol(ASMParsedSymbol.TYPE_COMMENT, yytext().substring(1)); - } - case 38: - break; - case 9: { - return new ASMParsedSymbol(ASMParsedSymbol.TYPE_IDENTIFIER, yytext()); - } - case 39: - break; - case 10: { - return new ASMParsedSymbol(ASMParsedSymbol.TYPE_INTEGER, Long.parseLong((yytext()))); - } - case 40: - break; - case 11: { - yybegin(YYINITIAL); - return new ASMParsedSymbol(ASMParsedSymbol.TYPE_BLOCK_START); - } - case 41: - break; - case 12: { - yybegin(STRING); - string.setLength(0); - } - case 42: - break; - case 13: { - String s = yytext(); - return new ASMParsedSymbol(ASMParsedSymbol.TYPE_LABEL, s.substring(0, s.length() - 1)); - } - case 43: - break; - case 14: { - throw new ActionParseException("Illegal escape sequence \"" + yytext() + "\"", yyline + 1); - } - case 44: - break; - case 15: { - string.append('\t'); - } - case 45: - break; - case 16: { - string.append('\r'); - } - case 46: - break; - case 17: { - string.append('\f'); - } - case 47: - break; - case 18: { - string.append('\n'); - } - case 48: - break; - case 19: { - string.append('\\'); - } - case 49: - break; - case 20: { - string.append('\"'); - } - case 50: - break; - case 21: { - string.append('\b'); - } - case 51: - break; - case 22: { - string.append('\''); - } - case 52: - break; - case 23: { - return new ASMParsedSymbol(ASMParsedSymbol.TYPE_FLOAT, Double.parseDouble((yytext()))); - } - case 53: - break; - case 24: { - char val = (char) Integer.parseInt(yytext().substring(2), 16); - string.append(val); - } - case 54: - break; - case 25: { - return new ASMParsedSymbol(ASMParsedSymbol.TYPE_BOOLEAN, Boolean.TRUE); - } - case 55: - break; - case 26: { - return new ASMParsedSymbol(ASMParsedSymbol.TYPE_NULL, new Null()); - } - case 56: - break; - case 27: { - return new ASMParsedSymbol(ASMParsedSymbol.TYPE_BOOLEAN, Boolean.FALSE); - } - case 57: - break; - case 28: { - return new ASMParsedSymbol(ASMParsedSymbol.TYPE_REGISTER, new RegisterNumber(Integer.parseInt(yytext().substring(8)))); - } - case 58: - break; - case 29: { - return new ASMParsedSymbol(ASMParsedSymbol.TYPE_UNDEFINED, new Undefined()); - } - case 59: - break; - case 30: { - return new ASMParsedSymbol(ASMParsedSymbol.TYPE_CONSTANT, new ConstantIndex(Integer.parseInt(yytext().substring(8)))); - } - case 60: - break; - default: - if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { - zzAtEOF = true; - { - return new ASMParsedSymbol(ASMParsedSymbol.TYPE_EOF); - } - } else { - zzScanError(ZZ_NO_MATCH); - } - } } + } + + // store back cached position + zzMarkedPos = zzMarkedPosL; + + switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) { + case 1: + { + } + case 31: break; + case 2: + { yybegin(PARAMETERS); + return new ASMParsedSymbol(ASMParsedSymbol.TYPE_INSTRUCTION_NAME, yytext()); + } + case 32: break; + case 3: + { return new ASMParsedSymbol(ASMParsedSymbol.TYPE_BLOCK_END); + } + case 33: break; + case 4: + { string.append(yytext()); + } + case 34: break; + case 5: + { throw new ActionParseException("Unterminated string at end of line", yyline + 1); + } + case 35: break; + case 6: + { yybegin(PARAMETERS); + // length also includes the trailing quote + return new ASMParsedSymbol(ASMParsedSymbol.TYPE_STRING, string.toString()); + } + case 36: break; + case 7: + { yybegin(YYINITIAL); return new ASMParsedSymbol(ASMParsedSymbol.TYPE_EOL); + } + case 37: break; + case 8: + { return new ASMParsedSymbol(ASMParsedSymbol.TYPE_COMMENT, yytext().substring(1)); + } + case 38: break; + case 9: + { return new ASMParsedSymbol(ASMParsedSymbol.TYPE_IDENTIFIER, yytext()); + } + case 39: break; + case 10: + { return new ASMParsedSymbol(ASMParsedSymbol.TYPE_INTEGER, Long.parseLong((yytext()))); + } + case 40: break; + case 11: + { yybegin(YYINITIAL); return new ASMParsedSymbol(ASMParsedSymbol.TYPE_BLOCK_START); + } + case 41: break; + case 12: + { yybegin(STRING); + string.setLength(0); + } + case 42: break; + case 13: + { String s=yytext(); + return new ASMParsedSymbol(ASMParsedSymbol.TYPE_LABEL, s.substring(0, s.length() - 1)); + } + case 43: break; + case 14: + { throw new ActionParseException("Illegal escape sequence \"" + yytext() + "\"", yyline + 1); + } + case 44: break; + case 15: + { string.append('\t'); + } + case 45: break; + case 16: + { string.append('\r'); + } + case 46: break; + case 17: + { string.append('\f'); + } + case 47: break; + case 18: + { string.append('\n'); + } + case 48: break; + case 19: + { string.append('\\'); + } + case 49: break; + case 20: + { string.append('\"'); + } + case 50: break; + case 21: + { string.append('\b'); + } + case 51: break; + case 22: + { string.append('\''); + } + case 52: break; + case 23: + { return new ASMParsedSymbol(ASMParsedSymbol.TYPE_FLOAT, Double.parseDouble((yytext()))); + } + case 53: break; + case 24: + { char val = (char) Integer.parseInt(yytext().substring(2), 16); + string.append(val); + } + case 54: break; + case 25: + { return new ASMParsedSymbol(ASMParsedSymbol.TYPE_BOOLEAN,Boolean.TRUE); + } + case 55: break; + case 26: + { return new ASMParsedSymbol(ASMParsedSymbol.TYPE_NULL, Null.INSTANCE); + } + case 56: break; + case 27: + { return new ASMParsedSymbol(ASMParsedSymbol.TYPE_BOOLEAN,Boolean.FALSE); + } + case 57: break; + case 28: + { return new ASMParsedSymbol(ASMParsedSymbol.TYPE_REGISTER, new RegisterNumber(Integer.parseInt(yytext().substring(8)))); + } + case 58: break; + case 29: + { return new ASMParsedSymbol(ASMParsedSymbol.TYPE_UNDEFINED, Undefined.INSTANCE); + } + case 59: break; + case 30: + { return new ASMParsedSymbol(ASMParsedSymbol.TYPE_CONSTANT, new ConstantIndex(Integer.parseInt(yytext().substring(8)))); + } + case 60: break; + default: + if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { + zzAtEOF = true; + { + return new ASMParsedSymbol(ASMParsedSymbol.TYPE_EOF); + } + } + else { + zzScanError(ZZ_NO_MATCH); + } + } } + } + + } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/parser/script/ActionScript2Parser.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/parser/script/ActionScript2Parser.java index 7879d386c..bec89845c 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/parser/script/ActionScript2Parser.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/parser/script/ActionScript2Parser.java @@ -947,7 +947,7 @@ public class ActionScript2Parser { List args = call(inFunction, inMethod, variables); VariableActionItem supItem = new VariableActionItem(s.value.toString(), null, false); variables.add(supItem); - ret = new CallMethodActionItem(null, supItem, new DirectValueActionItem(null, 0, new Undefined(), constantPool), args); + ret = new CallMethodActionItem(null, supItem, new DirectValueActionItem(null, 0, Undefined.INSTANCE, constantPool), args); } else {//no costructor call, but it could be calling parent methods... => handle in expression lexer.pushback(ss2); lexer.pushback(s); @@ -1142,7 +1142,7 @@ public class ActionScript2Parser { case RETURN: GraphTargetItem retexpr = expression(inFunction, inMethod, true, variables); if (retexpr == null) { - retexpr = new DirectValueActionItem(null, 0, new Undefined(), new ArrayList<>()); + retexpr = new DirectValueActionItem(null, 0, Undefined.INSTANCE, new ArrayList<>()); } ret = new ReturnActionItem(null, retexpr); break; @@ -1621,11 +1621,11 @@ public class ActionScript2Parser { break; case NULL: - ret = new DirectValueActionItem(null, 0, new Null(), new ArrayList<>()); + ret = new DirectValueActionItem(null, 0, Null.INSTANCE, new ArrayList<>()); break; case UNDEFINED: - ret = new DirectValueActionItem(null, 0, new Undefined(), new ArrayList<>()); + ret = new DirectValueActionItem(null, 0, Undefined.INSTANCE, new ArrayList<>()); break; case FALSE: ret = new DirectValueActionItem(null, 0, Boolean.FALSE, new ArrayList<>()); diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/parser/script/ActionScriptLexer.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/parser/script/ActionScriptLexer.java index 6479a01e5..e4db5f1d2 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/parser/script/ActionScriptLexer.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/parser/script/ActionScriptLexer.java @@ -27,7 +27,7 @@ import java.util.Stack; * This class is a scanner generated by * JFlex 1.6.0 * from the specification file - * C:/Dropbox/Programovani/JavaSE/FFDec/libsrc/ffdec_lib/lexers/actionscript_script.flex + * C:/FFDec/jpexs-decompiler/libsrc/ffdec_lib/lexers/actionscript_script.flex */ public final class ActionScriptLexer { @@ -1268,7 +1268,7 @@ public final class ActionScriptLexer { private int zzFinalHighSurrogate = 0; /* user code: */ - StringBuffer string = new StringBuffer(); + StringBuilder string = new StringBuilder(); private static String xmlTagName = ""; diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/parser/script/ActionSourceGenerator.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/parser/script/ActionSourceGenerator.java index d54f73c72..e95a2d396 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/parser/script/ActionSourceGenerator.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/parser/script/ActionSourceGenerator.java @@ -723,7 +723,7 @@ public class ActionSourceGenerator implements SourceGenerator { if (!isInterface) { ifbody.add(new ActionPush((Long) 1L)); - ifbody.add(new ActionPush(new Null())); + ifbody.add(new ActionPush(Null.INSTANCE)); ifbody.addAll(typeToActions(globalClassTypeStr, null)); ifbody.add(pushConst("prototype")); ifbody.add(new ActionGetMember()); diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/swf4/ActionPush.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/swf4/ActionPush.java index 8060af533..c29232c5f 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/swf4/ActionPush.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/swf4/ActionPush.java @@ -99,10 +99,10 @@ public class ActionPush extends Action { values.add(sis.readFLOAT("float")); break; case 2: - values.add(new Null()); + values.add(Null.INSTANCE); break; case 3: - values.add(new Undefined()); + values.add(Undefined.INSTANCE); break; case 4: values.add(new RegisterNumber(sis.readUI8("registerNumber"))); diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/ecma/EcmaScript.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/ecma/EcmaScript.java index 8c84fe5ae..a3abfd024 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/ecma/EcmaScript.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/ecma/EcmaScript.java @@ -1,18 +1,19 @@ /* * Copyright (C) 2010-2015 JPEXS, All rights reserved. - * + * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 3.0 of the License, or (at your option) any later version. - * + * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public - * License along with this library. */ + * License along with this library. + */ package com.jpexs.decompiler.flash.ecma; /** @@ -93,11 +94,8 @@ public class EcmaScript { if (type(px) != EcmaType.STRING || type(py) != EcmaType.STRING) { Double nx = toNumber(px); Double ny = toNumber(py); - if (nx.isNaN()) { - return new Undefined(); - } - if (ny.isNaN()) { - return new Undefined(); + if (nx.isNaN() || ny.isNaN()) { + return Undefined.INSTANCE; } if ((nx).compareTo(ny) == 0) { return false; diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/ecma/Null.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/ecma/Null.java index cdc4ffd42..c0ea6f10d 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/ecma/Null.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/ecma/Null.java @@ -1,24 +1,30 @@ /* * Copyright (C) 2010-2015 JPEXS, All rights reserved. - * + * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 3.0 of the License, or (at your option) any later version. - * + * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public - * License along with this library. */ + * License along with this library. + */ package com.jpexs.decompiler.flash.ecma; import java.io.Serializable; public class Null implements Serializable { + public static Null INSTANCE = new Null(); + + private Null() { + } + @Override public String toString() { return "null"; diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/ecma/Undefined.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/ecma/Undefined.java index 7644fc27d..3082a190b 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/ecma/Undefined.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/ecma/Undefined.java @@ -1,24 +1,30 @@ /* * Copyright (C) 2010-2015 JPEXS, All rights reserved. - * + * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 3.0 of the License, or (at your option) any later version. - * + * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. - * + * * You should have received a copy of the GNU Lesser General Public - * License along with this library. */ + * License along with this library. + */ package com.jpexs.decompiler.flash.ecma; import java.io.Serializable; public class Undefined implements Serializable { + public static Undefined INSTANCE = new Undefined(); + + private Undefined() { + } + @Override public String toString() { return "undefined"; diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/text/TextLexer.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/text/TextLexer.java index a69cc3a34..ba771f9b5 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/text/TextLexer.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/text/TextLexer.java @@ -22,7 +22,7 @@ package com.jpexs.decompiler.flash.tags.text; * This class is a scanner generated by * JFlex 1.6.0 * from the specification file - * C:/Projects/FFDec/jpexs-decompiler/libsrc/ffdec_lib/lexers/text.flex + * C:/FFDec/jpexs-decompiler/libsrc/ffdec_lib/lexers/text.flex */ public final class TextLexer { @@ -303,7 +303,7 @@ public final class TextLexer { private int zzFinalHighSurrogate = 0; /* user code: */ - StringBuffer string = null; + StringBuilder string = null; boolean finish = false; @@ -696,7 +696,7 @@ public final class TextLexer { switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) { case 1: { if (string == null) { - string = new StringBuffer(); + string = new StringBuilder(); } string.append(yytext()); } @@ -716,7 +716,7 @@ public final class TextLexer { case 3: { if (!parameter) { if (string == null) { - string = new StringBuffer(); + string = new StringBuilder(); } string.append(yytext()); } @@ -752,7 +752,7 @@ public final class TextLexer { break; case 9: { if (string == null) { - string = new StringBuffer(); + string = new StringBuilder(); } string.append(']'); } @@ -760,7 +760,7 @@ public final class TextLexer { break; case 10: { if (string == null) { - string = new StringBuffer(); + string = new StringBuilder(); } string.append('['); } @@ -768,7 +768,7 @@ public final class TextLexer { break; case 11: { if (string == null) { - string = new StringBuffer(); + string = new StringBuilder(); } string.append('\\'); } @@ -776,7 +776,7 @@ public final class TextLexer { break; case 12: { if (string == null) { - string = new StringBuffer(); + string = new StringBuilder(); } string.append('\b'); } @@ -784,7 +784,7 @@ public final class TextLexer { break; case 13: { if (string == null) { - string = new StringBuffer(); + string = new StringBuilder(); } string.append('\t'); } @@ -792,7 +792,7 @@ public final class TextLexer { break; case 14: { if (string == null) { - string = new StringBuffer(); + string = new StringBuilder(); } string.append('\n'); } @@ -800,7 +800,7 @@ public final class TextLexer { break; case 15: { if (string == null) { - string = new StringBuffer(); + string = new StringBuilder(); } string.append('\f'); } @@ -808,7 +808,7 @@ public final class TextLexer { break; case 16: { if (string == null) { - string = new StringBuffer(); + string = new StringBuilder(); } string.append('\r'); } @@ -816,7 +816,7 @@ public final class TextLexer { break; case 17: { if (string == null) { - string = new StringBuffer(); + string = new StringBuilder(); } string.append('\"'); } @@ -824,7 +824,7 @@ public final class TextLexer { break; case 18: { if (string == null) { - string = new StringBuffer(); + string = new StringBuilder(); } string.append('\''); } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/types/annotations/parser/ConditionLexer.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/types/annotations/parser/ConditionLexer.java index e87cfe188..bc1602bb7 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/types/annotations/parser/ConditionLexer.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/types/annotations/parser/ConditionLexer.java @@ -22,8 +22,9 @@ import java.util.Stack; /** * This class is a scanner generated by - * JFlex 1.6.0 from the specification file - * D:/Dropbox/Programovani/JavaSE/FFDec/libsrc/ffdec_lib/lexers/tag_conditions.flex + * JFlex 1.6.0 + * from the specification file + * C:/FFDec/jpexs-decompiler/libsrc/ffdec_lib/lexers/tag_conditions.flex */ public final class ConditionLexer { @@ -44,8 +45,9 @@ public final class ConditionLexer { /** * 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 + * 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 @@ -221,8 +223,8 @@ public final class ConditionLexer { private int zzLexicalState = YYINITIAL; /** - * this buffer contains the current text to be matched and is the source of - * the yytext() string + * this buffer contains the current text to be matched and is + * the source of the yytext() string */ private char zzBuffer[] = new char[ZZ_BUFFERSIZE]; @@ -242,8 +244,8 @@ public final class ConditionLexer { private int zzStartRead; /** - * endRead marks the last character in the buffer, that has been read from - * input + * endRead marks the last character in the buffer, that has been read + * from input */ private int zzEndRead; @@ -279,10 +281,10 @@ public final class ConditionLexer { private boolean zzEOFDone; /** - * The number of occupied positions in zzBuffer beyond zzEndRead. When a - * lead/high surrogate has been read from the input stream into the final - * zzBuffer position, this will have a value of 1; otherwise, it will have a - * value of 0. + * The number of occupied positions in zzBuffer beyond zzEndRead. + * When a lead/high surrogate has been read from the input stream + * into the final zzBuffer position, this will have a value of 1; + * otherwise, it will have a value of 0. */ private int zzFinalHighSurrogate = 0; @@ -413,8 +415,6 @@ public final class ConditionLexer { /** * Closes the input stream. - * - * @throws java.io.IOException */ public final void yyclose() throws java.io.IOException { zzAtEOF = true; /* indicate end of file */ @@ -427,12 +427,12 @@ public final class ConditionLexer { } /** - * Resets the scanner to read from a new input stream. Does not close the - * old reader. + * 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. + * cannot be reused (internal buffer is discarded and lost). + * Lexical state is set to ZZ_INITIAL. * * Internal scan buffer is resized down to its initial length, if it has * grown. @@ -456,8 +456,6 @@ public final class ConditionLexer { /** * Returns the current lexical state. - * - * @return */ public final int yystate() { return zzLexicalState; @@ -474,20 +472,19 @@ public final class ConditionLexer { /** * Returns the text matched by the current regular expression. - * - * @return */ public final String yytext() { return new String(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead); } /** - * Returns the character at position pos from the matched text. + * 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. + * @param pos the position of the character to fetch. + * A value from 0 to yylength()-1. * * @return the character at position pos */ @@ -497,8 +494,6 @@ public final class ConditionLexer { /** * Returns the length of the matched text region. - * - * @return */ public final int yylength() { return zzMarkedPos - zzStartRead; @@ -507,13 +502,14 @@ public final class ConditionLexer { /** * 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.). + * 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. + * Usual syntax/scanner level error handling should be done + * in error fallback rules. * * @param errorCode the code of the errormessage to display */ @@ -533,8 +529,8 @@ public final class ConditionLexer { * * 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()! + * @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()) { @@ -545,13 +541,11 @@ public final class ConditionLexer { } /** - * Resumes scanning until the next regular expression is matched, the end of - * input is encountered or an I/O-Error occurs. + * 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 - * @throws - * com.jpexs.decompiler.flash.types.annotations.parser.AnnotationParseException */ public ConditionToken yylex() throws java.io.IOException, AnnotationParseException { int zzInput; diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/graph/model/NotItem.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/graph/model/NotItem.java index ec7619b0b..3459e515a 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/graph/model/NotItem.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/graph/model/NotItem.java @@ -39,14 +39,12 @@ public class NotItem extends UnaryOpItem implements LogicalOpItem, Inverted { @Override public Object getResult() { - Object ret = EcmaScript.toBoolean(value.getResult()); - if (ret == Boolean.TRUE) { + boolean ret = EcmaScript.toBoolean(value.getResult()); + if (ret) { return Boolean.FALSE; - } - if (ret == Boolean.FALSE) { + } else { return Boolean.TRUE; } - return ret; } @Override diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/graph/model/PopItem.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/graph/model/PopItem.java index dd6aad9ac..3dad4cf8a 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/graph/model/PopItem.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/graph/model/PopItem.java @@ -51,6 +51,6 @@ public class PopItem extends GraphTargetItem { @Override public Object getResult() { - return new Null(); + return Null.INSTANCE; } } diff --git a/libsrc/jsyntaxpane/jsyntaxpane/src/main/java/jsyntaxpane/SyntaxDocument.java b/libsrc/jsyntaxpane/jsyntaxpane/src/main/java/jsyntaxpane/SyntaxDocument.java index 3147e1363..fcc5bed2b 100644 --- a/libsrc/jsyntaxpane/jsyntaxpane/src/main/java/jsyntaxpane/SyntaxDocument.java +++ b/libsrc/jsyntaxpane/jsyntaxpane/src/main/java/jsyntaxpane/SyntaxDocument.java @@ -41,6 +41,7 @@ public class SyntaxDocument extends PlainDocument { Lexer lexer; List tokens; CompoundUndoMan undo; + boolean ignoreUpdate; public SyntaxDocument(Lexer lexer) { super(); @@ -62,12 +63,12 @@ public class SyntaxDocument extends PlainDocument { tokens = null; return; } - List toks = new ArrayList(getLength() / 10); - long ts = System.nanoTime(); int len = getLength(); + List toks = new ArrayList(len / 10); + long ts = System.nanoTime(); try { Segment seg = new Segment(); - getText(0, getLength(), seg); + getText(0, len, seg); lexer.parse(seg, 0, toks); } catch (BadLocationException ex) { log.log(Level.SEVERE, null, ex); @@ -88,6 +89,9 @@ public class SyntaxDocument extends PlainDocument { @Override protected void fireInsertUpdate(DocumentEvent e) { + if (ignoreUpdate) { + return; + } parse(); super.fireInsertUpdate(e); } @@ -98,6 +102,13 @@ public class SyntaxDocument extends PlainDocument { super.fireRemoveUpdate(e); } + public void setIgnoreUpdate(boolean value) { + ignoreUpdate = value; + if (!ignoreUpdate) { + parse(); + } + } + /** * Replace the token with the replacement string * @param token diff --git a/libsrc/jsyntaxpane/jsyntaxpane/src/main/java/jsyntaxpane/components/LineNumbersRuler.java b/libsrc/jsyntaxpane/jsyntaxpane/src/main/java/jsyntaxpane/components/LineNumbersRuler.java index 81c568760..e7ff36525 100644 --- a/libsrc/jsyntaxpane/jsyntaxpane/src/main/java/jsyntaxpane/components/LineNumbersRuler.java +++ b/libsrc/jsyntaxpane/jsyntaxpane/src/main/java/jsyntaxpane/components/LineNumbersRuler.java @@ -21,6 +21,7 @@ import java.awt.FontMetrics; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Insets; +import java.awt.Rectangle; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; @@ -221,9 +222,18 @@ public class LineNumbersRuler extends JPanel int maxLines = ActionUtils.getLineCount(editor); SyntaxView.setRenderingHits((Graphics2D) g); + Rectangle bounds = g.getClipBounds(); + int minY = bounds.y; + int maxY = minY + bounds.height; for (int line = 1; line <= maxLines; line++) { - String lineNumber = String.format(numbersFormat, line); int y = line * lh; + if (y < minY) { + continue; + } + if (y - lh > maxY) { + break; + } + String lineNumber = String.format(numbersFormat, line); if (line == currentLine) { g.setColor(currentLineColor); g.fillRect(0, y - lh + fontMetrics.getDescent() - 1, getWidth(), lh); diff --git a/libsrc/jsyntaxpane/jsyntaxpane/src/main/jflex/jsyntaxpane/lexers/actionscript.flex b/libsrc/jsyntaxpane/jsyntaxpane/src/main/jflex/jsyntaxpane/lexers/actionscript.flex index a2010d674..05e7c9c0c 100644 --- a/libsrc/jsyntaxpane/jsyntaxpane/src/main/jflex/jsyntaxpane/lexers/actionscript.flex +++ b/libsrc/jsyntaxpane/jsyntaxpane/src/main/jflex/jsyntaxpane/lexers/actionscript.flex @@ -355,6 +355,6 @@ Preprocessor = \u00A7\u00A7 {Identifier} } /* error fallback */ -.|\n { } +[^] { } <> { return null; } diff --git a/libsrc/jsyntaxpane/jsyntaxpane/src/main/jflex/jsyntaxpane/lexers/flasm.flex b/libsrc/jsyntaxpane/jsyntaxpane/src/main/jflex/jsyntaxpane/lexers/flasm.flex index d96155438..dd0017c8c 100644 --- a/libsrc/jsyntaxpane/jsyntaxpane/src/main/jflex/jsyntaxpane/lexers/flasm.flex +++ b/libsrc/jsyntaxpane/jsyntaxpane/src/main/jflex/jsyntaxpane/lexers/flasm.flex @@ -18,7 +18,7 @@ import jsyntaxpane.TokenType; %{ - StringBuffer string = new StringBuffer(); + StringBuilder string = new StringBuilder(); /** @@ -150,5 +150,5 @@ Constant= constant{NumberLiteral} } /* error fallback */ -.|\n { } +[^] { } <> { return null; } diff --git a/libsrc/jsyntaxpane/jsyntaxpane/src/main/jflex/jsyntaxpane/lexers/flasm3.flex b/libsrc/jsyntaxpane/jsyntaxpane/src/main/jflex/jsyntaxpane/lexers/flasm3.flex index 8482afaa9..f753135b2 100644 --- a/libsrc/jsyntaxpane/jsyntaxpane/src/main/jflex/jsyntaxpane/lexers/flasm3.flex +++ b/libsrc/jsyntaxpane/jsyntaxpane/src/main/jflex/jsyntaxpane/lexers/flasm3.flex @@ -19,7 +19,7 @@ import jsyntaxpane.TokenType; %{ - StringBuffer string = new StringBuffer(); + StringBuilder string = new StringBuilder(); boolean isMultiname=false; @@ -249,5 +249,5 @@ ExceptionTarget = "exceptiontarget "{PositiveNumberLiteral}":" } /* error fallback */ -.|\n { } +[^] { } <> { return null; } diff --git a/libsrc/jsyntaxpane/jsyntaxpane/src/main/jflex/jsyntaxpane/lexers/flasm3_methodinfo.flex b/libsrc/jsyntaxpane/jsyntaxpane/src/main/jflex/jsyntaxpane/lexers/flasm3_methodinfo.flex index 21d8e4f0c..8d02278db 100644 --- a/libsrc/jsyntaxpane/jsyntaxpane/src/main/jflex/jsyntaxpane/lexers/flasm3_methodinfo.flex +++ b/libsrc/jsyntaxpane/jsyntaxpane/src/main/jflex/jsyntaxpane/lexers/flasm3_methodinfo.flex @@ -18,7 +18,7 @@ import jsyntaxpane.TokenType; %{ - StringBuffer string = new StringBuffer(); + StringBuilder string = new StringBuilder(); boolean isMultiname=false; @@ -146,5 +146,5 @@ StringCharacter = [^\r\n\"\\] } /* error fallback */ -.|\n { } +[^] { } <> { return null; } \ No newline at end of file diff --git a/libsrc/jsyntaxpane/jsyntaxpane/src/main/jflex/jsyntaxpane/lexers/swftext.flex b/libsrc/jsyntaxpane/jsyntaxpane/src/main/jflex/jsyntaxpane/lexers/swftext.flex index e642aa865..354d7fec1 100644 --- a/libsrc/jsyntaxpane/jsyntaxpane/src/main/jflex/jsyntaxpane/lexers/swftext.flex +++ b/libsrc/jsyntaxpane/jsyntaxpane/src/main/jflex/jsyntaxpane/lexers/swftext.flex @@ -18,7 +18,7 @@ import jsyntaxpane.TokenType; %{ - StringBuffer string = new StringBuffer(); + StringBuilder string = new StringBuilder(); private int tokenStart = -1; private static final byte BRACKET = 1; @@ -89,5 +89,5 @@ Divider = [ \r\n]+ } /* error fallback */ -.|\n { } +[^] { } <> { return null; } diff --git a/src/com/jpexs/decompiler/flash/gui/editor/UndoFixedEditorPane.java b/src/com/jpexs/decompiler/flash/gui/editor/UndoFixedEditorPane.java index 7db2c3703..21c4947c6 100644 --- a/src/com/jpexs/decompiler/flash/gui/editor/UndoFixedEditorPane.java +++ b/src/com/jpexs/decompiler/flash/gui/editor/UndoFixedEditorPane.java @@ -123,12 +123,19 @@ public class UndoFixedEditorPane extends JEditorPane { Stopwatch sw = Stopwatch.startNew(); try { - Document doc = getDocument(); - setDocument(new SyntaxDocument(null)); - doc.remove(0, doc.getLength()); Reader r = new StringReader(t); EditorKit kit = createEditorKitForContentType(contentType); + Document doc = kit.createDefaultDocument(); + if (doc instanceof SyntaxDocument) { + ((SyntaxDocument) doc).setIgnoreUpdate(true); + } + kit.read(r, doc, 0); + + if (doc instanceof SyntaxDocument) { + ((SyntaxDocument) doc).setIgnoreUpdate(false); + } + setDocument(doc); } catch (BadLocationException | IOException ex) { Logger.getLogger(UndoFixedEditorPane.class.getName()).log(Level.SEVERE, null, ex);