X-Git-Url: http://svarog.pmf.uns.ac.rs/gitweb/?p=mjc2wsl.git;a=blobdiff_plain;f=src%2Fmjc2wsl.java;h=c8da105e4bff4a081b92d20fd690f4a16f6fbc64;hp=d098bd8e2069d97e23df332a754c6e835aa487b8;hb=16b6eee0dce46948aca7f014514d5cfc76b4774e;hpb=a253dd1f53df5297e38a1046357581c0de9427e2 diff --git a/src/mjc2wsl.java b/src/mjc2wsl.java index d098bd8..c8da105 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,30 @@ public class mjc2wsl{ break; } - //TODO read, print - case read: { + // read, print + case read:{ + //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: { 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 print:{ + // 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 print: { - // TODO need to make it a char + case bprint: { + // 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; }