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
return res;
}
+ private String cmdPopEStack() {
+ String res = "mjvm_estack := TAIL(mjvm_estack);";
+ if (genPrintEStackOnChange) res +="PRINT(\"eStack\",mjvm_estack);";
+ return res;
+ }
+
+
private String getTopTwo(){
return cmdFromEStack("tempa") + "\n" + cmdFromEStack("tempb");
}
break;
}
- //TODO neg, shl, shr, inc
+ case neg :{
+ prl(getTop());
+ prl(cmdToEStack("-tempa"));
+ break;
+ }
+ //TODO shl, shr
+
+ case inc : {
+ int b1 = get(), b2 = get();
+ prl(loc(b1)+" := " +loc(b1)+" + "+b2+";");
+ break;
+ }
//TODO new_ newarray
case new_ :
get();//needs a short, but a byte will be taken bellow as well
}
//TODO aload, asstore, baload, bastore
//TODO arraylength
- //TODO pop, dup, dup2
+ //TODO dup, dup2
+
+ case pop : {
+ prl(cmdPopEStack());
+ break;
+ }
case jmp: {
prl("CALL a" + (counter + get2()) + ";");
}
// read, print
- case read:{
+ case bread:{
//TODO make it a char for read
message("char is read like a number", M_WAR);
prl(createComment("char is read like a number",C_SPEC));
}
- case bread: {
+ case read: {
prl("tempa := @String_To_Num(@Read_Line(Standard_Input_Port));");
prl(cmdToEStack("tempa"));
break;
}
// the prints
- case print:{
+ case bprint:{
// TODO need to make it a char on print
message("chars will be printed as number codes", M_WAR);
prl(createComment("char will be printed as a number code",C_SPEC));
}
- case bprint: {
+ case print: {
// TODO printing numbers needs different lengths of spacing
prl(getTopTwo());
pr(createComment("print spacing",C_SPEC));