state-machine-cat 12.0.6 → 12.0.8

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 (45) hide show
  1. package/dist/cli/actions.mjs +34 -31
  2. package/dist/cli/attributes-parser.mjs +914 -889
  3. package/dist/cli/execute-command-line.mjs +98 -48
  4. package/dist/cli/file-name-to-stream.mjs +8 -8
  5. package/dist/cli/normalize.mjs +89 -70
  6. package/dist/cli/validations.mjs +72 -52
  7. package/dist/index-node.mjs +12 -9
  8. package/dist/index.mjs +10 -7
  9. package/dist/options.mjs +53 -53
  10. package/dist/parse/index.mjs +17 -17
  11. package/dist/parse/parser-helpers.mjs +159 -139
  12. package/dist/parse/scxml/index.mjs +152 -129
  13. package/dist/parse/scxml/normalize-machine.mjs +36 -35
  14. package/dist/parse/scxml/utl.mjs +1 -1
  15. package/dist/parse/smcat/smcat-parser.mjs +2794 -2844
  16. package/dist/parse/smcat-ast.schema.mjs +185 -168
  17. package/dist/render/dot/attributebuilder.mjs +40 -37
  18. package/dist/render/dot/counter.mjs +14 -14
  19. package/dist/render/dot/dot.states.template.js +1 -26
  20. package/dist/render/dot/dot.template.js +1 -14
  21. package/dist/render/dot/index.mjs +129 -82
  22. package/dist/render/dot/render-dot-from-ast.mjs +33 -16
  23. package/dist/render/dot/state-transformers.mjs +96 -85
  24. package/dist/render/dot/transition-transformers.mjs +39 -41
  25. package/dist/render/dot/utl.mjs +21 -19
  26. package/dist/render/index-node.mjs +16 -16
  27. package/dist/render/index.mjs +9 -9
  28. package/dist/render/scjson/index.mjs +111 -94
  29. package/dist/render/scjson/make-valid-event-names.mjs +21 -18
  30. package/dist/render/scjson/make-valid-xml-name.mjs +17 -13
  31. package/dist/render/scxml/index.mjs +2 -1
  32. package/dist/render/scxml/render-from-scjson.mjs +5 -2
  33. package/dist/render/scxml/scxml.states.template.js +1 -14
  34. package/dist/render/scxml/scxml.template.js +1 -6
  35. package/dist/render/smcat/index.mjs +54 -39
  36. package/dist/render/smcat/smcat.template.js +1 -13
  37. package/dist/render/vector/dot-to-vector-native.mjs +30 -26
  38. package/dist/render/vector/vector-native-dot-with-fallback.mjs +27 -20
  39. package/dist/render/vector/vector-with-wasm.mjs +13 -6
  40. package/dist/state-machine-model.mjs +67 -52
  41. package/dist/transform/desugar.mjs +115 -66
  42. package/dist/transform/utl.mjs +12 -12
  43. package/dist/version.mjs +1 -1
  44. package/package.json +74 -74
  45. package/types/state-machine-cat.d.mts +209 -209
@@ -1,902 +1,927 @@
1
1
  function peg$subclass(child, parent) {
2
- function C() { this.constructor = child; }
3
- C.prototype = parent.prototype;
4
- child.prototype = new C();
2
+ function C() {
3
+ this.constructor = child;
4
+ }
5
+ C.prototype = parent.prototype;
6
+ child.prototype = new C();
5
7
  }
6
8
  function peg$SyntaxError(message, expected, found, location) {
7
- var self = Error.call(this, message);
8
- if (Object.setPrototypeOf) {
9
- Object.setPrototypeOf(self, peg$SyntaxError.prototype);
10
- }
11
- self.expected = expected;
12
- self.found = found;
13
- self.location = location;
14
- self.name = "SyntaxError";
15
- return self;
9
+ var self = Error.call(this, message);
10
+ if (Object.setPrototypeOf) {
11
+ Object.setPrototypeOf(self, peg$SyntaxError.prototype);
12
+ }
13
+ self.expected = expected;
14
+ self.found = found;
15
+ self.location = location;
16
+ self.name = "SyntaxError";
17
+ return self;
16
18
  }
17
19
  peg$subclass(peg$SyntaxError, Error);
18
20
  function peg$padEnd(str, targetLength, padString) {
19
- padString = padString || " ";
20
- if (str.length > targetLength) {
21
- return str;
22
- }
23
- targetLength -= str.length;
24
- padString += padString.repeat(targetLength);
25
- return str + padString.slice(0, targetLength);
21
+ padString = padString || " ";
22
+ if (str.length > targetLength) {
23
+ return str;
24
+ }
25
+ targetLength -= str.length;
26
+ padString += padString.repeat(targetLength);
27
+ return str + padString.slice(0, targetLength);
26
28
  }
27
29
  peg$SyntaxError.prototype.format = function (sources) {
28
- var str = "Error: " + this.message;
29
- if (this.location) {
30
- var src = null;
31
- var k;
32
- for (k = 0; k < sources.length; k++) {
33
- if (sources[k].source === this.location.source) {
34
- src = sources[k].text.split(/\r\n|\n|\r/g);
35
- break;
36
- }
37
- }
38
- var s = this.location.start;
39
- var offset_s = (this.location.source && (typeof this.location.source.offset === "function"))
40
- ? this.location.source.offset(s)
41
- : s;
42
- var loc = this.location.source + ":" + offset_s.line + ":" + offset_s.column;
43
- if (src) {
44
- var e = this.location.end;
45
- var filler = peg$padEnd("", offset_s.line.toString().length, ' ');
46
- var line = src[s.line - 1];
47
- var last = s.line === e.line ? e.column : line.length + 1;
48
- var hatLen = (last - s.column) || 1;
49
- str += "\n --> " + loc + "\n"
50
- + filler + " |\n"
51
- + offset_s.line + " | " + line + "\n"
52
- + filler + " | " + peg$padEnd("", s.column - 1, ' ')
53
- + peg$padEnd("", hatLen, "^");
54
- }
55
- else {
56
- str += "\n at " + loc;
57
- }
58
- }
59
- return str;
30
+ var str = "Error: " + this.message;
31
+ if (this.location) {
32
+ var src = null;
33
+ var k;
34
+ for (k = 0; k < sources.length; k++) {
35
+ if (sources[k].source === this.location.source) {
36
+ src = sources[k].text.split(/\r\n|\n|\r/g);
37
+ break;
38
+ }
39
+ }
40
+ var s = this.location.start;
41
+ var offset_s =
42
+ this.location.source && typeof this.location.source.offset === "function"
43
+ ? this.location.source.offset(s)
44
+ : s;
45
+ var loc =
46
+ this.location.source + ":" + offset_s.line + ":" + offset_s.column;
47
+ if (src) {
48
+ var e = this.location.end;
49
+ var filler = peg$padEnd("", offset_s.line.toString().length, " ");
50
+ var line = src[s.line - 1];
51
+ var last = s.line === e.line ? e.column : line.length + 1;
52
+ var hatLen = last - s.column || 1;
53
+ str +=
54
+ "\n --> " +
55
+ loc +
56
+ "\n" +
57
+ filler +
58
+ " |\n" +
59
+ offset_s.line +
60
+ " | " +
61
+ line +
62
+ "\n" +
63
+ filler +
64
+ " | " +
65
+ peg$padEnd("", s.column - 1, " ") +
66
+ peg$padEnd("", hatLen, "^");
67
+ } else {
68
+ str += "\n at " + loc;
69
+ }
70
+ }
71
+ return str;
60
72
  };
61
73
  peg$SyntaxError.buildMessage = function (expected, found) {
62
- var DESCRIBE_EXPECTATION_FNS = {
63
- literal: function (expectation) {
64
- return "\"" + literalEscape(expectation.text) + "\"";
65
- },
66
- class: function (expectation) {
67
- var escapedParts = expectation.parts.map(function (part) {
68
- return Array.isArray(part)
69
- ? classEscape(part[0]) + "-" + classEscape(part[1])
70
- : classEscape(part);
71
- });
72
- return "[" + (expectation.inverted ? "^" : "") + escapedParts.join("") + "]";
73
- },
74
- any: function () {
75
- return "any character";
76
- },
77
- end: function () {
78
- return "end of input";
79
- },
80
- other: function (expectation) {
81
- return expectation.description;
82
- }
83
- };
84
- function hex(ch) {
85
- return ch.charCodeAt(0).toString(16).toUpperCase();
86
- }
87
- function literalEscape(s) {
88
- return s
89
- .replace(/\\/g, "\\\\")
90
- .replace(/"/g, "\\\"")
91
- .replace(/\0/g, "\\0")
92
- .replace(/\t/g, "\\t")
93
- .replace(/\n/g, "\\n")
94
- .replace(/\r/g, "\\r")
95
- .replace(/[\x00-\x0F]/g, function (ch) { return "\\x0" + hex(ch); })
96
- .replace(/[\x10-\x1F\x7F-\x9F]/g, function (ch) { return "\\x" + hex(ch); });
97
- }
98
- function classEscape(s) {
99
- return s
100
- .replace(/\\/g, "\\\\")
101
- .replace(/\]/g, "\\]")
102
- .replace(/\^/g, "\\^")
103
- .replace(/-/g, "\\-")
104
- .replace(/\0/g, "\\0")
105
- .replace(/\t/g, "\\t")
106
- .replace(/\n/g, "\\n")
107
- .replace(/\r/g, "\\r")
108
- .replace(/[\x00-\x0F]/g, function (ch) { return "\\x0" + hex(ch); })
109
- .replace(/[\x10-\x1F\x7F-\x9F]/g, function (ch) { return "\\x" + hex(ch); });
110
- }
111
- function describeExpectation(expectation) {
112
- return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation);
113
- }
114
- function describeExpected(expected) {
115
- var descriptions = expected.map(describeExpectation);
116
- var i, j;
117
- descriptions.sort();
118
- if (descriptions.length > 0) {
119
- for (i = 1, j = 1; i < descriptions.length; i++) {
120
- if (descriptions[i - 1] !== descriptions[i]) {
121
- descriptions[j] = descriptions[i];
122
- j++;
123
- }
124
- }
125
- descriptions.length = j;
126
- }
127
- switch (descriptions.length) {
128
- case 1:
129
- return descriptions[0];
130
- case 2:
131
- return descriptions[0] + " or " + descriptions[1];
132
- default:
133
- return descriptions.slice(0, -1).join(", ")
134
- + ", or "
135
- + descriptions[descriptions.length - 1];
136
- }
137
- }
138
- function describeFound(found) {
139
- return found ? "\"" + literalEscape(found) + "\"" : "end of input";
140
- }
141
- return "Expected " + describeExpected(expected) + " but " + describeFound(found) + " found.";
74
+ var DESCRIBE_EXPECTATION_FNS = {
75
+ literal: function (expectation) {
76
+ return '"' + literalEscape(expectation.text) + '"';
77
+ },
78
+ class: function (expectation) {
79
+ var escapedParts = expectation.parts.map(function (part) {
80
+ return Array.isArray(part)
81
+ ? classEscape(part[0]) + "-" + classEscape(part[1])
82
+ : classEscape(part);
83
+ });
84
+ return (
85
+ "[" + (expectation.inverted ? "^" : "") + escapedParts.join("") + "]"
86
+ );
87
+ },
88
+ any: function () {
89
+ return "any character";
90
+ },
91
+ end: function () {
92
+ return "end of input";
93
+ },
94
+ other: function (expectation) {
95
+ return expectation.description;
96
+ },
97
+ };
98
+ function hex(ch) {
99
+ return ch.charCodeAt(0).toString(16).toUpperCase();
100
+ }
101
+ function literalEscape(s) {
102
+ return s
103
+ .replace(/\\/g, "\\\\")
104
+ .replace(/"/g, '\\"')
105
+ .replace(/\0/g, "\\0")
106
+ .replace(/\t/g, "\\t")
107
+ .replace(/\n/g, "\\n")
108
+ .replace(/\r/g, "\\r")
109
+ .replace(/[\x00-\x0F]/g, function (ch) {
110
+ return "\\x0" + hex(ch);
111
+ })
112
+ .replace(/[\x10-\x1F\x7F-\x9F]/g, function (ch) {
113
+ return "\\x" + hex(ch);
114
+ });
115
+ }
116
+ function classEscape(s) {
117
+ return s
118
+ .replace(/\\/g, "\\\\")
119
+ .replace(/\]/g, "\\]")
120
+ .replace(/\^/g, "\\^")
121
+ .replace(/-/g, "\\-")
122
+ .replace(/\0/g, "\\0")
123
+ .replace(/\t/g, "\\t")
124
+ .replace(/\n/g, "\\n")
125
+ .replace(/\r/g, "\\r")
126
+ .replace(/[\x00-\x0F]/g, function (ch) {
127
+ return "\\x0" + hex(ch);
128
+ })
129
+ .replace(/[\x10-\x1F\x7F-\x9F]/g, function (ch) {
130
+ return "\\x" + hex(ch);
131
+ });
132
+ }
133
+ function describeExpectation(expectation) {
134
+ return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation);
135
+ }
136
+ function describeExpected(expected) {
137
+ var descriptions = expected.map(describeExpectation);
138
+ var i, j;
139
+ descriptions.sort();
140
+ if (descriptions.length > 0) {
141
+ for (i = 1, j = 1; i < descriptions.length; i++) {
142
+ if (descriptions[i - 1] !== descriptions[i]) {
143
+ descriptions[j] = descriptions[i];
144
+ j++;
145
+ }
146
+ }
147
+ descriptions.length = j;
148
+ }
149
+ switch (descriptions.length) {
150
+ case 1:
151
+ return descriptions[0];
152
+ case 2:
153
+ return descriptions[0] + " or " + descriptions[1];
154
+ default:
155
+ return (
156
+ descriptions.slice(0, -1).join(", ") +
157
+ ", or " +
158
+ descriptions[descriptions.length - 1]
159
+ );
160
+ }
161
+ }
162
+ function describeFound(found) {
163
+ return found ? '"' + literalEscape(found) + '"' : "end of input";
164
+ }
165
+ return (
166
+ "Expected " +
167
+ describeExpected(expected) +
168
+ " but " +
169
+ describeFound(found) +
170
+ " found."
171
+ );
142
172
  };
143
173
  function peg$parse(input, options) {
144
- options = options !== undefined ? options : {};
145
- var peg$FAILED = {};
146
- var peg$source = options.grammarSource;
147
- var peg$startRuleFunctions = { properties: peg$parseproperties };
148
- var peg$startRuleFunction = peg$parseproperties;
149
- var peg$c0 = "=";
150
- var peg$c1 = "\"";
151
- var peg$c2 = "\\\"";
152
- var peg$c3 = "true";
153
- var peg$c4 = "false";
154
- var peg$c5 = ".";
155
- var peg$r0 = /^[\t-\n\r =]/;
156
- var peg$r1 = /^[0-9]/;
157
- var peg$r2 = /^[ \t\n\r]/;
158
- var peg$e0 = peg$otherExpectation("name value pair");
159
- var peg$e1 = peg$literalExpectation("=", false);
160
- var peg$e2 = peg$otherExpectation("valid value");
161
- var peg$e3 = peg$otherExpectation("a quoted or unquoted string");
162
- var peg$e4 = peg$otherExpectation("double quoted string");
163
- var peg$e5 = peg$literalExpectation("\"", false);
164
- var peg$e6 = peg$literalExpectation("\\\"", false);
165
- var peg$e7 = peg$anyExpectation();
166
- var peg$e8 = peg$classExpectation([["\t", "\n"], "\r", " ", "="], false, false);
167
- var peg$e9 = peg$otherExpectation("boolean");
168
- var peg$e10 = peg$literalExpectation("true", false);
169
- var peg$e11 = peg$literalExpectation("false", false);
170
- var peg$e12 = peg$otherExpectation("integer");
171
- var peg$e13 = peg$classExpectation([["0", "9"]], false, false);
172
- var peg$e14 = peg$otherExpectation("number");
173
- var peg$e15 = peg$literalExpectation(".", false);
174
- var peg$e16 = peg$otherExpectation("whitespace");
175
- var peg$e17 = peg$classExpectation([" ", "\t", "\n", "\r"], false, false);
176
- var peg$f0 = function (name, value) { return { name, value }; };
177
- var peg$f1 = function (s) { return s.join(""); };
178
- var peg$f2 = function (c) { return c; };
179
- var peg$f3 = function (s) { return text(); };
180
- var peg$f4 = function (c) { return c; };
181
- var peg$f5 = function (bool) { return (bool === "true"); };
182
- var peg$f6 = function () { return parseInt(text(), 10); };
183
- var peg$f7 = function () { return parseFloat(text()); };
184
- var peg$currPos = options.peg$currPos | 0;
185
- var peg$savedPos = peg$currPos;
186
- var peg$posDetailsCache = [{ line: 1, column: 1 }];
187
- var peg$maxFailPos = peg$currPos;
188
- var peg$maxFailExpected = options.peg$maxFailExpected || [];
189
- var peg$silentFails = options.peg$silentFails | 0;
190
- var peg$result;
191
- if (options.startRule) {
192
- if (!(options.startRule in peg$startRuleFunctions)) {
193
- throw new Error("Can't start parsing from rule \"" + options.startRule + "\".");
194
- }
195
- peg$startRuleFunction = peg$startRuleFunctions[options.startRule];
196
- }
197
- function text() {
198
- return input.substring(peg$savedPos, peg$currPos);
199
- }
200
- function offset() {
201
- return peg$savedPos;
202
- }
203
- function range() {
204
- return {
205
- source: peg$source,
206
- start: peg$savedPos,
207
- end: peg$currPos
208
- };
209
- }
210
- function location() {
211
- return peg$computeLocation(peg$savedPos, peg$currPos);
212
- }
213
- function expected(description, location) {
214
- location = location !== undefined
215
- ? location
216
- : peg$computeLocation(peg$savedPos, peg$currPos);
217
- throw peg$buildStructuredError([peg$otherExpectation(description)], input.substring(peg$savedPos, peg$currPos), location);
218
- }
219
- function error(message, location) {
220
- location = location !== undefined
221
- ? location
222
- : peg$computeLocation(peg$savedPos, peg$currPos);
223
- throw peg$buildSimpleError(message, location);
224
- }
225
- function peg$literalExpectation(text, ignoreCase) {
226
- return { type: "literal", text: text, ignoreCase: ignoreCase };
227
- }
228
- function peg$classExpectation(parts, inverted, ignoreCase) {
229
- return { type: "class", parts: parts, inverted: inverted, ignoreCase: ignoreCase };
230
- }
231
- function peg$anyExpectation() {
232
- return { type: "any" };
233
- }
234
- function peg$endExpectation() {
235
- return { type: "end" };
236
- }
237
- function peg$otherExpectation(description) {
238
- return { type: "other", description: description };
239
- }
240
- function peg$computePosDetails(pos) {
241
- var details = peg$posDetailsCache[pos];
242
- var p;
243
- if (details) {
244
- return details;
245
- }
246
- else {
247
- if (pos >= peg$posDetailsCache.length) {
248
- p = peg$posDetailsCache.length - 1;
249
- }
250
- else {
251
- p = pos;
252
- while (!peg$posDetailsCache[--p]) { }
253
- }
254
- details = peg$posDetailsCache[p];
255
- details = {
256
- line: details.line,
257
- column: details.column
258
- };
259
- while (p < pos) {
260
- if (input.charCodeAt(p) === 10) {
261
- details.line++;
262
- details.column = 1;
263
- }
264
- else {
265
- details.column++;
266
- }
267
- p++;
268
- }
269
- peg$posDetailsCache[pos] = details;
270
- return details;
271
- }
272
- }
273
- function peg$computeLocation(startPos, endPos, offset) {
274
- var startPosDetails = peg$computePosDetails(startPos);
275
- var endPosDetails = peg$computePosDetails(endPos);
276
- var res = {
277
- source: peg$source,
278
- start: {
279
- offset: startPos,
280
- line: startPosDetails.line,
281
- column: startPosDetails.column
282
- },
283
- end: {
284
- offset: endPos,
285
- line: endPosDetails.line,
286
- column: endPosDetails.column
287
- }
288
- };
289
- if (offset && peg$source && (typeof peg$source.offset === "function")) {
290
- res.start = peg$source.offset(res.start);
291
- res.end = peg$source.offset(res.end);
292
- }
293
- return res;
294
- }
295
- function peg$fail(expected) {
296
- if (peg$currPos < peg$maxFailPos) {
297
- return;
298
- }
299
- if (peg$currPos > peg$maxFailPos) {
300
- peg$maxFailPos = peg$currPos;
301
- peg$maxFailExpected = [];
302
- }
303
- peg$maxFailExpected.push(expected);
304
- }
305
- function peg$buildSimpleError(message, location) {
306
- return new peg$SyntaxError(message, null, null, location);
307
- }
308
- function peg$buildStructuredError(expected, found, location) {
309
- return new peg$SyntaxError(peg$SyntaxError.buildMessage(expected, found), expected, found, location);
310
- }
311
- function peg$parseproperties() {
312
- var s0, s1;
313
- s0 = [];
314
- s1 = peg$parsenamevaluepair();
315
- if (s1 !== peg$FAILED) {
316
- while (s1 !== peg$FAILED) {
317
- s0.push(s1);
318
- s1 = peg$parsenamevaluepair();
319
- }
320
- }
321
- else {
322
- s0 = peg$FAILED;
323
- }
324
- return s0;
325
- }
326
- function peg$parsenamevaluepair() {
327
- var s0, s1, s2, s3, s4, s5, s6, s7;
328
- peg$silentFails++;
329
- s0 = peg$currPos;
330
- s1 = peg$parse_();
331
- s2 = peg$parseunquotedstring();
332
- if (s2 !== peg$FAILED) {
333
- s3 = peg$parse_();
334
- if (input.charCodeAt(peg$currPos) === 61) {
335
- s4 = peg$c0;
336
- peg$currPos++;
337
- }
338
- else {
339
- s4 = peg$FAILED;
340
- if (peg$silentFails === 0) {
341
- peg$fail(peg$e1);
342
- }
343
- }
344
- if (s4 !== peg$FAILED) {
345
- s5 = peg$parse_();
346
- s6 = peg$parseval();
347
- if (s6 !== peg$FAILED) {
348
- s7 = peg$parse_();
349
- peg$savedPos = s0;
350
- s0 = peg$f0(s2, s6);
351
- }
352
- else {
353
- peg$currPos = s0;
354
- s0 = peg$FAILED;
355
- }
356
- }
357
- else {
358
- peg$currPos = s0;
359
- s0 = peg$FAILED;
360
- }
361
- }
362
- else {
363
- peg$currPos = s0;
364
- s0 = peg$FAILED;
365
- }
366
- peg$silentFails--;
367
- if (s0 === peg$FAILED) {
368
- s1 = peg$FAILED;
369
- if (peg$silentFails === 0) {
370
- peg$fail(peg$e0);
371
- }
372
- }
373
- return s0;
374
- }
375
- function peg$parseval() {
376
- var s0, s1;
377
- peg$silentFails++;
378
- s0 = peg$parsenumber();
379
- if (s0 === peg$FAILED) {
380
- s0 = peg$parseboolean();
381
- if (s0 === peg$FAILED) {
382
- s0 = peg$parsestring();
383
- }
384
- }
385
- peg$silentFails--;
386
- if (s0 === peg$FAILED) {
387
- s1 = peg$FAILED;
388
- if (peg$silentFails === 0) {
389
- peg$fail(peg$e2);
390
- }
391
- }
392
- return s0;
393
- }
394
- function peg$parsestring() {
395
- var s0, s1;
396
- peg$silentFails++;
397
- s0 = peg$parsequotedstring();
398
- if (s0 === peg$FAILED) {
399
- s0 = peg$parseunquotedstring();
400
- }
401
- peg$silentFails--;
402
- if (s0 === peg$FAILED) {
403
- s1 = peg$FAILED;
404
- if (peg$silentFails === 0) {
405
- peg$fail(peg$e3);
406
- }
407
- }
408
- return s0;
409
- }
410
- function peg$parsequotedstring() {
411
- var s0, s1, s2, s3;
412
- peg$silentFails++;
413
- s0 = peg$currPos;
414
- if (input.charCodeAt(peg$currPos) === 34) {
415
- s1 = peg$c1;
416
- peg$currPos++;
417
- }
418
- else {
419
- s1 = peg$FAILED;
420
- if (peg$silentFails === 0) {
421
- peg$fail(peg$e5);
422
- }
423
- }
424
- if (s1 !== peg$FAILED) {
425
- s2 = peg$parsequotedstringcontent();
426
- if (s2 !== peg$FAILED) {
427
- if (input.charCodeAt(peg$currPos) === 34) {
428
- s3 = peg$c1;
429
- peg$currPos++;
430
- }
431
- else {
432
- s3 = peg$FAILED;
433
- if (peg$silentFails === 0) {
434
- peg$fail(peg$e5);
435
- }
436
- }
437
- if (s3 !== peg$FAILED) {
438
- peg$savedPos = s0;
439
- s0 = peg$f1(s2);
440
- }
441
- else {
442
- peg$currPos = s0;
443
- s0 = peg$FAILED;
444
- }
445
- }
446
- else {
447
- peg$currPos = s0;
448
- s0 = peg$FAILED;
449
- }
450
- }
451
- else {
452
- peg$currPos = s0;
453
- s0 = peg$FAILED;
454
- }
455
- peg$silentFails--;
456
- if (s0 === peg$FAILED) {
457
- s1 = peg$FAILED;
458
- if (peg$silentFails === 0) {
459
- peg$fail(peg$e4);
460
- }
461
- }
462
- return s0;
463
- }
464
- function peg$parsequotedstringcontent() {
465
- var s0, s1, s2, s3;
466
- s0 = [];
467
- s1 = peg$currPos;
468
- s2 = peg$currPos;
469
- peg$silentFails++;
470
- if (input.charCodeAt(peg$currPos) === 34) {
471
- s3 = peg$c1;
472
- peg$currPos++;
473
- }
474
- else {
475
- s3 = peg$FAILED;
476
- if (peg$silentFails === 0) {
477
- peg$fail(peg$e5);
478
- }
479
- }
480
- peg$silentFails--;
481
- if (s3 === peg$FAILED) {
482
- s2 = undefined;
483
- }
484
- else {
485
- peg$currPos = s2;
486
- s2 = peg$FAILED;
487
- }
488
- if (s2 !== peg$FAILED) {
489
- if (input.substr(peg$currPos, 2) === peg$c2) {
490
- s3 = peg$c2;
491
- peg$currPos += 2;
492
- }
493
- else {
494
- s3 = peg$FAILED;
495
- if (peg$silentFails === 0) {
496
- peg$fail(peg$e6);
497
- }
498
- }
499
- if (s3 === peg$FAILED) {
500
- if (input.length > peg$currPos) {
501
- s3 = input.charAt(peg$currPos);
502
- peg$currPos++;
503
- }
504
- else {
505
- s3 = peg$FAILED;
506
- if (peg$silentFails === 0) {
507
- peg$fail(peg$e7);
508
- }
509
- }
510
- }
511
- if (s3 !== peg$FAILED) {
512
- peg$savedPos = s1;
513
- s1 = peg$f2(s3);
514
- }
515
- else {
516
- peg$currPos = s1;
517
- s1 = peg$FAILED;
518
- }
519
- }
520
- else {
521
- peg$currPos = s1;
522
- s1 = peg$FAILED;
523
- }
524
- if (s1 !== peg$FAILED) {
525
- while (s1 !== peg$FAILED) {
526
- s0.push(s1);
527
- s1 = peg$currPos;
528
- s2 = peg$currPos;
529
- peg$silentFails++;
530
- if (input.charCodeAt(peg$currPos) === 34) {
531
- s3 = peg$c1;
532
- peg$currPos++;
533
- }
534
- else {
535
- s3 = peg$FAILED;
536
- if (peg$silentFails === 0) {
537
- peg$fail(peg$e5);
538
- }
539
- }
540
- peg$silentFails--;
541
- if (s3 === peg$FAILED) {
542
- s2 = undefined;
543
- }
544
- else {
545
- peg$currPos = s2;
546
- s2 = peg$FAILED;
547
- }
548
- if (s2 !== peg$FAILED) {
549
- if (input.substr(peg$currPos, 2) === peg$c2) {
550
- s3 = peg$c2;
551
- peg$currPos += 2;
552
- }
553
- else {
554
- s3 = peg$FAILED;
555
- if (peg$silentFails === 0) {
556
- peg$fail(peg$e6);
557
- }
558
- }
559
- if (s3 === peg$FAILED) {
560
- if (input.length > peg$currPos) {
561
- s3 = input.charAt(peg$currPos);
562
- peg$currPos++;
563
- }
564
- else {
565
- s3 = peg$FAILED;
566
- if (peg$silentFails === 0) {
567
- peg$fail(peg$e7);
568
- }
569
- }
570
- }
571
- if (s3 !== peg$FAILED) {
572
- peg$savedPos = s1;
573
- s1 = peg$f2(s3);
574
- }
575
- else {
576
- peg$currPos = s1;
577
- s1 = peg$FAILED;
578
- }
579
- }
580
- else {
581
- peg$currPos = s1;
582
- s1 = peg$FAILED;
583
- }
584
- }
585
- }
586
- else {
587
- s0 = peg$FAILED;
588
- }
589
- return s0;
590
- }
591
- function peg$parseunquotedstring() {
592
- var s0, s1;
593
- s0 = peg$currPos;
594
- s1 = peg$parseunquotedstringcontent();
595
- if (s1 !== peg$FAILED) {
596
- peg$savedPos = s0;
597
- s1 = peg$f3(s1);
598
- }
599
- s0 = s1;
600
- return s0;
601
- }
602
- function peg$parseunquotedstringcontent() {
603
- var s0, s1, s2, s3;
604
- s0 = [];
605
- s1 = peg$currPos;
606
- s2 = peg$currPos;
607
- peg$silentFails++;
608
- s3 = input.charAt(peg$currPos);
609
- if (peg$r0.test(s3)) {
610
- peg$currPos++;
611
- }
612
- else {
613
- s3 = peg$FAILED;
614
- if (peg$silentFails === 0) {
615
- peg$fail(peg$e8);
616
- }
617
- }
618
- peg$silentFails--;
619
- if (s3 === peg$FAILED) {
620
- s2 = undefined;
621
- }
622
- else {
623
- peg$currPos = s2;
624
- s2 = peg$FAILED;
625
- }
626
- if (s2 !== peg$FAILED) {
627
- if (input.length > peg$currPos) {
628
- s3 = input.charAt(peg$currPos);
629
- peg$currPos++;
630
- }
631
- else {
632
- s3 = peg$FAILED;
633
- if (peg$silentFails === 0) {
634
- peg$fail(peg$e7);
635
- }
636
- }
637
- if (s3 !== peg$FAILED) {
638
- peg$savedPos = s1;
639
- s1 = peg$f4(s3);
640
- }
641
- else {
642
- peg$currPos = s1;
643
- s1 = peg$FAILED;
644
- }
645
- }
646
- else {
647
- peg$currPos = s1;
648
- s1 = peg$FAILED;
649
- }
650
- if (s1 !== peg$FAILED) {
651
- while (s1 !== peg$FAILED) {
652
- s0.push(s1);
653
- s1 = peg$currPos;
654
- s2 = peg$currPos;
655
- peg$silentFails++;
656
- s3 = input.charAt(peg$currPos);
657
- if (peg$r0.test(s3)) {
658
- peg$currPos++;
659
- }
660
- else {
661
- s3 = peg$FAILED;
662
- if (peg$silentFails === 0) {
663
- peg$fail(peg$e8);
664
- }
665
- }
666
- peg$silentFails--;
667
- if (s3 === peg$FAILED) {
668
- s2 = undefined;
669
- }
670
- else {
671
- peg$currPos = s2;
672
- s2 = peg$FAILED;
673
- }
674
- if (s2 !== peg$FAILED) {
675
- if (input.length > peg$currPos) {
676
- s3 = input.charAt(peg$currPos);
677
- peg$currPos++;
678
- }
679
- else {
680
- s3 = peg$FAILED;
681
- if (peg$silentFails === 0) {
682
- peg$fail(peg$e7);
683
- }
684
- }
685
- if (s3 !== peg$FAILED) {
686
- peg$savedPos = s1;
687
- s1 = peg$f4(s3);
688
- }
689
- else {
690
- peg$currPos = s1;
691
- s1 = peg$FAILED;
692
- }
693
- }
694
- else {
695
- peg$currPos = s1;
696
- s1 = peg$FAILED;
697
- }
698
- }
699
- }
700
- else {
701
- s0 = peg$FAILED;
702
- }
703
- return s0;
704
- }
705
- function peg$parseboolean() {
706
- var s0, s1;
707
- peg$silentFails++;
708
- s0 = peg$currPos;
709
- if (input.substr(peg$currPos, 4) === peg$c3) {
710
- s1 = peg$c3;
711
- peg$currPos += 4;
712
- }
713
- else {
714
- s1 = peg$FAILED;
715
- if (peg$silentFails === 0) {
716
- peg$fail(peg$e10);
717
- }
718
- }
719
- if (s1 === peg$FAILED) {
720
- if (input.substr(peg$currPos, 5) === peg$c4) {
721
- s1 = peg$c4;
722
- peg$currPos += 5;
723
- }
724
- else {
725
- s1 = peg$FAILED;
726
- if (peg$silentFails === 0) {
727
- peg$fail(peg$e11);
728
- }
729
- }
730
- }
731
- if (s1 !== peg$FAILED) {
732
- peg$savedPos = s0;
733
- s1 = peg$f5(s1);
734
- }
735
- s0 = s1;
736
- peg$silentFails--;
737
- if (s0 === peg$FAILED) {
738
- s1 = peg$FAILED;
739
- if (peg$silentFails === 0) {
740
- peg$fail(peg$e9);
741
- }
742
- }
743
- return s0;
744
- }
745
- function peg$parseinteger() {
746
- var s0, s1, s2;
747
- peg$silentFails++;
748
- s0 = peg$currPos;
749
- s1 = [];
750
- s2 = input.charAt(peg$currPos);
751
- if (peg$r1.test(s2)) {
752
- peg$currPos++;
753
- }
754
- else {
755
- s2 = peg$FAILED;
756
- if (peg$silentFails === 0) {
757
- peg$fail(peg$e13);
758
- }
759
- }
760
- if (s2 !== peg$FAILED) {
761
- while (s2 !== peg$FAILED) {
762
- s1.push(s2);
763
- s2 = input.charAt(peg$currPos);
764
- if (peg$r1.test(s2)) {
765
- peg$currPos++;
766
- }
767
- else {
768
- s2 = peg$FAILED;
769
- if (peg$silentFails === 0) {
770
- peg$fail(peg$e13);
771
- }
772
- }
773
- }
774
- }
775
- else {
776
- s1 = peg$FAILED;
777
- }
778
- if (s1 !== peg$FAILED) {
779
- peg$savedPos = s0;
780
- s1 = peg$f6();
781
- }
782
- s0 = s1;
783
- peg$silentFails--;
784
- if (s0 === peg$FAILED) {
785
- s1 = peg$FAILED;
786
- if (peg$silentFails === 0) {
787
- peg$fail(peg$e12);
788
- }
789
- }
790
- return s0;
791
- }
792
- function peg$parsenumber() {
793
- var s0, s1, s2, s3, s4;
794
- peg$silentFails++;
795
- s0 = peg$currPos;
796
- s1 = peg$parseinteger();
797
- if (s1 !== peg$FAILED) {
798
- s2 = peg$currPos;
799
- if (input.charCodeAt(peg$currPos) === 46) {
800
- s3 = peg$c5;
801
- peg$currPos++;
802
- }
803
- else {
804
- s3 = peg$FAILED;
805
- if (peg$silentFails === 0) {
806
- peg$fail(peg$e15);
807
- }
808
- }
809
- if (s3 !== peg$FAILED) {
810
- s4 = peg$parseinteger();
811
- if (s4 !== peg$FAILED) {
812
- s3 = [s3, s4];
813
- s2 = s3;
814
- }
815
- else {
816
- peg$currPos = s2;
817
- s2 = peg$FAILED;
818
- }
819
- }
820
- else {
821
- peg$currPos = s2;
822
- s2 = peg$FAILED;
823
- }
824
- if (s2 === peg$FAILED) {
825
- s2 = null;
826
- }
827
- peg$savedPos = s0;
828
- s0 = peg$f7();
829
- }
830
- else {
831
- peg$currPos = s0;
832
- s0 = peg$FAILED;
833
- }
834
- peg$silentFails--;
835
- if (s0 === peg$FAILED) {
836
- s1 = peg$FAILED;
837
- if (peg$silentFails === 0) {
838
- peg$fail(peg$e14);
839
- }
840
- }
841
- return s0;
842
- }
843
- function peg$parse_() {
844
- var s0, s1;
845
- peg$silentFails++;
846
- s0 = [];
847
- s1 = input.charAt(peg$currPos);
848
- if (peg$r2.test(s1)) {
849
- peg$currPos++;
850
- }
851
- else {
852
- s1 = peg$FAILED;
853
- if (peg$silentFails === 0) {
854
- peg$fail(peg$e17);
855
- }
856
- }
857
- while (s1 !== peg$FAILED) {
858
- s0.push(s1);
859
- s1 = input.charAt(peg$currPos);
860
- if (peg$r2.test(s1)) {
861
- peg$currPos++;
862
- }
863
- else {
864
- s1 = peg$FAILED;
865
- if (peg$silentFails === 0) {
866
- peg$fail(peg$e17);
867
- }
868
- }
869
- }
870
- peg$silentFails--;
871
- s1 = peg$FAILED;
872
- if (peg$silentFails === 0) {
873
- peg$fail(peg$e16);
874
- }
875
- return s0;
876
- }
877
- peg$result = peg$startRuleFunction();
878
- if (options.peg$library) {
879
- return ({
880
- peg$result,
881
- peg$currPos,
882
- peg$FAILED,
883
- peg$maxFailExpected,
884
- peg$maxFailPos
885
- });
886
- }
887
- if (peg$result !== peg$FAILED && peg$currPos === input.length) {
888
- return peg$result;
889
- }
890
- else {
891
- if (peg$result !== peg$FAILED && peg$currPos < input.length) {
892
- peg$fail(peg$endExpectation());
893
- }
894
- throw peg$buildStructuredError(peg$maxFailExpected, peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null, peg$maxFailPos < input.length
895
- ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1)
896
- : peg$computeLocation(peg$maxFailPos, peg$maxFailPos));
897
- }
174
+ options = options !== undefined ? options : {};
175
+ var peg$FAILED = {};
176
+ var peg$source = options.grammarSource;
177
+ var peg$startRuleFunctions = { properties: peg$parseproperties };
178
+ var peg$startRuleFunction = peg$parseproperties;
179
+ var peg$c0 = "=";
180
+ var peg$c1 = '"';
181
+ var peg$c2 = '\\"';
182
+ var peg$c3 = "true";
183
+ var peg$c4 = "false";
184
+ var peg$c5 = ".";
185
+ var peg$r0 = /^[\t-\n\r =]/;
186
+ var peg$r1 = /^[0-9]/;
187
+ var peg$r2 = /^[ \t\n\r]/;
188
+ var peg$e0 = peg$otherExpectation("name value pair");
189
+ var peg$e1 = peg$literalExpectation("=", false);
190
+ var peg$e2 = peg$otherExpectation("valid value");
191
+ var peg$e3 = peg$otherExpectation("a quoted or unquoted string");
192
+ var peg$e4 = peg$otherExpectation("double quoted string");
193
+ var peg$e5 = peg$literalExpectation('"', false);
194
+ var peg$e6 = peg$literalExpectation('\\"', false);
195
+ var peg$e7 = peg$anyExpectation();
196
+ var peg$e8 = peg$classExpectation(
197
+ [["\t", "\n"], "\r", " ", "="],
198
+ false,
199
+ false,
200
+ );
201
+ var peg$e9 = peg$otherExpectation("boolean");
202
+ var peg$e10 = peg$literalExpectation("true", false);
203
+ var peg$e11 = peg$literalExpectation("false", false);
204
+ var peg$e12 = peg$otherExpectation("integer");
205
+ var peg$e13 = peg$classExpectation([["0", "9"]], false, false);
206
+ var peg$e14 = peg$otherExpectation("number");
207
+ var peg$e15 = peg$literalExpectation(".", false);
208
+ var peg$e16 = peg$otherExpectation("whitespace");
209
+ var peg$e17 = peg$classExpectation([" ", "\t", "\n", "\r"], false, false);
210
+ var peg$f0 = function (name, value) {
211
+ return { name, value };
212
+ };
213
+ var peg$f1 = function (s) {
214
+ return s.join("");
215
+ };
216
+ var peg$f2 = function (c) {
217
+ return c;
218
+ };
219
+ var peg$f3 = function (s) {
220
+ return text();
221
+ };
222
+ var peg$f4 = function (c) {
223
+ return c;
224
+ };
225
+ var peg$f5 = function (bool) {
226
+ return bool === "true";
227
+ };
228
+ var peg$f6 = function () {
229
+ return parseInt(text(), 10);
230
+ };
231
+ var peg$f7 = function () {
232
+ return parseFloat(text());
233
+ };
234
+ var peg$currPos = options.peg$currPos | 0;
235
+ var peg$savedPos = peg$currPos;
236
+ var peg$posDetailsCache = [{ line: 1, column: 1 }];
237
+ var peg$maxFailPos = peg$currPos;
238
+ var peg$maxFailExpected = options.peg$maxFailExpected || [];
239
+ var peg$silentFails = options.peg$silentFails | 0;
240
+ var peg$result;
241
+ if (options.startRule) {
242
+ if (!(options.startRule in peg$startRuleFunctions)) {
243
+ throw new Error(
244
+ "Can't start parsing from rule \"" + options.startRule + '".',
245
+ );
246
+ }
247
+ peg$startRuleFunction = peg$startRuleFunctions[options.startRule];
248
+ }
249
+ function text() {
250
+ return input.substring(peg$savedPos, peg$currPos);
251
+ }
252
+ function offset() {
253
+ return peg$savedPos;
254
+ }
255
+ function range() {
256
+ return {
257
+ source: peg$source,
258
+ start: peg$savedPos,
259
+ end: peg$currPos,
260
+ };
261
+ }
262
+ function location() {
263
+ return peg$computeLocation(peg$savedPos, peg$currPos);
264
+ }
265
+ function expected(description, location) {
266
+ location =
267
+ location !== undefined
268
+ ? location
269
+ : peg$computeLocation(peg$savedPos, peg$currPos);
270
+ throw peg$buildStructuredError(
271
+ [peg$otherExpectation(description)],
272
+ input.substring(peg$savedPos, peg$currPos),
273
+ location,
274
+ );
275
+ }
276
+ function error(message, location) {
277
+ location =
278
+ location !== undefined
279
+ ? location
280
+ : peg$computeLocation(peg$savedPos, peg$currPos);
281
+ throw peg$buildSimpleError(message, location);
282
+ }
283
+ function peg$literalExpectation(text, ignoreCase) {
284
+ return { type: "literal", text: text, ignoreCase: ignoreCase };
285
+ }
286
+ function peg$classExpectation(parts, inverted, ignoreCase) {
287
+ return {
288
+ type: "class",
289
+ parts: parts,
290
+ inverted: inverted,
291
+ ignoreCase: ignoreCase,
292
+ };
293
+ }
294
+ function peg$anyExpectation() {
295
+ return { type: "any" };
296
+ }
297
+ function peg$endExpectation() {
298
+ return { type: "end" };
299
+ }
300
+ function peg$otherExpectation(description) {
301
+ return { type: "other", description: description };
302
+ }
303
+ function peg$computePosDetails(pos) {
304
+ var details = peg$posDetailsCache[pos];
305
+ var p;
306
+ if (details) {
307
+ return details;
308
+ } else {
309
+ if (pos >= peg$posDetailsCache.length) {
310
+ p = peg$posDetailsCache.length - 1;
311
+ } else {
312
+ p = pos;
313
+ while (!peg$posDetailsCache[--p]) {}
314
+ }
315
+ details = peg$posDetailsCache[p];
316
+ details = {
317
+ line: details.line,
318
+ column: details.column,
319
+ };
320
+ while (p < pos) {
321
+ if (input.charCodeAt(p) === 10) {
322
+ details.line++;
323
+ details.column = 1;
324
+ } else {
325
+ details.column++;
326
+ }
327
+ p++;
328
+ }
329
+ peg$posDetailsCache[pos] = details;
330
+ return details;
331
+ }
332
+ }
333
+ function peg$computeLocation(startPos, endPos, offset) {
334
+ var startPosDetails = peg$computePosDetails(startPos);
335
+ var endPosDetails = peg$computePosDetails(endPos);
336
+ var res = {
337
+ source: peg$source,
338
+ start: {
339
+ offset: startPos,
340
+ line: startPosDetails.line,
341
+ column: startPosDetails.column,
342
+ },
343
+ end: {
344
+ offset: endPos,
345
+ line: endPosDetails.line,
346
+ column: endPosDetails.column,
347
+ },
348
+ };
349
+ if (offset && peg$source && typeof peg$source.offset === "function") {
350
+ res.start = peg$source.offset(res.start);
351
+ res.end = peg$source.offset(res.end);
352
+ }
353
+ return res;
354
+ }
355
+ function peg$fail(expected) {
356
+ if (peg$currPos < peg$maxFailPos) {
357
+ return;
358
+ }
359
+ if (peg$currPos > peg$maxFailPos) {
360
+ peg$maxFailPos = peg$currPos;
361
+ peg$maxFailExpected = [];
362
+ }
363
+ peg$maxFailExpected.push(expected);
364
+ }
365
+ function peg$buildSimpleError(message, location) {
366
+ return new peg$SyntaxError(message, null, null, location);
367
+ }
368
+ function peg$buildStructuredError(expected, found, location) {
369
+ return new peg$SyntaxError(
370
+ peg$SyntaxError.buildMessage(expected, found),
371
+ expected,
372
+ found,
373
+ location,
374
+ );
375
+ }
376
+ function peg$parseproperties() {
377
+ var s0, s1;
378
+ s0 = [];
379
+ s1 = peg$parsenamevaluepair();
380
+ if (s1 !== peg$FAILED) {
381
+ while (s1 !== peg$FAILED) {
382
+ s0.push(s1);
383
+ s1 = peg$parsenamevaluepair();
384
+ }
385
+ } else {
386
+ s0 = peg$FAILED;
387
+ }
388
+ return s0;
389
+ }
390
+ function peg$parsenamevaluepair() {
391
+ var s0, s1, s2, s3, s4, s5, s6, s7;
392
+ peg$silentFails++;
393
+ s0 = peg$currPos;
394
+ s1 = peg$parse_();
395
+ s2 = peg$parseunquotedstring();
396
+ if (s2 !== peg$FAILED) {
397
+ s3 = peg$parse_();
398
+ if (input.charCodeAt(peg$currPos) === 61) {
399
+ s4 = peg$c0;
400
+ peg$currPos++;
401
+ } else {
402
+ s4 = peg$FAILED;
403
+ if (peg$silentFails === 0) {
404
+ peg$fail(peg$e1);
405
+ }
406
+ }
407
+ if (s4 !== peg$FAILED) {
408
+ s5 = peg$parse_();
409
+ s6 = peg$parseval();
410
+ if (s6 !== peg$FAILED) {
411
+ s7 = peg$parse_();
412
+ peg$savedPos = s0;
413
+ s0 = peg$f0(s2, s6);
414
+ } else {
415
+ peg$currPos = s0;
416
+ s0 = peg$FAILED;
417
+ }
418
+ } else {
419
+ peg$currPos = s0;
420
+ s0 = peg$FAILED;
421
+ }
422
+ } else {
423
+ peg$currPos = s0;
424
+ s0 = peg$FAILED;
425
+ }
426
+ peg$silentFails--;
427
+ if (s0 === peg$FAILED) {
428
+ s1 = peg$FAILED;
429
+ if (peg$silentFails === 0) {
430
+ peg$fail(peg$e0);
431
+ }
432
+ }
433
+ return s0;
434
+ }
435
+ function peg$parseval() {
436
+ var s0, s1;
437
+ peg$silentFails++;
438
+ s0 = peg$parsenumber();
439
+ if (s0 === peg$FAILED) {
440
+ s0 = peg$parseboolean();
441
+ if (s0 === peg$FAILED) {
442
+ s0 = peg$parsestring();
443
+ }
444
+ }
445
+ peg$silentFails--;
446
+ if (s0 === peg$FAILED) {
447
+ s1 = peg$FAILED;
448
+ if (peg$silentFails === 0) {
449
+ peg$fail(peg$e2);
450
+ }
451
+ }
452
+ return s0;
453
+ }
454
+ function peg$parsestring() {
455
+ var s0, s1;
456
+ peg$silentFails++;
457
+ s0 = peg$parsequotedstring();
458
+ if (s0 === peg$FAILED) {
459
+ s0 = peg$parseunquotedstring();
460
+ }
461
+ peg$silentFails--;
462
+ if (s0 === peg$FAILED) {
463
+ s1 = peg$FAILED;
464
+ if (peg$silentFails === 0) {
465
+ peg$fail(peg$e3);
466
+ }
467
+ }
468
+ return s0;
469
+ }
470
+ function peg$parsequotedstring() {
471
+ var s0, s1, s2, s3;
472
+ peg$silentFails++;
473
+ s0 = peg$currPos;
474
+ if (input.charCodeAt(peg$currPos) === 34) {
475
+ s1 = peg$c1;
476
+ peg$currPos++;
477
+ } else {
478
+ s1 = peg$FAILED;
479
+ if (peg$silentFails === 0) {
480
+ peg$fail(peg$e5);
481
+ }
482
+ }
483
+ if (s1 !== peg$FAILED) {
484
+ s2 = peg$parsequotedstringcontent();
485
+ if (s2 !== peg$FAILED) {
486
+ if (input.charCodeAt(peg$currPos) === 34) {
487
+ s3 = peg$c1;
488
+ peg$currPos++;
489
+ } else {
490
+ s3 = peg$FAILED;
491
+ if (peg$silentFails === 0) {
492
+ peg$fail(peg$e5);
493
+ }
494
+ }
495
+ if (s3 !== peg$FAILED) {
496
+ peg$savedPos = s0;
497
+ s0 = peg$f1(s2);
498
+ } else {
499
+ peg$currPos = s0;
500
+ s0 = peg$FAILED;
501
+ }
502
+ } else {
503
+ peg$currPos = s0;
504
+ s0 = peg$FAILED;
505
+ }
506
+ } else {
507
+ peg$currPos = s0;
508
+ s0 = peg$FAILED;
509
+ }
510
+ peg$silentFails--;
511
+ if (s0 === peg$FAILED) {
512
+ s1 = peg$FAILED;
513
+ if (peg$silentFails === 0) {
514
+ peg$fail(peg$e4);
515
+ }
516
+ }
517
+ return s0;
518
+ }
519
+ function peg$parsequotedstringcontent() {
520
+ var s0, s1, s2, s3;
521
+ s0 = [];
522
+ s1 = peg$currPos;
523
+ s2 = peg$currPos;
524
+ peg$silentFails++;
525
+ if (input.charCodeAt(peg$currPos) === 34) {
526
+ s3 = peg$c1;
527
+ peg$currPos++;
528
+ } else {
529
+ s3 = peg$FAILED;
530
+ if (peg$silentFails === 0) {
531
+ peg$fail(peg$e5);
532
+ }
533
+ }
534
+ peg$silentFails--;
535
+ if (s3 === peg$FAILED) {
536
+ s2 = undefined;
537
+ } else {
538
+ peg$currPos = s2;
539
+ s2 = peg$FAILED;
540
+ }
541
+ if (s2 !== peg$FAILED) {
542
+ if (input.substr(peg$currPos, 2) === peg$c2) {
543
+ s3 = peg$c2;
544
+ peg$currPos += 2;
545
+ } else {
546
+ s3 = peg$FAILED;
547
+ if (peg$silentFails === 0) {
548
+ peg$fail(peg$e6);
549
+ }
550
+ }
551
+ if (s3 === peg$FAILED) {
552
+ if (input.length > peg$currPos) {
553
+ s3 = input.charAt(peg$currPos);
554
+ peg$currPos++;
555
+ } else {
556
+ s3 = peg$FAILED;
557
+ if (peg$silentFails === 0) {
558
+ peg$fail(peg$e7);
559
+ }
560
+ }
561
+ }
562
+ if (s3 !== peg$FAILED) {
563
+ peg$savedPos = s1;
564
+ s1 = peg$f2(s3);
565
+ } else {
566
+ peg$currPos = s1;
567
+ s1 = peg$FAILED;
568
+ }
569
+ } else {
570
+ peg$currPos = s1;
571
+ s1 = peg$FAILED;
572
+ }
573
+ if (s1 !== peg$FAILED) {
574
+ while (s1 !== peg$FAILED) {
575
+ s0.push(s1);
576
+ s1 = peg$currPos;
577
+ s2 = peg$currPos;
578
+ peg$silentFails++;
579
+ if (input.charCodeAt(peg$currPos) === 34) {
580
+ s3 = peg$c1;
581
+ peg$currPos++;
582
+ } else {
583
+ s3 = peg$FAILED;
584
+ if (peg$silentFails === 0) {
585
+ peg$fail(peg$e5);
586
+ }
587
+ }
588
+ peg$silentFails--;
589
+ if (s3 === peg$FAILED) {
590
+ s2 = undefined;
591
+ } else {
592
+ peg$currPos = s2;
593
+ s2 = peg$FAILED;
594
+ }
595
+ if (s2 !== peg$FAILED) {
596
+ if (input.substr(peg$currPos, 2) === peg$c2) {
597
+ s3 = peg$c2;
598
+ peg$currPos += 2;
599
+ } else {
600
+ s3 = peg$FAILED;
601
+ if (peg$silentFails === 0) {
602
+ peg$fail(peg$e6);
603
+ }
604
+ }
605
+ if (s3 === peg$FAILED) {
606
+ if (input.length > peg$currPos) {
607
+ s3 = input.charAt(peg$currPos);
608
+ peg$currPos++;
609
+ } else {
610
+ s3 = peg$FAILED;
611
+ if (peg$silentFails === 0) {
612
+ peg$fail(peg$e7);
613
+ }
614
+ }
615
+ }
616
+ if (s3 !== peg$FAILED) {
617
+ peg$savedPos = s1;
618
+ s1 = peg$f2(s3);
619
+ } else {
620
+ peg$currPos = s1;
621
+ s1 = peg$FAILED;
622
+ }
623
+ } else {
624
+ peg$currPos = s1;
625
+ s1 = peg$FAILED;
626
+ }
627
+ }
628
+ } else {
629
+ s0 = peg$FAILED;
630
+ }
631
+ return s0;
632
+ }
633
+ function peg$parseunquotedstring() {
634
+ var s0, s1;
635
+ s0 = peg$currPos;
636
+ s1 = peg$parseunquotedstringcontent();
637
+ if (s1 !== peg$FAILED) {
638
+ peg$savedPos = s0;
639
+ s1 = peg$f3(s1);
640
+ }
641
+ s0 = s1;
642
+ return s0;
643
+ }
644
+ function peg$parseunquotedstringcontent() {
645
+ var s0, s1, s2, s3;
646
+ s0 = [];
647
+ s1 = peg$currPos;
648
+ s2 = peg$currPos;
649
+ peg$silentFails++;
650
+ s3 = input.charAt(peg$currPos);
651
+ if (peg$r0.test(s3)) {
652
+ peg$currPos++;
653
+ } else {
654
+ s3 = peg$FAILED;
655
+ if (peg$silentFails === 0) {
656
+ peg$fail(peg$e8);
657
+ }
658
+ }
659
+ peg$silentFails--;
660
+ if (s3 === peg$FAILED) {
661
+ s2 = undefined;
662
+ } else {
663
+ peg$currPos = s2;
664
+ s2 = peg$FAILED;
665
+ }
666
+ if (s2 !== peg$FAILED) {
667
+ if (input.length > peg$currPos) {
668
+ s3 = input.charAt(peg$currPos);
669
+ peg$currPos++;
670
+ } else {
671
+ s3 = peg$FAILED;
672
+ if (peg$silentFails === 0) {
673
+ peg$fail(peg$e7);
674
+ }
675
+ }
676
+ if (s3 !== peg$FAILED) {
677
+ peg$savedPos = s1;
678
+ s1 = peg$f4(s3);
679
+ } else {
680
+ peg$currPos = s1;
681
+ s1 = peg$FAILED;
682
+ }
683
+ } else {
684
+ peg$currPos = s1;
685
+ s1 = peg$FAILED;
686
+ }
687
+ if (s1 !== peg$FAILED) {
688
+ while (s1 !== peg$FAILED) {
689
+ s0.push(s1);
690
+ s1 = peg$currPos;
691
+ s2 = peg$currPos;
692
+ peg$silentFails++;
693
+ s3 = input.charAt(peg$currPos);
694
+ if (peg$r0.test(s3)) {
695
+ peg$currPos++;
696
+ } else {
697
+ s3 = peg$FAILED;
698
+ if (peg$silentFails === 0) {
699
+ peg$fail(peg$e8);
700
+ }
701
+ }
702
+ peg$silentFails--;
703
+ if (s3 === peg$FAILED) {
704
+ s2 = undefined;
705
+ } else {
706
+ peg$currPos = s2;
707
+ s2 = peg$FAILED;
708
+ }
709
+ if (s2 !== peg$FAILED) {
710
+ if (input.length > peg$currPos) {
711
+ s3 = input.charAt(peg$currPos);
712
+ peg$currPos++;
713
+ } else {
714
+ s3 = peg$FAILED;
715
+ if (peg$silentFails === 0) {
716
+ peg$fail(peg$e7);
717
+ }
718
+ }
719
+ if (s3 !== peg$FAILED) {
720
+ peg$savedPos = s1;
721
+ s1 = peg$f4(s3);
722
+ } else {
723
+ peg$currPos = s1;
724
+ s1 = peg$FAILED;
725
+ }
726
+ } else {
727
+ peg$currPos = s1;
728
+ s1 = peg$FAILED;
729
+ }
730
+ }
731
+ } else {
732
+ s0 = peg$FAILED;
733
+ }
734
+ return s0;
735
+ }
736
+ function peg$parseboolean() {
737
+ var s0, s1;
738
+ peg$silentFails++;
739
+ s0 = peg$currPos;
740
+ if (input.substr(peg$currPos, 4) === peg$c3) {
741
+ s1 = peg$c3;
742
+ peg$currPos += 4;
743
+ } else {
744
+ s1 = peg$FAILED;
745
+ if (peg$silentFails === 0) {
746
+ peg$fail(peg$e10);
747
+ }
748
+ }
749
+ if (s1 === peg$FAILED) {
750
+ if (input.substr(peg$currPos, 5) === peg$c4) {
751
+ s1 = peg$c4;
752
+ peg$currPos += 5;
753
+ } else {
754
+ s1 = peg$FAILED;
755
+ if (peg$silentFails === 0) {
756
+ peg$fail(peg$e11);
757
+ }
758
+ }
759
+ }
760
+ if (s1 !== peg$FAILED) {
761
+ peg$savedPos = s0;
762
+ s1 = peg$f5(s1);
763
+ }
764
+ s0 = s1;
765
+ peg$silentFails--;
766
+ if (s0 === peg$FAILED) {
767
+ s1 = peg$FAILED;
768
+ if (peg$silentFails === 0) {
769
+ peg$fail(peg$e9);
770
+ }
771
+ }
772
+ return s0;
773
+ }
774
+ function peg$parseinteger() {
775
+ var s0, s1, s2;
776
+ peg$silentFails++;
777
+ s0 = peg$currPos;
778
+ s1 = [];
779
+ s2 = input.charAt(peg$currPos);
780
+ if (peg$r1.test(s2)) {
781
+ peg$currPos++;
782
+ } else {
783
+ s2 = peg$FAILED;
784
+ if (peg$silentFails === 0) {
785
+ peg$fail(peg$e13);
786
+ }
787
+ }
788
+ if (s2 !== peg$FAILED) {
789
+ while (s2 !== peg$FAILED) {
790
+ s1.push(s2);
791
+ s2 = input.charAt(peg$currPos);
792
+ if (peg$r1.test(s2)) {
793
+ peg$currPos++;
794
+ } else {
795
+ s2 = peg$FAILED;
796
+ if (peg$silentFails === 0) {
797
+ peg$fail(peg$e13);
798
+ }
799
+ }
800
+ }
801
+ } else {
802
+ s1 = peg$FAILED;
803
+ }
804
+ if (s1 !== peg$FAILED) {
805
+ peg$savedPos = s0;
806
+ s1 = peg$f6();
807
+ }
808
+ s0 = s1;
809
+ peg$silentFails--;
810
+ if (s0 === peg$FAILED) {
811
+ s1 = peg$FAILED;
812
+ if (peg$silentFails === 0) {
813
+ peg$fail(peg$e12);
814
+ }
815
+ }
816
+ return s0;
817
+ }
818
+ function peg$parsenumber() {
819
+ var s0, s1, s2, s3, s4;
820
+ peg$silentFails++;
821
+ s0 = peg$currPos;
822
+ s1 = peg$parseinteger();
823
+ if (s1 !== peg$FAILED) {
824
+ s2 = peg$currPos;
825
+ if (input.charCodeAt(peg$currPos) === 46) {
826
+ s3 = peg$c5;
827
+ peg$currPos++;
828
+ } else {
829
+ s3 = peg$FAILED;
830
+ if (peg$silentFails === 0) {
831
+ peg$fail(peg$e15);
832
+ }
833
+ }
834
+ if (s3 !== peg$FAILED) {
835
+ s4 = peg$parseinteger();
836
+ if (s4 !== peg$FAILED) {
837
+ s3 = [s3, s4];
838
+ s2 = s3;
839
+ } else {
840
+ peg$currPos = s2;
841
+ s2 = peg$FAILED;
842
+ }
843
+ } else {
844
+ peg$currPos = s2;
845
+ s2 = peg$FAILED;
846
+ }
847
+ if (s2 === peg$FAILED) {
848
+ s2 = null;
849
+ }
850
+ peg$savedPos = s0;
851
+ s0 = peg$f7();
852
+ } else {
853
+ peg$currPos = s0;
854
+ s0 = peg$FAILED;
855
+ }
856
+ peg$silentFails--;
857
+ if (s0 === peg$FAILED) {
858
+ s1 = peg$FAILED;
859
+ if (peg$silentFails === 0) {
860
+ peg$fail(peg$e14);
861
+ }
862
+ }
863
+ return s0;
864
+ }
865
+ function peg$parse_() {
866
+ var s0, s1;
867
+ peg$silentFails++;
868
+ s0 = [];
869
+ s1 = input.charAt(peg$currPos);
870
+ if (peg$r2.test(s1)) {
871
+ peg$currPos++;
872
+ } else {
873
+ s1 = peg$FAILED;
874
+ if (peg$silentFails === 0) {
875
+ peg$fail(peg$e17);
876
+ }
877
+ }
878
+ while (s1 !== peg$FAILED) {
879
+ s0.push(s1);
880
+ s1 = input.charAt(peg$currPos);
881
+ if (peg$r2.test(s1)) {
882
+ peg$currPos++;
883
+ } else {
884
+ s1 = peg$FAILED;
885
+ if (peg$silentFails === 0) {
886
+ peg$fail(peg$e17);
887
+ }
888
+ }
889
+ }
890
+ peg$silentFails--;
891
+ s1 = peg$FAILED;
892
+ if (peg$silentFails === 0) {
893
+ peg$fail(peg$e16);
894
+ }
895
+ return s0;
896
+ }
897
+ peg$result = peg$startRuleFunction();
898
+ if (options.peg$library) {
899
+ return {
900
+ peg$result,
901
+ peg$currPos,
902
+ peg$FAILED,
903
+ peg$maxFailExpected,
904
+ peg$maxFailPos,
905
+ };
906
+ }
907
+ if (peg$result !== peg$FAILED && peg$currPos === input.length) {
908
+ return peg$result;
909
+ } else {
910
+ if (peg$result !== peg$FAILED && peg$currPos < input.length) {
911
+ peg$fail(peg$endExpectation());
912
+ }
913
+ throw peg$buildStructuredError(
914
+ peg$maxFailExpected,
915
+ peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null,
916
+ peg$maxFailPos < input.length
917
+ ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1)
918
+ : peg$computeLocation(peg$maxFailPos, peg$maxFailPos),
919
+ );
920
+ }
898
921
  }
899
- const peg$allowedStartRules = [
900
- "properties"
901
- ];
902
- export { peg$allowedStartRules as StartRules, peg$SyntaxError as SyntaxError, peg$parse as parse };
922
+ const peg$allowedStartRules = ["properties"];
923
+ export {
924
+ peg$allowedStartRules as StartRules,
925
+ peg$SyntaxError as SyntaxError,
926
+ peg$parse as parse,
927
+ };