-/* $Id: cql.y,v 1.17 2008-01-06 16:22:02 adam Exp $
- Copyright (C) 2002-2006
- Index Data ApS
-
-This file is part of the YAZ toolkit.
-
-See the file LICENSE.
-
- bison parser for CQL grammar.
-*/
+/* This file is part of the YAZ toolkit.
+ * Copyright (C) 1995-2008 Index Data
+ * See the file LICENSE for details.
+ */
+/* bison parser for CQL grammar. */
%{
/**
* \file cql.c
%}
%pure_parser
-%token DOTTERM TERM AND OR NOT PROX GE LE NE EXACT
+%token DOTTERM TERM AND OR NOT PROX GE LE NE EXACT SORTBY
%%
$$.rel = cql_node_mk_sc(((CQL_parser) parm)->nmem,
"cql.serverChoice", "=", 0);
((CQL_parser) parm)->top = 0;
-} cqlQuery1 {
+} cqlQuery1 sortby {
cql_node_destroy($$.rel);
((CQL_parser) parm)->top = $2.cql;
}
;
+sortby: /* empty */
+| SORTBY sortSpec;
+
+sortSpec: sortSpec singleSpec
+| singleSpec;
+
+singleSpec: index modifiers ;
+
cqlQuery1: cqlQuery
| cqlQuery error {
cql_node_destroy($1.cql);
| OR
| NOT
| PROX
+| SORTBY
;
%%
lval->buf = "prox";
return PROX;
}
+ if (!cql_strcmp(lval->buf, "sortby"))
+ {
+ lval->buf = "sortby";
+ return SORTBY;
+ }
if (!cql_strcmp(lval->buf, "all"))
relation_like = 1;
if (!cql_strcmp(lval->buf, "any"))