]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/ERange.java
Merge "List the unsatisfied dependencies in CanvasContext"
[simantics/platform.git] / bundles / org.simantics.scl.compiler / src / org / simantics / scl / compiler / elaboration / expressions / ERange.java
1 package org.simantics.scl.compiler.elaboration.expressions;\r
2 \r
3 import org.simantics.scl.compiler.common.names.Names;\r
4 import org.simantics.scl.compiler.elaboration.contexts.TranslationContext;\r
5 import org.simantics.scl.compiler.elaboration.modules.SCLValue;\r
6 import org.simantics.scl.compiler.errors.Locations;\r
7 \r
8 public class ERange extends ASTExpression {\r
9     Expression from;\r
10     Expression to;\r
11     \r
12     public ERange(Expression from, Expression to) {\r
13         this.from = from;\r
14         this.to = to;\r
15     }\r
16     \r
17     @Override\r
18     public Expression resolve(TranslationContext context) {\r
19         from = from.resolve(context);\r
20         to = to.resolve(context);\r
21         SCLValue rangeFunction = context.getEnvironment().getValue(Names.Prelude_range);\r
22         return new EApply(location, new EConstant(rangeFunction), from, to);\r
23     }    \r
24     \r
25     @Override\r
26     public void setLocationDeep(long loc) {\r
27         if(location == Locations.NO_LOCATION) {\r
28             location = loc;\r
29             from.setLocationDeep(loc);\r
30             to.setLocationDeep(loc);\r
31         }\r
32     }\r
33     \r
34     @Override\r
35     public Expression accept(ExpressionTransformer transformer) {\r
36         return transformer.transform(this);\r
37     }\r
38 \r
39 }\r