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%2Fcompilation%2FSCLCompiler.java;h=5e713f1f483c0150083ee4a19cdf7970d1f0828e;hp=1c674ae4d573126570d8307b9bbf0fc6ff9ba31f;hb=refs%2Fchanges%2F34%2F1534%2F3;hpb=3826e289058a51d09310b7ba1251e959dc0ed3d0 diff --git a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/compilation/SCLCompiler.java b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/compilation/SCLCompiler.java index 1c674ae4d..5e713f1f4 100644 --- a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/compilation/SCLCompiler.java +++ b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/compilation/SCLCompiler.java @@ -1,18 +1,17 @@ package org.simantics.scl.compiler.compilation; -import java.io.IOException; -import java.io.Reader; +import java.io.StringReader; import java.util.ArrayList; import java.util.Map; import org.simantics.scl.compiler.environment.EnvironmentFactory; import org.simantics.scl.compiler.errors.ErrorLog; import org.simantics.scl.compiler.internal.codegen.types.JavaReferenceValidatorFactory; -import org.simantics.scl.compiler.internal.header.ModuleHeader; import org.simantics.scl.compiler.internal.parsing.declarations.DeclarationAst; import org.simantics.scl.compiler.internal.parsing.exceptions.SCLSyntaxErrorException; import org.simantics.scl.compiler.internal.parsing.parser.SCLParserImpl; import org.simantics.scl.compiler.internal.parsing.parser.SCLParserOptions; +import org.simantics.scl.compiler.internal.parsing.utils.LineLocators; import org.simantics.scl.compiler.module.ConcreteModule; import org.simantics.scl.compiler.module.options.ModuleCompilationOptions; import org.simantics.scl.compiler.top.ModuleInitializer; @@ -39,10 +38,11 @@ public class SCLCompiler { } @SuppressWarnings("unchecked") - public void addSource(Reader sourceReader) { + public void addSource(String source) { if(SCLCompilerConfiguration.ENABLE_TIMING) initializeTiming(); try { - SCLParserImpl parser = new SCLParserImpl(sourceReader); + compilationContext.lineLocator = LineLocators.createLineLocator(source); + SCLParserImpl parser = new SCLParserImpl(new StringReader(source)); parser.setParserOptions(SCLParserOptions.MODULE_DEFAULT); parser.setCompilationContext(compilationContext); if(!parser.isEmpty()) @@ -52,12 +52,6 @@ public class SCLCompiler { compilationContext.errorLog.log(e.location, e.getMessage()); } catch(Exception e) { compilationContext.errorLog.log(e); - } finally { - try { - sourceReader.close(); - } catch (IOException e) { - e.printStackTrace(); - } } if(SCLCompilerConfiguration.ENABLE_TIMING) phaseFinished("Parsing"); }