X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.scl.compiler%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fcompiler%2Fsource%2FTextualModuleSource.java;h=7d0e5335281684aac58ea296d1f51bf71875576c;hp=e0d1c91e4da51e3b6b0b8d583b848857ae9a11b6;hb=refs%2Fchanges%2F34%2F1534%2F3;hpb=3826e289058a51d09310b7ba1251e959dc0ed3d0 diff --git a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/source/TextualModuleSource.java b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/source/TextualModuleSource.java index e0d1c91e4..7d0e53352 100644 --- a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/source/TextualModuleSource.java +++ b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/source/TextualModuleSource.java @@ -2,6 +2,7 @@ package org.simantics.scl.compiler.source; import java.io.IOException; import java.io.Reader; +import java.io.StringReader; import java.util.Arrays; import org.simantics.scl.compiler.compilation.SCLCompiler; @@ -46,14 +47,17 @@ public abstract class TextualModuleSource implements ModuleSource { return getClass().getClassLoader(); } - protected abstract Reader getSourceReader(UpdateListener listener) throws IOException; + protected Reader getSourceReader(UpdateListener listener) throws IOException { + return new StringReader(getSourceText(listener)); + } + protected JavaReferenceValidator getJavaReferenceValidator() { return new RuntimeJavaReferenceValidator(getClassLoader()); } public String getSourceText(UpdateListener listener) throws IOException { Reader reader = getSourceReader(listener); - char[] buffer = new char[65536]; + char[] buffer = new char[4096]; int pos = 0; try { while(true) { @@ -83,7 +87,8 @@ public abstract class TextualModuleSource implements ModuleSource { public Failable compileModule(final ModuleRepository environment, final UpdateListener listener, ModuleCompilationOptions options) { SCLCompiler compiler = new SCLCompiler(options, getJavaReferenceValidatorFactory()); try { - compiler.addSource(getSourceReader(listener)); + String source = getSourceText(listener); + compiler.addSource(source); compiler.compile( new EnvironmentFactoryImpl( environment,