libidav/davqlparser.h

changeset 116
44ffe073b5e3
parent 115
5744a3dee766
child 117
5ffc2f23803f
equal deleted inserted replaced
115:5744a3dee766 116:44ffe073b5e3
48 typedef enum { 48 typedef enum {
49 DAVQL_TOKEN_INVALID, DAVQL_TOKEN_KEYWORD, 49 DAVQL_TOKEN_INVALID, DAVQL_TOKEN_KEYWORD,
50 DAVQL_TOKEN_IDENTIFIER, DAVQL_TOKEN_FMTSPEC, 50 DAVQL_TOKEN_IDENTIFIER, DAVQL_TOKEN_FMTSPEC,
51 DAVQL_TOKEN_STRING, DAVQL_TOKEN_NUMBER, DAVQL_TOKEN_TIMESTAMP, 51 DAVQL_TOKEN_STRING, DAVQL_TOKEN_NUMBER, DAVQL_TOKEN_TIMESTAMP,
52 DAVQL_TOKEN_COMMA, DAVQL_TOKEN_OPENP, DAVQL_TOKEN_CLOSEP, 52 DAVQL_TOKEN_COMMA, DAVQL_TOKEN_OPENP, DAVQL_TOKEN_CLOSEP,
53 DAVQL_TOKEN_EQ, DAVQL_TOKEN_LT, DAVQL_TOKEN_GT, DAVQL_TOKEN_EXCLAIM,
54 DAVQL_TOKEN_OPERATOR 53 DAVQL_TOKEN_OPERATOR
55 } davqltokenclass_t; 54 } davqltokenclass_t;
56 55
57 /** 56 /**
58 * Enumeration of possible expression types. 57 * Enumeration of possible expression types.
179 * Literal = Number | String | Timestamp; 178 * Literal = Number | String | Timestamp;
180 * Number = ?Digit?, {?Digit?} | "%d"; 179 * Number = ?Digit?, {?Digit?} | "%d";
181 * String = "'", {?Character? - "'" | "'''"} , "'" | "%s"; 180 * String = "'", {?Character? - "'" | "'''"} , "'" | "%s";
182 * Timestamp = "%t"; // TODO: maybe introduce a real literal 181 * Timestamp = "%t"; // TODO: maybe introduce a real literal
183 * 182 *
184 * LogicalExpression = BooleanLiteral, [LogicalOperator, LogicalExpression]; 183 * LogicalExpression = BooleanExpression, [LogicalOperator, LogicalExpression];
185 * BooleanExpression = "not ", LogicalExpression 184 * BooleanExpression = "not ", BooleanExpression
186 * | "(", LogicalExpression, ")" 185 * | "(", LogicalExpression, ")"
187 * | BooleanPrimary; 186 * | BooleanPrimary;
188 * BooleanPrimary = Expression, (" like " | " unlike "), String 187 * BooleanPrimary = Expression, (" like " | " unlike "), String
189 * | Expression, Comparison, Expression 188 * | Expression, Comparison, Expression
190 * | FunctionCall | Identifier; 189 * | FunctionCall | Identifier;

mercurial