Kajetan Johannes Hammerle 4 years ago
parent
commit
42343a4b3f

+ 63 - 0
src/me/hammerle/snuviscript/ConsoleLogger.java

@@ -0,0 +1,63 @@
+package me.hammerle.snuviscript;
+
+import me.hammerle.snuviscript.code.ISnuviLogger;
+import me.hammerle.snuviscript.code.Script;
+
+public class ConsoleLogger implements ISnuviLogger
+{
+    @Override
+    public void print(String message, Exception ex, String function, String scriptname, Script sc, int line)
+    {
+        StringBuilder sb = new StringBuilder();
+
+        if(ex == null)
+        {
+            sb.append("debug: '");
+            sb.append(message);
+            sb.append("'");
+        }
+        else
+        {
+            sb.append(ex.getClass().getSimpleName());
+            sb.append(": '");
+            sb.append(ex.getMessage());
+            if(message != null && !message.isEmpty())
+            {
+                sb.append(" - ");
+                sb.append(message);
+            }
+            sb.append("'");
+        }
+        
+        if(scriptname != null && !scriptname.isEmpty())
+        {
+            sb.append(" in script '");
+            sb.append(scriptname);
+            sb.append("'");
+        }
+        
+        if(sc != null)
+        {
+            sb.append(" id '");
+            sb.append(sc.getId());
+            sb.append("'");
+        }
+        
+        if(function != null && !function.isEmpty())
+        {
+            sb.append(" in function '");
+            sb.append(function);
+            sb.append("'");
+        }
+        
+        if(line != -1)
+        {
+            sb.append(" in line '");
+            sb.append(line);
+            sb.append("'");
+        }
+        
+        System.out.println(sb.toString());
+    }
+    
+}

+ 14 - 0
src/me/hammerle/snuviscript/ConsoleScheduler.java

@@ -0,0 +1,14 @@
+package me.hammerle.snuviscript;
+
+import me.hammerle.snuviscript.code.ISnuviScheduler;
+
+public class ConsoleScheduler implements ISnuviScheduler
+{
+    @Override
+    public int scheduleTask(Runnable r, long delay)
+    {
+        System.out.println("Scheduling is currently not supported in this environment.");
+        return -1;
+    }
+    
+}

+ 5 - 2
src/me/hammerle/snuviscript/SnuviScript.java

@@ -1,11 +1,14 @@
 package me.hammerle.snuviscript;
 
-import me.hammerle.snuviscript.test.Test;
+import me.hammerle.snuviscript.code.ScriptManager;
 
 public class SnuviScript
 {
     public static void main(String[] args)
     {
-        Test.test();
+        me.hammerle.snuviscript.test.Test.test();
+        
+        //ScriptManager sm = new ScriptManager(new ConsoleLogger(), new ConsoleScheduler());
+        //sm.startScript(true, args[0], args);
     }  
 }

+ 1 - 1
src/me/hammerle/snuviscript/code/FunctionRegistry.java

@@ -677,7 +677,7 @@ public class FunctionRegistry
             String label = in[1].getString(sc);
             sc.getScriptManager().getScheduler().scheduleTask(() -> 
             {
-                if(sc.shouldTerm())
+                if(sc.shouldTerm() || sc.isHolded())
                 {
                     return;
                 }

+ 9 - 0
src/me/hammerle/snuviscript/code/ISnuviLogger.java

@@ -14,6 +14,15 @@ public interface ISnuviLogger
      */
     public void print(String message, Exception ex, String function, String scriptname, Script sc, int line);
     
+    /** Prints messages depending on the implementation.
+     *
+     * @param ex an involved exception, can be null
+     */
+    public default void print(Exception ex)
+    {
+        print(null, ex, null, null, null, -1);
+    }
+    
     /** Prints messages depending on the implementation.
      *
      * @param message a message, can be null

+ 1 - 2
src/me/hammerle/snuviscript/code/Script.java

@@ -169,8 +169,7 @@ public final class Script
                     errorLine = -1;
                     continue;
                 }
-                sm.getLogger().print(ex.getLocalizedMessage(), ex, 
-                        code[lineIndex].getName(), name, this, code[lineIndex].getLine());
+                sm.getLogger().print(null, ex, code[lineIndex].getName(), name, this, code[lineIndex].getLine());
                 break;
             }
             

+ 1 - 1
src/me/hammerle/snuviscript/code/ScriptManager.java

@@ -152,7 +152,7 @@ public class ScriptManager
         }
         catch(PreScriptException ex)
         {
-            logger.print(ex.getLocalizedMessage(), ex, null, paths[0], null, ex.getLine());
+            logger.print(null, ex, null, paths[0], null, ex.getLine());
             return null;
         }
     }

+ 4 - 4
src/me/hammerle/snuviscript/test/Test.java

@@ -22,12 +22,12 @@ public class Test
     
     public static void test()
     {
-        testTokenizer();
-        testCompiler();
-        testOutput();
+        //testTokenizer();
+        //testCompiler();
+        //testOutput();
         
         LOGGER.reset();
-        PARSER.startScript(true, "test", "./test/functions/functions18");
+        PARSER.startScript(true, "test", "./test/test.test");
         LOGGER.printAll();
     }
     

+ 1 - 4
test/test.test

@@ -1,4 +1 @@
-for(time = 3600000; time <=86400000; time + 3600000) {
-    print(time);
-  waitfor(20);
-}
+print(5 + -1 * 6);