|
a/src/query/wasastringtoquery.cpp |
|
b/src/query/wasastringtoquery.cpp |
|
... |
|
... |
112 |
*/
|
112 |
*/
|
113 |
|
113 |
|
114 |
/* The master regular expression used to parse a query string
|
114 |
/* The master regular expression used to parse a query string
|
115 |
* Sub-expressions in parenthesis are numbered from 1. Each opening
|
115 |
* Sub-expressions in parenthesis are numbered from 1. Each opening
|
116 |
* parenthesis increases the index, but we're not interested in all
|
116 |
* parenthesis increases the index, but we're not interested in all
|
|
|
117 |
* Deviations from standard:
|
|
|
118 |
* Relation: the standard-conformant line read as (release<1.16):
|
|
|
119 |
"(:|=|<|>|<=|>=)" //7 Relation
|
|
|
120 |
but we are not actually making use of the relation type
|
|
|
121 |
(interpreting all as ":"), and this can product unexpected results
|
|
|
122 |
as a (ie pasted) search for nonexfield=value will silently drop
|
|
|
123 |
the nonexfield part, while the user probably was not aware of
|
|
|
124 |
triggering a field search (expecting just ':' to do this).
|
117 |
*/
|
125 |
*/
|
118 |
static const char * parserExpr =
|
126 |
static const char * parserExpr =
|
119 |
"(OR|\\|\\|)[[:space:]]*" //1 OR,||
|
127 |
"(OR|\\|\\|)[[:space:]]*" //1 OR,||
|
120 |
"|"
|
128 |
"|"
|
121 |
"(AND|&&)[[:space:]]*" // 2 AND,&& (ignored, default)
|
129 |
"(AND|&&)[[:space:]]*" // 2 AND,&& (ignored, default)
|
|
... |
|
... |
123 |
"(" //3
|
131 |
"(" //3
|
124 |
"([+-])?" //4 Force or exclude indicator
|
132 |
"([+-])?" //4 Force or exclude indicator
|
125 |
"(" //5
|
133 |
"(" //5
|
126 |
"([[:alpha:]][[:alnum:]:]*)" //6 Field spec: ie: "dc:title:letitre"
|
134 |
"([[:alpha:]][[:alnum:]:]*)" //6 Field spec: ie: "dc:title:letitre"
|
127 |
"[[:space:]]*"
|
135 |
"[[:space:]]*"
|
128 |
"(:|=|<|>|<=|>=)" //7 Relation
|
136 |
"(:)" //7 Relation
|
129 |
"[[:space:]]*)?"
|
137 |
"[[:space:]]*)?"
|
130 |
"(" //8
|
138 |
"(" //8
|
131 |
"(\"" //9
|
139 |
"(\"" //9
|
132 |
"([^\"]+)" //10 "A quoted term"
|
140 |
"([^\"]+)" //10 "A quoted term"
|
133 |
"\")"
|
141 |
"\")"
|