#844 lowercase/uppercase convertion in DefineTexts

This commit is contained in:
honfika@gmail.com
2015-04-07 20:26:49 +02:00
parent c9b5434d75
commit 22751367cd
54 changed files with 557 additions and 503 deletions

View File

@@ -522,7 +522,7 @@ public final class SWF implements SWFContainerItem, Timelined {
if (characters.containsKey(characterId)) {
logger.log(Level.SEVERE, "SWF already contains characterId={0}", characterId);
}
if (characterId != 0) {
characters.put(characterId, (CharacterTag) t);
}

View File

@@ -172,7 +172,7 @@ public class ActionScriptParser {
}
private GraphTargetItem memberOrCall(TypeItem thisType, String pkg, Reference<Boolean> needsActivation, List<String> importedClasses, List<Integer> openedNamespaces, GraphTargetItem newcmds, HashMap<String, Integer> registerVars, boolean inFunction, boolean inMethod, List<AssignableAVM2Item> variables) throws IOException, AVM2ParseException {
if(debugMode){
if (debugMode) {
System.out.println("memberOrCall:");
}
ParsedSymbol s = lex();
@@ -213,8 +213,8 @@ public class ActionScriptParser {
}
lexer.pushback(s);
if(debugMode){
if (debugMode) {
System.out.println("/memberOrCall");
}
return ret;
@@ -248,7 +248,7 @@ public class ActionScriptParser {
}
private GraphTargetItem member(TypeItem thisType, String pkg, Reference<Boolean> needsActivation, List<String> importedClasses, List<Integer> openedNamespaces, GraphTargetItem obj, HashMap<String, Integer> registerVars, boolean inFunction, boolean inMethod, List<AssignableAVM2Item> variables) throws IOException, AVM2ParseException {
if(debugMode){
if (debugMode) {
System.out.println("member:");
}
GraphTargetItem ret = obj;
@@ -307,13 +307,13 @@ public class ActionScriptParser {
s = lex();
}
}
if(s.type.getPrecedence() == GraphTargetItem.PRECEDENCE_ASSIGMENT){
if (s.type.getPrecedence() == GraphTargetItem.PRECEDENCE_ASSIGMENT) {
ret = expression1(ret, s.type.getPrecedence(), thisType, pkg, needsActivation, importedClasses, openedNamespaces, inMethod, registerVars, inFunction, inMethod, false, variables);
}else{
} else {
lexer.pushback(s);
}
if(debugMode){
if (debugMode) {
System.out.println("/member");
}
return ret;
@@ -1390,7 +1390,7 @@ public class ActionScriptParser {
if (firstCommand instanceof NameAVM2Item) {
NameAVM2Item nai = (NameAVM2Item) firstCommand;
if (nai.isDefinition() && nai.getAssignedValue() == null) { //??? WUT
firstCommand = expression1(firstCommand,firstCommand.getPrecedence(),thisType, pkg, needsActivation, importedClasses,openedNamespaces,true, registerVars, inFunction, inMethod, true, variables);
firstCommand = expression1(firstCommand, firstCommand.getPrecedence(), thisType, pkg, needsActivation, importedClasses, openedNamespaces, true, registerVars, inFunction, inMethod, true, variables);
}
}
InAVM2Item inexpr = null;
@@ -1682,9 +1682,9 @@ public class ActionScriptParser {
/*
fix > :
a || b > c => a || (b > c)
a < 0 || (b > c) + 1
*/
if (expr instanceof BinaryOp) {
BinaryOp bo = (BinaryOp) expr;
@@ -1787,7 +1787,7 @@ public class ActionScriptParser {
private GraphTargetItem expression(TypeItem thisType, String pkg, Reference<Boolean> needsActivation, List<String> importedClasses, List<Integer> openedNamespaces, boolean allowEmpty, HashMap<String, Integer> registerVars, boolean inFunction, boolean inMethod, boolean allowRemainder, List<AssignableAVM2Item> variables) throws IOException, AVM2ParseException {
GraphTargetItem prim = expressionPrimary(thisType, pkg, needsActivation, importedClasses, openedNamespaces, allowEmpty, registerVars, inFunction, inMethod, allowRemainder, variables);
if(prim==null){
if (prim == null) {
return null;
}
return expression1(prim, GraphTargetItem.NOPRECEDENCE, thisType, pkg, needsActivation, importedClasses, openedNamespaces, allowEmpty, registerVars, inFunction, inMethod, allowRemainder, variables);
@@ -1801,7 +1801,7 @@ public class ActionScriptParser {
*/
private void xmlToGreaterFix(ParsedSymbol symb) {
if (symb.isType(SymbolType.XML_STARTVARTAG_BEGIN, SymbolType.XML_STARTTAG_BEGIN)) {
lexer.yypushbackstr(symb.value.toString().substring(1)); //parse again as GREATER_THAN
lexer.yypushbackstr(symb.value.toString().substring(1)); //parse again as GREATER_THAN
symb.type = SymbolType.GREATER_THAN;
symb.group = SymbolGroup.OPERATOR;
}
@@ -2027,7 +2027,7 @@ public class ActionScriptParser {
default:
if (lhs instanceof ParenthesisItem) {
GraphTargetItem coerced = expression(thisType, pkg, needsActivation, importedClasses, openedNamespaces, registerVars, inFunction, inMethod, allowRemainder, variables);
if (coerced!=null && isType(((ParenthesisItem) lhs).value)) {
if (coerced != null && isType(((ParenthesisItem) lhs).value)) {
lhs = new CoerceAVM2Item(null, ((ParenthesisItem) lhs).value, coerced);
}
}
@@ -2262,7 +2262,7 @@ public class ActionScriptParser {
/*if (allowRemainder && existsRemainder) {
GraphTargetItem rem = ret;
do {
rem = expressionRemainder(thisType, pkg, needsActivation, openedNamespaces, rem, registerVars, inFunction, inMethod, assocRight, variables, importedClasses);
rem = expressionRemainder(thisType, pkg, needsActivation, openedNamespaces, rem, registerVars, inFunction, inMethod, assocRight, variables, importedClasses);
if (rem != null) {
ret = rem;
}

View File

@@ -334,7 +334,7 @@ public class NameAVM2Item extends AssignableAVM2Item {
);
} else {
return toSourceMerge(localData, generator,
(decrement? ins(isInteger ? new DecLocalIIns() : new DecLocalIns(), regNumber):ins(isInteger ? new IncLocalIIns() : new IncLocalIns(), regNumber)));
(decrement ? ins(isInteger ? new DecLocalIIns() : new DecLocalIns(), regNumber) : ins(isInteger ? new IncLocalIIns() : new IncLocalIns(), regNumber)));
}
}
return toSourceMerge(localData, generator,

View File

@@ -1,16 +1,16 @@
/*
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
*
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 3.0 of the License, or (at your option) any later version.
*
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library.
*/
@@ -25,116 +25,116 @@ import com.jpexs.decompiler.graph.GraphTargetItem;
public enum SymbolType {
//Keywords
BREAK ,
CASE ,
CONTINUE ,
DEFAULT ,
DO ,
WHILE ,
ELSE ,
FOR ,
EACH ,
IN (GraphTargetItem.PRECEDENCE_RELATIONAL,true),
IF ,
RETURN ,
SUPER (GraphTargetItem.PRECEDENCE_PRIMARY,false),
SWITCH ,
THROW ,
TRY ,
CATCH ,
FINALLY ,
WITH ,
DYNAMIC ,
INTERNAL ,
OVERRIDE ,
PRIVATE ,
PROTECTED ,
PUBLIC ,
STATIC ,
CLASS ,
CONST ,
EXTENDS ,
FUNCTION (GraphTargetItem.PRECEDENCE_PRIMARY,false),
GET ,
IMPLEMENTS ,
INTERFACE ,
NAMESPACE ,
PACKAGE ,
SET ,
VAR ,
IMPORT ,
USE ,
FALSE (GraphTargetItem.PRECEDENCE_PRIMARY,false),
NULL (GraphTargetItem.PRECEDENCE_PRIMARY,false),
THIS (GraphTargetItem.PRECEDENCE_PRIMARY,false),
TRUE (GraphTargetItem.PRECEDENCE_PRIMARY,false),
BREAK,
CASE,
CONTINUE,
DEFAULT,
DO,
WHILE,
ELSE,
FOR,
EACH,
IN(GraphTargetItem.PRECEDENCE_RELATIONAL, true),
IF,
RETURN,
SUPER(GraphTargetItem.PRECEDENCE_PRIMARY, false),
SWITCH,
THROW,
TRY,
CATCH,
FINALLY,
WITH,
DYNAMIC,
INTERNAL,
OVERRIDE,
PRIVATE,
PROTECTED,
PUBLIC,
STATIC,
CLASS,
CONST,
EXTENDS,
FUNCTION(GraphTargetItem.PRECEDENCE_PRIMARY, false),
GET,
IMPLEMENTS,
INTERFACE,
NAMESPACE,
PACKAGE,
SET,
VAR,
IMPORT,
USE,
FALSE(GraphTargetItem.PRECEDENCE_PRIMARY, false),
NULL(GraphTargetItem.PRECEDENCE_PRIMARY, false),
THIS(GraphTargetItem.PRECEDENCE_PRIMARY, false),
TRUE(GraphTargetItem.PRECEDENCE_PRIMARY, false),
//Operators
PARENT_OPEN (GraphTargetItem.PRECEDENCE_PRIMARY,false),
PARENT_CLOSE (GraphTargetItem.PRECEDENCE_PRIMARY,false),
CURLY_OPEN (GraphTargetItem.PRECEDENCE_PRIMARY,false),
CURLY_CLOSE (GraphTargetItem.PRECEDENCE_PRIMARY,false),
BRACKET_OPEN (GraphTargetItem.PRECEDENCE_PRIMARY,false),
BRACKET_CLOSE (GraphTargetItem.PRECEDENCE_PRIMARY,false),
SEMICOLON ,
COMMA (GraphTargetItem.PRECEDENCE_COMMA,false),
REST ,
DOT (GraphTargetItem.PRECEDENCE_PRIMARY,false),
ASSIGN (GraphTargetItem.PRECEDENCE_ASSIGMENT,true,true),
GREATER_THAN (GraphTargetItem.PRECEDENCE_RELATIONAL,true),
LOWER_THAN (GraphTargetItem.PRECEDENCE_RELATIONAL,true),
NOT(GraphTargetItem.PRECEDENCE_UNARY,false),
NEGATE (GraphTargetItem.PRECEDENCE_UNARY,false),
TERNAR (GraphTargetItem.PRECEDENCE_CONDITIONAL,true,true), /*!! ternar !!!*/
COLON(GraphTargetItem.PRECEDENCE_CONDITIONAL,false),/*!! ternar !!!*/
EQUALS (GraphTargetItem.PRECEDENCE_EQUALITY,true),
STRICT_EQUALS (GraphTargetItem.PRECEDENCE_EQUALITY,true),
LOWER_EQUAL (GraphTargetItem.PRECEDENCE_RELATIONAL,true),
GREATER_EQUAL (GraphTargetItem.PRECEDENCE_RELATIONAL,true),
NOT_EQUAL (GraphTargetItem.PRECEDENCE_EQUALITY,true),
STRICT_NOT_EQUAL (GraphTargetItem.PRECEDENCE_EQUALITY,true),
AND(GraphTargetItem.PRECEDENCE_LOGICALAND,true),
OR(GraphTargetItem.PRECEDENCE_LOGICALOR,true),
INCREMENT(GraphTargetItem.PRECEDENCE_POSTFIX,false),//OR Unary
DECREMENT(GraphTargetItem.PRECEDENCE_POSTFIX,false), //OR Unary
PLUS(GraphTargetItem.PRECEDENCE_ADDITIVE,true),
MINUS(GraphTargetItem.PRECEDENCE_ADDITIVE,true), //OR Unary
MULTIPLY(GraphTargetItem.PRECEDENCE_MULTIPLICATIVE,true),
DIVIDE(GraphTargetItem.PRECEDENCE_MULTIPLICATIVE,true),
BITAND(GraphTargetItem.PRECEDENCE_BITWISEAND,true),
BITOR(GraphTargetItem.PRECEDENCE_BITWISEOR,true),
XOR(GraphTargetItem.PRECEDENCE_BITWISEXOR,true),
MODULO(GraphTargetItem.PRECEDENCE_BITWISESHIFT,true),
SHIFT_LEFT(GraphTargetItem.PRECEDENCE_BITWISESHIFT,true),
SHIFT_RIGHT(GraphTargetItem.PRECEDENCE_BITWISESHIFT,true),
USHIFT_RIGHT(GraphTargetItem.PRECEDENCE_BITWISESHIFT,true),
ASSIGN_PLUS(GraphTargetItem.PRECEDENCE_ASSIGMENT,true,true),
ASSIGN_MINUS(GraphTargetItem.PRECEDENCE_ASSIGMENT,true,true),
ASSIGN_MULTIPLY(GraphTargetItem.PRECEDENCE_ASSIGMENT,true,true),
ASSIGN_DIVIDE(GraphTargetItem.PRECEDENCE_ASSIGMENT,true,true),
ASSIGN_BITAND(GraphTargetItem.PRECEDENCE_ASSIGMENT,true,true),
ASSIGN_BITOR(GraphTargetItem.PRECEDENCE_ASSIGMENT,true,true),
ASSIGN_XOR(GraphTargetItem.PRECEDENCE_ASSIGMENT,true,true),
ASSIGN_MODULO(GraphTargetItem.PRECEDENCE_ASSIGMENT,true,true),
ASSIGN_SHIFT_LEFT(GraphTargetItem.PRECEDENCE_ASSIGMENT,true,true),
ASSIGN_SHIFT_RIGHT(GraphTargetItem.PRECEDENCE_ASSIGMENT,true,true),
ASSIGN_USHIFT_RIGHT(GraphTargetItem.PRECEDENCE_ASSIGMENT,true,true),
AS(GraphTargetItem.PRECEDENCE_RELATIONAL,true),
DELETE(GraphTargetItem.PRECEDENCE_UNARY,false),
INSTANCEOF(GraphTargetItem.PRECEDENCE_RELATIONAL,true),
IS(GraphTargetItem.PRECEDENCE_RELATIONAL,true),
NAMESPACE_OP (GraphTargetItem.PRECEDENCE_PRIMARY,false),
NEW(GraphTargetItem.PRECEDENCE_PRIMARY,false),
TYPEOF (GraphTargetItem.PRECEDENCE_UNARY,false),
VOID ,
PARENT_OPEN(GraphTargetItem.PRECEDENCE_PRIMARY, false),
PARENT_CLOSE(GraphTargetItem.PRECEDENCE_PRIMARY, false),
CURLY_OPEN(GraphTargetItem.PRECEDENCE_PRIMARY, false),
CURLY_CLOSE(GraphTargetItem.PRECEDENCE_PRIMARY, false),
BRACKET_OPEN(GraphTargetItem.PRECEDENCE_PRIMARY, false),
BRACKET_CLOSE(GraphTargetItem.PRECEDENCE_PRIMARY, false),
SEMICOLON,
COMMA(GraphTargetItem.PRECEDENCE_COMMA, false),
REST,
DOT(GraphTargetItem.PRECEDENCE_PRIMARY, false),
ASSIGN(GraphTargetItem.PRECEDENCE_ASSIGMENT, true, true),
GREATER_THAN(GraphTargetItem.PRECEDENCE_RELATIONAL, true),
LOWER_THAN(GraphTargetItem.PRECEDENCE_RELATIONAL, true),
NOT(GraphTargetItem.PRECEDENCE_UNARY, false),
NEGATE(GraphTargetItem.PRECEDENCE_UNARY, false),
TERNAR(GraphTargetItem.PRECEDENCE_CONDITIONAL, true, true), /*!! ternar !!!*/
COLON(GraphTargetItem.PRECEDENCE_CONDITIONAL, false),/*!! ternar !!!*/
EQUALS(GraphTargetItem.PRECEDENCE_EQUALITY, true),
STRICT_EQUALS(GraphTargetItem.PRECEDENCE_EQUALITY, true),
LOWER_EQUAL(GraphTargetItem.PRECEDENCE_RELATIONAL, true),
GREATER_EQUAL(GraphTargetItem.PRECEDENCE_RELATIONAL, true),
NOT_EQUAL(GraphTargetItem.PRECEDENCE_EQUALITY, true),
STRICT_NOT_EQUAL(GraphTargetItem.PRECEDENCE_EQUALITY, true),
AND(GraphTargetItem.PRECEDENCE_LOGICALAND, true),
OR(GraphTargetItem.PRECEDENCE_LOGICALOR, true),
INCREMENT(GraphTargetItem.PRECEDENCE_POSTFIX, false),//OR Unary
DECREMENT(GraphTargetItem.PRECEDENCE_POSTFIX, false), //OR Unary
PLUS(GraphTargetItem.PRECEDENCE_ADDITIVE, true),
MINUS(GraphTargetItem.PRECEDENCE_ADDITIVE, true), //OR Unary
MULTIPLY(GraphTargetItem.PRECEDENCE_MULTIPLICATIVE, true),
DIVIDE(GraphTargetItem.PRECEDENCE_MULTIPLICATIVE, true),
BITAND(GraphTargetItem.PRECEDENCE_BITWISEAND, true),
BITOR(GraphTargetItem.PRECEDENCE_BITWISEOR, true),
XOR(GraphTargetItem.PRECEDENCE_BITWISEXOR, true),
MODULO(GraphTargetItem.PRECEDENCE_BITWISESHIFT, true),
SHIFT_LEFT(GraphTargetItem.PRECEDENCE_BITWISESHIFT, true),
SHIFT_RIGHT(GraphTargetItem.PRECEDENCE_BITWISESHIFT, true),
USHIFT_RIGHT(GraphTargetItem.PRECEDENCE_BITWISESHIFT, true),
ASSIGN_PLUS(GraphTargetItem.PRECEDENCE_ASSIGMENT, true, true),
ASSIGN_MINUS(GraphTargetItem.PRECEDENCE_ASSIGMENT, true, true),
ASSIGN_MULTIPLY(GraphTargetItem.PRECEDENCE_ASSIGMENT, true, true),
ASSIGN_DIVIDE(GraphTargetItem.PRECEDENCE_ASSIGMENT, true, true),
ASSIGN_BITAND(GraphTargetItem.PRECEDENCE_ASSIGMENT, true, true),
ASSIGN_BITOR(GraphTargetItem.PRECEDENCE_ASSIGMENT, true, true),
ASSIGN_XOR(GraphTargetItem.PRECEDENCE_ASSIGMENT, true, true),
ASSIGN_MODULO(GraphTargetItem.PRECEDENCE_ASSIGMENT, true, true),
ASSIGN_SHIFT_LEFT(GraphTargetItem.PRECEDENCE_ASSIGMENT, true, true),
ASSIGN_SHIFT_RIGHT(GraphTargetItem.PRECEDENCE_ASSIGMENT, true, true),
ASSIGN_USHIFT_RIGHT(GraphTargetItem.PRECEDENCE_ASSIGMENT, true, true),
AS(GraphTargetItem.PRECEDENCE_RELATIONAL, true),
DELETE(GraphTargetItem.PRECEDENCE_UNARY, false),
INSTANCEOF(GraphTargetItem.PRECEDENCE_RELATIONAL, true),
IS(GraphTargetItem.PRECEDENCE_RELATIONAL, true),
NAMESPACE_OP(GraphTargetItem.PRECEDENCE_PRIMARY, false),
NEW(GraphTargetItem.PRECEDENCE_PRIMARY, false),
TYPEOF(GraphTargetItem.PRECEDENCE_UNARY, false),
VOID,
ATTRIBUTE,
//Other
STRING(GraphTargetItem.PRECEDENCE_PRIMARY,false),
STRING(GraphTargetItem.PRECEDENCE_PRIMARY, false),
COMMENT,
//XML,
IDENTIFIER(GraphTargetItem.PRECEDENCE_PRIMARY,false),
INTEGER(GraphTargetItem.PRECEDENCE_PRIMARY,false),
DOUBLE(GraphTargetItem.PRECEDENCE_PRIMARY,false),
TYPENAME(GraphTargetItem.PRECEDENCE_PRIMARY,false),
IDENTIFIER(GraphTargetItem.PRECEDENCE_PRIMARY, false),
INTEGER(GraphTargetItem.PRECEDENCE_PRIMARY, false),
DOUBLE(GraphTargetItem.PRECEDENCE_PRIMARY, false),
TYPENAME(GraphTargetItem.PRECEDENCE_PRIMARY, false),
EOF,
//TRACE,
//GETURL,
@@ -163,16 +163,16 @@ public enum SymbolType {
//STARTDRAG,
//SUBSTR,
//LENGTH, //string.length
INT(GraphTargetItem.PRECEDENCE_PRIMARY,false),
INT(GraphTargetItem.PRECEDENCE_PRIMARY, false),
//TARGETPATH,
NUMBER_OP(GraphTargetItem.PRECEDENCE_PRIMARY,false),
STRING_OP(GraphTargetItem.PRECEDENCE_PRIMARY,false),
NUMBER_OP(GraphTargetItem.PRECEDENCE_PRIMARY, false),
STRING_OP(GraphTargetItem.PRECEDENCE_PRIMARY, false),
//IFFRAMELOADED,
INFINITY(GraphTargetItem.PRECEDENCE_PRIMARY,false),
INFINITY(GraphTargetItem.PRECEDENCE_PRIMARY, false),
//EVAL,
UNDEFINED(GraphTargetItem.PRECEDENCE_PRIMARY,false),
UNDEFINED(GraphTargetItem.PRECEDENCE_PRIMARY, false),
//NEWLINE,
NAN(GraphTargetItem.PRECEDENCE_PRIMARY,false),
NAN(GraphTargetItem.PRECEDENCE_PRIMARY, false),
//GETVERSION,
//CALL,
//LOADMOVIENUM,
@@ -184,31 +184,33 @@ public enum SymbolType {
//UNLOADMOVIE,
//UNLOADMOVIENUM,
FINAL,
XML_STARTTAG_BEGIN(GraphTargetItem.PRECEDENCE_PRIMARY,false), // <xxx
XML_STARTVARTAG_BEGIN(GraphTargetItem.PRECEDENCE_PRIMARY,false), // <{
XML_STARTTAG_END(GraphTargetItem.PRECEDENCE_PRIMARY,false), // >
XML_FINISHVARTAG_BEGIN(GraphTargetItem.PRECEDENCE_PRIMARY,false), // </{
XML_FINISHTAG(GraphTargetItem.PRECEDENCE_PRIMARY,false), // </xxx>
XML_STARTFINISHTAG_END(GraphTargetItem.PRECEDENCE_PRIMARY,false), // />
XML_COMMENT(GraphTargetItem.PRECEDENCE_PRIMARY,false), // <!-- ... -->
XML_CDATA(GraphTargetItem.PRECEDENCE_PRIMARY,false), //<![CDATA[ ... ]]>
XML_INSTR_BEGIN(GraphTargetItem.PRECEDENCE_PRIMARY,false), // <?xxx
XML_INSTR_END(GraphTargetItem.PRECEDENCE_PRIMARY,false), // ?>
XML_VAR_BEGIN(GraphTargetItem.PRECEDENCE_PRIMARY,false), // {
XML_ATTRIBUTENAME(GraphTargetItem.PRECEDENCE_PRIMARY,false), // aaa=
XML_ATTRIBUTEVALUE(GraphTargetItem.PRECEDENCE_PRIMARY,false), // "vvv"
XML_TEXT(GraphTargetItem.PRECEDENCE_PRIMARY,false),
XML_ATTRNAMEVAR_BEGIN(GraphTargetItem.PRECEDENCE_PRIMARY,false), // {...}=
XML_ATTRVALVAR_BEGIN(GraphTargetItem.PRECEDENCE_PRIMARY,false), // aaa={
XML_INSTRATTRNAMEVAR_BEGIN(GraphTargetItem.PRECEDENCE_PRIMARY,false), // {...}=
XML_INSTRATTRVALVAR_BEGIN(GraphTargetItem.PRECEDENCE_PRIMARY,false), // aaa={
XML_INSTRVARTAG_BEGIN(GraphTargetItem.PRECEDENCE_PRIMARY,false), // <?{
FILTER(GraphTargetItem.PRECEDENCE_PRIMARY,false),
DESCENDANTS(GraphTargetItem.PRECEDENCE_PRIMARY,false),
XML_STARTTAG_BEGIN(GraphTargetItem.PRECEDENCE_PRIMARY, false), // <xxx
XML_STARTVARTAG_BEGIN(GraphTargetItem.PRECEDENCE_PRIMARY, false), // <{
XML_STARTTAG_END(GraphTargetItem.PRECEDENCE_PRIMARY, false), // >
XML_FINISHVARTAG_BEGIN(GraphTargetItem.PRECEDENCE_PRIMARY, false), // </{
XML_FINISHTAG(GraphTargetItem.PRECEDENCE_PRIMARY, false), // </xxx>
XML_STARTFINISHTAG_END(GraphTargetItem.PRECEDENCE_PRIMARY, false), // />
XML_COMMENT(GraphTargetItem.PRECEDENCE_PRIMARY, false), // <!-- ... -->
XML_CDATA(GraphTargetItem.PRECEDENCE_PRIMARY, false), //<![CDATA[ ... ]]>
XML_INSTR_BEGIN(GraphTargetItem.PRECEDENCE_PRIMARY, false), // <?xxx
XML_INSTR_END(GraphTargetItem.PRECEDENCE_PRIMARY, false), // ?>
XML_VAR_BEGIN(GraphTargetItem.PRECEDENCE_PRIMARY, false), // {
XML_ATTRIBUTENAME(GraphTargetItem.PRECEDENCE_PRIMARY, false), // aaa=
XML_ATTRIBUTEVALUE(GraphTargetItem.PRECEDENCE_PRIMARY, false), // "vvv"
XML_TEXT(GraphTargetItem.PRECEDENCE_PRIMARY, false),
XML_ATTRNAMEVAR_BEGIN(GraphTargetItem.PRECEDENCE_PRIMARY, false), // {...}=
XML_ATTRVALVAR_BEGIN(GraphTargetItem.PRECEDENCE_PRIMARY, false), // aaa={
XML_INSTRATTRNAMEVAR_BEGIN(GraphTargetItem.PRECEDENCE_PRIMARY, false), // {...}=
XML_INSTRATTRVALVAR_BEGIN(GraphTargetItem.PRECEDENCE_PRIMARY, false), // aaa={
XML_INSTRVARTAG_BEGIN(GraphTargetItem.PRECEDENCE_PRIMARY, false), // <?{
FILTER(GraphTargetItem.PRECEDENCE_PRIMARY, false),
DESCENDANTS(GraphTargetItem.PRECEDENCE_PRIMARY, false),
NATIVE;
private int precedence = GraphTargetItem.NOPRECEDENCE;
private boolean binary = false;
private boolean rightAssociative = false;
public boolean isBinary() {
@@ -217,25 +219,24 @@ public enum SymbolType {
public boolean isRightAssociative() {
return rightAssociative;
}
}
public int getPrecedence() {
return precedence;
}
private SymbolType(int precedence,boolean binary){
private SymbolType(int precedence, boolean binary) {
this.precedence = precedence;
this.binary = binary;
}
private SymbolType(int precedence,boolean binary, boolean rightAssociative){
private SymbolType(int precedence, boolean binary, boolean rightAssociative) {
this.precedence = precedence;
this.binary = binary;
this.rightAssociative = rightAssociative;
}
private SymbolType(){
private SymbolType() {
}
}

View File

@@ -31,15 +31,13 @@ public class ScriptInfo {
private boolean modified = true;
public void setModified(boolean modified) {
this.modified = modified;
this.modified = modified;
}
public boolean isModified() {
return modified;
}
@Internal
public boolean deleted;
@@ -48,7 +46,7 @@ public class ScriptInfo {
public Traits traits;
public ScriptInfo() {
traits = new Traits();
traits = new Traits();
}
public ScriptInfo(Traits traits) {

View File

@@ -450,9 +450,8 @@ public class TraitClass extends Trait implements TraitWithSlot {
writer.startBlock();
//static variables & constants
abc.class_info.get(class_info).static_traits.toString(new Class[]{TraitSlotConst.class},this, path +/*packageName +*/ "/" + abc.instance_info.get(class_info).getName(abc.constants).getName(abc.constants, fullyQualifiedNames, false), abc, true, exportMode, false, scriptIndex, class_info, writer, fullyQualifiedNames, parallel);
abc.class_info.get(class_info).static_traits.toString(new Class[]{TraitSlotConst.class}, this, path +/*packageName +*/ "/" + abc.instance_info.get(class_info).getName(abc.constants).getName(abc.constants, fullyQualifiedNames, false), abc, true, exportMode, false, scriptIndex, class_info, writer, fullyQualifiedNames, parallel);
//static initializer
int bodyIndex = abc.findBodyIndex(abc.class_info.get(class_info).cinit_index);
if (bodyIndex != -1) {
@@ -471,9 +470,8 @@ public class TraitClass extends Trait implements TraitWithSlot {
}
//instance variables
abc.instance_info.get(class_info).instance_traits.toString(new Class[]{TraitSlotConst.class},this, path +/*packageName +*/ "/" + abc.instance_info.get(class_info).getName(abc.constants).getName(abc.constants, fullyQualifiedNames, false), abc, false, exportMode, false, scriptIndex, class_info, writer, fullyQualifiedNames, parallel);
abc.instance_info.get(class_info).instance_traits.toString(new Class[]{TraitSlotConst.class}, this, path +/*packageName +*/ "/" + abc.instance_info.get(class_info).getName(abc.constants).getName(abc.constants, fullyQualifiedNames, false), abc, false, exportMode, false, scriptIndex, class_info, writer, fullyQualifiedNames, parallel);
//instance initializer - constructor
if (!abc.instance_info.get(class_info).isInterface()) {
String modifier = "";
@@ -512,14 +510,13 @@ public class TraitClass extends Trait implements TraitWithSlot {
writer.endMethod();
writer.endTrait();
}
//static methods
abc.class_info.get(class_info).static_traits.toString(new Class[]{TraitClass.class,TraitFunction.class,TraitMethodGetterSetter.class},this, path +/*packageName +*/ "/" + abc.instance_info.get(class_info).getName(abc.constants).getName(abc.constants, fullyQualifiedNames, false), abc, true, exportMode, false, scriptIndex, class_info, writer, fullyQualifiedNames, parallel);
//instance methods
abc.instance_info.get(class_info).instance_traits.toString(new Class[]{TraitClass.class,TraitFunction.class,TraitMethodGetterSetter.class},this, path +/*packageName +*/ "/" + abc.instance_info.get(class_info).getName(abc.constants).getName(abc.constants, fullyQualifiedNames, false), abc, false, exportMode, false, scriptIndex, class_info, writer, fullyQualifiedNames, parallel);
//static methods
abc.class_info.get(class_info).static_traits.toString(new Class[]{TraitClass.class, TraitFunction.class, TraitMethodGetterSetter.class}, this, path +/*packageName +*/ "/" + abc.instance_info.get(class_info).getName(abc.constants).getName(abc.constants, fullyQualifiedNames, false), abc, true, exportMode, false, scriptIndex, class_info, writer, fullyQualifiedNames, parallel);
//instance methods
abc.instance_info.get(class_info).instance_traits.toString(new Class[]{TraitClass.class, TraitFunction.class, TraitMethodGetterSetter.class}, this, path +/*packageName +*/ "/" + abc.instance_info.get(class_info).getName(abc.constants).getName(abc.constants, fullyQualifiedNames, false), abc, false, exportMode, false, scriptIndex, class_info, writer, fullyQualifiedNames, parallel);
writer.endBlock(); // class
writer.endClass();
writer.newLine();

View File

@@ -141,18 +141,18 @@ public class Traits implements Serializable {
}
}
public GraphTextWriter toString(Class[] traitTypes,Trait parent, String path, ABC abc, boolean isStatic, ScriptExportMode exportMode, boolean makePackages, int scriptIndex, int classIndex, GraphTextWriter writer, List<String> fullyQualifiedNames, boolean parallel) throws InterruptedException {
for (int t = 0; t < traits.size(); t++) {
public GraphTextWriter toString(Class[] traitTypes, Trait parent, String path, ABC abc, boolean isStatic, ScriptExportMode exportMode, boolean makePackages, int scriptIndex, int classIndex, GraphTextWriter writer, List<String> fullyQualifiedNames, boolean parallel) throws InterruptedException {
for (int t = 0; t < traits.size(); t++) {
Trait trait = traits.get(t);
if(traitTypes!=null){
if (traitTypes != null) {
boolean found = false;
for(Class c:traitTypes){
if(c.isInstance(trait)){
for (Class c : traitTypes) {
if (c.isInstance(trait)) {
found = true;
break;
}
}
if(!found){
if (!found) {
continue;
}
}

View File

@@ -1,16 +1,16 @@
/*
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
*
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 3.0 of the License, or (at your option) any later version.
*
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library.
*/
@@ -34,10 +34,10 @@ public enum SymbolType {
ELSE,
FOR,
EACH,
IN(GraphTargetItem.PRECEDENCE_RELATIONAL,true),
IN(GraphTargetItem.PRECEDENCE_RELATIONAL, true),
IF,
RETURN,
SUPER (GraphTargetItem.PRECEDENCE_PRIMARY,false),
SUPER(GraphTargetItem.PRECEDENCE_PRIMARY, false),
SWITCH,
THROW,
TRY,
@@ -54,7 +54,7 @@ public enum SymbolType {
CLASS,
CONST,
EXTENDS,
FUNCTION(GraphTargetItem.PRECEDENCE_PRIMARY,false),
FUNCTION(GraphTargetItem.PRECEDENCE_PRIMARY, false),
GET,
IMPLEMENTS,
INTERFACE,
@@ -64,131 +64,133 @@ public enum SymbolType {
VAR,
IMPORT,
USE,
FALSE (GraphTargetItem.PRECEDENCE_PRIMARY,false),
NULL (GraphTargetItem.PRECEDENCE_PRIMARY,false),
THIS (GraphTargetItem.PRECEDENCE_PRIMARY,false),
TRUE (GraphTargetItem.PRECEDENCE_PRIMARY,false),
FALSE(GraphTargetItem.PRECEDENCE_PRIMARY, false),
NULL(GraphTargetItem.PRECEDENCE_PRIMARY, false),
THIS(GraphTargetItem.PRECEDENCE_PRIMARY, false),
TRUE(GraphTargetItem.PRECEDENCE_PRIMARY, false),
//Operators
PARENT_OPEN (GraphTargetItem.PRECEDENCE_PRIMARY,false),
PARENT_CLOSE (GraphTargetItem.PRECEDENCE_PRIMARY,false),
CURLY_OPEN (GraphTargetItem.PRECEDENCE_PRIMARY,false),
CURLY_CLOSE (GraphTargetItem.PRECEDENCE_PRIMARY,false),
BRACKET_OPEN (GraphTargetItem.PRECEDENCE_PRIMARY,false),
BRACKET_CLOSE (GraphTargetItem.PRECEDENCE_PRIMARY,false),
SEMICOLON ,
COMMA (GraphTargetItem.PRECEDENCE_COMMA,false),
REST ,
DOT (GraphTargetItem.PRECEDENCE_PRIMARY,false),
ASSIGN (GraphTargetItem.PRECEDENCE_ASSIGMENT,true,true),
GREATER_THAN (GraphTargetItem.PRECEDENCE_RELATIONAL,true),
LOWER_THAN (GraphTargetItem.PRECEDENCE_RELATIONAL,true),
NOT(GraphTargetItem.PRECEDENCE_UNARY,false),
NEGATE (GraphTargetItem.PRECEDENCE_UNARY,false),
TERNAR (GraphTargetItem.PRECEDENCE_CONDITIONAL,true,true), /*!! ternar !!!*/
COLON(GraphTargetItem.PRECEDENCE_CONDITIONAL,false),/*!! ternar !!!*/
EQUALS (GraphTargetItem.PRECEDENCE_EQUALITY,true),
STRICT_EQUALS (GraphTargetItem.PRECEDENCE_EQUALITY,true),
LOWER_EQUAL (GraphTargetItem.PRECEDENCE_RELATIONAL,true),
GREATER_EQUAL (GraphTargetItem.PRECEDENCE_RELATIONAL,true),
NOT_EQUAL (GraphTargetItem.PRECEDENCE_EQUALITY,true),
STRICT_NOT_EQUAL (GraphTargetItem.PRECEDENCE_EQUALITY,true),
AND(GraphTargetItem.PRECEDENCE_LOGICALAND,true),
OR(GraphTargetItem.PRECEDENCE_LOGICALOR,true),
FULLAND(GraphTargetItem.PRECEDENCE_LOGICALAND,true),
FULLOR(GraphTargetItem.PRECEDENCE_LOGICALOR,true),
INCREMENT(GraphTargetItem.PRECEDENCE_POSTFIX,false),//OR Unary
DECREMENT(GraphTargetItem.PRECEDENCE_POSTFIX,false), //OR Unary
PLUS(GraphTargetItem.PRECEDENCE_ADDITIVE,true),
MINUS(GraphTargetItem.PRECEDENCE_ADDITIVE,true), //OR Unary
MULTIPLY(GraphTargetItem.PRECEDENCE_MULTIPLICATIVE,true),
DIVIDE(GraphTargetItem.PRECEDENCE_MULTIPLICATIVE,true),
BITAND(GraphTargetItem.PRECEDENCE_BITWISEAND,true),
BITOR(GraphTargetItem.PRECEDENCE_BITWISEOR,true),
XOR(GraphTargetItem.PRECEDENCE_BITWISEXOR,true),
MODULO(GraphTargetItem.PRECEDENCE_BITWISESHIFT,true),
SHIFT_LEFT(GraphTargetItem.PRECEDENCE_BITWISESHIFT,true),
SHIFT_RIGHT(GraphTargetItem.PRECEDENCE_BITWISESHIFT,true),
USHIFT_RIGHT(GraphTargetItem.PRECEDENCE_BITWISESHIFT,true),
ASSIGN_PLUS(GraphTargetItem.PRECEDENCE_ASSIGMENT,true,true),
ASSIGN_MINUS(GraphTargetItem.PRECEDENCE_ASSIGMENT,true,true),
ASSIGN_MULTIPLY(GraphTargetItem.PRECEDENCE_ASSIGMENT,true,true),
ASSIGN_DIVIDE(GraphTargetItem.PRECEDENCE_ASSIGMENT,true,true),
ASSIGN_BITAND(GraphTargetItem.PRECEDENCE_ASSIGMENT,true,true),
ASSIGN_BITOR(GraphTargetItem.PRECEDENCE_ASSIGMENT,true,true),
ASSIGN_XOR(GraphTargetItem.PRECEDENCE_ASSIGMENT,true,true),
ASSIGN_MODULO(GraphTargetItem.PRECEDENCE_ASSIGMENT,true,true),
ASSIGN_SHIFT_LEFT(GraphTargetItem.PRECEDENCE_ASSIGMENT,true,true),
ASSIGN_SHIFT_RIGHT(GraphTargetItem.PRECEDENCE_ASSIGMENT,true,true),
ASSIGN_USHIFT_RIGHT(GraphTargetItem.PRECEDENCE_ASSIGMENT,true,true),
AS(GraphTargetItem.PRECEDENCE_RELATIONAL,true),
DELETE(GraphTargetItem.PRECEDENCE_UNARY,false),
INSTANCEOF(GraphTargetItem.PRECEDENCE_RELATIONAL,true),
IS(GraphTargetItem.PRECEDENCE_RELATIONAL,true),
NAMESPACE_OP (GraphTargetItem.PRECEDENCE_PRIMARY,false),
NEW(GraphTargetItem.PRECEDENCE_PRIMARY,false),
TYPEOF (GraphTargetItem.PRECEDENCE_UNARY,false),
VOID ,
PARENT_OPEN(GraphTargetItem.PRECEDENCE_PRIMARY, false),
PARENT_CLOSE(GraphTargetItem.PRECEDENCE_PRIMARY, false),
CURLY_OPEN(GraphTargetItem.PRECEDENCE_PRIMARY, false),
CURLY_CLOSE(GraphTargetItem.PRECEDENCE_PRIMARY, false),
BRACKET_OPEN(GraphTargetItem.PRECEDENCE_PRIMARY, false),
BRACKET_CLOSE(GraphTargetItem.PRECEDENCE_PRIMARY, false),
SEMICOLON,
COMMA(GraphTargetItem.PRECEDENCE_COMMA, false),
REST,
DOT(GraphTargetItem.PRECEDENCE_PRIMARY, false),
ASSIGN(GraphTargetItem.PRECEDENCE_ASSIGMENT, true, true),
GREATER_THAN(GraphTargetItem.PRECEDENCE_RELATIONAL, true),
LOWER_THAN(GraphTargetItem.PRECEDENCE_RELATIONAL, true),
NOT(GraphTargetItem.PRECEDENCE_UNARY, false),
NEGATE(GraphTargetItem.PRECEDENCE_UNARY, false),
TERNAR(GraphTargetItem.PRECEDENCE_CONDITIONAL, true, true), /*!! ternar !!!*/
COLON(GraphTargetItem.PRECEDENCE_CONDITIONAL, false),/*!! ternar !!!*/
EQUALS(GraphTargetItem.PRECEDENCE_EQUALITY, true),
STRICT_EQUALS(GraphTargetItem.PRECEDENCE_EQUALITY, true),
LOWER_EQUAL(GraphTargetItem.PRECEDENCE_RELATIONAL, true),
GREATER_EQUAL(GraphTargetItem.PRECEDENCE_RELATIONAL, true),
NOT_EQUAL(GraphTargetItem.PRECEDENCE_EQUALITY, true),
STRICT_NOT_EQUAL(GraphTargetItem.PRECEDENCE_EQUALITY, true),
AND(GraphTargetItem.PRECEDENCE_LOGICALAND, true),
OR(GraphTargetItem.PRECEDENCE_LOGICALOR, true),
FULLAND(GraphTargetItem.PRECEDENCE_LOGICALAND, true),
FULLOR(GraphTargetItem.PRECEDENCE_LOGICALOR, true),
INCREMENT(GraphTargetItem.PRECEDENCE_POSTFIX, false),//OR Unary
DECREMENT(GraphTargetItem.PRECEDENCE_POSTFIX, false), //OR Unary
PLUS(GraphTargetItem.PRECEDENCE_ADDITIVE, true),
MINUS(GraphTargetItem.PRECEDENCE_ADDITIVE, true), //OR Unary
MULTIPLY(GraphTargetItem.PRECEDENCE_MULTIPLICATIVE, true),
DIVIDE(GraphTargetItem.PRECEDENCE_MULTIPLICATIVE, true),
BITAND(GraphTargetItem.PRECEDENCE_BITWISEAND, true),
BITOR(GraphTargetItem.PRECEDENCE_BITWISEOR, true),
XOR(GraphTargetItem.PRECEDENCE_BITWISEXOR, true),
MODULO(GraphTargetItem.PRECEDENCE_BITWISESHIFT, true),
SHIFT_LEFT(GraphTargetItem.PRECEDENCE_BITWISESHIFT, true),
SHIFT_RIGHT(GraphTargetItem.PRECEDENCE_BITWISESHIFT, true),
USHIFT_RIGHT(GraphTargetItem.PRECEDENCE_BITWISESHIFT, true),
ASSIGN_PLUS(GraphTargetItem.PRECEDENCE_ASSIGMENT, true, true),
ASSIGN_MINUS(GraphTargetItem.PRECEDENCE_ASSIGMENT, true, true),
ASSIGN_MULTIPLY(GraphTargetItem.PRECEDENCE_ASSIGMENT, true, true),
ASSIGN_DIVIDE(GraphTargetItem.PRECEDENCE_ASSIGMENT, true, true),
ASSIGN_BITAND(GraphTargetItem.PRECEDENCE_ASSIGMENT, true, true),
ASSIGN_BITOR(GraphTargetItem.PRECEDENCE_ASSIGMENT, true, true),
ASSIGN_XOR(GraphTargetItem.PRECEDENCE_ASSIGMENT, true, true),
ASSIGN_MODULO(GraphTargetItem.PRECEDENCE_ASSIGMENT, true, true),
ASSIGN_SHIFT_LEFT(GraphTargetItem.PRECEDENCE_ASSIGMENT, true, true),
ASSIGN_SHIFT_RIGHT(GraphTargetItem.PRECEDENCE_ASSIGMENT, true, true),
ASSIGN_USHIFT_RIGHT(GraphTargetItem.PRECEDENCE_ASSIGMENT, true, true),
AS(GraphTargetItem.PRECEDENCE_RELATIONAL, true),
DELETE(GraphTargetItem.PRECEDENCE_UNARY, false),
INSTANCEOF(GraphTargetItem.PRECEDENCE_RELATIONAL, true),
IS(GraphTargetItem.PRECEDENCE_RELATIONAL, true),
NAMESPACE_OP(GraphTargetItem.PRECEDENCE_PRIMARY, false),
NEW(GraphTargetItem.PRECEDENCE_PRIMARY, false),
TYPEOF(GraphTargetItem.PRECEDENCE_UNARY, false),
VOID,
ATTRIBUTE,
//Other
STRING(GraphTargetItem.PRECEDENCE_PRIMARY,false),
STRING(GraphTargetItem.PRECEDENCE_PRIMARY, false),
COMMENT,
XML,
IDENTIFIER(GraphTargetItem.PRECEDENCE_PRIMARY,false),
INTEGER(GraphTargetItem.PRECEDENCE_PRIMARY,false),
DOUBLE(GraphTargetItem.PRECEDENCE_PRIMARY,false),
TYPENAME(GraphTargetItem.PRECEDENCE_PRIMARY,false),
IDENTIFIER(GraphTargetItem.PRECEDENCE_PRIMARY, false),
INTEGER(GraphTargetItem.PRECEDENCE_PRIMARY, false),
DOUBLE(GraphTargetItem.PRECEDENCE_PRIMARY, false),
TYPENAME(GraphTargetItem.PRECEDENCE_PRIMARY, false),
EOF,
TRACE(GraphTargetItem.PRECEDENCE_PRIMARY,false),
GETURL(GraphTargetItem.PRECEDENCE_PRIMARY,false),
GOTOANDSTOP(GraphTargetItem.PRECEDENCE_PRIMARY,false),
NEXTFRAME(GraphTargetItem.PRECEDENCE_PRIMARY,false),
PLAY(GraphTargetItem.PRECEDENCE_PRIMARY,false),
PREVFRAME(GraphTargetItem.PRECEDENCE_PRIMARY,false),
TELLTARGET(GraphTargetItem.PRECEDENCE_PRIMARY,false),
STOP(GraphTargetItem.PRECEDENCE_PRIMARY,false),
STOPALLSOUNDS(GraphTargetItem.PRECEDENCE_PRIMARY,false),
TOGGLEHIGHQUALITY(GraphTargetItem.PRECEDENCE_PRIMARY,false),
ORD(GraphTargetItem.PRECEDENCE_PRIMARY,false),
CHR(GraphTargetItem.PRECEDENCE_PRIMARY,false),
DUPLICATEMOVIECLIP(GraphTargetItem.PRECEDENCE_PRIMARY,false),
STOPDRAG(GraphTargetItem.PRECEDENCE_PRIMARY,false),
GETTIMER(GraphTargetItem.PRECEDENCE_PRIMARY,false),
LOADVARIABLES(GraphTargetItem.PRECEDENCE_PRIMARY,false),
LOADMOVIE(GraphTargetItem.PRECEDENCE_PRIMARY,false),
GOTOANDPLAY(GraphTargetItem.PRECEDENCE_PRIMARY,false),
MBORD(GraphTargetItem.PRECEDENCE_PRIMARY,false),
MBCHR(GraphTargetItem.PRECEDENCE_PRIMARY,false),
MBLENGTH(GraphTargetItem.PRECEDENCE_PRIMARY,false),
MBSUBSTRING(GraphTargetItem.PRECEDENCE_PRIMARY,false),
RANDOM(GraphTargetItem.PRECEDENCE_PRIMARY,false),
REMOVEMOVIECLIP(GraphTargetItem.PRECEDENCE_PRIMARY,false),
STARTDRAG(GraphTargetItem.PRECEDENCE_PRIMARY,false),
SUBSTR(GraphTargetItem.PRECEDENCE_PRIMARY,false),
LENGTH(GraphTargetItem.PRECEDENCE_PRIMARY,false), //string.length
INT(GraphTargetItem.PRECEDENCE_PRIMARY,false),
TARGETPATH(GraphTargetItem.PRECEDENCE_PRIMARY,false),
NUMBER_OP(GraphTargetItem.PRECEDENCE_PRIMARY,false),
STRING_OP(GraphTargetItem.PRECEDENCE_PRIMARY,false),
TRACE(GraphTargetItem.PRECEDENCE_PRIMARY, false),
GETURL(GraphTargetItem.PRECEDENCE_PRIMARY, false),
GOTOANDSTOP(GraphTargetItem.PRECEDENCE_PRIMARY, false),
NEXTFRAME(GraphTargetItem.PRECEDENCE_PRIMARY, false),
PLAY(GraphTargetItem.PRECEDENCE_PRIMARY, false),
PREVFRAME(GraphTargetItem.PRECEDENCE_PRIMARY, false),
TELLTARGET(GraphTargetItem.PRECEDENCE_PRIMARY, false),
STOP(GraphTargetItem.PRECEDENCE_PRIMARY, false),
STOPALLSOUNDS(GraphTargetItem.PRECEDENCE_PRIMARY, false),
TOGGLEHIGHQUALITY(GraphTargetItem.PRECEDENCE_PRIMARY, false),
ORD(GraphTargetItem.PRECEDENCE_PRIMARY, false),
CHR(GraphTargetItem.PRECEDENCE_PRIMARY, false),
DUPLICATEMOVIECLIP(GraphTargetItem.PRECEDENCE_PRIMARY, false),
STOPDRAG(GraphTargetItem.PRECEDENCE_PRIMARY, false),
GETTIMER(GraphTargetItem.PRECEDENCE_PRIMARY, false),
LOADVARIABLES(GraphTargetItem.PRECEDENCE_PRIMARY, false),
LOADMOVIE(GraphTargetItem.PRECEDENCE_PRIMARY, false),
GOTOANDPLAY(GraphTargetItem.PRECEDENCE_PRIMARY, false),
MBORD(GraphTargetItem.PRECEDENCE_PRIMARY, false),
MBCHR(GraphTargetItem.PRECEDENCE_PRIMARY, false),
MBLENGTH(GraphTargetItem.PRECEDENCE_PRIMARY, false),
MBSUBSTRING(GraphTargetItem.PRECEDENCE_PRIMARY, false),
RANDOM(GraphTargetItem.PRECEDENCE_PRIMARY, false),
REMOVEMOVIECLIP(GraphTargetItem.PRECEDENCE_PRIMARY, false),
STARTDRAG(GraphTargetItem.PRECEDENCE_PRIMARY, false),
SUBSTR(GraphTargetItem.PRECEDENCE_PRIMARY, false),
LENGTH(GraphTargetItem.PRECEDENCE_PRIMARY, false), //string.length
INT(GraphTargetItem.PRECEDENCE_PRIMARY, false),
TARGETPATH(GraphTargetItem.PRECEDENCE_PRIMARY, false),
NUMBER_OP(GraphTargetItem.PRECEDENCE_PRIMARY, false),
STRING_OP(GraphTargetItem.PRECEDENCE_PRIMARY, false),
IFFRAMELOADED,
INFINITY(GraphTargetItem.PRECEDENCE_PRIMARY,false),
EVAL(GraphTargetItem.PRECEDENCE_PRIMARY,false),
UNDEFINED(GraphTargetItem.PRECEDENCE_PRIMARY,false),
NEWLINE(GraphTargetItem.PRECEDENCE_PRIMARY,false),
NAN(GraphTargetItem.PRECEDENCE_PRIMARY,false),
GETVERSION(GraphTargetItem.PRECEDENCE_PRIMARY,false),
CALL(GraphTargetItem.PRECEDENCE_PRIMARY,false),
LOADMOVIENUM(GraphTargetItem.PRECEDENCE_PRIMARY,false),
LOADVARIABLESNUM(GraphTargetItem.PRECEDENCE_PRIMARY,false),
PRINT(GraphTargetItem.PRECEDENCE_PRIMARY,false),
PRINTNUM(GraphTargetItem.PRECEDENCE_PRIMARY,false),
PRINTASBITMAP(GraphTargetItem.PRECEDENCE_PRIMARY,false),
PRINTASBITMAPNUM(GraphTargetItem.PRECEDENCE_PRIMARY,false),
UNLOADMOVIE(GraphTargetItem.PRECEDENCE_PRIMARY,false),
UNLOADMOVIENUM(GraphTargetItem.PRECEDENCE_PRIMARY,false),
FSCOMMAND(GraphTargetItem.PRECEDENCE_PRIMARY,false);
INFINITY(GraphTargetItem.PRECEDENCE_PRIMARY, false),
EVAL(GraphTargetItem.PRECEDENCE_PRIMARY, false),
UNDEFINED(GraphTargetItem.PRECEDENCE_PRIMARY, false),
NEWLINE(GraphTargetItem.PRECEDENCE_PRIMARY, false),
NAN(GraphTargetItem.PRECEDENCE_PRIMARY, false),
GETVERSION(GraphTargetItem.PRECEDENCE_PRIMARY, false),
CALL(GraphTargetItem.PRECEDENCE_PRIMARY, false),
LOADMOVIENUM(GraphTargetItem.PRECEDENCE_PRIMARY, false),
LOADVARIABLESNUM(GraphTargetItem.PRECEDENCE_PRIMARY, false),
PRINT(GraphTargetItem.PRECEDENCE_PRIMARY, false),
PRINTNUM(GraphTargetItem.PRECEDENCE_PRIMARY, false),
PRINTASBITMAP(GraphTargetItem.PRECEDENCE_PRIMARY, false),
PRINTASBITMAPNUM(GraphTargetItem.PRECEDENCE_PRIMARY, false),
UNLOADMOVIE(GraphTargetItem.PRECEDENCE_PRIMARY, false),
UNLOADMOVIENUM(GraphTargetItem.PRECEDENCE_PRIMARY, false),
FSCOMMAND(GraphTargetItem.PRECEDENCE_PRIMARY, false);
private int precedence = GraphTargetItem.NOPRECEDENCE;
private boolean binary = false;
private boolean rightAssociative = false;
public boolean isBinary() {
@@ -197,25 +199,24 @@ public enum SymbolType {
public boolean isRightAssociative() {
return rightAssociative;
}
}
public int getPrecedence() {
return precedence;
}
private SymbolType(int precedence,boolean binary){
private SymbolType(int precedence, boolean binary) {
this.precedence = precedence;
this.binary = binary;
}
private SymbolType(int precedence,boolean binary, boolean rightAssociative){
private SymbolType(int precedence, boolean binary, boolean rightAssociative) {
this.precedence = precedence;
this.binary = binary;
this.rightAssociative = rightAssociative;
}
private SymbolType(){
private SymbolType() {
}
}

View File

@@ -51,7 +51,7 @@ public class BinaryDataExporter {
count++;
}
}
if (count == 0) {
return ret;
}

View File

@@ -148,7 +148,7 @@ public class FontExporter {
String cop = t.getCopyright();
f.getEngine().setCopyrightYear(cop == null ? "" : cop);
if (Configuration.setFFDecVersionInExportedFont.get()){
if (Configuration.setFFDecVersionInExportedFont.get()) {
f.setAuthor(ApplicationInfo.shortApplicationVerName);
} else {
f.setAuthor(ApplicationInfo.SHORT_APPLICATION_NAME);

View File

@@ -131,12 +131,12 @@ public class DefineBinaryDataTag extends CharacterTag {
@Override
public boolean isModified() {
if(super.isModified()){
if (super.isModified()) {
return true;
}
if(innerSwf!=null){
if (innerSwf != null) {
return innerSwf.isModified();
}
return false;
}
}
}

View File

@@ -267,7 +267,7 @@ public class DefineButton2Tag extends ButtonTag implements ASMSourceContainer {
if (timeline != null) {
return timeline;
}
timeline = new Timeline(swf, this, new ArrayList<Tag>(), buttonId, getRect());
int maxDepth = 0;
@@ -301,25 +301,25 @@ public class DefineButton2Tag extends ButtonTag implements ASMSourceContainer {
}
}
timeline.addFrame(frameUp);
if (frameOver.layers.isEmpty()) {
frameOver = frameUp;
}
timeline.addFrame(frameOver);
if (frameDown.layers.isEmpty()) {
frameDown = frameOver;
}
timeline.addFrame(frameDown);
if (frameHit.layers.isEmpty()) {
frameHit = frameUp;
}
timeline.addFrame(frameHit);
return timeline;
}

View File

@@ -88,7 +88,7 @@ public class DefineButtonCxformTag extends Tag implements CharacterIdTag {
buttonId = sis.readUI16("buttonId");
buttonColorTransform = sis.readCXFORM("buttonColorTransform");
}
@Override
public int getCharacterId() {
return buttonId;

View File

@@ -98,7 +98,7 @@ public class DefineFontAlignZonesTag extends Tag implements CharacterIdTag {
}
return baos.toByteArray();
}
@Override
public int getCharacterId() {
return fontID;

View File

@@ -146,7 +146,7 @@ public class DefineFontInfo2Tag extends Tag implements CharacterIdTag {
codeTable.add(sis.readUI16("code"));
}
}
@Override
public int getCharacterId() {
return fontID;

View File

@@ -147,7 +147,7 @@ public class DefineFontInfoTag extends Tag implements CharacterIdTag {
}
}
}
@Override
public int getCharacterId() {
return fontId;

View File

@@ -80,7 +80,7 @@ public class DefineFontNameTag extends Tag implements CharacterIdTag {
}
return baos.toByteArray();
}
@Override
public int getCharacterId() {
return fontId;

View File

@@ -79,7 +79,7 @@ public class DefineScalingGridTag extends Tag implements CharacterIdTag {
}
return baos.toByteArray();
}
@Override
public int getCharacterId() {
return characterId;

View File

@@ -140,7 +140,7 @@ public class DoABCDefineTag extends Tag implements ABCContainerTag {
}
return 0;
}
@Override
public void setModified(boolean value) {
super.setModified(value);

View File

@@ -123,5 +123,4 @@ public class DoABCTag extends Tag implements ABCContainerTag {
}
}
}
}

View File

@@ -27,7 +27,6 @@ import com.jpexs.decompiler.flash.exporters.modes.ScriptExportMode;
import com.jpexs.decompiler.flash.helpers.GraphTextWriter;
import com.jpexs.decompiler.flash.tags.base.ASMSource;
import com.jpexs.decompiler.flash.tags.base.CharacterIdTag;
import com.jpexs.decompiler.flash.tags.base.CharacterTag;
import com.jpexs.decompiler.flash.types.BasicType;
import com.jpexs.decompiler.flash.types.annotations.HideInRawEdit;
import com.jpexs.decompiler.flash.types.annotations.SWFType;
@@ -40,7 +39,7 @@ import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
public class DoInitActionTag extends Tag implements CharacterIdTag,ASMSource {
public class DoInitActionTag extends Tag implements CharacterIdTag, ASMSource {
/**
* Identifier of Sprite

View File

@@ -80,14 +80,14 @@ public abstract class PlaceObjectTypeTag extends Tag implements CharacterIdTag {
if (exportName != null) {
nameAppend = ": " + exportName;
}
if (getCharacterId() != -1) {
result += " (" + getCharacterId() + nameAppend + ")";
}
if (!nameAppend.isEmpty()) {
result += " (" + nameAppend + ")";
}
return result + " Depth: " + getDepth();
}
@@ -98,7 +98,7 @@ public abstract class PlaceObjectTypeTag extends Tag implements CharacterIdTag {
if (exportName != null) {
result += "_" + exportName;
}
result += "_" + getDepth();
return result;
}

View File

@@ -1,16 +1,16 @@
/*
* Copyright (C) 2010-2015 JPEXS, All rights reserved.
*
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 3.0 of the License, or (at your option) any later version.
*
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library.
*/
@@ -40,7 +40,7 @@ public abstract class RemoveTag extends Tag {
if (exportName != null) {
nameAppend = ": " + exportName;
}
if (getCharacterId() != -1) {
result += " (" + getCharacterId() + nameAppend + ")";
}
@@ -48,7 +48,7 @@ public abstract class RemoveTag extends Tag {
if (!nameAppend.isEmpty()) {
result += " (" + nameAppend + ")";
}
return result + " Depth: " + getDepth();
}
@@ -63,7 +63,7 @@ public abstract class RemoveTag extends Tag {
if (exportName != null) {
result += "_" + exportName;
}
result += "_" + getDepth();
return result;
}
@@ -72,7 +72,7 @@ public abstract class RemoveTag extends Tag {
if (this instanceof CharacterIdTag) {
return ((CharacterIdTag) this).getCharacterId();
}
return -1;
}
}

View File

@@ -116,18 +116,16 @@ public class AS2Package implements TreeItem {
@Override
public boolean isModified() {
for(ASMSource s:scripts.values()){
if(s.isModified()){
for (ASMSource s : scripts.values()) {
if (s.isModified()) {
return true;
}
}
for(AS2Package p:subPackages.values()){
if(p.isModified()){
for (AS2Package p : subPackages.values()) {
if (p.isModified()) {
return true;
}
}
return false;
}
}

View File

@@ -150,20 +150,18 @@ public class AS3Package extends AS3ClassTreeItem {
@Override
public boolean isModified() {
List<ScriptPack> sps=getScriptPacks();
for(ScriptPack sp:sps){
if(sp.isModified()){
List<ScriptPack> sps = getScriptPacks();
for (ScriptPack sp : sps) {
if (sp.isModified()) {
return true;
}
}
List<AS3Package> ps=getSubPackages();
for(AS3Package p:ps){
if(p.isModified()){
List<AS3Package> ps = getSubPackages();
for (AS3Package p : ps) {
if (p.isModified()) {
return true;
}
}
return false;
}
}

View File

@@ -90,26 +90,24 @@ public class Frame implements TreeItem, Exportable {
@Override
public boolean isModified() {
for(Tag t:innerTags){
if(t.isModified()){
for (Tag t : innerTags) {
if (t.isModified()) {
return true;
}
}
for(Tag t:actions){
if(t.isModified()){
for (Tag t : actions) {
if (t.isModified()) {
return true;
}
}
for(ASMSourceContainer t:actionContainers){
if(t.isModified()){
for (ASMSourceContainer t : actionContainers) {
if (t.isModified()) {
return true;
}
}
if(showFrameTag!=null && showFrameTag.isModified()){
if (showFrameTag != null && showFrameTag.isModified()) {
return true;
}
return false;
}
}

View File

@@ -58,6 +58,4 @@ public class FrameScript implements TreeItem, Exportable {
public boolean isModified() {
return frame.isModified();
}
}

View File

@@ -79,13 +79,11 @@ public class TagScript implements TreeItem, Exportable {
@Override
public boolean isModified() {
for(TreeItem f:frames){
if(f.isModified()){
for (TreeItem f : frames) {
if (f.isModified()) {
return true;
}
}
return tag.isModified();
}
}

View File

@@ -56,12 +56,11 @@ public class FolderItem implements TreeItem {
@Override
public boolean isModified() {
for(TreeItem ti:subItems){
if(ti.isModified()){
for (TreeItem ti : subItems) {
if (ti.isModified()) {
return true;
}
}
return false;
}
}

View File

@@ -47,6 +47,4 @@ public class HeaderItem implements TreeItem {
public boolean isModified() {
return false; //??
}
}

View File

@@ -175,13 +175,11 @@ public class SWFList implements List<SWF>, SWFContainerItem {
@Override
public boolean isModified() {
for(SWF s:swfs){
if(s.isModified()){
for (SWF s : swfs) {
if (s.isModified()) {
return true;
}
}
return false;
}
}

View File

@@ -25,6 +25,6 @@ import com.jpexs.decompiler.flash.SWF;
public interface TreeItem {
public SWF getSwf();
public boolean isModified();
}

View File

@@ -145,7 +145,7 @@ public class BUTTONCONDACTION implements ASMSource, Serializable {
*/
@Internal
public ByteArrayRange actionBytes;
/**
* Sets actions associated with this object
*
@@ -246,8 +246,6 @@ public class BUTTONCONDACTION implements ASMSource, Serializable {
}
return false;
}
@Override
public GraphTextWriter getActionBytesAsHex(GraphTextWriter writer) {

View File

@@ -43,7 +43,7 @@ import java.util.logging.Logger;
* @author JPEXS
*/
public class CLIPACTIONRECORD implements ASMSource, Serializable {
public static String keyToString(int key) {
if ((key < CLIPACTIONRECORD.KEYNAMES.length) && (key > 0) && (CLIPACTIONRECORD.KEYNAMES[key] != null)) {
return CLIPACTIONRECORD.KEYNAMES[key];
@@ -229,19 +229,17 @@ public class CLIPACTIONRECORD implements ASMSource, Serializable {
public void setModified() {
if (tag != null) {
tag.setModified(true);
}
}
}
@Override
public boolean isModified() {
if (tag != null) {
return tag.isModified();
}
}
return false;
}
@Override
public GraphTextWriter getActionBytesAsHex(GraphTextWriter writer) {
return Helper.byteArrayToHexWithHeader(writer, actionBytes.getRangeData());