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%2Felaboration%2Fexpressions%2FEVar.java;h=f1c3e31e0a3c0678abe2bb60a778b852c1150ac2;hp=5ad1e31266bc33a1613a6eb251d9c6bd9dc06c85;hb=593a8f75d9dbc363234002dc500c346afbeba040;hpb=969bd23cab98a79ca9101af33334000879fb60c5 diff --git a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/EVar.java b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/EVar.java index 5ad1e3126..f1c3e31e0 100755 --- a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/EVar.java +++ b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/EVar.java @@ -1,82 +1,82 @@ -package org.simantics.scl.compiler.elaboration.expressions; - -import java.util.ArrayList; - -import org.simantics.scl.compiler.elaboration.contexts.TranslationContext; -import org.simantics.scl.compiler.elaboration.errors.NotPatternException; -import org.simantics.scl.compiler.elaboration.expressions.lhstype.FunctionDefinitionLhs; -import org.simantics.scl.compiler.elaboration.expressions.lhstype.LhsType; -import org.simantics.scl.compiler.elaboration.expressions.lhstype.PatternMatchingLhs; -import org.simantics.scl.compiler.errors.Locations; - -public class EVar extends ASTExpression { - public final String name; - - public EVar(long location, String name) { - this.location = location; - this.name = name; - } - - public EVar(String name) { - this(Locations.NO_LOCATION, name); - } - - @Override - public EVar getPatternHead() { - return this; - } - - @Override - public LhsType getLhsType() throws NotPatternException { - if(TranslationContext.isConstructorName(name)) - return new PatternMatchingLhs(); - else - return new FunctionDefinitionLhs(name); - } - - @Override - protected void collectVariableNames(PatternMatchingLhs lhsType) - throws NotPatternException { - if(!TranslationContext.isConstructorName(name)) - lhsType.variableNames.add(name); - } - - @Override - public Expression resolve(TranslationContext context) { - return context.resolveExpression(location, name); - } - - @Override - public void getParameters(TranslationContext translationContext, - ArrayList parameters) { - } - - @Override - public Expression resolveAsPattern(TranslationContext context) { - return context.resolvePattern(this); - } - - @Override - public int getFunctionDefinitionArity() throws NotPatternException { - if(TranslationContext.isConstructorName(name)) - throw new NotPatternException(this); - else - return 0; - } - - @Override - public boolean isConstructorApplication() { - return TranslationContext.isConstructorName(name); - } - - @Override - public void setLocationDeep(long loc) { - if(location == Locations.NO_LOCATION) - location = loc; - } - - @Override - public Expression accept(ExpressionTransformer transformer) { - return transformer.transform(this); - } -} +package org.simantics.scl.compiler.elaboration.expressions; + +import java.util.ArrayList; + +import org.simantics.scl.compiler.elaboration.contexts.TranslationContext; +import org.simantics.scl.compiler.elaboration.errors.NotPatternException; +import org.simantics.scl.compiler.elaboration.expressions.lhstype.FunctionDefinitionLhs; +import org.simantics.scl.compiler.elaboration.expressions.lhstype.LhsType; +import org.simantics.scl.compiler.elaboration.expressions.lhstype.PatternMatchingLhs; +import org.simantics.scl.compiler.errors.Locations; + +public class EVar extends ASTExpression { + public final String name; + + public EVar(long location, String name) { + this.location = location; + this.name = name; + } + + public EVar(String name) { + this(Locations.NO_LOCATION, name); + } + + @Override + public EVar getPatternHead() { + return this; + } + + @Override + public LhsType getLhsType() throws NotPatternException { + if(TranslationContext.isConstructorName(name)) + return new PatternMatchingLhs(); + else + return new FunctionDefinitionLhs(name); + } + + @Override + protected void collectVariableNames(PatternMatchingLhs lhsType) + throws NotPatternException { + if(!TranslationContext.isConstructorName(name)) + lhsType.variableNames.add(name); + } + + @Override + public Expression resolve(TranslationContext context) { + return context.resolveExpression(location, name); + } + + @Override + public void getParameters(TranslationContext translationContext, + ArrayList parameters) { + } + + @Override + public Expression resolveAsPattern(TranslationContext context) { + return context.resolvePattern(this); + } + + @Override + public int getFunctionDefinitionPatternArity() throws NotPatternException { + if(TranslationContext.isConstructorName(name)) + throw new NotPatternException(this); + else + return 0; + } + + @Override + public boolean isConstructorApplication() { + return TranslationContext.isConstructorName(name); + } + + @Override + public void setLocationDeep(long loc) { + if(location == Locations.NO_LOCATION) + location = loc; + } + + @Override + public Expression accept(ExpressionTransformer transformer) { + return transformer.transform(this); + } +}