libidav/davqlparser.c

changeset 359
bacb54502b24
parent 358
54dbd44ac6b0
child 365
f04ab0420512
equal deleted inserted replaced
358:54dbd44ac6b0 359:bacb54502b24
1611 if (token_is(tokens, DAVQL_TOKEN_KEYWORD) 1611 if (token_is(tokens, DAVQL_TOKEN_KEYWORD)
1612 && tokenvalue_is(tokens, "where")) { 1612 && tokenvalue_is(tokens, "where")) {
1613 tokens = tokens->next; 1613 tokens = tokens->next;
1614 tokens = ucx_list_get(tokens, 1614 tokens = ucx_list_get(tokens,
1615 dav_parse_where_clause(stmt, tokens)); 1615 dav_parse_where_clause(stmt, tokens));
1616 } else if (token_is(tokens, DAVQL_TOKEN_KEYWORD)
1617 && tokenvalue_is(tokens, "anywhere")) {
1618 // useless, but the user may want to explicitly express his intent
1619 tokens = tokens->next;
1620 stmt->where = NULL;
1616 } 1621 }
1617 if (stmt->errorcode) { 1622 if (stmt->errorcode) {
1618 return; 1623 return;
1619 } 1624 }
1620 1625
1692 tokens = ucx_list_get(tokens, 1697 tokens = ucx_list_get(tokens,
1693 dav_parse_where_clause(stmt, tokens)); 1698 dav_parse_where_clause(stmt, tokens));
1694 } else if (token_is(tokens, DAVQL_TOKEN_KEYWORD) 1699 } else if (token_is(tokens, DAVQL_TOKEN_KEYWORD)
1695 && tokenvalue_is(tokens, "anywhere")) { 1700 && tokenvalue_is(tokens, "anywhere")) {
1696 // no-op, but we want the user to be explicit about this 1701 // no-op, but we want the user to be explicit about this
1702 tokens = tokens->next;
1697 stmt->where = NULL; 1703 stmt->where = NULL;
1698 } else { 1704 } else {
1699 dav_error_in_context(DAVQL_ERROR_MISSING_TOKEN, 1705 dav_error_in_context(DAVQL_ERROR_MISSING_TOKEN,
1700 _error_missing_where, stmt, tokens); 1706 _error_missing_where, stmt, tokens);
1707 return;
1701 } 1708 }
1702 } 1709 }
1703 1710
1704 DavQLStatement* dav_parse_statement(sstr_t srctext) { 1711 DavQLStatement* dav_parse_statement(sstr_t srctext) {
1705 DavQLStatement *stmt = calloc(1, sizeof(DavQLStatement)); 1712 DavQLStatement *stmt = calloc(1, sizeof(DavQLStatement));

mercurial