No more manifest files
[yaz-moved-to-github.git] / src / cql2.0.y
1 /* This file is part of the YAZ toolkit.
2  * Copyright (C) Index Data
3  * See the file LICENSE for details.
4  */
5 /*
6   YACC CQL grammar as of OASIS CQL version1.0 , 30 January 2013
7  */
8 %term PREFIX_NAME SIMPLE_STRING QUOTED_STRING AND OR NOT PROX GE LE NE EXACT SORTBY
9
10 %%
11 cql_query : query | query sort_spec;
12
13 query : prefix_assignment query | search_clause_group ;
14
15 search_clause_group: search_clause_group boolean_modified subquery | subquery;
16
17 subquery : '(' query ')' | search_clause;
18
19 search_clause: index relation_modified search_term | search_term;
20
21 search_term : SIMPLE_STRING | QUOTED_STRING | reserved_string;
22
23 sort_spec : sort_by index_modified_list;
24
25 sort_by: SORTBY;
26
27 index_modified_list: index_modified_list index_modified | index_modified;
28
29 prefix_assignment: '>' prefix '=' uri | '>' uri;
30
31 prefix: SIMPLE_STRING;
32
33 uri : quoted_uri_string;
34
35 quoted_uri_string: QUOTED_STRING;
36
37 index_modified: index modifier_list | index;
38
39 index : simple_name | PREFIX_NAME;
40
41 relation_modified : relation modifier_list | relation;
42
43 relation : relation_name | relation_symbol;
44
45 relation_name: simple_name | PREFIX_NAME;
46
47 relation_symbol : '=' | '>' | '<' | GE | LE | NE | EXACT;
48
49 boolean_modified : boolean modifier_list | boolean;
50
51 boolean : AND | OR | NOT | PROX;
52
53 modifier_list : modifier_list modifier | modifier;
54
55 modifier : '/' modifier_name modifier_relation | '/' modifier_name;
56
57 modifier_name: simple_name;
58
59 modifier_relation : relation_symbol modifier_value;
60
61 modifier_value : SIMPLE_STRING | QUOTED_STRING;
62
63 reserved_string: boolean | SORTBY;
64
65 simple_name: SIMPLE_STRING;
66
67 %%