128 * BinaryOperator = "+" | "-" | "*" | "/" | "&" | "|" | "^"; |
128 * BinaryOperator = "+" | "-" | "*" | "/" | "&" | "|" | "^"; |
129 * LogicalOperator = " and " | " or " | " xor "; |
129 * LogicalOperator = " and " | " or " | " xor "; |
130 * Comparison = | "=" | "<" | ">" | "<=" | ">=" | "!="; |
130 * Comparison = | "=" | "<" | ">" | "<=" | ">=" | "!="; |
131 * |
131 * |
132 * FieldExpressions = "*", {",", Expression, " as ", String} |
132 * FieldExpressions = "*", {",", Expression, " as ", String} |
133 * | FieldExpression, {",", FieldExpression}; |
133 * | FieldExpression, {",", FieldExpression} |
|
134 * | "-"; |
134 * FieldExpression = Identifier |
135 * FieldExpression = Identifier |
135 * | Expression, " as ", String; |
136 * | Expression, " as ", String; |
136 * SetExpressions = SetExpression, {",", {SetExpressions}; |
137 * SetExpressions = SetExpression, {",", {SetExpressions}; |
137 * SetExpression = Identifier, "=", Expression; |
138 * SetExpression = Identifier, "=", Expression; |
138 * |
139 * |
193 * Defaults to 1. |
202 * Defaults to 1. |
194 */ |
203 */ |
195 int depth; |
204 int depth; |
196 } DavQLStatement; |
205 } DavQLStatement; |
197 |
206 |
198 /** |
207 /** Infinity recursion depth for a DavQLStatement. */ |
199 * Infinity recursion depth for a DavQLStatement. |
|
200 */ |
|
201 #define DAV_DEPTH_INFINITY -1 |
208 #define DAV_DEPTH_INFINITY -1 |
202 |
209 |
|
210 /** No more tokens to parse, but the parser expected more. */ |
|
211 #define DAVQL_ERROR_UNEXPECTED_END 1000 |
|
212 |
|
213 /** A token was found, which has not been expected. */ |
|
214 #define DAVQL_ERROR_UNEXPECTED_TOKEN 1010 |
|
215 |
|
216 /** Nothing about the statement seems legit. */ |
|
217 #define DAVQL_ERROR_INVALID -1 |
203 |
218 |
204 /** |
219 /** |
205 * Starts an interactive debugger for a DavQLStatement. |
220 * Starts an interactive debugger for a DavQLStatement. |
206 * |
221 * |
207 * @param stmt the statement to debug |
222 * @param stmt the statement to debug |