libidav/davqlparser.h

changeset 85
0ab1cf261a44
parent 83
7d20ce5d235b
child 86
ecba8bdf9741
equal deleted inserted replaced
84:7fca3788261d 85:0ab1cf261a44
112 * 112 *
113 * FunctionCall = Identifier, "(", Expression, ")"; 113 * FunctionCall = Identifier, "(", Expression, ")";
114 * Identifier = IdentifierChar - ?Digit?, {IdentifierChar} 114 * Identifier = IdentifierChar - ?Digit?, {IdentifierChar}
115 * | "`", ?Character?, {?Character?}, "`"; 115 * | "`", ?Character?, {?Character?}, "`";
116 * IdentifierChar = ?Character - (" "|",")?; 116 * IdentifierChar = ?Character - (" "|",")?;
117 * Literal = ?Digit?, {?Digit?} | String; 117 * Literal = Number | String;
118 * Number = ?Digit?, {?Digit?} | "%d";
118 * String = "'", {?Character - "'"? | "'''"} , "'"; 119 * String = "'", {?Character - "'"? | "'''"} , "'";
119 * 120 *
120 * LogicalExpression = LogicalExpression, LogicalOperator, LogicalExpression 121 * LogicalExpression = LogicalExpression, LogicalOperator, LogicalExpression
121 * | "not ", LogicalExpression 122 * | "not ", LogicalExpression
122 * | Expression, Comparison, Expression 123 * | Expression, Comparison, Expression
133 * FieldExpression = Identifier 134 * FieldExpression = Identifier
134 * | Expression, " as ", String; 135 * | Expression, " as ", String;
135 * SetExpressions = SetExpression, {",", {SetExpressions}; 136 * SetExpressions = SetExpression, {",", {SetExpressions};
136 * SetExpression = Identifier, "=", Expression; 137 * SetExpression = Identifier, "=", Expression;
137 * 138 *
138 * WithClause = "depth", "=", Expression; 139 * WithClause = "depth", "=", (Number | "infinity");
139 * 140 *
140 * </pre> 141 * </pre>
141 * 142 *
142 * Note: mandatory spaces are part of the grammar. But you may also insert an 143 * Note: mandatory spaces are part of the grammar. But you may also insert an
143 * arbitrary amount of optional spaces between two symbols if they are not part 144 * arbitrary amount of optional spaces between two symbols if they are not part
187 * <code>NULL</code>, if there is no where clause. 188 * <code>NULL</code>, if there is no where clause.
188 */ 189 */
189 DavQLExpression* where; 190 DavQLExpression* where;
190 /** 191 /**
191 * The recursion depth for the statement. 192 * The recursion depth for the statement.
192 * Defaults to SIZE_MAX (unbound recursion). 193 * Defaults to 1.
193 */ 194 */
194 size_t depth; 195 int depth;
195 } DavQLStatement; 196 } DavQLStatement;
197
198 /**
199 * Infinity recursion depth for a DavQLStatement.
200 */
201 #define DAV_DEPTH_INFINITY -1
196 202
197 203
198 /** 204 /**
199 * Starts an interactive debugger for a DavQLStatement. 205 * Starts an interactive debugger for a DavQLStatement.
200 * 206 *

mercurial