@spectric/ui 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/.gitlab-ci.yml +28 -0
  2. package/.nvmrc +1 -0
  3. package/.storybook/analyze.sh +4 -0
  4. package/.storybook/main.ts +55 -0
  5. package/.storybook/preview.ts +42 -0
  6. package/.vscode/extensions.json +5 -0
  7. package/.vscode/settings.json +41 -0
  8. package/README.MD +50 -0
  9. package/html-include.png +0 -0
  10. package/package.json +33 -0
  11. package/src/classes/BitArray.ts +48 -0
  12. package/src/classes/DisposibleElement.ts +108 -0
  13. package/src/components/Banner.ts +102 -0
  14. package/src/components/Bitdisplay.ts +383 -0
  15. package/src/components/Button.ts +121 -0
  16. package/src/components/Header.ts +125 -0
  17. package/src/components/Page.ts +157 -0
  18. package/src/components/Panel.ts +56 -0
  19. package/src/components/ThemeProvider.ts +251 -0
  20. package/src/components/button.css.ts +160 -0
  21. package/src/components/configurations/classifications.ts +194 -0
  22. package/src/components/dialog/dialog.css.ts +50 -0
  23. package/src/components/dialog/dialog.ts +163 -0
  24. package/src/components/dialog/index.ts +1 -0
  25. package/src/components/header.css.ts +38 -0
  26. package/src/components/index.ts +10 -0
  27. package/src/components/input.css +75 -0
  28. package/src/components/input.ts +312 -0
  29. package/src/components/page.css.ts +158 -0
  30. package/src/components/panel.css.ts +44 -0
  31. package/src/components/query_bar/QueryBar.css +48 -0
  32. package/src/components/query_bar/QueryBar.ts +378 -0
  33. package/src/components/query_bar/index.ts +2 -0
  34. package/src/components/query_bar/querylanguage/kuery/ast/_generated_/kuery.js +3186 -0
  35. package/src/components/query_bar/querylanguage/kuery/ast/ast.ts +113 -0
  36. package/src/components/query_bar/querylanguage/kuery/ast/index.ts +31 -0
  37. package/src/components/query_bar/querylanguage/kuery/ast/kuery.peg +417 -0
  38. package/src/components/query_bar/querylanguage/kuery/functions/and.ts +55 -0
  39. package/src/components/query_bar/querylanguage/kuery/functions/exists.ts +62 -0
  40. package/src/components/query_bar/querylanguage/kuery/functions/index.ts +47 -0
  41. package/src/components/query_bar/querylanguage/kuery/functions/is.ts +211 -0
  42. package/src/components/query_bar/querylanguage/kuery/functions/nested.ts +63 -0
  43. package/src/components/query_bar/querylanguage/kuery/functions/not.ts +53 -0
  44. package/src/components/query_bar/querylanguage/kuery/functions/or.ts +56 -0
  45. package/src/components/query_bar/querylanguage/kuery/functions/range.ts +163 -0
  46. package/src/components/query_bar/querylanguage/kuery/functions/utils/get_fields.ts +49 -0
  47. package/src/components/query_bar/querylanguage/kuery/functions/utils/get_full_field_name_node.ts +87 -0
  48. package/src/components/query_bar/querylanguage/kuery/index.ts +38 -0
  49. package/src/components/query_bar/querylanguage/kuery/kuery_syntax_error.ts +76 -0
  50. package/src/components/query_bar/querylanguage/kuery/node_types/function.ts +75 -0
  51. package/src/components/query_bar/querylanguage/kuery/node_types/index.ts +46 -0
  52. package/src/components/query_bar/querylanguage/kuery/node_types/literal.ts +42 -0
  53. package/src/components/query_bar/querylanguage/kuery/node_types/named_arg.ts +47 -0
  54. package/src/components/query_bar/querylanguage/kuery/node_types/types.ts +108 -0
  55. package/src/components/query_bar/querylanguage/kuery/node_types/wildcard.ts +80 -0
  56. package/src/components/query_bar/querylanguage/kuery/types.ts +52 -0
  57. package/src/components/query_bar/querylanguage/outputTypes/toCQL.ts +122 -0
  58. package/src/components/query_bar/querylanguage/outputTypes/toMongo.ts +103 -0
  59. package/src/components/query_bar/querylanguage/utils.ts +35 -0
  60. package/src/components/query_bar/types.ts +59 -0
  61. package/src/components/splitview/index.ts +1 -0
  62. package/src/components/splitview/splitview.css.ts +66 -0
  63. package/src/components/splitview/splitview.ts +183 -0
  64. package/src/components/types.ts +35 -0
  65. package/src/index.ts +1 -0
  66. package/src/stories/Banner.stories.ts +46 -0
  67. package/src/stories/BitDisplay.stories.ts +68 -0
  68. package/src/stories/Button.stories.ts +138 -0
  69. package/src/stories/Header.stories.ts +55 -0
  70. package/src/stories/Page.stories.ts +108 -0
  71. package/src/stories/QueryBar.stories.ts +63 -0
  72. package/src/stories/Splitview.stories.ts +52 -0
  73. package/src/stories/fixtures/Bits.ts +15 -0
  74. package/src/stories/fixtures/ExampleContent.ts +102 -0
  75. package/src/stories/fixtures/data.ts +30 -0
  76. package/src/stories/fixtures/lorumipsum.ts +19 -0
  77. package/src/stories/input.stories.ts +77 -0
  78. package/src/stories/tsconfig.json +35 -0
  79. package/src/utils/debounce.ts +18 -0
  80. package/src/utils/spread.ts +71 -0
  81. package/src/vite-env.d.ts +1 -0
  82. package/test/__init__.py +9 -0
  83. package/test/elastic.py +9 -0
  84. package/test/interface.py +16 -0
  85. package/tsconfig.json +29 -0
  86. package/vite.config.js +34 -0
  87. package/vue-example.png +0 -0
  88. package/vue-include.png +0 -0
@@ -0,0 +1,3186 @@
1
+ /*
2
+ * SPDX-License-Identifier: Apache-2.0
3
+ *
4
+ * The OpenSearch Contributors require contributions made to
5
+ * this file be licensed under the Apache-2.0 license or a
6
+ * compatible open source license.
7
+ *
8
+ * Any modifications Copyright OpenSearch Contributors. See
9
+ * GitHub history for details.
10
+ */
11
+
12
+ export const {
13
+ SyntaxError,
14
+ parse
15
+ } = (function () {
16
+ "use strict";
17
+
18
+ /*
19
+ * Generated by PEG.js 0.9.0.
20
+ *
21
+ * http://pegjs.org/
22
+ */
23
+
24
+ function peg$subclass(child, parent) {
25
+ function ctor() { this.constructor = child; }
26
+ ctor.prototype = parent.prototype;
27
+ child.prototype = new ctor();
28
+ }
29
+
30
+ function peg$SyntaxError(message, expected, found, location) {
31
+ this.message = message;
32
+ this.expected = expected;
33
+ this.found = found;
34
+ this.location = location;
35
+ this.name = "SyntaxError";
36
+
37
+ if (typeof Error.captureStackTrace === "function") {
38
+ Error.captureStackTrace(this, peg$SyntaxError);
39
+ }
40
+ }
41
+
42
+ peg$subclass(peg$SyntaxError, Error);
43
+
44
+ function peg$parse(input) {
45
+ var options = arguments.length > 1 ? arguments[1] : {},
46
+ parser = this,
47
+
48
+ peg$FAILED = {},
49
+
50
+ peg$startRuleFunctions = { start: peg$parsestart, Literal: peg$parseLiteral },
51
+ peg$startRuleFunction = peg$parsestart,
52
+
53
+ peg$c0 = function (query, trailing) {
54
+ if (trailing.type === 'cursor') {
55
+ return {
56
+ ...trailing,
57
+ suggestionTypes: ['conjunction']
58
+ };
59
+ }
60
+ if (query !== null) return query;
61
+ return nodeTypes.function.buildNode('is', '*', '*');
62
+ },
63
+ peg$c1 = function () { return errorOnLuceneSyntax; },
64
+ peg$c2 = function (left, right) {
65
+ const cursor = [left, right].find(node => node.type === 'cursor');
66
+ if (cursor) return cursor;
67
+ return buildFunctionNode('or', [left, right]);
68
+ },
69
+ peg$c3 = function (left, right) {
70
+ const cursor = [left, right].find(node => node.type === 'cursor');
71
+ if (cursor) return cursor;
72
+ return buildFunctionNode('and', [left, right]);
73
+ },
74
+ peg$c4 = function (query) {
75
+ if (query.type === 'cursor') return query;
76
+ return buildFunctionNode('not', [query]);
77
+ },
78
+ peg$c5 = "(",
79
+ peg$c6 = { type: "literal", value: "(", description: "\"(\"" },
80
+ peg$c7 = ")",
81
+ peg$c8 = { type: "literal", value: ")", description: "\")\"" },
82
+ peg$c9 = function (query, trailing) {
83
+ if (trailing.type === 'cursor') {
84
+ return {
85
+ ...trailing,
86
+ suggestionTypes: ['conjunction']
87
+ };
88
+ }
89
+ return query;
90
+ },
91
+ peg$c10 = ":",
92
+ peg$c11 = { type: "literal", value: ":", description: "\":\"" },
93
+ peg$c12 = "{",
94
+ peg$c13 = { type: "literal", value: "{", description: "\"{\"" },
95
+ peg$c14 = "}",
96
+ peg$c15 = { type: "literal", value: "}", description: "\"}\"" },
97
+ peg$c16 = function (field, query, trailing) {
98
+ if (query.type === 'cursor') {
99
+ return {
100
+ ...query,
101
+ nestedPath: query.nestedPath ? `${field.value}.${query.nestedPath}` : field.value,
102
+ }
103
+ };
104
+
105
+ if (trailing.type === 'cursor') {
106
+ return {
107
+ ...trailing,
108
+ suggestionTypes: ['conjunction']
109
+ };
110
+ }
111
+ return buildFunctionNode('nested', [field, query]);
112
+ },
113
+ peg$c17 = { type: "other", description: "fieldName" },
114
+ peg$c18 = function (field, operator, value) {
115
+ if (value.type === 'cursor') {
116
+ return {
117
+ ...value,
118
+ suggestionTypes: ['conjunction']
119
+ };
120
+ }
121
+ const range = buildNamedArgNode(operator, value);
122
+ return buildFunctionNode('range', [field, range]);
123
+ },
124
+ peg$c19 = function (field, partial) {
125
+ if (partial.type === 'cursor') {
126
+ return {
127
+ ...partial,
128
+ fieldName: field.value,
129
+ suggestionTypes: ['value', 'conjunction']
130
+ };
131
+ }
132
+ return partial(field);
133
+ },
134
+ peg$c20 = function (partial) {
135
+ if (partial.type === 'cursor') {
136
+ const fieldName = `${partial.prefix}${partial.suffix}`.trim();
137
+ return {
138
+ ...partial,
139
+ fieldName,
140
+ suggestionTypes: ['field', 'operator', 'conjunction']
141
+ };
142
+ }
143
+ const field = buildLiteralNode(null);
144
+ return partial(field);
145
+ },
146
+ peg$c21 = function (partial, trailing) {
147
+ if (trailing.type === 'cursor') {
148
+ return {
149
+ ...trailing,
150
+ suggestionTypes: ['conjunction']
151
+ };
152
+ }
153
+ return partial;
154
+ },
155
+ peg$c22 = function (partialLeft, partialRight) {
156
+ const cursor = [partialLeft, partialRight].find(node => node.type === 'cursor');
157
+ if (cursor) {
158
+ return {
159
+ ...cursor,
160
+ suggestionTypes: ['value']
161
+ };
162
+ }
163
+ return (field) => buildFunctionNode('or', [partialLeft(field), partialRight(field)]);
164
+ },
165
+ peg$c23 = function (partialLeft, partialRight) {
166
+ const cursor = [partialLeft, partialRight].find(node => node.type === 'cursor');
167
+ if (cursor) {
168
+ return {
169
+ ...cursor,
170
+ suggestionTypes: ['value']
171
+ };
172
+ }
173
+ return (field) => buildFunctionNode('and', [partialLeft(field), partialRight(field)]);
174
+ },
175
+ peg$c24 = function (partial) {
176
+ if (partial.type === 'cursor') {
177
+ return {
178
+ ...list,
179
+ suggestionTypes: ['value']
180
+ };
181
+ }
182
+ return (field) => buildFunctionNode('not', [partial(field)]);
183
+ },
184
+ peg$c25 = { type: "other", description: "value" },
185
+ peg$c26 = function (value) {
186
+ if (value.type === 'cursor') return value;
187
+ const isPhrase = buildLiteralNode(true);
188
+ return (field) => buildFunctionNode('is', [field, value, isPhrase]);
189
+ },
190
+ peg$c27 = function (value) {
191
+ if (value.type === 'cursor') return value;
192
+
193
+ if (!allowLeadingWildcards && value.type === 'wildcard' && nodeTypes.wildcard.hasLeadingWildcard(value)) {
194
+ error('Leading wildcards are disabled. See query:allowLeadingWildcards in Advanced Settings.');
195
+ }
196
+
197
+ const isPhrase = buildLiteralNode(false);
198
+ return (field) => buildFunctionNode('is', [field, value, isPhrase]);
199
+ },
200
+ peg$c28 = { type: "other", description: "OR" },
201
+ peg$c29 = "or",
202
+ peg$c30 = { type: "literal", value: "or", description: "\"or\"" },
203
+ peg$c31 = { type: "other", description: "AND" },
204
+ peg$c32 = "and",
205
+ peg$c33 = { type: "literal", value: "and", description: "\"and\"" },
206
+ peg$c34 = { type: "other", description: "NOT" },
207
+ peg$c35 = "not",
208
+ peg$c36 = { type: "literal", value: "not", description: "\"not\"" },
209
+ peg$c37 = { type: "other", description: "literal" },
210
+ peg$c38 = "\"",
211
+ peg$c39 = { type: "literal", value: "\"", description: "\"\\\"\"" },
212
+ peg$c40 = function (prefix, cursor, suffix) {
213
+ const { start, end } = location();
214
+ return {
215
+ type: 'cursor',
216
+ start: start.offset,
217
+ end: end.offset - cursor.length,
218
+ prefix: prefix.join(''),
219
+ suffix: suffix.join(''),
220
+ text: text().replace(cursor, '')
221
+ };
222
+ },
223
+ peg$c41 = function (chars) {
224
+ return buildLiteralNode(chars.join(''));
225
+ },
226
+ peg$c42 = "\\",
227
+ peg$c43 = { type: "literal", value: "\\", description: "\"\\\\\"" },
228
+ peg$c44 = /^[\\"]/,
229
+ peg$c45 = { type: "class", value: "[\\\\\"]", description: "[\\\\\"]" },
230
+ peg$c46 = function (char) { return char; },
231
+ peg$c47 = /^[^"]/,
232
+ peg$c48 = { type: "class", value: "[^\"]", description: "[^\"]" },
233
+ peg$c49 = function (chars) {
234
+ const sequence = chars.join('').trim();
235
+ if (sequence === 'null') return buildLiteralNode(null);
236
+ if (sequence === 'true') return buildLiteralNode(true);
237
+ if (sequence === 'false') return buildLiteralNode(false);
238
+ if (chars.includes(wildcardSymbol)) return buildWildcardNode(sequence);
239
+ const isNumberPattern = /^(-?[1-9]+\d*([.]\d+)?)$|^(-?0[.]\d*[1-9]+)$|^0$|^0.0$|^[.]\d{1,}$/;
240
+ return buildLiteralNode(
241
+ isNumberPattern.test(sequence)
242
+ ? isFinite(sequence) && (sequence > Number.MAX_SAFE_INTEGER || sequence < Number.MIN_SAFE_INTEGER)
243
+ ? BigInt(sequence)
244
+ : Number(sequence)
245
+ : sequence
246
+ );
247
+ },
248
+ peg$c50 = { type: "any", description: "any character" },
249
+ peg$c51 = "*",
250
+ peg$c52 = { type: "literal", value: "*", description: "\"*\"" },
251
+ peg$c53 = function () { return wildcardSymbol; },
252
+ peg$c54 = "\\t",
253
+ peg$c55 = { type: "literal", value: "\\t", description: "\"\\\\t\"" },
254
+ peg$c56 = function () { return '\t'; },
255
+ peg$c57 = "\\r",
256
+ peg$c58 = { type: "literal", value: "\\r", description: "\"\\\\r\"" },
257
+ peg$c59 = function () { return '\r'; },
258
+ peg$c60 = "\\n",
259
+ peg$c61 = { type: "literal", value: "\\n", description: "\"\\\\n\"" },
260
+ peg$c62 = function () { return '\n'; },
261
+ peg$c63 = function (keyword) { return keyword; },
262
+ peg$c64 = /^[\\():<>"*{}]/,
263
+ peg$c65 = { type: "class", value: "[\\\\():<>\"*{}]", description: "[\\\\():<>\"*{}]" },
264
+ peg$c66 = "<=",
265
+ peg$c67 = { type: "literal", value: "<=", description: "\"<=\"" },
266
+ peg$c68 = function () { return 'lte'; },
267
+ peg$c69 = ">=",
268
+ peg$c70 = { type: "literal", value: ">=", description: "\">=\"" },
269
+ peg$c71 = function () { return 'gte'; },
270
+ peg$c72 = "<",
271
+ peg$c73 = { type: "literal", value: "<", description: "\"<\"" },
272
+ peg$c74 = function () { return 'lt'; },
273
+ peg$c75 = ">",
274
+ peg$c76 = { type: "literal", value: ">", description: "\">\"" },
275
+ peg$c77 = function () { return 'gt'; },
276
+ peg$c78 = { type: "other", description: "whitespace" },
277
+ peg$c79 = /^[ \t\r\n]/,
278
+ peg$c80 = { type: "class", value: "[\\ \\t\\r\\n]", description: "[\\ \\t\\r\\n]" },
279
+ peg$c81 = function () { return parseCursor; },
280
+ peg$c82 = "@kuery-cursor@",
281
+ peg$c83 = { type: "literal", value: "@kuery-cursor@", description: "\"@kuery-cursor@\"" },
282
+ peg$c84 = function () { return cursorSymbol; },
283
+ peg$c85 = "||",
284
+ peg$c86 = { type: "literal", value: "||", description: "\"||\"" },
285
+ peg$c87 = function () {
286
+ error('LuceneOr');
287
+ },
288
+ peg$c88 = "&&",
289
+ peg$c89 = { type: "literal", value: "&&", description: "\"&&\"" },
290
+ peg$c90 = function () {
291
+ error('LuceneAnd');
292
+ },
293
+ peg$c91 = "+",
294
+ peg$c92 = { type: "literal", value: "+", description: "\"+\"" },
295
+ peg$c93 = "-",
296
+ peg$c94 = { type: "literal", value: "-", description: "\"-\"" },
297
+ peg$c95 = function () {
298
+ error('LuceneNot');
299
+ },
300
+ peg$c96 = "!",
301
+ peg$c97 = { type: "literal", value: "!", description: "\"!\"" },
302
+ peg$c98 = "_exists_",
303
+ peg$c99 = { type: "literal", value: "_exists_", description: "\"_exists_\"" },
304
+ peg$c100 = function () {
305
+ error('LuceneExists');
306
+ },
307
+ peg$c101 = function () {
308
+ error('LuceneRange');
309
+ },
310
+ peg$c102 = "?",
311
+ peg$c103 = { type: "literal", value: "?", description: "\"?\"" },
312
+ peg$c104 = function () {
313
+ error('LuceneWildcard');
314
+ },
315
+ peg$c105 = "/",
316
+ peg$c106 = { type: "literal", value: "/", description: "\"/\"" },
317
+ peg$c107 = /^[^\/]/,
318
+ peg$c108 = { type: "class", value: "[^/]", description: "[^/]" },
319
+ peg$c109 = function () {
320
+ error('LuceneRegex');
321
+ },
322
+ peg$c110 = "~",
323
+ peg$c111 = { type: "literal", value: "~", description: "\"~\"" },
324
+ peg$c112 = /^[0-9]/,
325
+ peg$c113 = { type: "class", value: "[0-9]", description: "[0-9]" },
326
+ peg$c114 = function () {
327
+ error('LuceneFuzzy');
328
+ },
329
+ peg$c115 = function () {
330
+ error('LuceneProximity');
331
+ },
332
+ peg$c116 = "^",
333
+ peg$c117 = { type: "literal", value: "^", description: "\"^\"" },
334
+ peg$c118 = function () {
335
+ error('LuceneBoost');
336
+ },
337
+ peg$c119 = function () { return char; },
338
+ peg$c120 = "=",
339
+ peg$c121 = { type: "literal", value: "=", description: "\"=\"" },
340
+ peg$c122 = "[",
341
+ peg$c123 = { type: "literal", value: "[", description: "\"[\"" },
342
+ peg$c124 = "]",
343
+ peg$c125 = { type: "literal", value: "]", description: "\"]\"" },
344
+ peg$c126 = "TO",
345
+ peg$c127 = { type: "literal", value: "TO", description: "\"TO\"" },
346
+
347
+ peg$currPos = 0,
348
+ peg$savedPos = 0,
349
+ peg$posDetailsCache = [{ line: 1, column: 1, seenCR: false }],
350
+ peg$maxFailPos = 0,
351
+ peg$maxFailExpected = [],
352
+ peg$silentFails = 0,
353
+
354
+ peg$result;
355
+
356
+ if ("startRule" in options) {
357
+ if (!(options.startRule in peg$startRuleFunctions)) {
358
+ throw new Error("Can't start parsing from rule \"" + options.startRule + "\".");
359
+ }
360
+
361
+ peg$startRuleFunction = peg$startRuleFunctions[options.startRule];
362
+ }
363
+
364
+ function text() {
365
+ return input.substring(peg$savedPos, peg$currPos);
366
+ }
367
+
368
+ function location() {
369
+ return peg$computeLocation(peg$savedPos, peg$currPos);
370
+ }
371
+
372
+ function expected(description) {
373
+ throw peg$buildException(
374
+ null,
375
+ [{ type: "other", description: description }],
376
+ input.substring(peg$savedPos, peg$currPos),
377
+ peg$computeLocation(peg$savedPos, peg$currPos)
378
+ );
379
+ }
380
+
381
+ function error(message) {
382
+ throw peg$buildException(
383
+ message,
384
+ null,
385
+ input.substring(peg$savedPos, peg$currPos),
386
+ peg$computeLocation(peg$savedPos, peg$currPos)
387
+ );
388
+ }
389
+
390
+ function peg$computePosDetails(pos) {
391
+ var details = peg$posDetailsCache[pos],
392
+ p, ch;
393
+
394
+ if (details) {
395
+ return details;
396
+ } else {
397
+ p = pos - 1;
398
+ while (!peg$posDetailsCache[p]) {
399
+ p--;
400
+ }
401
+
402
+ details = peg$posDetailsCache[p];
403
+ details = {
404
+ line: details.line,
405
+ column: details.column,
406
+ seenCR: details.seenCR
407
+ };
408
+
409
+ while (p < pos) {
410
+ ch = input.charAt(p);
411
+ if (ch === "\n") {
412
+ if (!details.seenCR) { details.line++; }
413
+ details.column = 1;
414
+ details.seenCR = false;
415
+ } else if (ch === "\r" || ch === "\u2028" || ch === "\u2029") {
416
+ details.line++;
417
+ details.column = 1;
418
+ details.seenCR = true;
419
+ } else {
420
+ details.column++;
421
+ details.seenCR = false;
422
+ }
423
+
424
+ p++;
425
+ }
426
+
427
+ peg$posDetailsCache[pos] = details;
428
+ return details;
429
+ }
430
+ }
431
+
432
+ function peg$computeLocation(startPos, endPos) {
433
+ var startPosDetails = peg$computePosDetails(startPos),
434
+ endPosDetails = peg$computePosDetails(endPos);
435
+
436
+ return {
437
+ start: {
438
+ offset: startPos,
439
+ line: startPosDetails.line,
440
+ column: startPosDetails.column
441
+ },
442
+ end: {
443
+ offset: endPos,
444
+ line: endPosDetails.line,
445
+ column: endPosDetails.column
446
+ }
447
+ };
448
+ }
449
+
450
+ function peg$fail(expected) {
451
+ if (peg$currPos < peg$maxFailPos) { return; }
452
+
453
+ if (peg$currPos > peg$maxFailPos) {
454
+ peg$maxFailPos = peg$currPos;
455
+ peg$maxFailExpected = [];
456
+ }
457
+
458
+ peg$maxFailExpected.push(expected);
459
+ }
460
+
461
+ function peg$buildException(message, expected, found, location) {
462
+ function cleanupExpected(expected) {
463
+ var i = 1;
464
+
465
+ expected.sort(function (a, b) {
466
+ if (a.description < b.description) {
467
+ return -1;
468
+ } else if (a.description > b.description) {
469
+ return 1;
470
+ } else {
471
+ return 0;
472
+ }
473
+ });
474
+
475
+ while (i < expected.length) {
476
+ if (expected[i - 1] === expected[i]) {
477
+ expected.splice(i, 1);
478
+ } else {
479
+ i++;
480
+ }
481
+ }
482
+ }
483
+
484
+ function buildMessage(expected, found) {
485
+ function stringEscape(s) {
486
+ function hex(ch) { return ch.charCodeAt(0).toString(16).toUpperCase(); }
487
+
488
+ return s
489
+ .replace(/\\/g, '\\\\')
490
+ .replace(/"/g, '\\"')
491
+ .replace(/\x08/g, '\\b')
492
+ .replace(/\t/g, '\\t')
493
+ .replace(/\n/g, '\\n')
494
+ .replace(/\f/g, '\\f')
495
+ .replace(/\r/g, '\\r')
496
+ .replace(/[\x00-\x07\x0B\x0E\x0F]/g, function (ch) { return '\\x0' + hex(ch); })
497
+ .replace(/[\x10-\x1F\x80-\xFF]/g, function (ch) { return '\\x' + hex(ch); })
498
+ .replace(/[\u0100-\u0FFF]/g, function (ch) { return '\\u0' + hex(ch); })
499
+ .replace(/[\u1000-\uFFFF]/g, function (ch) { return '\\u' + hex(ch); });
500
+ }
501
+
502
+ var expectedDescs = new Array(expected.length),
503
+ expectedDesc, foundDesc, i;
504
+
505
+ for (i = 0; i < expected.length; i++) {
506
+ expectedDescs[i] = expected[i].description;
507
+ }
508
+
509
+ expectedDesc = expected.length > 1
510
+ ? expectedDescs.slice(0, -1).join(", ")
511
+ + " or "
512
+ + expectedDescs[expected.length - 1]
513
+ : expectedDescs[0];
514
+
515
+ foundDesc = found ? "\"" + stringEscape(found) + "\"" : "end of input";
516
+
517
+ return "Expected " + expectedDesc + " but " + foundDesc + " found.";
518
+ }
519
+
520
+ if (expected !== null) {
521
+ cleanupExpected(expected);
522
+ }
523
+
524
+ return new peg$SyntaxError(
525
+ message !== null ? message : buildMessage(expected, found),
526
+ expected,
527
+ found,
528
+ location
529
+ );
530
+ }
531
+
532
+ function peg$parsestart() {
533
+ var s0, s1, s2, s3;
534
+
535
+ s0 = peg$currPos;
536
+ s1 = [];
537
+ s2 = peg$parseSpace();
538
+ while (s2 !== peg$FAILED) {
539
+ s1.push(s2);
540
+ s2 = peg$parseSpace();
541
+ }
542
+ if (s1 !== peg$FAILED) {
543
+ s2 = peg$parseOrQuery();
544
+ if (s2 === peg$FAILED) {
545
+ s2 = null;
546
+ }
547
+ if (s2 !== peg$FAILED) {
548
+ s3 = peg$parseOptionalSpace();
549
+ if (s3 !== peg$FAILED) {
550
+ peg$savedPos = s0;
551
+ s1 = peg$c0(s2, s3);
552
+ s0 = s1;
553
+ } else {
554
+ peg$currPos = s0;
555
+ s0 = peg$FAILED;
556
+ }
557
+ } else {
558
+ peg$currPos = s0;
559
+ s0 = peg$FAILED;
560
+ }
561
+ } else {
562
+ peg$currPos = s0;
563
+ s0 = peg$FAILED;
564
+ }
565
+
566
+ return s0;
567
+ }
568
+
569
+ function peg$parseOrQuery() {
570
+ var s0, s1, s2, s3;
571
+
572
+ s0 = peg$currPos;
573
+ peg$savedPos = peg$currPos;
574
+ s1 = peg$c1();
575
+ if (s1) {
576
+ s1 = void 0;
577
+ } else {
578
+ s1 = peg$FAILED;
579
+ }
580
+ if (s1 !== peg$FAILED) {
581
+ s2 = peg$parseLuceneQuery();
582
+ if (s2 !== peg$FAILED) {
583
+ s1 = [s1, s2];
584
+ s0 = s1;
585
+ } else {
586
+ peg$currPos = s0;
587
+ s0 = peg$FAILED;
588
+ }
589
+ } else {
590
+ peg$currPos = s0;
591
+ s0 = peg$FAILED;
592
+ }
593
+ if (s0 === peg$FAILED) {
594
+ s0 = peg$currPos;
595
+ s1 = peg$parseAndQuery();
596
+ if (s1 !== peg$FAILED) {
597
+ s2 = peg$parseOr();
598
+ if (s2 !== peg$FAILED) {
599
+ s3 = peg$parseOrQuery();
600
+ if (s3 !== peg$FAILED) {
601
+ peg$savedPos = s0;
602
+ s1 = peg$c2(s1, s3);
603
+ s0 = s1;
604
+ } else {
605
+ peg$currPos = s0;
606
+ s0 = peg$FAILED;
607
+ }
608
+ } else {
609
+ peg$currPos = s0;
610
+ s0 = peg$FAILED;
611
+ }
612
+ } else {
613
+ peg$currPos = s0;
614
+ s0 = peg$FAILED;
615
+ }
616
+ if (s0 === peg$FAILED) {
617
+ s0 = peg$parseAndQuery();
618
+ }
619
+ }
620
+
621
+ return s0;
622
+ }
623
+
624
+ function peg$parseAndQuery() {
625
+ var s0, s1, s2, s3;
626
+
627
+ s0 = peg$currPos;
628
+ s1 = peg$parseNotQuery();
629
+ if (s1 !== peg$FAILED) {
630
+ s2 = peg$parseAnd();
631
+ if (s2 !== peg$FAILED) {
632
+ s3 = peg$parseAndQuery();
633
+ if (s3 !== peg$FAILED) {
634
+ peg$savedPos = s0;
635
+ s1 = peg$c3(s1, s3);
636
+ s0 = s1;
637
+ } else {
638
+ peg$currPos = s0;
639
+ s0 = peg$FAILED;
640
+ }
641
+ } else {
642
+ peg$currPos = s0;
643
+ s0 = peg$FAILED;
644
+ }
645
+ } else {
646
+ peg$currPos = s0;
647
+ s0 = peg$FAILED;
648
+ }
649
+ if (s0 === peg$FAILED) {
650
+ s0 = peg$parseNotQuery();
651
+ }
652
+
653
+ return s0;
654
+ }
655
+
656
+ function peg$parseNotQuery() {
657
+ var s0, s1, s2;
658
+
659
+ s0 = peg$currPos;
660
+ s1 = peg$parseNot();
661
+ if (s1 !== peg$FAILED) {
662
+ s2 = peg$parseSubQuery();
663
+ if (s2 !== peg$FAILED) {
664
+ peg$savedPos = s0;
665
+ s1 = peg$c4(s2);
666
+ s0 = s1;
667
+ } else {
668
+ peg$currPos = s0;
669
+ s0 = peg$FAILED;
670
+ }
671
+ } else {
672
+ peg$currPos = s0;
673
+ s0 = peg$FAILED;
674
+ }
675
+ if (s0 === peg$FAILED) {
676
+ s0 = peg$parseSubQuery();
677
+ }
678
+
679
+ return s0;
680
+ }
681
+
682
+ function peg$parseSubQuery() {
683
+ var s0, s1, s2, s3, s4, s5;
684
+
685
+ s0 = peg$currPos;
686
+ if (input.charCodeAt(peg$currPos) === 40) {
687
+ s1 = peg$c5;
688
+ peg$currPos++;
689
+ } else {
690
+ s1 = peg$FAILED;
691
+ if (peg$silentFails === 0) { peg$fail(peg$c6); }
692
+ }
693
+ if (s1 !== peg$FAILED) {
694
+ s2 = [];
695
+ s3 = peg$parseSpace();
696
+ while (s3 !== peg$FAILED) {
697
+ s2.push(s3);
698
+ s3 = peg$parseSpace();
699
+ }
700
+ if (s2 !== peg$FAILED) {
701
+ s3 = peg$parseOrQuery();
702
+ if (s3 !== peg$FAILED) {
703
+ s4 = peg$parseOptionalSpace();
704
+ if (s4 !== peg$FAILED) {
705
+ if (input.charCodeAt(peg$currPos) === 41) {
706
+ s5 = peg$c7;
707
+ peg$currPos++;
708
+ } else {
709
+ s5 = peg$FAILED;
710
+ if (peg$silentFails === 0) { peg$fail(peg$c8); }
711
+ }
712
+ if (s5 !== peg$FAILED) {
713
+ peg$savedPos = s0;
714
+ s1 = peg$c9(s3, s4);
715
+ s0 = s1;
716
+ } else {
717
+ peg$currPos = s0;
718
+ s0 = peg$FAILED;
719
+ }
720
+ } else {
721
+ peg$currPos = s0;
722
+ s0 = peg$FAILED;
723
+ }
724
+ } else {
725
+ peg$currPos = s0;
726
+ s0 = peg$FAILED;
727
+ }
728
+ } else {
729
+ peg$currPos = s0;
730
+ s0 = peg$FAILED;
731
+ }
732
+ } else {
733
+ peg$currPos = s0;
734
+ s0 = peg$FAILED;
735
+ }
736
+ if (s0 === peg$FAILED) {
737
+ s0 = peg$parseNestedQuery();
738
+ }
739
+
740
+ return s0;
741
+ }
742
+
743
+ function peg$parseNestedQuery() {
744
+ var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9;
745
+
746
+ s0 = peg$currPos;
747
+ s1 = peg$parseField();
748
+ if (s1 !== peg$FAILED) {
749
+ s2 = [];
750
+ s3 = peg$parseSpace();
751
+ while (s3 !== peg$FAILED) {
752
+ s2.push(s3);
753
+ s3 = peg$parseSpace();
754
+ }
755
+ if (s2 !== peg$FAILED) {
756
+ if (input.charCodeAt(peg$currPos) === 58) {
757
+ s3 = peg$c10;
758
+ peg$currPos++;
759
+ } else {
760
+ s3 = peg$FAILED;
761
+ if (peg$silentFails === 0) { peg$fail(peg$c11); }
762
+ }
763
+ if (s3 !== peg$FAILED) {
764
+ s4 = [];
765
+ s5 = peg$parseSpace();
766
+ while (s5 !== peg$FAILED) {
767
+ s4.push(s5);
768
+ s5 = peg$parseSpace();
769
+ }
770
+ if (s4 !== peg$FAILED) {
771
+ if (input.charCodeAt(peg$currPos) === 123) {
772
+ s5 = peg$c12;
773
+ peg$currPos++;
774
+ } else {
775
+ s5 = peg$FAILED;
776
+ if (peg$silentFails === 0) { peg$fail(peg$c13); }
777
+ }
778
+ if (s5 !== peg$FAILED) {
779
+ s6 = [];
780
+ s7 = peg$parseSpace();
781
+ while (s7 !== peg$FAILED) {
782
+ s6.push(s7);
783
+ s7 = peg$parseSpace();
784
+ }
785
+ if (s6 !== peg$FAILED) {
786
+ s7 = peg$parseOrQuery();
787
+ if (s7 !== peg$FAILED) {
788
+ s8 = peg$parseOptionalSpace();
789
+ if (s8 !== peg$FAILED) {
790
+ if (input.charCodeAt(peg$currPos) === 125) {
791
+ s9 = peg$c14;
792
+ peg$currPos++;
793
+ } else {
794
+ s9 = peg$FAILED;
795
+ if (peg$silentFails === 0) { peg$fail(peg$c15); }
796
+ }
797
+ if (s9 !== peg$FAILED) {
798
+ peg$savedPos = s0;
799
+ s1 = peg$c16(s1, s7, s8);
800
+ s0 = s1;
801
+ } else {
802
+ peg$currPos = s0;
803
+ s0 = peg$FAILED;
804
+ }
805
+ } else {
806
+ peg$currPos = s0;
807
+ s0 = peg$FAILED;
808
+ }
809
+ } else {
810
+ peg$currPos = s0;
811
+ s0 = peg$FAILED;
812
+ }
813
+ } else {
814
+ peg$currPos = s0;
815
+ s0 = peg$FAILED;
816
+ }
817
+ } else {
818
+ peg$currPos = s0;
819
+ s0 = peg$FAILED;
820
+ }
821
+ } else {
822
+ peg$currPos = s0;
823
+ s0 = peg$FAILED;
824
+ }
825
+ } else {
826
+ peg$currPos = s0;
827
+ s0 = peg$FAILED;
828
+ }
829
+ } else {
830
+ peg$currPos = s0;
831
+ s0 = peg$FAILED;
832
+ }
833
+ } else {
834
+ peg$currPos = s0;
835
+ s0 = peg$FAILED;
836
+ }
837
+ if (s0 === peg$FAILED) {
838
+ s0 = peg$parseExpression();
839
+ }
840
+
841
+ return s0;
842
+ }
843
+
844
+ function peg$parseExpression() {
845
+ var s0;
846
+
847
+ s0 = peg$parseFieldRangeExpression();
848
+ if (s0 === peg$FAILED) {
849
+ s0 = peg$parseFieldValueExpression();
850
+ if (s0 === peg$FAILED) {
851
+ s0 = peg$parseValueExpression();
852
+ }
853
+ }
854
+
855
+ return s0;
856
+ }
857
+
858
+ function peg$parseField() {
859
+ var s0, s1;
860
+
861
+ peg$silentFails++;
862
+ s0 = peg$parseLiteral();
863
+ peg$silentFails--;
864
+ if (s0 === peg$FAILED) {
865
+ s1 = peg$FAILED;
866
+ if (peg$silentFails === 0) { peg$fail(peg$c17); }
867
+ }
868
+
869
+ return s0;
870
+ }
871
+
872
+ function peg$parseFieldRangeExpression() {
873
+ var s0, s1, s2, s3, s4, s5;
874
+
875
+ s0 = peg$currPos;
876
+ s1 = peg$parseField();
877
+ if (s1 !== peg$FAILED) {
878
+ s2 = [];
879
+ s3 = peg$parseSpace();
880
+ while (s3 !== peg$FAILED) {
881
+ s2.push(s3);
882
+ s3 = peg$parseSpace();
883
+ }
884
+ if (s2 !== peg$FAILED) {
885
+ s3 = peg$parseRangeOperator();
886
+ if (s3 !== peg$FAILED) {
887
+ s4 = [];
888
+ s5 = peg$parseSpace();
889
+ while (s5 !== peg$FAILED) {
890
+ s4.push(s5);
891
+ s5 = peg$parseSpace();
892
+ }
893
+ if (s4 !== peg$FAILED) {
894
+ s5 = peg$parseLiteral();
895
+ if (s5 !== peg$FAILED) {
896
+ peg$savedPos = s0;
897
+ s1 = peg$c18(s1, s3, s5);
898
+ s0 = s1;
899
+ } else {
900
+ peg$currPos = s0;
901
+ s0 = peg$FAILED;
902
+ }
903
+ } else {
904
+ peg$currPos = s0;
905
+ s0 = peg$FAILED;
906
+ }
907
+ } else {
908
+ peg$currPos = s0;
909
+ s0 = peg$FAILED;
910
+ }
911
+ } else {
912
+ peg$currPos = s0;
913
+ s0 = peg$FAILED;
914
+ }
915
+ } else {
916
+ peg$currPos = s0;
917
+ s0 = peg$FAILED;
918
+ }
919
+
920
+ return s0;
921
+ }
922
+
923
+ function peg$parseFieldValueExpression() {
924
+ var s0, s1, s2, s3, s4, s5;
925
+
926
+ s0 = peg$currPos;
927
+ s1 = peg$parseField();
928
+ if (s1 !== peg$FAILED) {
929
+ s2 = [];
930
+ s3 = peg$parseSpace();
931
+ while (s3 !== peg$FAILED) {
932
+ s2.push(s3);
933
+ s3 = peg$parseSpace();
934
+ }
935
+ if (s2 !== peg$FAILED) {
936
+ if (input.charCodeAt(peg$currPos) === 58) {
937
+ s3 = peg$c10;
938
+ peg$currPos++;
939
+ } else {
940
+ s3 = peg$FAILED;
941
+ if (peg$silentFails === 0) { peg$fail(peg$c11); }
942
+ }
943
+ if (s3 !== peg$FAILED) {
944
+ s4 = [];
945
+ s5 = peg$parseSpace();
946
+ while (s5 !== peg$FAILED) {
947
+ s4.push(s5);
948
+ s5 = peg$parseSpace();
949
+ }
950
+ if (s4 !== peg$FAILED) {
951
+ s5 = peg$parseListOfValues();
952
+ if (s5 !== peg$FAILED) {
953
+ peg$savedPos = s0;
954
+ s1 = peg$c19(s1, s5);
955
+ s0 = s1;
956
+ } else {
957
+ peg$currPos = s0;
958
+ s0 = peg$FAILED;
959
+ }
960
+ } else {
961
+ peg$currPos = s0;
962
+ s0 = peg$FAILED;
963
+ }
964
+ } else {
965
+ peg$currPos = s0;
966
+ s0 = peg$FAILED;
967
+ }
968
+ } else {
969
+ peg$currPos = s0;
970
+ s0 = peg$FAILED;
971
+ }
972
+ } else {
973
+ peg$currPos = s0;
974
+ s0 = peg$FAILED;
975
+ }
976
+
977
+ return s0;
978
+ }
979
+
980
+ function peg$parseValueExpression() {
981
+ var s0, s1;
982
+
983
+ s0 = peg$currPos;
984
+ s1 = peg$parseValue();
985
+ if (s1 !== peg$FAILED) {
986
+ peg$savedPos = s0;
987
+ s1 = peg$c20(s1);
988
+ }
989
+ s0 = s1;
990
+
991
+ return s0;
992
+ }
993
+
994
+ function peg$parseListOfValues() {
995
+ var s0, s1, s2, s3, s4, s5;
996
+
997
+ s0 = peg$currPos;
998
+ if (input.charCodeAt(peg$currPos) === 40) {
999
+ s1 = peg$c5;
1000
+ peg$currPos++;
1001
+ } else {
1002
+ s1 = peg$FAILED;
1003
+ if (peg$silentFails === 0) { peg$fail(peg$c6); }
1004
+ }
1005
+ if (s1 !== peg$FAILED) {
1006
+ s2 = [];
1007
+ s3 = peg$parseSpace();
1008
+ while (s3 !== peg$FAILED) {
1009
+ s2.push(s3);
1010
+ s3 = peg$parseSpace();
1011
+ }
1012
+ if (s2 !== peg$FAILED) {
1013
+ s3 = peg$parseOrListOfValues();
1014
+ if (s3 !== peg$FAILED) {
1015
+ s4 = peg$parseOptionalSpace();
1016
+ if (s4 !== peg$FAILED) {
1017
+ if (input.charCodeAt(peg$currPos) === 41) {
1018
+ s5 = peg$c7;
1019
+ peg$currPos++;
1020
+ } else {
1021
+ s5 = peg$FAILED;
1022
+ if (peg$silentFails === 0) { peg$fail(peg$c8); }
1023
+ }
1024
+ if (s5 !== peg$FAILED) {
1025
+ peg$savedPos = s0;
1026
+ s1 = peg$c21(s3, s4);
1027
+ s0 = s1;
1028
+ } else {
1029
+ peg$currPos = s0;
1030
+ s0 = peg$FAILED;
1031
+ }
1032
+ } else {
1033
+ peg$currPos = s0;
1034
+ s0 = peg$FAILED;
1035
+ }
1036
+ } else {
1037
+ peg$currPos = s0;
1038
+ s0 = peg$FAILED;
1039
+ }
1040
+ } else {
1041
+ peg$currPos = s0;
1042
+ s0 = peg$FAILED;
1043
+ }
1044
+ } else {
1045
+ peg$currPos = s0;
1046
+ s0 = peg$FAILED;
1047
+ }
1048
+ if (s0 === peg$FAILED) {
1049
+ s0 = peg$parseValue();
1050
+ }
1051
+
1052
+ return s0;
1053
+ }
1054
+
1055
+ function peg$parseOrListOfValues() {
1056
+ var s0, s1, s2, s3;
1057
+
1058
+ s0 = peg$currPos;
1059
+ s1 = peg$parseAndListOfValues();
1060
+ if (s1 !== peg$FAILED) {
1061
+ s2 = peg$parseOr();
1062
+ if (s2 !== peg$FAILED) {
1063
+ s3 = peg$parseOrListOfValues();
1064
+ if (s3 !== peg$FAILED) {
1065
+ peg$savedPos = s0;
1066
+ s1 = peg$c22(s1, s3);
1067
+ s0 = s1;
1068
+ } else {
1069
+ peg$currPos = s0;
1070
+ s0 = peg$FAILED;
1071
+ }
1072
+ } else {
1073
+ peg$currPos = s0;
1074
+ s0 = peg$FAILED;
1075
+ }
1076
+ } else {
1077
+ peg$currPos = s0;
1078
+ s0 = peg$FAILED;
1079
+ }
1080
+ if (s0 === peg$FAILED) {
1081
+ s0 = peg$parseAndListOfValues();
1082
+ }
1083
+
1084
+ return s0;
1085
+ }
1086
+
1087
+ function peg$parseAndListOfValues() {
1088
+ var s0, s1, s2, s3;
1089
+
1090
+ s0 = peg$currPos;
1091
+ s1 = peg$parseNotListOfValues();
1092
+ if (s1 !== peg$FAILED) {
1093
+ s2 = peg$parseAnd();
1094
+ if (s2 !== peg$FAILED) {
1095
+ s3 = peg$parseAndListOfValues();
1096
+ if (s3 !== peg$FAILED) {
1097
+ peg$savedPos = s0;
1098
+ s1 = peg$c23(s1, s3);
1099
+ s0 = s1;
1100
+ } else {
1101
+ peg$currPos = s0;
1102
+ s0 = peg$FAILED;
1103
+ }
1104
+ } else {
1105
+ peg$currPos = s0;
1106
+ s0 = peg$FAILED;
1107
+ }
1108
+ } else {
1109
+ peg$currPos = s0;
1110
+ s0 = peg$FAILED;
1111
+ }
1112
+ if (s0 === peg$FAILED) {
1113
+ s0 = peg$parseNotListOfValues();
1114
+ }
1115
+
1116
+ return s0;
1117
+ }
1118
+
1119
+ function peg$parseNotListOfValues() {
1120
+ var s0, s1, s2;
1121
+
1122
+ s0 = peg$currPos;
1123
+ s1 = peg$parseNot();
1124
+ if (s1 !== peg$FAILED) {
1125
+ s2 = peg$parseListOfValues();
1126
+ if (s2 !== peg$FAILED) {
1127
+ peg$savedPos = s0;
1128
+ s1 = peg$c24(s2);
1129
+ s0 = s1;
1130
+ } else {
1131
+ peg$currPos = s0;
1132
+ s0 = peg$FAILED;
1133
+ }
1134
+ } else {
1135
+ peg$currPos = s0;
1136
+ s0 = peg$FAILED;
1137
+ }
1138
+ if (s0 === peg$FAILED) {
1139
+ s0 = peg$parseListOfValues();
1140
+ }
1141
+
1142
+ return s0;
1143
+ }
1144
+
1145
+ function peg$parseValue() {
1146
+ var s0, s1;
1147
+
1148
+ peg$silentFails++;
1149
+ s0 = peg$currPos;
1150
+ s1 = peg$parseQuotedString();
1151
+ if (s1 !== peg$FAILED) {
1152
+ peg$savedPos = s0;
1153
+ s1 = peg$c26(s1);
1154
+ }
1155
+ s0 = s1;
1156
+ if (s0 === peg$FAILED) {
1157
+ s0 = peg$currPos;
1158
+ s1 = peg$parseUnquotedLiteral();
1159
+ if (s1 !== peg$FAILED) {
1160
+ peg$savedPos = s0;
1161
+ s1 = peg$c27(s1);
1162
+ }
1163
+ s0 = s1;
1164
+ }
1165
+ peg$silentFails--;
1166
+ if (s0 === peg$FAILED) {
1167
+ s1 = peg$FAILED;
1168
+ if (peg$silentFails === 0) { peg$fail(peg$c25); }
1169
+ }
1170
+
1171
+ return s0;
1172
+ }
1173
+
1174
+ function peg$parseOr() {
1175
+ var s0, s1, s2, s3, s4;
1176
+
1177
+ peg$silentFails++;
1178
+ s0 = peg$currPos;
1179
+ s1 = [];
1180
+ s2 = peg$parseSpace();
1181
+ if (s2 !== peg$FAILED) {
1182
+ while (s2 !== peg$FAILED) {
1183
+ s1.push(s2);
1184
+ s2 = peg$parseSpace();
1185
+ }
1186
+ } else {
1187
+ s1 = peg$FAILED;
1188
+ }
1189
+ if (s1 !== peg$FAILED) {
1190
+ if (input.substr(peg$currPos, 2).toLowerCase() === peg$c29) {
1191
+ s2 = input.substr(peg$currPos, 2);
1192
+ peg$currPos += 2;
1193
+ } else {
1194
+ s2 = peg$FAILED;
1195
+ if (peg$silentFails === 0) { peg$fail(peg$c30); }
1196
+ }
1197
+ if (s2 !== peg$FAILED) {
1198
+ s3 = [];
1199
+ s4 = peg$parseSpace();
1200
+ if (s4 !== peg$FAILED) {
1201
+ while (s4 !== peg$FAILED) {
1202
+ s3.push(s4);
1203
+ s4 = peg$parseSpace();
1204
+ }
1205
+ } else {
1206
+ s3 = peg$FAILED;
1207
+ }
1208
+ if (s3 !== peg$FAILED) {
1209
+ s1 = [s1, s2, s3];
1210
+ s0 = s1;
1211
+ } else {
1212
+ peg$currPos = s0;
1213
+ s0 = peg$FAILED;
1214
+ }
1215
+ } else {
1216
+ peg$currPos = s0;
1217
+ s0 = peg$FAILED;
1218
+ }
1219
+ } else {
1220
+ peg$currPos = s0;
1221
+ s0 = peg$FAILED;
1222
+ }
1223
+ if (s0 === peg$FAILED) {
1224
+ s0 = peg$currPos;
1225
+ peg$savedPos = peg$currPos;
1226
+ s1 = peg$c1();
1227
+ if (s1) {
1228
+ s1 = void 0;
1229
+ } else {
1230
+ s1 = peg$FAILED;
1231
+ }
1232
+ if (s1 !== peg$FAILED) {
1233
+ s2 = peg$parseLuceneOr();
1234
+ if (s2 !== peg$FAILED) {
1235
+ s1 = [s1, s2];
1236
+ s0 = s1;
1237
+ } else {
1238
+ peg$currPos = s0;
1239
+ s0 = peg$FAILED;
1240
+ }
1241
+ } else {
1242
+ peg$currPos = s0;
1243
+ s0 = peg$FAILED;
1244
+ }
1245
+ }
1246
+ peg$silentFails--;
1247
+ if (s0 === peg$FAILED) {
1248
+ s1 = peg$FAILED;
1249
+ if (peg$silentFails === 0) { peg$fail(peg$c28); }
1250
+ }
1251
+
1252
+ return s0;
1253
+ }
1254
+
1255
+ function peg$parseAnd() {
1256
+ var s0, s1, s2, s3, s4;
1257
+
1258
+ peg$silentFails++;
1259
+ s0 = peg$currPos;
1260
+ s1 = [];
1261
+ s2 = peg$parseSpace();
1262
+ if (s2 !== peg$FAILED) {
1263
+ while (s2 !== peg$FAILED) {
1264
+ s1.push(s2);
1265
+ s2 = peg$parseSpace();
1266
+ }
1267
+ } else {
1268
+ s1 = peg$FAILED;
1269
+ }
1270
+ if (s1 !== peg$FAILED) {
1271
+ if (input.substr(peg$currPos, 3).toLowerCase() === peg$c32) {
1272
+ s2 = input.substr(peg$currPos, 3);
1273
+ peg$currPos += 3;
1274
+ } else {
1275
+ s2 = peg$FAILED;
1276
+ if (peg$silentFails === 0) { peg$fail(peg$c33); }
1277
+ }
1278
+ if (s2 !== peg$FAILED) {
1279
+ s3 = [];
1280
+ s4 = peg$parseSpace();
1281
+ if (s4 !== peg$FAILED) {
1282
+ while (s4 !== peg$FAILED) {
1283
+ s3.push(s4);
1284
+ s4 = peg$parseSpace();
1285
+ }
1286
+ } else {
1287
+ s3 = peg$FAILED;
1288
+ }
1289
+ if (s3 !== peg$FAILED) {
1290
+ s1 = [s1, s2, s3];
1291
+ s0 = s1;
1292
+ } else {
1293
+ peg$currPos = s0;
1294
+ s0 = peg$FAILED;
1295
+ }
1296
+ } else {
1297
+ peg$currPos = s0;
1298
+ s0 = peg$FAILED;
1299
+ }
1300
+ } else {
1301
+ peg$currPos = s0;
1302
+ s0 = peg$FAILED;
1303
+ }
1304
+ if (s0 === peg$FAILED) {
1305
+ s0 = peg$currPos;
1306
+ peg$savedPos = peg$currPos;
1307
+ s1 = peg$c1();
1308
+ if (s1) {
1309
+ s1 = void 0;
1310
+ } else {
1311
+ s1 = peg$FAILED;
1312
+ }
1313
+ if (s1 !== peg$FAILED) {
1314
+ s2 = peg$parseLuceneAnd();
1315
+ if (s2 !== peg$FAILED) {
1316
+ s1 = [s1, s2];
1317
+ s0 = s1;
1318
+ } else {
1319
+ peg$currPos = s0;
1320
+ s0 = peg$FAILED;
1321
+ }
1322
+ } else {
1323
+ peg$currPos = s0;
1324
+ s0 = peg$FAILED;
1325
+ }
1326
+ }
1327
+ peg$silentFails--;
1328
+ if (s0 === peg$FAILED) {
1329
+ s1 = peg$FAILED;
1330
+ if (peg$silentFails === 0) { peg$fail(peg$c31); }
1331
+ }
1332
+
1333
+ return s0;
1334
+ }
1335
+
1336
+ function peg$parseNot() {
1337
+ var s0, s1, s2, s3;
1338
+
1339
+ peg$silentFails++;
1340
+ s0 = peg$currPos;
1341
+ if (input.substr(peg$currPos, 3).toLowerCase() === peg$c35) {
1342
+ s1 = input.substr(peg$currPos, 3);
1343
+ peg$currPos += 3;
1344
+ } else {
1345
+ s1 = peg$FAILED;
1346
+ if (peg$silentFails === 0) { peg$fail(peg$c36); }
1347
+ }
1348
+ if (s1 !== peg$FAILED) {
1349
+ s2 = [];
1350
+ s3 = peg$parseSpace();
1351
+ if (s3 !== peg$FAILED) {
1352
+ while (s3 !== peg$FAILED) {
1353
+ s2.push(s3);
1354
+ s3 = peg$parseSpace();
1355
+ }
1356
+ } else {
1357
+ s2 = peg$FAILED;
1358
+ }
1359
+ if (s2 !== peg$FAILED) {
1360
+ s1 = [s1, s2];
1361
+ s0 = s1;
1362
+ } else {
1363
+ peg$currPos = s0;
1364
+ s0 = peg$FAILED;
1365
+ }
1366
+ } else {
1367
+ peg$currPos = s0;
1368
+ s0 = peg$FAILED;
1369
+ }
1370
+ if (s0 === peg$FAILED) {
1371
+ s0 = peg$currPos;
1372
+ peg$savedPos = peg$currPos;
1373
+ s1 = peg$c1();
1374
+ if (s1) {
1375
+ s1 = void 0;
1376
+ } else {
1377
+ s1 = peg$FAILED;
1378
+ }
1379
+ if (s1 !== peg$FAILED) {
1380
+ s2 = peg$parseLuceneNot();
1381
+ if (s2 !== peg$FAILED) {
1382
+ s1 = [s1, s2];
1383
+ s0 = s1;
1384
+ } else {
1385
+ peg$currPos = s0;
1386
+ s0 = peg$FAILED;
1387
+ }
1388
+ } else {
1389
+ peg$currPos = s0;
1390
+ s0 = peg$FAILED;
1391
+ }
1392
+ }
1393
+ peg$silentFails--;
1394
+ if (s0 === peg$FAILED) {
1395
+ s1 = peg$FAILED;
1396
+ if (peg$silentFails === 0) { peg$fail(peg$c34); }
1397
+ }
1398
+
1399
+ return s0;
1400
+ }
1401
+
1402
+ function peg$parseLiteral() {
1403
+ var s0, s1;
1404
+
1405
+ peg$silentFails++;
1406
+ s0 = peg$parseQuotedString();
1407
+ if (s0 === peg$FAILED) {
1408
+ s0 = peg$parseUnquotedLiteral();
1409
+ }
1410
+ peg$silentFails--;
1411
+ if (s0 === peg$FAILED) {
1412
+ s1 = peg$FAILED;
1413
+ if (peg$silentFails === 0) { peg$fail(peg$c37); }
1414
+ }
1415
+
1416
+ return s0;
1417
+ }
1418
+
1419
+ function peg$parseQuotedString() {
1420
+ var s0, s1, s2, s3, s4, s5;
1421
+
1422
+ s0 = peg$currPos;
1423
+ if (input.charCodeAt(peg$currPos) === 34) {
1424
+ s1 = peg$c38;
1425
+ peg$currPos++;
1426
+ } else {
1427
+ s1 = peg$FAILED;
1428
+ if (peg$silentFails === 0) { peg$fail(peg$c39); }
1429
+ }
1430
+ if (s1 !== peg$FAILED) {
1431
+ s2 = [];
1432
+ s3 = peg$parseQuotedCharacter();
1433
+ while (s3 !== peg$FAILED) {
1434
+ s2.push(s3);
1435
+ s3 = peg$parseQuotedCharacter();
1436
+ }
1437
+ if (s2 !== peg$FAILED) {
1438
+ s3 = peg$parseCursor();
1439
+ if (s3 !== peg$FAILED) {
1440
+ s4 = [];
1441
+ s5 = peg$parseQuotedCharacter();
1442
+ while (s5 !== peg$FAILED) {
1443
+ s4.push(s5);
1444
+ s5 = peg$parseQuotedCharacter();
1445
+ }
1446
+ if (s4 !== peg$FAILED) {
1447
+ if (input.charCodeAt(peg$currPos) === 34) {
1448
+ s5 = peg$c38;
1449
+ peg$currPos++;
1450
+ } else {
1451
+ s5 = peg$FAILED;
1452
+ if (peg$silentFails === 0) { peg$fail(peg$c39); }
1453
+ }
1454
+ if (s5 !== peg$FAILED) {
1455
+ peg$savedPos = s0;
1456
+ s1 = peg$c40(s2, s3, s4);
1457
+ s0 = s1;
1458
+ } else {
1459
+ peg$currPos = s0;
1460
+ s0 = peg$FAILED;
1461
+ }
1462
+ } else {
1463
+ peg$currPos = s0;
1464
+ s0 = peg$FAILED;
1465
+ }
1466
+ } else {
1467
+ peg$currPos = s0;
1468
+ s0 = peg$FAILED;
1469
+ }
1470
+ } else {
1471
+ peg$currPos = s0;
1472
+ s0 = peg$FAILED;
1473
+ }
1474
+ } else {
1475
+ peg$currPos = s0;
1476
+ s0 = peg$FAILED;
1477
+ }
1478
+ if (s0 === peg$FAILED) {
1479
+ s0 = peg$currPos;
1480
+ if (input.charCodeAt(peg$currPos) === 34) {
1481
+ s1 = peg$c38;
1482
+ peg$currPos++;
1483
+ } else {
1484
+ s1 = peg$FAILED;
1485
+ if (peg$silentFails === 0) { peg$fail(peg$c39); }
1486
+ }
1487
+ if (s1 !== peg$FAILED) {
1488
+ s2 = [];
1489
+ s3 = peg$parseQuotedCharacter();
1490
+ while (s3 !== peg$FAILED) {
1491
+ s2.push(s3);
1492
+ s3 = peg$parseQuotedCharacter();
1493
+ }
1494
+ if (s2 !== peg$FAILED) {
1495
+ if (input.charCodeAt(peg$currPos) === 34) {
1496
+ s3 = peg$c38;
1497
+ peg$currPos++;
1498
+ } else {
1499
+ s3 = peg$FAILED;
1500
+ if (peg$silentFails === 0) { peg$fail(peg$c39); }
1501
+ }
1502
+ if (s3 !== peg$FAILED) {
1503
+ peg$savedPos = s0;
1504
+ s1 = peg$c41(s2);
1505
+ s0 = s1;
1506
+ } else {
1507
+ peg$currPos = s0;
1508
+ s0 = peg$FAILED;
1509
+ }
1510
+ } else {
1511
+ peg$currPos = s0;
1512
+ s0 = peg$FAILED;
1513
+ }
1514
+ } else {
1515
+ peg$currPos = s0;
1516
+ s0 = peg$FAILED;
1517
+ }
1518
+ }
1519
+
1520
+ return s0;
1521
+ }
1522
+
1523
+ function peg$parseQuotedCharacter() {
1524
+ var s0, s1, s2;
1525
+
1526
+ s0 = peg$parseEscapedWhitespace();
1527
+ if (s0 === peg$FAILED) {
1528
+ s0 = peg$currPos;
1529
+ if (input.charCodeAt(peg$currPos) === 92) {
1530
+ s1 = peg$c42;
1531
+ peg$currPos++;
1532
+ } else {
1533
+ s1 = peg$FAILED;
1534
+ if (peg$silentFails === 0) { peg$fail(peg$c43); }
1535
+ }
1536
+ if (s1 !== peg$FAILED) {
1537
+ if (peg$c44.test(input.charAt(peg$currPos))) {
1538
+ s2 = input.charAt(peg$currPos);
1539
+ peg$currPos++;
1540
+ } else {
1541
+ s2 = peg$FAILED;
1542
+ if (peg$silentFails === 0) { peg$fail(peg$c45); }
1543
+ }
1544
+ if (s2 !== peg$FAILED) {
1545
+ peg$savedPos = s0;
1546
+ s1 = peg$c46(s2);
1547
+ s0 = s1;
1548
+ } else {
1549
+ peg$currPos = s0;
1550
+ s0 = peg$FAILED;
1551
+ }
1552
+ } else {
1553
+ peg$currPos = s0;
1554
+ s0 = peg$FAILED;
1555
+ }
1556
+ if (s0 === peg$FAILED) {
1557
+ s0 = peg$currPos;
1558
+ s1 = peg$currPos;
1559
+ peg$silentFails++;
1560
+ s2 = peg$parseCursor();
1561
+ peg$silentFails--;
1562
+ if (s2 === peg$FAILED) {
1563
+ s1 = void 0;
1564
+ } else {
1565
+ peg$currPos = s1;
1566
+ s1 = peg$FAILED;
1567
+ }
1568
+ if (s1 !== peg$FAILED) {
1569
+ if (peg$c47.test(input.charAt(peg$currPos))) {
1570
+ s2 = input.charAt(peg$currPos);
1571
+ peg$currPos++;
1572
+ } else {
1573
+ s2 = peg$FAILED;
1574
+ if (peg$silentFails === 0) { peg$fail(peg$c48); }
1575
+ }
1576
+ if (s2 !== peg$FAILED) {
1577
+ peg$savedPos = s0;
1578
+ s1 = peg$c46(s2);
1579
+ s0 = s1;
1580
+ } else {
1581
+ peg$currPos = s0;
1582
+ s0 = peg$FAILED;
1583
+ }
1584
+ } else {
1585
+ peg$currPos = s0;
1586
+ s0 = peg$FAILED;
1587
+ }
1588
+ }
1589
+ }
1590
+
1591
+ return s0;
1592
+ }
1593
+
1594
+ function peg$parseUnquotedLiteral() {
1595
+ var s0, s1, s2, s3, s4;
1596
+
1597
+ s0 = peg$currPos;
1598
+ s1 = [];
1599
+ s2 = peg$parseUnquotedCharacter();
1600
+ while (s2 !== peg$FAILED) {
1601
+ s1.push(s2);
1602
+ s2 = peg$parseUnquotedCharacter();
1603
+ }
1604
+ if (s1 !== peg$FAILED) {
1605
+ s2 = peg$parseCursor();
1606
+ if (s2 !== peg$FAILED) {
1607
+ s3 = [];
1608
+ s4 = peg$parseUnquotedCharacter();
1609
+ while (s4 !== peg$FAILED) {
1610
+ s3.push(s4);
1611
+ s4 = peg$parseUnquotedCharacter();
1612
+ }
1613
+ if (s3 !== peg$FAILED) {
1614
+ peg$savedPos = s0;
1615
+ s1 = peg$c40(s1, s2, s3);
1616
+ s0 = s1;
1617
+ } else {
1618
+ peg$currPos = s0;
1619
+ s0 = peg$FAILED;
1620
+ }
1621
+ } else {
1622
+ peg$currPos = s0;
1623
+ s0 = peg$FAILED;
1624
+ }
1625
+ } else {
1626
+ peg$currPos = s0;
1627
+ s0 = peg$FAILED;
1628
+ }
1629
+ if (s0 === peg$FAILED) {
1630
+ s0 = peg$currPos;
1631
+ s1 = [];
1632
+ s2 = peg$parseUnquotedCharacter();
1633
+ if (s2 !== peg$FAILED) {
1634
+ while (s2 !== peg$FAILED) {
1635
+ s1.push(s2);
1636
+ s2 = peg$parseUnquotedCharacter();
1637
+ }
1638
+ } else {
1639
+ s1 = peg$FAILED;
1640
+ }
1641
+ if (s1 !== peg$FAILED) {
1642
+ peg$savedPos = s0;
1643
+ s1 = peg$c49(s1);
1644
+ }
1645
+ s0 = s1;
1646
+ }
1647
+
1648
+ return s0;
1649
+ }
1650
+
1651
+ function peg$parseUnquotedCharacter() {
1652
+ var s0, s1, s2, s3, s4;
1653
+
1654
+ s0 = peg$parseEscapedWhitespace();
1655
+ if (s0 === peg$FAILED) {
1656
+ s0 = peg$parseEscapedSpecialCharacter();
1657
+ if (s0 === peg$FAILED) {
1658
+ s0 = peg$parseEscapedKeyword();
1659
+ if (s0 === peg$FAILED) {
1660
+ s0 = peg$parseWildcard();
1661
+ if (s0 === peg$FAILED) {
1662
+ s0 = peg$currPos;
1663
+ s1 = peg$currPos;
1664
+ peg$silentFails++;
1665
+ s2 = peg$parseSpecialCharacter();
1666
+ peg$silentFails--;
1667
+ if (s2 === peg$FAILED) {
1668
+ s1 = void 0;
1669
+ } else {
1670
+ peg$currPos = s1;
1671
+ s1 = peg$FAILED;
1672
+ }
1673
+ if (s1 !== peg$FAILED) {
1674
+ s2 = peg$currPos;
1675
+ peg$silentFails++;
1676
+ s3 = peg$parseKeyword();
1677
+ peg$silentFails--;
1678
+ if (s3 === peg$FAILED) {
1679
+ s2 = void 0;
1680
+ } else {
1681
+ peg$currPos = s2;
1682
+ s2 = peg$FAILED;
1683
+ }
1684
+ if (s2 !== peg$FAILED) {
1685
+ s3 = peg$currPos;
1686
+ peg$silentFails++;
1687
+ s4 = peg$parseCursor();
1688
+ peg$silentFails--;
1689
+ if (s4 === peg$FAILED) {
1690
+ s3 = void 0;
1691
+ } else {
1692
+ peg$currPos = s3;
1693
+ s3 = peg$FAILED;
1694
+ }
1695
+ if (s3 !== peg$FAILED) {
1696
+ if (input.length > peg$currPos) {
1697
+ s4 = input.charAt(peg$currPos);
1698
+ peg$currPos++;
1699
+ } else {
1700
+ s4 = peg$FAILED;
1701
+ if (peg$silentFails === 0) { peg$fail(peg$c50); }
1702
+ }
1703
+ if (s4 !== peg$FAILED) {
1704
+ peg$savedPos = s0;
1705
+ s1 = peg$c46(s4);
1706
+ s0 = s1;
1707
+ } else {
1708
+ peg$currPos = s0;
1709
+ s0 = peg$FAILED;
1710
+ }
1711
+ } else {
1712
+ peg$currPos = s0;
1713
+ s0 = peg$FAILED;
1714
+ }
1715
+ } else {
1716
+ peg$currPos = s0;
1717
+ s0 = peg$FAILED;
1718
+ }
1719
+ } else {
1720
+ peg$currPos = s0;
1721
+ s0 = peg$FAILED;
1722
+ }
1723
+ }
1724
+ }
1725
+ }
1726
+ }
1727
+
1728
+ return s0;
1729
+ }
1730
+
1731
+ function peg$parseWildcard() {
1732
+ var s0, s1;
1733
+
1734
+ s0 = peg$currPos;
1735
+ if (input.charCodeAt(peg$currPos) === 42) {
1736
+ s1 = peg$c51;
1737
+ peg$currPos++;
1738
+ } else {
1739
+ s1 = peg$FAILED;
1740
+ if (peg$silentFails === 0) { peg$fail(peg$c52); }
1741
+ }
1742
+ if (s1 !== peg$FAILED) {
1743
+ peg$savedPos = s0;
1744
+ s1 = peg$c53();
1745
+ }
1746
+ s0 = s1;
1747
+
1748
+ return s0;
1749
+ }
1750
+
1751
+ function peg$parseOptionalSpace() {
1752
+ var s0, s1, s2, s3, s4;
1753
+
1754
+ s0 = peg$currPos;
1755
+ s1 = [];
1756
+ s2 = peg$parseSpace();
1757
+ while (s2 !== peg$FAILED) {
1758
+ s1.push(s2);
1759
+ s2 = peg$parseSpace();
1760
+ }
1761
+ if (s1 !== peg$FAILED) {
1762
+ s2 = peg$parseCursor();
1763
+ if (s2 !== peg$FAILED) {
1764
+ s3 = [];
1765
+ s4 = peg$parseSpace();
1766
+ while (s4 !== peg$FAILED) {
1767
+ s3.push(s4);
1768
+ s4 = peg$parseSpace();
1769
+ }
1770
+ if (s3 !== peg$FAILED) {
1771
+ peg$savedPos = s0;
1772
+ s1 = peg$c40(s1, s2, s3);
1773
+ s0 = s1;
1774
+ } else {
1775
+ peg$currPos = s0;
1776
+ s0 = peg$FAILED;
1777
+ }
1778
+ } else {
1779
+ peg$currPos = s0;
1780
+ s0 = peg$FAILED;
1781
+ }
1782
+ } else {
1783
+ peg$currPos = s0;
1784
+ s0 = peg$FAILED;
1785
+ }
1786
+ if (s0 === peg$FAILED) {
1787
+ s0 = [];
1788
+ s1 = peg$parseSpace();
1789
+ while (s1 !== peg$FAILED) {
1790
+ s0.push(s1);
1791
+ s1 = peg$parseSpace();
1792
+ }
1793
+ }
1794
+
1795
+ return s0;
1796
+ }
1797
+
1798
+ function peg$parseEscapedWhitespace() {
1799
+ var s0, s1;
1800
+
1801
+ s0 = peg$currPos;
1802
+ if (input.substr(peg$currPos, 2) === peg$c54) {
1803
+ s1 = peg$c54;
1804
+ peg$currPos += 2;
1805
+ } else {
1806
+ s1 = peg$FAILED;
1807
+ if (peg$silentFails === 0) { peg$fail(peg$c55); }
1808
+ }
1809
+ if (s1 !== peg$FAILED) {
1810
+ peg$savedPos = s0;
1811
+ s1 = peg$c56();
1812
+ }
1813
+ s0 = s1;
1814
+ if (s0 === peg$FAILED) {
1815
+ s0 = peg$currPos;
1816
+ if (input.substr(peg$currPos, 2) === peg$c57) {
1817
+ s1 = peg$c57;
1818
+ peg$currPos += 2;
1819
+ } else {
1820
+ s1 = peg$FAILED;
1821
+ if (peg$silentFails === 0) { peg$fail(peg$c58); }
1822
+ }
1823
+ if (s1 !== peg$FAILED) {
1824
+ peg$savedPos = s0;
1825
+ s1 = peg$c59();
1826
+ }
1827
+ s0 = s1;
1828
+ if (s0 === peg$FAILED) {
1829
+ s0 = peg$currPos;
1830
+ if (input.substr(peg$currPos, 2) === peg$c60) {
1831
+ s1 = peg$c60;
1832
+ peg$currPos += 2;
1833
+ } else {
1834
+ s1 = peg$FAILED;
1835
+ if (peg$silentFails === 0) { peg$fail(peg$c61); }
1836
+ }
1837
+ if (s1 !== peg$FAILED) {
1838
+ peg$savedPos = s0;
1839
+ s1 = peg$c62();
1840
+ }
1841
+ s0 = s1;
1842
+ }
1843
+ }
1844
+
1845
+ return s0;
1846
+ }
1847
+
1848
+ function peg$parseEscapedSpecialCharacter() {
1849
+ var s0, s1, s2;
1850
+
1851
+ s0 = peg$currPos;
1852
+ if (input.charCodeAt(peg$currPos) === 92) {
1853
+ s1 = peg$c42;
1854
+ peg$currPos++;
1855
+ } else {
1856
+ s1 = peg$FAILED;
1857
+ if (peg$silentFails === 0) { peg$fail(peg$c43); }
1858
+ }
1859
+ if (s1 !== peg$FAILED) {
1860
+ s2 = peg$parseSpecialCharacter();
1861
+ if (s2 !== peg$FAILED) {
1862
+ peg$savedPos = s0;
1863
+ s1 = peg$c46(s2);
1864
+ s0 = s1;
1865
+ } else {
1866
+ peg$currPos = s0;
1867
+ s0 = peg$FAILED;
1868
+ }
1869
+ } else {
1870
+ peg$currPos = s0;
1871
+ s0 = peg$FAILED;
1872
+ }
1873
+
1874
+ return s0;
1875
+ }
1876
+
1877
+ function peg$parseEscapedKeyword() {
1878
+ var s0, s1, s2;
1879
+
1880
+ s0 = peg$currPos;
1881
+ if (input.charCodeAt(peg$currPos) === 92) {
1882
+ s1 = peg$c42;
1883
+ peg$currPos++;
1884
+ } else {
1885
+ s1 = peg$FAILED;
1886
+ if (peg$silentFails === 0) { peg$fail(peg$c43); }
1887
+ }
1888
+ if (s1 !== peg$FAILED) {
1889
+ if (input.substr(peg$currPos, 2).toLowerCase() === peg$c29) {
1890
+ s2 = input.substr(peg$currPos, 2);
1891
+ peg$currPos += 2;
1892
+ } else {
1893
+ s2 = peg$FAILED;
1894
+ if (peg$silentFails === 0) { peg$fail(peg$c30); }
1895
+ }
1896
+ if (s2 === peg$FAILED) {
1897
+ if (input.substr(peg$currPos, 3).toLowerCase() === peg$c32) {
1898
+ s2 = input.substr(peg$currPos, 3);
1899
+ peg$currPos += 3;
1900
+ } else {
1901
+ s2 = peg$FAILED;
1902
+ if (peg$silentFails === 0) { peg$fail(peg$c33); }
1903
+ }
1904
+ if (s2 === peg$FAILED) {
1905
+ if (input.substr(peg$currPos, 3).toLowerCase() === peg$c35) {
1906
+ s2 = input.substr(peg$currPos, 3);
1907
+ peg$currPos += 3;
1908
+ } else {
1909
+ s2 = peg$FAILED;
1910
+ if (peg$silentFails === 0) { peg$fail(peg$c36); }
1911
+ }
1912
+ }
1913
+ }
1914
+ if (s2 !== peg$FAILED) {
1915
+ peg$savedPos = s0;
1916
+ s1 = peg$c63(s2);
1917
+ s0 = s1;
1918
+ } else {
1919
+ peg$currPos = s0;
1920
+ s0 = peg$FAILED;
1921
+ }
1922
+ } else {
1923
+ peg$currPos = s0;
1924
+ s0 = peg$FAILED;
1925
+ }
1926
+
1927
+ return s0;
1928
+ }
1929
+
1930
+ function peg$parseKeyword() {
1931
+ var s0;
1932
+
1933
+ s0 = peg$parseOr();
1934
+ if (s0 === peg$FAILED) {
1935
+ s0 = peg$parseAnd();
1936
+ if (s0 === peg$FAILED) {
1937
+ s0 = peg$parseNot();
1938
+ }
1939
+ }
1940
+
1941
+ return s0;
1942
+ }
1943
+
1944
+ function peg$parseSpecialCharacter() {
1945
+ var s0;
1946
+
1947
+ if (peg$c64.test(input.charAt(peg$currPos))) {
1948
+ s0 = input.charAt(peg$currPos);
1949
+ peg$currPos++;
1950
+ } else {
1951
+ s0 = peg$FAILED;
1952
+ if (peg$silentFails === 0) { peg$fail(peg$c65); }
1953
+ }
1954
+
1955
+ return s0;
1956
+ }
1957
+
1958
+ function peg$parseRangeOperator() {
1959
+ var s0, s1;
1960
+
1961
+ s0 = peg$currPos;
1962
+ if (input.substr(peg$currPos, 2) === peg$c66) {
1963
+ s1 = peg$c66;
1964
+ peg$currPos += 2;
1965
+ } else {
1966
+ s1 = peg$FAILED;
1967
+ if (peg$silentFails === 0) { peg$fail(peg$c67); }
1968
+ }
1969
+ if (s1 !== peg$FAILED) {
1970
+ peg$savedPos = s0;
1971
+ s1 = peg$c68();
1972
+ }
1973
+ s0 = s1;
1974
+ if (s0 === peg$FAILED) {
1975
+ s0 = peg$currPos;
1976
+ if (input.substr(peg$currPos, 2) === peg$c69) {
1977
+ s1 = peg$c69;
1978
+ peg$currPos += 2;
1979
+ } else {
1980
+ s1 = peg$FAILED;
1981
+ if (peg$silentFails === 0) { peg$fail(peg$c70); }
1982
+ }
1983
+ if (s1 !== peg$FAILED) {
1984
+ peg$savedPos = s0;
1985
+ s1 = peg$c71();
1986
+ }
1987
+ s0 = s1;
1988
+ if (s0 === peg$FAILED) {
1989
+ s0 = peg$currPos;
1990
+ if (input.charCodeAt(peg$currPos) === 60) {
1991
+ s1 = peg$c72;
1992
+ peg$currPos++;
1993
+ } else {
1994
+ s1 = peg$FAILED;
1995
+ if (peg$silentFails === 0) { peg$fail(peg$c73); }
1996
+ }
1997
+ if (s1 !== peg$FAILED) {
1998
+ peg$savedPos = s0;
1999
+ s1 = peg$c74();
2000
+ }
2001
+ s0 = s1;
2002
+ if (s0 === peg$FAILED) {
2003
+ s0 = peg$currPos;
2004
+ if (input.charCodeAt(peg$currPos) === 62) {
2005
+ s1 = peg$c75;
2006
+ peg$currPos++;
2007
+ } else {
2008
+ s1 = peg$FAILED;
2009
+ if (peg$silentFails === 0) { peg$fail(peg$c76); }
2010
+ }
2011
+ if (s1 !== peg$FAILED) {
2012
+ peg$savedPos = s0;
2013
+ s1 = peg$c77();
2014
+ }
2015
+ s0 = s1;
2016
+ }
2017
+ }
2018
+ }
2019
+
2020
+ return s0;
2021
+ }
2022
+
2023
+ function peg$parseSpace() {
2024
+ var s0, s1;
2025
+
2026
+ peg$silentFails++;
2027
+ if (peg$c79.test(input.charAt(peg$currPos))) {
2028
+ s0 = input.charAt(peg$currPos);
2029
+ peg$currPos++;
2030
+ } else {
2031
+ s0 = peg$FAILED;
2032
+ if (peg$silentFails === 0) { peg$fail(peg$c80); }
2033
+ }
2034
+ peg$silentFails--;
2035
+ if (s0 === peg$FAILED) {
2036
+ s1 = peg$FAILED;
2037
+ if (peg$silentFails === 0) { peg$fail(peg$c78); }
2038
+ }
2039
+
2040
+ return s0;
2041
+ }
2042
+
2043
+ function peg$parseCursor() {
2044
+ var s0, s1, s2;
2045
+
2046
+ s0 = peg$currPos;
2047
+ peg$savedPos = peg$currPos;
2048
+ s1 = peg$c81();
2049
+ if (s1) {
2050
+ s1 = void 0;
2051
+ } else {
2052
+ s1 = peg$FAILED;
2053
+ }
2054
+ if (s1 !== peg$FAILED) {
2055
+ if (input.substr(peg$currPos, 14) === peg$c82) {
2056
+ s2 = peg$c82;
2057
+ peg$currPos += 14;
2058
+ } else {
2059
+ s2 = peg$FAILED;
2060
+ if (peg$silentFails === 0) { peg$fail(peg$c83); }
2061
+ }
2062
+ if (s2 !== peg$FAILED) {
2063
+ peg$savedPos = s0;
2064
+ s1 = peg$c84();
2065
+ s0 = s1;
2066
+ } else {
2067
+ peg$currPos = s0;
2068
+ s0 = peg$FAILED;
2069
+ }
2070
+ } else {
2071
+ peg$currPos = s0;
2072
+ s0 = peg$FAILED;
2073
+ }
2074
+
2075
+ return s0;
2076
+ }
2077
+
2078
+ function peg$parseLuceneOr() {
2079
+ var s0, s1, s2, s3, s4;
2080
+
2081
+ s0 = peg$currPos;
2082
+ s1 = [];
2083
+ s2 = peg$parseSpace();
2084
+ while (s2 !== peg$FAILED) {
2085
+ s1.push(s2);
2086
+ s2 = peg$parseSpace();
2087
+ }
2088
+ if (s1 !== peg$FAILED) {
2089
+ if (input.substr(peg$currPos, 2) === peg$c85) {
2090
+ s2 = peg$c85;
2091
+ peg$currPos += 2;
2092
+ } else {
2093
+ s2 = peg$FAILED;
2094
+ if (peg$silentFails === 0) { peg$fail(peg$c86); }
2095
+ }
2096
+ if (s2 !== peg$FAILED) {
2097
+ s3 = [];
2098
+ s4 = peg$parseSpace();
2099
+ while (s4 !== peg$FAILED) {
2100
+ s3.push(s4);
2101
+ s4 = peg$parseSpace();
2102
+ }
2103
+ if (s3 !== peg$FAILED) {
2104
+ peg$savedPos = s0;
2105
+ s1 = peg$c87();
2106
+ s0 = s1;
2107
+ } else {
2108
+ peg$currPos = s0;
2109
+ s0 = peg$FAILED;
2110
+ }
2111
+ } else {
2112
+ peg$currPos = s0;
2113
+ s0 = peg$FAILED;
2114
+ }
2115
+ } else {
2116
+ peg$currPos = s0;
2117
+ s0 = peg$FAILED;
2118
+ }
2119
+
2120
+ return s0;
2121
+ }
2122
+
2123
+ function peg$parseLuceneAnd() {
2124
+ var s0, s1, s2, s3, s4;
2125
+
2126
+ s0 = peg$currPos;
2127
+ s1 = [];
2128
+ s2 = peg$parseSpace();
2129
+ while (s2 !== peg$FAILED) {
2130
+ s1.push(s2);
2131
+ s2 = peg$parseSpace();
2132
+ }
2133
+ if (s1 !== peg$FAILED) {
2134
+ if (input.substr(peg$currPos, 2) === peg$c88) {
2135
+ s2 = peg$c88;
2136
+ peg$currPos += 2;
2137
+ } else {
2138
+ s2 = peg$FAILED;
2139
+ if (peg$silentFails === 0) { peg$fail(peg$c89); }
2140
+ }
2141
+ if (s2 !== peg$FAILED) {
2142
+ s3 = [];
2143
+ s4 = peg$parseSpace();
2144
+ while (s4 !== peg$FAILED) {
2145
+ s3.push(s4);
2146
+ s4 = peg$parseSpace();
2147
+ }
2148
+ if (s3 !== peg$FAILED) {
2149
+ peg$savedPos = s0;
2150
+ s1 = peg$c90();
2151
+ s0 = s1;
2152
+ } else {
2153
+ peg$currPos = s0;
2154
+ s0 = peg$FAILED;
2155
+ }
2156
+ } else {
2157
+ peg$currPos = s0;
2158
+ s0 = peg$FAILED;
2159
+ }
2160
+ } else {
2161
+ peg$currPos = s0;
2162
+ s0 = peg$FAILED;
2163
+ }
2164
+ if (s0 === peg$FAILED) {
2165
+ s0 = peg$currPos;
2166
+ if (input.charCodeAt(peg$currPos) === 43) {
2167
+ s1 = peg$c91;
2168
+ peg$currPos++;
2169
+ } else {
2170
+ s1 = peg$FAILED;
2171
+ if (peg$silentFails === 0) { peg$fail(peg$c92); }
2172
+ }
2173
+ if (s1 !== peg$FAILED) {
2174
+ peg$savedPos = s0;
2175
+ s1 = peg$c90();
2176
+ }
2177
+ s0 = s1;
2178
+ }
2179
+
2180
+ return s0;
2181
+ }
2182
+
2183
+ function peg$parseLuceneNot() {
2184
+ var s0, s1;
2185
+
2186
+ s0 = peg$currPos;
2187
+ if (input.charCodeAt(peg$currPos) === 45) {
2188
+ s1 = peg$c93;
2189
+ peg$currPos++;
2190
+ } else {
2191
+ s1 = peg$FAILED;
2192
+ if (peg$silentFails === 0) { peg$fail(peg$c94); }
2193
+ }
2194
+ if (s1 !== peg$FAILED) {
2195
+ peg$savedPos = s0;
2196
+ s1 = peg$c95();
2197
+ }
2198
+ s0 = s1;
2199
+ if (s0 === peg$FAILED) {
2200
+ s0 = peg$currPos;
2201
+ if (input.charCodeAt(peg$currPos) === 33) {
2202
+ s1 = peg$c96;
2203
+ peg$currPos++;
2204
+ } else {
2205
+ s1 = peg$FAILED;
2206
+ if (peg$silentFails === 0) { peg$fail(peg$c97); }
2207
+ }
2208
+ if (s1 !== peg$FAILED) {
2209
+ peg$savedPos = s0;
2210
+ s1 = peg$c95();
2211
+ }
2212
+ s0 = s1;
2213
+ }
2214
+
2215
+ return s0;
2216
+ }
2217
+
2218
+ function peg$parseLuceneQuery() {
2219
+ var s0;
2220
+
2221
+ s0 = peg$parseLuceneFieldQuery();
2222
+ if (s0 === peg$FAILED) {
2223
+ s0 = peg$parseLuceneValue();
2224
+ if (s0 === peg$FAILED) {
2225
+ s0 = peg$parseLuceneExists();
2226
+ }
2227
+ }
2228
+
2229
+ return s0;
2230
+ }
2231
+
2232
+ function peg$parseLuceneFieldQuery() {
2233
+ var s0, s1, s2, s3, s4, s5;
2234
+
2235
+ s0 = peg$currPos;
2236
+ s1 = peg$parseLuceneLiteral();
2237
+ if (s1 !== peg$FAILED) {
2238
+ s2 = [];
2239
+ s3 = peg$parseSpace();
2240
+ while (s3 !== peg$FAILED) {
2241
+ s2.push(s3);
2242
+ s3 = peg$parseSpace();
2243
+ }
2244
+ if (s2 !== peg$FAILED) {
2245
+ if (input.charCodeAt(peg$currPos) === 58) {
2246
+ s3 = peg$c10;
2247
+ peg$currPos++;
2248
+ } else {
2249
+ s3 = peg$FAILED;
2250
+ if (peg$silentFails === 0) { peg$fail(peg$c11); }
2251
+ }
2252
+ if (s3 !== peg$FAILED) {
2253
+ s4 = [];
2254
+ s5 = peg$parseSpace();
2255
+ while (s5 !== peg$FAILED) {
2256
+ s4.push(s5);
2257
+ s5 = peg$parseSpace();
2258
+ }
2259
+ if (s4 !== peg$FAILED) {
2260
+ s5 = peg$parseLuceneValue();
2261
+ if (s5 !== peg$FAILED) {
2262
+ s1 = [s1, s2, s3, s4, s5];
2263
+ s0 = s1;
2264
+ } else {
2265
+ peg$currPos = s0;
2266
+ s0 = peg$FAILED;
2267
+ }
2268
+ } else {
2269
+ peg$currPos = s0;
2270
+ s0 = peg$FAILED;
2271
+ }
2272
+ } else {
2273
+ peg$currPos = s0;
2274
+ s0 = peg$FAILED;
2275
+ }
2276
+ } else {
2277
+ peg$currPos = s0;
2278
+ s0 = peg$FAILED;
2279
+ }
2280
+ } else {
2281
+ peg$currPos = s0;
2282
+ s0 = peg$FAILED;
2283
+ }
2284
+
2285
+ return s0;
2286
+ }
2287
+
2288
+ function peg$parseLuceneValue() {
2289
+ var s0;
2290
+
2291
+ s0 = peg$parseLuceneRange();
2292
+ if (s0 === peg$FAILED) {
2293
+ s0 = peg$parseLuceneWildcard();
2294
+ if (s0 === peg$FAILED) {
2295
+ s0 = peg$parseLuceneRegex();
2296
+ if (s0 === peg$FAILED) {
2297
+ s0 = peg$parseLuceneFuzzy();
2298
+ if (s0 === peg$FAILED) {
2299
+ s0 = peg$parseLuceneProximity();
2300
+ if (s0 === peg$FAILED) {
2301
+ s0 = peg$parseLuceneBoost();
2302
+ }
2303
+ }
2304
+ }
2305
+ }
2306
+ }
2307
+
2308
+ return s0;
2309
+ }
2310
+
2311
+ function peg$parseLuceneExists() {
2312
+ var s0, s1, s2, s3, s4, s5;
2313
+
2314
+ s0 = peg$currPos;
2315
+ if (input.substr(peg$currPos, 8) === peg$c98) {
2316
+ s1 = peg$c98;
2317
+ peg$currPos += 8;
2318
+ } else {
2319
+ s1 = peg$FAILED;
2320
+ if (peg$silentFails === 0) { peg$fail(peg$c99); }
2321
+ }
2322
+ if (s1 !== peg$FAILED) {
2323
+ s2 = [];
2324
+ s3 = peg$parseSpace();
2325
+ while (s3 !== peg$FAILED) {
2326
+ s2.push(s3);
2327
+ s3 = peg$parseSpace();
2328
+ }
2329
+ if (s2 !== peg$FAILED) {
2330
+ if (input.charCodeAt(peg$currPos) === 58) {
2331
+ s3 = peg$c10;
2332
+ peg$currPos++;
2333
+ } else {
2334
+ s3 = peg$FAILED;
2335
+ if (peg$silentFails === 0) { peg$fail(peg$c11); }
2336
+ }
2337
+ if (s3 !== peg$FAILED) {
2338
+ s4 = [];
2339
+ s5 = peg$parseSpace();
2340
+ while (s5 !== peg$FAILED) {
2341
+ s4.push(s5);
2342
+ s5 = peg$parseSpace();
2343
+ }
2344
+ if (s4 !== peg$FAILED) {
2345
+ s5 = peg$parseLuceneLiteral();
2346
+ if (s5 !== peg$FAILED) {
2347
+ peg$savedPos = s0;
2348
+ s1 = peg$c100();
2349
+ s0 = s1;
2350
+ } else {
2351
+ peg$currPos = s0;
2352
+ s0 = peg$FAILED;
2353
+ }
2354
+ } else {
2355
+ peg$currPos = s0;
2356
+ s0 = peg$FAILED;
2357
+ }
2358
+ } else {
2359
+ peg$currPos = s0;
2360
+ s0 = peg$FAILED;
2361
+ }
2362
+ } else {
2363
+ peg$currPos = s0;
2364
+ s0 = peg$FAILED;
2365
+ }
2366
+ } else {
2367
+ peg$currPos = s0;
2368
+ s0 = peg$FAILED;
2369
+ }
2370
+
2371
+ return s0;
2372
+ }
2373
+
2374
+ function peg$parseLuceneRange() {
2375
+ var s0, s1, s2, s3, s4, s5, s6;
2376
+
2377
+ s0 = peg$currPos;
2378
+ s1 = peg$parseRangeOperator();
2379
+ if (s1 !== peg$FAILED) {
2380
+ s2 = [];
2381
+ s3 = peg$parseSpace();
2382
+ while (s3 !== peg$FAILED) {
2383
+ s2.push(s3);
2384
+ s3 = peg$parseSpace();
2385
+ }
2386
+ if (s2 !== peg$FAILED) {
2387
+ s3 = peg$parseLuceneLiteral();
2388
+ if (s3 !== peg$FAILED) {
2389
+ peg$savedPos = s0;
2390
+ s1 = peg$c101();
2391
+ s0 = s1;
2392
+ } else {
2393
+ peg$currPos = s0;
2394
+ s0 = peg$FAILED;
2395
+ }
2396
+ } else {
2397
+ peg$currPos = s0;
2398
+ s0 = peg$FAILED;
2399
+ }
2400
+ } else {
2401
+ peg$currPos = s0;
2402
+ s0 = peg$FAILED;
2403
+ }
2404
+ if (s0 === peg$FAILED) {
2405
+ s0 = peg$currPos;
2406
+ s1 = peg$parseLuceneRangeStart();
2407
+ if (s1 !== peg$FAILED) {
2408
+ s2 = [];
2409
+ s3 = peg$parseSpace();
2410
+ while (s3 !== peg$FAILED) {
2411
+ s2.push(s3);
2412
+ s3 = peg$parseSpace();
2413
+ }
2414
+ if (s2 !== peg$FAILED) {
2415
+ s3 = peg$parseLuceneLiteral();
2416
+ if (s3 !== peg$FAILED) {
2417
+ s4 = peg$parseLuceneTo();
2418
+ if (s4 !== peg$FAILED) {
2419
+ s5 = peg$parseLuceneLiteral();
2420
+ if (s5 !== peg$FAILED) {
2421
+ s6 = peg$parseLuceneRangeEnd();
2422
+ if (s6 !== peg$FAILED) {
2423
+ peg$savedPos = s0;
2424
+ s1 = peg$c101();
2425
+ s0 = s1;
2426
+ } else {
2427
+ peg$currPos = s0;
2428
+ s0 = peg$FAILED;
2429
+ }
2430
+ } else {
2431
+ peg$currPos = s0;
2432
+ s0 = peg$FAILED;
2433
+ }
2434
+ } else {
2435
+ peg$currPos = s0;
2436
+ s0 = peg$FAILED;
2437
+ }
2438
+ } else {
2439
+ peg$currPos = s0;
2440
+ s0 = peg$FAILED;
2441
+ }
2442
+ } else {
2443
+ peg$currPos = s0;
2444
+ s0 = peg$FAILED;
2445
+ }
2446
+ } else {
2447
+ peg$currPos = s0;
2448
+ s0 = peg$FAILED;
2449
+ }
2450
+ }
2451
+
2452
+ return s0;
2453
+ }
2454
+
2455
+ function peg$parseLuceneWildcard() {
2456
+ var s0, s1, s2, s3, s4;
2457
+
2458
+ s0 = peg$currPos;
2459
+ s1 = [];
2460
+ s2 = peg$parseLuceneUnquotedCharacter();
2461
+ if (s2 === peg$FAILED) {
2462
+ if (input.charCodeAt(peg$currPos) === 42) {
2463
+ s2 = peg$c51;
2464
+ peg$currPos++;
2465
+ } else {
2466
+ s2 = peg$FAILED;
2467
+ if (peg$silentFails === 0) { peg$fail(peg$c52); }
2468
+ }
2469
+ }
2470
+ while (s2 !== peg$FAILED) {
2471
+ s1.push(s2);
2472
+ s2 = peg$parseLuceneUnquotedCharacter();
2473
+ if (s2 === peg$FAILED) {
2474
+ if (input.charCodeAt(peg$currPos) === 42) {
2475
+ s2 = peg$c51;
2476
+ peg$currPos++;
2477
+ } else {
2478
+ s2 = peg$FAILED;
2479
+ if (peg$silentFails === 0) { peg$fail(peg$c52); }
2480
+ }
2481
+ }
2482
+ }
2483
+ if (s1 !== peg$FAILED) {
2484
+ if (input.charCodeAt(peg$currPos) === 63) {
2485
+ s2 = peg$c102;
2486
+ peg$currPos++;
2487
+ } else {
2488
+ s2 = peg$FAILED;
2489
+ if (peg$silentFails === 0) { peg$fail(peg$c103); }
2490
+ }
2491
+ if (s2 !== peg$FAILED) {
2492
+ s3 = [];
2493
+ s4 = peg$parseLuceneWildcard();
2494
+ while (s4 !== peg$FAILED) {
2495
+ s3.push(s4);
2496
+ s4 = peg$parseLuceneWildcard();
2497
+ }
2498
+ if (s3 !== peg$FAILED) {
2499
+ peg$savedPos = s0;
2500
+ s1 = peg$c104();
2501
+ s0 = s1;
2502
+ } else {
2503
+ peg$currPos = s0;
2504
+ s0 = peg$FAILED;
2505
+ }
2506
+ } else {
2507
+ peg$currPos = s0;
2508
+ s0 = peg$FAILED;
2509
+ }
2510
+ } else {
2511
+ peg$currPos = s0;
2512
+ s0 = peg$FAILED;
2513
+ }
2514
+
2515
+ return s0;
2516
+ }
2517
+
2518
+ function peg$parseLuceneRegex() {
2519
+ var s0, s1, s2, s3;
2520
+
2521
+ s0 = peg$currPos;
2522
+ if (input.charCodeAt(peg$currPos) === 47) {
2523
+ s1 = peg$c105;
2524
+ peg$currPos++;
2525
+ } else {
2526
+ s1 = peg$FAILED;
2527
+ if (peg$silentFails === 0) { peg$fail(peg$c106); }
2528
+ }
2529
+ if (s1 !== peg$FAILED) {
2530
+ s2 = [];
2531
+ if (peg$c107.test(input.charAt(peg$currPos))) {
2532
+ s3 = input.charAt(peg$currPos);
2533
+ peg$currPos++;
2534
+ } else {
2535
+ s3 = peg$FAILED;
2536
+ if (peg$silentFails === 0) { peg$fail(peg$c108); }
2537
+ }
2538
+ while (s3 !== peg$FAILED) {
2539
+ s2.push(s3);
2540
+ if (peg$c107.test(input.charAt(peg$currPos))) {
2541
+ s3 = input.charAt(peg$currPos);
2542
+ peg$currPos++;
2543
+ } else {
2544
+ s3 = peg$FAILED;
2545
+ if (peg$silentFails === 0) { peg$fail(peg$c108); }
2546
+ }
2547
+ }
2548
+ if (s2 !== peg$FAILED) {
2549
+ if (input.charCodeAt(peg$currPos) === 47) {
2550
+ s3 = peg$c105;
2551
+ peg$currPos++;
2552
+ } else {
2553
+ s3 = peg$FAILED;
2554
+ if (peg$silentFails === 0) { peg$fail(peg$c106); }
2555
+ }
2556
+ if (s3 !== peg$FAILED) {
2557
+ peg$savedPos = s0;
2558
+ s1 = peg$c109();
2559
+ s0 = s1;
2560
+ } else {
2561
+ peg$currPos = s0;
2562
+ s0 = peg$FAILED;
2563
+ }
2564
+ } else {
2565
+ peg$currPos = s0;
2566
+ s0 = peg$FAILED;
2567
+ }
2568
+ } else {
2569
+ peg$currPos = s0;
2570
+ s0 = peg$FAILED;
2571
+ }
2572
+
2573
+ return s0;
2574
+ }
2575
+
2576
+ function peg$parseLuceneFuzzy() {
2577
+ var s0, s1, s2, s3, s4;
2578
+
2579
+ s0 = peg$currPos;
2580
+ s1 = peg$parseLuceneUnquotedLiteral();
2581
+ if (s1 !== peg$FAILED) {
2582
+ if (input.charCodeAt(peg$currPos) === 126) {
2583
+ s2 = peg$c110;
2584
+ peg$currPos++;
2585
+ } else {
2586
+ s2 = peg$FAILED;
2587
+ if (peg$silentFails === 0) { peg$fail(peg$c111); }
2588
+ }
2589
+ if (s2 !== peg$FAILED) {
2590
+ s3 = [];
2591
+ if (peg$c112.test(input.charAt(peg$currPos))) {
2592
+ s4 = input.charAt(peg$currPos);
2593
+ peg$currPos++;
2594
+ } else {
2595
+ s4 = peg$FAILED;
2596
+ if (peg$silentFails === 0) { peg$fail(peg$c113); }
2597
+ }
2598
+ while (s4 !== peg$FAILED) {
2599
+ s3.push(s4);
2600
+ if (peg$c112.test(input.charAt(peg$currPos))) {
2601
+ s4 = input.charAt(peg$currPos);
2602
+ peg$currPos++;
2603
+ } else {
2604
+ s4 = peg$FAILED;
2605
+ if (peg$silentFails === 0) { peg$fail(peg$c113); }
2606
+ }
2607
+ }
2608
+ if (s3 !== peg$FAILED) {
2609
+ peg$savedPos = s0;
2610
+ s1 = peg$c114();
2611
+ s0 = s1;
2612
+ } else {
2613
+ peg$currPos = s0;
2614
+ s0 = peg$FAILED;
2615
+ }
2616
+ } else {
2617
+ peg$currPos = s0;
2618
+ s0 = peg$FAILED;
2619
+ }
2620
+ } else {
2621
+ peg$currPos = s0;
2622
+ s0 = peg$FAILED;
2623
+ }
2624
+
2625
+ return s0;
2626
+ }
2627
+
2628
+ function peg$parseLuceneProximity() {
2629
+ var s0, s1, s2, s3, s4;
2630
+
2631
+ s0 = peg$currPos;
2632
+ s1 = peg$parseQuotedString();
2633
+ if (s1 !== peg$FAILED) {
2634
+ if (input.charCodeAt(peg$currPos) === 126) {
2635
+ s2 = peg$c110;
2636
+ peg$currPos++;
2637
+ } else {
2638
+ s2 = peg$FAILED;
2639
+ if (peg$silentFails === 0) { peg$fail(peg$c111); }
2640
+ }
2641
+ if (s2 !== peg$FAILED) {
2642
+ s3 = [];
2643
+ if (peg$c112.test(input.charAt(peg$currPos))) {
2644
+ s4 = input.charAt(peg$currPos);
2645
+ peg$currPos++;
2646
+ } else {
2647
+ s4 = peg$FAILED;
2648
+ if (peg$silentFails === 0) { peg$fail(peg$c113); }
2649
+ }
2650
+ while (s4 !== peg$FAILED) {
2651
+ s3.push(s4);
2652
+ if (peg$c112.test(input.charAt(peg$currPos))) {
2653
+ s4 = input.charAt(peg$currPos);
2654
+ peg$currPos++;
2655
+ } else {
2656
+ s4 = peg$FAILED;
2657
+ if (peg$silentFails === 0) { peg$fail(peg$c113); }
2658
+ }
2659
+ }
2660
+ if (s3 !== peg$FAILED) {
2661
+ peg$savedPos = s0;
2662
+ s1 = peg$c115();
2663
+ s0 = s1;
2664
+ } else {
2665
+ peg$currPos = s0;
2666
+ s0 = peg$FAILED;
2667
+ }
2668
+ } else {
2669
+ peg$currPos = s0;
2670
+ s0 = peg$FAILED;
2671
+ }
2672
+ } else {
2673
+ peg$currPos = s0;
2674
+ s0 = peg$FAILED;
2675
+ }
2676
+
2677
+ return s0;
2678
+ }
2679
+
2680
+ function peg$parseLuceneBoost() {
2681
+ var s0, s1, s2, s3, s4;
2682
+
2683
+ s0 = peg$currPos;
2684
+ s1 = peg$parseLuceneLiteral();
2685
+ if (s1 !== peg$FAILED) {
2686
+ if (input.charCodeAt(peg$currPos) === 94) {
2687
+ s2 = peg$c116;
2688
+ peg$currPos++;
2689
+ } else {
2690
+ s2 = peg$FAILED;
2691
+ if (peg$silentFails === 0) { peg$fail(peg$c117); }
2692
+ }
2693
+ if (s2 !== peg$FAILED) {
2694
+ s3 = [];
2695
+ if (peg$c112.test(input.charAt(peg$currPos))) {
2696
+ s4 = input.charAt(peg$currPos);
2697
+ peg$currPos++;
2698
+ } else {
2699
+ s4 = peg$FAILED;
2700
+ if (peg$silentFails === 0) { peg$fail(peg$c113); }
2701
+ }
2702
+ while (s4 !== peg$FAILED) {
2703
+ s3.push(s4);
2704
+ if (peg$c112.test(input.charAt(peg$currPos))) {
2705
+ s4 = input.charAt(peg$currPos);
2706
+ peg$currPos++;
2707
+ } else {
2708
+ s4 = peg$FAILED;
2709
+ if (peg$silentFails === 0) { peg$fail(peg$c113); }
2710
+ }
2711
+ }
2712
+ if (s3 !== peg$FAILED) {
2713
+ peg$savedPos = s0;
2714
+ s1 = peg$c118();
2715
+ s0 = s1;
2716
+ } else {
2717
+ peg$currPos = s0;
2718
+ s0 = peg$FAILED;
2719
+ }
2720
+ } else {
2721
+ peg$currPos = s0;
2722
+ s0 = peg$FAILED;
2723
+ }
2724
+ } else {
2725
+ peg$currPos = s0;
2726
+ s0 = peg$FAILED;
2727
+ }
2728
+
2729
+ return s0;
2730
+ }
2731
+
2732
+ function peg$parseLuceneLiteral() {
2733
+ var s0;
2734
+
2735
+ s0 = peg$parseQuotedString();
2736
+ if (s0 === peg$FAILED) {
2737
+ s0 = peg$parseLuceneUnquotedLiteral();
2738
+ }
2739
+
2740
+ return s0;
2741
+ }
2742
+
2743
+ function peg$parseLuceneUnquotedLiteral() {
2744
+ var s0, s1;
2745
+
2746
+ s0 = [];
2747
+ s1 = peg$parseLuceneUnquotedCharacter();
2748
+ if (s1 !== peg$FAILED) {
2749
+ while (s1 !== peg$FAILED) {
2750
+ s0.push(s1);
2751
+ s1 = peg$parseLuceneUnquotedCharacter();
2752
+ }
2753
+ } else {
2754
+ s0 = peg$FAILED;
2755
+ }
2756
+
2757
+ return s0;
2758
+ }
2759
+
2760
+ function peg$parseLuceneUnquotedCharacter() {
2761
+ var s0, s1, s2, s3;
2762
+
2763
+ s0 = peg$parseEscapedWhitespace();
2764
+ if (s0 === peg$FAILED) {
2765
+ s0 = peg$parseEscapedLuceneSpecialCharacter();
2766
+ if (s0 === peg$FAILED) {
2767
+ s0 = peg$currPos;
2768
+ s1 = peg$currPos;
2769
+ peg$silentFails++;
2770
+ s2 = peg$parseLuceneSpecialCharacter();
2771
+ peg$silentFails--;
2772
+ if (s2 === peg$FAILED) {
2773
+ s1 = void 0;
2774
+ } else {
2775
+ peg$currPos = s1;
2776
+ s1 = peg$FAILED;
2777
+ }
2778
+ if (s1 !== peg$FAILED) {
2779
+ s2 = peg$currPos;
2780
+ peg$silentFails++;
2781
+ s3 = peg$parseLuceneKeyword();
2782
+ peg$silentFails--;
2783
+ if (s3 === peg$FAILED) {
2784
+ s2 = void 0;
2785
+ } else {
2786
+ peg$currPos = s2;
2787
+ s2 = peg$FAILED;
2788
+ }
2789
+ if (s2 !== peg$FAILED) {
2790
+ if (input.length > peg$currPos) {
2791
+ s3 = input.charAt(peg$currPos);
2792
+ peg$currPos++;
2793
+ } else {
2794
+ s3 = peg$FAILED;
2795
+ if (peg$silentFails === 0) { peg$fail(peg$c50); }
2796
+ }
2797
+ if (s3 !== peg$FAILED) {
2798
+ s1 = [s1, s2, s3];
2799
+ s0 = s1;
2800
+ } else {
2801
+ peg$currPos = s0;
2802
+ s0 = peg$FAILED;
2803
+ }
2804
+ } else {
2805
+ peg$currPos = s0;
2806
+ s0 = peg$FAILED;
2807
+ }
2808
+ } else {
2809
+ peg$currPos = s0;
2810
+ s0 = peg$FAILED;
2811
+ }
2812
+ }
2813
+ }
2814
+
2815
+ return s0;
2816
+ }
2817
+
2818
+ function peg$parseLuceneKeyword() {
2819
+ var s0;
2820
+
2821
+ s0 = peg$parseOr();
2822
+ if (s0 === peg$FAILED) {
2823
+ s0 = peg$parseAnd();
2824
+ if (s0 === peg$FAILED) {
2825
+ s0 = peg$parseLuceneOr();
2826
+ if (s0 === peg$FAILED) {
2827
+ s0 = peg$parseLuceneAnd();
2828
+ if (s0 === peg$FAILED) {
2829
+ s0 = peg$parseLuceneNot();
2830
+ if (s0 === peg$FAILED) {
2831
+ s0 = peg$parseLuceneTo();
2832
+ }
2833
+ }
2834
+ }
2835
+ }
2836
+ }
2837
+
2838
+ return s0;
2839
+ }
2840
+
2841
+ function peg$parseEscapedLuceneSpecialCharacter() {
2842
+ var s0, s1, s2;
2843
+
2844
+ s0 = peg$currPos;
2845
+ if (input.charCodeAt(peg$currPos) === 92) {
2846
+ s1 = peg$c42;
2847
+ peg$currPos++;
2848
+ } else {
2849
+ s1 = peg$FAILED;
2850
+ if (peg$silentFails === 0) { peg$fail(peg$c43); }
2851
+ }
2852
+ if (s1 !== peg$FAILED) {
2853
+ s2 = peg$parseLuceneSpecialCharacter();
2854
+ if (s2 !== peg$FAILED) {
2855
+ peg$savedPos = s0;
2856
+ s1 = peg$c119();
2857
+ s0 = s1;
2858
+ } else {
2859
+ peg$currPos = s0;
2860
+ s0 = peg$FAILED;
2861
+ }
2862
+ } else {
2863
+ peg$currPos = s0;
2864
+ s0 = peg$FAILED;
2865
+ }
2866
+
2867
+ return s0;
2868
+ }
2869
+
2870
+ function peg$parseLuceneSpecialCharacter() {
2871
+ var s0;
2872
+
2873
+ if (input.charCodeAt(peg$currPos) === 43) {
2874
+ s0 = peg$c91;
2875
+ peg$currPos++;
2876
+ } else {
2877
+ s0 = peg$FAILED;
2878
+ if (peg$silentFails === 0) { peg$fail(peg$c92); }
2879
+ }
2880
+ if (s0 === peg$FAILED) {
2881
+ if (input.charCodeAt(peg$currPos) === 45) {
2882
+ s0 = peg$c93;
2883
+ peg$currPos++;
2884
+ } else {
2885
+ s0 = peg$FAILED;
2886
+ if (peg$silentFails === 0) { peg$fail(peg$c94); }
2887
+ }
2888
+ if (s0 === peg$FAILED) {
2889
+ if (input.charCodeAt(peg$currPos) === 61) {
2890
+ s0 = peg$c120;
2891
+ peg$currPos++;
2892
+ } else {
2893
+ s0 = peg$FAILED;
2894
+ if (peg$silentFails === 0) { peg$fail(peg$c121); }
2895
+ }
2896
+ if (s0 === peg$FAILED) {
2897
+ if (input.charCodeAt(peg$currPos) === 62) {
2898
+ s0 = peg$c75;
2899
+ peg$currPos++;
2900
+ } else {
2901
+ s0 = peg$FAILED;
2902
+ if (peg$silentFails === 0) { peg$fail(peg$c76); }
2903
+ }
2904
+ if (s0 === peg$FAILED) {
2905
+ if (input.charCodeAt(peg$currPos) === 60) {
2906
+ s0 = peg$c72;
2907
+ peg$currPos++;
2908
+ } else {
2909
+ s0 = peg$FAILED;
2910
+ if (peg$silentFails === 0) { peg$fail(peg$c73); }
2911
+ }
2912
+ if (s0 === peg$FAILED) {
2913
+ if (input.charCodeAt(peg$currPos) === 33) {
2914
+ s0 = peg$c96;
2915
+ peg$currPos++;
2916
+ } else {
2917
+ s0 = peg$FAILED;
2918
+ if (peg$silentFails === 0) { peg$fail(peg$c97); }
2919
+ }
2920
+ if (s0 === peg$FAILED) {
2921
+ if (input.charCodeAt(peg$currPos) === 40) {
2922
+ s0 = peg$c5;
2923
+ peg$currPos++;
2924
+ } else {
2925
+ s0 = peg$FAILED;
2926
+ if (peg$silentFails === 0) { peg$fail(peg$c6); }
2927
+ }
2928
+ if (s0 === peg$FAILED) {
2929
+ if (input.charCodeAt(peg$currPos) === 41) {
2930
+ s0 = peg$c7;
2931
+ peg$currPos++;
2932
+ } else {
2933
+ s0 = peg$FAILED;
2934
+ if (peg$silentFails === 0) { peg$fail(peg$c8); }
2935
+ }
2936
+ if (s0 === peg$FAILED) {
2937
+ if (input.charCodeAt(peg$currPos) === 123) {
2938
+ s0 = peg$c12;
2939
+ peg$currPos++;
2940
+ } else {
2941
+ s0 = peg$FAILED;
2942
+ if (peg$silentFails === 0) { peg$fail(peg$c13); }
2943
+ }
2944
+ if (s0 === peg$FAILED) {
2945
+ if (input.charCodeAt(peg$currPos) === 125) {
2946
+ s0 = peg$c14;
2947
+ peg$currPos++;
2948
+ } else {
2949
+ s0 = peg$FAILED;
2950
+ if (peg$silentFails === 0) { peg$fail(peg$c15); }
2951
+ }
2952
+ if (s0 === peg$FAILED) {
2953
+ if (input.charCodeAt(peg$currPos) === 91) {
2954
+ s0 = peg$c122;
2955
+ peg$currPos++;
2956
+ } else {
2957
+ s0 = peg$FAILED;
2958
+ if (peg$silentFails === 0) { peg$fail(peg$c123); }
2959
+ }
2960
+ if (s0 === peg$FAILED) {
2961
+ if (input.charCodeAt(peg$currPos) === 93) {
2962
+ s0 = peg$c124;
2963
+ peg$currPos++;
2964
+ } else {
2965
+ s0 = peg$FAILED;
2966
+ if (peg$silentFails === 0) { peg$fail(peg$c125); }
2967
+ }
2968
+ if (s0 === peg$FAILED) {
2969
+ if (input.charCodeAt(peg$currPos) === 94) {
2970
+ s0 = peg$c116;
2971
+ peg$currPos++;
2972
+ } else {
2973
+ s0 = peg$FAILED;
2974
+ if (peg$silentFails === 0) { peg$fail(peg$c117); }
2975
+ }
2976
+ if (s0 === peg$FAILED) {
2977
+ if (input.charCodeAt(peg$currPos) === 34) {
2978
+ s0 = peg$c38;
2979
+ peg$currPos++;
2980
+ } else {
2981
+ s0 = peg$FAILED;
2982
+ if (peg$silentFails === 0) { peg$fail(peg$c39); }
2983
+ }
2984
+ if (s0 === peg$FAILED) {
2985
+ if (input.charCodeAt(peg$currPos) === 126) {
2986
+ s0 = peg$c110;
2987
+ peg$currPos++;
2988
+ } else {
2989
+ s0 = peg$FAILED;
2990
+ if (peg$silentFails === 0) { peg$fail(peg$c111); }
2991
+ }
2992
+ if (s0 === peg$FAILED) {
2993
+ if (input.charCodeAt(peg$currPos) === 42) {
2994
+ s0 = peg$c51;
2995
+ peg$currPos++;
2996
+ } else {
2997
+ s0 = peg$FAILED;
2998
+ if (peg$silentFails === 0) { peg$fail(peg$c52); }
2999
+ }
3000
+ if (s0 === peg$FAILED) {
3001
+ if (input.charCodeAt(peg$currPos) === 63) {
3002
+ s0 = peg$c102;
3003
+ peg$currPos++;
3004
+ } else {
3005
+ s0 = peg$FAILED;
3006
+ if (peg$silentFails === 0) { peg$fail(peg$c103); }
3007
+ }
3008
+ if (s0 === peg$FAILED) {
3009
+ if (input.charCodeAt(peg$currPos) === 58) {
3010
+ s0 = peg$c10;
3011
+ peg$currPos++;
3012
+ } else {
3013
+ s0 = peg$FAILED;
3014
+ if (peg$silentFails === 0) { peg$fail(peg$c11); }
3015
+ }
3016
+ if (s0 === peg$FAILED) {
3017
+ if (input.charCodeAt(peg$currPos) === 92) {
3018
+ s0 = peg$c42;
3019
+ peg$currPos++;
3020
+ } else {
3021
+ s0 = peg$FAILED;
3022
+ if (peg$silentFails === 0) { peg$fail(peg$c43); }
3023
+ }
3024
+ if (s0 === peg$FAILED) {
3025
+ if (input.charCodeAt(peg$currPos) === 47) {
3026
+ s0 = peg$c105;
3027
+ peg$currPos++;
3028
+ } else {
3029
+ s0 = peg$FAILED;
3030
+ if (peg$silentFails === 0) { peg$fail(peg$c106); }
3031
+ }
3032
+ }
3033
+ }
3034
+ }
3035
+ }
3036
+ }
3037
+ }
3038
+ }
3039
+ }
3040
+ }
3041
+ }
3042
+ }
3043
+ }
3044
+ }
3045
+ }
3046
+ }
3047
+ }
3048
+ }
3049
+ }
3050
+ }
3051
+
3052
+ return s0;
3053
+ }
3054
+
3055
+ function peg$parseLuceneTo() {
3056
+ var s0, s1, s2, s3, s4;
3057
+
3058
+ s0 = peg$currPos;
3059
+ s1 = [];
3060
+ s2 = peg$parseSpace();
3061
+ if (s2 !== peg$FAILED) {
3062
+ while (s2 !== peg$FAILED) {
3063
+ s1.push(s2);
3064
+ s2 = peg$parseSpace();
3065
+ }
3066
+ } else {
3067
+ s1 = peg$FAILED;
3068
+ }
3069
+ if (s1 !== peg$FAILED) {
3070
+ if (input.substr(peg$currPos, 2) === peg$c126) {
3071
+ s2 = peg$c126;
3072
+ peg$currPos += 2;
3073
+ } else {
3074
+ s2 = peg$FAILED;
3075
+ if (peg$silentFails === 0) { peg$fail(peg$c127); }
3076
+ }
3077
+ if (s2 !== peg$FAILED) {
3078
+ s3 = [];
3079
+ s4 = peg$parseSpace();
3080
+ if (s4 !== peg$FAILED) {
3081
+ while (s4 !== peg$FAILED) {
3082
+ s3.push(s4);
3083
+ s4 = peg$parseSpace();
3084
+ }
3085
+ } else {
3086
+ s3 = peg$FAILED;
3087
+ }
3088
+ if (s3 !== peg$FAILED) {
3089
+ s1 = [s1, s2, s3];
3090
+ s0 = s1;
3091
+ } else {
3092
+ peg$currPos = s0;
3093
+ s0 = peg$FAILED;
3094
+ }
3095
+ } else {
3096
+ peg$currPos = s0;
3097
+ s0 = peg$FAILED;
3098
+ }
3099
+ } else {
3100
+ peg$currPos = s0;
3101
+ s0 = peg$FAILED;
3102
+ }
3103
+
3104
+ return s0;
3105
+ }
3106
+
3107
+ function peg$parseLuceneRangeStart() {
3108
+ var s0;
3109
+
3110
+ if (input.charCodeAt(peg$currPos) === 91) {
3111
+ s0 = peg$c122;
3112
+ peg$currPos++;
3113
+ } else {
3114
+ s0 = peg$FAILED;
3115
+ if (peg$silentFails === 0) { peg$fail(peg$c123); }
3116
+ }
3117
+ if (s0 === peg$FAILED) {
3118
+ if (input.charCodeAt(peg$currPos) === 123) {
3119
+ s0 = peg$c12;
3120
+ peg$currPos++;
3121
+ } else {
3122
+ s0 = peg$FAILED;
3123
+ if (peg$silentFails === 0) { peg$fail(peg$c13); }
3124
+ }
3125
+ }
3126
+
3127
+ return s0;
3128
+ }
3129
+
3130
+ function peg$parseLuceneRangeEnd() {
3131
+ var s0;
3132
+
3133
+ if (input.charCodeAt(peg$currPos) === 93) {
3134
+ s0 = peg$c124;
3135
+ peg$currPos++;
3136
+ } else {
3137
+ s0 = peg$FAILED;
3138
+ if (peg$silentFails === 0) { peg$fail(peg$c125); }
3139
+ }
3140
+ if (s0 === peg$FAILED) {
3141
+ if (input.charCodeAt(peg$currPos) === 125) {
3142
+ s0 = peg$c14;
3143
+ peg$currPos++;
3144
+ } else {
3145
+ s0 = peg$FAILED;
3146
+ if (peg$silentFails === 0) { peg$fail(peg$c15); }
3147
+ }
3148
+ }
3149
+
3150
+ return s0;
3151
+ }
3152
+
3153
+
3154
+ const { errorOnLuceneSyntax, parseCursor, cursorSymbol, allowLeadingWildcards = true, helpers: { nodeTypes } } = options;
3155
+ const buildFunctionNode = nodeTypes.function.buildNodeWithArgumentNodes;
3156
+ const buildLiteralNode = nodeTypes.literal.buildNode;
3157
+ const buildWildcardNode = nodeTypes.wildcard.buildNode;
3158
+ const buildNamedArgNode = nodeTypes.namedArg.buildNode;
3159
+ const { wildcardSymbol } = nodeTypes.wildcard;
3160
+
3161
+
3162
+ peg$result = peg$startRuleFunction();
3163
+
3164
+ if (peg$result !== peg$FAILED && peg$currPos === input.length) {
3165
+ return peg$result;
3166
+ } else {
3167
+ if (peg$result !== peg$FAILED && peg$currPos < input.length) {
3168
+ peg$fail({ type: "end", description: "end of input" });
3169
+ }
3170
+
3171
+ throw peg$buildException(
3172
+ null,
3173
+ peg$maxFailExpected,
3174
+ peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null,
3175
+ peg$maxFailPos < input.length
3176
+ ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1)
3177
+ : peg$computeLocation(peg$maxFailPos, peg$maxFailPos)
3178
+ );
3179
+ }
3180
+ }
3181
+
3182
+ return {
3183
+ SyntaxError: peg$SyntaxError,
3184
+ parse: peg$parse
3185
+ };
3186
+ })();