소스 검색

simple name for scripts

Kajetan Johannes Hammerle 6 년 전
부모
커밋
d16e85e381
3개의 변경된 파일20개의 추가작업 그리고 9개의 파일을 삭제
  1. 10 2
      src/me/hammerle/snuviscript/code/Script.java
  2. 2 1
      src/me/hammerle/snuviscript/code/SnuviParser.java
  3. 8 6
      test.sbasic

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

@@ -11,6 +11,7 @@ import me.hammerle.snuviscript.variable.Variable;
 
 public final class Script 
 {
+    protected final String simpleName;
     protected final String name;
     protected final int id;
     
@@ -51,7 +52,7 @@ public final class Script
     private final Consumer<Script> onStart;
     private final Consumer<Script> onTerm;
     
-    public Script(SnuviParser parser, List<String> code, String name,  int id, 
+    public Script(SnuviParser parser, List<String> code, String simpleName, String name,  int id, 
             Consumer<Script> onStart, Consumer<Script> onTerm, boolean receiveEventBroadcast)
     {
         this.parser = parser;
@@ -74,6 +75,7 @@ public final class Script
         this.currentFunction = null;
         this.ifState = true;
         this.printStackTrace = false;
+        this.simpleName = simpleName;
         this.name = name;
         this.id = id;
         this.onStart = onStart;
@@ -102,6 +104,7 @@ public final class Script
         this.catchLine = -1;
         this.printStackTrace = false;
         this.name = sc.name;
+        this.simpleName = sc.simpleName;
         this.id = sc.id;
         this.onStart = sc.onStart;
         this.onTerm = sc.onTerm;
@@ -176,7 +179,7 @@ public final class Script
                 return Void.TYPE;
             }
         }
-        if(currentLine >= length && !isWaiting)
+        if(!subScript && currentLine >= length && !isWaiting)
         {
             parser.termSafe(this);
         }
@@ -197,6 +200,11 @@ public final class Script
     // general stuff
     // -------------------------------------------------------------------------
 
+    public String getSimpleName() 
+    {
+        return simpleName;
+    }
+
     public String getName() 
     {
         return name;

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

@@ -125,7 +125,8 @@ public class SnuviParser
         try
         {            
             List<String> code = SnuviUtils.readCode(end, paths);
-            Script sc = new Script(this, code, paths[0], idCounter++, onStart, onTerm, rEventBroadcast);
+            String simpleName = paths[0].substring(paths[0].lastIndexOf('/') + 1);
+            Script sc = new Script(this, code, simpleName, paths[0], idCounter++, onStart, onTerm, rEventBroadcast);
             scripts.put(sc.id, sc);
             sc.onStart();
             sc.run();

+ 8 - 6
test.sbasic

@@ -1,6 +1,8 @@
-array.new(a[2]);
-a[0] = 3;
-a[0] += 3;
-a[0]++;
-a[1] = 5;
-print(a);
+hallo();
+
+function hallo()
+{
+    print("wusi");
+}
+
+hallo();