gitweb on Svarog

projekti pod git sistemom za održavanje verzija -- projects under the git version control system
Merge branch 'master' into work
[mjc2wsl.git] / src / mjc2wsl.java
index 6cd59e0..f754e4e 100644 (file)
@@ -436,17 +436,18 @@ public class mjc2wsl{
 
                        case getfield: {
                                int f = get2();
+                               prl(createStartVar("tempa"));
                                prl(createTopEStack());
                                prl(createToEStack(createObject("tempa") + "[" + (f + 1) + "]"));
+                               prl(createEndVar());
                                break;
                        }
                        case putfield: {
                                int f = get2();
-                               // we need to use a temparray as a pointer, WSL
-                               // otherwise tries to access it as a list of lists and fails
-                               prl(createTopTwoEStack());
-                               prl("VAR < tempArray := " + createObject("tempb") + " > :");
-                               prl("tempArray[" + (f + 1) + "]:=tempa ENDVAR;");
+                               prl(createStartVar("tempa", "tempb"));
+                               prl(createTopTwoEStack());                              
+                               prl(createObject("tempb") + "[" + (f + 1) + "]:=tempa;");
+                               prl(createEndVar());
                                break;
                        }
 
@@ -455,6 +456,11 @@ public class mjc2wsl{
                                break;
                        }
 
+                       case const_m1: {
+                               prl(createToEStack(-1));
+                               break;
+                       }
+
                        case const_0:
                        case const_1:
                        case const_2:
Svarog.pmf.uns.ac.rs/gitweb maintanance Doni Pracner