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()); } } }