state-machine-cat 12.0.5 → 12.0.7

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 (46) hide show
  1. package/dist/cli/actions.mjs +34 -31
  2. package/dist/cli/attributes-parser.mjs +914 -976
  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 -2897
  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
  46. package/types/state-machine-cat.d.ts +0 -296
@@ -1,989 +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 = " ";
153
- var peg$c4 = "\t";
154
- var peg$c5 = "\n";
155
- var peg$c6 = "\r";
156
- var peg$c7 = "true";
157
- var peg$c8 = "false";
158
- var peg$c9 = ".";
159
- var peg$r0 = /^[0-9]/;
160
- var peg$r1 = /^[ \t\n\r]/;
161
- var peg$e0 = peg$otherExpectation("name value pair");
162
- var peg$e1 = peg$literalExpectation("=", false);
163
- var peg$e2 = peg$otherExpectation("valid value");
164
- var peg$e3 = peg$otherExpectation("a quoted or unquoted string");
165
- var peg$e4 = peg$otherExpectation("double quoted string");
166
- var peg$e5 = peg$literalExpectation("\"", false);
167
- var peg$e6 = peg$literalExpectation("\\\"", false);
168
- var peg$e7 = peg$anyExpectation();
169
- var peg$e8 = peg$literalExpectation(" ", false);
170
- var peg$e9 = peg$literalExpectation("\t", false);
171
- var peg$e10 = peg$literalExpectation("\n", false);
172
- var peg$e11 = peg$literalExpectation("\r", false);
173
- var peg$e12 = peg$otherExpectation("boolean");
174
- var peg$e13 = peg$literalExpectation("true", false);
175
- var peg$e14 = peg$literalExpectation("false", false);
176
- var peg$e15 = peg$otherExpectation("integer");
177
- var peg$e16 = peg$classExpectation([["0", "9"]], false, false);
178
- var peg$e17 = peg$otherExpectation("number");
179
- var peg$e18 = peg$literalExpectation(".", false);
180
- var peg$e19 = peg$otherExpectation("whitespace");
181
- var peg$e20 = peg$classExpectation([" ", "\t", "\n", "\r"], false, false);
182
- var peg$f0 = function (name, value) { return { name, value }; };
183
- var peg$f1 = function (s) { return s.join(""); };
184
- var peg$f2 = function (c) { return c; };
185
- var peg$f3 = function (s) { return text(); };
186
- var peg$f4 = function (c) { return c; };
187
- var peg$f5 = function (bool) { return (bool === "true"); };
188
- var peg$f6 = function () { return parseInt(text(), 10); };
189
- var peg$f7 = function () { return parseFloat(text()); };
190
- var peg$currPos = 0;
191
- var peg$savedPos = 0;
192
- var peg$posDetailsCache = [{ line: 1, column: 1 }];
193
- var peg$maxFailPos = 0;
194
- var peg$maxFailExpected = [];
195
- var peg$silentFails = 0;
196
- var peg$result;
197
- if ("startRule" in options) {
198
- if (!(options.startRule in peg$startRuleFunctions)) {
199
- throw new Error("Can't start parsing from rule \"" + options.startRule + "\".");
200
- }
201
- peg$startRuleFunction = peg$startRuleFunctions[options.startRule];
202
- }
203
- function text() {
204
- return input.substring(peg$savedPos, peg$currPos);
205
- }
206
- function offset() {
207
- return peg$savedPos;
208
- }
209
- function range() {
210
- return {
211
- source: peg$source,
212
- start: peg$savedPos,
213
- end: peg$currPos
214
- };
215
- }
216
- function location() {
217
- return peg$computeLocation(peg$savedPos, peg$currPos);
218
- }
219
- function expected(description, location) {
220
- location = location !== undefined
221
- ? location
222
- : peg$computeLocation(peg$savedPos, peg$currPos);
223
- throw peg$buildStructuredError([peg$otherExpectation(description)], input.substring(peg$savedPos, peg$currPos), location);
224
- }
225
- function error(message, location) {
226
- location = location !== undefined
227
- ? location
228
- : peg$computeLocation(peg$savedPos, peg$currPos);
229
- throw peg$buildSimpleError(message, location);
230
- }
231
- function peg$literalExpectation(text, ignoreCase) {
232
- return { type: "literal", text: text, ignoreCase: ignoreCase };
233
- }
234
- function peg$classExpectation(parts, inverted, ignoreCase) {
235
- return { type: "class", parts: parts, inverted: inverted, ignoreCase: ignoreCase };
236
- }
237
- function peg$anyExpectation() {
238
- return { type: "any" };
239
- }
240
- function peg$endExpectation() {
241
- return { type: "end" };
242
- }
243
- function peg$otherExpectation(description) {
244
- return { type: "other", description: description };
245
- }
246
- function peg$computePosDetails(pos) {
247
- var details = peg$posDetailsCache[pos];
248
- var p;
249
- if (details) {
250
- return details;
251
- }
252
- else {
253
- p = pos - 1;
254
- while (!peg$posDetailsCache[p]) {
255
- p--;
256
- }
257
- details = peg$posDetailsCache[p];
258
- details = {
259
- line: details.line,
260
- column: details.column
261
- };
262
- while (p < pos) {
263
- if (input.charCodeAt(p) === 10) {
264
- details.line++;
265
- details.column = 1;
266
- }
267
- else {
268
- details.column++;
269
- }
270
- p++;
271
- }
272
- peg$posDetailsCache[pos] = details;
273
- return details;
274
- }
275
- }
276
- function peg$computeLocation(startPos, endPos, offset) {
277
- var startPosDetails = peg$computePosDetails(startPos);
278
- var endPosDetails = peg$computePosDetails(endPos);
279
- var res = {
280
- source: peg$source,
281
- start: {
282
- offset: startPos,
283
- line: startPosDetails.line,
284
- column: startPosDetails.column
285
- },
286
- end: {
287
- offset: endPos,
288
- line: endPosDetails.line,
289
- column: endPosDetails.column
290
- }
291
- };
292
- if (offset && peg$source && (typeof peg$source.offset === "function")) {
293
- res.start = peg$source.offset(res.start);
294
- res.end = peg$source.offset(res.end);
295
- }
296
- return res;
297
- }
298
- function peg$fail(expected) {
299
- if (peg$currPos < peg$maxFailPos) {
300
- return;
301
- }
302
- if (peg$currPos > peg$maxFailPos) {
303
- peg$maxFailPos = peg$currPos;
304
- peg$maxFailExpected = [];
305
- }
306
- peg$maxFailExpected.push(expected);
307
- }
308
- function peg$buildSimpleError(message, location) {
309
- return new peg$SyntaxError(message, null, null, location);
310
- }
311
- function peg$buildStructuredError(expected, found, location) {
312
- return new peg$SyntaxError(peg$SyntaxError.buildMessage(expected, found), expected, found, location);
313
- }
314
- function peg$parseproperties() {
315
- var s0, s1;
316
- s0 = [];
317
- s1 = peg$parsenamevaluepair();
318
- if (s1 !== peg$FAILED) {
319
- while (s1 !== peg$FAILED) {
320
- s0.push(s1);
321
- s1 = peg$parsenamevaluepair();
322
- }
323
- }
324
- else {
325
- s0 = peg$FAILED;
326
- }
327
- return s0;
328
- }
329
- function peg$parsenamevaluepair() {
330
- var s0, s1, s2, s3, s4, s5, s6, s7;
331
- peg$silentFails++;
332
- s0 = peg$currPos;
333
- s1 = peg$parse_();
334
- s2 = peg$parseunquotedstring();
335
- if (s2 !== peg$FAILED) {
336
- s3 = peg$parse_();
337
- if (input.charCodeAt(peg$currPos) === 61) {
338
- s4 = peg$c0;
339
- peg$currPos++;
340
- }
341
- else {
342
- s4 = peg$FAILED;
343
- if (peg$silentFails === 0) {
344
- peg$fail(peg$e1);
345
- }
346
- }
347
- if (s4 !== peg$FAILED) {
348
- s5 = peg$parse_();
349
- s6 = peg$parseval();
350
- if (s6 !== peg$FAILED) {
351
- s7 = peg$parse_();
352
- peg$savedPos = s0;
353
- s0 = peg$f0(s2, s6);
354
- }
355
- else {
356
- peg$currPos = s0;
357
- s0 = peg$FAILED;
358
- }
359
- }
360
- else {
361
- peg$currPos = s0;
362
- s0 = peg$FAILED;
363
- }
364
- }
365
- else {
366
- peg$currPos = s0;
367
- s0 = peg$FAILED;
368
- }
369
- peg$silentFails--;
370
- if (s0 === peg$FAILED) {
371
- s1 = peg$FAILED;
372
- if (peg$silentFails === 0) {
373
- peg$fail(peg$e0);
374
- }
375
- }
376
- return s0;
377
- }
378
- function peg$parseval() {
379
- var s0, s1;
380
- peg$silentFails++;
381
- s0 = peg$parsenumber();
382
- if (s0 === peg$FAILED) {
383
- s0 = peg$parseboolean();
384
- if (s0 === peg$FAILED) {
385
- s0 = peg$parsestring();
386
- }
387
- }
388
- peg$silentFails--;
389
- if (s0 === peg$FAILED) {
390
- s1 = peg$FAILED;
391
- if (peg$silentFails === 0) {
392
- peg$fail(peg$e2);
393
- }
394
- }
395
- return s0;
396
- }
397
- function peg$parsestring() {
398
- var s0, s1;
399
- peg$silentFails++;
400
- s0 = peg$parsequotedstring();
401
- if (s0 === peg$FAILED) {
402
- s0 = peg$parseunquotedstring();
403
- }
404
- peg$silentFails--;
405
- if (s0 === peg$FAILED) {
406
- s1 = peg$FAILED;
407
- if (peg$silentFails === 0) {
408
- peg$fail(peg$e3);
409
- }
410
- }
411
- return s0;
412
- }
413
- function peg$parsequotedstring() {
414
- var s0, s1, s2, s3;
415
- peg$silentFails++;
416
- s0 = peg$currPos;
417
- if (input.charCodeAt(peg$currPos) === 34) {
418
- s1 = peg$c1;
419
- peg$currPos++;
420
- }
421
- else {
422
- s1 = peg$FAILED;
423
- if (peg$silentFails === 0) {
424
- peg$fail(peg$e5);
425
- }
426
- }
427
- if (s1 !== peg$FAILED) {
428
- s2 = peg$parsequotedstringcontent();
429
- if (s2 !== peg$FAILED) {
430
- if (input.charCodeAt(peg$currPos) === 34) {
431
- s3 = peg$c1;
432
- peg$currPos++;
433
- }
434
- else {
435
- s3 = peg$FAILED;
436
- if (peg$silentFails === 0) {
437
- peg$fail(peg$e5);
438
- }
439
- }
440
- if (s3 !== peg$FAILED) {
441
- peg$savedPos = s0;
442
- s0 = peg$f1(s2);
443
- }
444
- else {
445
- peg$currPos = s0;
446
- s0 = peg$FAILED;
447
- }
448
- }
449
- else {
450
- peg$currPos = s0;
451
- s0 = peg$FAILED;
452
- }
453
- }
454
- else {
455
- peg$currPos = s0;
456
- s0 = peg$FAILED;
457
- }
458
- peg$silentFails--;
459
- if (s0 === peg$FAILED) {
460
- s1 = peg$FAILED;
461
- if (peg$silentFails === 0) {
462
- peg$fail(peg$e4);
463
- }
464
- }
465
- return s0;
466
- }
467
- function peg$parsequotedstringcontent() {
468
- var s0, s1, s2, s3;
469
- s0 = [];
470
- s1 = peg$currPos;
471
- s2 = peg$currPos;
472
- peg$silentFails++;
473
- if (input.charCodeAt(peg$currPos) === 34) {
474
- s3 = peg$c1;
475
- peg$currPos++;
476
- }
477
- else {
478
- s3 = peg$FAILED;
479
- if (peg$silentFails === 0) {
480
- peg$fail(peg$e5);
481
- }
482
- }
483
- peg$silentFails--;
484
- if (s3 === peg$FAILED) {
485
- s2 = undefined;
486
- }
487
- else {
488
- peg$currPos = s2;
489
- s2 = peg$FAILED;
490
- }
491
- if (s2 !== peg$FAILED) {
492
- if (input.substr(peg$currPos, 2) === peg$c2) {
493
- s3 = peg$c2;
494
- peg$currPos += 2;
495
- }
496
- else {
497
- s3 = peg$FAILED;
498
- if (peg$silentFails === 0) {
499
- peg$fail(peg$e6);
500
- }
501
- }
502
- if (s3 === peg$FAILED) {
503
- if (input.length > peg$currPos) {
504
- s3 = input.charAt(peg$currPos);
505
- peg$currPos++;
506
- }
507
- else {
508
- s3 = peg$FAILED;
509
- if (peg$silentFails === 0) {
510
- peg$fail(peg$e7);
511
- }
512
- }
513
- }
514
- if (s3 !== peg$FAILED) {
515
- peg$savedPos = s1;
516
- s1 = peg$f2(s3);
517
- }
518
- else {
519
- peg$currPos = s1;
520
- s1 = peg$FAILED;
521
- }
522
- }
523
- else {
524
- peg$currPos = s1;
525
- s1 = peg$FAILED;
526
- }
527
- if (s1 !== peg$FAILED) {
528
- while (s1 !== peg$FAILED) {
529
- s0.push(s1);
530
- s1 = peg$currPos;
531
- s2 = peg$currPos;
532
- peg$silentFails++;
533
- if (input.charCodeAt(peg$currPos) === 34) {
534
- s3 = peg$c1;
535
- peg$currPos++;
536
- }
537
- else {
538
- s3 = peg$FAILED;
539
- if (peg$silentFails === 0) {
540
- peg$fail(peg$e5);
541
- }
542
- }
543
- peg$silentFails--;
544
- if (s3 === peg$FAILED) {
545
- s2 = undefined;
546
- }
547
- else {
548
- peg$currPos = s2;
549
- s2 = peg$FAILED;
550
- }
551
- if (s2 !== peg$FAILED) {
552
- if (input.substr(peg$currPos, 2) === peg$c2) {
553
- s3 = peg$c2;
554
- peg$currPos += 2;
555
- }
556
- else {
557
- s3 = peg$FAILED;
558
- if (peg$silentFails === 0) {
559
- peg$fail(peg$e6);
560
- }
561
- }
562
- if (s3 === peg$FAILED) {
563
- if (input.length > peg$currPos) {
564
- s3 = input.charAt(peg$currPos);
565
- peg$currPos++;
566
- }
567
- else {
568
- s3 = peg$FAILED;
569
- if (peg$silentFails === 0) {
570
- peg$fail(peg$e7);
571
- }
572
- }
573
- }
574
- if (s3 !== peg$FAILED) {
575
- peg$savedPos = s1;
576
- s1 = peg$f2(s3);
577
- }
578
- else {
579
- peg$currPos = s1;
580
- s1 = peg$FAILED;
581
- }
582
- }
583
- else {
584
- peg$currPos = s1;
585
- s1 = peg$FAILED;
586
- }
587
- }
588
- }
589
- else {
590
- s0 = peg$FAILED;
591
- }
592
- return s0;
593
- }
594
- function peg$parseunquotedstring() {
595
- var s0, s1;
596
- s0 = peg$currPos;
597
- s1 = peg$parseunquotedstringcontent();
598
- if (s1 !== peg$FAILED) {
599
- peg$savedPos = s0;
600
- s1 = peg$f3(s1);
601
- }
602
- s0 = s1;
603
- return s0;
604
- }
605
- function peg$parseunquotedstringcontent() {
606
- var s0, s1, s2, s3;
607
- s0 = [];
608
- s1 = peg$currPos;
609
- s2 = peg$currPos;
610
- peg$silentFails++;
611
- if (input.charCodeAt(peg$currPos) === 32) {
612
- s3 = peg$c3;
613
- peg$currPos++;
614
- }
615
- else {
616
- s3 = peg$FAILED;
617
- if (peg$silentFails === 0) {
618
- peg$fail(peg$e8);
619
- }
620
- }
621
- if (s3 === peg$FAILED) {
622
- if (input.charCodeAt(peg$currPos) === 61) {
623
- s3 = peg$c0;
624
- peg$currPos++;
625
- }
626
- else {
627
- s3 = peg$FAILED;
628
- if (peg$silentFails === 0) {
629
- peg$fail(peg$e1);
630
- }
631
- }
632
- if (s3 === peg$FAILED) {
633
- if (input.charCodeAt(peg$currPos) === 9) {
634
- s3 = peg$c4;
635
- peg$currPos++;
636
- }
637
- else {
638
- s3 = peg$FAILED;
639
- if (peg$silentFails === 0) {
640
- peg$fail(peg$e9);
641
- }
642
- }
643
- if (s3 === peg$FAILED) {
644
- if (input.charCodeAt(peg$currPos) === 10) {
645
- s3 = peg$c5;
646
- peg$currPos++;
647
- }
648
- else {
649
- s3 = peg$FAILED;
650
- if (peg$silentFails === 0) {
651
- peg$fail(peg$e10);
652
- }
653
- }
654
- if (s3 === peg$FAILED) {
655
- if (input.charCodeAt(peg$currPos) === 13) {
656
- s3 = peg$c6;
657
- peg$currPos++;
658
- }
659
- else {
660
- s3 = peg$FAILED;
661
- if (peg$silentFails === 0) {
662
- peg$fail(peg$e11);
663
- }
664
- }
665
- }
666
- }
667
- }
668
- }
669
- peg$silentFails--;
670
- if (s3 === peg$FAILED) {
671
- s2 = undefined;
672
- }
673
- else {
674
- peg$currPos = s2;
675
- s2 = peg$FAILED;
676
- }
677
- if (s2 !== peg$FAILED) {
678
- if (input.length > peg$currPos) {
679
- s3 = input.charAt(peg$currPos);
680
- peg$currPos++;
681
- }
682
- else {
683
- s3 = peg$FAILED;
684
- if (peg$silentFails === 0) {
685
- peg$fail(peg$e7);
686
- }
687
- }
688
- if (s3 !== peg$FAILED) {
689
- peg$savedPos = s1;
690
- s1 = peg$f4(s3);
691
- }
692
- else {
693
- peg$currPos = s1;
694
- s1 = peg$FAILED;
695
- }
696
- }
697
- else {
698
- peg$currPos = s1;
699
- s1 = peg$FAILED;
700
- }
701
- if (s1 !== peg$FAILED) {
702
- while (s1 !== peg$FAILED) {
703
- s0.push(s1);
704
- s1 = peg$currPos;
705
- s2 = peg$currPos;
706
- peg$silentFails++;
707
- if (input.charCodeAt(peg$currPos) === 32) {
708
- s3 = peg$c3;
709
- peg$currPos++;
710
- }
711
- else {
712
- s3 = peg$FAILED;
713
- if (peg$silentFails === 0) {
714
- peg$fail(peg$e8);
715
- }
716
- }
717
- if (s3 === peg$FAILED) {
718
- if (input.charCodeAt(peg$currPos) === 61) {
719
- s3 = peg$c0;
720
- peg$currPos++;
721
- }
722
- else {
723
- s3 = peg$FAILED;
724
- if (peg$silentFails === 0) {
725
- peg$fail(peg$e1);
726
- }
727
- }
728
- if (s3 === peg$FAILED) {
729
- if (input.charCodeAt(peg$currPos) === 9) {
730
- s3 = peg$c4;
731
- peg$currPos++;
732
- }
733
- else {
734
- s3 = peg$FAILED;
735
- if (peg$silentFails === 0) {
736
- peg$fail(peg$e9);
737
- }
738
- }
739
- if (s3 === peg$FAILED) {
740
- if (input.charCodeAt(peg$currPos) === 10) {
741
- s3 = peg$c5;
742
- peg$currPos++;
743
- }
744
- else {
745
- s3 = peg$FAILED;
746
- if (peg$silentFails === 0) {
747
- peg$fail(peg$e10);
748
- }
749
- }
750
- if (s3 === peg$FAILED) {
751
- if (input.charCodeAt(peg$currPos) === 13) {
752
- s3 = peg$c6;
753
- peg$currPos++;
754
- }
755
- else {
756
- s3 = peg$FAILED;
757
- if (peg$silentFails === 0) {
758
- peg$fail(peg$e11);
759
- }
760
- }
761
- }
762
- }
763
- }
764
- }
765
- peg$silentFails--;
766
- if (s3 === peg$FAILED) {
767
- s2 = undefined;
768
- }
769
- else {
770
- peg$currPos = s2;
771
- s2 = peg$FAILED;
772
- }
773
- if (s2 !== peg$FAILED) {
774
- if (input.length > peg$currPos) {
775
- s3 = input.charAt(peg$currPos);
776
- peg$currPos++;
777
- }
778
- else {
779
- s3 = peg$FAILED;
780
- if (peg$silentFails === 0) {
781
- peg$fail(peg$e7);
782
- }
783
- }
784
- if (s3 !== peg$FAILED) {
785
- peg$savedPos = s1;
786
- s1 = peg$f4(s3);
787
- }
788
- else {
789
- peg$currPos = s1;
790
- s1 = peg$FAILED;
791
- }
792
- }
793
- else {
794
- peg$currPos = s1;
795
- s1 = peg$FAILED;
796
- }
797
- }
798
- }
799
- else {
800
- s0 = peg$FAILED;
801
- }
802
- return s0;
803
- }
804
- function peg$parseboolean() {
805
- var s0, s1;
806
- peg$silentFails++;
807
- s0 = peg$currPos;
808
- if (input.substr(peg$currPos, 4) === peg$c7) {
809
- s1 = peg$c7;
810
- peg$currPos += 4;
811
- }
812
- else {
813
- s1 = peg$FAILED;
814
- if (peg$silentFails === 0) {
815
- peg$fail(peg$e13);
816
- }
817
- }
818
- if (s1 === peg$FAILED) {
819
- if (input.substr(peg$currPos, 5) === peg$c8) {
820
- s1 = peg$c8;
821
- peg$currPos += 5;
822
- }
823
- else {
824
- s1 = peg$FAILED;
825
- if (peg$silentFails === 0) {
826
- peg$fail(peg$e14);
827
- }
828
- }
829
- }
830
- if (s1 !== peg$FAILED) {
831
- peg$savedPos = s0;
832
- s1 = peg$f5(s1);
833
- }
834
- s0 = s1;
835
- peg$silentFails--;
836
- if (s0 === peg$FAILED) {
837
- s1 = peg$FAILED;
838
- if (peg$silentFails === 0) {
839
- peg$fail(peg$e12);
840
- }
841
- }
842
- return s0;
843
- }
844
- function peg$parseinteger() {
845
- var s0, s1, s2;
846
- peg$silentFails++;
847
- s0 = peg$currPos;
848
- s1 = [];
849
- if (peg$r0.test(input.charAt(peg$currPos))) {
850
- s2 = input.charAt(peg$currPos);
851
- peg$currPos++;
852
- }
853
- else {
854
- s2 = peg$FAILED;
855
- if (peg$silentFails === 0) {
856
- peg$fail(peg$e16);
857
- }
858
- }
859
- if (s2 !== peg$FAILED) {
860
- while (s2 !== peg$FAILED) {
861
- s1.push(s2);
862
- if (peg$r0.test(input.charAt(peg$currPos))) {
863
- s2 = input.charAt(peg$currPos);
864
- peg$currPos++;
865
- }
866
- else {
867
- s2 = peg$FAILED;
868
- if (peg$silentFails === 0) {
869
- peg$fail(peg$e16);
870
- }
871
- }
872
- }
873
- }
874
- else {
875
- s1 = peg$FAILED;
876
- }
877
- if (s1 !== peg$FAILED) {
878
- peg$savedPos = s0;
879
- s1 = peg$f6();
880
- }
881
- s0 = s1;
882
- peg$silentFails--;
883
- if (s0 === peg$FAILED) {
884
- s1 = peg$FAILED;
885
- if (peg$silentFails === 0) {
886
- peg$fail(peg$e15);
887
- }
888
- }
889
- return s0;
890
- }
891
- function peg$parsenumber() {
892
- var s0, s1, s2, s3, s4;
893
- peg$silentFails++;
894
- s0 = peg$currPos;
895
- s1 = peg$parseinteger();
896
- if (s1 !== peg$FAILED) {
897
- s2 = peg$currPos;
898
- if (input.charCodeAt(peg$currPos) === 46) {
899
- s3 = peg$c9;
900
- peg$currPos++;
901
- }
902
- else {
903
- s3 = peg$FAILED;
904
- if (peg$silentFails === 0) {
905
- peg$fail(peg$e18);
906
- }
907
- }
908
- if (s3 !== peg$FAILED) {
909
- s4 = peg$parseinteger();
910
- if (s4 !== peg$FAILED) {
911
- s3 = [s3, s4];
912
- s2 = s3;
913
- }
914
- else {
915
- peg$currPos = s2;
916
- s2 = peg$FAILED;
917
- }
918
- }
919
- else {
920
- peg$currPos = s2;
921
- s2 = peg$FAILED;
922
- }
923
- if (s2 === peg$FAILED) {
924
- s2 = null;
925
- }
926
- peg$savedPos = s0;
927
- s0 = peg$f7();
928
- }
929
- else {
930
- peg$currPos = s0;
931
- s0 = peg$FAILED;
932
- }
933
- peg$silentFails--;
934
- if (s0 === peg$FAILED) {
935
- s1 = peg$FAILED;
936
- if (peg$silentFails === 0) {
937
- peg$fail(peg$e17);
938
- }
939
- }
940
- return s0;
941
- }
942
- function peg$parse_() {
943
- var s0, s1;
944
- peg$silentFails++;
945
- s0 = [];
946
- if (peg$r1.test(input.charAt(peg$currPos))) {
947
- s1 = input.charAt(peg$currPos);
948
- peg$currPos++;
949
- }
950
- else {
951
- s1 = peg$FAILED;
952
- if (peg$silentFails === 0) {
953
- peg$fail(peg$e20);
954
- }
955
- }
956
- while (s1 !== peg$FAILED) {
957
- s0.push(s1);
958
- if (peg$r1.test(input.charAt(peg$currPos))) {
959
- s1 = input.charAt(peg$currPos);
960
- peg$currPos++;
961
- }
962
- else {
963
- s1 = peg$FAILED;
964
- if (peg$silentFails === 0) {
965
- peg$fail(peg$e20);
966
- }
967
- }
968
- }
969
- peg$silentFails--;
970
- s1 = peg$FAILED;
971
- if (peg$silentFails === 0) {
972
- peg$fail(peg$e19);
973
- }
974
- return s0;
975
- }
976
- peg$result = peg$startRuleFunction();
977
- if (peg$result !== peg$FAILED && peg$currPos === input.length) {
978
- return peg$result;
979
- }
980
- else {
981
- if (peg$result !== peg$FAILED && peg$currPos < input.length) {
982
- peg$fail(peg$endExpectation());
983
- }
984
- throw peg$buildStructuredError(peg$maxFailExpected, peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null, peg$maxFailPos < input.length
985
- ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1)
986
- : peg$computeLocation(peg$maxFailPos, peg$maxFailPos));
987
- }
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
+ }
988
921
  }
989
- export { 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
+ };