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