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=58ec41fd2f74b85dbbaf4ee420601b9638ada5e8;hb=655590362c7017aff657d1ff30e6c63f03b6dd75;hp=79d464b7b459a35cd3fc921b8f745f3b487bce57;hpb=969bd23cab98a79ca9101af33334000879fb60c5;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 79d464b7b..58ec41fd2 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,43 +1,57 @@ -package org.simantics.scl.compiler.elaboration.expressions; - -import org.simantics.scl.compiler.common.names.Name; -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(Name.create("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); + } + + @Override + public void accept(ExpressionVisitor visitor) { + visitor.visit(this); + } +}