mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/jpexs-decompiler.git
synced 2026-09-27 15:40:53 +00:00
FlashPlayer path modified to "lib/FlashPlayer.exe"
Source Formatting Few refactorings
This commit is contained in:
+4
-4
@@ -14,9 +14,9 @@
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package com.jpexs.decompiler.flash.action.parser;
|
||||
package com.jpexs.decompiler.flash.action.parser.pcode;
|
||||
|
||||
public class ParsedSymbol {
|
||||
public class ASMParsedSymbol {
|
||||
|
||||
public int type;
|
||||
public Object value;
|
||||
@@ -38,12 +38,12 @@ public class ParsedSymbol {
|
||||
public static final int TYPE_EOL = 16;
|
||||
public static final int TYPE_CONSTANT_LITERAL = 17;
|
||||
|
||||
public ParsedSymbol(int type, Object value) {
|
||||
public ASMParsedSymbol(int type, Object value) {
|
||||
this.type = type;
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
public ParsedSymbol(int type) {
|
||||
public ASMParsedSymbol(int type) {
|
||||
this.type = type;
|
||||
}
|
||||
}
|
||||
+9
-8
@@ -14,11 +14,12 @@
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package com.jpexs.decompiler.flash.action.parser;
|
||||
package com.jpexs.decompiler.flash.action.parser.pcode;
|
||||
|
||||
import com.jpexs.decompiler.flash.action.Action;
|
||||
import com.jpexs.decompiler.flash.action.flashlite.ActionFSCommand2;
|
||||
import com.jpexs.decompiler.flash.action.flashlite.ActionStrictMode;
|
||||
import com.jpexs.decompiler.flash.action.parser.ParseException;
|
||||
import com.jpexs.decompiler.flash.action.special.ActionNop;
|
||||
import com.jpexs.decompiler.flash.action.swf3.*;
|
||||
import com.jpexs.decompiler.flash.action.swf4.*;
|
||||
@@ -43,10 +44,10 @@ public class ASMParser {
|
||||
Stack<GraphSourceItemContainer> containers = new Stack<GraphSourceItemContainer>();
|
||||
HashMap<GraphSourceItemContainer, Integer> containerPos = new HashMap<GraphSourceItemContainer, Integer>();
|
||||
while (true) {
|
||||
ParsedSymbol symb = lexer.yylex();
|
||||
if (symb.type == ParsedSymbol.TYPE_LABEL) {
|
||||
ASMParsedSymbol symb = lexer.yylex();
|
||||
if (symb.type == ASMParsedSymbol.TYPE_LABEL) {
|
||||
labels.add(new Label((String) symb.value, address));
|
||||
} else if (symb.type == ParsedSymbol.TYPE_COMMENT) {
|
||||
} else if (symb.type == ASMParsedSymbol.TYPE_COMMENT) {
|
||||
if (!list.isEmpty()) {
|
||||
String cmt = (String) symb.value;
|
||||
if (cmt.equals("compileTime")) {
|
||||
@@ -56,7 +57,7 @@ public class ASMParser {
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (symb.type == ParsedSymbol.TYPE_BLOCK_END) {
|
||||
} else if (symb.type == ASMParsedSymbol.TYPE_BLOCK_END) {
|
||||
if (containers.isEmpty()) {
|
||||
throw new ParseException("Block end without start", lexer.yyline());
|
||||
}
|
||||
@@ -66,7 +67,7 @@ public class ASMParser {
|
||||
if (!a.parseDivision(pos, address, lexer)) {
|
||||
containers.pop();
|
||||
}
|
||||
} else if (symb.type == ParsedSymbol.TYPE_INSTRUCTION_NAME) {
|
||||
} else if (symb.type == ASMParsedSymbol.TYPE_INSTRUCTION_NAME) {
|
||||
String instructionName = ((String) symb.value).toLowerCase();
|
||||
Action a = null;
|
||||
if (instructionName.equals("GetURL".toLowerCase())) {
|
||||
@@ -298,8 +299,8 @@ public class ASMParser {
|
||||
if (a != null) {
|
||||
list.add(a);
|
||||
}
|
||||
} else if (symb.type == ParsedSymbol.TYPE_EOL) {
|
||||
} else if ((symb.type == ParsedSymbol.TYPE_BLOCK_END) || (symb.type == ParsedSymbol.TYPE_EOF)) {
|
||||
} else if (symb.type == ASMParsedSymbol.TYPE_EOL) {
|
||||
} else if ((symb.type == ASMParsedSymbol.TYPE_BLOCK_END) || (symb.type == ASMParsedSymbol.TYPE_EOF)) {
|
||||
return list;
|
||||
} else {
|
||||
throw new ParseException("Label or Instruction name expected, found:" + symb.type + " " + symb.value, lexer.yyline());
|
||||
+87
-86
@@ -1,8 +1,9 @@
|
||||
/* The following code was generated by JFlex 1.4.3 on 3.4.13 22:09 */
|
||||
/* The following code was generated by JFlex 1.4.3 on 7.4.13 15:38 */
|
||||
|
||||
/* Flash assembler language lexer specification */
|
||||
package com.jpexs.decompiler.flash.action.parser;
|
||||
package com.jpexs.decompiler.flash.action.parser.pcode;
|
||||
|
||||
import com.jpexs.decompiler.flash.action.parser.ParseException;
|
||||
import com.jpexs.decompiler.flash.action.swf4.ConstantIndex;
|
||||
import com.jpexs.decompiler.flash.action.swf4.Null;
|
||||
import com.jpexs.decompiler.flash.action.swf4.RegisterNumber;
|
||||
@@ -10,9 +11,9 @@ import com.jpexs.decompiler.flash.action.swf4.Undefined;
|
||||
|
||||
/**
|
||||
* This class is a scanner generated by
|
||||
* <a href="http://www.jflex.de/">JFlex</a> 1.4.3 on 3.4.13 22:09 from the
|
||||
* <a href="http://www.jflex.de/">JFlex</a> 1.4.3 on 7.4.13 15:38 from the
|
||||
* specification file
|
||||
* <tt>D:/Dokumenty/Programovani/JavaSE/FFDec/trunk/src/com/jpexs/decompiler/flash/action/parser/flasm.flex</tt>
|
||||
* <tt>D:/Dokumenty/Programovani/JavaSE/FFDec/trunk/src/com/jpexs/decompiler/flash/action/parser/pcode/flasm.flex</tt>
|
||||
*/
|
||||
public final class FlasmLexer {
|
||||
|
||||
@@ -722,7 +723,7 @@ public final class FlasmLexer {
|
||||
* @return the next token
|
||||
* @exception java.io.IOException if any I/O-Error occurs
|
||||
*/
|
||||
public ParsedSymbol yylex() throws java.io.IOException, ParseException {
|
||||
public ASMParsedSymbol yylex() throws java.io.IOException, ParseException {
|
||||
int zzInput;
|
||||
int zzAction;
|
||||
|
||||
@@ -851,152 +852,152 @@ public final class FlasmLexer {
|
||||
zzMarkedPos = zzMarkedPosL;
|
||||
|
||||
switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) {
|
||||
case 9: {
|
||||
return new ParsedSymbol(ParsedSymbol.TYPE_IDENTIFIER, yytext());
|
||||
}
|
||||
case 31:
|
||||
break;
|
||||
case 23: {
|
||||
string.append('\'');
|
||||
}
|
||||
case 31:
|
||||
break;
|
||||
case 25: {
|
||||
return new ASMParsedSymbol(ASMParsedSymbol.TYPE_BOOLEAN, Boolean.TRUE);
|
||||
}
|
||||
case 32:
|
||||
break;
|
||||
case 30: {
|
||||
return new ParsedSymbol(ParsedSymbol.TYPE_CONSTANT, new ConstantIndex(Integer.parseInt(yytext().substring(8))));
|
||||
}
|
||||
case 33:
|
||||
break;
|
||||
case 10: {
|
||||
return new ParsedSymbol(ParsedSymbol.TYPE_INTEGER, new Long(Long.parseLong((yytext()))));
|
||||
}
|
||||
case 34:
|
||||
break;
|
||||
case 7: {
|
||||
yybegin(YYINITIAL);
|
||||
return new ParsedSymbol(ParsedSymbol.TYPE_EOL);
|
||||
}
|
||||
case 35:
|
||||
break;
|
||||
case 19: {
|
||||
char val = (char) Integer.parseInt(yytext().substring(1), 8);
|
||||
string.append(val);
|
||||
}
|
||||
case 36:
|
||||
case 33:
|
||||
break;
|
||||
case 4: {
|
||||
string.append(yytext());
|
||||
}
|
||||
case 37:
|
||||
case 34:
|
||||
break;
|
||||
case 2: {
|
||||
yybegin(PARAMETERS);
|
||||
return new ParsedSymbol(ParsedSymbol.TYPE_INSTRUCTION_NAME, yytext());
|
||||
case 7: {
|
||||
yybegin(YYINITIAL);
|
||||
return new ASMParsedSymbol(ASMParsedSymbol.TYPE_EOL);
|
||||
}
|
||||
case 38:
|
||||
case 35:
|
||||
break;
|
||||
case 16: {
|
||||
string.append('\r');
|
||||
}
|
||||
case 39:
|
||||
case 36:
|
||||
break;
|
||||
case 12: {
|
||||
yybegin(STRING);
|
||||
string.setLength(0);
|
||||
}
|
||||
case 37:
|
||||
break;
|
||||
case 26: {
|
||||
return new ASMParsedSymbol(ASMParsedSymbol.TYPE_NULL, new Null());
|
||||
}
|
||||
case 38:
|
||||
break;
|
||||
case 3: {
|
||||
return new ASMParsedSymbol(ASMParsedSymbol.TYPE_BLOCK_END);
|
||||
}
|
||||
case 39:
|
||||
break;
|
||||
case 30: {
|
||||
return new ASMParsedSymbol(ASMParsedSymbol.TYPE_CONSTANT, new ConstantIndex(Integer.parseInt(yytext().substring(8))));
|
||||
}
|
||||
case 40:
|
||||
break;
|
||||
case 6: {
|
||||
yybegin(PARAMETERS);
|
||||
// length also includes the trailing quote
|
||||
return new ParsedSymbol(ParsedSymbol.TYPE_STRING, string.toString());
|
||||
}
|
||||
case 41:
|
||||
break;
|
||||
case 8: {
|
||||
return new ParsedSymbol(ParsedSymbol.TYPE_COMMENT, yytext().substring(1));
|
||||
}
|
||||
case 42:
|
||||
break;
|
||||
case 27: {
|
||||
return new ParsedSymbol(ParsedSymbol.TYPE_BOOLEAN, Boolean.FALSE);
|
||||
}
|
||||
case 43:
|
||||
break;
|
||||
case 22: {
|
||||
string.append('\b');
|
||||
}
|
||||
case 44:
|
||||
case 41:
|
||||
break;
|
||||
case 13: {
|
||||
String s = yytext();
|
||||
return new ParsedSymbol(ParsedSymbol.TYPE_LABEL, s.substring(0, s.length() - 1));
|
||||
case 9: {
|
||||
return new ASMParsedSymbol(ASMParsedSymbol.TYPE_IDENTIFIER, yytext());
|
||||
}
|
||||
case 45:
|
||||
case 42:
|
||||
break;
|
||||
case 5: {
|
||||
throw new ParseException("Unterminated string at end of line", yyline + 1);
|
||||
}
|
||||
case 46:
|
||||
case 43:
|
||||
break;
|
||||
case 11: {
|
||||
yybegin(YYINITIAL);
|
||||
return new ParsedSymbol(ParsedSymbol.TYPE_BLOCK_START);
|
||||
case 27: {
|
||||
return new ASMParsedSymbol(ASMParsedSymbol.TYPE_BOOLEAN, Boolean.FALSE);
|
||||
}
|
||||
case 47:
|
||||
case 44:
|
||||
break;
|
||||
case 24: {
|
||||
return new ASMParsedSymbol(ASMParsedSymbol.TYPE_FLOAT, new Double(Double.parseDouble((yytext()))));
|
||||
}
|
||||
case 45:
|
||||
break;
|
||||
case 15: {
|
||||
string.append('\t');
|
||||
}
|
||||
case 46:
|
||||
break;
|
||||
case 6: {
|
||||
yybegin(PARAMETERS);
|
||||
// length also includes the trailing quote
|
||||
return new ASMParsedSymbol(ASMParsedSymbol.TYPE_STRING, string.toString());
|
||||
}
|
||||
case 47:
|
||||
break;
|
||||
case 2: {
|
||||
yybegin(PARAMETERS);
|
||||
return new ASMParsedSymbol(ASMParsedSymbol.TYPE_INSTRUCTION_NAME, yytext());
|
||||
}
|
||||
case 48:
|
||||
break;
|
||||
case 28: {
|
||||
return new ParsedSymbol(ParsedSymbol.TYPE_REGISTER, new RegisterNumber(Integer.parseInt(yytext().substring(8))));
|
||||
return new ASMParsedSymbol(ASMParsedSymbol.TYPE_REGISTER, new RegisterNumber(Integer.parseInt(yytext().substring(8))));
|
||||
}
|
||||
case 49:
|
||||
break;
|
||||
case 24: {
|
||||
return new ParsedSymbol(ParsedSymbol.TYPE_FLOAT, new Double(Double.parseDouble((yytext()))));
|
||||
case 13: {
|
||||
String s = yytext();
|
||||
return new ASMParsedSymbol(ASMParsedSymbol.TYPE_LABEL, s.substring(0, s.length() - 1));
|
||||
}
|
||||
case 50:
|
||||
break;
|
||||
case 25: {
|
||||
return new ParsedSymbol(ParsedSymbol.TYPE_BOOLEAN, Boolean.TRUE);
|
||||
}
|
||||
case 51:
|
||||
break;
|
||||
case 26: {
|
||||
return new ParsedSymbol(ParsedSymbol.TYPE_NULL, new Null());
|
||||
}
|
||||
case 52:
|
||||
break;
|
||||
case 20: {
|
||||
string.append('\\');
|
||||
}
|
||||
case 53:
|
||||
case 51:
|
||||
break;
|
||||
case 14: {
|
||||
throw new ParseException("Illegal escape sequence \"" + yytext() + "\"", yyline + 1);
|
||||
}
|
||||
case 54:
|
||||
case 52:
|
||||
break;
|
||||
case 29: {
|
||||
return new ASMParsedSymbol(ASMParsedSymbol.TYPE_UNDEFINED, new Undefined());
|
||||
}
|
||||
case 53:
|
||||
break;
|
||||
case 18: {
|
||||
string.append('\n');
|
||||
}
|
||||
case 54:
|
||||
break;
|
||||
case 10: {
|
||||
return new ASMParsedSymbol(ASMParsedSymbol.TYPE_INTEGER, new Long(Long.parseLong((yytext()))));
|
||||
}
|
||||
case 55:
|
||||
break;
|
||||
case 3: {
|
||||
return new ParsedSymbol(ParsedSymbol.TYPE_BLOCK_END);
|
||||
}
|
||||
case 56:
|
||||
break;
|
||||
case 29: {
|
||||
return new ParsedSymbol(ParsedSymbol.TYPE_UNDEFINED, new Undefined());
|
||||
}
|
||||
case 57:
|
||||
break;
|
||||
case 17: {
|
||||
string.append('\f');
|
||||
}
|
||||
case 56:
|
||||
break;
|
||||
case 8: {
|
||||
return new ASMParsedSymbol(ASMParsedSymbol.TYPE_COMMENT, yytext().substring(1));
|
||||
}
|
||||
case 57:
|
||||
break;
|
||||
case 11: {
|
||||
yybegin(YYINITIAL);
|
||||
return new ASMParsedSymbol(ASMParsedSymbol.TYPE_BLOCK_START);
|
||||
}
|
||||
case 58:
|
||||
break;
|
||||
case 21: {
|
||||
@@ -1012,7 +1013,7 @@ public final class FlasmLexer {
|
||||
if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
|
||||
zzAtEOF = true;
|
||||
{
|
||||
return new ParsedSymbol(ParsedSymbol.TYPE_EOF);
|
||||
return new ASMParsedSymbol(ASMParsedSymbol.TYPE_EOF);
|
||||
}
|
||||
} else {
|
||||
zzScanError(ZZ_NO_MATCH);
|
||||
+1
-1
@@ -14,7 +14,7 @@
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package com.jpexs.decompiler.flash.action.parser;
|
||||
package com.jpexs.decompiler.flash.action.parser.pcode;
|
||||
|
||||
public class Label {
|
||||
|
||||
+20
-19
@@ -1,7 +1,8 @@
|
||||
/* Flash assembler language lexer specification */
|
||||
|
||||
package com.jpexs.decompiler.flash.action.parser;
|
||||
package com.jpexs.decompiler.flash.action.parser.pcode;
|
||||
|
||||
import com.jpexs.decompiler.flash.action.parser.ParseException;
|
||||
import com.jpexs.decompiler.flash.action.swf4.ConstantIndex;
|
||||
import com.jpexs.decompiler.flash.action.swf4.RegisterNumber;
|
||||
import com.jpexs.decompiler.flash.action.swf4.Undefined;
|
||||
@@ -16,7 +17,7 @@ import com.jpexs.decompiler.flash.action.swf4.Null;
|
||||
%char
|
||||
%line
|
||||
%column
|
||||
%type ParsedSymbol
|
||||
%type ASMParsedSymbol
|
||||
%throws ParseException
|
||||
|
||||
%{
|
||||
@@ -104,14 +105,14 @@ Constant= constant{PositiveNumberLiteral}
|
||||
|
||||
{Label} {
|
||||
String s=yytext();
|
||||
return new ParsedSymbol(ParsedSymbol.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 ParsedSymbol(ParsedSymbol.TYPE_INSTRUCTION_NAME,yytext());
|
||||
return new ASMParsedSymbol(ASMParsedSymbol.TYPE_INSTRUCTION_NAME,yytext());
|
||||
}
|
||||
{EndOfBlock} { return new ParsedSymbol(ParsedSymbol.TYPE_BLOCK_END); }
|
||||
{EndOfBlock} { return new ASMParsedSymbol(ASMParsedSymbol.TYPE_BLOCK_END); }
|
||||
}
|
||||
|
||||
<PARAMETERS> {
|
||||
@@ -123,20 +124,20 @@ Constant= constant{PositiveNumberLiteral}
|
||||
|
||||
/* 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())))); }
|
||||
{LineTerminator} {yybegin(YYINITIAL); return new ParsedSymbol(ParsedSymbol.TYPE_EOL); }
|
||||
{Comment} {return new ParsedSymbol(ParsedSymbol.TYPE_COMMENT,yytext().substring(1));}
|
||||
{StartOfBlock} { yybegin(YYINITIAL); return new ParsedSymbol(ParsedSymbol.TYPE_BLOCK_START); }
|
||||
{True} {return new ParsedSymbol(ParsedSymbol.TYPE_BOOLEAN,Boolean.TRUE);}
|
||||
{False} {return new ParsedSymbol(ParsedSymbol.TYPE_BOOLEAN,Boolean.FALSE);}
|
||||
{Null} {return new ParsedSymbol(ParsedSymbol.TYPE_NULL,new Null());}
|
||||
{Undefined} {return new ParsedSymbol(ParsedSymbol.TYPE_UNDEFINED,new Undefined());}
|
||||
{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));}
|
||||
{StartOfBlock} { yybegin(YYINITIAL); return new ASMParsedSymbol(ASMParsedSymbol.TYPE_BLOCK_START); }
|
||||
{True} {return new ASMParsedSymbol(ASMParsedSymbol.TYPE_BOOLEAN,Boolean.TRUE);}
|
||||
{False} {return new ASMParsedSymbol(ASMParsedSymbol.TYPE_BOOLEAN,Boolean.FALSE);}
|
||||
{Null} {return new ASMParsedSymbol(ASMParsedSymbol.TYPE_NULL,new Null());}
|
||||
{Undefined} {return new ASMParsedSymbol(ASMParsedSymbol.TYPE_UNDEFINED,new Undefined());}
|
||||
|
||||
{Register} { return new ParsedSymbol(ParsedSymbol.TYPE_REGISTER,new RegisterNumber(Integer.parseInt(yytext().substring(8)))); }
|
||||
{Constant} { return new ParsedSymbol(ParsedSymbol.TYPE_CONSTANT,new ConstantIndex(Integer.parseInt(yytext().substring(8)))); }
|
||||
{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 ParsedSymbol(ParsedSymbol.TYPE_IDENTIFIER,yytext()); }
|
||||
{Identifier} { return new ASMParsedSymbol(ASMParsedSymbol.TYPE_IDENTIFIER,yytext()); }
|
||||
|
||||
}
|
||||
|
||||
@@ -144,7 +145,7 @@ Constant= constant{PositiveNumberLiteral}
|
||||
\" {
|
||||
yybegin(PARAMETERS);
|
||||
// length also includes the trailing quote
|
||||
return new ParsedSymbol(ParsedSymbol.TYPE_STRING,string.toString());
|
||||
return new ASMParsedSymbol(ASMParsedSymbol.TYPE_STRING,string.toString());
|
||||
}
|
||||
|
||||
{StringCharacter}+ { string.append( yytext() ); }
|
||||
@@ -169,4 +170,4 @@ Constant= constant{PositiveNumberLiteral}
|
||||
|
||||
/* error fallback */
|
||||
.|\n { }
|
||||
<<EOF>> { return new ParsedSymbol(ParsedSymbol.TYPE_EOF); }
|
||||
<<EOF>> { return new ASMParsedSymbol(ASMParsedSymbol.TYPE_EOF); }
|
||||
Reference in New Issue
Block a user