public Object visit(ASTFunctionNode node, Object data) {
// objectNode 0 is the prefix
// objectNode 1 is the identifier , the others are parameters.
// process the remaining arguments
FunctionResult fr = new FunctionResult();
int argc = node.jjtGetNumChildren() - 2;
for (int i = 0; i < argc; i++) {
// Process both sides of this node.
Object result = node.jjtGetChild(i + 2).jjtAccept(this, data);
if (result instanceof TermResult) {
TermResult tr = (TermResult) result;
fr.getTerms().add(tr);
}
}
return fr;
}