X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.scl.compiler%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fcompiler%2Felaboration%2Fexpressions%2FEStringLiteral.java;h=ff830720c487ec68dbbb427c7c8d16464f7c9c91;hb=4bb82aede02d798846196cc4f51e09d9f9161fef;hp=f15e62cbf14b312e57eacd7b194a1353e90bfd55;hpb=cb5fc8d606d8b322563e9345c441eecfa7f01753;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/EStringLiteral.java b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/EStringLiteral.java index f15e62cbf..ff830720c 100644 --- a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/EStringLiteral.java +++ b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/EStringLiteral.java @@ -1,54 +1,61 @@ -package org.simantics.scl.compiler.elaboration.expressions; - -import org.simantics.scl.compiler.common.names.Names; -import org.simantics.scl.compiler.constants.StringInterpolation; -import org.simantics.scl.compiler.elaboration.contexts.TranslationContext; -import org.simantics.scl.compiler.elaboration.modules.SCLValue; -import org.simantics.scl.compiler.errors.Locations; - -public class EStringLiteral extends ASTExpression { - - String[] strings; - Expression[] expressions; - - public EStringLiteral(String[] strings, Expression[] expressions) { - this.strings = strings; - this.expressions = expressions; - } - - @Override - public Expression resolve(TranslationContext context) { - Expression[] components = new Expression[expressions.length]; - SCLValue showForPrinting = context.getEnvironment().getValue(Names.Prelude_showForPrinting); - for(int i=0;i 1) { - context.getErrorLog().log(location, "String interpolation can be a pattern only if has one hole."); - return new EError(); - } - return new EApply(new ELiteral(new StringInterpolation(strings)), expressions); - } - - -} +package org.simantics.scl.compiler.elaboration.expressions; + +import org.simantics.scl.compiler.common.names.Names; +import org.simantics.scl.compiler.constants.StringInterpolation; +import org.simantics.scl.compiler.elaboration.contexts.TranslationContext; +import org.simantics.scl.compiler.elaboration.modules.SCLValue; +import org.simantics.scl.compiler.errors.Locations; + +public class EStringLiteral extends ASTExpression { + + public String[] strings; + public Expression[] expressions; + + public EStringLiteral(String[] strings, Expression[] expressions) { + this.strings = strings; + this.expressions = expressions; + } + + @Override + public Expression resolve(TranslationContext context) { + Expression[] components = new Expression[expressions.length]; + SCLValue showForPrinting = context.getEnvironment().getValue(Names.Prelude_showForPrinting); + for(int i=0;i 1) { + context.getErrorLog().log(location, "String interpolation can be a pattern only if has one hole."); + return new EError(); + } + EApply result = new EApply(new ELiteral(new StringInterpolation(strings)), expressions); + result.setLocationDeep(location); + return result; + } + + @Override + public void accept(ExpressionVisitor visitor) { + visitor.visit(this); + } +}