@weborigami/language 0.0.69 → 0.0.71-beta.1
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.
- package/main.js +2 -0
- package/package.json +3 -3
- package/src/compiler/compile.js +64 -41
- package/src/compiler/origami.pegjs +40 -28
- package/src/compiler/parse.js +286 -193
- package/src/compiler/parserHelpers.js +9 -13
- package/src/runtime/WatchFilesMixin.js +1 -0
- package/src/runtime/evaluate.js +15 -15
- package/src/runtime/extensions.js +40 -14
- package/src/runtime/ops.js +64 -32
- package/src/runtime/symbols.js +3 -0
- package/src/runtime/taggedTemplate.js +9 -0
- package/test/compiler/compile.test.js +47 -0
- package/test/compiler/parse.test.js +166 -195
- package/test/compiler/stripCodeLocations.js +18 -0
- package/test/runtime/ops.test.js +16 -9
- package/test/runtime/taggedTemplate.test.js +10 -0
package/src/compiler/parse.js
CHANGED
|
@@ -192,7 +192,7 @@ function peg$parse(input, options) {
|
|
|
192
192
|
var peg$FAILED = {};
|
|
193
193
|
var peg$source = options.grammarSource;
|
|
194
194
|
|
|
195
|
-
var peg$startRuleFunctions = { __: peg$parse__, absoluteFilePath: peg$parseabsoluteFilePath, args: peg$parseargs, array: peg$parsearray, arrayEntries: peg$parsearrayEntries, arrayEntry: peg$parsearrayEntry, callTarget: peg$parsecallTarget, closingBrace: peg$parseclosingBrace, closingBracket: peg$parseclosingBracket, closingParen: peg$parseclosingParen, comment: peg$parsecomment, digits: peg$parsedigits, doubleArrow: peg$parsedoubleArrow, doubleQuoteString: peg$parsedoubleQuoteString, doubleQuoteStringChar: peg$parsedoubleQuoteStringChar, ellipsis: peg$parseellipsis, escapedChar: peg$parseescapedChar, expr: peg$parseexpr, expression: peg$parseexpression, float: peg$parsefloat, functionComposition: peg$parsefunctionComposition, group: peg$parsegroup, guillemetString: peg$parseguillemetString, guillemetStringChar: peg$parseguillemetStringChar, host: peg$parsehost, identifier: peg$parseidentifier, identifierChar: peg$parseidentifierChar, identifierList: peg$parseidentifierList, implicitParensArgs: peg$parseimplicitParensArgs, inlineSpace: peg$parseinlineSpace, integer: peg$parseinteger, lambda: peg$parselambda, leadingSlashPath: peg$parseleadingSlashPath, list: peg$parselist, multiLineComment: peg$parsemultiLineComment, newLine: peg$parsenewLine, number: peg$parsenumber, object: peg$parseobject, objectEntries: peg$parseobjectEntries, objectEntry: peg$parseobjectEntry, objectGetter: peg$parseobjectGetter, objectHiddenKey: peg$parseobjectHiddenKey, objectKey: peg$parseobjectKey, objectProperty: peg$parseobjectProperty, objectShorthandProperty: peg$parseobjectShorthandProperty, objectPublicKey: peg$parseobjectPublicKey, parameterizedLambda: peg$parseparameterizedLambda, parensArgs: peg$parseparensArgs, pipeline: peg$parsepipeline, path: peg$parsepath, pathElement: peg$parsepathElement, pathKeyChar: peg$parsepathKeyChar, pathTail: peg$parsepathTail, protocolCall: peg$parseprotocolCall, protocol: peg$parseprotocol, reservedProtocol: peg$parsereservedProtocol, scopeReference: peg$parsescopeReference, scopeTraverse: peg$parsescopeTraverse, separator: peg$parseseparator, shebang: peg$parseshebang, sign: peg$parsesign, singleArrow: peg$parsesingleArrow, singleLineComment: peg$parsesingleLineComment, singleQuoteString: peg$parsesingleQuoteString, singleQuoteStringChar: peg$parsesingleQuoteStringChar, spread: peg$parsespread, step: peg$parsestep, start: peg$parsestart, string: peg$parsestring, templateDocument: peg$parsetemplateDocument, templateDocumentChar: peg$parsetemplateDocumentChar, templateDocumentContents: peg$parsetemplateDocumentContents, templateDocumentText: peg$parsetemplateDocumentText, templateLiteral: peg$parsetemplateLiteral, templateLiteralChar: peg$parsetemplateLiteralChar, templateLiteralContents: peg$parsetemplateLiteralContents, templateLiteralText: peg$parsetemplateLiteralText, templateSubstitution: peg$parsetemplateSubstitution, textChar: peg$parsetextChar, whitespaceWithNewLine: peg$parsewhitespaceWithNewLine };
|
|
195
|
+
var peg$startRuleFunctions = { __: peg$parse__, absoluteFilePath: peg$parseabsoluteFilePath, args: peg$parseargs, array: peg$parsearray, arrayEntries: peg$parsearrayEntries, arrayEntry: peg$parsearrayEntry, callTarget: peg$parsecallTarget, closingBrace: peg$parseclosingBrace, closingBracket: peg$parseclosingBracket, closingParen: peg$parseclosingParen, comment: peg$parsecomment, digits: peg$parsedigits, doubleArrow: peg$parsedoubleArrow, doubleQuoteString: peg$parsedoubleQuoteString, doubleQuoteStringChar: peg$parsedoubleQuoteStringChar, ellipsis: peg$parseellipsis, escapedChar: peg$parseescapedChar, expr: peg$parseexpr, expression: peg$parseexpression, float: peg$parsefloat, functionComposition: peg$parsefunctionComposition, group: peg$parsegroup, guillemetString: peg$parseguillemetString, guillemetStringChar: peg$parseguillemetStringChar, host: peg$parsehost, identifier: peg$parseidentifier, identifierChar: peg$parseidentifierChar, identifierList: peg$parseidentifierList, implicitParensArgs: peg$parseimplicitParensArgs, inlineSpace: peg$parseinlineSpace, integer: peg$parseinteger, lambda: peg$parselambda, leadingSlashPath: peg$parseleadingSlashPath, list: peg$parselist, multiLineComment: peg$parsemultiLineComment, newLine: peg$parsenewLine, number: peg$parsenumber, object: peg$parseobject, objectEntries: peg$parseobjectEntries, objectEntry: peg$parseobjectEntry, objectGetter: peg$parseobjectGetter, objectHiddenKey: peg$parseobjectHiddenKey, objectKey: peg$parseobjectKey, objectProperty: peg$parseobjectProperty, objectShorthandProperty: peg$parseobjectShorthandProperty, objectPublicKey: peg$parseobjectPublicKey, parameterizedLambda: peg$parseparameterizedLambda, parensArgs: peg$parseparensArgs, pipeline: peg$parsepipeline, path: peg$parsepath, pathElement: peg$parsepathElement, pathKeyChar: peg$parsepathKeyChar, pathTail: peg$parsepathTail, protocolCall: peg$parseprotocolCall, protocol: peg$parseprotocol, reservedProtocol: peg$parsereservedProtocol, scopeReference: peg$parsescopeReference, scopeTraverse: peg$parsescopeTraverse, separator: peg$parseseparator, shebang: peg$parseshebang, sign: peg$parsesign, singleArrow: peg$parsesingleArrow, singleLineComment: peg$parsesingleLineComment, singleQuoteString: peg$parsesingleQuoteString, singleQuoteStringChar: peg$parsesingleQuoteStringChar, spread: peg$parsespread, step: peg$parsestep, start: peg$parsestart, string: peg$parsestring, taggedTemplate: peg$parsetaggedTemplate, templateDocument: peg$parsetemplateDocument, templateDocumentChar: peg$parsetemplateDocumentChar, templateDocumentContents: peg$parsetemplateDocumentContents, templateDocumentText: peg$parsetemplateDocumentText, templateLiteral: peg$parsetemplateLiteral, templateLiteralChar: peg$parsetemplateLiteralChar, templateLiteralContents: peg$parsetemplateLiteralContents, templateLiteralText: peg$parsetemplateLiteralText, templateSubstitution: peg$parsetemplateSubstitution, textChar: peg$parsetextChar, whitespaceWithNewLine: peg$parsewhitespaceWithNewLine };
|
|
196
196
|
var peg$startRuleFunction = peg$parse__;
|
|
197
197
|
|
|
198
198
|
var peg$c0 = "//";
|
|
@@ -241,8 +241,8 @@ function peg$parse(input, options) {
|
|
|
241
241
|
var peg$c43 = "\u2192";
|
|
242
242
|
var peg$c44 = "->";
|
|
243
243
|
var peg$c45 = "'";
|
|
244
|
-
var peg$c46 = "
|
|
245
|
-
var peg$c47 = "
|
|
244
|
+
var peg$c46 = "`";
|
|
245
|
+
var peg$c47 = "${";
|
|
246
246
|
|
|
247
247
|
var peg$r0 = /^[0-9]/;
|
|
248
248
|
var peg$r1 = /^[^(){}[\]<>\-=,\/:`"'\xAB\xBB\\ \u2192\u21D2\t\n\r]/;
|
|
@@ -337,11 +337,11 @@ function peg$parse(input, options) {
|
|
|
337
337
|
var peg$e83 = peg$otherExpectation("single quote string");
|
|
338
338
|
var peg$e84 = peg$literalExpectation("'", false);
|
|
339
339
|
var peg$e85 = peg$otherExpectation("string");
|
|
340
|
-
var peg$e86 = peg$
|
|
341
|
-
var peg$e87 = peg$
|
|
342
|
-
var peg$e88 = peg$
|
|
343
|
-
var peg$e89 = peg$otherExpectation("template
|
|
344
|
-
var peg$e90 = peg$
|
|
340
|
+
var peg$e86 = peg$literalExpectation("`", false);
|
|
341
|
+
var peg$e87 = peg$otherExpectation("template");
|
|
342
|
+
var peg$e88 = peg$literalExpectation("${", false);
|
|
343
|
+
var peg$e89 = peg$otherExpectation("template text");
|
|
344
|
+
var peg$e90 = peg$otherExpectation("template literal");
|
|
345
345
|
var peg$e91 = peg$otherExpectation("template substitution");
|
|
346
346
|
|
|
347
347
|
var peg$f0 = function() {
|
|
@@ -369,7 +369,7 @@ function peg$parse(input, options) {
|
|
|
369
369
|
error("Expected right parenthesis");
|
|
370
370
|
};
|
|
371
371
|
var peg$f8 = function(chars) {
|
|
372
|
-
return annotate([ops.
|
|
372
|
+
return annotate([ops.literal, chars.join("")], location());
|
|
373
373
|
};
|
|
374
374
|
var peg$f9 = function() { return "\0"; };
|
|
375
375
|
var peg$f10 = function() { return "\b"; };
|
|
@@ -379,7 +379,7 @@ function peg$parse(input, options) {
|
|
|
379
379
|
var peg$f14 = function() { return "\t"; };
|
|
380
380
|
var peg$f15 = function() { return "\v"; };
|
|
381
381
|
var peg$f16 = function() {
|
|
382
|
-
return annotate([ops.
|
|
382
|
+
return annotate([ops.literal, parseFloat(text())], location());
|
|
383
383
|
};
|
|
384
384
|
var peg$f17 = function(target, chain, end) {
|
|
385
385
|
if (end) {
|
|
@@ -387,128 +387,132 @@ function peg$parse(input, options) {
|
|
|
387
387
|
}
|
|
388
388
|
return annotate(makeFunctionCall(target, chain, location()), location());
|
|
389
389
|
};
|
|
390
|
-
var peg$f18 = function(
|
|
390
|
+
var peg$f18 = function(target, chain, end) {
|
|
391
|
+
if (end) {
|
|
392
|
+
chain.push(end);
|
|
393
|
+
}
|
|
394
|
+
return annotate(makeFunctionCall(target, chain, location()), location());
|
|
395
|
+
};
|
|
396
|
+
var peg$f19 = function(expr) {
|
|
391
397
|
return annotate(expr, location());
|
|
392
398
|
};
|
|
393
|
-
var peg$
|
|
394
|
-
return annotate([ops.
|
|
399
|
+
var peg$f20 = function(chars) {
|
|
400
|
+
return annotate([ops.literal, chars.join("")], location());
|
|
395
401
|
};
|
|
396
|
-
var peg$
|
|
402
|
+
var peg$f21 = function(identifier, port) {
|
|
397
403
|
const portText = port ? `:${port[1]}` : "";
|
|
398
404
|
const hostText = identifier + portText;
|
|
399
|
-
return annotate([ops.
|
|
405
|
+
return annotate([ops.literal, hostText], location());
|
|
400
406
|
};
|
|
401
|
-
var peg$
|
|
402
|
-
var peg$
|
|
407
|
+
var peg$f22 = function(chars) { return chars.join(""); };
|
|
408
|
+
var peg$f23 = function(list) {
|
|
403
409
|
return annotate(list, location());
|
|
404
410
|
};
|
|
405
|
-
var peg$
|
|
411
|
+
var peg$f24 = function(args) {
|
|
406
412
|
/* Stuff */
|
|
407
413
|
return annotate(args, location());
|
|
408
414
|
};
|
|
409
|
-
var peg$
|
|
410
|
-
return annotate([ops.
|
|
415
|
+
var peg$f25 = function() {
|
|
416
|
+
return annotate([ops.literal, parseInt(text())], location());
|
|
411
417
|
};
|
|
412
|
-
var peg$
|
|
413
|
-
return annotate([ops.lambda,
|
|
418
|
+
var peg$f26 = function(expr) {
|
|
419
|
+
return annotate([ops.lambda, ["_"], expr], location());
|
|
414
420
|
};
|
|
415
|
-
var peg$
|
|
421
|
+
var peg$f27 = function(path) {
|
|
416
422
|
return annotate(path ?? [], location());
|
|
417
423
|
};
|
|
418
|
-
var peg$
|
|
424
|
+
var peg$f28 = function(list) {
|
|
419
425
|
return annotate(list, location());
|
|
420
426
|
};
|
|
421
|
-
var peg$
|
|
422
|
-
var peg$
|
|
427
|
+
var peg$f29 = function() { return null; };
|
|
428
|
+
var peg$f30 = function(entries) {
|
|
423
429
|
return annotate(makeObject(entries ?? [], ops.object), location());
|
|
424
430
|
};
|
|
425
|
-
var peg$
|
|
431
|
+
var peg$f31 = function(entries) {
|
|
426
432
|
return annotate(entries, location());
|
|
427
433
|
};
|
|
428
|
-
var peg$
|
|
434
|
+
var peg$f32 = function(key, value) {
|
|
429
435
|
return annotate(makeProperty(key, [ops.getter, value]), location());
|
|
430
436
|
};
|
|
431
|
-
var peg$
|
|
432
|
-
var peg$
|
|
437
|
+
var peg$f33 = function(hiddenKey) { return hiddenKey.join(""); };
|
|
438
|
+
var peg$f34 = function(key, value) {
|
|
433
439
|
return annotate(makeProperty(key, value), location());
|
|
434
440
|
};
|
|
435
|
-
var peg$
|
|
441
|
+
var peg$f35 = function(key) {
|
|
436
442
|
return annotate([key, [ops.inherited, key]], location());
|
|
437
443
|
};
|
|
438
|
-
var peg$
|
|
444
|
+
var peg$f36 = function(identifier, slash) {
|
|
439
445
|
return identifier + (slash ?? "");
|
|
440
446
|
};
|
|
441
|
-
var peg$
|
|
442
|
-
// Remove `ops.
|
|
447
|
+
var peg$f37 = function(string) {
|
|
448
|
+
// Remove `ops.literal` from the string code
|
|
443
449
|
return string[1];
|
|
444
450
|
};
|
|
445
|
-
var peg$
|
|
451
|
+
var peg$f38 = function(parameters, expr) {
|
|
446
452
|
return annotate([ops.lambda, parameters ?? [], expr], location());
|
|
447
453
|
};
|
|
448
|
-
var peg$
|
|
454
|
+
var peg$f39 = function(list) {
|
|
449
455
|
return annotate(list ?? [undefined], location());
|
|
450
456
|
};
|
|
451
|
-
var peg$
|
|
457
|
+
var peg$f40 = function(steps) {
|
|
452
458
|
return annotate(makePipeline(steps), location());
|
|
453
459
|
};
|
|
454
|
-
var peg$
|
|
460
|
+
var peg$f41 = function(head, tail) {
|
|
455
461
|
let path = tail ? [...head, tail] : head;
|
|
456
462
|
// Remove parts for consecutive slashes
|
|
457
463
|
path = path.filter((part) => part[1] !== "/");
|
|
458
464
|
return annotate(path, location());
|
|
459
465
|
};
|
|
460
|
-
var peg$f41 = function(chars) {
|
|
461
|
-
return annotate([ops.primitive, chars.join("") + "/"], location());
|
|
462
|
-
};
|
|
463
466
|
var peg$f42 = function(chars) {
|
|
464
|
-
return annotate([ops.
|
|
467
|
+
return annotate([ops.literal, chars.join("") + "/"], location());
|
|
468
|
+
};
|
|
469
|
+
var peg$f43 = function(chars) {
|
|
470
|
+
return annotate([ops.literal, chars.join("")], location());
|
|
465
471
|
};
|
|
466
|
-
var peg$
|
|
472
|
+
var peg$f44 = function(protocol, host, path) {
|
|
467
473
|
return annotate([protocol, host, ...(path ?? [])], location());
|
|
468
474
|
};
|
|
469
|
-
var peg$
|
|
470
|
-
var peg$
|
|
471
|
-
var peg$
|
|
472
|
-
var peg$
|
|
473
|
-
var peg$
|
|
474
|
-
var peg$
|
|
475
|
-
var peg$
|
|
476
|
-
var peg$
|
|
477
|
-
var peg$
|
|
475
|
+
var peg$f45 = function() { return ops.explorableSite; };
|
|
476
|
+
var peg$f46 = function() { return ops.https; };
|
|
477
|
+
var peg$f47 = function() { return ops.http; };
|
|
478
|
+
var peg$f48 = function() { return ops.constructor; };
|
|
479
|
+
var peg$f49 = function() { return [ops.scope, "@package"] };
|
|
480
|
+
var peg$f50 = function() { return ops.treeHttps; };
|
|
481
|
+
var peg$f51 = function() { return ops.treeHttp; };
|
|
482
|
+
var peg$f52 = function() { return ops.treeHttps; };
|
|
483
|
+
var peg$f53 = function(key) {
|
|
478
484
|
return annotate([ops.scope, key], location());
|
|
479
485
|
};
|
|
480
|
-
var peg$
|
|
486
|
+
var peg$f54 = function(ref, path) {
|
|
481
487
|
const head = [ops.scope, `${ ref[1] }/`];
|
|
488
|
+
head.location = ref.location;
|
|
482
489
|
return annotate([ops.traverse, head, ...path], location());
|
|
483
490
|
};
|
|
484
|
-
var peg$f54 = function() { return null; };
|
|
485
491
|
var peg$f55 = function() { return null; };
|
|
486
|
-
var peg$f56 = function(
|
|
487
|
-
|
|
492
|
+
var peg$f56 = function() { return null; };
|
|
493
|
+
var peg$f57 = function(chars) {
|
|
494
|
+
return annotate([ops.literal, chars.join("")], location());
|
|
488
495
|
};
|
|
489
|
-
var peg$
|
|
496
|
+
var peg$f58 = function(expr) {
|
|
490
497
|
return annotate([ops.spread, expr], location());
|
|
491
498
|
};
|
|
492
|
-
var peg$
|
|
493
|
-
return annotate(
|
|
499
|
+
var peg$f59 = function(tag, contents) {
|
|
500
|
+
return annotate(makeTemplate(tag, contents[0], contents[1]), location());
|
|
494
501
|
};
|
|
495
|
-
var peg$
|
|
496
|
-
return annotate(
|
|
502
|
+
var peg$f60 = function(contents) {
|
|
503
|
+
return annotate([ops.lambda, ["_"], contents], location());
|
|
497
504
|
};
|
|
498
|
-
var peg$
|
|
499
|
-
|
|
500
|
-
};
|
|
501
|
-
var peg$f61 = function(contents) {
|
|
502
|
-
return annotate(contents, location());
|
|
505
|
+
var peg$f61 = function(head, tail) {
|
|
506
|
+
return annotate(makeTemplate(ops.template, head, tail), location());
|
|
503
507
|
};
|
|
504
|
-
var peg$f62 = function(
|
|
505
|
-
return
|
|
508
|
+
var peg$f62 = function(chars) {
|
|
509
|
+
return chars.join("");
|
|
506
510
|
};
|
|
507
|
-
var peg$f63 = function(
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
var peg$f64 = function(
|
|
511
|
-
return
|
|
511
|
+
var peg$f63 = function(contents) {
|
|
512
|
+
return annotate(makeTemplate(ops.template, contents[0], contents[1]), location());
|
|
513
|
+
};
|
|
514
|
+
var peg$f64 = function(chars) {
|
|
515
|
+
return chars.join("");
|
|
512
516
|
};
|
|
513
517
|
var peg$currPos = options.peg$currPos | 0;
|
|
514
518
|
var peg$savedPos = peg$currPos;
|
|
@@ -1404,20 +1408,52 @@ function peg$parse(input, options) {
|
|
|
1404
1408
|
if (s1 !== peg$FAILED) {
|
|
1405
1409
|
s2 = [];
|
|
1406
1410
|
s3 = peg$parseargs();
|
|
1407
|
-
|
|
1408
|
-
|
|
1409
|
-
|
|
1411
|
+
if (s3 !== peg$FAILED) {
|
|
1412
|
+
while (s3 !== peg$FAILED) {
|
|
1413
|
+
s2.push(s3);
|
|
1414
|
+
s3 = peg$parseargs();
|
|
1415
|
+
}
|
|
1416
|
+
} else {
|
|
1417
|
+
s2 = peg$FAILED;
|
|
1410
1418
|
}
|
|
1411
|
-
|
|
1412
|
-
|
|
1413
|
-
s3
|
|
1419
|
+
if (s2 !== peg$FAILED) {
|
|
1420
|
+
s3 = peg$parseimplicitParensArgs();
|
|
1421
|
+
if (s3 === peg$FAILED) {
|
|
1422
|
+
s3 = null;
|
|
1423
|
+
}
|
|
1424
|
+
peg$savedPos = s0;
|
|
1425
|
+
s0 = peg$f17(s1, s2, s3);
|
|
1426
|
+
} else {
|
|
1427
|
+
peg$currPos = s0;
|
|
1428
|
+
s0 = peg$FAILED;
|
|
1414
1429
|
}
|
|
1415
|
-
peg$savedPos = s0;
|
|
1416
|
-
s0 = peg$f17(s1, s2, s3);
|
|
1417
1430
|
} else {
|
|
1418
1431
|
peg$currPos = s0;
|
|
1419
1432
|
s0 = peg$FAILED;
|
|
1420
1433
|
}
|
|
1434
|
+
if (s0 === peg$FAILED) {
|
|
1435
|
+
s0 = peg$currPos;
|
|
1436
|
+
s1 = peg$parsecallTarget();
|
|
1437
|
+
if (s1 !== peg$FAILED) {
|
|
1438
|
+
s2 = [];
|
|
1439
|
+
s3 = peg$parseargs();
|
|
1440
|
+
while (s3 !== peg$FAILED) {
|
|
1441
|
+
s2.push(s3);
|
|
1442
|
+
s3 = peg$parseargs();
|
|
1443
|
+
}
|
|
1444
|
+
s3 = peg$parseimplicitParensArgs();
|
|
1445
|
+
if (s3 !== peg$FAILED) {
|
|
1446
|
+
peg$savedPos = s0;
|
|
1447
|
+
s0 = peg$f18(s1, s2, s3);
|
|
1448
|
+
} else {
|
|
1449
|
+
peg$currPos = s0;
|
|
1450
|
+
s0 = peg$FAILED;
|
|
1451
|
+
}
|
|
1452
|
+
} else {
|
|
1453
|
+
peg$currPos = s0;
|
|
1454
|
+
s0 = peg$FAILED;
|
|
1455
|
+
}
|
|
1456
|
+
}
|
|
1421
1457
|
peg$silentFails--;
|
|
1422
1458
|
if (s0 === peg$FAILED) {
|
|
1423
1459
|
s1 = peg$FAILED;
|
|
@@ -1447,7 +1483,7 @@ function peg$parse(input, options) {
|
|
|
1447
1483
|
s5 = peg$parseclosingParen();
|
|
1448
1484
|
if (s5 !== peg$FAILED) {
|
|
1449
1485
|
peg$savedPos = s0;
|
|
1450
|
-
s0 = peg$
|
|
1486
|
+
s0 = peg$f19(s3);
|
|
1451
1487
|
} else {
|
|
1452
1488
|
peg$currPos = s0;
|
|
1453
1489
|
s0 = peg$FAILED;
|
|
@@ -1497,7 +1533,7 @@ function peg$parse(input, options) {
|
|
|
1497
1533
|
}
|
|
1498
1534
|
if (s3 !== peg$FAILED) {
|
|
1499
1535
|
peg$savedPos = s0;
|
|
1500
|
-
s0 = peg$
|
|
1536
|
+
s0 = peg$f20(s2);
|
|
1501
1537
|
} else {
|
|
1502
1538
|
peg$currPos = s0;
|
|
1503
1539
|
s0 = peg$FAILED;
|
|
@@ -1585,7 +1621,7 @@ function peg$parse(input, options) {
|
|
|
1585
1621
|
s2 = null;
|
|
1586
1622
|
}
|
|
1587
1623
|
peg$savedPos = s0;
|
|
1588
|
-
s0 = peg$
|
|
1624
|
+
s0 = peg$f21(s1, s2);
|
|
1589
1625
|
} else {
|
|
1590
1626
|
peg$currPos = s0;
|
|
1591
1627
|
s0 = peg$FAILED;
|
|
@@ -1616,7 +1652,7 @@ function peg$parse(input, options) {
|
|
|
1616
1652
|
}
|
|
1617
1653
|
if (s1 !== peg$FAILED) {
|
|
1618
1654
|
peg$savedPos = s0;
|
|
1619
|
-
s1 = peg$
|
|
1655
|
+
s1 = peg$f22(s1);
|
|
1620
1656
|
}
|
|
1621
1657
|
s0 = s1;
|
|
1622
1658
|
peg$silentFails--;
|
|
@@ -1717,7 +1753,7 @@ function peg$parse(input, options) {
|
|
|
1717
1753
|
s2 = null;
|
|
1718
1754
|
}
|
|
1719
1755
|
peg$savedPos = s0;
|
|
1720
|
-
s0 = peg$
|
|
1756
|
+
s0 = peg$f23(s1);
|
|
1721
1757
|
} else {
|
|
1722
1758
|
peg$currPos = s0;
|
|
1723
1759
|
s0 = peg$FAILED;
|
|
@@ -1773,7 +1809,7 @@ function peg$parse(input, options) {
|
|
|
1773
1809
|
s3 = null;
|
|
1774
1810
|
}
|
|
1775
1811
|
peg$savedPos = s0;
|
|
1776
|
-
s0 = peg$
|
|
1812
|
+
s0 = peg$f24(s2);
|
|
1777
1813
|
} else {
|
|
1778
1814
|
peg$currPos = s0;
|
|
1779
1815
|
s0 = peg$FAILED;
|
|
@@ -1817,7 +1853,7 @@ function peg$parse(input, options) {
|
|
|
1817
1853
|
s2 = peg$parsedigits();
|
|
1818
1854
|
if (s2 !== peg$FAILED) {
|
|
1819
1855
|
peg$savedPos = s0;
|
|
1820
|
-
s0 = peg$
|
|
1856
|
+
s0 = peg$f25();
|
|
1821
1857
|
} else {
|
|
1822
1858
|
peg$currPos = s0;
|
|
1823
1859
|
s0 = peg$FAILED;
|
|
@@ -1848,7 +1884,7 @@ function peg$parse(input, options) {
|
|
|
1848
1884
|
s3 = peg$parsepipeline();
|
|
1849
1885
|
if (s3 !== peg$FAILED) {
|
|
1850
1886
|
peg$savedPos = s0;
|
|
1851
|
-
s0 = peg$
|
|
1887
|
+
s0 = peg$f26(s3);
|
|
1852
1888
|
} else {
|
|
1853
1889
|
peg$currPos = s0;
|
|
1854
1890
|
s0 = peg$FAILED;
|
|
@@ -1881,7 +1917,7 @@ function peg$parse(input, options) {
|
|
|
1881
1917
|
if (s1 !== peg$FAILED) {
|
|
1882
1918
|
s2 = peg$parsepath();
|
|
1883
1919
|
peg$savedPos = s0;
|
|
1884
|
-
s0 = peg$
|
|
1920
|
+
s0 = peg$f27(s2);
|
|
1885
1921
|
} else {
|
|
1886
1922
|
peg$currPos = s0;
|
|
1887
1923
|
s0 = peg$FAILED;
|
|
@@ -1931,7 +1967,7 @@ function peg$parse(input, options) {
|
|
|
1931
1967
|
s2 = null;
|
|
1932
1968
|
}
|
|
1933
1969
|
peg$savedPos = s0;
|
|
1934
|
-
s0 = peg$
|
|
1970
|
+
s0 = peg$f28(s1);
|
|
1935
1971
|
} else {
|
|
1936
1972
|
peg$currPos = s0;
|
|
1937
1973
|
s0 = peg$FAILED;
|
|
@@ -2042,7 +2078,7 @@ function peg$parse(input, options) {
|
|
|
2042
2078
|
}
|
|
2043
2079
|
if (s3 !== peg$FAILED) {
|
|
2044
2080
|
peg$savedPos = s0;
|
|
2045
|
-
s0 = peg$
|
|
2081
|
+
s0 = peg$f29();
|
|
2046
2082
|
} else {
|
|
2047
2083
|
peg$currPos = s0;
|
|
2048
2084
|
s0 = peg$FAILED;
|
|
@@ -2126,7 +2162,7 @@ function peg$parse(input, options) {
|
|
|
2126
2162
|
s5 = peg$parseclosingBrace();
|
|
2127
2163
|
if (s5 !== peg$FAILED) {
|
|
2128
2164
|
peg$savedPos = s0;
|
|
2129
|
-
s0 = peg$
|
|
2165
|
+
s0 = peg$f30(s3);
|
|
2130
2166
|
} else {
|
|
2131
2167
|
peg$currPos = s0;
|
|
2132
2168
|
s0 = peg$FAILED;
|
|
@@ -2179,7 +2215,7 @@ function peg$parse(input, options) {
|
|
|
2179
2215
|
s2 = null;
|
|
2180
2216
|
}
|
|
2181
2217
|
peg$savedPos = s0;
|
|
2182
|
-
s0 = peg$
|
|
2218
|
+
s0 = peg$f31(s1);
|
|
2183
2219
|
} else {
|
|
2184
2220
|
peg$currPos = s0;
|
|
2185
2221
|
s0 = peg$FAILED;
|
|
@@ -2225,7 +2261,7 @@ function peg$parse(input, options) {
|
|
|
2225
2261
|
s5 = peg$parsepipeline();
|
|
2226
2262
|
if (s5 !== peg$FAILED) {
|
|
2227
2263
|
peg$savedPos = s0;
|
|
2228
|
-
s0 = peg$
|
|
2264
|
+
s0 = peg$f32(s1, s5);
|
|
2229
2265
|
} else {
|
|
2230
2266
|
peg$currPos = s0;
|
|
2231
2267
|
s0 = peg$FAILED;
|
|
@@ -2286,7 +2322,7 @@ function peg$parse(input, options) {
|
|
|
2286
2322
|
}
|
|
2287
2323
|
if (s1 !== peg$FAILED) {
|
|
2288
2324
|
peg$savedPos = s0;
|
|
2289
|
-
s1 = peg$
|
|
2325
|
+
s1 = peg$f33(s1);
|
|
2290
2326
|
}
|
|
2291
2327
|
s0 = s1;
|
|
2292
2328
|
|
|
@@ -2330,7 +2366,7 @@ function peg$parse(input, options) {
|
|
|
2330
2366
|
s5 = peg$parsepipeline();
|
|
2331
2367
|
if (s5 !== peg$FAILED) {
|
|
2332
2368
|
peg$savedPos = s0;
|
|
2333
|
-
s0 = peg$
|
|
2369
|
+
s0 = peg$f34(s1, s5);
|
|
2334
2370
|
} else {
|
|
2335
2371
|
peg$currPos = s0;
|
|
2336
2372
|
s0 = peg$FAILED;
|
|
@@ -2360,7 +2396,7 @@ function peg$parse(input, options) {
|
|
|
2360
2396
|
s1 = peg$parseobjectPublicKey();
|
|
2361
2397
|
if (s1 !== peg$FAILED) {
|
|
2362
2398
|
peg$savedPos = s0;
|
|
2363
|
-
s1 = peg$
|
|
2399
|
+
s1 = peg$f35(s1);
|
|
2364
2400
|
}
|
|
2365
2401
|
s0 = s1;
|
|
2366
2402
|
peg$silentFails--;
|
|
@@ -2389,7 +2425,7 @@ function peg$parse(input, options) {
|
|
|
2389
2425
|
s2 = null;
|
|
2390
2426
|
}
|
|
2391
2427
|
peg$savedPos = s0;
|
|
2392
|
-
s0 = peg$
|
|
2428
|
+
s0 = peg$f36(s1, s2);
|
|
2393
2429
|
} else {
|
|
2394
2430
|
peg$currPos = s0;
|
|
2395
2431
|
s0 = peg$FAILED;
|
|
@@ -2399,7 +2435,7 @@ function peg$parse(input, options) {
|
|
|
2399
2435
|
s1 = peg$parsestring();
|
|
2400
2436
|
if (s1 !== peg$FAILED) {
|
|
2401
2437
|
peg$savedPos = s0;
|
|
2402
|
-
s1 = peg$
|
|
2438
|
+
s1 = peg$f37(s1);
|
|
2403
2439
|
}
|
|
2404
2440
|
s0 = s1;
|
|
2405
2441
|
}
|
|
@@ -2440,7 +2476,7 @@ function peg$parse(input, options) {
|
|
|
2440
2476
|
s9 = peg$parsepipeline();
|
|
2441
2477
|
if (s9 !== peg$FAILED) {
|
|
2442
2478
|
peg$savedPos = s0;
|
|
2443
|
-
s0 = peg$
|
|
2479
|
+
s0 = peg$f38(s3, s9);
|
|
2444
2480
|
} else {
|
|
2445
2481
|
peg$currPos = s0;
|
|
2446
2482
|
s0 = peg$FAILED;
|
|
@@ -2489,7 +2525,7 @@ function peg$parse(input, options) {
|
|
|
2489
2525
|
}
|
|
2490
2526
|
if (s5 !== peg$FAILED) {
|
|
2491
2527
|
peg$savedPos = s0;
|
|
2492
|
-
s0 = peg$
|
|
2528
|
+
s0 = peg$f39(s3);
|
|
2493
2529
|
} else {
|
|
2494
2530
|
peg$currPos = s0;
|
|
2495
2531
|
s0 = peg$FAILED;
|
|
@@ -2555,7 +2591,7 @@ function peg$parse(input, options) {
|
|
|
2555
2591
|
}
|
|
2556
2592
|
if (s1 !== peg$FAILED) {
|
|
2557
2593
|
peg$savedPos = s0;
|
|
2558
|
-
s1 = peg$
|
|
2594
|
+
s1 = peg$f40(s1);
|
|
2559
2595
|
}
|
|
2560
2596
|
s0 = s1;
|
|
2561
2597
|
|
|
@@ -2578,7 +2614,7 @@ function peg$parse(input, options) {
|
|
|
2578
2614
|
s2 = null;
|
|
2579
2615
|
}
|
|
2580
2616
|
peg$savedPos = s0;
|
|
2581
|
-
s0 = peg$
|
|
2617
|
+
s0 = peg$f41(s1, s2);
|
|
2582
2618
|
peg$silentFails--;
|
|
2583
2619
|
s1 = peg$FAILED;
|
|
2584
2620
|
if (peg$silentFails === 0) { peg$fail(peg$e63); }
|
|
@@ -2605,7 +2641,7 @@ function peg$parse(input, options) {
|
|
|
2605
2641
|
}
|
|
2606
2642
|
if (s2 !== peg$FAILED) {
|
|
2607
2643
|
peg$savedPos = s0;
|
|
2608
|
-
s0 = peg$
|
|
2644
|
+
s0 = peg$f42(s1);
|
|
2609
2645
|
} else {
|
|
2610
2646
|
peg$currPos = s0;
|
|
2611
2647
|
s0 = peg$FAILED;
|
|
@@ -2647,7 +2683,7 @@ function peg$parse(input, options) {
|
|
|
2647
2683
|
}
|
|
2648
2684
|
if (s1 !== peg$FAILED) {
|
|
2649
2685
|
peg$savedPos = s0;
|
|
2650
|
-
s1 = peg$
|
|
2686
|
+
s1 = peg$f43(s1);
|
|
2651
2687
|
}
|
|
2652
2688
|
s0 = s1;
|
|
2653
2689
|
|
|
@@ -2698,7 +2734,7 @@ function peg$parse(input, options) {
|
|
|
2698
2734
|
s5 = null;
|
|
2699
2735
|
}
|
|
2700
2736
|
peg$savedPos = s0;
|
|
2701
|
-
s0 = peg$
|
|
2737
|
+
s0 = peg$f44(s1, s4, s5);
|
|
2702
2738
|
} else {
|
|
2703
2739
|
peg$currPos = s0;
|
|
2704
2740
|
s0 = peg$FAILED;
|
|
@@ -2751,7 +2787,7 @@ function peg$parse(input, options) {
|
|
|
2751
2787
|
}
|
|
2752
2788
|
if (s1 !== peg$FAILED) {
|
|
2753
2789
|
peg$savedPos = s0;
|
|
2754
|
-
s1 = peg$
|
|
2790
|
+
s1 = peg$f45();
|
|
2755
2791
|
}
|
|
2756
2792
|
s0 = s1;
|
|
2757
2793
|
if (s0 === peg$FAILED) {
|
|
@@ -2765,7 +2801,7 @@ function peg$parse(input, options) {
|
|
|
2765
2801
|
}
|
|
2766
2802
|
if (s1 !== peg$FAILED) {
|
|
2767
2803
|
peg$savedPos = s0;
|
|
2768
|
-
s1 = peg$
|
|
2804
|
+
s1 = peg$f46();
|
|
2769
2805
|
}
|
|
2770
2806
|
s0 = s1;
|
|
2771
2807
|
if (s0 === peg$FAILED) {
|
|
@@ -2779,7 +2815,7 @@ function peg$parse(input, options) {
|
|
|
2779
2815
|
}
|
|
2780
2816
|
if (s1 !== peg$FAILED) {
|
|
2781
2817
|
peg$savedPos = s0;
|
|
2782
|
-
s1 = peg$
|
|
2818
|
+
s1 = peg$f47();
|
|
2783
2819
|
}
|
|
2784
2820
|
s0 = s1;
|
|
2785
2821
|
if (s0 === peg$FAILED) {
|
|
@@ -2793,7 +2829,7 @@ function peg$parse(input, options) {
|
|
|
2793
2829
|
}
|
|
2794
2830
|
if (s1 !== peg$FAILED) {
|
|
2795
2831
|
peg$savedPos = s0;
|
|
2796
|
-
s1 = peg$
|
|
2832
|
+
s1 = peg$f48();
|
|
2797
2833
|
}
|
|
2798
2834
|
s0 = s1;
|
|
2799
2835
|
if (s0 === peg$FAILED) {
|
|
@@ -2807,7 +2843,7 @@ function peg$parse(input, options) {
|
|
|
2807
2843
|
}
|
|
2808
2844
|
if (s1 !== peg$FAILED) {
|
|
2809
2845
|
peg$savedPos = s0;
|
|
2810
|
-
s1 = peg$
|
|
2846
|
+
s1 = peg$f49();
|
|
2811
2847
|
}
|
|
2812
2848
|
s0 = s1;
|
|
2813
2849
|
if (s0 === peg$FAILED) {
|
|
@@ -2821,7 +2857,7 @@ function peg$parse(input, options) {
|
|
|
2821
2857
|
}
|
|
2822
2858
|
if (s1 !== peg$FAILED) {
|
|
2823
2859
|
peg$savedPos = s0;
|
|
2824
|
-
s1 = peg$
|
|
2860
|
+
s1 = peg$f50();
|
|
2825
2861
|
}
|
|
2826
2862
|
s0 = s1;
|
|
2827
2863
|
if (s0 === peg$FAILED) {
|
|
@@ -2835,7 +2871,7 @@ function peg$parse(input, options) {
|
|
|
2835
2871
|
}
|
|
2836
2872
|
if (s1 !== peg$FAILED) {
|
|
2837
2873
|
peg$savedPos = s0;
|
|
2838
|
-
s1 = peg$
|
|
2874
|
+
s1 = peg$f51();
|
|
2839
2875
|
}
|
|
2840
2876
|
s0 = s1;
|
|
2841
2877
|
if (s0 === peg$FAILED) {
|
|
@@ -2849,7 +2885,7 @@ function peg$parse(input, options) {
|
|
|
2849
2885
|
}
|
|
2850
2886
|
if (s1 !== peg$FAILED) {
|
|
2851
2887
|
peg$savedPos = s0;
|
|
2852
|
-
s1 = peg$
|
|
2888
|
+
s1 = peg$f52();
|
|
2853
2889
|
}
|
|
2854
2890
|
s0 = s1;
|
|
2855
2891
|
}
|
|
@@ -2876,7 +2912,7 @@ function peg$parse(input, options) {
|
|
|
2876
2912
|
s1 = peg$parseidentifier();
|
|
2877
2913
|
if (s1 !== peg$FAILED) {
|
|
2878
2914
|
peg$savedPos = s0;
|
|
2879
|
-
s1 = peg$
|
|
2915
|
+
s1 = peg$f53(s1);
|
|
2880
2916
|
}
|
|
2881
2917
|
s0 = s1;
|
|
2882
2918
|
peg$silentFails--;
|
|
@@ -2904,7 +2940,7 @@ function peg$parse(input, options) {
|
|
|
2904
2940
|
if (s2 !== peg$FAILED) {
|
|
2905
2941
|
s3 = peg$parsepath();
|
|
2906
2942
|
peg$savedPos = s0;
|
|
2907
|
-
s0 = peg$
|
|
2943
|
+
s0 = peg$f54(s1, s3);
|
|
2908
2944
|
} else {
|
|
2909
2945
|
peg$currPos = s0;
|
|
2910
2946
|
s0 = peg$FAILED;
|
|
@@ -2975,7 +3011,7 @@ function peg$parse(input, options) {
|
|
|
2975
3011
|
}
|
|
2976
3012
|
}
|
|
2977
3013
|
peg$savedPos = s0;
|
|
2978
|
-
s0 = peg$
|
|
3014
|
+
s0 = peg$f55();
|
|
2979
3015
|
} else {
|
|
2980
3016
|
peg$currPos = s0;
|
|
2981
3017
|
s0 = peg$FAILED;
|
|
@@ -3052,7 +3088,7 @@ function peg$parse(input, options) {
|
|
|
3052
3088
|
}
|
|
3053
3089
|
}
|
|
3054
3090
|
peg$savedPos = s0;
|
|
3055
|
-
s0 = peg$
|
|
3091
|
+
s0 = peg$f56();
|
|
3056
3092
|
} else {
|
|
3057
3093
|
peg$currPos = s0;
|
|
3058
3094
|
s0 = peg$FAILED;
|
|
@@ -3089,7 +3125,7 @@ function peg$parse(input, options) {
|
|
|
3089
3125
|
}
|
|
3090
3126
|
if (s3 !== peg$FAILED) {
|
|
3091
3127
|
peg$savedPos = s0;
|
|
3092
|
-
s0 = peg$
|
|
3128
|
+
s0 = peg$f57(s2);
|
|
3093
3129
|
} else {
|
|
3094
3130
|
peg$currPos = s0;
|
|
3095
3131
|
s0 = peg$FAILED;
|
|
@@ -3155,7 +3191,7 @@ function peg$parse(input, options) {
|
|
|
3155
3191
|
s2 = peg$parsepipeline();
|
|
3156
3192
|
if (s2 !== peg$FAILED) {
|
|
3157
3193
|
peg$savedPos = s0;
|
|
3158
|
-
s0 = peg$
|
|
3194
|
+
s0 = peg$f58(s2);
|
|
3159
3195
|
} else {
|
|
3160
3196
|
peg$currPos = s0;
|
|
3161
3197
|
s0 = peg$FAILED;
|
|
@@ -3193,7 +3229,13 @@ function peg$parse(input, options) {
|
|
|
3193
3229
|
if (s0 === peg$FAILED) {
|
|
3194
3230
|
s0 = peg$parseprotocolCall();
|
|
3195
3231
|
if (s0 === peg$FAILED) {
|
|
3196
|
-
s0 = peg$
|
|
3232
|
+
s0 = peg$parsetaggedTemplate();
|
|
3233
|
+
if (s0 === peg$FAILED) {
|
|
3234
|
+
s0 = peg$parsescopeTraverse();
|
|
3235
|
+
if (s0 === peg$FAILED) {
|
|
3236
|
+
s0 = peg$parsescopeReference();
|
|
3237
|
+
}
|
|
3238
|
+
}
|
|
3197
3239
|
}
|
|
3198
3240
|
}
|
|
3199
3241
|
}
|
|
@@ -3237,6 +3279,47 @@ function peg$parse(input, options) {
|
|
|
3237
3279
|
return s0;
|
|
3238
3280
|
}
|
|
3239
3281
|
|
|
3282
|
+
function peg$parsetaggedTemplate() {
|
|
3283
|
+
var s0, s1, s2, s3, s4;
|
|
3284
|
+
|
|
3285
|
+
s0 = peg$currPos;
|
|
3286
|
+
s1 = peg$parsecallTarget();
|
|
3287
|
+
if (s1 !== peg$FAILED) {
|
|
3288
|
+
if (input.charCodeAt(peg$currPos) === 96) {
|
|
3289
|
+
s2 = peg$c46;
|
|
3290
|
+
peg$currPos++;
|
|
3291
|
+
} else {
|
|
3292
|
+
s2 = peg$FAILED;
|
|
3293
|
+
if (peg$silentFails === 0) { peg$fail(peg$e86); }
|
|
3294
|
+
}
|
|
3295
|
+
if (s2 !== peg$FAILED) {
|
|
3296
|
+
s3 = peg$parsetemplateLiteralContents();
|
|
3297
|
+
if (input.charCodeAt(peg$currPos) === 96) {
|
|
3298
|
+
s4 = peg$c46;
|
|
3299
|
+
peg$currPos++;
|
|
3300
|
+
} else {
|
|
3301
|
+
s4 = peg$FAILED;
|
|
3302
|
+
if (peg$silentFails === 0) { peg$fail(peg$e86); }
|
|
3303
|
+
}
|
|
3304
|
+
if (s4 !== peg$FAILED) {
|
|
3305
|
+
peg$savedPos = s0;
|
|
3306
|
+
s0 = peg$f59(s1, s3);
|
|
3307
|
+
} else {
|
|
3308
|
+
peg$currPos = s0;
|
|
3309
|
+
s0 = peg$FAILED;
|
|
3310
|
+
}
|
|
3311
|
+
} else {
|
|
3312
|
+
peg$currPos = s0;
|
|
3313
|
+
s0 = peg$FAILED;
|
|
3314
|
+
}
|
|
3315
|
+
} else {
|
|
3316
|
+
peg$currPos = s0;
|
|
3317
|
+
s0 = peg$FAILED;
|
|
3318
|
+
}
|
|
3319
|
+
|
|
3320
|
+
return s0;
|
|
3321
|
+
}
|
|
3322
|
+
|
|
3240
3323
|
function peg$parsetemplateDocument() {
|
|
3241
3324
|
var s0, s1;
|
|
3242
3325
|
|
|
@@ -3244,11 +3327,11 @@ function peg$parse(input, options) {
|
|
|
3244
3327
|
s0 = peg$currPos;
|
|
3245
3328
|
s1 = peg$parsetemplateDocumentContents();
|
|
3246
3329
|
peg$savedPos = s0;
|
|
3247
|
-
s1 = peg$
|
|
3330
|
+
s1 = peg$f60(s1);
|
|
3248
3331
|
s0 = s1;
|
|
3249
3332
|
peg$silentFails--;
|
|
3250
3333
|
s1 = peg$FAILED;
|
|
3251
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
3334
|
+
if (peg$silentFails === 0) { peg$fail(peg$e87); }
|
|
3252
3335
|
|
|
3253
3336
|
return s0;
|
|
3254
3337
|
}
|
|
@@ -3259,12 +3342,12 @@ function peg$parse(input, options) {
|
|
|
3259
3342
|
s0 = peg$currPos;
|
|
3260
3343
|
s1 = peg$currPos;
|
|
3261
3344
|
peg$silentFails++;
|
|
3262
|
-
if (input.substr(peg$currPos, 2) === peg$
|
|
3263
|
-
s2 = peg$
|
|
3345
|
+
if (input.substr(peg$currPos, 2) === peg$c47) {
|
|
3346
|
+
s2 = peg$c47;
|
|
3264
3347
|
peg$currPos += 2;
|
|
3265
3348
|
} else {
|
|
3266
3349
|
s2 = peg$FAILED;
|
|
3267
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
3350
|
+
if (peg$silentFails === 0) { peg$fail(peg$e88); }
|
|
3268
3351
|
}
|
|
3269
3352
|
peg$silentFails--;
|
|
3270
3353
|
if (s2 === peg$FAILED) {
|
|
@@ -3290,24 +3373,36 @@ function peg$parse(input, options) {
|
|
|
3290
3373
|
}
|
|
3291
3374
|
|
|
3292
3375
|
function peg$parsetemplateDocumentContents() {
|
|
3293
|
-
var s0, s1, s2;
|
|
3376
|
+
var s0, s1, s2, s3, s4, s5;
|
|
3294
3377
|
|
|
3295
3378
|
s0 = peg$currPos;
|
|
3296
|
-
s1 =
|
|
3297
|
-
s2 =
|
|
3298
|
-
|
|
3299
|
-
|
|
3379
|
+
s1 = peg$parsetemplateDocumentText();
|
|
3380
|
+
s2 = [];
|
|
3381
|
+
s3 = peg$currPos;
|
|
3382
|
+
s4 = peg$parsetemplateSubstitution();
|
|
3383
|
+
if (s4 !== peg$FAILED) {
|
|
3384
|
+
s5 = peg$parsetemplateDocumentText();
|
|
3385
|
+
s4 = [s4, s5];
|
|
3386
|
+
s3 = s4;
|
|
3387
|
+
} else {
|
|
3388
|
+
peg$currPos = s3;
|
|
3389
|
+
s3 = peg$FAILED;
|
|
3300
3390
|
}
|
|
3301
|
-
while (
|
|
3302
|
-
|
|
3303
|
-
|
|
3304
|
-
|
|
3305
|
-
|
|
3391
|
+
while (s3 !== peg$FAILED) {
|
|
3392
|
+
s2.push(s3);
|
|
3393
|
+
s3 = peg$currPos;
|
|
3394
|
+
s4 = peg$parsetemplateSubstitution();
|
|
3395
|
+
if (s4 !== peg$FAILED) {
|
|
3396
|
+
s5 = peg$parsetemplateDocumentText();
|
|
3397
|
+
s4 = [s4, s5];
|
|
3398
|
+
s3 = s4;
|
|
3399
|
+
} else {
|
|
3400
|
+
peg$currPos = s3;
|
|
3401
|
+
s3 = peg$FAILED;
|
|
3306
3402
|
}
|
|
3307
3403
|
}
|
|
3308
3404
|
peg$savedPos = s0;
|
|
3309
|
-
|
|
3310
|
-
s0 = s1;
|
|
3405
|
+
s0 = peg$f61(s1, s2);
|
|
3311
3406
|
|
|
3312
3407
|
return s0;
|
|
3313
3408
|
}
|
|
@@ -3319,24 +3414,16 @@ function peg$parse(input, options) {
|
|
|
3319
3414
|
s0 = peg$currPos;
|
|
3320
3415
|
s1 = [];
|
|
3321
3416
|
s2 = peg$parsetemplateDocumentChar();
|
|
3322
|
-
|
|
3323
|
-
|
|
3324
|
-
|
|
3325
|
-
s2 = peg$parsetemplateDocumentChar();
|
|
3326
|
-
}
|
|
3327
|
-
} else {
|
|
3328
|
-
s1 = peg$FAILED;
|
|
3329
|
-
}
|
|
3330
|
-
if (s1 !== peg$FAILED) {
|
|
3331
|
-
peg$savedPos = s0;
|
|
3332
|
-
s1 = peg$f60(s1);
|
|
3417
|
+
while (s2 !== peg$FAILED) {
|
|
3418
|
+
s1.push(s2);
|
|
3419
|
+
s2 = peg$parsetemplateDocumentChar();
|
|
3333
3420
|
}
|
|
3421
|
+
peg$savedPos = s0;
|
|
3422
|
+
s1 = peg$f62(s1);
|
|
3334
3423
|
s0 = s1;
|
|
3335
3424
|
peg$silentFails--;
|
|
3336
|
-
|
|
3337
|
-
|
|
3338
|
-
if (peg$silentFails === 0) { peg$fail(peg$e88); }
|
|
3339
|
-
}
|
|
3425
|
+
s1 = peg$FAILED;
|
|
3426
|
+
if (peg$silentFails === 0) { peg$fail(peg$e89); }
|
|
3340
3427
|
|
|
3341
3428
|
return s0;
|
|
3342
3429
|
}
|
|
@@ -3347,24 +3434,24 @@ function peg$parse(input, options) {
|
|
|
3347
3434
|
peg$silentFails++;
|
|
3348
3435
|
s0 = peg$currPos;
|
|
3349
3436
|
if (input.charCodeAt(peg$currPos) === 96) {
|
|
3350
|
-
s1 = peg$
|
|
3437
|
+
s1 = peg$c46;
|
|
3351
3438
|
peg$currPos++;
|
|
3352
3439
|
} else {
|
|
3353
3440
|
s1 = peg$FAILED;
|
|
3354
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
3441
|
+
if (peg$silentFails === 0) { peg$fail(peg$e86); }
|
|
3355
3442
|
}
|
|
3356
3443
|
if (s1 !== peg$FAILED) {
|
|
3357
3444
|
s2 = peg$parsetemplateLiteralContents();
|
|
3358
3445
|
if (input.charCodeAt(peg$currPos) === 96) {
|
|
3359
|
-
s3 = peg$
|
|
3446
|
+
s3 = peg$c46;
|
|
3360
3447
|
peg$currPos++;
|
|
3361
3448
|
} else {
|
|
3362
3449
|
s3 = peg$FAILED;
|
|
3363
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
3450
|
+
if (peg$silentFails === 0) { peg$fail(peg$e86); }
|
|
3364
3451
|
}
|
|
3365
3452
|
if (s3 !== peg$FAILED) {
|
|
3366
3453
|
peg$savedPos = s0;
|
|
3367
|
-
s0 = peg$
|
|
3454
|
+
s0 = peg$f63(s2);
|
|
3368
3455
|
} else {
|
|
3369
3456
|
peg$currPos = s0;
|
|
3370
3457
|
s0 = peg$FAILED;
|
|
@@ -3376,7 +3463,7 @@ function peg$parse(input, options) {
|
|
|
3376
3463
|
peg$silentFails--;
|
|
3377
3464
|
if (s0 === peg$FAILED) {
|
|
3378
3465
|
s1 = peg$FAILED;
|
|
3379
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
3466
|
+
if (peg$silentFails === 0) { peg$fail(peg$e90); }
|
|
3380
3467
|
}
|
|
3381
3468
|
|
|
3382
3469
|
return s0;
|
|
@@ -3389,19 +3476,19 @@ function peg$parse(input, options) {
|
|
|
3389
3476
|
s1 = peg$currPos;
|
|
3390
3477
|
peg$silentFails++;
|
|
3391
3478
|
if (input.charCodeAt(peg$currPos) === 96) {
|
|
3392
|
-
s2 = peg$
|
|
3479
|
+
s2 = peg$c46;
|
|
3393
3480
|
peg$currPos++;
|
|
3394
3481
|
} else {
|
|
3395
3482
|
s2 = peg$FAILED;
|
|
3396
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
3483
|
+
if (peg$silentFails === 0) { peg$fail(peg$e86); }
|
|
3397
3484
|
}
|
|
3398
3485
|
if (s2 === peg$FAILED) {
|
|
3399
|
-
if (input.substr(peg$currPos, 2) === peg$
|
|
3400
|
-
s2 = peg$
|
|
3486
|
+
if (input.substr(peg$currPos, 2) === peg$c47) {
|
|
3487
|
+
s2 = peg$c47;
|
|
3401
3488
|
peg$currPos += 2;
|
|
3402
3489
|
} else {
|
|
3403
3490
|
s2 = peg$FAILED;
|
|
3404
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
3491
|
+
if (peg$silentFails === 0) { peg$fail(peg$e88); }
|
|
3405
3492
|
}
|
|
3406
3493
|
}
|
|
3407
3494
|
peg$silentFails--;
|
|
@@ -3428,23 +3515,35 @@ function peg$parse(input, options) {
|
|
|
3428
3515
|
}
|
|
3429
3516
|
|
|
3430
3517
|
function peg$parsetemplateLiteralContents() {
|
|
3431
|
-
var s0, s1, s2;
|
|
3518
|
+
var s0, s1, s2, s3, s4, s5;
|
|
3432
3519
|
|
|
3433
3520
|
s0 = peg$currPos;
|
|
3434
|
-
s1 =
|
|
3435
|
-
s2 =
|
|
3436
|
-
|
|
3437
|
-
|
|
3521
|
+
s1 = peg$parsetemplateLiteralText();
|
|
3522
|
+
s2 = [];
|
|
3523
|
+
s3 = peg$currPos;
|
|
3524
|
+
s4 = peg$parsetemplateSubstitution();
|
|
3525
|
+
if (s4 !== peg$FAILED) {
|
|
3526
|
+
s5 = peg$parsetemplateLiteralText();
|
|
3527
|
+
s4 = [s4, s5];
|
|
3528
|
+
s3 = s4;
|
|
3529
|
+
} else {
|
|
3530
|
+
peg$currPos = s3;
|
|
3531
|
+
s3 = peg$FAILED;
|
|
3438
3532
|
}
|
|
3439
|
-
while (
|
|
3440
|
-
|
|
3441
|
-
|
|
3442
|
-
|
|
3443
|
-
|
|
3533
|
+
while (s3 !== peg$FAILED) {
|
|
3534
|
+
s2.push(s3);
|
|
3535
|
+
s3 = peg$currPos;
|
|
3536
|
+
s4 = peg$parsetemplateSubstitution();
|
|
3537
|
+
if (s4 !== peg$FAILED) {
|
|
3538
|
+
s5 = peg$parsetemplateLiteralText();
|
|
3539
|
+
s4 = [s4, s5];
|
|
3540
|
+
s3 = s4;
|
|
3541
|
+
} else {
|
|
3542
|
+
peg$currPos = s3;
|
|
3543
|
+
s3 = peg$FAILED;
|
|
3444
3544
|
}
|
|
3445
3545
|
}
|
|
3446
|
-
|
|
3447
|
-
s1 = peg$f62(s1);
|
|
3546
|
+
s1 = [s1, s2];
|
|
3448
3547
|
s0 = s1;
|
|
3449
3548
|
|
|
3450
3549
|
return s0;
|
|
@@ -3456,18 +3555,12 @@ function peg$parse(input, options) {
|
|
|
3456
3555
|
s0 = peg$currPos;
|
|
3457
3556
|
s1 = [];
|
|
3458
3557
|
s2 = peg$parsetemplateLiteralChar();
|
|
3459
|
-
|
|
3460
|
-
|
|
3461
|
-
|
|
3462
|
-
s2 = peg$parsetemplateLiteralChar();
|
|
3463
|
-
}
|
|
3464
|
-
} else {
|
|
3465
|
-
s1 = peg$FAILED;
|
|
3466
|
-
}
|
|
3467
|
-
if (s1 !== peg$FAILED) {
|
|
3468
|
-
peg$savedPos = s0;
|
|
3469
|
-
s1 = peg$f63(s1);
|
|
3558
|
+
while (s2 !== peg$FAILED) {
|
|
3559
|
+
s1.push(s2);
|
|
3560
|
+
s2 = peg$parsetemplateLiteralChar();
|
|
3470
3561
|
}
|
|
3562
|
+
peg$savedPos = s0;
|
|
3563
|
+
s1 = peg$f64(s1);
|
|
3471
3564
|
s0 = s1;
|
|
3472
3565
|
|
|
3473
3566
|
return s0;
|
|
@@ -3478,12 +3571,12 @@ function peg$parse(input, options) {
|
|
|
3478
3571
|
|
|
3479
3572
|
peg$silentFails++;
|
|
3480
3573
|
s0 = peg$currPos;
|
|
3481
|
-
if (input.substr(peg$currPos, 2) === peg$
|
|
3482
|
-
s1 = peg$
|
|
3574
|
+
if (input.substr(peg$currPos, 2) === peg$c47) {
|
|
3575
|
+
s1 = peg$c47;
|
|
3483
3576
|
peg$currPos += 2;
|
|
3484
3577
|
} else {
|
|
3485
3578
|
s1 = peg$FAILED;
|
|
3486
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
3579
|
+
if (peg$silentFails === 0) { peg$fail(peg$e88); }
|
|
3487
3580
|
}
|
|
3488
3581
|
if (s1 !== peg$FAILED) {
|
|
3489
3582
|
s2 = peg$parse__();
|
|
@@ -3498,8 +3591,7 @@ function peg$parse(input, options) {
|
|
|
3498
3591
|
if (peg$silentFails === 0) { peg$fail(peg$e6); }
|
|
3499
3592
|
}
|
|
3500
3593
|
if (s5 !== peg$FAILED) {
|
|
3501
|
-
|
|
3502
|
-
s0 = peg$f64(s3);
|
|
3594
|
+
s0 = s3;
|
|
3503
3595
|
} else {
|
|
3504
3596
|
peg$currPos = s0;
|
|
3505
3597
|
s0 = peg$FAILED;
|
|
@@ -3663,6 +3755,7 @@ const peg$allowedStartRules = [
|
|
|
3663
3755
|
"step",
|
|
3664
3756
|
"start",
|
|
3665
3757
|
"string",
|
|
3758
|
+
"taggedTemplate",
|
|
3666
3759
|
"templateDocument",
|
|
3667
3760
|
"templateDocumentChar",
|
|
3668
3761
|
"templateDocumentContents",
|