+
+ public CHRQuery replace(ReplaceContext context) {
+ CHRLiteral[] newLiterals = new CHRLiteral[literals.length];
+ for(int i=0;i<literals.length;++i)
+ newLiterals[i] = literals[i].replace(context);
+ return new CHRQuery(location, newLiterals);
+ }
+
+ public void accept(ExpressionVisitor visitor) {
+ for(CHRLiteral literal : literals) {
+ if(literal == null || literal.parameters == null)
+ continue; // FIXME why this happens?
+ for(Expression parameter : literal.parameters) {
+ if(parameter == null)
+ continue; // FIXME why this happens?
+ parameter.accept(visitor);
+ }
+ }
+ }