diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/IdentifiersDeobfuscation.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/IdentifiersDeobfuscation.java index 454ac38ee..1473580c8 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/IdentifiersDeobfuscation.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/IdentifiersDeobfuscation.java @@ -299,6 +299,7 @@ public class IdentifiersDeobfuscation { /** * Ensures identifier is valid and if not, uses paragraph syntax * + * @param as3 Is ActionScript3 * @param s Identifier * @param validExceptions Exceptions which are valid (e.g. some reserved * words) 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 6632585dd..58accef09 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/SWF.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/SWF.java @@ -27,7 +27,6 @@ import com.jpexs.decompiler.flash.action.Action; import com.jpexs.decompiler.flash.action.ActionGraphSource; import com.jpexs.decompiler.flash.action.ActionList; import com.jpexs.decompiler.flash.action.ActionLocalData; -import com.jpexs.decompiler.flash.IdentifiersDeobfuscation; import com.jpexs.decompiler.flash.action.model.ConstantPool; import com.jpexs.decompiler.flash.action.model.DirectValueActionItem; import com.jpexs.decompiler.flash.action.model.FunctionActionItem; @@ -276,6 +275,17 @@ public final class SWF implements SWFContainerItem, Timelined { parseCharacters(new ArrayList(tags)); } + public int getNextCharacterId() { + int max = -1; + for (int characterId : characters.keySet()) { + if (characterId > max) { + max = characterId; + } + } + + return max + 1; + } + public void resetTimelines(Timelined timelined) { timelined.getTimeline().reset(); for (Tag t : timelined.getTimeline().tags) { diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/AVM2Code.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/AVM2Code.java index 85b482902..61e9cb435 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/AVM2Code.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/AVM2Code.java @@ -214,7 +214,6 @@ import com.jpexs.decompiler.flash.abc.types.traits.TraitFunction; import com.jpexs.decompiler.flash.abc.types.traits.TraitMethodGetterSetter; import com.jpexs.decompiler.flash.abc.types.traits.TraitSlotConst; import com.jpexs.decompiler.flash.abc.types.traits.Traits; -import com.jpexs.decompiler.flash.IdentifiersDeobfuscation; import com.jpexs.decompiler.flash.configuration.Configuration; import com.jpexs.decompiler.flash.dumpview.DumpInfo; import com.jpexs.decompiler.flash.ecma.EcmaScript; diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/model/AVM2Item.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/model/AVM2Item.java index 38966a01a..a3501314b 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/model/AVM2Item.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/model/AVM2Item.java @@ -16,12 +16,12 @@ */ package com.jpexs.decompiler.flash.abc.avm2.model; +import com.jpexs.decompiler.flash.IdentifiersDeobfuscation; import com.jpexs.decompiler.flash.SourceGeneratorLocalData; import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction; import com.jpexs.decompiler.flash.abc.avm2.instructions.InstructionDefinition; import com.jpexs.decompiler.flash.abc.avm2.instructions.stack.PopIns; import com.jpexs.decompiler.flash.abc.avm2.parser.script.AVM2SourceGenerator; -import com.jpexs.decompiler.flash.IdentifiersDeobfuscation; import com.jpexs.decompiler.flash.configuration.Configuration; import com.jpexs.decompiler.flash.helpers.GraphTextWriter; import com.jpexs.decompiler.graph.CompilationException; diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/pcode/flasm3.flex b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/pcode/flasm3.flex index 1bf827d08..25cb9ced9 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/pcode/flasm3.flex +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/pcode/flasm3.flex @@ -19,8 +19,8 @@ import java.util.Stack; %{ StringBuffer string = new StringBuffer(); - boolean isMultiname=false; - long multinameId=0; + boolean isMultiname = false; + long multinameId = 0; /** @@ -36,12 +36,12 @@ import java.util.Stack; } public int yyline() { - return yyline+1; + return yyline + 1; } - private Stack pushedBack=new Stack<>(); + private Stack pushedBack = new Stack<>(); public void pushback(ParsedSymbol symb) { @@ -50,7 +50,7 @@ import java.util.Stack; } ParsedSymbol last; public ParsedSymbol lex() throws java.io.IOException, ParseException{ - ParsedSymbol ret=null; + ParsedSymbol ret = null; if(!pushedBack.isEmpty()){ ret = last = pushedBack.pop(); }else{ @@ -115,137 +115,137 @@ ExceptionTarget = "exceptiontarget "{PositiveNumberLiteral}":" {ExceptionStart} { String s=yytext(); - return new ParsedSymbol(ParsedSymbol.TYPE_EXCEPTION_START,Integer.parseInt(s.substring(15,s.length()-1))); + return new ParsedSymbol(ParsedSymbol.TYPE_EXCEPTION_START, Integer.parseInt(s.substring(15, s.length() - 1))); } {ExceptionEnd} { String s=yytext(); - return new ParsedSymbol(ParsedSymbol.TYPE_EXCEPTION_END,Integer.parseInt(s.substring(13,s.length()-1))); + return new ParsedSymbol(ParsedSymbol.TYPE_EXCEPTION_END, Integer.parseInt(s.substring(13, s.length() - 1))); } {ExceptionTarget} { String s=yytext(); - return new ParsedSymbol(ParsedSymbol.TYPE_EXCEPTION_TARGET,Integer.parseInt(s.substring(16,s.length()-1))); + return new ParsedSymbol(ParsedSymbol.TYPE_EXCEPTION_TARGET,Integer.parseInt(s.substring(16, s.length() - 1))); } {Label} { - String s=yytext(); - return new ParsedSymbol(ParsedSymbol.TYPE_LABEL,s.substring(0,s.length()-1)); + String s = yytext(); + return new ParsedSymbol(ParsedSymbol.TYPE_LABEL, s.substring(0,s.length() - 1)); } - "name" { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_NAME,yytext());} - "try" { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_TRY,yytext());} - "flag" { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_FLAG,yytext());} - "param" { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_PARAM,yytext());} - "paramname" { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_PARAMNAME,yytext());} - "optional" { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_OPTIONAL,yytext());} - "returns" { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_RETURNS,yytext());} - "body" { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_BODY,yytext());} - "maxstack" { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_MAXSTACK,yytext());} - "localcount" { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_LOCALCOUNT,yytext());} - "initscopedepth" { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_INITSCOPEDEPTH,yytext());} - "maxscopedepth" { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_MAXSCOPEDEPTH,yytext());} - "code" { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_CODE,yytext());} - "trait" { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_TRAIT,yytext());} - "method" { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_METHOD,yytext());} + "name" { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_NAME, yytext());} + "try" { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_TRY, yytext());} + "flag" { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_FLAG, yytext());} + "param" { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_PARAM, yytext());} + "paramname" { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_PARAMNAME, yytext());} + "optional" { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_OPTIONAL, yytext());} + "returns" { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_RETURNS, yytext());} + "body" { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_BODY, yytext());} + "maxstack" { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_MAXSTACK, yytext());} + "localcount" { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_LOCALCOUNT, yytext());} + "initscopedepth" { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_INITSCOPEDEPTH, yytext());} + "maxscopedepth" { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_MAXSCOPEDEPTH, yytext());} + "code" { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_CODE, yytext());} + "trait" { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_TRAIT, yytext());} + "method" { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_METHOD, yytext());} /* identifiers */ {InstructionName} { yybegin(PARAMETERS); - return new ParsedSymbol(ParsedSymbol.TYPE_INSTRUCTION_NAME,yytext()); + return new ParsedSymbol(ParsedSymbol.TYPE_INSTRUCTION_NAME, yytext()); } } { /* string literal */ \" { - isMultiname=false; + isMultiname = false; yybegin(STRING); string.setLength(0); } {Multiname}\" { - isMultiname=true; - String s=yytext(); - multinameId=Long.parseLong(s.substring(2,s.length()-2)); + isMultiname = true; + String s = yytext(); + multinameId = Long.parseLong(s.substring(2, s.length() - 2)); yybegin(STRING); string.setLength(0); } /* multinames */ - "QName" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_QNAME,yytext());} - "QNameA" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_QNAMEA,yytext());} - "RTQName" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_RTQNAME,yytext());} - "RTQNameA" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_RTQNAMEA,yytext());} - "RTQNameL" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_RTQNAMEL,yytext());} - "RTQNameLA" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_RTQNAMELA,yytext());} - "Multiname" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_MULTINAME,yytext());} - "MultinameA" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_MULTINAMEA,yytext());} - "MultinameL" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_MULTINAMEL,yytext());} - "MultinameLA" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_MULTINAMELA,yytext());} - "TypeName" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_TYPENAME,yytext());} - "null" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_NULL,yytext());} - "(" { return new ParsedSymbol(ParsedSymbol.TYPE_PARENT_OPEN,yytext());} - ")" { return new ParsedSymbol(ParsedSymbol.TYPE_PARENT_CLOSE,yytext());} - "[" { return new ParsedSymbol(ParsedSymbol.TYPE_BRACKET_OPEN,yytext());} - "]" { return new ParsedSymbol(ParsedSymbol.TYPE_BRACKET_CLOSE,yytext());} - "<" { return new ParsedSymbol(ParsedSymbol.TYPE_LOWERTHAN,yytext());} - ">" { return new ParsedSymbol(ParsedSymbol.TYPE_GREATERTHAN,yytext());} - "Namespace" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_NAMESPACE,yytext());} - "PrivateNamespace" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_PRIVATENAMESPACE,yytext());} - "PackageNamespace" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_PACKAGENAMESPACE,yytext());} - "PackageInternalNs" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_PACKAGEINTERNALNS,yytext());} - "ProtectedNamespace" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_PROTECTEDNAMESPACE,yytext());} - "ExplicitNamespace" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_EXPLICITNAMESPACE,yytext());} - "StaticProtectedNs" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_STATICPROTECTEDNS,yytext());} - "," { return new ParsedSymbol(ParsedSymbol.TYPE_COMMA,yytext());} + "QName" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_QNAME, yytext());} + "QNameA" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_QNAMEA, yytext());} + "RTQName" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_RTQNAME, yytext());} + "RTQNameA" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_RTQNAMEA, yytext());} + "RTQNameL" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_RTQNAMEL, yytext());} + "RTQNameLA" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_RTQNAMELA, yytext());} + "Multiname" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_MULTINAME, yytext());} + "MultinameA" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_MULTINAMEA, yytext());} + "MultinameL" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_MULTINAMEL, yytext());} + "MultinameLA" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_MULTINAMELA, yytext());} + "TypeName" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_TYPENAME, yytext());} + "null" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_NULL, yytext());} + "(" { return new ParsedSymbol(ParsedSymbol.TYPE_PARENT_OPEN, yytext());} + ")" { return new ParsedSymbol(ParsedSymbol.TYPE_PARENT_CLOSE, yytext());} + "[" { return new ParsedSymbol(ParsedSymbol.TYPE_BRACKET_OPEN, yytext());} + "]" { return new ParsedSymbol(ParsedSymbol.TYPE_BRACKET_CLOSE, yytext());} + "<" { return new ParsedSymbol(ParsedSymbol.TYPE_LOWERTHAN, yytext());} + ">" { return new ParsedSymbol(ParsedSymbol.TYPE_GREATERTHAN, yytext());} + "Namespace" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_NAMESPACE, yytext());} + "PrivateNamespace" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_PRIVATENAMESPACE, yytext());} + "PackageNamespace" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_PACKAGENAMESPACE, yytext());} + "PackageInternalNs" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_PACKAGEINTERNALNS, yytext());} + "ProtectedNamespace" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_PROTECTEDNAMESPACE, yytext());} + "ExplicitNamespace" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_EXPLICITNAMESPACE, yytext());} + "StaticProtectedNs" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_STATICPROTECTEDNS, yytext());} + "," { return new ParsedSymbol(ParsedSymbol.TYPE_COMMA, yytext());} /*Try*/ - "from" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_FROM,yytext());} - "to" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_TO,yytext());} - "target" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_TARGET,yytext());} - "name" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_NAME,yytext());} - "type" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_TYPE,yytext());} + "from" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_FROM, yytext());} + "to" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_TO, yytext());} + "target" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_TARGET, yytext());} + "name" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_NAME, yytext());} + "type" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_TYPE, yytext());} - "slot" { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_SLOT,yytext());} - "const" { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_CONST,yytext());} - "method" { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_METHOD,yytext());} - "getter" { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_GETTER,yytext());} - "setter" { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_SETTER,yytext());} - "class" { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_CLASS,yytext());} - "function" { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_FUNCTION,yytext());} - "dispid" { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_DISPID,yytext());} - "slotid" { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_SLOTID,yytext());} - "value" { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_VALUE,yytext());} + "slot" { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_SLOT, yytext());} + "const" { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_CONST, yytext());} + "method" { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_METHOD, yytext());} + "getter" { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_GETTER, yytext());} + "setter" { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_SETTER, yytext());} + "class" { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_CLASS, yytext());} + "function" { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_FUNCTION, yytext());} + "dispid" { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_DISPID, yytext());} + "slotid" { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_SLOTID, yytext());} + "value" { yybegin(PARAMETERS); return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_VALUE, yytext());} /*Flags*/ - "EXPLICIT" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_EXPLICIT,yytext());} - "HAS_OPTIONAL" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_HAS_OPTIONAL,yytext());} - "HAS_PARAM_NAMES" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_HAS_PARAM_NAMES,yytext());} - "IGNORE_REST" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_IGNORE_REST,yytext());} - "NEED_ACTIVATION" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_NEED_ACTIVATION,yytext());} - "NEED_ARGUMENTS" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_NEED_ARGUMENTS,yytext());} - "NEED_REST" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_NEED_REST,yytext());} - "SET_DXNS" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_SET_DXNS,yytext());} + "EXPLICIT" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_EXPLICIT, yytext());} + "HAS_OPTIONAL" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_HAS_OPTIONAL, yytext());} + "HAS_PARAM_NAMES" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_HAS_PARAM_NAMES, yytext());} + "IGNORE_REST" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_IGNORE_REST, yytext());} + "NEED_ACTIVATION" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_NEED_ACTIVATION, yytext());} + "NEED_ARGUMENTS" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_NEED_ARGUMENTS, yytext());} + "NEED_REST" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_NEED_REST, yytext());} + "SET_DXNS" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_SET_DXNS, yytext());} /* Value types*/ - "Integer" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_INTEGER,yytext());} - "UInteger" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_UINTEGER,yytext());} - "Double" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_DOUBLE,yytext());} - "Decimal" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_DECIMAL,yytext());} - "Utf8" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_UTF8,yytext());} - "True" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_TRUE,yytext());} - "False" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_FALSE,yytext());} - "Undefined" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_UNDEFINED,yytext());} + "Integer" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_INTEGER, yytext());} + "UInteger" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_UINTEGER, yytext());} + "Double" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_DOUBLE, yytext());} + "Decimal" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_DECIMAL, yytext());} + "Utf8" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_UTF8, yytext());} + "True" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_TRUE, yytext());} + "False" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_FALSE, yytext());} + "Undefined" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_UNDEFINED, yytext());} - "FINAL" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_FINAL,yytext());} - "OVERRIDE" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_OVERRIDE,yytext());} - "METADATA" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_METADATA,yytext());} + "FINAL" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_FINAL, yytext());} + "OVERRIDE" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_OVERRIDE, yytext());} + "METADATA" { return new ParsedSymbol(ParsedSymbol.TYPE_KEYWORD_METADATA, yytext());} /* numeric literals */ {NumberLiteral} { return new ParsedSymbol(ParsedSymbol.TYPE_INTEGER,new Long(Long.parseLong((yytext())))); } {FloatLiteral} { return new ParsedSymbol(ParsedSymbol.TYPE_FLOAT,new Double(Double.parseDouble((yytext())))); } - {Identifier} { return new ParsedSymbol(ParsedSymbol.TYPE_IDENTIFIER,yytext()); } + {Identifier} { return new ParsedSymbol(ParsedSymbol.TYPE_IDENTIFIER, yytext()); } {LineTerminator} {yybegin(YYINITIAL);} - {Comment} {return new ParsedSymbol(ParsedSymbol.TYPE_COMMENT,yytext().substring(1));} + {Comment} {return new ParsedSymbol(ParsedSymbol.TYPE_COMMENT, yytext().substring(1));} } { @@ -253,9 +253,9 @@ ExceptionTarget = "exceptiontarget "{PositiveNumberLiteral}":" yybegin(PARAMETERS); // length also includes the trailing quote if(isMultiname){ - return new ParsedSymbol(ParsedSymbol.TYPE_MULTINAME,new Long(multinameId)); + return new ParsedSymbol(ParsedSymbol.TYPE_MULTINAME, new Long(multinameId)); }else{ - return new ParsedSymbol(ParsedSymbol.TYPE_STRING,string.toString()); + return new ParsedSymbol(ParsedSymbol.TYPE_STRING, string.toString()); } } @@ -274,8 +274,8 @@ ExceptionTarget = "exceptiontarget "{PositiveNumberLiteral}":" string.append( val ); } /* error cases */ - \\. { throw new ParseException("Illegal escape sequence \""+yytext()+"\"",yyline+1); } - {LineTerminator} { throw new ParseException("Unterminated string at end of line",yyline+1); } + \\. { throw new ParseException("Illegal escape sequence \"" + yytext() + "\"", yyline + 1); } + {LineTerminator} { throw new ParseException("Unterminated string at end of line", yyline + 1); } } 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 f73c6323f..7e04800a9 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 @@ -18,10 +18,10 @@ */ package com.jpexs.decompiler.flash.abc.avm2.parser.script; import com.jpexs.decompiler.flash.abc.avm2.parser.AVM2ParseException; -import java.util.Stack; -import java.util.List; -import java.util.ArrayList; import java.io.StringReader; +import java.util.ArrayList; +import java.util.List; +import java.util.Stack; /** @@ -970,7 +970,7 @@ public final class ActionScriptLexer { return yychar; } - private Stack pushedBack=new Stack(); + private Stack pushedBack=new Stack<>(); public int yyline() { return yyline+1; @@ -1108,6 +1108,7 @@ public final class ActionScriptLexer { /** * Closes the input stream. + * @throws java.io.IOException */ public final void yyclose() throws java.io.IOException { zzAtEOF = true; /* indicate end of file */ @@ -1147,6 +1148,7 @@ public final class ActionScriptLexer { /** * Returns the current lexical state. + * @return */ public final int yystate() { return zzLexicalState; @@ -1165,6 +1167,7 @@ public final class ActionScriptLexer { /** * Returns the text matched by the current regular expression. + * @return */ public final String yytext() { return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead ); @@ -1189,6 +1192,7 @@ public final class ActionScriptLexer { /** * Returns the length of the matched text region. + * @return */ public final int yylength() { return zzMarkedPos-zzStartRead; @@ -1244,6 +1248,7 @@ public final class ActionScriptLexer { * * @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; @@ -1339,11 +1344,11 @@ public final class ActionScriptLexer { } case 164: break; case 4: - { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.DIVIDE,yytext()); + { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.DIVIDE, yytext()); } case 165: break; case 5: - { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.MULTIPLY,yytext()); + { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.MULTIPLY, yytext()); } case 166: break; case 6: @@ -1351,47 +1356,47 @@ public final class ActionScriptLexer { } case 167: break; case 7: - { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.DOT,yytext()); + { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.DOT, yytext()); } case 168: break; case 8: - { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.LOWER_THAN,yytext()); + { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.LOWER_THAN, yytext()); } case 169: break; case 9: - { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.NOT,yytext()); + { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.NOT, yytext()); } case 170: break; case 10: - { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.MINUS,yytext()); + { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.MINUS, yytext()); } case 171: break; case 11: - { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.GREATER_THAN,yytext()); + { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.GREATER_THAN, yytext()); } case 172: break; case 12: - { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.COLON,yytext()); + { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.COLON, yytext()); } case 173: break; case 13: - { return new ParsedSymbol(SymbolGroup.INTEGER,SymbolType.INTEGER,new Long(Long.parseLong((yytext())))); + { return new ParsedSymbol(SymbolGroup.INTEGER,SymbolType.INTEGER,Long.parseLong((yytext()))); } case 174: break; case 14: - { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.TERNAR,yytext()); + { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.TERNAR, yytext()); } case 175: break; case 15: - { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.BRACKET_OPEN,yytext()); + { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.BRACKET_OPEN, yytext()); } case 176: break; case 16: - { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.BRACKET_CLOSE,yytext()); + { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.BRACKET_CLOSE, yytext()); } case 177: break; case 17: - { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN,yytext()); + { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN, yytext()); } case 178: break; case 18: @@ -1405,7 +1410,7 @@ public final class ActionScriptLexer { } case 180: break; case 20: - { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.PLUS,yytext()); + { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.PLUS, yytext()); } case 181: break; case 21: @@ -1414,51 +1419,51 @@ public final class ActionScriptLexer { } case 182: break; case 22: - { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.PARENT_OPEN,yytext()); + { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.PARENT_OPEN, yytext()); } case 183: break; case 23: - { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.PARENT_CLOSE,yytext()); + { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.PARENT_CLOSE, yytext()); } case 184: break; case 24: - { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.CURLY_OPEN,yytext()); + { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.CURLY_OPEN, yytext()); } case 185: break; case 25: - { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.CURLY_CLOSE,yytext()); + { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.CURLY_CLOSE, yytext()); } case 186: break; case 26: - { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.SEMICOLON,yytext()); + { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.SEMICOLON, yytext()); } case 187: break; case 27: - { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.COMMA,yytext()); + { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.COMMA, yytext()); } case 188: break; case 28: - { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.NEGATE,yytext()); + { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.NEGATE, yytext()); } case 189: break; case 29: - { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.BITAND,yytext()); + { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.BITAND, yytext()); } case 190: break; case 30: - { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.BITOR,yytext()); + { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.BITOR, yytext()); } case 191: break; case 31: - { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.XOR,yytext()); + { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.XOR, yytext()); } case 192: break; case 32: - { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.MODULO,yytext()); + { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.MODULO, yytext()); } case 193: break; case 33: - { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ATTRIBUTE,yytext()); + { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ATTRIBUTE, yytext()); } case 194: break; case 34: @@ -1540,31 +1545,31 @@ public final class ActionScriptLexer { } case 206: break; case 46: - { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_DIVIDE,yytext()); + { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_DIVIDE, yytext()); } case 207: break; case 47: - { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_MULTIPLY,yytext()); + { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_MULTIPLY, yytext()); } case 208: break; case 48: - { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.DESCENDANTS,yytext()); + { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.DESCENDANTS, yytext()); } case 209: break; case 49: - { return new ParsedSymbol(SymbolGroup.TYPENAME,SymbolType.TYPENAME,yytext()); + { return new ParsedSymbol(SymbolGroup.TYPENAME,SymbolType.TYPENAME, yytext()); } case 210: break; case 50: - { return new ParsedSymbol(SymbolGroup.DOUBLE,SymbolType.DOUBLE,new Double(Double.parseDouble((yytext())))); + { return new ParsedSymbol(SymbolGroup.DOUBLE,SymbolType.DOUBLE,Double.parseDouble((yytext()))); } case 211: break; case 51: - { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.FILTER,yytext()); + { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.FILTER, yytext()); } case 212: break; case 52: - { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.SHIFT_LEFT,yytext()); + { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.SHIFT_LEFT, yytext()); } case 213: break; case 53: @@ -1574,7 +1579,7 @@ public final class ActionScriptLexer { } case 214: break; case 54: - { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.LOWER_EQUAL,yytext()); + { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.LOWER_EQUAL, yytext()); } case 215: break; case 55: @@ -1582,87 +1587,87 @@ public final class ActionScriptLexer { } case 216: break; case 56: - { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.NOT_EQUAL,yytext()); + { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.NOT_EQUAL, yytext()); } case 217: break; case 57: - { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.DECREMENT,yytext()); + { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.DECREMENT, yytext()); } case 218: break; case 58: - { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_MINUS,yytext()); + { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_MINUS, yytext()); } case 219: break; case 59: - { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.SHIFT_RIGHT,yytext()); + { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.SHIFT_RIGHT, yytext()); } case 220: break; case 60: - { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.GREATER_EQUAL,yytext()); + { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.GREATER_EQUAL, yytext()); } case 221: break; case 61: - { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.NAMESPACE_OP,yytext()); + { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.NAMESPACE_OP, yytext()); } case 222: break; case 62: - { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.EQUALS,yytext()); + { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.EQUALS, yytext()); } case 223: break; case 63: - { return new ParsedSymbol(SymbolGroup.INTEGER,SymbolType.INTEGER,new Long(Long.parseLong(yytext(),8))); + { return new ParsedSymbol(SymbolGroup.INTEGER,SymbolType.INTEGER,Long.parseLong(yytext(),8)); } case 224: break; case 64: - { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_PLUS,yytext()); + { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_PLUS, yytext()); } case 225: break; case 65: - { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.INCREMENT,yytext()); + { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.INCREMENT, yytext()); } case 226: break; case 66: - { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.AS,yytext()); + { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.AS, yytext()); } case 227: break; case 67: - { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.IF,yytext()); + { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.IF, yytext()); } case 228: break; case 68: - { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.IS,yytext()); + { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.IS, yytext()); } case 229: break; case 69: - { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.IN,yytext()); + { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.IN, yytext()); } case 230: break; case 70: - { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.DO,yytext()); + { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.DO, yytext()); } case 231: break; case 71: - { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_BITAND,yytext()); + { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_BITAND, yytext()); } case 232: break; case 72: - { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.AND,yytext()); + { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.AND, yytext()); } case 233: break; case 73: - { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_BITOR,yytext()); + { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_BITOR, yytext()); } case 234: break; case 74: - { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.OR,yytext()); + { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.OR, yytext()); } case 235: break; case 75: - { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_XOR,yytext()); + { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_XOR, yytext()); } case 236: break; case 76: - { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_MODULO,yytext()); + { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_MODULO, yytext()); } case 237: break; case 77: @@ -1777,63 +1782,63 @@ public final class ActionScriptLexer { } case 255: break; case 95: - { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.REST,yytext()); + { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.REST, yytext()); } case 256: break; case 96: - { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_SHIFT_LEFT,yytext()); + { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_SHIFT_LEFT, yytext()); } case 257: break; case 97: - { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.STRICT_NOT_EQUAL,yytext()); + { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.STRICT_NOT_EQUAL, yytext()); } case 258: break; case 98: - { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.USHIFT_RIGHT,yytext()); + { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.USHIFT_RIGHT, yytext()); } case 259: break; case 99: - { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_SHIFT_RIGHT,yytext()); + { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_SHIFT_RIGHT, yytext()); } case 260: break; case 100: - { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.STRICT_EQUALS,yytext()); + { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.STRICT_EQUALS, yytext()); } case 261: break; case 101: - { return new ParsedSymbol(SymbolGroup.INTEGER,SymbolType.INTEGER,new Long(Long.parseLong(yytext().substring(2),16))); + { return new ParsedSymbol(SymbolGroup.INTEGER,SymbolType.INTEGER,Long.parseLong(yytext().substring(2),16)); } case 262: break; case 102: - { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.FOR,yytext()); + { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.FOR, yytext()); } case 263: break; case 103: - { return new ParsedSymbol(SymbolGroup.IDENTIFIER,SymbolType.SET,yytext()); + { return new ParsedSymbol(SymbolGroup.IDENTIFIER,SymbolType.SET, yytext()); } case 264: break; case 104: - { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.NEW,yytext()); + { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.NEW, yytext()); } case 265: break; case 105: - { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.TRY,yytext()); + { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.TRY, yytext()); } case 266: break; case 106: - { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.USE,yytext()); + { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.USE, yytext()); } case 267: break; case 107: - { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.VAR,yytext()); + { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.VAR, yytext()); } case 268: break; case 108: - { return new ParsedSymbol(SymbolGroup.IDENTIFIER,SymbolType.GET,yytext()); + { return new ParsedSymbol(SymbolGroup.IDENTIFIER,SymbolType.GET, yytext()); } case 269: break; case 109: - { return new ParsedSymbol(SymbolGroup.GLOBALCONST,SymbolType.NAN,yytext()); + { return new ParsedSymbol(SymbolGroup.GLOBALCONST,SymbolType.NAN, yytext()); } case 270: break; case 110: @@ -1887,39 +1892,39 @@ public final class ActionScriptLexer { } case 276: break; case 116: - { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_USHIFT_RIGHT,yytext()); + { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_USHIFT_RIGHT, yytext()); } case 277: break; case 117: - { return new ParsedSymbol(SymbolGroup.IDENTIFIER,SymbolType.EACH,yytext()); + { return new ParsedSymbol(SymbolGroup.IDENTIFIER,SymbolType.EACH, yytext()); } case 278: break; case 118: - { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.ELSE,yytext()); + { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.ELSE, yytext()); } case 279: break; case 119: - { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.CASE,yytext()); + { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.CASE, yytext()); } case 280: break; case 120: - { return new ParsedSymbol(SymbolGroup.GLOBALCONST,SymbolType.NULL,yytext()); + { return new ParsedSymbol(SymbolGroup.GLOBALCONST,SymbolType.NULL, yytext()); } case 281: break; case 121: - { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.TRUE,yytext()); + { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.TRUE, yytext()); } case 282: break; case 122: - { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.THIS,yytext()); + { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.THIS, yytext()); } case 283: break; case 123: - { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.WITH,yytext()); + { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.WITH, yytext()); } case 284: break; case 124: - { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.VOID,yytext()); + { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.VOID, yytext()); } case 285: break; case 125: @@ -1937,131 +1942,131 @@ public final class ActionScriptLexer { } case 287: break; case 127: - { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.FALSE,yytext()); + { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.FALSE, yytext()); } case 288: break; case 128: - { return new ParsedSymbol(SymbolGroup.IDENTIFIER,SymbolType.FINAL,yytext()); + { return new ParsedSymbol(SymbolGroup.IDENTIFIER,SymbolType.FINAL, yytext()); } case 289: break; case 129: - { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.BREAK,yytext()); + { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.BREAK, yytext()); } case 290: break; case 130: - { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.CATCH,yytext()); + { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.CATCH, yytext()); } case 291: break; case 131: - { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.CONST,yytext()); + { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.CONST, yytext()); } case 292: break; case 132: - { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.CLASS,yytext()); + { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.CLASS, yytext()); } case 293: break; case 133: - { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.SUPER,yytext()); + { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.SUPER, yytext()); } case 294: break; case 134: - { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.THROW,yytext()); + { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.THROW, yytext()); } case 295: break; case 135: - { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.WHILE,yytext()); + { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.WHILE, yytext()); } case 296: break; case 136: - { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.RETURN,yytext()); + { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.RETURN, yytext()); } case 297: break; case 137: - { return new ParsedSymbol(SymbolGroup.IDENTIFIER,SymbolType.STATIC,yytext()); + { return new ParsedSymbol(SymbolGroup.IDENTIFIER,SymbolType.STATIC, yytext()); } case 298: break; case 138: - { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.SWITCH,yytext()); + { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.SWITCH, yytext()); } case 299: break; case 139: - { return new ParsedSymbol(SymbolGroup.IDENTIFIER,SymbolType.NATIVE,yytext()); + { return new ParsedSymbol(SymbolGroup.IDENTIFIER,SymbolType.NATIVE, yytext()); } case 300: break; case 140: - { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.TYPEOF,yytext()); + { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.TYPEOF, yytext()); } case 301: break; case 141: - { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.IMPORT,yytext()); + { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.IMPORT, yytext()); } case 302: break; case 142: - { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.DELETE,yytext()); + { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.DELETE, yytext()); } case 303: break; case 143: - { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.PUBLIC,yytext()); + { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.PUBLIC, yytext()); } case 304: break; case 144: - { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.FINALLY,yytext()); + { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.FINALLY, yytext()); } case 305: break; case 145: - { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.EXTENDS,yytext()); + { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.EXTENDS, yytext()); } case 306: break; case 146: - { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.DEFAULT,yytext()); + { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.DEFAULT, yytext()); } case 307: break; case 147: - { return new ParsedSymbol(SymbolGroup.IDENTIFIER,SymbolType.DYNAMIC,yytext()); + { return new ParsedSymbol(SymbolGroup.IDENTIFIER,SymbolType.DYNAMIC, yytext()); } case 308: break; case 148: - { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.PRIVATE,yytext()); + { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.PRIVATE, yytext()); } case 309: break; case 149: - { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.PACKAGE,yytext()); + { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.PACKAGE, yytext()); } case 310: break; case 150: - { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.FUNCTION,yytext()); + { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.FUNCTION, yytext()); } case 311: break; case 151: - { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.CONTINUE,yytext()); + { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.CONTINUE, yytext()); } case 312: break; case 152: - { return new ParsedSymbol(SymbolGroup.IDENTIFIER,SymbolType.OVERRIDE,yytext()); + { return new ParsedSymbol(SymbolGroup.IDENTIFIER,SymbolType.OVERRIDE, yytext()); } case 313: break; case 153: - { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.INTERNAL,yytext()); + { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.INTERNAL, yytext()); } case 314: break; case 154: - { return new ParsedSymbol(SymbolGroup.GLOBALCONST,SymbolType.INFINITY,yytext()); + { return new ParsedSymbol(SymbolGroup.GLOBALCONST,SymbolType.INFINITY, yytext()); } case 315: break; case 155: - { return new ParsedSymbol(SymbolGroup.IDENTIFIER,SymbolType.NAMESPACE,yytext()); + { return new ParsedSymbol(SymbolGroup.IDENTIFIER,SymbolType.NAMESPACE, yytext()); } case 316: break; case 156: - { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.INTERFACE,yytext()); + { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.INTERFACE, yytext()); } case 317: break; case 157: - { return new ParsedSymbol(SymbolGroup.GLOBALCONST,SymbolType.UNDEFINED,yytext()); + { return new ParsedSymbol(SymbolGroup.GLOBALCONST,SymbolType.UNDEFINED, yytext()); } case 318: break; case 158: - { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.PROTECTED,yytext()); + { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.PROTECTED, yytext()); } case 319: break; case 159: @@ -2070,11 +2075,11 @@ public final class ActionScriptLexer { } case 320: break; case 160: - { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.INSTANCEOF,yytext()); + { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.INSTANCEOF, yytext()); } case 321: break; case 161: - { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.IMPLEMENTS,yytext()); + { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.IMPLEMENTS, yytext()); } case 322: break; default: diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/actionscript.flex b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/actionscript.flex index 14a9993bc..8bad2edf1 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/actionscript.flex +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/avm2/parser/script/actionscript.flex @@ -42,7 +42,7 @@ import java.io.StringReader; public void yypushbackstr(String s, int state) { - sourceCode=s+sourceCode.substring(yychar+yylength()); + sourceCode = s + sourceCode.substring(yychar+yylength()); yyreset(new StringReader(sourceCode)); yybegin(state); } @@ -54,16 +54,16 @@ import java.io.StringReader; StringBuffer string = new StringBuffer(); - private static String xmlTagName=""; + private static String xmlTagName = ""; public int yychar() { return yychar; } - private Stack pushedBack=new Stack(); + private Stack pushedBack = new Stack(); public int yyline() { - return yyline+1; + return yyline + 1; } private List listeners=new ArrayList<>(); @@ -204,118 +204,118 @@ OIdentifierCharacter = [^\r\n\u00A7\\] { /* keywords */ - "break" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.BREAK,yytext()); } - "case" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.CASE,yytext()); } - "continue" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.CONTINUE,yytext()); } - "default" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.DEFAULT,yytext()); } - "do" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.DO,yytext()); } - "while" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.WHILE,yytext()); } - "else" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.ELSE,yytext()); } - "for" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.FOR,yytext()); } - "each" { return new ParsedSymbol(SymbolGroup.IDENTIFIER,SymbolType.EACH,yytext()); } - "in" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.IN,yytext()); } - "if" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.IF,yytext()); } - "return" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.RETURN,yytext()); } - "super" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.SUPER,yytext()); } - "switch" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.SWITCH,yytext()); } - "throw" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.THROW,yytext()); } - "try" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.TRY,yytext()); } - "catch" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.CATCH,yytext()); } - "finally" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.FINALLY,yytext()); } - "while" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.WHILE,yytext()); } - "with" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.WITH,yytext()); } - "dynamic" { return new ParsedSymbol(SymbolGroup.IDENTIFIER,SymbolType.DYNAMIC,yytext()); } - "internal" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.INTERNAL,yytext()); } - "override" { return new ParsedSymbol(SymbolGroup.IDENTIFIER,SymbolType.OVERRIDE,yytext()); } - "private" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.PRIVATE,yytext()); } - "protected" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.PROTECTED,yytext()); } - "public" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.PUBLIC,yytext()); } - "static" { return new ParsedSymbol(SymbolGroup.IDENTIFIER,SymbolType.STATIC,yytext()); } - "class" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.CLASS,yytext()); } - "const" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.CONST,yytext()); } - "extends" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.EXTENDS,yytext()); } - "function" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.FUNCTION,yytext()); } - "get" { return new ParsedSymbol(SymbolGroup.IDENTIFIER,SymbolType.GET,yytext()); } - "implements" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.IMPLEMENTS,yytext()); } - "interface" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.INTERFACE,yytext()); } - "namespace" { return new ParsedSymbol(SymbolGroup.IDENTIFIER,SymbolType.NAMESPACE,yytext()); } - "package" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.PACKAGE,yytext()); } - "set" { return new ParsedSymbol(SymbolGroup.IDENTIFIER,SymbolType.SET,yytext()); } - "var" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.VAR,yytext()); } - "import" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.IMPORT,yytext()); } - "use" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.USE,yytext()); } - "false" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.FALSE,yytext()); } - "null" { return new ParsedSymbol(SymbolGroup.GLOBALCONST,SymbolType.NULL,yytext()); } - "this" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.THIS,yytext()); } - "true" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.TRUE,yytext()); } - "undefined" { return new ParsedSymbol(SymbolGroup.GLOBALCONST,SymbolType.UNDEFINED,yytext()); } - "Infinity" { return new ParsedSymbol(SymbolGroup.GLOBALCONST,SymbolType.INFINITY,yytext()); } - "NaN" { return new ParsedSymbol(SymbolGroup.GLOBALCONST,SymbolType.NAN,yytext()); } - "final" { return new ParsedSymbol(SymbolGroup.IDENTIFIER,SymbolType.FINAL,yytext()); } - "native" { return new ParsedSymbol(SymbolGroup.IDENTIFIER,SymbolType.NATIVE,yytext()); } + "break" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.BREAK, yytext()); } + "case" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.CASE, yytext()); } + "continue" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.CONTINUE, yytext()); } + "default" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.DEFAULT, yytext()); } + "do" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.DO, yytext()); } + "while" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.WHILE, yytext()); } + "else" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.ELSE, yytext()); } + "for" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.FOR, yytext()); } + "each" { return new ParsedSymbol(SymbolGroup.IDENTIFIER,SymbolType.EACH, yytext()); } + "in" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.IN, yytext()); } + "if" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.IF, yytext()); } + "return" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.RETURN, yytext()); } + "super" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.SUPER, yytext()); } + "switch" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.SWITCH, yytext()); } + "throw" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.THROW, yytext()); } + "try" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.TRY, yytext()); } + "catch" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.CATCH, yytext()); } + "finally" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.FINALLY, yytext()); } + "while" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.WHILE, yytext()); } + "with" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.WITH, yytext()); } + "dynamic" { return new ParsedSymbol(SymbolGroup.IDENTIFIER,SymbolType.DYNAMIC, yytext()); } + "internal" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.INTERNAL, yytext()); } + "override" { return new ParsedSymbol(SymbolGroup.IDENTIFIER,SymbolType.OVERRIDE, yytext()); } + "private" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.PRIVATE, yytext()); } + "protected" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.PROTECTED, yytext()); } + "public" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.PUBLIC, yytext()); } + "static" { return new ParsedSymbol(SymbolGroup.IDENTIFIER,SymbolType.STATIC, yytext()); } + "class" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.CLASS, yytext()); } + "const" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.CONST, yytext()); } + "extends" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.EXTENDS, yytext()); } + "function" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.FUNCTION, yytext()); } + "get" { return new ParsedSymbol(SymbolGroup.IDENTIFIER,SymbolType.GET, yytext()); } + "implements" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.IMPLEMENTS, yytext()); } + "interface" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.INTERFACE, yytext()); } + "namespace" { return new ParsedSymbol(SymbolGroup.IDENTIFIER,SymbolType.NAMESPACE, yytext()); } + "package" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.PACKAGE, yytext()); } + "set" { return new ParsedSymbol(SymbolGroup.IDENTIFIER,SymbolType.SET, yytext()); } + "var" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.VAR, yytext()); } + "import" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.IMPORT, yytext()); } + "use" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.USE, yytext()); } + "false" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.FALSE, yytext()); } + "null" { return new ParsedSymbol(SymbolGroup.GLOBALCONST,SymbolType.NULL, yytext()); } + "this" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.THIS, yytext()); } + "true" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.TRUE, yytext()); } + "undefined" { return new ParsedSymbol(SymbolGroup.GLOBALCONST,SymbolType.UNDEFINED, yytext()); } + "Infinity" { return new ParsedSymbol(SymbolGroup.GLOBALCONST,SymbolType.INFINITY, yytext()); } + "NaN" { return new ParsedSymbol(SymbolGroup.GLOBALCONST,SymbolType.NAN, yytext()); } + "final" { return new ParsedSymbol(SymbolGroup.IDENTIFIER,SymbolType.FINAL, yytext()); } + "native" { return new ParsedSymbol(SymbolGroup.IDENTIFIER,SymbolType.NATIVE, yytext()); } /* operators */ - "(" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.PARENT_OPEN,yytext()); } - ")" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.PARENT_CLOSE,yytext()); } - "{" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.CURLY_OPEN,yytext()); } - "}" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.CURLY_CLOSE,yytext()); } - "[" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.BRACKET_OPEN,yytext()); } - "]" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.BRACKET_CLOSE,yytext()); } - ";" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.SEMICOLON,yytext()); } - "," { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.COMMA,yytext()); } - "..." { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.REST,yytext()); } - "." { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.DOT,yytext()); } - "=" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN,yytext()); } - ">" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.GREATER_THAN,yytext()); } - "<" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.LOWER_THAN,yytext()); } - "!" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.NOT,yytext()); } - "~" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.NEGATE,yytext()); } - "?" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.TERNAR,yytext()); } - ":" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.COLON,yytext()); } - "===" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.STRICT_EQUALS,yytext()); } - "==" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.EQUALS,yytext()); } - "<=" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.LOWER_EQUAL,yytext()); } - ">=" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.GREATER_EQUAL,yytext()); } - "!==" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.STRICT_NOT_EQUAL,yytext()); } - "!=" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.NOT_EQUAL,yytext()); } - "&&" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.AND,yytext()); } - "||" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.OR,yytext()); } - "++" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.INCREMENT,yytext()); } - "--" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.DECREMENT,yytext()); } - "+" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.PLUS,yytext()); } - "-" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.MINUS,yytext()); } - "*" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.MULTIPLY,yytext()); } - "/" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.DIVIDE,yytext()); } - "&" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.BITAND,yytext()); } - "|" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.BITOR,yytext()); } - "^" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.XOR,yytext()); } - "%" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.MODULO,yytext()); } - "<<" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.SHIFT_LEFT,yytext()); } - ">>" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.SHIFT_RIGHT,yytext()); } - ">>>" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.USHIFT_RIGHT,yytext()); } - "+=" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_PLUS,yytext()); } - "-=" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_MINUS,yytext()); } - "*=" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_MULTIPLY,yytext()); } - "/=" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_DIVIDE,yytext()); } - "&=" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_BITAND,yytext()); } - "|=" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_BITOR,yytext()); } - "^=" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_XOR,yytext()); } - "%=" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_MODULO,yytext()); } - "<<=" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_SHIFT_LEFT,yytext()); } - ">>=" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_SHIFT_RIGHT,yytext()); } - ">>>=" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_USHIFT_RIGHT,yytext()); } - "as" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.AS,yytext()); } - "delete" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.DELETE,yytext()); } - "instanceof" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.INSTANCEOF,yytext()); } - "is" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.IS,yytext()); } - "::" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.NAMESPACE_OP,yytext()); } - "new" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.NEW,yytext()); } - "typeof" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.TYPEOF,yytext()); } - "void" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.VOID,yytext()); } - "@" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ATTRIBUTE,yytext()); } - ".(" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.FILTER,yytext()); } - ".." { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.DESCENDANTS,yytext()); } + "(" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.PARENT_OPEN, yytext()); } + ")" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.PARENT_CLOSE, yytext()); } + "{" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.CURLY_OPEN, yytext()); } + "}" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.CURLY_CLOSE, yytext()); } + "[" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.BRACKET_OPEN, yytext()); } + "]" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.BRACKET_CLOSE, yytext()); } + ";" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.SEMICOLON, yytext()); } + "," { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.COMMA, yytext()); } + "..." { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.REST, yytext()); } + "." { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.DOT, yytext()); } + "=" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN, yytext()); } + ">" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.GREATER_THAN, yytext()); } + "<" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.LOWER_THAN, yytext()); } + "!" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.NOT, yytext()); } + "~" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.NEGATE, yytext()); } + "?" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.TERNAR, yytext()); } + ":" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.COLON, yytext()); } + "===" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.STRICT_EQUALS, yytext()); } + "==" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.EQUALS, yytext()); } + "<=" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.LOWER_EQUAL, yytext()); } + ">=" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.GREATER_EQUAL, yytext()); } + "!==" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.STRICT_NOT_EQUAL, yytext()); } + "!=" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.NOT_EQUAL, yytext()); } + "&&" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.AND, yytext()); } + "||" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.OR, yytext()); } + "++" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.INCREMENT, yytext()); } + "--" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.DECREMENT, yytext()); } + "+" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.PLUS, yytext()); } + "-" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.MINUS, yytext()); } + "*" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.MULTIPLY, yytext()); } + "/" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.DIVIDE, yytext()); } + "&" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.BITAND, yytext()); } + "|" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.BITOR, yytext()); } + "^" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.XOR, yytext()); } + "%" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.MODULO, yytext()); } + "<<" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.SHIFT_LEFT, yytext()); } + ">>" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.SHIFT_RIGHT, yytext()); } + ">>>" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.USHIFT_RIGHT, yytext()); } + "+=" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_PLUS, yytext()); } + "-=" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_MINUS, yytext()); } + "*=" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_MULTIPLY, yytext()); } + "/=" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_DIVIDE, yytext()); } + "&=" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_BITAND, yytext()); } + "|=" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_BITOR, yytext()); } + "^=" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_XOR, yytext()); } + "%=" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_MODULO, yytext()); } + "<<=" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_SHIFT_LEFT, yytext()); } + ">>=" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_SHIFT_RIGHT, yytext()); } + ">>>=" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_USHIFT_RIGHT, yytext()); } + "as" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.AS, yytext()); } + "delete" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.DELETE, yytext()); } + "instanceof" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.INSTANCEOF, yytext()); } + "is" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.IS, yytext()); } + "::" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.NAMESPACE_OP, yytext()); } + "new" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.NEW, yytext()); } + "typeof" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.TYPEOF, yytext()); } + "void" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.VOID, yytext()); } + "@" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ATTRIBUTE, yytext()); } + ".(" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.FILTER, yytext()); } + ".." { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.DESCENDANTS, yytext()); } /* string literal */ \" { @@ -349,7 +349,7 @@ OIdentifierCharacter = [^\r\n\u00A7\\] {LineTerminator} { yyline++;} /* whitespace */ {WhiteSpace} { /*ignore*/ } - {TypeNameSpec} { return new ParsedSymbol(SymbolGroup.TYPENAME,SymbolType.TYPENAME,yytext()); } + {TypeNameSpec} { return new ParsedSymbol(SymbolGroup.TYPENAME,SymbolType.TYPENAME, yytext()); } {XmlOpenTagStart} { yybegin(XMLOPENTAG); string.setLength(0); diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/methodinfo_parser/methodinfo.flex b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/methodinfo_parser/methodinfo.flex index a51e27526..124ca5f9c 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/methodinfo_parser/methodinfo.flex +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/methodinfo_parser/methodinfo.flex @@ -17,8 +17,8 @@ package com.jpexs.decompiler.flash.abc.methodinfo_parser; %{ StringBuffer string = new StringBuffer(); - boolean isMultiname=false; - long multinameId=0; + boolean isMultiname = false; + long multinameId = 0; /** @@ -80,15 +80,15 @@ StringCharacter = [^\r\n\"\\] /* whitespace */ {WhiteSpace} { } {Multiname}\" { - isMultiname=true; - String s=yytext(); - multinameId=Long.parseLong(s.substring(2,s.length()-2)); + isMultiname = true; + String s = yytext(); + multinameId = Long.parseLong(s.substring(2,s.length()-2)); yybegin(STRING); string.setLength(0); } /* string literal */ \" { - isMultiname=false; + isMultiname = false; yybegin(STRING); string.setLength(0); } @@ -112,16 +112,16 @@ StringCharacter = [^\r\n\"\\] static {return new ParsedSymbol(ParsedSymbol.TYPE_STATIC);} explicit {return new ParsedSymbol(ParsedSymbol.TYPE_EXPLICIT);} {Namespace} { - String s=yytext(); - long ns=Long.parseLong(s.substring(3,s.length()-2)); - return new ParsedSymbol(ParsedSymbol.TYPE_NAMESPACE,new Long(ns)); + String s = yytext(); + long ns = Long.parseLong(s.substring(3, s.length()-2)); + return new ParsedSymbol(ParsedSymbol.TYPE_NAMESPACE, new Long(ns)); } true {return new ParsedSymbol(ParsedSymbol.TYPE_TRUE);} false {return new ParsedSymbol(ParsedSymbol.TYPE_FALSE);} null {return new ParsedSymbol(ParsedSymbol.TYPE_NULL);} undefined {return new ParsedSymbol(ParsedSymbol.TYPE_UNDEFINED);} {Identifier} { - return new ParsedSymbol(ParsedSymbol.TYPE_IDENTIFIER,yytext()); } + return new ParsedSymbol(ParsedSymbol.TYPE_IDENTIFIER, yytext()); } } { @@ -129,9 +129,9 @@ StringCharacter = [^\r\n\"\\] yybegin(YYINITIAL); // length also includes the trailing quote if(isMultiname){ - return new ParsedSymbol(ParsedSymbol.TYPE_MULTINAME,new Long(multinameId)); + return new ParsedSymbol(ParsedSymbol.TYPE_MULTINAME, new Long(multinameId)); }else{ - return new ParsedSymbol(ParsedSymbol.TYPE_STRING,string.toString()); + return new ParsedSymbol(ParsedSymbol.TYPE_STRING, string.toString()); } } @@ -150,8 +150,8 @@ StringCharacter = [^\r\n\"\\] string.append( val ); } /* error cases */ - \\. { throw new ParseException("Illegal escape sequence \""+yytext()+"\"",yyline+1); } - {LineTerminator} { throw new ParseException("Unterminated string at end of line",yyline+1); } + \\. { throw new ParseException("Illegal escape sequence \"" + yytext() + "\"", yyline + 1); } + {LineTerminator} { throw new ParseException("Unterminated string at end of line", yyline + 1); } } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/types/MethodInfo.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/types/MethodInfo.java index 099e8ba6f..9e4b57986 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/types/MethodInfo.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/types/MethodInfo.java @@ -16,11 +16,11 @@ */ package com.jpexs.decompiler.flash.abc.types; +import com.jpexs.decompiler.flash.IdentifiersDeobfuscation; import com.jpexs.decompiler.flash.abc.ABC; import com.jpexs.decompiler.flash.abc.avm2.AVM2ConstantPool; import com.jpexs.decompiler.flash.abc.avm2.instructions.AVM2Instruction; import com.jpexs.decompiler.flash.abc.avm2.instructions.construction.NewFunctionIns; -import com.jpexs.decompiler.flash.IdentifiersDeobfuscation; import com.jpexs.decompiler.flash.configuration.Configuration; import com.jpexs.decompiler.flash.helpers.GraphTextWriter; import com.jpexs.helpers.Helper; diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/types/Multiname.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/types/Multiname.java index b01e02478..b09d152e0 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/types/Multiname.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/types/Multiname.java @@ -16,8 +16,8 @@ */ package com.jpexs.decompiler.flash.abc.types; -import com.jpexs.decompiler.flash.abc.avm2.AVM2ConstantPool; import com.jpexs.decompiler.flash.IdentifiersDeobfuscation; +import com.jpexs.decompiler.flash.abc.avm2.AVM2ConstantPool; import com.jpexs.helpers.Helper; import java.util.List; diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/types/Namespace.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/types/Namespace.java index 7c7ec3ae4..ebd5e62c3 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/types/Namespace.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/abc/types/Namespace.java @@ -16,9 +16,9 @@ */ package com.jpexs.decompiler.flash.abc.types; +import com.jpexs.decompiler.flash.IdentifiersDeobfuscation; import com.jpexs.decompiler.flash.abc.ABC; import com.jpexs.decompiler.flash.abc.avm2.AVM2ConstantPool; -import com.jpexs.decompiler.flash.IdentifiersDeobfuscation; public class Namespace { diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/model/CallFunctionActionItem.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/model/CallFunctionActionItem.java index e06bc5329..f93e0bdfa 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/model/CallFunctionActionItem.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/model/CallFunctionActionItem.java @@ -16,8 +16,8 @@ */ package com.jpexs.decompiler.flash.action.model; -import com.jpexs.decompiler.flash.SourceGeneratorLocalData; import com.jpexs.decompiler.flash.IdentifiersDeobfuscation; +import com.jpexs.decompiler.flash.SourceGeneratorLocalData; import com.jpexs.decompiler.flash.action.swf5.ActionCallFunction; import com.jpexs.decompiler.flash.helpers.GraphTextWriter; import com.jpexs.decompiler.graph.CompilationException; diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/model/CallMethodActionItem.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/model/CallMethodActionItem.java index 0c474fa71..9a7020e20 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/model/CallMethodActionItem.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/model/CallMethodActionItem.java @@ -16,8 +16,8 @@ */ package com.jpexs.decompiler.flash.action.model; -import com.jpexs.decompiler.flash.SourceGeneratorLocalData; import com.jpexs.decompiler.flash.IdentifiersDeobfuscation; +import com.jpexs.decompiler.flash.SourceGeneratorLocalData; import com.jpexs.decompiler.flash.action.swf5.ActionCallMethod; import com.jpexs.decompiler.flash.ecma.Undefined; import com.jpexs.decompiler.flash.helpers.GraphTextWriter; diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/model/DefineLocalActionItem.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/model/DefineLocalActionItem.java index c38f08b97..11f8bbd5c 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/model/DefineLocalActionItem.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/model/DefineLocalActionItem.java @@ -16,8 +16,8 @@ */ package com.jpexs.decompiler.flash.action.model; -import com.jpexs.decompiler.flash.SourceGeneratorLocalData; import com.jpexs.decompiler.flash.IdentifiersDeobfuscation; +import com.jpexs.decompiler.flash.SourceGeneratorLocalData; import com.jpexs.decompiler.flash.action.swf5.ActionDefineLocal; import com.jpexs.decompiler.flash.action.swf5.ActionDefineLocal2; import com.jpexs.decompiler.flash.helpers.GraphTextWriter; diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/model/FunctionActionItem.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/model/FunctionActionItem.java index 0d21d54b3..0212104da 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/model/FunctionActionItem.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/model/FunctionActionItem.java @@ -16,10 +16,10 @@ */ package com.jpexs.decompiler.flash.action.model; +import com.jpexs.decompiler.flash.IdentifiersDeobfuscation; import com.jpexs.decompiler.flash.SWF; import com.jpexs.decompiler.flash.SourceGeneratorLocalData; import com.jpexs.decompiler.flash.action.Action; -import com.jpexs.decompiler.flash.IdentifiersDeobfuscation; import com.jpexs.decompiler.flash.action.parser.script.ActionSourceGenerator; import com.jpexs.decompiler.flash.action.parser.script.VariableActionItem; import com.jpexs.decompiler.flash.action.swf4.RegisterNumber; diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/model/GetMemberActionItem.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/model/GetMemberActionItem.java index effd5a367..2e0a9deb0 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/model/GetMemberActionItem.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/model/GetMemberActionItem.java @@ -16,8 +16,8 @@ */ package com.jpexs.decompiler.flash.action.model; -import com.jpexs.decompiler.flash.SourceGeneratorLocalData; import com.jpexs.decompiler.flash.IdentifiersDeobfuscation; +import com.jpexs.decompiler.flash.SourceGeneratorLocalData; import com.jpexs.decompiler.flash.action.swf5.ActionGetMember; import com.jpexs.decompiler.flash.helpers.GraphTextWriter; import com.jpexs.decompiler.graph.CompilationException; 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 775873c61..8796352da 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 @@ -16,8 +16,8 @@ */ package com.jpexs.decompiler.flash.action.model; -import com.jpexs.decompiler.flash.SourceGeneratorLocalData; import com.jpexs.decompiler.flash.IdentifiersDeobfuscation; +import com.jpexs.decompiler.flash.SourceGeneratorLocalData; import com.jpexs.decompiler.flash.action.swf4.ActionGetVariable; import com.jpexs.decompiler.flash.ecma.Undefined; import com.jpexs.decompiler.flash.helpers.GraphTextWriter; diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/model/SetMemberActionItem.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/model/SetMemberActionItem.java index 844f4672f..6707715de 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/model/SetMemberActionItem.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/model/SetMemberActionItem.java @@ -16,8 +16,8 @@ */ package com.jpexs.decompiler.flash.action.model; -import com.jpexs.decompiler.flash.SourceGeneratorLocalData; import com.jpexs.decompiler.flash.IdentifiersDeobfuscation; +import com.jpexs.decompiler.flash.SourceGeneratorLocalData; import com.jpexs.decompiler.flash.action.parser.script.ActionSourceGenerator; import com.jpexs.decompiler.flash.action.swf4.ActionPush; import com.jpexs.decompiler.flash.action.swf4.RegisterNumber; diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/model/SetVariableActionItem.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/model/SetVariableActionItem.java index 0426c4348..72542980d 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/model/SetVariableActionItem.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/model/SetVariableActionItem.java @@ -16,8 +16,8 @@ */ package com.jpexs.decompiler.flash.action.model; -import com.jpexs.decompiler.flash.SourceGeneratorLocalData; import com.jpexs.decompiler.flash.IdentifiersDeobfuscation; +import com.jpexs.decompiler.flash.SourceGeneratorLocalData; import com.jpexs.decompiler.flash.action.parser.script.ActionSourceGenerator; import com.jpexs.decompiler.flash.action.swf4.ActionPush; import com.jpexs.decompiler.flash.action.swf4.ActionSetVariable; diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/parser/pcode/flasm.flex b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/parser/pcode/flasm.flex index 784b8f185..509dab755 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/parser/pcode/flasm.flex +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/parser/pcode/flasm.flex @@ -105,12 +105,12 @@ Constant= constant{PositiveNumberLiteral} {Label} { String s=yytext(); - return new ASMParsedSymbol(ASMParsedSymbol.TYPE_LABEL,s.substring(0,s.length()-1)); + return new ASMParsedSymbol(ASMParsedSymbol.TYPE_LABEL, s.substring(0, s.length() - 1)); } /* identifiers */ {InstructionName} { yybegin(PARAMETERS); - return new ASMParsedSymbol(ASMParsedSymbol.TYPE_INSTRUCTION_NAME,yytext()); + return new ASMParsedSymbol(ASMParsedSymbol.TYPE_INSTRUCTION_NAME, yytext()); } {EndOfBlock} { return new ASMParsedSymbol(ASMParsedSymbol.TYPE_BLOCK_END); } } @@ -127,7 +127,7 @@ Constant= constant{PositiveNumberLiteral} {NumberLiteral} { return new ASMParsedSymbol(ASMParsedSymbol.TYPE_INTEGER,new Long(Long.parseLong((yytext())))); } {FloatLiteral} { return new ASMParsedSymbol(ASMParsedSymbol.TYPE_FLOAT,new Double(Double.parseDouble((yytext())))); } {LineTerminator} {yybegin(YYINITIAL); return new ASMParsedSymbol(ASMParsedSymbol.TYPE_EOL); } - {Comment} {return new ASMParsedSymbol(ASMParsedSymbol.TYPE_COMMENT,yytext().substring(1));} + {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);} @@ -137,7 +137,7 @@ Constant= constant{PositiveNumberLiteral} {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()); } + {Identifier} { return new ASMParsedSymbol(ASMParsedSymbol.TYPE_IDENTIFIER, yytext()); } } @@ -145,7 +145,7 @@ Constant= constant{PositiveNumberLiteral} \" { yybegin(PARAMETERS); // length also includes the trailing quote - return new ASMParsedSymbol(ASMParsedSymbol.TYPE_STRING,string.toString()); + return new ASMParsedSymbol(ASMParsedSymbol.TYPE_STRING, string.toString()); } {StringCharacter}+ { string.append( yytext() ); } @@ -163,8 +163,8 @@ Constant= constant{PositiveNumberLiteral} string.append( val ); } /* error cases */ - \\. { throw new ParseException("Illegal escape sequence \""+yytext()+"\"",yyline+1); } - {LineTerminator} { throw new ParseException("Unterminated string at end of line",yyline+1); } + \\. { throw new ParseException("Illegal escape sequence \""+yytext()+"\"", yyline + 1); } + {LineTerminator} { throw new ParseException("Unterminated string at end of line", yyline + 1); } } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/parser/script/actionscript.flex b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/parser/script/actionscript.flex index a5607f71e..6adf4b95d 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/parser/script/actionscript.flex +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/action/parser/script/actionscript.flex @@ -34,18 +34,18 @@ import java.util.ArrayList; StringBuffer string = new StringBuffer(); - private static String xmlTagName=""; + private static String xmlTagName = ""; public int yychar() { return yychar; } - private Stack pushedBack=new Stack(); + private Stack pushedBack = new Stack(); public int yyline() { - return yyline+1; + return yyline + 1; } - private List listeners=new ArrayList<>(); + private List listeners = new ArrayList<>(); public void addListener(LexListener listener){ listeners.add(listener); @@ -74,7 +74,7 @@ import java.util.ArrayList; } ParsedSymbol last; public ParsedSymbol lex() throws java.io.IOException, ParseException{ - ParsedSymbol ret=null; + ParsedSymbol ret = null; if(!pushedBack.isEmpty()){ ret = last = pushedBack.pop(); }else{ @@ -142,162 +142,162 @@ OIdentifierCharacter = [^\r\n\u00A7\\] { /* keywords */ - "break" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.BREAK,yytext()); } - "case" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.CASE,yytext()); } - "continue" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.CONTINUE,yytext()); } - "default" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.DEFAULT,yytext()); } - "do" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.DO,yytext()); } - "while" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.WHILE,yytext()); } - "else" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.ELSE,yytext()); } - "for" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.FOR,yytext()); } - "each" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.EACH,yytext()); } - "in" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.IN,yytext()); } - "if" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.IF,yytext()); } - "return" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.RETURN,yytext()); } - "super" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.SUPER,yytext()); } - "switch" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.SWITCH,yytext()); } - "throw" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.THROW,yytext()); } - "try" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.TRY,yytext()); } - "catch" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.CATCH,yytext()); } - "finally" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.FINALLY,yytext()); } - "while" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.WHILE,yytext()); } - "with" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.WITH,yytext()); } - "dynamic" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.DYNAMIC,yytext()); } - "internal" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.INTERNAL,yytext()); } - "override" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.OVERRIDE,yytext()); } - "private" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.PRIVATE,yytext()); } - "protected" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.PROTECTED,yytext()); } - "public" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.PUBLIC,yytext()); } - "static" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.STATIC,yytext()); } - "class" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.CLASS,yytext()); } - "const" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.CONST,yytext()); } - "extends" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.EXTENDS,yytext()); } - "function" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.FUNCTION,yytext()); } - "get" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.GET,yytext()); } - "implements" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.IMPLEMENTS,yytext()); } - "interface" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.INTERFACE,yytext()); } - "namespace" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.NAMESPACE,yytext()); } - "package" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.PACKAGE,yytext()); } - "set" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.SET,yytext()); } - "var" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.VAR,yytext()); } - "import" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.IMPORT,yytext()); } - "use" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.USE,yytext()); } - "false" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.FALSE,yytext()); } - "null" { return new ParsedSymbol(SymbolGroup.GLOBALCONST,SymbolType.NULL,yytext()); } - "this" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.THIS,yytext()); } - "true" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.TRUE,yytext()); } - "getUrl" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.GETURL,yytext()); } - "trace" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.TRACE,yytext()); } - "gotoAndStop" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.GOTOANDSTOP,yytext()); } - "nextFrame" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.NEXTFRAME,yytext()); } - "play" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.PLAY,yytext()); } - "prevFrame" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.PREVFRAME,yytext()); } - "tellTarget" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.TELLTARGET,yytext()); } - "stop" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.STOP,yytext()); } - "stopAllSounds" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.STOPALLSOUNDS,yytext()); } - "toggleHighQuality" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.TOGGLEHIGHQUALITY,yytext()); } - "ifFrameLoaded" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.IFFRAMELOADED,yytext()); } - "ord" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.ORD,yytext()); } - "chr" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.CHR,yytext()); } - "duplicateMovieClip" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.DUPLICATEMOVIECLIP,yytext()); } - "stopDrag" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.STOPDRAG,yytext()); } - "getTimer" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.GETTIMER,yytext()); } - "loadVariables" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.LOADVARIABLES,yytext()); } - "loadMovie" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.LOADMOVIE,yytext()); } - "gotoAndPlay" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.GOTOANDPLAY,yytext()); } - "mbord" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.MBORD,yytext()); } - "mbchr" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.MBCHR,yytext()); } - "mblength" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.MBLENGTH,yytext()); } - "mbsubstring" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.MBSUBSTRING,yytext()); } - "random" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.RANDOM,yytext()); } - "removeMovieClip" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.REMOVEMOVIECLIP,yytext()); } - "startDrag" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.STARTDRAG,yytext()); } - "substr" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.SUBSTR,yytext()); } - "length" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.LENGTH,yytext()); } - "int" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.INT,yytext()); } - "targetPath" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.TARGETPATH,yytext()); } - "Number" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.NUMBER_OP,yytext()); } - "String" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.STRING_OP,yytext()); } - "eval" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.EVAL,yytext()); } - "undefined" { return new ParsedSymbol(SymbolGroup.GLOBALCONST,SymbolType.UNDEFINED,yytext()); } - "newline" { return new ParsedSymbol(SymbolGroup.GLOBALCONST,SymbolType.NEWLINE,yytext()); } - "Infinity" { return new ParsedSymbol(SymbolGroup.GLOBALCONST,SymbolType.INFINITY,yytext()); } - "NaN" { return new ParsedSymbol(SymbolGroup.GLOBALCONST,SymbolType.NAN,yytext()); } - "getVersion" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.GETVERSION,yytext()); } - "call" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.CALL,yytext()); } - "loadMovieNum" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.LOADMOVIENUM,yytext()); } - "loadVariablesNum" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.LOADVARIABLESNUM,yytext()); } - "printAsBitmapNum" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.PRINTASBITMAPNUM,yytext()); } - "printNum" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.PRINTNUM,yytext()); } - "printAsBitmap" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.PRINTASBITMAP,yytext()); } - "print" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.PRINT,yytext()); } - "unloadMovie" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.UNLOADMOVIE,yytext()); } - "unloadMovieNum" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.UNLOADMOVIENUM,yytext()); } - "fscommand" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.FSCOMMAND,yytext()); } + "break" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.BREAK, yytext()); } + "case" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.CASE, yytext()); } + "continue" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.CONTINUE, yytext()); } + "default" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.DEFAULT, yytext()); } + "do" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.DO, yytext()); } + "while" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.WHILE, yytext()); } + "else" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.ELSE, yytext()); } + "for" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.FOR, yytext()); } + "each" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.EACH, yytext()); } + "in" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.IN, yytext()); } + "if" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.IF, yytext()); } + "return" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.RETURN, yytext()); } + "super" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.SUPER, yytext()); } + "switch" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.SWITCH, yytext()); } + "throw" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.THROW, yytext()); } + "try" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.TRY, yytext()); } + "catch" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.CATCH, yytext()); } + "finally" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.FINALLY, yytext()); } + "while" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.WHILE, yytext()); } + "with" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.WITH, yytext()); } + "dynamic" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.DYNAMIC, yytext()); } + "internal" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.INTERNAL, yytext()); } + "override" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.OVERRIDE, yytext()); } + "private" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.PRIVATE, yytext()); } + "protected" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.PROTECTED, yytext()); } + "public" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.PUBLIC, yytext()); } + "static" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.STATIC, yytext()); } + "class" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.CLASS, yytext()); } + "const" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.CONST, yytext()); } + "extends" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.EXTENDS, yytext()); } + "function" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.FUNCTION, yytext()); } + "get" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.GET, yytext()); } + "implements" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.IMPLEMENTS, yytext()); } + "interface" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.INTERFACE, yytext()); } + "namespace" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.NAMESPACE, yytext()); } + "package" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.PACKAGE, yytext()); } + "set" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.SET, yytext()); } + "var" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.VAR, yytext()); } + "import" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.IMPORT, yytext()); } + "use" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.USE, yytext()); } + "false" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.FALSE, yytext()); } + "null" { return new ParsedSymbol(SymbolGroup.GLOBALCONST,SymbolType.NULL, yytext()); } + "this" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.THIS, yytext()); } + "true" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.TRUE, yytext()); } + "getUrl" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.GETURL, yytext()); } + "trace" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.TRACE, yytext()); } + "gotoAndStop" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.GOTOANDSTOP, yytext()); } + "nextFrame" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.NEXTFRAME, yytext()); } + "play" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.PLAY, yytext()); } + "prevFrame" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.PREVFRAME, yytext()); } + "tellTarget" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.TELLTARGET, yytext()); } + "stop" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.STOP, yytext()); } + "stopAllSounds" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.STOPALLSOUNDS, yytext()); } + "toggleHighQuality" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.TOGGLEHIGHQUALITY, yytext()); } + "ifFrameLoaded" { return new ParsedSymbol(SymbolGroup.KEYWORD,SymbolType.IFFRAMELOADED, yytext()); } + "ord" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.ORD, yytext()); } + "chr" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.CHR, yytext()); } + "duplicateMovieClip" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.DUPLICATEMOVIECLIP, yytext()); } + "stopDrag" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.STOPDRAG, yytext()); } + "getTimer" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.GETTIMER, yytext()); } + "loadVariables" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.LOADVARIABLES, yytext()); } + "loadMovie" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.LOADMOVIE, yytext()); } + "gotoAndPlay" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.GOTOANDPLAY, yytext()); } + "mbord" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.MBORD, yytext()); } + "mbchr" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.MBCHR, yytext()); } + "mblength" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.MBLENGTH, yytext()); } + "mbsubstring" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.MBSUBSTRING, yytext()); } + "random" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.RANDOM, yytext()); } + "removeMovieClip" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.REMOVEMOVIECLIP, yytext()); } + "startDrag" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.STARTDRAG, yytext()); } + "substr" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.SUBSTR, yytext()); } + "length" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.LENGTH, yytext()); } + "int" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.INT, yytext()); } + "targetPath" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.TARGETPATH, yytext()); } + "Number" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.NUMBER_OP, yytext()); } + "String" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.STRING_OP, yytext()); } + "eval" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.EVAL, yytext()); } + "undefined" { return new ParsedSymbol(SymbolGroup.GLOBALCONST,SymbolType.UNDEFINED, yytext()); } + "newline" { return new ParsedSymbol(SymbolGroup.GLOBALCONST,SymbolType.NEWLINE, yytext()); } + "Infinity" { return new ParsedSymbol(SymbolGroup.GLOBALCONST,SymbolType.INFINITY, yytext()); } + "NaN" { return new ParsedSymbol(SymbolGroup.GLOBALCONST,SymbolType.NAN, yytext()); } + "getVersion" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.GETVERSION, yytext()); } + "call" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.CALL, yytext()); } + "loadMovieNum" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.LOADMOVIENUM, yytext()); } + "loadVariablesNum" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.LOADVARIABLESNUM, yytext()); } + "printAsBitmapNum" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.PRINTASBITMAPNUM, yytext()); } + "printNum" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.PRINTNUM, yytext()); } + "printAsBitmap" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.PRINTASBITMAP, yytext()); } + "print" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.PRINT, yytext()); } + "unloadMovie" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.UNLOADMOVIE, yytext()); } + "unloadMovieNum" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.UNLOADMOVIENUM, yytext()); } + "fscommand" { return new ParsedSymbol(SymbolGroup.GLOBALFUNC,SymbolType.FSCOMMAND, yytext()); } /* operators */ - "(" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.PARENT_OPEN,yytext()); } - ")" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.PARENT_CLOSE,yytext()); } - "{" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.CURLY_OPEN,yytext()); } - "}" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.CURLY_CLOSE,yytext()); } - "[" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.BRACKET_OPEN,yytext()); } - "]" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.BRACKET_CLOSE,yytext()); } - ";" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.SEMICOLON,yytext()); } - "," { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.COMMA,yytext()); } - "..." { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.REST,yytext()); } - "." { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.DOT,yytext()); } - "=" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN,yytext()); } - ">" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.GREATER_THAN,yytext()); } - "<" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.LOWER_THAN,yytext()); } - "!" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.NOT,yytext()); } - "~" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.NEGATE,yytext()); } - "?" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.TERNAR,yytext()); } - ":" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.COLON,yytext()); } - "===" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.STRICT_EQUALS,yytext()); } - "==" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.EQUALS,yytext()); } - "<=" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.LOWER_EQUAL,yytext()); } - ">=" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.GREATER_EQUAL,yytext()); } - "!==" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.STRICT_NOT_EQUAL,yytext()); } - "!=" | "<>" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.NOT_EQUAL,yytext()); } - "&&" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.AND,yytext()); } - "||" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.OR,yytext()); } - "++" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.INCREMENT,yytext()); } - "--" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.DECREMENT,yytext()); } - "+" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.PLUS,yytext()); } - "-" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.MINUS,yytext()); } - "*" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.MULTIPLY,yytext()); } - "/" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.DIVIDE,yytext()); } - "&" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.BITAND,yytext()); } - "|" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.BITOR,yytext()); } - "^" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.XOR,yytext()); } - "%" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.MODULO,yytext()); } - "<<" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.SHIFT_LEFT,yytext()); } - ">>" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.SHIFT_RIGHT,yytext()); } - ">>>" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.USHIFT_RIGHT,yytext()); } - "+=" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_PLUS,yytext()); } - "-=" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_MINUS,yytext()); } - "*=" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_MULTIPLY,yytext()); } - "/=" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_DIVIDE,yytext()); } - "&=" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_BITAND,yytext()); } - "|=" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_BITOR,yytext()); } - "^=" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_XOR,yytext()); } - "%=" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_MODULO,yytext()); } - "<<=" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_SHIFT_LEFT,yytext()); } - ">>=" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_SHIFT_RIGHT,yytext()); } - ">>>=" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_USHIFT_RIGHT,yytext()); } - "as" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.AS,yytext()); } - "delete" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.DELETE,yytext()); } - "instanceof" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.INSTANCEOF,yytext()); } - "is" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.IS,yytext()); } - "::" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.NAMESPACE_OP,yytext()); } - "new" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.NEW,yytext()); } - "typeof" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.TYPEOF,yytext()); } - "void" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.VOID,yytext()); } - "@" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ATTRIBUTE,yytext()); } - "and" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.FULLAND,yytext()); } - "or" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.FULLOR,yytext()); } + "(" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.PARENT_OPEN, yytext()); } + ")" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.PARENT_CLOSE, yytext()); } + "{" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.CURLY_OPEN, yytext()); } + "}" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.CURLY_CLOSE, yytext()); } + "[" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.BRACKET_OPEN, yytext()); } + "]" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.BRACKET_CLOSE, yytext()); } + ";" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.SEMICOLON, yytext()); } + "," { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.COMMA, yytext()); } + "..." { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.REST, yytext()); } + "." { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.DOT, yytext()); } + "=" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN, yytext()); } + ">" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.GREATER_THAN, yytext()); } + "<" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.LOWER_THAN, yytext()); } + "!" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.NOT, yytext()); } + "~" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.NEGATE, yytext()); } + "?" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.TERNAR, yytext()); } + ":" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.COLON, yytext()); } + "===" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.STRICT_EQUALS, yytext()); } + "==" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.EQUALS, yytext()); } + "<=" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.LOWER_EQUAL, yytext()); } + ">=" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.GREATER_EQUAL, yytext()); } + "!==" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.STRICT_NOT_EQUAL, yytext()); } + "!=" | "<>" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.NOT_EQUAL, yytext()); } + "&&" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.AND, yytext()); } + "||" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.OR, yytext()); } + "++" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.INCREMENT, yytext()); } + "--" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.DECREMENT, yytext()); } + "+" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.PLUS, yytext()); } + "-" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.MINUS, yytext()); } + "*" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.MULTIPLY, yytext()); } + "/" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.DIVIDE, yytext()); } + "&" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.BITAND, yytext()); } + "|" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.BITOR, yytext()); } + "^" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.XOR, yytext()); } + "%" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.MODULO, yytext()); } + "<<" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.SHIFT_LEFT, yytext()); } + ">>" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.SHIFT_RIGHT, yytext()); } + ">>>" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.USHIFT_RIGHT, yytext()); } + "+=" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_PLUS, yytext()); } + "-=" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_MINUS, yytext()); } + "*=" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_MULTIPLY, yytext()); } + "/=" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_DIVIDE, yytext()); } + "&=" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_BITAND, yytext()); } + "|=" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_BITOR, yytext()); } + "^=" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_XOR, yytext()); } + "%=" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_MODULO, yytext()); } + "<<=" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_SHIFT_LEFT, yytext()); } + ">>=" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_SHIFT_RIGHT, yytext()); } + ">>>=" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ASSIGN_USHIFT_RIGHT, yytext()); } + "as" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.AS, yytext()); } + "delete" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.DELETE, yytext()); } + "instanceof" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.INSTANCEOF, yytext()); } + "is" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.IS, yytext()); } + "::" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.NAMESPACE_OP, yytext()); } + "new" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.NEW, yytext()); } + "typeof" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.TYPEOF, yytext()); } + "void" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.VOID, yytext()); } + "@" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.ATTRIBUTE, yytext()); } + "and" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.FULLAND, yytext()); } + "or" { return new ParsedSymbol(SymbolGroup.OPERATOR,SymbolType.FULLOR, yytext()); } /* string literal */ \" { diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineFont2Tag.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineFont2Tag.java index d56b1c21a..76741195e 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineFont2Tag.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineFont2Tag.java @@ -191,8 +191,16 @@ public class DefineFont2Tag extends FontTag { return baos.toByteArray(); } + /** + * Constructor + * @param swf + */ public DefineFont2Tag(SWF swf) { super(swf, ID, "DefineFont2", null); + fontId = swf.getNextCharacterId(); + fontName = "New font"; + glyphShapeTable = new ArrayList<>(); + codeTable = new ArrayList<>(); } /** diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineFont3Tag.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineFont3Tag.java index 0ac8d9c4d..b771fd6f2 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineFont3Tag.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineFont3Tag.java @@ -16,6 +16,7 @@ */ package com.jpexs.decompiler.flash.tags; +import com.jpexs.decompiler.flash.SWF; import com.jpexs.decompiler.flash.SWFInputStream; import com.jpexs.decompiler.flash.SWFOutputStream; import com.jpexs.decompiler.flash.abc.CopyOutputStream; @@ -110,6 +111,18 @@ public class DefineFont3Tag extends FontTag { return codeTable.indexOf((int) c); } + /** + * Constructor + * @param swf + */ + public DefineFont3Tag(SWF swf) { + super(swf, ID, "DefineFont3", null); + fontId = swf.getNextCharacterId(); + fontName = "New font"; + glyphShapeTable = new ArrayList<>(); + codeTable = new ArrayList<>(); + } + public DefineFont3Tag(SWFInputStream sis, ByteArrayRange data) throws IOException { super(sis.getSwf(), ID, "DefineFont3", data); fontId = sis.readUI16("fontId"); diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineFont4Tag.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineFont4Tag.java index a1a6f8a26..850c74ce3 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineFont4Tag.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineFont4Tag.java @@ -12,9 +12,11 @@ * 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.tags; +import com.jpexs.decompiler.flash.SWF; import com.jpexs.decompiler.flash.SWFInputStream; import com.jpexs.decompiler.flash.SWFOutputStream; import com.jpexs.decompiler.flash.tags.base.CharacterTag; @@ -46,6 +48,16 @@ public class DefineFont4Tag extends CharacterTag { return fontID; } + /** + * Constructor + * @param swf + */ + public DefineFont4Tag(SWF swf) { + super(swf, ID, "DefineFont4", null); + fontID = swf.getNextCharacterId(); + fontName = "New font"; + } + public DefineFont4Tag(SWFInputStream sis, ByteArrayRange data) throws IOException { super(sis.getSwf(), ID, "DefineFont4", data); fontID = sis.readUI16("fontID"); diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineFontTag.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineFontTag.java index f8984a4bd..8c210d526 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineFontTag.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/DefineFontTag.java @@ -142,6 +142,8 @@ public class DefineFontTag extends FontTag { */ public DefineFontTag(SWF swf) { super(swf, ID, "DefineFont", null); + fontId = swf.getNextCharacterId(); + glyphShapeTable = new ArrayList<>(); } /** @@ -154,15 +156,18 @@ public class DefineFontTag extends FontTag { public DefineFontTag(SWFInputStream sis, ByteArrayRange data) throws IOException { super(sis.getSwf(), ID, "DefineFont", data); fontId = sis.readUI16("fontId"); - int firstOffset = sis.readUI16("firstOffset"); - int nGlyphs = firstOffset / 2; glyphShapeTable = new ArrayList<>(); - for (int i = 1; i < nGlyphs; i++) { - sis.readUI16("offset"); //offset - } - for (int i = 0; i < nGlyphs; i++) { - glyphShapeTable.add(sis.readSHAPE(1, false, "shape")); + if (sis.available() > 0) { + int firstOffset = sis.readUI16("firstOffset"); + int nGlyphs = firstOffset / 2; + + for (int i = 1; i < nGlyphs; i++) { + sis.readUI16("offset"); //offset + } + for (int i = 0; i < nGlyphs; i++) { + glyphShapeTable.add(sis.readSHAPE(1, false, "shape")); + } } } diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/base/FontTag.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/base/FontTag.java index df118cd19..ab726875c 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/base/FontTag.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/base/FontTag.java @@ -274,7 +274,7 @@ public abstract class FontTag extends CharacterTag implements AloneTag, Drawable if (installedFontsByName.containsKey(fontName)) { return fontName; } - if (fontName.contains("_")) { + if (fontName != null && fontName.contains("_")) { String beforeUnderscore = fontName.substring(0, fontName.indexOf('_')); if (installedFontsByName.containsKey(beforeUnderscore)) { return beforeUnderscore; diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/gfx/DefineCompactedFont.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/gfx/DefineCompactedFont.java index 93a2b47da..a5b3facbf 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/gfx/DefineCompactedFont.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/gfx/DefineCompactedFont.java @@ -46,8 +46,6 @@ import java.io.IOException; import java.io.OutputStream; import java.util.ArrayList; import java.util.List; -import java.util.logging.Level; -import java.util.logging.Logger; import javax.swing.JPanel; /** @@ -83,6 +81,16 @@ public final class DefineCompactedFont extends FontTag implements DrawableTag { return baos.toByteArray(); } + /** + * Constructor + * @param swf + */ + public DefineCompactedFont(SWF swf) { + super(swf, ID, "DefineCompactedFont", null); + fontId = swf.getNextCharacterId(); + fonts = new ArrayList<>(); + } + /** * Constructor * diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/text/text.flex b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/text/text.flex index 08d9f1be8..7bfcefb0a 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/text/text.flex +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/tags/text/text.flex @@ -31,9 +31,9 @@ package com.jpexs.decompiler.flash.tags.text; %{ - StringBuffer string = null; - boolean finish=false; - String parameterName=null; + StringBuffer string = null; + boolean finish = false; + String parameterName = null; /** @@ -65,28 +65,28 @@ Divider = [ \r\n]+ { "[" { yybegin(PARAMETER); - if(string!=null){ - String ret=string.toString(); + if(string != null){ + String ret = string.toString(); string = null; return new ParsedSymbol(SymbolType.TEXT,ret.toString()); } } /* 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 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( '\\' ); } /* error cases */ \\. { throw new ParseException("Illegal escape sequence \""+yytext()+"\"",yyline+1); } - . { if(string==null) string=new StringBuffer(); string.append( yytext() ); } - <> { if(finish){return null;}else{finish=true; return new ParsedSymbol(SymbolType.TEXT,string==null?null:string.toString());}} + . { if (string == null) string = new StringBuffer(); string.append( yytext() ); } + <> { if (finish) {return null;} else {finish=true; return new ParsedSymbol(SymbolType.TEXT, string == null ? null : string.toString());}} } { @@ -104,7 +104,7 @@ Divider = [ \r\n]+ {Divider} {} {Value} { yybegin(PARAMETER); - return new ParsedSymbol(SymbolType.PARAMETER,new Object[]{parameterName,yytext()}); + return new ParsedSymbol(SymbolType.PARAMETER, new Object[] {parameterName, yytext()}); } "]" { yybegin(YYINITIAL); diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/types/annotations/parser/conditions.flex b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/types/annotations/parser/conditions.flex index e2a48e7a2..5e79a20cf 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/types/annotations/parser/conditions.flex +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/types/annotations/parser/conditions.flex @@ -49,14 +49,14 @@ import java.util.Stack; return yyline+1; } - private Stack pushedBack=new Stack(); + private Stack pushedBack = new Stack(); public void pushback(ConditionToken symb) { pushedBack.push(symb); } public ConditionToken lex() throws java.io.IOException, ParseException{ - ConditionToken ret=null; + ConditionToken ret = null; if(!pushedBack.isEmpty()){ ret = pushedBack.pop(); }else{ @@ -73,13 +73,13 @@ Field = [A-Za-z0-9_\.]+ { {Field} { - return new ConditionToken(ConditionTokenType.FIELD,yytext()); + return new ConditionToken(ConditionTokenType.FIELD, yytext()); } - "||" | "|" { return new ConditionToken(ConditionTokenType.OR,yytext()); } - "&&" | "," | "&" { return new ConditionToken(ConditionTokenType.AND,yytext()); } - "!" { return new ConditionToken(ConditionTokenType.NOT,yytext()); } - "(" { return new ConditionToken(ConditionTokenType.PARENT_OPEN,yytext()); } - ")" { return new ConditionToken(ConditionTokenType.PARENT_CLOSE,yytext()); } + "||" | "|" { return new ConditionToken(ConditionTokenType.OR, yytext()); } + "&&" | "," | "&" { return new ConditionToken(ConditionTokenType.AND, yytext()); } + "!" { return new ConditionToken(ConditionTokenType.NOT, yytext()); } + "(" { return new ConditionToken(ConditionTokenType.PARENT_OPEN, yytext()); } + ")" { return new ConditionToken(ConditionTokenType.PARENT_CLOSE, yytext()); } . { } <> {return null;} } \ No newline at end of file diff --git a/src/com/jpexs/decompiler/flash/gui/MainPanel.java b/src/com/jpexs/decompiler/flash/gui/MainPanel.java index 7fe44190a..2cee4d885 100644 --- a/src/com/jpexs/decompiler/flash/gui/MainPanel.java +++ b/src/com/jpexs/decompiler/flash/gui/MainPanel.java @@ -1890,7 +1890,7 @@ public final class MainPanel extends JPanel implements ActionListener, TreeSelec if (dumpInfo != null) { setDumpTreeSelectedNode(dumpInfo); } - + reload(true); } diff --git a/src/com/jpexs/decompiler/flash/gui/tagtree/TagTree.java b/src/com/jpexs/decompiler/flash/gui/tagtree/TagTree.java index d3a78f30b..cbb6be40b 100644 --- a/src/com/jpexs/decompiler/flash/gui/tagtree/TagTree.java +++ b/src/com/jpexs/decompiler/flash/gui/tagtree/TagTree.java @@ -224,7 +224,7 @@ public class TagTree extends JTree implements ActionListener { if (t instanceof ImageTag) { return TreeNodeType.IMAGE; } - + // DefineShape, DefineShape2, DefineShape3, DefineShape4 if (t instanceof ShapeTag) { return TreeNodeType.SHAPE; @@ -238,12 +238,12 @@ public class TagTree extends JTree implements ActionListener { if (t instanceof DefineSpriteTag) { return TreeNodeType.SPRITE; } - + // DefineButton, DefineButton2 if (t instanceof ButtonTag) { return TreeNodeType.BUTTON; } - + if (t instanceof DefineVideoStreamTag) { return TreeNodeType.MOVIE; } @@ -259,24 +259,24 @@ public class TagTree extends JTree implements ActionListener { if (t instanceof ASMSource) { return TreeNodeType.AS; } - + if (t instanceof ScriptPack) { return TreeNodeType.AS; } - + if (t instanceof AS2Package) { return TreeNodeType.PACKAGE; } - + if (t instanceof AS3Package) { return TreeNodeType.PACKAGE; } - + if ((t instanceof Frame) || (t instanceof FrameScript)) { return TreeNodeType.FRAME; } - + if (t instanceof ShowFrameTag) { return TreeNodeType.SHOW_FRAME; } @@ -349,10 +349,10 @@ public class TagTree extends JTree implements ActionListener { ret = new ArrayList<>(); break; } - + return ret; } - + public void createContextMenu(final List swfs) { final JPopupMenu contextPopupMenu = new JPopupMenu(); @@ -485,7 +485,8 @@ public class TagTree extends JTree implements ActionListener { public void actionPerformed(ActionEvent ae) { try { SWF swf = folderItem.getSwf(); - swf.tags.add((Tag) cl.getDeclaredConstructor(SWF.class).newInstance(new Object[] {swf})); + swf.tags.add((Tag) cl.getDeclaredConstructor(SWF.class).newInstance(new Object[]{swf})); + swf.updateCharacters(); mainPanel.refreshTree(); } catch (InstantiationException | IllegalAccessException | NoSuchMethodException | SecurityException | IllegalArgumentException | InvocationTargetException ex) { Logger.getLogger(TagTree.class.getName()).log(Level.SEVERE, null, ex); @@ -496,7 +497,7 @@ public class TagTree extends JTree implements ActionListener { } addTagMenu.setVisible(true); } - + if (item instanceof Tag && swfs.size() > 1) { final Tag tag = (Tag) item; moveTagMenu.removeAll();