]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - tests/org.simantics.scl.compiler.tests/src/org/simantics/scl/compiler/tests/completions/TestRobustModuleSplitter.java
New SCL completion implementation
[simantics/platform.git] / tests / org.simantics.scl.compiler.tests / src / org / simantics / scl / compiler / tests / completions / TestRobustModuleSplitter.java
diff --git a/tests/org.simantics.scl.compiler.tests/src/org/simantics/scl/compiler/tests/completions/TestRobustModuleSplitter.java b/tests/org.simantics.scl.compiler.tests/src/org/simantics/scl/compiler/tests/completions/TestRobustModuleSplitter.java
new file mode 100644 (file)
index 0000000..a795754
--- /dev/null
@@ -0,0 +1,34 @@
+package org.simantics.scl.compiler.tests.completions;
+
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.nio.charset.Charset;
+
+import org.junit.Test;
+import org.simantics.scl.compiler.completions.parsing.ModuleSegment;
+import org.simantics.scl.compiler.completions.parsing.RobustModuleSplitter;
+
+public class TestRobustModuleSplitter {
+    private String readSource(String name) throws IOException {
+        InputStreamReader reader = new InputStreamReader(
+                TestRobustModuleSplitter.class.getResourceAsStream(name),
+                Charset.forName("UTF-8"));
+        StringBuilder b = new StringBuilder();
+        while(true) {
+            int c = reader.read();
+            if(c < 0)
+                break;
+            b.append((char)c);
+        }
+        return b.toString();
+    }
+    
+    @Test
+    public void example1() throws IOException {
+        String sourceText = readSource("SplittingExample1.scl");
+        for(ModuleSegment segment : RobustModuleSplitter.split(sourceText)) {
+            System.out.println("---- ("+segment.parenthesesBalance+") ----------------------------------------------");
+            System.out.println(sourceText.substring(segment.begin, segment.end).trim());
+        }
+    }
+}