@loancrate/json-selector 2.0.0 → 3.0.0

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 (50) hide show
  1. package/README.md +50 -3
  2. package/dist/__generated__/parser.d.ts.map +1 -1
  3. package/dist/access.d.ts +6 -6
  4. package/dist/access.d.ts.map +1 -1
  5. package/dist/ast.d.ts +6 -3
  6. package/dist/ast.d.ts.map +1 -1
  7. package/dist/evaluate.d.ts +5 -5
  8. package/dist/evaluate.d.ts.map +1 -1
  9. package/dist/format.d.ts.map +1 -1
  10. package/dist/json-selector.esm.js +3510 -0
  11. package/dist/json-selector.esm.js.map +1 -0
  12. package/dist/json-selector.umd.js +3575 -0
  13. package/dist/json-selector.umd.js.map +1 -0
  14. package/dist/visitor.d.ts +2 -1
  15. package/dist/visitor.d.ts.map +1 -1
  16. package/package.json +32 -20
  17. package/src/__generated__/parser.js +2730 -0
  18. package/src/access.ts +534 -0
  19. package/src/ast.ts +114 -0
  20. package/src/evaluate.ts +269 -0
  21. package/src/format.ts +144 -0
  22. package/src/get.ts +9 -0
  23. package/src/grammar.pegjs +226 -0
  24. package/src/index.ts +7 -0
  25. package/src/parse.ts +7 -0
  26. package/src/set.ts +13 -0
  27. package/src/util.ts +70 -0
  28. package/src/visitor.ts +79 -0
  29. package/dist/__generated__/parser.js +0 -2855
  30. package/dist/__generated__/parser.js.map +0 -1
  31. package/dist/access.js +0 -444
  32. package/dist/access.js.map +0 -1
  33. package/dist/ast.js +0 -3
  34. package/dist/ast.js.map +0 -1
  35. package/dist/evaluate.js +0 -168
  36. package/dist/evaluate.js.map +0 -1
  37. package/dist/format.js +0 -119
  38. package/dist/format.js.map +0 -1
  39. package/dist/get.js +0 -9
  40. package/dist/get.js.map +0 -1
  41. package/dist/index.js +0 -26
  42. package/dist/index.js.map +0 -1
  43. package/dist/parse.js +0 -10
  44. package/dist/parse.js.map +0 -1
  45. package/dist/set.js +0 -12
  46. package/dist/set.js.map +0 -1
  47. package/dist/util.js +0 -70
  48. package/dist/util.js.map +0 -1
  49. package/dist/visitor.js +0 -39
  50. package/dist/visitor.js.map +0 -1
@@ -1,2855 +0,0 @@
1
- // Generated by Peggy 2.0.1.
2
- //
3
- // https://peggyjs.org/
4
- "use strict";
5
- function peg$subclass(child, parent) {
6
- function C() { this.constructor = child; }
7
- C.prototype = parent.prototype;
8
- child.prototype = new C();
9
- }
10
- function peg$SyntaxError(message, expected, found, location) {
11
- var self = Error.call(this, message);
12
- // istanbul ignore next Check is a necessary evil to support older environments
13
- if (Object.setPrototypeOf) {
14
- Object.setPrototypeOf(self, peg$SyntaxError.prototype);
15
- }
16
- self.expected = expected;
17
- self.found = found;
18
- self.location = location;
19
- self.name = "SyntaxError";
20
- return self;
21
- }
22
- peg$subclass(peg$SyntaxError, Error);
23
- function peg$padEnd(str, targetLength, padString) {
24
- padString = padString || " ";
25
- if (str.length > targetLength) {
26
- return str;
27
- }
28
- targetLength -= str.length;
29
- padString += padString.repeat(targetLength);
30
- return str + padString.slice(0, targetLength);
31
- }
32
- peg$SyntaxError.prototype.format = function (sources) {
33
- var str = "Error: " + this.message;
34
- if (this.location) {
35
- var src = null;
36
- var k;
37
- for (k = 0; k < sources.length; k++) {
38
- if (sources[k].source === this.location.source) {
39
- src = sources[k].text.split(/\r\n|\n|\r/g);
40
- break;
41
- }
42
- }
43
- var s = this.location.start;
44
- var loc = this.location.source + ":" + s.line + ":" + s.column;
45
- if (src) {
46
- var e = this.location.end;
47
- var filler = peg$padEnd("", s.line.toString().length, ' ');
48
- var line = src[s.line - 1];
49
- var last = s.line === e.line ? e.column : line.length + 1;
50
- var hatLen = (last - s.column) || 1;
51
- str += "\n --> " + loc + "\n"
52
- + filler + " |\n"
53
- + s.line + " | " + line + "\n"
54
- + filler + " | " + peg$padEnd("", s.column - 1, ' ')
55
- + peg$padEnd("", hatLen, "^");
56
- }
57
- else {
58
- str += "\n at " + loc;
59
- }
60
- }
61
- return str;
62
- };
63
- peg$SyntaxError.buildMessage = function (expected, found) {
64
- var DESCRIBE_EXPECTATION_FNS = {
65
- literal: function (expectation) {
66
- return "\"" + literalEscape(expectation.text) + "\"";
67
- },
68
- class: function (expectation) {
69
- var escapedParts = expectation.parts.map(function (part) {
70
- return Array.isArray(part)
71
- ? classEscape(part[0]) + "-" + classEscape(part[1])
72
- : classEscape(part);
73
- });
74
- return "[" + (expectation.inverted ? "^" : "") + escapedParts.join("") + "]";
75
- },
76
- any: function () {
77
- return "any character";
78
- },
79
- end: function () {
80
- return "end of input";
81
- },
82
- other: function (expectation) {
83
- return expectation.description;
84
- }
85
- };
86
- function hex(ch) {
87
- return ch.charCodeAt(0).toString(16).toUpperCase();
88
- }
89
- function literalEscape(s) {
90
- return s
91
- .replace(/\\/g, "\\\\")
92
- .replace(/"/g, "\\\"")
93
- .replace(/\0/g, "\\0")
94
- .replace(/\t/g, "\\t")
95
- .replace(/\n/g, "\\n")
96
- .replace(/\r/g, "\\r")
97
- .replace(/[\x00-\x0F]/g, function (ch) { return "\\x0" + hex(ch); })
98
- .replace(/[\x10-\x1F\x7F-\x9F]/g, function (ch) { return "\\x" + hex(ch); });
99
- }
100
- function classEscape(s) {
101
- return s
102
- .replace(/\\/g, "\\\\")
103
- .replace(/\]/g, "\\]")
104
- .replace(/\^/g, "\\^")
105
- .replace(/-/g, "\\-")
106
- .replace(/\0/g, "\\0")
107
- .replace(/\t/g, "\\t")
108
- .replace(/\n/g, "\\n")
109
- .replace(/\r/g, "\\r")
110
- .replace(/[\x00-\x0F]/g, function (ch) { return "\\x0" + hex(ch); })
111
- .replace(/[\x10-\x1F\x7F-\x9F]/g, function (ch) { return "\\x" + hex(ch); });
112
- }
113
- function describeExpectation(expectation) {
114
- return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation);
115
- }
116
- function describeExpected(expected) {
117
- var descriptions = expected.map(describeExpectation);
118
- var i, j;
119
- descriptions.sort();
120
- if (descriptions.length > 0) {
121
- for (i = 1, j = 1; i < descriptions.length; i++) {
122
- if (descriptions[i - 1] !== descriptions[i]) {
123
- descriptions[j] = descriptions[i];
124
- j++;
125
- }
126
- }
127
- descriptions.length = j;
128
- }
129
- switch (descriptions.length) {
130
- case 1:
131
- return descriptions[0];
132
- case 2:
133
- return descriptions[0] + " or " + descriptions[1];
134
- default:
135
- return descriptions.slice(0, -1).join(", ")
136
- + ", or "
137
- + descriptions[descriptions.length - 1];
138
- }
139
- }
140
- function describeFound(found) {
141
- return found ? "\"" + literalEscape(found) + "\"" : "end of input";
142
- }
143
- return "Expected " + describeExpected(expected) + " but " + describeFound(found) + " found.";
144
- };
145
- function peg$parse(input, options) {
146
- options = options !== undefined ? options : {};
147
- var peg$FAILED = {};
148
- var peg$source = options.grammarSource;
149
- var peg$startRuleFunctions = { selector: peg$parseselector };
150
- var peg$startRuleFunction = peg$parseselector;
151
- var peg$c0 = "|";
152
- var peg$c1 = "||";
153
- var peg$c2 = "&&";
154
- var peg$c3 = "<=";
155
- var peg$c4 = ">=";
156
- var peg$c5 = "<";
157
- var peg$c6 = ">";
158
- var peg$c7 = "==";
159
- var peg$c8 = "!=";
160
- var peg$c9 = "!";
161
- var peg$c10 = "[]";
162
- var peg$c11 = "[?";
163
- var peg$c12 = "]";
164
- var peg$c13 = "[";
165
- var peg$c14 = "*";
166
- var peg$c15 = ":";
167
- var peg$c16 = ".";
168
- var peg$c17 = "@";
169
- var peg$c18 = "(";
170
- var peg$c19 = ")";
171
- var peg$c20 = "`";
172
- var peg$c21 = "\"";
173
- var peg$c22 = "\\";
174
- var peg$c23 = "/";
175
- var peg$c24 = "b";
176
- var peg$c25 = "f";
177
- var peg$c26 = "n";
178
- var peg$c27 = "r";
179
- var peg$c28 = "t";
180
- var peg$c29 = "u";
181
- var peg$c30 = "'";
182
- var peg$c31 = "-";
183
- var peg$c32 = "0";
184
- var peg$c33 = "null";
185
- var peg$c34 = "false";
186
- var peg$c35 = "true";
187
- var peg$c36 = "{";
188
- var peg$c37 = ",";
189
- var peg$c38 = "}";
190
- var peg$r0 = /^[a-z_]/i;
191
- var peg$r1 = /^[0-9a-z_]/i;
192
- var peg$r2 = /^[^\0-\x1F"\\]/;
193
- var peg$r3 = /^[0-9a-f]/i;
194
- var peg$r4 = /^[^'\\]/;
195
- var peg$r5 = /^[^']/;
196
- var peg$r6 = /^[1-9]/;
197
- var peg$r7 = /^[0-9]/;
198
- var peg$r8 = /^[eE]/;
199
- var peg$r9 = /^[+\-]/;
200
- var peg$r10 = /^[^\0-\x1F"\\`]/;
201
- var peg$r11 = /^[ \t\n\r]/;
202
- var peg$e0 = peg$literalExpectation("|", false);
203
- var peg$e1 = peg$literalExpectation("||", false);
204
- var peg$e2 = peg$literalExpectation("&&", false);
205
- var peg$e3 = peg$literalExpectation("<=", false);
206
- var peg$e4 = peg$literalExpectation(">=", false);
207
- var peg$e5 = peg$literalExpectation("<", false);
208
- var peg$e6 = peg$literalExpectation(">", false);
209
- var peg$e7 = peg$literalExpectation("==", false);
210
- var peg$e8 = peg$literalExpectation("!=", false);
211
- var peg$e9 = peg$literalExpectation("!", false);
212
- var peg$e10 = peg$literalExpectation("[]", false);
213
- var peg$e11 = peg$literalExpectation("[?", false);
214
- var peg$e12 = peg$literalExpectation("]", false);
215
- var peg$e13 = peg$literalExpectation("[", false);
216
- var peg$e14 = peg$literalExpectation("*", false);
217
- var peg$e15 = peg$literalExpectation(":", false);
218
- var peg$e16 = peg$literalExpectation(".", false);
219
- var peg$e17 = peg$literalExpectation("@", false);
220
- var peg$e18 = peg$literalExpectation("(", false);
221
- var peg$e19 = peg$literalExpectation(")", false);
222
- var peg$e20 = peg$literalExpectation("`", false);
223
- var peg$e21 = peg$classExpectation([["a", "z"], "_"], false, true);
224
- var peg$e22 = peg$classExpectation([["0", "9"], ["a", "z"], "_"], false, true);
225
- var peg$e23 = peg$literalExpectation("\"", false);
226
- var peg$e24 = peg$classExpectation([["\0", "\x1F"], "\"", "\\"], true, false);
227
- var peg$e25 = peg$literalExpectation("\\", false);
228
- var peg$e26 = peg$literalExpectation("/", false);
229
- var peg$e27 = peg$literalExpectation("b", false);
230
- var peg$e28 = peg$literalExpectation("f", false);
231
- var peg$e29 = peg$literalExpectation("n", false);
232
- var peg$e30 = peg$literalExpectation("r", false);
233
- var peg$e31 = peg$literalExpectation("t", false);
234
- var peg$e32 = peg$literalExpectation("u", false);
235
- var peg$e33 = peg$classExpectation([["0", "9"], ["a", "f"]], false, true);
236
- var peg$e34 = peg$literalExpectation("'", false);
237
- var peg$e35 = peg$classExpectation(["'", "\\"], true, false);
238
- var peg$e36 = peg$classExpectation(["'"], true, false);
239
- var peg$e37 = peg$literalExpectation("-", false);
240
- var peg$e38 = peg$literalExpectation("0", false);
241
- var peg$e39 = peg$classExpectation([["1", "9"]], false, false);
242
- var peg$e40 = peg$classExpectation([["0", "9"]], false, false);
243
- var peg$e41 = peg$literalExpectation("null", false);
244
- var peg$e42 = peg$literalExpectation("false", false);
245
- var peg$e43 = peg$literalExpectation("true", false);
246
- var peg$e44 = peg$classExpectation(["e", "E"], false, false);
247
- var peg$e45 = peg$classExpectation(["+", "-"], false, false);
248
- var peg$e46 = peg$classExpectation([["\0", "\x1F"], "\"", "\\", "`"], true, false);
249
- var peg$e47 = peg$literalExpectation("{", false);
250
- var peg$e48 = peg$literalExpectation(",", false);
251
- var peg$e49 = peg$literalExpectation("}", false);
252
- var peg$e50 = peg$otherExpectation("whitespace");
253
- var peg$e51 = peg$classExpectation([" ", "\t", "\n", "\r"], false, false);
254
- var peg$f0 = function (head, tail) { return binaryExpression("pipe", head, tail); };
255
- var peg$f1 = function (head, tail) { return binaryExpression("or", head, tail); };
256
- var peg$f2 = function (head, tail) { return binaryExpression("and", head, tail); };
257
- var peg$f3 = function (head, tail) {
258
- return tail.reduce((result, [operator, rhs]) => ({
259
- type: "compare",
260
- operator,
261
- lhs: result,
262
- rhs
263
- }), head);
264
- };
265
- var peg$f4 = function (expression) { return { type: "not", expression }; };
266
- var peg$f5 = function (lhs, rhs) { return reduceProjection(lhs, rhs); };
267
- var peg$f6 = function (flatten) { return flatten({ type: "current" }); };
268
- var peg$f7 = function (flatten, pfns) { return (expression) => maybeProject(flatten(expression), pfns); };
269
- var peg$f8 = function () { return (expression) => ({ type: "flatten", expression }); };
270
- var peg$f9 = function (lhs, rhs) { return reduceProjection(lhs, rhs); };
271
- var peg$f10 = function (filter) { return filter({ type: "current" }); };
272
- var peg$f11 = function (filter, pfns) { return (expression) => maybeProject(filter(expression), pfns); };
273
- var peg$f12 = function (condition) { return (expression) => ({ type: "filter", expression, condition }); };
274
- var peg$f13 = function (lhs, rhs) { return reduceProjection(lhs, rhs); };
275
- var peg$f14 = function (projection) { return projection({ type: "current" }); };
276
- var peg$f15 = function (projection, pfns) { return (expression) => maybeProject(projection(expression), pfns); };
277
- var peg$f16 = function () { return (expression) => ({ type: "project", expression, projection: { type: "current" } }); };
278
- var peg$f17 = function (start, end, step) { return (expression) => ({ type: "slice", expression, start, end, step }); };
279
- var peg$f18 = function (lhs, rhs) { return reduceProjection(lhs, rhs); };
280
- var peg$f19 = function (index) { return index({ type: "current" }); };
281
- var peg$f20 = function (index) { return (expression) => ({ type: "indexAccess", expression, index }); };
282
- var peg$f21 = function (id) { return (expression) => ({ type: "idAccess", expression, id }); };
283
- var peg$f22 = function (field) { return (expression) => ({ type: "fieldAccess", expression, field }); };
284
- var peg$f23 = function (lhs, rhs) { return reduceProjection(lhs, rhs); };
285
- var peg$f24 = function (id) { return { type: "identifier", id }; };
286
- var peg$f25 = function () { return { type: "current" }; };
287
- var peg$f26 = function (value) { return { type: "literal", value }; };
288
- var peg$f27 = function (value) { return { type: "literal", value }; };
289
- var peg$f28 = function (head, tail) { return head + tail.join(""); };
290
- var peg$f29 = function (chars) { return chars.join(""); };
291
- var peg$f30 = function () { return "\b"; };
292
- var peg$f31 = function () { return "\f"; };
293
- var peg$f32 = function () { return "\n"; };
294
- var peg$f33 = function () { return "\r"; };
295
- var peg$f34 = function () { return "\t"; };
296
- var peg$f35 = function (digits) {
297
- return String.fromCharCode(parseInt(digits, 16));
298
- };
299
- var peg$f36 = function (chars) { return chars.join(""); };
300
- var peg$f37 = function () { return text(); };
301
- var peg$f38 = function () { return parseInt(text()); };
302
- var peg$f39 = function () { return null; };
303
- var peg$f40 = function () { return false; };
304
- var peg$f41 = function () { return true; };
305
- var peg$f42 = function () { return parseFloat(text()); };
306
- var peg$f43 = function (chars) { return chars.join(""); };
307
- var peg$f44 = function (head, tail) { return [head].concat(tail); };
308
- var peg$f45 = function (members) { return Object.fromEntries(members ?? []); };
309
- var peg$f46 = function (name, value) { return [name, value]; };
310
- var peg$f47 = function (head, tail) { return [head].concat(tail); };
311
- var peg$f48 = function (values) { return values ?? []; };
312
- var peg$currPos = 0;
313
- var peg$savedPos = 0;
314
- var peg$posDetailsCache = [{ line: 1, column: 1 }];
315
- var peg$maxFailPos = 0;
316
- var peg$maxFailExpected = [];
317
- var peg$silentFails = 0;
318
- var peg$result;
319
- if ("startRule" in options) {
320
- if (!(options.startRule in peg$startRuleFunctions)) {
321
- throw new Error("Can't start parsing from rule \"" + options.startRule + "\".");
322
- }
323
- peg$startRuleFunction = peg$startRuleFunctions[options.startRule];
324
- }
325
- function text() {
326
- return input.substring(peg$savedPos, peg$currPos);
327
- }
328
- function offset() {
329
- return peg$savedPos;
330
- }
331
- function range() {
332
- return {
333
- source: peg$source,
334
- start: peg$savedPos,
335
- end: peg$currPos
336
- };
337
- }
338
- function location() {
339
- return peg$computeLocation(peg$savedPos, peg$currPos);
340
- }
341
- function expected(description, location) {
342
- location = location !== undefined
343
- ? location
344
- : peg$computeLocation(peg$savedPos, peg$currPos);
345
- throw peg$buildStructuredError([peg$otherExpectation(description)], input.substring(peg$savedPos, peg$currPos), location);
346
- }
347
- function error(message, location) {
348
- location = location !== undefined
349
- ? location
350
- : peg$computeLocation(peg$savedPos, peg$currPos);
351
- throw peg$buildSimpleError(message, location);
352
- }
353
- function peg$literalExpectation(text, ignoreCase) {
354
- return { type: "literal", text: text, ignoreCase: ignoreCase };
355
- }
356
- function peg$classExpectation(parts, inverted, ignoreCase) {
357
- return { type: "class", parts: parts, inverted: inverted, ignoreCase: ignoreCase };
358
- }
359
- function peg$anyExpectation() {
360
- return { type: "any" };
361
- }
362
- function peg$endExpectation() {
363
- return { type: "end" };
364
- }
365
- function peg$otherExpectation(description) {
366
- return { type: "other", description: description };
367
- }
368
- function peg$computePosDetails(pos) {
369
- var details = peg$posDetailsCache[pos];
370
- var p;
371
- if (details) {
372
- return details;
373
- }
374
- else {
375
- p = pos - 1;
376
- while (!peg$posDetailsCache[p]) {
377
- p--;
378
- }
379
- details = peg$posDetailsCache[p];
380
- details = {
381
- line: details.line,
382
- column: details.column
383
- };
384
- while (p < pos) {
385
- if (input.charCodeAt(p) === 10) {
386
- details.line++;
387
- details.column = 1;
388
- }
389
- else {
390
- details.column++;
391
- }
392
- p++;
393
- }
394
- peg$posDetailsCache[pos] = details;
395
- return details;
396
- }
397
- }
398
- function peg$computeLocation(startPos, endPos) {
399
- var startPosDetails = peg$computePosDetails(startPos);
400
- var endPosDetails = peg$computePosDetails(endPos);
401
- return {
402
- source: peg$source,
403
- start: {
404
- offset: startPos,
405
- line: startPosDetails.line,
406
- column: startPosDetails.column
407
- },
408
- end: {
409
- offset: endPos,
410
- line: endPosDetails.line,
411
- column: endPosDetails.column
412
- }
413
- };
414
- }
415
- function peg$fail(expected) {
416
- if (peg$currPos < peg$maxFailPos) {
417
- return;
418
- }
419
- if (peg$currPos > peg$maxFailPos) {
420
- peg$maxFailPos = peg$currPos;
421
- peg$maxFailExpected = [];
422
- }
423
- peg$maxFailExpected.push(expected);
424
- }
425
- function peg$buildSimpleError(message, location) {
426
- return new peg$SyntaxError(message, null, null, location);
427
- }
428
- function peg$buildStructuredError(expected, found, location) {
429
- return new peg$SyntaxError(peg$SyntaxError.buildMessage(expected, found), expected, found, location);
430
- }
431
- function peg$parseselector() {
432
- var s0, s1, s2, s3;
433
- s0 = peg$currPos;
434
- s1 = peg$parsews();
435
- s2 = peg$parsepipe_expression();
436
- if (s2 !== peg$FAILED) {
437
- s3 = peg$parsews();
438
- s0 = s2;
439
- }
440
- else {
441
- peg$currPos = s0;
442
- s0 = peg$FAILED;
443
- }
444
- return s0;
445
- }
446
- function peg$parsepipe_expression() {
447
- var s0, s1, s2, s3, s4, s5, s6, s7;
448
- s0 = peg$currPos;
449
- s1 = peg$parseor_expression();
450
- if (s1 !== peg$FAILED) {
451
- s2 = [];
452
- s3 = peg$currPos;
453
- s4 = peg$parsews();
454
- if (input.charCodeAt(peg$currPos) === 124) {
455
- s5 = peg$c0;
456
- peg$currPos++;
457
- }
458
- else {
459
- s5 = peg$FAILED;
460
- if (peg$silentFails === 0) {
461
- peg$fail(peg$e0);
462
- }
463
- }
464
- if (s5 !== peg$FAILED) {
465
- s6 = peg$parsews();
466
- s7 = peg$parseor_expression();
467
- if (s7 !== peg$FAILED) {
468
- s3 = s7;
469
- }
470
- else {
471
- peg$currPos = s3;
472
- s3 = peg$FAILED;
473
- }
474
- }
475
- else {
476
- peg$currPos = s3;
477
- s3 = peg$FAILED;
478
- }
479
- while (s3 !== peg$FAILED) {
480
- s2.push(s3);
481
- s3 = peg$currPos;
482
- s4 = peg$parsews();
483
- if (input.charCodeAt(peg$currPos) === 124) {
484
- s5 = peg$c0;
485
- peg$currPos++;
486
- }
487
- else {
488
- s5 = peg$FAILED;
489
- if (peg$silentFails === 0) {
490
- peg$fail(peg$e0);
491
- }
492
- }
493
- if (s5 !== peg$FAILED) {
494
- s6 = peg$parsews();
495
- s7 = peg$parseor_expression();
496
- if (s7 !== peg$FAILED) {
497
- s3 = s7;
498
- }
499
- else {
500
- peg$currPos = s3;
501
- s3 = peg$FAILED;
502
- }
503
- }
504
- else {
505
- peg$currPos = s3;
506
- s3 = peg$FAILED;
507
- }
508
- }
509
- peg$savedPos = s0;
510
- s0 = peg$f0(s1, s2);
511
- }
512
- else {
513
- peg$currPos = s0;
514
- s0 = peg$FAILED;
515
- }
516
- return s0;
517
- }
518
- function peg$parseor_expression() {
519
- var s0, s1, s2, s3, s4, s5, s6, s7;
520
- s0 = peg$currPos;
521
- s1 = peg$parseand_expression();
522
- if (s1 !== peg$FAILED) {
523
- s2 = [];
524
- s3 = peg$currPos;
525
- s4 = peg$parsews();
526
- if (input.substr(peg$currPos, 2) === peg$c1) {
527
- s5 = peg$c1;
528
- peg$currPos += 2;
529
- }
530
- else {
531
- s5 = peg$FAILED;
532
- if (peg$silentFails === 0) {
533
- peg$fail(peg$e1);
534
- }
535
- }
536
- if (s5 !== peg$FAILED) {
537
- s6 = peg$parsews();
538
- s7 = peg$parseand_expression();
539
- if (s7 !== peg$FAILED) {
540
- s3 = s7;
541
- }
542
- else {
543
- peg$currPos = s3;
544
- s3 = peg$FAILED;
545
- }
546
- }
547
- else {
548
- peg$currPos = s3;
549
- s3 = peg$FAILED;
550
- }
551
- while (s3 !== peg$FAILED) {
552
- s2.push(s3);
553
- s3 = peg$currPos;
554
- s4 = peg$parsews();
555
- if (input.substr(peg$currPos, 2) === peg$c1) {
556
- s5 = peg$c1;
557
- peg$currPos += 2;
558
- }
559
- else {
560
- s5 = peg$FAILED;
561
- if (peg$silentFails === 0) {
562
- peg$fail(peg$e1);
563
- }
564
- }
565
- if (s5 !== peg$FAILED) {
566
- s6 = peg$parsews();
567
- s7 = peg$parseand_expression();
568
- if (s7 !== peg$FAILED) {
569
- s3 = s7;
570
- }
571
- else {
572
- peg$currPos = s3;
573
- s3 = peg$FAILED;
574
- }
575
- }
576
- else {
577
- peg$currPos = s3;
578
- s3 = peg$FAILED;
579
- }
580
- }
581
- peg$savedPos = s0;
582
- s0 = peg$f1(s1, s2);
583
- }
584
- else {
585
- peg$currPos = s0;
586
- s0 = peg$FAILED;
587
- }
588
- return s0;
589
- }
590
- function peg$parseand_expression() {
591
- var s0, s1, s2, s3, s4, s5, s6, s7;
592
- s0 = peg$currPos;
593
- s1 = peg$parsecompare_expression();
594
- if (s1 !== peg$FAILED) {
595
- s2 = [];
596
- s3 = peg$currPos;
597
- s4 = peg$parsews();
598
- if (input.substr(peg$currPos, 2) === peg$c2) {
599
- s5 = peg$c2;
600
- peg$currPos += 2;
601
- }
602
- else {
603
- s5 = peg$FAILED;
604
- if (peg$silentFails === 0) {
605
- peg$fail(peg$e2);
606
- }
607
- }
608
- if (s5 !== peg$FAILED) {
609
- s6 = peg$parsews();
610
- s7 = peg$parsecompare_expression();
611
- if (s7 !== peg$FAILED) {
612
- s3 = s7;
613
- }
614
- else {
615
- peg$currPos = s3;
616
- s3 = peg$FAILED;
617
- }
618
- }
619
- else {
620
- peg$currPos = s3;
621
- s3 = peg$FAILED;
622
- }
623
- while (s3 !== peg$FAILED) {
624
- s2.push(s3);
625
- s3 = peg$currPos;
626
- s4 = peg$parsews();
627
- if (input.substr(peg$currPos, 2) === peg$c2) {
628
- s5 = peg$c2;
629
- peg$currPos += 2;
630
- }
631
- else {
632
- s5 = peg$FAILED;
633
- if (peg$silentFails === 0) {
634
- peg$fail(peg$e2);
635
- }
636
- }
637
- if (s5 !== peg$FAILED) {
638
- s6 = peg$parsews();
639
- s7 = peg$parsecompare_expression();
640
- if (s7 !== peg$FAILED) {
641
- s3 = s7;
642
- }
643
- else {
644
- peg$currPos = s3;
645
- s3 = peg$FAILED;
646
- }
647
- }
648
- else {
649
- peg$currPos = s3;
650
- s3 = peg$FAILED;
651
- }
652
- }
653
- peg$savedPos = s0;
654
- s0 = peg$f2(s1, s2);
655
- }
656
- else {
657
- peg$currPos = s0;
658
- s0 = peg$FAILED;
659
- }
660
- return s0;
661
- }
662
- function peg$parsecompare_expression() {
663
- var s0, s1, s2, s3, s4, s5, s6, s7;
664
- s0 = peg$currPos;
665
- s1 = peg$parsenot_expression();
666
- if (s1 !== peg$FAILED) {
667
- s2 = [];
668
- s3 = peg$currPos;
669
- s4 = peg$parsews();
670
- if (input.substr(peg$currPos, 2) === peg$c3) {
671
- s5 = peg$c3;
672
- peg$currPos += 2;
673
- }
674
- else {
675
- s5 = peg$FAILED;
676
- if (peg$silentFails === 0) {
677
- peg$fail(peg$e3);
678
- }
679
- }
680
- if (s5 === peg$FAILED) {
681
- if (input.substr(peg$currPos, 2) === peg$c4) {
682
- s5 = peg$c4;
683
- peg$currPos += 2;
684
- }
685
- else {
686
- s5 = peg$FAILED;
687
- if (peg$silentFails === 0) {
688
- peg$fail(peg$e4);
689
- }
690
- }
691
- if (s5 === peg$FAILED) {
692
- if (input.charCodeAt(peg$currPos) === 60) {
693
- s5 = peg$c5;
694
- peg$currPos++;
695
- }
696
- else {
697
- s5 = peg$FAILED;
698
- if (peg$silentFails === 0) {
699
- peg$fail(peg$e5);
700
- }
701
- }
702
- if (s5 === peg$FAILED) {
703
- if (input.charCodeAt(peg$currPos) === 62) {
704
- s5 = peg$c6;
705
- peg$currPos++;
706
- }
707
- else {
708
- s5 = peg$FAILED;
709
- if (peg$silentFails === 0) {
710
- peg$fail(peg$e6);
711
- }
712
- }
713
- if (s5 === peg$FAILED) {
714
- if (input.substr(peg$currPos, 2) === peg$c7) {
715
- s5 = peg$c7;
716
- peg$currPos += 2;
717
- }
718
- else {
719
- s5 = peg$FAILED;
720
- if (peg$silentFails === 0) {
721
- peg$fail(peg$e7);
722
- }
723
- }
724
- if (s5 === peg$FAILED) {
725
- if (input.substr(peg$currPos, 2) === peg$c8) {
726
- s5 = peg$c8;
727
- peg$currPos += 2;
728
- }
729
- else {
730
- s5 = peg$FAILED;
731
- if (peg$silentFails === 0) {
732
- peg$fail(peg$e8);
733
- }
734
- }
735
- }
736
- }
737
- }
738
- }
739
- }
740
- if (s5 !== peg$FAILED) {
741
- s6 = peg$parsews();
742
- s7 = peg$parsenot_expression();
743
- if (s7 !== peg$FAILED) {
744
- s3 = [s5, s7];
745
- }
746
- else {
747
- peg$currPos = s3;
748
- s3 = peg$FAILED;
749
- }
750
- }
751
- else {
752
- peg$currPos = s3;
753
- s3 = peg$FAILED;
754
- }
755
- while (s3 !== peg$FAILED) {
756
- s2.push(s3);
757
- s3 = peg$currPos;
758
- s4 = peg$parsews();
759
- if (input.substr(peg$currPos, 2) === peg$c3) {
760
- s5 = peg$c3;
761
- peg$currPos += 2;
762
- }
763
- else {
764
- s5 = peg$FAILED;
765
- if (peg$silentFails === 0) {
766
- peg$fail(peg$e3);
767
- }
768
- }
769
- if (s5 === peg$FAILED) {
770
- if (input.substr(peg$currPos, 2) === peg$c4) {
771
- s5 = peg$c4;
772
- peg$currPos += 2;
773
- }
774
- else {
775
- s5 = peg$FAILED;
776
- if (peg$silentFails === 0) {
777
- peg$fail(peg$e4);
778
- }
779
- }
780
- if (s5 === peg$FAILED) {
781
- if (input.charCodeAt(peg$currPos) === 60) {
782
- s5 = peg$c5;
783
- peg$currPos++;
784
- }
785
- else {
786
- s5 = peg$FAILED;
787
- if (peg$silentFails === 0) {
788
- peg$fail(peg$e5);
789
- }
790
- }
791
- if (s5 === peg$FAILED) {
792
- if (input.charCodeAt(peg$currPos) === 62) {
793
- s5 = peg$c6;
794
- peg$currPos++;
795
- }
796
- else {
797
- s5 = peg$FAILED;
798
- if (peg$silentFails === 0) {
799
- peg$fail(peg$e6);
800
- }
801
- }
802
- if (s5 === peg$FAILED) {
803
- if (input.substr(peg$currPos, 2) === peg$c7) {
804
- s5 = peg$c7;
805
- peg$currPos += 2;
806
- }
807
- else {
808
- s5 = peg$FAILED;
809
- if (peg$silentFails === 0) {
810
- peg$fail(peg$e7);
811
- }
812
- }
813
- if (s5 === peg$FAILED) {
814
- if (input.substr(peg$currPos, 2) === peg$c8) {
815
- s5 = peg$c8;
816
- peg$currPos += 2;
817
- }
818
- else {
819
- s5 = peg$FAILED;
820
- if (peg$silentFails === 0) {
821
- peg$fail(peg$e8);
822
- }
823
- }
824
- }
825
- }
826
- }
827
- }
828
- }
829
- if (s5 !== peg$FAILED) {
830
- s6 = peg$parsews();
831
- s7 = peg$parsenot_expression();
832
- if (s7 !== peg$FAILED) {
833
- s3 = [s5, s7];
834
- }
835
- else {
836
- peg$currPos = s3;
837
- s3 = peg$FAILED;
838
- }
839
- }
840
- else {
841
- peg$currPos = s3;
842
- s3 = peg$FAILED;
843
- }
844
- }
845
- peg$savedPos = s0;
846
- s0 = peg$f3(s1, s2);
847
- }
848
- else {
849
- peg$currPos = s0;
850
- s0 = peg$FAILED;
851
- }
852
- return s0;
853
- }
854
- function peg$parsenot_expression() {
855
- var s0, s1, s2;
856
- s0 = peg$currPos;
857
- if (input.charCodeAt(peg$currPos) === 33) {
858
- s1 = peg$c9;
859
- peg$currPos++;
860
- }
861
- else {
862
- s1 = peg$FAILED;
863
- if (peg$silentFails === 0) {
864
- peg$fail(peg$e9);
865
- }
866
- }
867
- if (s1 !== peg$FAILED) {
868
- s2 = peg$parsenot_expression();
869
- if (s2 !== peg$FAILED) {
870
- peg$savedPos = s0;
871
- s0 = peg$f4(s2);
872
- }
873
- else {
874
- peg$currPos = s0;
875
- s0 = peg$FAILED;
876
- }
877
- }
878
- else {
879
- peg$currPos = s0;
880
- s0 = peg$FAILED;
881
- }
882
- if (s0 === peg$FAILED) {
883
- s0 = peg$parseflatten_expression();
884
- }
885
- return s0;
886
- }
887
- function peg$parseflatten_expression() {
888
- var s0, s1, s2, s3;
889
- s0 = peg$currPos;
890
- s1 = peg$parseflatten_lhs();
891
- if (s1 !== peg$FAILED) {
892
- s2 = [];
893
- s3 = peg$parseflatten_rhs();
894
- while (s3 !== peg$FAILED) {
895
- s2.push(s3);
896
- s3 = peg$parseflatten_rhs();
897
- }
898
- peg$savedPos = s0;
899
- s0 = peg$f5(s1, s2);
900
- }
901
- else {
902
- peg$currPos = s0;
903
- s0 = peg$FAILED;
904
- }
905
- return s0;
906
- }
907
- function peg$parseflatten_lhs() {
908
- var s0, s1;
909
- s0 = peg$currPos;
910
- s1 = peg$parseflatten();
911
- if (s1 !== peg$FAILED) {
912
- peg$savedPos = s0;
913
- s1 = peg$f6(s1);
914
- }
915
- s0 = s1;
916
- if (s0 === peg$FAILED) {
917
- s0 = peg$parsefilter_expression();
918
- }
919
- return s0;
920
- }
921
- function peg$parseflatten_rhs() {
922
- var s0, s1, s2, s3;
923
- s0 = peg$currPos;
924
- s1 = peg$parseflatten();
925
- if (s1 !== peg$FAILED) {
926
- s2 = [];
927
- s3 = peg$parsefilter_rhs();
928
- while (s3 !== peg$FAILED) {
929
- s2.push(s3);
930
- s3 = peg$parsefilter_rhs();
931
- }
932
- peg$savedPos = s0;
933
- s0 = peg$f7(s1, s2);
934
- }
935
- else {
936
- peg$currPos = s0;
937
- s0 = peg$FAILED;
938
- }
939
- if (s0 === peg$FAILED) {
940
- s0 = peg$parsefilter_rhs();
941
- }
942
- return s0;
943
- }
944
- function peg$parseflatten() {
945
- var s0, s1, s2;
946
- s0 = peg$currPos;
947
- s1 = peg$parsews();
948
- if (input.substr(peg$currPos, 2) === peg$c10) {
949
- s2 = peg$c10;
950
- peg$currPos += 2;
951
- }
952
- else {
953
- s2 = peg$FAILED;
954
- if (peg$silentFails === 0) {
955
- peg$fail(peg$e10);
956
- }
957
- }
958
- if (s2 !== peg$FAILED) {
959
- peg$savedPos = s0;
960
- s0 = peg$f8();
961
- }
962
- else {
963
- peg$currPos = s0;
964
- s0 = peg$FAILED;
965
- }
966
- return s0;
967
- }
968
- function peg$parsefilter_expression() {
969
- var s0, s1, s2, s3;
970
- s0 = peg$currPos;
971
- s1 = peg$parsefilter_lhs();
972
- if (s1 !== peg$FAILED) {
973
- s2 = [];
974
- s3 = peg$parsefilter_rhs();
975
- while (s3 !== peg$FAILED) {
976
- s2.push(s3);
977
- s3 = peg$parsefilter_rhs();
978
- }
979
- peg$savedPos = s0;
980
- s0 = peg$f9(s1, s2);
981
- }
982
- else {
983
- peg$currPos = s0;
984
- s0 = peg$FAILED;
985
- }
986
- return s0;
987
- }
988
- function peg$parsefilter_lhs() {
989
- var s0, s1;
990
- s0 = peg$currPos;
991
- s1 = peg$parsefilter();
992
- if (s1 !== peg$FAILED) {
993
- peg$savedPos = s0;
994
- s1 = peg$f10(s1);
995
- }
996
- s0 = s1;
997
- if (s0 === peg$FAILED) {
998
- s0 = peg$parseprojection_expression();
999
- }
1000
- return s0;
1001
- }
1002
- function peg$parsefilter_rhs() {
1003
- var s0, s1, s2, s3;
1004
- s0 = peg$currPos;
1005
- s1 = peg$parsefilter();
1006
- if (s1 !== peg$FAILED) {
1007
- s2 = [];
1008
- s3 = peg$parsefilter_rhs();
1009
- while (s3 !== peg$FAILED) {
1010
- s2.push(s3);
1011
- s3 = peg$parsefilter_rhs();
1012
- }
1013
- peg$savedPos = s0;
1014
- s0 = peg$f11(s1, s2);
1015
- }
1016
- else {
1017
- peg$currPos = s0;
1018
- s0 = peg$FAILED;
1019
- }
1020
- if (s0 === peg$FAILED) {
1021
- s0 = peg$parseprojection_rhs();
1022
- if (s0 === peg$FAILED) {
1023
- s0 = peg$parsedot_rhs();
1024
- }
1025
- }
1026
- return s0;
1027
- }
1028
- function peg$parsefilter() {
1029
- var s0, s1, s2, s3, s4;
1030
- s0 = peg$currPos;
1031
- s1 = peg$parsews();
1032
- if (input.substr(peg$currPos, 2) === peg$c11) {
1033
- s2 = peg$c11;
1034
- peg$currPos += 2;
1035
- }
1036
- else {
1037
- s2 = peg$FAILED;
1038
- if (peg$silentFails === 0) {
1039
- peg$fail(peg$e11);
1040
- }
1041
- }
1042
- if (s2 !== peg$FAILED) {
1043
- s3 = peg$parseselector();
1044
- if (s3 !== peg$FAILED) {
1045
- if (input.charCodeAt(peg$currPos) === 93) {
1046
- s4 = peg$c12;
1047
- peg$currPos++;
1048
- }
1049
- else {
1050
- s4 = peg$FAILED;
1051
- if (peg$silentFails === 0) {
1052
- peg$fail(peg$e12);
1053
- }
1054
- }
1055
- if (s4 !== peg$FAILED) {
1056
- peg$savedPos = s0;
1057
- s0 = peg$f12(s3);
1058
- }
1059
- else {
1060
- peg$currPos = s0;
1061
- s0 = peg$FAILED;
1062
- }
1063
- }
1064
- else {
1065
- peg$currPos = s0;
1066
- s0 = peg$FAILED;
1067
- }
1068
- }
1069
- else {
1070
- peg$currPos = s0;
1071
- s0 = peg$FAILED;
1072
- }
1073
- return s0;
1074
- }
1075
- function peg$parseprojection_expression() {
1076
- var s0, s1, s2, s3;
1077
- s0 = peg$currPos;
1078
- s1 = peg$parseprojection_lhs();
1079
- if (s1 !== peg$FAILED) {
1080
- s2 = [];
1081
- s3 = peg$parseprojection_rhs();
1082
- while (s3 !== peg$FAILED) {
1083
- s2.push(s3);
1084
- s3 = peg$parseprojection_rhs();
1085
- }
1086
- peg$savedPos = s0;
1087
- s0 = peg$f13(s1, s2);
1088
- }
1089
- else {
1090
- peg$currPos = s0;
1091
- s0 = peg$FAILED;
1092
- }
1093
- return s0;
1094
- }
1095
- function peg$parseprojection_lhs() {
1096
- var s0, s1;
1097
- s0 = peg$currPos;
1098
- s1 = peg$parseprojection();
1099
- if (s1 !== peg$FAILED) {
1100
- peg$savedPos = s0;
1101
- s1 = peg$f14(s1);
1102
- }
1103
- s0 = s1;
1104
- if (s0 === peg$FAILED) {
1105
- s0 = peg$parseindex_expression();
1106
- }
1107
- return s0;
1108
- }
1109
- function peg$parseprojection_rhs() {
1110
- var s0, s1, s2, s3;
1111
- s0 = peg$currPos;
1112
- s1 = peg$parseprojection();
1113
- if (s1 !== peg$FAILED) {
1114
- s2 = [];
1115
- s3 = peg$parsefilter_rhs();
1116
- while (s3 !== peg$FAILED) {
1117
- s2.push(s3);
1118
- s3 = peg$parsefilter_rhs();
1119
- }
1120
- peg$savedPos = s0;
1121
- s0 = peg$f15(s1, s2);
1122
- }
1123
- else {
1124
- peg$currPos = s0;
1125
- s0 = peg$FAILED;
1126
- }
1127
- if (s0 === peg$FAILED) {
1128
- s0 = peg$parseindex_rhs();
1129
- }
1130
- return s0;
1131
- }
1132
- function peg$parseprojection() {
1133
- var s0, s1, s2, s3, s4, s5, s6;
1134
- s0 = peg$currPos;
1135
- s1 = peg$parsews();
1136
- if (input.charCodeAt(peg$currPos) === 91) {
1137
- s2 = peg$c13;
1138
- peg$currPos++;
1139
- }
1140
- else {
1141
- s2 = peg$FAILED;
1142
- if (peg$silentFails === 0) {
1143
- peg$fail(peg$e13);
1144
- }
1145
- }
1146
- if (s2 !== peg$FAILED) {
1147
- s3 = peg$parsews();
1148
- if (input.charCodeAt(peg$currPos) === 42) {
1149
- s4 = peg$c14;
1150
- peg$currPos++;
1151
- }
1152
- else {
1153
- s4 = peg$FAILED;
1154
- if (peg$silentFails === 0) {
1155
- peg$fail(peg$e14);
1156
- }
1157
- }
1158
- if (s4 !== peg$FAILED) {
1159
- s5 = peg$parsews();
1160
- if (input.charCodeAt(peg$currPos) === 93) {
1161
- s6 = peg$c12;
1162
- peg$currPos++;
1163
- }
1164
- else {
1165
- s6 = peg$FAILED;
1166
- if (peg$silentFails === 0) {
1167
- peg$fail(peg$e12);
1168
- }
1169
- }
1170
- if (s6 !== peg$FAILED) {
1171
- peg$savedPos = s0;
1172
- s0 = peg$f16();
1173
- }
1174
- else {
1175
- peg$currPos = s0;
1176
- s0 = peg$FAILED;
1177
- }
1178
- }
1179
- else {
1180
- peg$currPos = s0;
1181
- s0 = peg$FAILED;
1182
- }
1183
- }
1184
- else {
1185
- peg$currPos = s0;
1186
- s0 = peg$FAILED;
1187
- }
1188
- if (s0 === peg$FAILED) {
1189
- s0 = peg$currPos;
1190
- s1 = peg$parsews();
1191
- if (input.charCodeAt(peg$currPos) === 91) {
1192
- s2 = peg$c13;
1193
- peg$currPos++;
1194
- }
1195
- else {
1196
- s2 = peg$FAILED;
1197
- if (peg$silentFails === 0) {
1198
- peg$fail(peg$e13);
1199
- }
1200
- }
1201
- if (s2 !== peg$FAILED) {
1202
- s3 = peg$parsews();
1203
- s4 = peg$parseslice();
1204
- if (s4 !== peg$FAILED) {
1205
- s5 = peg$parsews();
1206
- if (input.charCodeAt(peg$currPos) === 93) {
1207
- s6 = peg$c12;
1208
- peg$currPos++;
1209
- }
1210
- else {
1211
- s6 = peg$FAILED;
1212
- if (peg$silentFails === 0) {
1213
- peg$fail(peg$e12);
1214
- }
1215
- }
1216
- if (s6 !== peg$FAILED) {
1217
- s0 = s4;
1218
- }
1219
- else {
1220
- peg$currPos = s0;
1221
- s0 = peg$FAILED;
1222
- }
1223
- }
1224
- else {
1225
- peg$currPos = s0;
1226
- s0 = peg$FAILED;
1227
- }
1228
- }
1229
- else {
1230
- peg$currPos = s0;
1231
- s0 = peg$FAILED;
1232
- }
1233
- }
1234
- return s0;
1235
- }
1236
- function peg$parseslice() {
1237
- var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9;
1238
- s0 = peg$currPos;
1239
- s1 = peg$parsenumber();
1240
- if (s1 === peg$FAILED) {
1241
- s1 = null;
1242
- }
1243
- s2 = peg$parsews();
1244
- if (input.charCodeAt(peg$currPos) === 58) {
1245
- s3 = peg$c15;
1246
- peg$currPos++;
1247
- }
1248
- else {
1249
- s3 = peg$FAILED;
1250
- if (peg$silentFails === 0) {
1251
- peg$fail(peg$e15);
1252
- }
1253
- }
1254
- if (s3 !== peg$FAILED) {
1255
- s4 = peg$parsews();
1256
- s5 = peg$parsenumber();
1257
- if (s5 === peg$FAILED) {
1258
- s5 = null;
1259
- }
1260
- s6 = peg$parsews();
1261
- if (input.charCodeAt(peg$currPos) === 58) {
1262
- s7 = peg$c15;
1263
- peg$currPos++;
1264
- }
1265
- else {
1266
- s7 = peg$FAILED;
1267
- if (peg$silentFails === 0) {
1268
- peg$fail(peg$e15);
1269
- }
1270
- }
1271
- if (s7 === peg$FAILED) {
1272
- s7 = null;
1273
- }
1274
- s8 = peg$parsews();
1275
- s9 = peg$parsenumber();
1276
- if (s9 === peg$FAILED) {
1277
- s9 = null;
1278
- }
1279
- peg$savedPos = s0;
1280
- s0 = peg$f17(s1, s5, s9);
1281
- }
1282
- else {
1283
- peg$currPos = s0;
1284
- s0 = peg$FAILED;
1285
- }
1286
- return s0;
1287
- }
1288
- function peg$parseindex_expression() {
1289
- var s0, s1, s2, s3;
1290
- s0 = peg$currPos;
1291
- s1 = peg$parseindex_lhs();
1292
- if (s1 !== peg$FAILED) {
1293
- s2 = [];
1294
- s3 = peg$parseindex_rhs();
1295
- while (s3 !== peg$FAILED) {
1296
- s2.push(s3);
1297
- s3 = peg$parseindex_rhs();
1298
- }
1299
- peg$savedPos = s0;
1300
- s0 = peg$f18(s1, s2);
1301
- }
1302
- else {
1303
- peg$currPos = s0;
1304
- s0 = peg$FAILED;
1305
- }
1306
- return s0;
1307
- }
1308
- function peg$parseindex_lhs() {
1309
- var s0, s1;
1310
- s0 = peg$currPos;
1311
- s1 = peg$parseindex_rhs();
1312
- if (s1 !== peg$FAILED) {
1313
- peg$savedPos = s0;
1314
- s1 = peg$f19(s1);
1315
- }
1316
- s0 = s1;
1317
- if (s0 === peg$FAILED) {
1318
- s0 = peg$parsemember_expression();
1319
- }
1320
- return s0;
1321
- }
1322
- function peg$parseindex_rhs() {
1323
- var s0, s1, s2, s3, s4, s5, s6;
1324
- s0 = peg$currPos;
1325
- s1 = peg$parsews();
1326
- if (input.charCodeAt(peg$currPos) === 91) {
1327
- s2 = peg$c13;
1328
- peg$currPos++;
1329
- }
1330
- else {
1331
- s2 = peg$FAILED;
1332
- if (peg$silentFails === 0) {
1333
- peg$fail(peg$e13);
1334
- }
1335
- }
1336
- if (s2 !== peg$FAILED) {
1337
- s3 = peg$parsews();
1338
- s4 = peg$parsenumber();
1339
- if (s4 !== peg$FAILED) {
1340
- s5 = peg$parsews();
1341
- if (input.charCodeAt(peg$currPos) === 93) {
1342
- s6 = peg$c12;
1343
- peg$currPos++;
1344
- }
1345
- else {
1346
- s6 = peg$FAILED;
1347
- if (peg$silentFails === 0) {
1348
- peg$fail(peg$e12);
1349
- }
1350
- }
1351
- if (s6 !== peg$FAILED) {
1352
- peg$savedPos = s0;
1353
- s0 = peg$f20(s4);
1354
- }
1355
- else {
1356
- peg$currPos = s0;
1357
- s0 = peg$FAILED;
1358
- }
1359
- }
1360
- else {
1361
- peg$currPos = s0;
1362
- s0 = peg$FAILED;
1363
- }
1364
- }
1365
- else {
1366
- peg$currPos = s0;
1367
- s0 = peg$FAILED;
1368
- }
1369
- if (s0 === peg$FAILED) {
1370
- s0 = peg$currPos;
1371
- s1 = peg$parsews();
1372
- if (input.charCodeAt(peg$currPos) === 91) {
1373
- s2 = peg$c13;
1374
- peg$currPos++;
1375
- }
1376
- else {
1377
- s2 = peg$FAILED;
1378
- if (peg$silentFails === 0) {
1379
- peg$fail(peg$e13);
1380
- }
1381
- }
1382
- if (s2 !== peg$FAILED) {
1383
- s3 = peg$parsews();
1384
- s4 = peg$parseraw_string();
1385
- if (s4 !== peg$FAILED) {
1386
- s5 = peg$parsews();
1387
- if (input.charCodeAt(peg$currPos) === 93) {
1388
- s6 = peg$c12;
1389
- peg$currPos++;
1390
- }
1391
- else {
1392
- s6 = peg$FAILED;
1393
- if (peg$silentFails === 0) {
1394
- peg$fail(peg$e12);
1395
- }
1396
- }
1397
- if (s6 !== peg$FAILED) {
1398
- peg$savedPos = s0;
1399
- s0 = peg$f21(s4);
1400
- }
1401
- else {
1402
- peg$currPos = s0;
1403
- s0 = peg$FAILED;
1404
- }
1405
- }
1406
- else {
1407
- peg$currPos = s0;
1408
- s0 = peg$FAILED;
1409
- }
1410
- }
1411
- else {
1412
- peg$currPos = s0;
1413
- s0 = peg$FAILED;
1414
- }
1415
- }
1416
- return s0;
1417
- }
1418
- function peg$parsedot_rhs() {
1419
- var s0, s1, s2, s3, s4;
1420
- s0 = peg$currPos;
1421
- s1 = peg$parsews();
1422
- if (input.charCodeAt(peg$currPos) === 46) {
1423
- s2 = peg$c16;
1424
- peg$currPos++;
1425
- }
1426
- else {
1427
- s2 = peg$FAILED;
1428
- if (peg$silentFails === 0) {
1429
- peg$fail(peg$e16);
1430
- }
1431
- }
1432
- if (s2 !== peg$FAILED) {
1433
- s3 = peg$parsews();
1434
- s4 = peg$parseidentifier();
1435
- if (s4 !== peg$FAILED) {
1436
- peg$savedPos = s0;
1437
- s0 = peg$f22(s4);
1438
- }
1439
- else {
1440
- peg$currPos = s0;
1441
- s0 = peg$FAILED;
1442
- }
1443
- }
1444
- else {
1445
- peg$currPos = s0;
1446
- s0 = peg$FAILED;
1447
- }
1448
- return s0;
1449
- }
1450
- function peg$parsemember_expression() {
1451
- var s0, s1, s2, s3;
1452
- s0 = peg$currPos;
1453
- s1 = peg$parseprimary_expression();
1454
- if (s1 !== peg$FAILED) {
1455
- s2 = [];
1456
- s3 = peg$parsedot_rhs();
1457
- while (s3 !== peg$FAILED) {
1458
- s2.push(s3);
1459
- s3 = peg$parsedot_rhs();
1460
- }
1461
- peg$savedPos = s0;
1462
- s0 = peg$f23(s1, s2);
1463
- }
1464
- else {
1465
- peg$currPos = s0;
1466
- s0 = peg$FAILED;
1467
- }
1468
- return s0;
1469
- }
1470
- function peg$parseprimary_expression() {
1471
- var s0, s1, s2, s3;
1472
- s0 = peg$currPos;
1473
- s1 = peg$parseidentifier();
1474
- if (s1 !== peg$FAILED) {
1475
- peg$savedPos = s0;
1476
- s1 = peg$f24(s1);
1477
- }
1478
- s0 = s1;
1479
- if (s0 === peg$FAILED) {
1480
- s0 = peg$currPos;
1481
- if (input.charCodeAt(peg$currPos) === 64) {
1482
- s1 = peg$c17;
1483
- peg$currPos++;
1484
- }
1485
- else {
1486
- s1 = peg$FAILED;
1487
- if (peg$silentFails === 0) {
1488
- peg$fail(peg$e17);
1489
- }
1490
- }
1491
- if (s1 !== peg$FAILED) {
1492
- peg$savedPos = s0;
1493
- s1 = peg$f25();
1494
- }
1495
- s0 = s1;
1496
- if (s0 === peg$FAILED) {
1497
- s0 = peg$parseliteral();
1498
- if (s0 === peg$FAILED) {
1499
- s0 = peg$currPos;
1500
- s1 = peg$parseraw_string();
1501
- if (s1 !== peg$FAILED) {
1502
- peg$savedPos = s0;
1503
- s1 = peg$f26(s1);
1504
- }
1505
- s0 = s1;
1506
- if (s0 === peg$FAILED) {
1507
- s0 = peg$currPos;
1508
- if (input.charCodeAt(peg$currPos) === 40) {
1509
- s1 = peg$c18;
1510
- peg$currPos++;
1511
- }
1512
- else {
1513
- s1 = peg$FAILED;
1514
- if (peg$silentFails === 0) {
1515
- peg$fail(peg$e18);
1516
- }
1517
- }
1518
- if (s1 !== peg$FAILED) {
1519
- s2 = peg$parseselector();
1520
- if (s2 !== peg$FAILED) {
1521
- if (input.charCodeAt(peg$currPos) === 41) {
1522
- s3 = peg$c19;
1523
- peg$currPos++;
1524
- }
1525
- else {
1526
- s3 = peg$FAILED;
1527
- if (peg$silentFails === 0) {
1528
- peg$fail(peg$e19);
1529
- }
1530
- }
1531
- if (s3 !== peg$FAILED) {
1532
- s0 = s2;
1533
- }
1534
- else {
1535
- peg$currPos = s0;
1536
- s0 = peg$FAILED;
1537
- }
1538
- }
1539
- else {
1540
- peg$currPos = s0;
1541
- s0 = peg$FAILED;
1542
- }
1543
- }
1544
- else {
1545
- peg$currPos = s0;
1546
- s0 = peg$FAILED;
1547
- }
1548
- }
1549
- }
1550
- }
1551
- }
1552
- return s0;
1553
- }
1554
- function peg$parseliteral() {
1555
- var s0, s1, s2, s3, s4, s5;
1556
- s0 = peg$currPos;
1557
- if (input.charCodeAt(peg$currPos) === 96) {
1558
- s1 = peg$c20;
1559
- peg$currPos++;
1560
- }
1561
- else {
1562
- s1 = peg$FAILED;
1563
- if (peg$silentFails === 0) {
1564
- peg$fail(peg$e20);
1565
- }
1566
- }
1567
- if (s1 !== peg$FAILED) {
1568
- s2 = peg$parsews();
1569
- s3 = peg$parsejson_value();
1570
- if (s3 === peg$FAILED) {
1571
- s3 = peg$parseunquoted_json_string();
1572
- }
1573
- if (s3 !== peg$FAILED) {
1574
- s4 = peg$parsews();
1575
- if (input.charCodeAt(peg$currPos) === 96) {
1576
- s5 = peg$c20;
1577
- peg$currPos++;
1578
- }
1579
- else {
1580
- s5 = peg$FAILED;
1581
- if (peg$silentFails === 0) {
1582
- peg$fail(peg$e20);
1583
- }
1584
- }
1585
- if (s5 !== peg$FAILED) {
1586
- peg$savedPos = s0;
1587
- s0 = peg$f27(s3);
1588
- }
1589
- else {
1590
- peg$currPos = s0;
1591
- s0 = peg$FAILED;
1592
- }
1593
- }
1594
- else {
1595
- peg$currPos = s0;
1596
- s0 = peg$FAILED;
1597
- }
1598
- }
1599
- else {
1600
- peg$currPos = s0;
1601
- s0 = peg$FAILED;
1602
- }
1603
- return s0;
1604
- }
1605
- function peg$parseidentifier() {
1606
- var s0;
1607
- s0 = peg$parseunquoted_string();
1608
- if (s0 === peg$FAILED) {
1609
- s0 = peg$parsequoted_string();
1610
- }
1611
- return s0;
1612
- }
1613
- function peg$parseunquoted_string() {
1614
- var s0, s1, s2, s3;
1615
- s0 = peg$currPos;
1616
- if (peg$r0.test(input.charAt(peg$currPos))) {
1617
- s1 = input.charAt(peg$currPos);
1618
- peg$currPos++;
1619
- }
1620
- else {
1621
- s1 = peg$FAILED;
1622
- if (peg$silentFails === 0) {
1623
- peg$fail(peg$e21);
1624
- }
1625
- }
1626
- if (s1 !== peg$FAILED) {
1627
- s2 = [];
1628
- if (peg$r1.test(input.charAt(peg$currPos))) {
1629
- s3 = input.charAt(peg$currPos);
1630
- peg$currPos++;
1631
- }
1632
- else {
1633
- s3 = peg$FAILED;
1634
- if (peg$silentFails === 0) {
1635
- peg$fail(peg$e22);
1636
- }
1637
- }
1638
- while (s3 !== peg$FAILED) {
1639
- s2.push(s3);
1640
- if (peg$r1.test(input.charAt(peg$currPos))) {
1641
- s3 = input.charAt(peg$currPos);
1642
- peg$currPos++;
1643
- }
1644
- else {
1645
- s3 = peg$FAILED;
1646
- if (peg$silentFails === 0) {
1647
- peg$fail(peg$e22);
1648
- }
1649
- }
1650
- }
1651
- peg$savedPos = s0;
1652
- s0 = peg$f28(s1, s2);
1653
- }
1654
- else {
1655
- peg$currPos = s0;
1656
- s0 = peg$FAILED;
1657
- }
1658
- return s0;
1659
- }
1660
- function peg$parsequoted_string() {
1661
- var s0, s1, s2, s3;
1662
- s0 = peg$currPos;
1663
- if (input.charCodeAt(peg$currPos) === 34) {
1664
- s1 = peg$c21;
1665
- peg$currPos++;
1666
- }
1667
- else {
1668
- s1 = peg$FAILED;
1669
- if (peg$silentFails === 0) {
1670
- peg$fail(peg$e23);
1671
- }
1672
- }
1673
- if (s1 !== peg$FAILED) {
1674
- s2 = [];
1675
- s3 = peg$parsechar();
1676
- while (s3 !== peg$FAILED) {
1677
- s2.push(s3);
1678
- s3 = peg$parsechar();
1679
- }
1680
- if (input.charCodeAt(peg$currPos) === 34) {
1681
- s3 = peg$c21;
1682
- peg$currPos++;
1683
- }
1684
- else {
1685
- s3 = peg$FAILED;
1686
- if (peg$silentFails === 0) {
1687
- peg$fail(peg$e23);
1688
- }
1689
- }
1690
- if (s3 !== peg$FAILED) {
1691
- peg$savedPos = s0;
1692
- s0 = peg$f29(s2);
1693
- }
1694
- else {
1695
- peg$currPos = s0;
1696
- s0 = peg$FAILED;
1697
- }
1698
- }
1699
- else {
1700
- peg$currPos = s0;
1701
- s0 = peg$FAILED;
1702
- }
1703
- return s0;
1704
- }
1705
- function peg$parsechar() {
1706
- var s0;
1707
- s0 = peg$parseunescaped_char();
1708
- if (s0 === peg$FAILED) {
1709
- s0 = peg$parseescaped_char();
1710
- }
1711
- return s0;
1712
- }
1713
- function peg$parseunescaped_char() {
1714
- var s0;
1715
- if (peg$r2.test(input.charAt(peg$currPos))) {
1716
- s0 = input.charAt(peg$currPos);
1717
- peg$currPos++;
1718
- }
1719
- else {
1720
- s0 = peg$FAILED;
1721
- if (peg$silentFails === 0) {
1722
- peg$fail(peg$e24);
1723
- }
1724
- }
1725
- return s0;
1726
- }
1727
- function peg$parseescaped_char() {
1728
- var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9;
1729
- s0 = peg$currPos;
1730
- if (input.charCodeAt(peg$currPos) === 92) {
1731
- s1 = peg$c22;
1732
- peg$currPos++;
1733
- }
1734
- else {
1735
- s1 = peg$FAILED;
1736
- if (peg$silentFails === 0) {
1737
- peg$fail(peg$e25);
1738
- }
1739
- }
1740
- if (s1 !== peg$FAILED) {
1741
- if (input.charCodeAt(peg$currPos) === 34) {
1742
- s2 = peg$c21;
1743
- peg$currPos++;
1744
- }
1745
- else {
1746
- s2 = peg$FAILED;
1747
- if (peg$silentFails === 0) {
1748
- peg$fail(peg$e23);
1749
- }
1750
- }
1751
- if (s2 === peg$FAILED) {
1752
- if (input.charCodeAt(peg$currPos) === 92) {
1753
- s2 = peg$c22;
1754
- peg$currPos++;
1755
- }
1756
- else {
1757
- s2 = peg$FAILED;
1758
- if (peg$silentFails === 0) {
1759
- peg$fail(peg$e25);
1760
- }
1761
- }
1762
- if (s2 === peg$FAILED) {
1763
- if (input.charCodeAt(peg$currPos) === 47) {
1764
- s2 = peg$c23;
1765
- peg$currPos++;
1766
- }
1767
- else {
1768
- s2 = peg$FAILED;
1769
- if (peg$silentFails === 0) {
1770
- peg$fail(peg$e26);
1771
- }
1772
- }
1773
- if (s2 === peg$FAILED) {
1774
- s2 = peg$currPos;
1775
- if (input.charCodeAt(peg$currPos) === 98) {
1776
- s3 = peg$c24;
1777
- peg$currPos++;
1778
- }
1779
- else {
1780
- s3 = peg$FAILED;
1781
- if (peg$silentFails === 0) {
1782
- peg$fail(peg$e27);
1783
- }
1784
- }
1785
- if (s3 !== peg$FAILED) {
1786
- peg$savedPos = s2;
1787
- s3 = peg$f30();
1788
- }
1789
- s2 = s3;
1790
- if (s2 === peg$FAILED) {
1791
- s2 = peg$currPos;
1792
- if (input.charCodeAt(peg$currPos) === 102) {
1793
- s3 = peg$c25;
1794
- peg$currPos++;
1795
- }
1796
- else {
1797
- s3 = peg$FAILED;
1798
- if (peg$silentFails === 0) {
1799
- peg$fail(peg$e28);
1800
- }
1801
- }
1802
- if (s3 !== peg$FAILED) {
1803
- peg$savedPos = s2;
1804
- s3 = peg$f31();
1805
- }
1806
- s2 = s3;
1807
- if (s2 === peg$FAILED) {
1808
- s2 = peg$currPos;
1809
- if (input.charCodeAt(peg$currPos) === 110) {
1810
- s3 = peg$c26;
1811
- peg$currPos++;
1812
- }
1813
- else {
1814
- s3 = peg$FAILED;
1815
- if (peg$silentFails === 0) {
1816
- peg$fail(peg$e29);
1817
- }
1818
- }
1819
- if (s3 !== peg$FAILED) {
1820
- peg$savedPos = s2;
1821
- s3 = peg$f32();
1822
- }
1823
- s2 = s3;
1824
- if (s2 === peg$FAILED) {
1825
- s2 = peg$currPos;
1826
- if (input.charCodeAt(peg$currPos) === 114) {
1827
- s3 = peg$c27;
1828
- peg$currPos++;
1829
- }
1830
- else {
1831
- s3 = peg$FAILED;
1832
- if (peg$silentFails === 0) {
1833
- peg$fail(peg$e30);
1834
- }
1835
- }
1836
- if (s3 !== peg$FAILED) {
1837
- peg$savedPos = s2;
1838
- s3 = peg$f33();
1839
- }
1840
- s2 = s3;
1841
- if (s2 === peg$FAILED) {
1842
- s2 = peg$currPos;
1843
- if (input.charCodeAt(peg$currPos) === 116) {
1844
- s3 = peg$c28;
1845
- peg$currPos++;
1846
- }
1847
- else {
1848
- s3 = peg$FAILED;
1849
- if (peg$silentFails === 0) {
1850
- peg$fail(peg$e31);
1851
- }
1852
- }
1853
- if (s3 !== peg$FAILED) {
1854
- peg$savedPos = s2;
1855
- s3 = peg$f34();
1856
- }
1857
- s2 = s3;
1858
- if (s2 === peg$FAILED) {
1859
- s2 = peg$currPos;
1860
- if (input.charCodeAt(peg$currPos) === 117) {
1861
- s3 = peg$c29;
1862
- peg$currPos++;
1863
- }
1864
- else {
1865
- s3 = peg$FAILED;
1866
- if (peg$silentFails === 0) {
1867
- peg$fail(peg$e32);
1868
- }
1869
- }
1870
- if (s3 !== peg$FAILED) {
1871
- s4 = peg$currPos;
1872
- s5 = peg$currPos;
1873
- s6 = peg$parseHEXDIG();
1874
- if (s6 !== peg$FAILED) {
1875
- s7 = peg$parseHEXDIG();
1876
- if (s7 !== peg$FAILED) {
1877
- s8 = peg$parseHEXDIG();
1878
- if (s8 !== peg$FAILED) {
1879
- s9 = peg$parseHEXDIG();
1880
- if (s9 !== peg$FAILED) {
1881
- s6 = [s6, s7, s8, s9];
1882
- s5 = s6;
1883
- }
1884
- else {
1885
- peg$currPos = s5;
1886
- s5 = peg$FAILED;
1887
- }
1888
- }
1889
- else {
1890
- peg$currPos = s5;
1891
- s5 = peg$FAILED;
1892
- }
1893
- }
1894
- else {
1895
- peg$currPos = s5;
1896
- s5 = peg$FAILED;
1897
- }
1898
- }
1899
- else {
1900
- peg$currPos = s5;
1901
- s5 = peg$FAILED;
1902
- }
1903
- if (s5 !== peg$FAILED) {
1904
- s4 = input.substring(s4, peg$currPos);
1905
- }
1906
- else {
1907
- s4 = s5;
1908
- }
1909
- if (s4 !== peg$FAILED) {
1910
- peg$savedPos = s2;
1911
- s2 = peg$f35(s4);
1912
- }
1913
- else {
1914
- peg$currPos = s2;
1915
- s2 = peg$FAILED;
1916
- }
1917
- }
1918
- else {
1919
- peg$currPos = s2;
1920
- s2 = peg$FAILED;
1921
- }
1922
- }
1923
- }
1924
- }
1925
- }
1926
- }
1927
- }
1928
- }
1929
- }
1930
- if (s2 !== peg$FAILED) {
1931
- s0 = s2;
1932
- }
1933
- else {
1934
- peg$currPos = s0;
1935
- s0 = peg$FAILED;
1936
- }
1937
- }
1938
- else {
1939
- peg$currPos = s0;
1940
- s0 = peg$FAILED;
1941
- }
1942
- return s0;
1943
- }
1944
- function peg$parseHEXDIG() {
1945
- var s0;
1946
- if (peg$r3.test(input.charAt(peg$currPos))) {
1947
- s0 = input.charAt(peg$currPos);
1948
- peg$currPos++;
1949
- }
1950
- else {
1951
- s0 = peg$FAILED;
1952
- if (peg$silentFails === 0) {
1953
- peg$fail(peg$e33);
1954
- }
1955
- }
1956
- return s0;
1957
- }
1958
- function peg$parseraw_string() {
1959
- var s0, s1, s2, s3;
1960
- s0 = peg$currPos;
1961
- if (input.charCodeAt(peg$currPos) === 39) {
1962
- s1 = peg$c30;
1963
- peg$currPos++;
1964
- }
1965
- else {
1966
- s1 = peg$FAILED;
1967
- if (peg$silentFails === 0) {
1968
- peg$fail(peg$e34);
1969
- }
1970
- }
1971
- if (s1 !== peg$FAILED) {
1972
- s2 = [];
1973
- s3 = peg$parseraw_string_char();
1974
- while (s3 !== peg$FAILED) {
1975
- s2.push(s3);
1976
- s3 = peg$parseraw_string_char();
1977
- }
1978
- if (input.charCodeAt(peg$currPos) === 39) {
1979
- s3 = peg$c30;
1980
- peg$currPos++;
1981
- }
1982
- else {
1983
- s3 = peg$FAILED;
1984
- if (peg$silentFails === 0) {
1985
- peg$fail(peg$e34);
1986
- }
1987
- }
1988
- if (s3 !== peg$FAILED) {
1989
- peg$savedPos = s0;
1990
- s0 = peg$f36(s2);
1991
- }
1992
- else {
1993
- peg$currPos = s0;
1994
- s0 = peg$FAILED;
1995
- }
1996
- }
1997
- else {
1998
- peg$currPos = s0;
1999
- s0 = peg$FAILED;
2000
- }
2001
- return s0;
2002
- }
2003
- function peg$parseraw_string_char() {
2004
- var s0;
2005
- s0 = peg$parseunescaped_raw_string_char();
2006
- if (s0 === peg$FAILED) {
2007
- s0 = peg$parsepreserved_escape();
2008
- if (s0 === peg$FAILED) {
2009
- s0 = peg$parseraw_string_escape();
2010
- }
2011
- }
2012
- return s0;
2013
- }
2014
- function peg$parseunescaped_raw_string_char() {
2015
- var s0;
2016
- if (peg$r4.test(input.charAt(peg$currPos))) {
2017
- s0 = input.charAt(peg$currPos);
2018
- peg$currPos++;
2019
- }
2020
- else {
2021
- s0 = peg$FAILED;
2022
- if (peg$silentFails === 0) {
2023
- peg$fail(peg$e35);
2024
- }
2025
- }
2026
- return s0;
2027
- }
2028
- function peg$parsepreserved_escape() {
2029
- var s0, s1, s2;
2030
- s0 = peg$currPos;
2031
- if (input.charCodeAt(peg$currPos) === 92) {
2032
- s1 = peg$c22;
2033
- peg$currPos++;
2034
- }
2035
- else {
2036
- s1 = peg$FAILED;
2037
- if (peg$silentFails === 0) {
2038
- peg$fail(peg$e25);
2039
- }
2040
- }
2041
- if (s1 !== peg$FAILED) {
2042
- if (peg$r5.test(input.charAt(peg$currPos))) {
2043
- s2 = input.charAt(peg$currPos);
2044
- peg$currPos++;
2045
- }
2046
- else {
2047
- s2 = peg$FAILED;
2048
- if (peg$silentFails === 0) {
2049
- peg$fail(peg$e36);
2050
- }
2051
- }
2052
- if (s2 !== peg$FAILED) {
2053
- peg$savedPos = s0;
2054
- s0 = peg$f37();
2055
- }
2056
- else {
2057
- peg$currPos = s0;
2058
- s0 = peg$FAILED;
2059
- }
2060
- }
2061
- else {
2062
- peg$currPos = s0;
2063
- s0 = peg$FAILED;
2064
- }
2065
- return s0;
2066
- }
2067
- function peg$parseraw_string_escape() {
2068
- var s0, s1, s2;
2069
- s0 = peg$currPos;
2070
- if (input.charCodeAt(peg$currPos) === 92) {
2071
- s1 = peg$c22;
2072
- peg$currPos++;
2073
- }
2074
- else {
2075
- s1 = peg$FAILED;
2076
- if (peg$silentFails === 0) {
2077
- peg$fail(peg$e25);
2078
- }
2079
- }
2080
- if (s1 !== peg$FAILED) {
2081
- if (input.charCodeAt(peg$currPos) === 39) {
2082
- s2 = peg$c30;
2083
- peg$currPos++;
2084
- }
2085
- else {
2086
- s2 = peg$FAILED;
2087
- if (peg$silentFails === 0) {
2088
- peg$fail(peg$e34);
2089
- }
2090
- }
2091
- if (s2 !== peg$FAILED) {
2092
- s0 = s2;
2093
- }
2094
- else {
2095
- peg$currPos = s0;
2096
- s0 = peg$FAILED;
2097
- }
2098
- }
2099
- else {
2100
- peg$currPos = s0;
2101
- s0 = peg$FAILED;
2102
- }
2103
- return s0;
2104
- }
2105
- function peg$parsenumber() {
2106
- var s0, s1;
2107
- s0 = peg$currPos;
2108
- s1 = peg$parseint();
2109
- if (s1 !== peg$FAILED) {
2110
- peg$savedPos = s0;
2111
- s1 = peg$f38();
2112
- }
2113
- s0 = s1;
2114
- return s0;
2115
- }
2116
- function peg$parseint() {
2117
- var s0, s1, s2, s3, s4, s5;
2118
- s0 = peg$currPos;
2119
- if (input.charCodeAt(peg$currPos) === 45) {
2120
- s1 = peg$c31;
2121
- peg$currPos++;
2122
- }
2123
- else {
2124
- s1 = peg$FAILED;
2125
- if (peg$silentFails === 0) {
2126
- peg$fail(peg$e37);
2127
- }
2128
- }
2129
- if (s1 === peg$FAILED) {
2130
- s1 = null;
2131
- }
2132
- if (input.charCodeAt(peg$currPos) === 48) {
2133
- s2 = peg$c32;
2134
- peg$currPos++;
2135
- }
2136
- else {
2137
- s2 = peg$FAILED;
2138
- if (peg$silentFails === 0) {
2139
- peg$fail(peg$e38);
2140
- }
2141
- }
2142
- if (s2 === peg$FAILED) {
2143
- s2 = peg$currPos;
2144
- if (peg$r6.test(input.charAt(peg$currPos))) {
2145
- s3 = input.charAt(peg$currPos);
2146
- peg$currPos++;
2147
- }
2148
- else {
2149
- s3 = peg$FAILED;
2150
- if (peg$silentFails === 0) {
2151
- peg$fail(peg$e39);
2152
- }
2153
- }
2154
- if (s3 !== peg$FAILED) {
2155
- s4 = [];
2156
- if (peg$r7.test(input.charAt(peg$currPos))) {
2157
- s5 = input.charAt(peg$currPos);
2158
- peg$currPos++;
2159
- }
2160
- else {
2161
- s5 = peg$FAILED;
2162
- if (peg$silentFails === 0) {
2163
- peg$fail(peg$e40);
2164
- }
2165
- }
2166
- while (s5 !== peg$FAILED) {
2167
- s4.push(s5);
2168
- if (peg$r7.test(input.charAt(peg$currPos))) {
2169
- s5 = input.charAt(peg$currPos);
2170
- peg$currPos++;
2171
- }
2172
- else {
2173
- s5 = peg$FAILED;
2174
- if (peg$silentFails === 0) {
2175
- peg$fail(peg$e40);
2176
- }
2177
- }
2178
- }
2179
- s3 = [s3, s4];
2180
- s2 = s3;
2181
- }
2182
- else {
2183
- peg$currPos = s2;
2184
- s2 = peg$FAILED;
2185
- }
2186
- }
2187
- if (s2 !== peg$FAILED) {
2188
- s1 = [s1, s2];
2189
- s0 = s1;
2190
- }
2191
- else {
2192
- peg$currPos = s0;
2193
- s0 = peg$FAILED;
2194
- }
2195
- return s0;
2196
- }
2197
- function peg$parsejson_value() {
2198
- var s0, s1;
2199
- s0 = peg$currPos;
2200
- if (input.substr(peg$currPos, 4) === peg$c33) {
2201
- s1 = peg$c33;
2202
- peg$currPos += 4;
2203
- }
2204
- else {
2205
- s1 = peg$FAILED;
2206
- if (peg$silentFails === 0) {
2207
- peg$fail(peg$e41);
2208
- }
2209
- }
2210
- if (s1 !== peg$FAILED) {
2211
- peg$savedPos = s0;
2212
- s1 = peg$f39();
2213
- }
2214
- s0 = s1;
2215
- if (s0 === peg$FAILED) {
2216
- s0 = peg$currPos;
2217
- if (input.substr(peg$currPos, 5) === peg$c34) {
2218
- s1 = peg$c34;
2219
- peg$currPos += 5;
2220
- }
2221
- else {
2222
- s1 = peg$FAILED;
2223
- if (peg$silentFails === 0) {
2224
- peg$fail(peg$e42);
2225
- }
2226
- }
2227
- if (s1 !== peg$FAILED) {
2228
- peg$savedPos = s0;
2229
- s1 = peg$f40();
2230
- }
2231
- s0 = s1;
2232
- if (s0 === peg$FAILED) {
2233
- s0 = peg$currPos;
2234
- if (input.substr(peg$currPos, 4) === peg$c35) {
2235
- s1 = peg$c35;
2236
- peg$currPos += 4;
2237
- }
2238
- else {
2239
- s1 = peg$FAILED;
2240
- if (peg$silentFails === 0) {
2241
- peg$fail(peg$e43);
2242
- }
2243
- }
2244
- if (s1 !== peg$FAILED) {
2245
- peg$savedPos = s0;
2246
- s1 = peg$f41();
2247
- }
2248
- s0 = s1;
2249
- if (s0 === peg$FAILED) {
2250
- s0 = peg$parsejson_number();
2251
- if (s0 === peg$FAILED) {
2252
- s0 = peg$parsejson_string();
2253
- if (s0 === peg$FAILED) {
2254
- s0 = peg$parsejson_object();
2255
- if (s0 === peg$FAILED) {
2256
- s0 = peg$parsejson_array();
2257
- }
2258
- }
2259
- }
2260
- }
2261
- }
2262
- }
2263
- return s0;
2264
- }
2265
- function peg$parsejson_number() {
2266
- var s0, s1, s2, s3, s4, s5, s6, s7;
2267
- s0 = peg$currPos;
2268
- s1 = peg$parseint();
2269
- if (s1 !== peg$FAILED) {
2270
- s2 = peg$currPos;
2271
- if (input.charCodeAt(peg$currPos) === 46) {
2272
- s3 = peg$c16;
2273
- peg$currPos++;
2274
- }
2275
- else {
2276
- s3 = peg$FAILED;
2277
- if (peg$silentFails === 0) {
2278
- peg$fail(peg$e16);
2279
- }
2280
- }
2281
- if (s3 !== peg$FAILED) {
2282
- s4 = [];
2283
- if (peg$r7.test(input.charAt(peg$currPos))) {
2284
- s5 = input.charAt(peg$currPos);
2285
- peg$currPos++;
2286
- }
2287
- else {
2288
- s5 = peg$FAILED;
2289
- if (peg$silentFails === 0) {
2290
- peg$fail(peg$e40);
2291
- }
2292
- }
2293
- if (s5 !== peg$FAILED) {
2294
- while (s5 !== peg$FAILED) {
2295
- s4.push(s5);
2296
- if (peg$r7.test(input.charAt(peg$currPos))) {
2297
- s5 = input.charAt(peg$currPos);
2298
- peg$currPos++;
2299
- }
2300
- else {
2301
- s5 = peg$FAILED;
2302
- if (peg$silentFails === 0) {
2303
- peg$fail(peg$e40);
2304
- }
2305
- }
2306
- }
2307
- }
2308
- else {
2309
- s4 = peg$FAILED;
2310
- }
2311
- if (s4 !== peg$FAILED) {
2312
- s3 = [s3, s4];
2313
- s2 = s3;
2314
- }
2315
- else {
2316
- peg$currPos = s2;
2317
- s2 = peg$FAILED;
2318
- }
2319
- }
2320
- else {
2321
- peg$currPos = s2;
2322
- s2 = peg$FAILED;
2323
- }
2324
- if (s2 === peg$FAILED) {
2325
- s2 = null;
2326
- }
2327
- s3 = peg$currPos;
2328
- if (peg$r8.test(input.charAt(peg$currPos))) {
2329
- s4 = input.charAt(peg$currPos);
2330
- peg$currPos++;
2331
- }
2332
- else {
2333
- s4 = peg$FAILED;
2334
- if (peg$silentFails === 0) {
2335
- peg$fail(peg$e44);
2336
- }
2337
- }
2338
- if (s4 !== peg$FAILED) {
2339
- if (peg$r9.test(input.charAt(peg$currPos))) {
2340
- s5 = input.charAt(peg$currPos);
2341
- peg$currPos++;
2342
- }
2343
- else {
2344
- s5 = peg$FAILED;
2345
- if (peg$silentFails === 0) {
2346
- peg$fail(peg$e45);
2347
- }
2348
- }
2349
- if (s5 === peg$FAILED) {
2350
- s5 = null;
2351
- }
2352
- s6 = [];
2353
- if (peg$r7.test(input.charAt(peg$currPos))) {
2354
- s7 = input.charAt(peg$currPos);
2355
- peg$currPos++;
2356
- }
2357
- else {
2358
- s7 = peg$FAILED;
2359
- if (peg$silentFails === 0) {
2360
- peg$fail(peg$e40);
2361
- }
2362
- }
2363
- if (s7 !== peg$FAILED) {
2364
- while (s7 !== peg$FAILED) {
2365
- s6.push(s7);
2366
- if (peg$r7.test(input.charAt(peg$currPos))) {
2367
- s7 = input.charAt(peg$currPos);
2368
- peg$currPos++;
2369
- }
2370
- else {
2371
- s7 = peg$FAILED;
2372
- if (peg$silentFails === 0) {
2373
- peg$fail(peg$e40);
2374
- }
2375
- }
2376
- }
2377
- }
2378
- else {
2379
- s6 = peg$FAILED;
2380
- }
2381
- if (s6 !== peg$FAILED) {
2382
- s4 = [s4, s5, s6];
2383
- s3 = s4;
2384
- }
2385
- else {
2386
- peg$currPos = s3;
2387
- s3 = peg$FAILED;
2388
- }
2389
- }
2390
- else {
2391
- peg$currPos = s3;
2392
- s3 = peg$FAILED;
2393
- }
2394
- if (s3 === peg$FAILED) {
2395
- s3 = null;
2396
- }
2397
- peg$savedPos = s0;
2398
- s0 = peg$f42();
2399
- }
2400
- else {
2401
- peg$currPos = s0;
2402
- s0 = peg$FAILED;
2403
- }
2404
- return s0;
2405
- }
2406
- function peg$parsejson_string() {
2407
- var s0, s1, s2, s3;
2408
- s0 = peg$currPos;
2409
- if (input.charCodeAt(peg$currPos) === 34) {
2410
- s1 = peg$c21;
2411
- peg$currPos++;
2412
- }
2413
- else {
2414
- s1 = peg$FAILED;
2415
- if (peg$silentFails === 0) {
2416
- peg$fail(peg$e23);
2417
- }
2418
- }
2419
- if (s1 !== peg$FAILED) {
2420
- s2 = peg$parseunquoted_json_string();
2421
- if (input.charCodeAt(peg$currPos) === 34) {
2422
- s3 = peg$c21;
2423
- peg$currPos++;
2424
- }
2425
- else {
2426
- s3 = peg$FAILED;
2427
- if (peg$silentFails === 0) {
2428
- peg$fail(peg$e23);
2429
- }
2430
- }
2431
- if (s3 !== peg$FAILED) {
2432
- s0 = s2;
2433
- }
2434
- else {
2435
- peg$currPos = s0;
2436
- s0 = peg$FAILED;
2437
- }
2438
- }
2439
- else {
2440
- peg$currPos = s0;
2441
- s0 = peg$FAILED;
2442
- }
2443
- return s0;
2444
- }
2445
- function peg$parseunquoted_json_string() {
2446
- var s0, s1, s2;
2447
- s0 = peg$currPos;
2448
- s1 = [];
2449
- s2 = peg$parseunescaped_literal();
2450
- if (s2 === peg$FAILED) {
2451
- s2 = peg$parseescaped_literal();
2452
- }
2453
- while (s2 !== peg$FAILED) {
2454
- s1.push(s2);
2455
- s2 = peg$parseunescaped_literal();
2456
- if (s2 === peg$FAILED) {
2457
- s2 = peg$parseescaped_literal();
2458
- }
2459
- }
2460
- peg$savedPos = s0;
2461
- s1 = peg$f43(s1);
2462
- s0 = s1;
2463
- return s0;
2464
- }
2465
- function peg$parseunescaped_literal() {
2466
- var s0;
2467
- if (peg$r10.test(input.charAt(peg$currPos))) {
2468
- s0 = input.charAt(peg$currPos);
2469
- peg$currPos++;
2470
- }
2471
- else {
2472
- s0 = peg$FAILED;
2473
- if (peg$silentFails === 0) {
2474
- peg$fail(peg$e46);
2475
- }
2476
- }
2477
- return s0;
2478
- }
2479
- function peg$parseescaped_literal() {
2480
- var s0, s1, s2;
2481
- s0 = peg$parseescaped_char();
2482
- if (s0 === peg$FAILED) {
2483
- s0 = peg$currPos;
2484
- if (input.charCodeAt(peg$currPos) === 92) {
2485
- s1 = peg$c22;
2486
- peg$currPos++;
2487
- }
2488
- else {
2489
- s1 = peg$FAILED;
2490
- if (peg$silentFails === 0) {
2491
- peg$fail(peg$e25);
2492
- }
2493
- }
2494
- if (s1 !== peg$FAILED) {
2495
- if (input.charCodeAt(peg$currPos) === 96) {
2496
- s2 = peg$c20;
2497
- peg$currPos++;
2498
- }
2499
- else {
2500
- s2 = peg$FAILED;
2501
- if (peg$silentFails === 0) {
2502
- peg$fail(peg$e20);
2503
- }
2504
- }
2505
- if (s2 !== peg$FAILED) {
2506
- s0 = s2;
2507
- }
2508
- else {
2509
- peg$currPos = s0;
2510
- s0 = peg$FAILED;
2511
- }
2512
- }
2513
- else {
2514
- peg$currPos = s0;
2515
- s0 = peg$FAILED;
2516
- }
2517
- }
2518
- return s0;
2519
- }
2520
- function peg$parsejson_object() {
2521
- var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10;
2522
- s0 = peg$currPos;
2523
- if (input.charCodeAt(peg$currPos) === 123) {
2524
- s1 = peg$c36;
2525
- peg$currPos++;
2526
- }
2527
- else {
2528
- s1 = peg$FAILED;
2529
- if (peg$silentFails === 0) {
2530
- peg$fail(peg$e47);
2531
- }
2532
- }
2533
- if (s1 !== peg$FAILED) {
2534
- s2 = peg$parsews();
2535
- s3 = peg$currPos;
2536
- s4 = peg$parsejson_member();
2537
- if (s4 !== peg$FAILED) {
2538
- s5 = [];
2539
- s6 = peg$currPos;
2540
- s7 = peg$parsews();
2541
- if (input.charCodeAt(peg$currPos) === 44) {
2542
- s8 = peg$c37;
2543
- peg$currPos++;
2544
- }
2545
- else {
2546
- s8 = peg$FAILED;
2547
- if (peg$silentFails === 0) {
2548
- peg$fail(peg$e48);
2549
- }
2550
- }
2551
- if (s8 !== peg$FAILED) {
2552
- s9 = peg$parsews();
2553
- s10 = peg$parsejson_member();
2554
- if (s10 !== peg$FAILED) {
2555
- s6 = s10;
2556
- }
2557
- else {
2558
- peg$currPos = s6;
2559
- s6 = peg$FAILED;
2560
- }
2561
- }
2562
- else {
2563
- peg$currPos = s6;
2564
- s6 = peg$FAILED;
2565
- }
2566
- while (s6 !== peg$FAILED) {
2567
- s5.push(s6);
2568
- s6 = peg$currPos;
2569
- s7 = peg$parsews();
2570
- if (input.charCodeAt(peg$currPos) === 44) {
2571
- s8 = peg$c37;
2572
- peg$currPos++;
2573
- }
2574
- else {
2575
- s8 = peg$FAILED;
2576
- if (peg$silentFails === 0) {
2577
- peg$fail(peg$e48);
2578
- }
2579
- }
2580
- if (s8 !== peg$FAILED) {
2581
- s9 = peg$parsews();
2582
- s10 = peg$parsejson_member();
2583
- if (s10 !== peg$FAILED) {
2584
- s6 = s10;
2585
- }
2586
- else {
2587
- peg$currPos = s6;
2588
- s6 = peg$FAILED;
2589
- }
2590
- }
2591
- else {
2592
- peg$currPos = s6;
2593
- s6 = peg$FAILED;
2594
- }
2595
- }
2596
- peg$savedPos = s3;
2597
- s3 = peg$f44(s4, s5);
2598
- }
2599
- else {
2600
- peg$currPos = s3;
2601
- s3 = peg$FAILED;
2602
- }
2603
- if (s3 === peg$FAILED) {
2604
- s3 = null;
2605
- }
2606
- s4 = peg$parsews();
2607
- if (input.charCodeAt(peg$currPos) === 125) {
2608
- s5 = peg$c38;
2609
- peg$currPos++;
2610
- }
2611
- else {
2612
- s5 = peg$FAILED;
2613
- if (peg$silentFails === 0) {
2614
- peg$fail(peg$e49);
2615
- }
2616
- }
2617
- if (s5 !== peg$FAILED) {
2618
- peg$savedPos = s0;
2619
- s0 = peg$f45(s3);
2620
- }
2621
- else {
2622
- peg$currPos = s0;
2623
- s0 = peg$FAILED;
2624
- }
2625
- }
2626
- else {
2627
- peg$currPos = s0;
2628
- s0 = peg$FAILED;
2629
- }
2630
- return s0;
2631
- }
2632
- function peg$parsejson_member() {
2633
- var s0, s1, s2, s3, s4, s5;
2634
- s0 = peg$currPos;
2635
- s1 = peg$parsejson_string();
2636
- if (s1 !== peg$FAILED) {
2637
- s2 = peg$parsews();
2638
- if (input.charCodeAt(peg$currPos) === 58) {
2639
- s3 = peg$c15;
2640
- peg$currPos++;
2641
- }
2642
- else {
2643
- s3 = peg$FAILED;
2644
- if (peg$silentFails === 0) {
2645
- peg$fail(peg$e15);
2646
- }
2647
- }
2648
- if (s3 !== peg$FAILED) {
2649
- s4 = peg$parsews();
2650
- s5 = peg$parsejson_value();
2651
- if (s5 !== peg$FAILED) {
2652
- peg$savedPos = s0;
2653
- s0 = peg$f46(s1, s5);
2654
- }
2655
- else {
2656
- peg$currPos = s0;
2657
- s0 = peg$FAILED;
2658
- }
2659
- }
2660
- else {
2661
- peg$currPos = s0;
2662
- s0 = peg$FAILED;
2663
- }
2664
- }
2665
- else {
2666
- peg$currPos = s0;
2667
- s0 = peg$FAILED;
2668
- }
2669
- return s0;
2670
- }
2671
- function peg$parsejson_array() {
2672
- var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10;
2673
- s0 = peg$currPos;
2674
- if (input.charCodeAt(peg$currPos) === 91) {
2675
- s1 = peg$c13;
2676
- peg$currPos++;
2677
- }
2678
- else {
2679
- s1 = peg$FAILED;
2680
- if (peg$silentFails === 0) {
2681
- peg$fail(peg$e13);
2682
- }
2683
- }
2684
- if (s1 !== peg$FAILED) {
2685
- s2 = peg$parsews();
2686
- s3 = peg$currPos;
2687
- s4 = peg$parsejson_value();
2688
- if (s4 !== peg$FAILED) {
2689
- s5 = [];
2690
- s6 = peg$currPos;
2691
- s7 = peg$parsews();
2692
- if (input.charCodeAt(peg$currPos) === 44) {
2693
- s8 = peg$c37;
2694
- peg$currPos++;
2695
- }
2696
- else {
2697
- s8 = peg$FAILED;
2698
- if (peg$silentFails === 0) {
2699
- peg$fail(peg$e48);
2700
- }
2701
- }
2702
- if (s8 !== peg$FAILED) {
2703
- s9 = peg$parsews();
2704
- s10 = peg$parsejson_value();
2705
- if (s10 !== peg$FAILED) {
2706
- s6 = s10;
2707
- }
2708
- else {
2709
- peg$currPos = s6;
2710
- s6 = peg$FAILED;
2711
- }
2712
- }
2713
- else {
2714
- peg$currPos = s6;
2715
- s6 = peg$FAILED;
2716
- }
2717
- while (s6 !== peg$FAILED) {
2718
- s5.push(s6);
2719
- s6 = peg$currPos;
2720
- s7 = peg$parsews();
2721
- if (input.charCodeAt(peg$currPos) === 44) {
2722
- s8 = peg$c37;
2723
- peg$currPos++;
2724
- }
2725
- else {
2726
- s8 = peg$FAILED;
2727
- if (peg$silentFails === 0) {
2728
- peg$fail(peg$e48);
2729
- }
2730
- }
2731
- if (s8 !== peg$FAILED) {
2732
- s9 = peg$parsews();
2733
- s10 = peg$parsejson_value();
2734
- if (s10 !== peg$FAILED) {
2735
- s6 = s10;
2736
- }
2737
- else {
2738
- peg$currPos = s6;
2739
- s6 = peg$FAILED;
2740
- }
2741
- }
2742
- else {
2743
- peg$currPos = s6;
2744
- s6 = peg$FAILED;
2745
- }
2746
- }
2747
- peg$savedPos = s3;
2748
- s3 = peg$f47(s4, s5);
2749
- }
2750
- else {
2751
- peg$currPos = s3;
2752
- s3 = peg$FAILED;
2753
- }
2754
- if (s3 === peg$FAILED) {
2755
- s3 = null;
2756
- }
2757
- s4 = peg$parsews();
2758
- if (input.charCodeAt(peg$currPos) === 93) {
2759
- s5 = peg$c12;
2760
- peg$currPos++;
2761
- }
2762
- else {
2763
- s5 = peg$FAILED;
2764
- if (peg$silentFails === 0) {
2765
- peg$fail(peg$e12);
2766
- }
2767
- }
2768
- if (s5 !== peg$FAILED) {
2769
- peg$savedPos = s0;
2770
- s0 = peg$f48(s3);
2771
- }
2772
- else {
2773
- peg$currPos = s0;
2774
- s0 = peg$FAILED;
2775
- }
2776
- }
2777
- else {
2778
- peg$currPos = s0;
2779
- s0 = peg$FAILED;
2780
- }
2781
- return s0;
2782
- }
2783
- function peg$parsews() {
2784
- var s0, s1;
2785
- peg$silentFails++;
2786
- s0 = [];
2787
- if (peg$r11.test(input.charAt(peg$currPos))) {
2788
- s1 = input.charAt(peg$currPos);
2789
- peg$currPos++;
2790
- }
2791
- else {
2792
- s1 = peg$FAILED;
2793
- if (peg$silentFails === 0) {
2794
- peg$fail(peg$e51);
2795
- }
2796
- }
2797
- while (s1 !== peg$FAILED) {
2798
- s0.push(s1);
2799
- if (peg$r11.test(input.charAt(peg$currPos))) {
2800
- s1 = input.charAt(peg$currPos);
2801
- peg$currPos++;
2802
- }
2803
- else {
2804
- s1 = peg$FAILED;
2805
- if (peg$silentFails === 0) {
2806
- peg$fail(peg$e51);
2807
- }
2808
- }
2809
- }
2810
- peg$silentFails--;
2811
- s1 = peg$FAILED;
2812
- if (peg$silentFails === 0) {
2813
- peg$fail(peg$e50);
2814
- }
2815
- return s0;
2816
- }
2817
- function binaryExpression(type, head, tail) {
2818
- return tail.reduce((lhs, rhs) => ({
2819
- type,
2820
- lhs,
2821
- rhs
2822
- }), head);
2823
- }
2824
- function reduceProjection(lhs, rhs) {
2825
- return rhs.reduce((result, fn) => fn(result), lhs);
2826
- }
2827
- function maybeProject(expression, pfns) {
2828
- return !pfns.length ? expression : ({
2829
- type: "project",
2830
- expression: unwrapTrivialProjection(expression),
2831
- projection: pfns.reduce((result, pfn) => pfn(result), { type: "current" })
2832
- });
2833
- }
2834
- function unwrapTrivialProjection(expression) {
2835
- const { type, projection } = expression;
2836
- return type === "project" && (!projection || projection.type === "current") ? expression.expression : expression;
2837
- }
2838
- peg$result = peg$startRuleFunction();
2839
- if (peg$result !== peg$FAILED && peg$currPos === input.length) {
2840
- return peg$result;
2841
- }
2842
- else {
2843
- if (peg$result !== peg$FAILED && peg$currPos < input.length) {
2844
- peg$fail(peg$endExpectation());
2845
- }
2846
- throw peg$buildStructuredError(peg$maxFailExpected, peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null, peg$maxFailPos < input.length
2847
- ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1)
2848
- : peg$computeLocation(peg$maxFailPos, peg$maxFailPos));
2849
- }
2850
- }
2851
- module.exports = {
2852
- SyntaxError: peg$SyntaxError,
2853
- parse: peg$parse
2854
- };
2855
- //# sourceMappingURL=parser.js.map