package org.simantics.scl.compiler.elaboration.expressions;
import org.simantics.scl.compiler.elaboration.chr.CHRLiteral;
+import org.simantics.scl.compiler.elaboration.chr.CHRQuery;
import org.simantics.scl.compiler.elaboration.chr.CHRRule;
import org.simantics.scl.compiler.elaboration.chr.CHRRuleset;
import org.simantics.scl.compiler.elaboration.equation.EqBasic;
statement.value = statement.value.accept(this);
}
+ public void transform(CHRQuery query) {
+ for(CHRLiteral lit : query.literals)
+ for(int i=0;i<lit.parameters.length;++i)
+ lit.parameters[i] = lit.parameters[i].accept(this);
+ }
+
public void transform(CHRRuleset ruleset) {
for(CHRRule rule : ruleset.rules) {
- for(CHRLiteral lit : rule.head.literals)
- for(int i=0;i<lit.parameters.length;++i)
- lit.parameters[i] = lit.parameters[i].accept(this);
- for(CHRLiteral lit : rule.body.literals)
- for(int i=0;i<lit.parameters.length;++i)
- lit.parameters[i] = lit.parameters[i].accept(this);
+ transform(rule.head);
+ transform(rule.body);
}
}
return expression;
}
+ @Override
+ public Expression transform(ECHRSelect expression) {
+ expression.expression = expression.expression.accept(this);
+ transform(expression.query);
+ return expression;
+ }
+
@Override
public Expression transform(ECHRRulesetConstructor expression) {
transform(expression.ruleset);