} else {
while (i < node.jjtGetNumChildren()
&& node.jjtGetChild(i) instanceof ASTVar) {
// the only difference to its method in the super class:
// just ignore the variable if it is in the current bindings...
final Variable var = new Variable(((ASTVar)node.jjtGetChild(i)).getName());
if ((bindings.get(var) == null)){
ret += this.visitChild(node, i) + " ";
}
i++;
}
}
ret += "\n";
while (i < node.jjtGetNumChildren()) {
ret += this.visitChild(node, i++);
}
return ret;
}
@Override
public String visit(final ASTVar node) {
final Variable var = new Variable(node.getName());
if ((bindings.get(var) != null)) {
return bindings.get(var).toString();
} else {
return "?" + node.getName();
}