in core/src/main/java/org/apache/jsieve/SieveParserVisitorImpl.java [166:188]
public Object visit(ASTcommand node, Object data) throws SieveException {
List children = new ArrayList(node.jjtGetNumChildren());
children = ((List) node.childrenAccept(this, children));
// Extract the Arguments and Block from the children
Iterator childrenIter = children.iterator();
Arguments arguments = null;
Block block = null;
while (childrenIter.hasNext()) {
Object next = childrenIter.next();
if (next instanceof Arguments)
arguments = (Arguments) next;
else if (next instanceof Block)
block = (Block) next;
}
context.setCoordinate(node.getCoordinate());
final ScriptCoordinate coordinate = context.getCoordinate();
Command command = new Command(node.getName(), arguments, block,
coordinate);
((List) data).add(command);
return data;
}