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%2Ftop%2FExpressionEvaluator.java;h=b51b188cda117823c4d8b0308f13eb607615aa91;hp=36994d136533435522642855fdf5a8817203fd57;hb=91682baa9a8252390f09b80fd724f47e5957b234;hpb=3826e289058a51d09310b7ba1251e959dc0ed3d0 diff --git a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/top/ExpressionEvaluator.java b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/top/ExpressionEvaluator.java index 36994d136..b51b188cd 100644 --- a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/top/ExpressionEvaluator.java +++ b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/top/ExpressionEvaluator.java @@ -47,6 +47,7 @@ import org.simantics.scl.compiler.internal.parsing.exceptions.SCLSyntaxErrorExce import org.simantics.scl.compiler.internal.parsing.parser.SCLBlockParser; 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.runtime.MutableClassLoader; import org.simantics.scl.compiler.runtime.RuntimeEnvironment; import org.simantics.scl.compiler.types.TVar; @@ -202,6 +203,7 @@ public class ExpressionEvaluator { // Parse expression if(expressionText != null) { + compilationContext.lineLocator = LineLocators.createLineLocator(expressionText); try { switch(parseMode) { case BLOCK: { @@ -230,6 +232,8 @@ public class ExpressionEvaluator { throw new SCLExpressionCompilationException(errorLog.getErrors()); } } + else + compilationContext.lineLocator = LineLocators.DUMMY_LOCATOR; // Store local variables ArrayList lvTypes = new ArrayList(); @@ -364,7 +368,7 @@ public class ExpressionEvaluator { } // Convert to SSA - ModuleWriter mw = new ModuleWriter(namingPolicy.getModuleClassName()); + ModuleWriter mw = new ModuleWriter(namingPolicy.getModuleClassName(), compilationContext.lineLocator); DecomposedExpression decomposed = DecomposedExpression.decompose(errorLog, expression); @@ -387,9 +391,10 @@ public class ExpressionEvaluator { IVal[] parameterVals = w.getParameters(); for(int i=0;i