in core/src/main/java/org/apache/jsieve/SieveValidationVisitor.java [93:108]
public Object visit(ASTcommand node, Object data) throws SieveException {
final String name = node.getName();
commandManager.getCommand(name);
if ("require".equalsIgnoreCase(name)) {
if (requireAllowed) {
isInRequire = true;
} else {
throw new SieveException(
"'require' is only allowed before other commands");
}
} else {
requireAllowed = false;
isInRequire = false;
}
return visitNode(node, data);
}