]> gerrit.simantics Code Review - simantics/platform.git/blob - 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
1 package org.simantics.scl.compiler.tests.completions;
2
3 import java.io.IOException;
4 import java.io.InputStreamReader;
5 import java.nio.charset.Charset;
6
7 import org.junit.Test;
8 import org.simantics.scl.compiler.completions.parsing.ModuleSegment;
9 import org.simantics.scl.compiler.completions.parsing.RobustModuleSplitter;
10
11 public class TestRobustModuleSplitter {
12     private String readSource(String name) throws IOException {
13         InputStreamReader reader = new InputStreamReader(
14                 TestRobustModuleSplitter.class.getResourceAsStream(name),
15                 Charset.forName("UTF-8"));
16         StringBuilder b = new StringBuilder();
17         while(true) {
18             int c = reader.read();
19             if(c < 0)
20                 break;
21             b.append((char)c);
22         }
23         return b.toString();
24     }
25     
26     @Test
27     public void example1() throws IOException {
28         String sourceText = readSource("SplittingExample1.scl");
29         for(ModuleSegment segment : RobustModuleSplitter.split(sourceText)) {
30             System.out.println("---- ("+segment.parenthesesBalance+") ----------------------------------------------");
31             System.out.println(sourceText.substring(segment.begin, segment.end).trim());
32         }
33     }
34 }