X-Git-Url: http://svarog.pmf.uns.ac.rs/gitweb/?p=mjc2wsl.git;a=blobdiff_plain;f=src%2Fmjc2wsl.java;h=4b231aab04e6d3fdb2c0d84d63aff4713b0f9f5a;hp=82ae9cc5744182c0b5e87d494dd43c8f7ddea44f;hb=a2bd7f29ece868c30e34f85e4e474ad947794642;hpb=3382daace9411a815924946a61cde708428b6695;ds=sidebyside diff --git a/src/mjc2wsl.java b/src/mjc2wsl.java index 82ae9cc..4b231aa 100644 --- a/src/mjc2wsl.java +++ b/src/mjc2wsl.java @@ -463,8 +463,30 @@ public class mjc2wsl{ prl("tempArray[tempa+1]:=tempres ENDVAR;"); break; } - //TODO arraylength - //TODO dup, dup2 + case arraylength :{ + prl(getTop()); + //TODO make an array length function of some sort! + prl(createComment("array length not known - LENGTH not aplicable to arrays",C_ERR)); + message("array length not known - LENGTH not aplicable to arrays",M_ERR); + prl(createComment("put 1 on the stack for consistency",C_SPEC)); + prl(cmdToEStack(1)); + break; + } + + case dup : { + prl(getTop()); + prl(cmdToEStack("tempa")); + prl(cmdToEStack("tempa")); + break; + } + case dup2 : { + prl(getTopTwo()); + prl(cmdToEStack("tempb")); + prl(cmdToEStack("tempa")); + prl(cmdToEStack("tempb")); + prl(cmdToEStack("tempa")); + break; + } case pop : { prl(cmdPopEStack());