gitweb on Svarog
projekti pod git sistemom za održavanje verzija -- projects under the git version control systemdiff --git a/src/mjc2wsl.java b/src/mjc2wsl.java
--- a/src/mjc2wsl.java
+++ b/src/mjc2wsl.java
* @author Doni Pracner, http://perun.dmi.rs/pracner http://quemaster.com
*/
public class mjc2wsl{
* @author Doni Pracner, http://perun.dmi.rs/pracner http://quemaster.com
*/
public class mjc2wsl{
- public static String versionN = "0.1.6";
+ public static String versionN = "0.1.7";
private TransMessages messages = new TransMessages();
private TransMessages messages = new TransMessages();
ret.append(createAsciiString());
ret.append(createAsciiString());
- ret.append("\nBEGIN ");
- ret.append("\nVAR < \n\t");
- ret.append("mjvm_locals := ARRAY(1,0), ");
- ret.append("\n\tmjvm_statics := ARRAY("+numWords+",0), ");
- ret.append("\n\tmjvm_arrays := < >, ");
- ret.append("\n\tmjvm_objects := < >, ");
- ret.append("\n mjvm_estack := < >, mjvm_mstack := < > > : ");
+ ret.append("\nBEGIN");
+ ret.append("\nVAR <\n\t");
+ ret.append("mjvm_locals := ARRAY(1,0),");
+ ret.append("\n\tmjvm_statics := ARRAY("+numWords+",0),");
+ ret.append("\n\tmjvm_arrays := < >,");
+ ret.append("\n\tmjvm_flag_jump := 0,");
+ ret.append("\n\tmjvm_objects := < >,");
+ ret.append("\n\tmjvm_estack := < >, mjvm_mstack := < > > :");
return ret.toString();
}
return ret.toString();
}
}
public String createStandardEnd(){
}
public String createStandardEnd(){
- StringBuilder ret = new StringBuilder("SKIP\nENDVAR");
+ StringBuilder ret = new StringBuilder("SKIP\nENDVAR\n");
ret.append("\nWHERE\n");
ret.append("\nFUNCT CHR(num) ==:\n");
ret.append("\nWHERE\n");
ret.append("\nFUNCT CHR(num) ==:\n");
ret.append("\nPROC Print_MJ_CHAR(val, format VAR)==\n");
ret.append(createComment("print spacing", C_SPEC));
ret.append("\n\tIF val=10 OR val=13 THEN\n");
ret.append("\nPROC Print_MJ_CHAR(val, format VAR)==\n");
ret.append(createComment("print spacing", C_SPEC));
ret.append("\n\tIF val=10 OR val=13 THEN\n");
- ret.append("\t\tPRINT(\"\");");
+ ret.append("\t\tPRINT(\"\");\n");
ret.append("\tELSE\n");
ret.append("\t\tIF format>1 THEN\n\t\t\tFOR i:=2 TO ");
ret.append("format STEP 1 DO PRINFLUSH(\" \") OD\n");
ret.append("\tELSE\n");
ret.append("\t\tIF format>1 THEN\n\t\t\tFOR i:=2 TO ");
ret.append("format STEP 1 DO PRINFLUSH(\" \") OD\n");
ret.append("\tFI\n");
ret.append("END\n");
ret.append("\tFI\n");
ret.append("END\n");
- ret.append("\nEND\n");
+ ret.append("\nEND");
return ret.toString();
}
return ret.toString();
}
prl("SKIP;\n ACTIONS a" + (14 + mainAdr) + " :");
int op = get();
while (op >= 0) {
prl("SKIP;\n ACTIONS a" + (14 + mainAdr) + " :");
int op = get();
while (op >= 0) {
+ prl(" a" + counter + " ==");
if (originalInComments)
prl(createComment(describeOpCode(op), C_OC));
if (originalInComments)
prl(createComment(describeOpCode(op), C_OC));
- prl(" a" + counter + " == ");
if (genPrintForEachAddress) {
prl("PRINT(\"a" + counter + "\");");
if (genPauseAfterEachAddress)
if (genPrintForEachAddress) {
prl("PRINT(\"a" + counter + "\");");
if (genPauseAfterEachAddress)
case jge: {
prl(createStartVar("tempa", "tempb"));
prl(createTopTwoEStack());
case jge: {
prl(createStartVar("tempa", "tempb"));
prl(createTopTwoEStack());
- prl("IF tempb " + getRelationFor(op) + " tempa THEN CALL a"
- + (counter + get2()) + " ELSE CALL a" + (counter + 1)
+ prl("IF tempb " + getRelationFor(op)
+ + " tempa THEN mjvm_flag_jump := 1"
+ + " ELSE mjvm_flag_jump := 0"
+ " FI;");
prl(createEndVar());
+ " FI;");
prl(createEndVar());
+ prl("IF mjvm_flag_jump = 1 THEN CALL a"
+ + (counter + get2())
+ + " ELSE CALL a" + (counter + 1)
+ + " FI;");
break;
}
break;
}
prl("CALL a" + counter + "\n END");
}
prl("SKIP\n END\nENDACTIONS;\n");
prl("CALL a" + counter + "\n END");
}
prl("SKIP\n END\nENDACTIONS;\n");
- prl(createStandardEnd());
+ pr(createStandardEnd());
}
public void convertFile(File f) {
}
public void convertFile(File f) {