--- a/libidav/davqlparser.h Fri Apr 03 14:53:28 2015 +0200 +++ b/libidav/davqlparser.h Sat Apr 04 17:44:33 2015 +0200 @@ -114,7 +114,8 @@ * Identifier = IdentifierChar - ?Digit?, {IdentifierChar} * | "`", ?Character?, {?Character?}, "`"; * IdentifierChar = ?Character - (" "|",")?; - * Literal = ?Digit?, {?Digit?} | String; + * Literal = Number | String; + * Number = ?Digit?, {?Digit?} | "%d"; * String = "'", {?Character - "'"? | "'''"} , "'"; * * LogicalExpression = LogicalExpression, LogicalOperator, LogicalExpression @@ -135,7 +136,7 @@ * SetExpressions = SetExpression, {",", {SetExpressions}; * SetExpression = Identifier, "=", Expression; * - * WithClause = "depth", "=", Expression; + * WithClause = "depth", "=", (Number | "infinity"); * * </pre> * @@ -189,11 +190,16 @@ DavQLExpression* where; /** * The recursion depth for the statement. - * Defaults to SIZE_MAX (unbound recursion). + * Defaults to 1. */ - size_t depth; + int depth; } DavQLStatement; +/** + * Infinity recursion depth for a DavQLStatement. + */ +#define DAV_DEPTH_INFINITY -1 + /** * Starts an interactive debugger for a DavQLStatement.