1 package org.simantics.scl.compiler.elaboration.expressions;
\r
3 import org.simantics.scl.compiler.elaboration.contexts.ReplaceContext;
\r
4 import org.simantics.scl.compiler.internal.elaboration.utils.ExpressionDecorator;
\r
5 import org.simantics.scl.compiler.types.Type;
\r
7 public class Assignment {
\r
8 public Expression pattern;
\r
9 public Expression value;
\r
11 public Assignment(Expression pattern, Expression value) {
\r
12 if(Type.NULL_CHECKS) {
\r
14 throw new NullPointerException();
\r
16 throw new NullPointerException();
\r
18 this.pattern = pattern;
\r
22 public Assignment replace(ReplaceContext context) {
\r
23 Expression newPattern = pattern.replaceInPattern(context);
\r
24 Expression newValue = value.replace(context);
\r
25 return new Assignment(newPattern, newValue);
\r
28 public void decorate(ExpressionDecorator decorator) {
\r
29 pattern = pattern.decorate(decorator);
\r
30 value = value.decorate(decorator);
\r
33 public void setLocationDeep(long loc) {
\r
34 pattern.setLocationDeep(loc);
\r
35 value.setLocationDeep(loc);
\r
38 public void forVariables(VariableProcedure procedure) {
\r
39 value.forVariables(procedure);
\r