X-Git-Url: http://svarog.pmf.uns.ac.rs/gitweb/?p=mjc2wsl.git;a=blobdiff_plain;f=src%2Fmjc2wsl.java;h=b807bc8d7be03f539ead619073a336d996f9af3d;hp=521be052fffd8f23a56a4537793fc4a85227245d;hb=8bb607fd38a590c89a42c2aa69ed916a8cbaf4d9;hpb=dd4a6268bba13afdda7ccd40d82a5955ef56eb7d diff --git a/src/mjc2wsl.java b/src/mjc2wsl.java index 521be05..b807bc8 100644 --- a/src/mjc2wsl.java +++ b/src/mjc2wsl.java @@ -189,7 +189,7 @@ public class mjc2wsl{ private String getRelationFor(int opcode) throws Exception { switch (opcode) { case jeq: return "="; - case jne: return "#"; + case jne: return "<>"; case jlt: return "<"; case jle: return "<="; case jgt: return ">"; @@ -273,9 +273,29 @@ public class mjc2wsl{ prl(cmdToEStack("tempres")); break; } + case sub: { + prl(getTopTwo()); + prl("tempres := tempb - tempa;"); + prl(cmdToEStack("tempres")); + break; + } + case mul: { + prl(getTopTwo()); + prl("tempres := tempb * tempa;"); + prl(cmdToEStack("tempres")); + break; + } case div: { prl(getTopTwo()); - prl("tempres := tempb / tempa;"); + prl("IF tempa = 0 THEN ERROR(\"division by zero\") FI;"); + prl("tempres := tempb DIV tempa;"); + prl(cmdToEStack("tempres")); + break; + } + case rem: { + prl(getTopTwo()); + prl("IF tempa = 0 THEN ERROR(\"division by zero\") FI;"); + prl("tempres := tempb MOD tempa;"); prl(cmdToEStack("tempres")); break; }