gitweb on Svarog

projekti pod git sistemom za održavanje verzija -- projects under the git version control system
mjc2wsl, error message for converting the stream
[mjc2wsl.git] / src / com / quemaster / transformations / mjc2wsl / mjc2wsl.java
index 233d5ae..14ef154 100644 (file)
@@ -1,6 +1,6 @@
 package com.quemaster.transformations.mjc2wsl;
 /*
-   Copyright (C) 2014,2015, 2016  Doni Pracner
+   Copyright (C) 2014,2015, 2016, 2018  Doni Pracner
    
     This file is part of mjc2wsl.
 
@@ -152,7 +152,7 @@ public class mjc2wsl{
                        return versionN;
        }
        
-       MicroJavaInput mjInput = new MicroJavaInput();
+       private MicroJavaInput mjInput;
 
        private PrintWriter out = null;
 
@@ -179,8 +179,15 @@ public class mjc2wsl{
 
        public String createStandardStart(int numWords){
                StringBuilder ret = new StringBuilder(
-                       "C:\" This file automatically converted from microjava bytecode\";\n"
-                       +"C:\" with mjc2wsl "+getVersion()+"\";\n");
+                       "C:\" This file was automatically converted from microjava bytecode\n"
+                       +"    using mjc2wsl "+getVersion()+"\n");
+
+               ret.append("   -options:");
+               ret.append("\n    localsAsArrays:"+genLocalsAsArray);
+               ret.append("\n    localVarBlocks:"+genLocalVars);
+               ret.append("\n    popPush:"+genPopPush);
+               ret.append("\n    inlinePrint:"+genInlinePrint);
+               ret.append("\n\";\n");
 
                ret.append("\nBEGIN");
                ret.append("\nVAR <\n\t");
@@ -357,12 +364,10 @@ public class mjc2wsl{
        }
 
        public void convertStream(InputStream ins) throws Exception{
-               mjInput.setStream(ins);
-               //process start 
-               mjInput.processHeader(this);
-               
-               prl(createStandardStart(mjInput.getNumberOfWords(this)));
-               prl("SKIP;\n ACTIONS a" + (14 + mjInput.getMainAdr(this)) + " :");
+               mjInput = new MicroJavaInput(ins);
+
+               prl(createStandardStart(mjInput.getNumberOfWords()));
+               prl("SKIP;\n ACTIONS a" + (14 + mjInput.getMainAdr()) + " :");
 
                // the number of Locals for procedures; need to remember it for exits
                int numberOfLocals = 0;
@@ -676,7 +681,7 @@ public class mjc2wsl{
 
                        // read, print
                        case bread: {
-                               // TODO maybe we'll need a bufer for multi chars!
+                               // TODO maybe we'll need a buffer for multi chars!
                                prl(createStartVar("tempa"));
                                prl("@Read_Line_Proc(VAR tempa, Standard_Input_Port);");
                                prl("tempa := @String_To_List(tempa)[1];");
@@ -896,7 +901,8 @@ public class mjc2wsl{
                                } else if (args[i].compareToIgnoreCase("--genLocalsSeparate") == 0) {
                                        genLocalsAsArray = false;
                                } else {
-                                       System.err.println("unknown option: "+args[i]);
+                                       System.err.println("unknown option, refusing to continue: "+args[i]);
+                                       System.exit(1);
                                }
                                i++;
                        }
@@ -933,7 +939,7 @@ public class mjc2wsl{
                        try {
                                convertStream(Files.newInputStream(p));
                        } catch (Exception e) {
-                               // TODO Auto-generated catch block
+                               System.err.println("Failed converting the stream");
                                e.printStackTrace();
                        }
                        long mili = Calendar.getInstance().getTimeInMillis()
Svarog.pmf.uns.ac.rs/gitweb maintanance Doni Pracner