gitweb on Svarog

projekti pod git sistemom za održavanje verzija -- projects under the git version control system
mjc2wsl - minor - rename private vars for pause/print on address jumps
[mjc2wsl.git] / src / mjc2wsl.java
index 65b6348..552fe9d 100644 (file)
@@ -32,8 +32,9 @@ public class mjc2wsl{
                        out.println("total errors:"+messageCounters[M_ERR]+" warnings:"+messageCounters[M_WAR]);
        }
        
-       private boolean addPauseAfterEachAddress=false, 
-               addPrintForEachAddress = false;
+       private boolean genPauseAfterEachAddress=false, 
+               genPrintForEachAddress = false,
+               genPrintEStackOnChange = false;
        
        /** Constant used for marking a regular comment from the original file */
        public static final char C_REG = ' ';
@@ -226,15 +227,21 @@ public class mjc2wsl{
        //Expression stack
        
        private String cmdToEStack(int i) {
-               return "mjvm_estack := <" + i + " > ++ mjvm_estack;";
+               String res = "mjvm_estack := <" + i + " > ++ mjvm_estack;";
+               if (genPrintEStackOnChange) res +="PRINT(\"eStack\",mjvm_estack);";
+               return res;
        }
 
        private String cmdToEStack(String i) {
-               return "mjvm_estack := <" + i + " > ++ mjvm_estack;";
+               String res = "mjvm_estack := <" + i + " > ++ mjvm_estack;";
+               if (genPrintEStackOnChange) res +="PRINT(\"eStack\",mjvm_estack);";
+               return res;
        }
 
        private String cmdFromEStack(String st) {
-               return st + " := HEAD(mjvm_estack); mjvm_estack := TAIL(mjvm_estack);";
+               String res = st + " := HEAD(mjvm_estack); mjvm_estack := TAIL(mjvm_estack);";
+               if (genPrintEStackOnChange) res +="PRINT(\"eStack\",mjvm_estack);";
+               return res;
        }
        
        private String getTopTwo(){
@@ -293,9 +300,9 @@ public class mjc2wsl{
                        if (originalInComments)
                                prl(createComment(describeOpCode(op), C_OC));
                        prl("a" + counter + " == ");
-                       if (addPrintForEachAddress) {
+                       if (genPrintForEachAddress) {
                                        prl("PRINT(\"a"+counter+"\");");
-                                       if (addPauseAfterEachAddress)
+                                       if (genPauseAfterEachAddress)
                                                        prl("debug_disposable_string := @Read_Line(Standard_Input_Port);");
                        }
                        switch (op) {
@@ -516,16 +523,21 @@ public class mjc2wsl{
                                                originalInComments = args[i].charAt(4) == '+';
                                        else
                                                originalInComments = true;
-                               } else if (args[i].startsWith("--screen")) {
+                               } else if (args[i].compareTo("--screen") == 0) {
                                        out = new PrintWriter(System.out);
                                } else if (args[i].compareTo("-d") == 0) {
                                        printLevel = M_DEB;//print debug info
                                } else if (args[i].compareTo("-v") == 0) {
                                        printLevel = M_WAR;//print warnings
                                } else if (args[i].compareTo("-q") == 0) {
-                                       printLevel = M_ERR+1;//no printing
-                               }
-                               i++;
+                                       printLevel = M_ERR+1;//no printing                              
+                               } else if (args[i].compareToIgnoreCase("--genEStackPrint") == 0) {
+                                       genPrintEStackOnChange = true;
+                               } else if (args[i].compareToIgnoreCase("--genAll") == 0) {
+                                       genPrintEStackOnChange = true;
+                                       genPrintForEachAddress = true;
+                                       genPauseAfterEachAddress = true;
+                               }i++;
                        }
 
                        if (i >= args.length) {
Svarog.pmf.uns.ac.rs/gitweb maintanance Doni Pracner