package org.simantics.scl.compiler.elaboration.expressions;\r
\r
+import org.simantics.scl.compiler.elaboration.chr.CHRLiteral;\r
+import org.simantics.scl.compiler.elaboration.chr.CHRRule;\r
import org.simantics.scl.compiler.elaboration.equation.EqBasic;\r
import org.simantics.scl.compiler.elaboration.equation.EqGuard;\r
import org.simantics.scl.compiler.elaboration.equation.Equation;\r
public void visit(EIf expression) {\r
expression.condition.accept(this);\r
expression.then_.accept(this);\r
- expression.else_.accept(this);\r
+ if(expression.else_ != null)\r
+ expression.else_.accept(this);\r
}\r
\r
@Override\r
for(Case case_ : expression.cases)\r
visit(case_);\r
}\r
+ \r
+ @Override\r
+ public void visit(EViewPattern expression) {\r
+ expression.expression.accept(this);\r
+ expression.pattern.accept(this);\r
+ }\r
\r
public void visit(Case case_) {\r
for(Expression pattern : case_.patterns)\r
equation.accept(this);\r
}\r
\r
+ @Override\r
+ public void visit(ECHRRuleset ruleset) {\r
+ for(CHRRule rule : ruleset.ruleset.rules) {\r
+ for(CHRLiteral literal : rule.head.literals)\r
+ for(Expression parameter : literal.parameters)\r
+ parameter.accept(this);\r
+ for(CHRLiteral literal : rule.body.literals)\r
+ for(Expression parameter : literal.parameters)\r
+ parameter.accept(this);\r
+ }\r
+ ruleset.in.accept(this);\r
+ }\r
+\r
}\r