X-Git-Url: http://svarog.pmf.uns.ac.rs/gitweb/?p=mjc2wsl.git;a=blobdiff_plain;f=src%2Fmjc2wsl.java;h=df846c95e9ebe360daa6364dbd318b1f12ae6b5e;hp=d098bd8e2069d97e23df332a754c6e835aa487b8;hb=07e4f84fba5ff6c4714b9ddacabff2d9bea57326;hpb=a253dd1f53df5297e38a1046357581c0de9427e2 diff --git a/src/mjc2wsl.java b/src/mjc2wsl.java index d098bd8..df846c9 100644 --- a/src/mjc2wsl.java +++ b/src/mjc2wsl.java @@ -406,16 +406,13 @@ public class mjc2wsl{ } case call: { - prl(cmdToMStack(counter+2)); prl("CALL a" + (counter + get2()) + ";"); break; } case return_: { - prl("IF EMPTY?(mjvm_mstack) THEN CALL Z ELSE"); + prl("IF EMPTY?(mjvm_mstack) THEN CALL Z FI"); //else we let things return - prl(cmdFromMStack("tempa")); - prl("SKIP FI"); prl("END b"+counter+" =="); break; } @@ -434,23 +431,24 @@ public class mjc2wsl{ break; } - //TODO read, print + // read, print + case bread: case read: { + //TODO make it a char for read prl("tempa := @String_To_Num(@Read_Line(Standard_Input_Port));"); prl(cmdToEStack("tempa")); break; } // the prints - case bprint: { - prl(getTopTwo()); - prl("PRINT(tempb);"); - break; - } + case bprint: case print: { - // TODO need to make it a char + // TODO need to make it a char on print + // TODO printing numbers needs different lengths of spacing prl(getTopTwo()); - prl("PRINT(tempb);"); + pr(createComment("print spacing",C_SPEC)); + prl("IF tempa>1 THEN FOR i:=2 TO tempa STEP 1 DO PRINFLUSH(\" \") OD FI;"); + prl("PRINFLUSH(tempb);"); break; }