@weborigami/language 0.3.4-jse.5 → 0.3.4-jse.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.
- package/package.json +3 -3
- package/src/compiler/compile.js +1 -1
- package/src/compiler/optimize.js +1 -1
- package/src/compiler/origami.pegjs +10 -4
- package/src/compiler/parse.js +181 -153
- package/test/compiler/parse.test.js +6 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@weborigami/language",
|
|
3
|
-
"version": "0.3.4-jse.
|
|
3
|
+
"version": "0.3.4-jse.7",
|
|
4
4
|
"description": "Web Origami expression language compiler and runtime",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./main.js",
|
|
@@ -11,8 +11,8 @@
|
|
|
11
11
|
"typescript": "5.8.2"
|
|
12
12
|
},
|
|
13
13
|
"dependencies": {
|
|
14
|
-
"@weborigami/async-tree": "0.3.4-jse.
|
|
15
|
-
"@weborigami/types": "0.3.4-jse.
|
|
14
|
+
"@weborigami/async-tree": "0.3.4-jse.7",
|
|
15
|
+
"@weborigami/types": "0.3.4-jse.7",
|
|
16
16
|
"watcher": "2.3.1",
|
|
17
17
|
"yaml": "2.7.0"
|
|
18
18
|
},
|
package/src/compiler/compile.js
CHANGED
|
@@ -7,7 +7,7 @@ function compile(source, options) {
|
|
|
7
7
|
const { front, startRule } = options;
|
|
8
8
|
const mode = options.mode ?? "shell";
|
|
9
9
|
const globals = options.globals ?? jsGlobals;
|
|
10
|
-
const enableCaching = options.
|
|
10
|
+
const enableCaching = options.enableCaching ?? true;
|
|
11
11
|
if (typeof source === "string") {
|
|
12
12
|
source = { text: source };
|
|
13
13
|
}
|
package/src/compiler/optimize.js
CHANGED
|
@@ -26,7 +26,7 @@ const REFERENCE_EXTERNAL = 3;
|
|
|
26
26
|
*/
|
|
27
27
|
export default function optimize(code, options = {}) {
|
|
28
28
|
const globals = options.globals ?? jsGlobals;
|
|
29
|
-
const cache = options.cache
|
|
29
|
+
const cache = options.cache === undefined ? {} : options.cache;
|
|
30
30
|
|
|
31
31
|
// The locals is an array, one item for each function or object context that
|
|
32
32
|
// has been entered. The array grows to the right. The array items are
|
|
@@ -164,7 +164,7 @@ comment "comment"
|
|
|
164
164
|
/ singleLineComment
|
|
165
165
|
|
|
166
166
|
computedPropertyAccess
|
|
167
|
-
= __ "[" expression:
|
|
167
|
+
= __ "[" expression:expectExpression expectClosingBracket {
|
|
168
168
|
return annotate([markers.property, expression], location());
|
|
169
169
|
}
|
|
170
170
|
|
|
@@ -254,7 +254,7 @@ expectDoubleQuote
|
|
|
254
254
|
expectExpression
|
|
255
255
|
= expression
|
|
256
256
|
/ .? {
|
|
257
|
-
error("Expected an
|
|
257
|
+
error("Expected an expression");
|
|
258
258
|
}
|
|
259
259
|
|
|
260
260
|
expectFrontDelimiter
|
|
@@ -282,6 +282,12 @@ expectPipelineExpression
|
|
|
282
282
|
error("Expected an expression");
|
|
283
283
|
}
|
|
284
284
|
|
|
285
|
+
expectUnaryExpression
|
|
286
|
+
= unaryExpression
|
|
287
|
+
/ .? {
|
|
288
|
+
error("Expected an expression");
|
|
289
|
+
}
|
|
290
|
+
|
|
285
291
|
exponentiationExpression
|
|
286
292
|
= left:unaryExpression right:(whitespace "**" whitespace @exponentiationExpression)? {
|
|
287
293
|
return right ? annotate([ops.exponentiation, left, right], location()) : left;
|
|
@@ -319,7 +325,7 @@ frontMatterYaml "YAML front matter"
|
|
|
319
325
|
|
|
320
326
|
// An expression in parentheses: `(foo)`
|
|
321
327
|
group "parenthetical group"
|
|
322
|
-
= "(" expression:
|
|
328
|
+
= "(" expression:expectExpression expectClosingParenthesis {
|
|
323
329
|
return annotate(expression, location());
|
|
324
330
|
}
|
|
325
331
|
|
|
@@ -811,7 +817,7 @@ textChar
|
|
|
811
817
|
|
|
812
818
|
// A unary prefix operator: `!x`
|
|
813
819
|
unaryExpression
|
|
814
|
-
= operator:unaryOperator __ expression:
|
|
820
|
+
= operator:unaryOperator __ expression:expectUnaryExpression {
|
|
815
821
|
return makeUnaryOperation(operator, expression, location());
|
|
816
822
|
}
|
|
817
823
|
/ callExpression
|
package/src/compiler/parse.js
CHANGED
|
@@ -205,7 +205,7 @@ function peg$parse(input, options) {
|
|
|
205
205
|
var peg$FAILED = {};
|
|
206
206
|
var peg$source = options.grammarSource;
|
|
207
207
|
|
|
208
|
-
var peg$startRuleFunctions = { __: peg$parse__, additiveExpression: peg$parseadditiveExpression, additiveOperator: peg$parseadditiveOperator, angleBracketLiteral: peg$parseangleBracketLiteral, angleBracketPath: peg$parseangleBracketPath, angleBracketKey: peg$parseangleBracketKey, angleBracketPathChar: peg$parseangleBracketPathChar, arguments: peg$parsearguments, arrayLiteral: peg$parsearrayLiteral, arrayEntries: peg$parsearrayEntries, arrayEntry: peg$parsearrayEntry, arrowFunction: peg$parsearrowFunction, bitwiseAndExpression: peg$parsebitwiseAndExpression, bitwiseAndOperator: peg$parsebitwiseAndOperator, bitwiseOrExpression: peg$parsebitwiseOrExpression, bitwiseOrOperator: peg$parsebitwiseOrOperator, bitwiseXorExpression: peg$parsebitwiseXorExpression, bitwiseXorOperator: peg$parsebitwiseXorOperator, callExpression: peg$parsecallExpression, commaExpression: peg$parsecommaExpression, comment: peg$parsecomment, computedPropertyAccess: peg$parsecomputedPropertyAccess, conditionalExpression: peg$parseconditionalExpression, digits: peg$parsedigits, doubleArrow: peg$parsedoubleArrow, doubleQuoteString: peg$parsedoubleQuoteString, doubleQuoteStringChar: peg$parsedoubleQuoteStringChar, ellipsis: peg$parseellipsis, equalityExpression: peg$parseequalityExpression, equalityOperator: peg$parseequalityOperator, escapedChar: peg$parseescapedChar, expectBacktick: peg$parseexpectBacktick, expectClosingBrace: peg$parseexpectClosingBrace, expectClosingBracket: peg$parseexpectClosingBracket, expectClosingParenthesis: peg$parseexpectClosingParenthesis, expectDoubleQuote: peg$parseexpectDoubleQuote, expectExpression: peg$parseexpectExpression, expectFrontDelimiter: peg$parseexpectFrontDelimiter, expectGuillemet: peg$parseexpectGuillemet, expectSingleQuote: peg$parseexpectSingleQuote, expectPipelineExpression: peg$parseexpectPipelineExpression, exponentiationExpression: peg$parseexponentiationExpression, expression: peg$parseexpression, floatLiteral: peg$parsefloatLiteral, frontDelimiter: peg$parsefrontDelimiter, frontMatterExpression: peg$parsefrontMatterExpression, frontMatterText: peg$parsefrontMatterText, frontMatterYaml: peg$parsefrontMatterYaml, group: peg$parsegroup, guillemetString: peg$parseguillemetString, guillemetStringChar: peg$parseguillemetStringChar, host: peg$parsehost, hostname: peg$parsehostname, identifier: peg$parseidentifier, identifierLiteral: peg$parseidentifierLiteral, identifierPart: peg$parseidentifierPart, identifierStart: peg$parseidentifierStart, implicitParenthesesCallExpression: peg$parseimplicitParenthesesCallExpression, implicitParensthesesArguments: peg$parseimplicitParensthesesArguments, inlineSpace: peg$parseinlineSpace, integerLiteral: peg$parseintegerLiteral, key: peg$parsekey, keyChar: peg$parsekeyChar, keyCharStart: peg$parsekeyCharStart, list: peg$parselist, logicalAndExpression: peg$parselogicalAndExpression, logicalOrExpression: peg$parselogicalOrExpression, minus: peg$parseminus, multiLineComment: peg$parsemultiLineComment, multiplicativeExpression: peg$parsemultiplicativeExpression, multiplicativeOperator: peg$parsemultiplicativeOperator, newExpression: peg$parsenewExpression, newLine: peg$parsenewLine, numericLiteral: peg$parsenumericLiteral, nullishCoalescingExpression: peg$parsenullishCoalescingExpression, objectLiteral: peg$parseobjectLiteral, objectEntries: peg$parseobjectEntries, objectEntry: peg$parseobjectEntry, objectGetter: peg$parseobjectGetter, objectHiddenKey: peg$parseobjectHiddenKey, objectKey: peg$parseobjectKey, objectProperty: peg$parseobjectProperty, objectShorthandProperty: peg$parseobjectShorthandProperty, objectPublicKey: peg$parseobjectPublicKey, optionalChaining: peg$parseoptionalChaining, parameter: peg$parseparameter, parameterList: peg$parseparameterList, parameterSingleton: peg$parseparameterSingleton, parenthesesArguments: peg$parseparenthesesArguments, pathArguments: peg$parsepathArguments, pathKeys: peg$parsepathKeys, pathLiteral: peg$parsepathLiteral, pathSegment: peg$parsepathSegment, pipelineExpression: peg$parsepipelineExpression, primary: peg$parseprimary, program: peg$parseprogram, propertyAccess: peg$parsepropertyAccess, regexFlags: peg$parseregexFlags, regexLiteral: peg$parseregexLiteral, regexLiteralChar: peg$parseregexLiteralChar, relationalExpression: peg$parserelationalExpression, relationalOperator: peg$parserelationalOperator, separator: peg$parseseparator, shebang: peg$parseshebang, shellMode: peg$parseshellMode, shiftExpression: peg$parseshiftExpression, shiftOperator: peg$parseshiftOperator, shorthandFunction: peg$parseshorthandFunction, singleArrow: peg$parsesingleArrow, singleLineComment: peg$parsesingleLineComment, singleQuoteString: peg$parsesingleQuoteString, singleQuoteStringChar: peg$parsesingleQuoteStringChar, slash: peg$parseslash, slashes: peg$parseslashes, slashFollows: peg$parseslashFollows, spreadElement: peg$parsespreadElement, stringLiteral: peg$parsestringLiteral, templateBody: peg$parsetemplateBody, templateBodyChar: peg$parsetemplateBodyChar, templateBodyText: peg$parsetemplateBodyText, templateDocument: peg$parsetemplateDocument, templateLiteral: peg$parsetemplateLiteral, templateLiteralChar: peg$parsetemplateLiteralChar, templateLiteralText: peg$parsetemplateLiteralText, templateSubstitution: peg$parsetemplateSubstitution, textChar: peg$parsetextChar, unaryExpression: peg$parseunaryExpression, uri: peg$parseuri, uriExpression: peg$parseuriExpression, uriKey: peg$parseuriKey, uriKeyChar: peg$parseuriKeyChar, uriPath: peg$parseuriPath, uriScheme: peg$parseuriScheme, unaryOperator: peg$parseunaryOperator, whitespace: peg$parsewhitespace, whitespaceWithNewLine: peg$parsewhitespaceWithNewLine };
|
|
208
|
+
var peg$startRuleFunctions = { __: peg$parse__, additiveExpression: peg$parseadditiveExpression, additiveOperator: peg$parseadditiveOperator, angleBracketLiteral: peg$parseangleBracketLiteral, angleBracketPath: peg$parseangleBracketPath, angleBracketKey: peg$parseangleBracketKey, angleBracketPathChar: peg$parseangleBracketPathChar, arguments: peg$parsearguments, arrayLiteral: peg$parsearrayLiteral, arrayEntries: peg$parsearrayEntries, arrayEntry: peg$parsearrayEntry, arrowFunction: peg$parsearrowFunction, bitwiseAndExpression: peg$parsebitwiseAndExpression, bitwiseAndOperator: peg$parsebitwiseAndOperator, bitwiseOrExpression: peg$parsebitwiseOrExpression, bitwiseOrOperator: peg$parsebitwiseOrOperator, bitwiseXorExpression: peg$parsebitwiseXorExpression, bitwiseXorOperator: peg$parsebitwiseXorOperator, callExpression: peg$parsecallExpression, commaExpression: peg$parsecommaExpression, comment: peg$parsecomment, computedPropertyAccess: peg$parsecomputedPropertyAccess, conditionalExpression: peg$parseconditionalExpression, digits: peg$parsedigits, doubleArrow: peg$parsedoubleArrow, doubleQuoteString: peg$parsedoubleQuoteString, doubleQuoteStringChar: peg$parsedoubleQuoteStringChar, ellipsis: peg$parseellipsis, equalityExpression: peg$parseequalityExpression, equalityOperator: peg$parseequalityOperator, escapedChar: peg$parseescapedChar, expectBacktick: peg$parseexpectBacktick, expectClosingBrace: peg$parseexpectClosingBrace, expectClosingBracket: peg$parseexpectClosingBracket, expectClosingParenthesis: peg$parseexpectClosingParenthesis, expectDoubleQuote: peg$parseexpectDoubleQuote, expectExpression: peg$parseexpectExpression, expectFrontDelimiter: peg$parseexpectFrontDelimiter, expectGuillemet: peg$parseexpectGuillemet, expectSingleQuote: peg$parseexpectSingleQuote, expectPipelineExpression: peg$parseexpectPipelineExpression, expectUnaryExpression: peg$parseexpectUnaryExpression, exponentiationExpression: peg$parseexponentiationExpression, expression: peg$parseexpression, floatLiteral: peg$parsefloatLiteral, frontDelimiter: peg$parsefrontDelimiter, frontMatterExpression: peg$parsefrontMatterExpression, frontMatterText: peg$parsefrontMatterText, frontMatterYaml: peg$parsefrontMatterYaml, group: peg$parsegroup, guillemetString: peg$parseguillemetString, guillemetStringChar: peg$parseguillemetStringChar, host: peg$parsehost, hostname: peg$parsehostname, identifier: peg$parseidentifier, identifierLiteral: peg$parseidentifierLiteral, identifierPart: peg$parseidentifierPart, identifierStart: peg$parseidentifierStart, implicitParenthesesCallExpression: peg$parseimplicitParenthesesCallExpression, implicitParensthesesArguments: peg$parseimplicitParensthesesArguments, inlineSpace: peg$parseinlineSpace, integerLiteral: peg$parseintegerLiteral, key: peg$parsekey, keyChar: peg$parsekeyChar, keyCharStart: peg$parsekeyCharStart, list: peg$parselist, logicalAndExpression: peg$parselogicalAndExpression, logicalOrExpression: peg$parselogicalOrExpression, minus: peg$parseminus, multiLineComment: peg$parsemultiLineComment, multiplicativeExpression: peg$parsemultiplicativeExpression, multiplicativeOperator: peg$parsemultiplicativeOperator, newExpression: peg$parsenewExpression, newLine: peg$parsenewLine, numericLiteral: peg$parsenumericLiteral, nullishCoalescingExpression: peg$parsenullishCoalescingExpression, objectLiteral: peg$parseobjectLiteral, objectEntries: peg$parseobjectEntries, objectEntry: peg$parseobjectEntry, objectGetter: peg$parseobjectGetter, objectHiddenKey: peg$parseobjectHiddenKey, objectKey: peg$parseobjectKey, objectProperty: peg$parseobjectProperty, objectShorthandProperty: peg$parseobjectShorthandProperty, objectPublicKey: peg$parseobjectPublicKey, optionalChaining: peg$parseoptionalChaining, parameter: peg$parseparameter, parameterList: peg$parseparameterList, parameterSingleton: peg$parseparameterSingleton, parenthesesArguments: peg$parseparenthesesArguments, pathArguments: peg$parsepathArguments, pathKeys: peg$parsepathKeys, pathLiteral: peg$parsepathLiteral, pathSegment: peg$parsepathSegment, pipelineExpression: peg$parsepipelineExpression, primary: peg$parseprimary, program: peg$parseprogram, propertyAccess: peg$parsepropertyAccess, regexFlags: peg$parseregexFlags, regexLiteral: peg$parseregexLiteral, regexLiteralChar: peg$parseregexLiteralChar, relationalExpression: peg$parserelationalExpression, relationalOperator: peg$parserelationalOperator, separator: peg$parseseparator, shebang: peg$parseshebang, shellMode: peg$parseshellMode, shiftExpression: peg$parseshiftExpression, shiftOperator: peg$parseshiftOperator, shorthandFunction: peg$parseshorthandFunction, singleArrow: peg$parsesingleArrow, singleLineComment: peg$parsesingleLineComment, singleQuoteString: peg$parsesingleQuoteString, singleQuoteStringChar: peg$parsesingleQuoteStringChar, slash: peg$parseslash, slashes: peg$parseslashes, slashFollows: peg$parseslashFollows, spreadElement: peg$parsespreadElement, stringLiteral: peg$parsestringLiteral, templateBody: peg$parsetemplateBody, templateBodyChar: peg$parsetemplateBodyChar, templateBodyText: peg$parsetemplateBodyText, templateDocument: peg$parsetemplateDocument, templateLiteral: peg$parsetemplateLiteral, templateLiteralChar: peg$parsetemplateLiteralChar, templateLiteralText: peg$parsetemplateLiteralText, templateSubstitution: peg$parsetemplateSubstitution, textChar: peg$parsetextChar, unaryExpression: peg$parseunaryExpression, uri: peg$parseuri, uriExpression: peg$parseuriExpression, uriKey: peg$parseuriKey, uriKeyChar: peg$parseuriKeyChar, uriPath: peg$parseuriPath, uriScheme: peg$parseuriScheme, unaryOperator: peg$parseunaryOperator, whitespace: peg$parsewhitespace, whitespaceWithNewLine: peg$parsewhitespaceWithNewLine };
|
|
209
209
|
var peg$startRuleFunction = peg$parse__;
|
|
210
210
|
|
|
211
211
|
var peg$c0 = "+";
|
|
@@ -510,7 +510,7 @@ function peg$parse(input, options) {
|
|
|
510
510
|
error("Expected closing quote");
|
|
511
511
|
};
|
|
512
512
|
var peg$f32 = function() {
|
|
513
|
-
error("Expected an
|
|
513
|
+
error("Expected an expression");
|
|
514
514
|
};
|
|
515
515
|
var peg$f33 = function() {
|
|
516
516
|
error("Expected \"---\"");
|
|
@@ -524,61 +524,64 @@ function peg$parse(input, options) {
|
|
|
524
524
|
var peg$f36 = function() {
|
|
525
525
|
error("Expected an expression");
|
|
526
526
|
};
|
|
527
|
-
var peg$f37 = function(
|
|
527
|
+
var peg$f37 = function() {
|
|
528
|
+
error("Expected an expression");
|
|
529
|
+
};
|
|
530
|
+
var peg$f38 = function(left, right) {
|
|
528
531
|
return right ? annotate([ops.exponentiation, left, right], location()) : left;
|
|
529
532
|
};
|
|
530
|
-
var peg$
|
|
533
|
+
var peg$f39 = function() {
|
|
531
534
|
return annotate([ops.literal, parseFloat(text())], location());
|
|
532
535
|
};
|
|
533
|
-
var peg$
|
|
536
|
+
var peg$f40 = function() {
|
|
534
537
|
return isOrigamiFrontMatter(input.slice(location().end.offset))
|
|
535
538
|
};
|
|
536
|
-
var peg$
|
|
539
|
+
var peg$f41 = function(chars) {
|
|
537
540
|
return chars.join("");
|
|
538
541
|
};
|
|
539
|
-
var peg$
|
|
542
|
+
var peg$f42 = function(yaml) {
|
|
540
543
|
return makeYamlObject(yaml, location());
|
|
541
544
|
};
|
|
542
|
-
var peg$
|
|
545
|
+
var peg$f43 = function(expression) {
|
|
543
546
|
return annotate(expression, location());
|
|
544
547
|
};
|
|
545
|
-
var peg$
|
|
548
|
+
var peg$f44 = function(chars) {
|
|
546
549
|
return annotate([ops.literal, chars.join("")], location());
|
|
547
550
|
};
|
|
548
|
-
var peg$
|
|
551
|
+
var peg$f45 = function(name, port, slashFollows) {
|
|
549
552
|
const portText = port ? `:${port[1]}` : "";
|
|
550
553
|
const slashText = slashFollows ? "/" : "";
|
|
551
554
|
const host = name + portText + slashText;
|
|
552
555
|
return annotate([ops.literal, host], location());
|
|
553
556
|
};
|
|
554
|
-
var peg$
|
|
557
|
+
var peg$f46 = function() {
|
|
555
558
|
return text();
|
|
556
559
|
};
|
|
557
|
-
var peg$
|
|
560
|
+
var peg$f47 = function(id) {
|
|
558
561
|
return id;
|
|
559
562
|
};
|
|
560
|
-
var peg$
|
|
563
|
+
var peg$f48 = function(id) {
|
|
561
564
|
return annotate([ops.literal, id], location());
|
|
562
565
|
};
|
|
563
|
-
var peg$
|
|
564
|
-
var peg$
|
|
565
|
-
var peg$
|
|
566
|
+
var peg$f49 = function(char) { return char.match(/[$_\p{ID_Continue}]/u) };
|
|
567
|
+
var peg$f50 = function(char) { return char.match(/[$_\p{ID_Start}]/u) };
|
|
568
|
+
var peg$f51 = function(head, args) {
|
|
566
569
|
return args ? makeCall(head, args, location()) : head;
|
|
567
570
|
};
|
|
568
|
-
var peg$
|
|
571
|
+
var peg$f52 = function(values) {
|
|
569
572
|
return annotate(values, location());
|
|
570
573
|
};
|
|
571
|
-
var peg$
|
|
574
|
+
var peg$f53 = function() {
|
|
572
575
|
return annotate([ops.literal, parseInt(text())], location());
|
|
573
576
|
};
|
|
574
|
-
var peg$
|
|
577
|
+
var peg$f54 = function() {
|
|
575
578
|
return text();
|
|
576
579
|
};
|
|
577
|
-
var peg$
|
|
578
|
-
var peg$
|
|
580
|
+
var peg$f55 = function(char) { return char.match(/[$_\p{ID_Continue}]/u) };
|
|
581
|
+
var peg$f56 = function(values) {
|
|
579
582
|
return annotate(values, location());
|
|
580
583
|
};
|
|
581
|
-
var peg$
|
|
584
|
+
var peg$f57 = function(head, tail) {
|
|
582
585
|
return tail.length === 0
|
|
583
586
|
? head
|
|
584
587
|
: annotate(
|
|
@@ -586,7 +589,7 @@ function peg$parse(input, options) {
|
|
|
586
589
|
location()
|
|
587
590
|
);
|
|
588
591
|
};
|
|
589
|
-
var peg$
|
|
592
|
+
var peg$f58 = function(head, tail) {
|
|
590
593
|
return tail.length === 0
|
|
591
594
|
? head
|
|
592
595
|
: annotate(
|
|
@@ -594,19 +597,19 @@ function peg$parse(input, options) {
|
|
|
594
597
|
location()
|
|
595
598
|
);
|
|
596
599
|
};
|
|
597
|
-
var peg$
|
|
598
|
-
var peg$
|
|
600
|
+
var peg$f59 = function() { return null; };
|
|
601
|
+
var peg$f60 = function(head, tail) {
|
|
599
602
|
return tail.reduce(makeBinaryOperation, head);
|
|
600
603
|
};
|
|
601
|
-
var peg$
|
|
604
|
+
var peg$f61 = function(head, tail) {
|
|
602
605
|
const args = tail?.[0] !== undefined ? tail : [];
|
|
603
606
|
return annotate([ops.construct, head, ...args], location());
|
|
604
607
|
};
|
|
605
|
-
var peg$
|
|
608
|
+
var peg$f62 = function(head, tail) {
|
|
606
609
|
const args = tail?.[0] !== undefined ? tail : [];
|
|
607
610
|
return annotate([ops.construct, head, ...args], location());
|
|
608
611
|
};
|
|
609
|
-
var peg$
|
|
612
|
+
var peg$f63 = function(head, tail) {
|
|
610
613
|
return tail.length === 0
|
|
611
614
|
? head
|
|
612
615
|
: annotate(
|
|
@@ -614,128 +617,128 @@ function peg$parse(input, options) {
|
|
|
614
617
|
location()
|
|
615
618
|
);
|
|
616
619
|
};
|
|
617
|
-
var peg$
|
|
620
|
+
var peg$f64 = function(entries) {
|
|
618
621
|
return makeObject(entries ?? [], location());
|
|
619
622
|
};
|
|
620
|
-
var peg$
|
|
623
|
+
var peg$f65 = function(entries) {
|
|
621
624
|
return annotate(entries, location());
|
|
622
625
|
};
|
|
623
|
-
var peg$
|
|
626
|
+
var peg$f66 = function(key, pipeline) {
|
|
624
627
|
const getter = annotate([ops.getter, pipeline], location());
|
|
625
628
|
return annotate([key, getter], location());
|
|
626
629
|
};
|
|
627
|
-
var peg$
|
|
628
|
-
var peg$
|
|
630
|
+
var peg$f67 = function(hiddenKey) { return hiddenKey.join(""); };
|
|
631
|
+
var peg$f68 = function(key, pipeline) {
|
|
629
632
|
return annotate([key, pipeline], location());
|
|
630
633
|
};
|
|
631
|
-
var peg$
|
|
634
|
+
var peg$f69 = function(key) {
|
|
632
635
|
const reference = annotate([markers.reference, key], location());
|
|
633
636
|
const traverse = annotate([markers.traverse, reference], location());
|
|
634
637
|
return annotate([key, traverse], location());
|
|
635
638
|
};
|
|
636
|
-
var peg$
|
|
639
|
+
var peg$f70 = function(path) {
|
|
637
640
|
let lastKey = path.at(-1);
|
|
638
641
|
if (lastKey instanceof Array) {
|
|
639
642
|
lastKey = lastKey[1]; // get scope identifier or literal
|
|
640
643
|
}
|
|
641
644
|
return annotate([lastKey, path], location());
|
|
642
645
|
};
|
|
643
|
-
var peg$
|
|
646
|
+
var peg$f71 = function(key, slash) {
|
|
644
647
|
return text();
|
|
645
648
|
};
|
|
646
|
-
var peg$
|
|
649
|
+
var peg$f72 = function(string) {
|
|
647
650
|
// Remove `ops.literal` from the string code
|
|
648
651
|
return string[1];
|
|
649
652
|
};
|
|
650
|
-
var peg$
|
|
653
|
+
var peg$f73 = function(property) {
|
|
651
654
|
return annotate([ops.optionalTraverse, property], location());
|
|
652
655
|
};
|
|
653
|
-
var peg$
|
|
656
|
+
var peg$f74 = function(key) {
|
|
654
657
|
return annotate([ops.literal, key], location());
|
|
655
658
|
};
|
|
656
|
-
var peg$
|
|
659
|
+
var peg$f75 = function(list) {
|
|
657
660
|
return annotate(list, location());
|
|
658
661
|
};
|
|
659
|
-
var peg$
|
|
662
|
+
var peg$f76 = function(param) {
|
|
660
663
|
return annotate([param], location());
|
|
661
664
|
};
|
|
662
|
-
var peg$
|
|
665
|
+
var peg$f77 = function(list) {
|
|
663
666
|
return annotate(list ?? [undefined], location());
|
|
664
667
|
};
|
|
665
|
-
var peg$
|
|
668
|
+
var peg$f78 = function(keys) {
|
|
666
669
|
const args = keys ?? [];
|
|
667
670
|
return annotate([markers.traverse, ...args], location());
|
|
668
671
|
};
|
|
669
|
-
var peg$
|
|
672
|
+
var peg$f79 = function(keys) {
|
|
670
673
|
return makePath(keys);
|
|
671
674
|
};
|
|
672
|
-
var peg$
|
|
675
|
+
var peg$f80 = function(key) {
|
|
673
676
|
return annotate([ops.literal, text()], location());
|
|
674
677
|
};
|
|
675
|
-
var peg$
|
|
678
|
+
var peg$f81 = function() {
|
|
676
679
|
return annotate([ops.literal, text()], location());
|
|
677
680
|
};
|
|
678
|
-
var peg$
|
|
681
|
+
var peg$f82 = function(head, tail) {
|
|
679
682
|
return annotate(
|
|
680
683
|
tail.reduce((arg, fn) => makePipeline(arg, fn, location()), head),
|
|
681
684
|
location()
|
|
682
685
|
);
|
|
683
686
|
};
|
|
684
|
-
var peg$
|
|
687
|
+
var peg$f83 = function(property) {
|
|
685
688
|
return annotate([markers.property, property], location());
|
|
686
689
|
};
|
|
687
|
-
var peg$
|
|
690
|
+
var peg$f84 = function(flags) {
|
|
688
691
|
return flags.join("");
|
|
689
692
|
};
|
|
690
|
-
var peg$
|
|
693
|
+
var peg$f85 = function(chars, flags) {
|
|
691
694
|
const regex = new RegExp(chars.join(""), flags);
|
|
692
695
|
return annotate([ops.literal, regex], location());
|
|
693
696
|
};
|
|
694
|
-
var peg$
|
|
697
|
+
var peg$f86 = function(head, tail) {
|
|
695
698
|
return tail.reduce(makeBinaryOperation, head);
|
|
696
699
|
};
|
|
697
|
-
var peg$
|
|
698
|
-
var peg$
|
|
699
|
-
var peg$
|
|
700
|
+
var peg$f87 = function() { return null; };
|
|
701
|
+
var peg$f88 = function() { return options.mode === "shell" };
|
|
702
|
+
var peg$f89 = function(head, tail) {
|
|
700
703
|
return tail.reduce(makeBinaryOperation, head);
|
|
701
704
|
};
|
|
702
|
-
var peg$
|
|
705
|
+
var peg$f90 = function(definition) {
|
|
703
706
|
const lambdaParameters = annotate(
|
|
704
707
|
[annotate([ops.literal, "_"], location())],
|
|
705
708
|
location()
|
|
706
709
|
);
|
|
707
710
|
return annotate([ops.lambda, lambdaParameters, definition], location());
|
|
708
711
|
};
|
|
709
|
-
var peg$
|
|
710
|
-
var peg$
|
|
712
|
+
var peg$f91 = function() { return null; };
|
|
713
|
+
var peg$f92 = function(chars) {
|
|
711
714
|
return annotate([ops.literal, chars.join("")], location());
|
|
712
715
|
};
|
|
713
|
-
var peg$
|
|
716
|
+
var peg$f93 = function() {
|
|
714
717
|
return annotate([ops.literal, "/"], location());
|
|
715
718
|
};
|
|
716
|
-
var peg$
|
|
719
|
+
var peg$f94 = function() {
|
|
717
720
|
return annotate([ops.literal, "/"], location());
|
|
718
721
|
};
|
|
719
|
-
var peg$
|
|
722
|
+
var peg$f95 = function() {
|
|
720
723
|
return true;
|
|
721
724
|
};
|
|
722
|
-
var peg$
|
|
725
|
+
var peg$f96 = function(value) {
|
|
723
726
|
return annotate([ops.spread, value], location());
|
|
724
727
|
};
|
|
725
|
-
var peg$
|
|
728
|
+
var peg$f97 = function(head, tail) {
|
|
726
729
|
return makeTemplate(ops.templateIndent, head, tail, location());
|
|
727
730
|
};
|
|
728
|
-
var peg$
|
|
731
|
+
var peg$f98 = function(chars) {
|
|
729
732
|
return annotate([ops.literal, chars.join("")], location());
|
|
730
733
|
};
|
|
731
|
-
var peg$
|
|
734
|
+
var peg$f99 = function(front, body) {
|
|
732
735
|
const macroName = text().includes("@template") ? "@template" : "_template";
|
|
733
736
|
return annotate(applyMacro(front, macroName, body), location());
|
|
734
737
|
};
|
|
735
|
-
var peg$
|
|
738
|
+
var peg$f100 = function(front, body) {
|
|
736
739
|
return makeDocument(front, body, location());
|
|
737
740
|
};
|
|
738
|
-
var peg$
|
|
741
|
+
var peg$f101 = function(body) {
|
|
739
742
|
if (options.front) {
|
|
740
743
|
return makeDocument(options.front, body, location());
|
|
741
744
|
}
|
|
@@ -745,37 +748,37 @@ function peg$parse(input, options) {
|
|
|
745
748
|
);
|
|
746
749
|
return annotate([ops.lambda, lambdaParameters, body], location());
|
|
747
750
|
};
|
|
748
|
-
var peg$
|
|
751
|
+
var peg$f102 = function(head, tail) {
|
|
749
752
|
return makeTemplate(ops.templateTree, head, tail, location());
|
|
750
753
|
};
|
|
751
|
-
var peg$
|
|
754
|
+
var peg$f103 = function(chars) {
|
|
752
755
|
return annotate([ops.literal, chars.join("")], location());
|
|
753
756
|
};
|
|
754
|
-
var peg$
|
|
757
|
+
var peg$f104 = function(expression) {
|
|
755
758
|
return annotate(expression, location());
|
|
756
759
|
};
|
|
757
|
-
var peg$
|
|
760
|
+
var peg$f105 = function(operator, expression) {
|
|
758
761
|
return makeUnaryOperation(operator, expression, location());
|
|
759
762
|
};
|
|
760
|
-
var peg$
|
|
763
|
+
var peg$f106 = function(scheme, host, path) {
|
|
761
764
|
const rest = path ? path[1] : [];
|
|
762
765
|
const keys = annotate([host, ...rest], location());
|
|
763
766
|
return makeCall(scheme, keys, location());
|
|
764
767
|
};
|
|
765
|
-
var peg$
|
|
768
|
+
var peg$f107 = function(scheme, keys) {
|
|
766
769
|
return makeCall(scheme, keys, location());
|
|
767
770
|
};
|
|
768
|
-
var peg$
|
|
771
|
+
var peg$f108 = function(chars) {
|
|
769
772
|
return annotate([ops.literal, text()], location());
|
|
770
773
|
};
|
|
771
|
-
var peg$
|
|
774
|
+
var peg$f109 = function() {
|
|
772
775
|
// A single slash is a path key
|
|
773
776
|
return annotate([ops.literal, ""], location());
|
|
774
777
|
};
|
|
775
|
-
var peg$
|
|
778
|
+
var peg$f110 = function(keys) {
|
|
776
779
|
return annotate(keys, location());
|
|
777
780
|
};
|
|
778
|
-
var peg$
|
|
781
|
+
var peg$f111 = function() {
|
|
779
782
|
return annotate([markers.global, text()], location());
|
|
780
783
|
};
|
|
781
784
|
var peg$currPos = options.peg$currPos | 0;
|
|
@@ -1902,7 +1905,7 @@ function peg$parse(input, options) {
|
|
|
1902
1905
|
if (peg$silentFails === 0) { peg$fail(peg$e9); }
|
|
1903
1906
|
}
|
|
1904
1907
|
if (s2 !== peg$FAILED) {
|
|
1905
|
-
s3 = peg$
|
|
1908
|
+
s3 = peg$parseexpectExpression();
|
|
1906
1909
|
if (s3 !== peg$FAILED) {
|
|
1907
1910
|
s4 = peg$parseexpectClosingBracket();
|
|
1908
1911
|
if (s4 !== peg$FAILED) {
|
|
@@ -2665,6 +2668,30 @@ function peg$parse(input, options) {
|
|
|
2665
2668
|
return s0;
|
|
2666
2669
|
}
|
|
2667
2670
|
|
|
2671
|
+
function peg$parseexpectUnaryExpression() {
|
|
2672
|
+
var s0, s1;
|
|
2673
|
+
|
|
2674
|
+
s0 = peg$parseunaryExpression();
|
|
2675
|
+
if (s0 === peg$FAILED) {
|
|
2676
|
+
s0 = peg$currPos;
|
|
2677
|
+
if (input.length > peg$currPos) {
|
|
2678
|
+
s1 = input.charAt(peg$currPos);
|
|
2679
|
+
peg$currPos++;
|
|
2680
|
+
} else {
|
|
2681
|
+
s1 = peg$FAILED;
|
|
2682
|
+
if (peg$silentFails === 0) { peg$fail(peg$e41); }
|
|
2683
|
+
}
|
|
2684
|
+
if (s1 === peg$FAILED) {
|
|
2685
|
+
s1 = null;
|
|
2686
|
+
}
|
|
2687
|
+
peg$savedPos = s0;
|
|
2688
|
+
s1 = peg$f37();
|
|
2689
|
+
s0 = s1;
|
|
2690
|
+
}
|
|
2691
|
+
|
|
2692
|
+
return s0;
|
|
2693
|
+
}
|
|
2694
|
+
|
|
2668
2695
|
function peg$parseexponentiationExpression() {
|
|
2669
2696
|
var s0, s1, s2, s3, s4, s5, s6;
|
|
2670
2697
|
|
|
@@ -2707,7 +2734,7 @@ function peg$parse(input, options) {
|
|
|
2707
2734
|
s2 = null;
|
|
2708
2735
|
}
|
|
2709
2736
|
peg$savedPos = s0;
|
|
2710
|
-
s0 = peg$
|
|
2737
|
+
s0 = peg$f38(s1, s2);
|
|
2711
2738
|
} else {
|
|
2712
2739
|
peg$currPos = s0;
|
|
2713
2740
|
s0 = peg$FAILED;
|
|
@@ -2753,7 +2780,7 @@ function peg$parse(input, options) {
|
|
|
2753
2780
|
s3 = peg$parsedigits();
|
|
2754
2781
|
if (s3 !== peg$FAILED) {
|
|
2755
2782
|
peg$savedPos = s0;
|
|
2756
|
-
s0 = peg$
|
|
2783
|
+
s0 = peg$f39();
|
|
2757
2784
|
} else {
|
|
2758
2785
|
peg$currPos = s0;
|
|
2759
2786
|
s0 = peg$FAILED;
|
|
@@ -2792,7 +2819,7 @@ function peg$parse(input, options) {
|
|
|
2792
2819
|
s1 = peg$parsefrontDelimiter();
|
|
2793
2820
|
if (s1 !== peg$FAILED) {
|
|
2794
2821
|
peg$savedPos = peg$currPos;
|
|
2795
|
-
s2 = peg$
|
|
2822
|
+
s2 = peg$f40();
|
|
2796
2823
|
if (s2) {
|
|
2797
2824
|
s2 = undefined;
|
|
2798
2825
|
} else {
|
|
@@ -2891,7 +2918,7 @@ function peg$parse(input, options) {
|
|
|
2891
2918
|
}
|
|
2892
2919
|
}
|
|
2893
2920
|
peg$savedPos = s0;
|
|
2894
|
-
s1 = peg$
|
|
2921
|
+
s1 = peg$f41(s1);
|
|
2895
2922
|
s0 = s1;
|
|
2896
2923
|
|
|
2897
2924
|
return s0;
|
|
@@ -2908,7 +2935,7 @@ function peg$parse(input, options) {
|
|
|
2908
2935
|
s3 = peg$parsefrontDelimiter();
|
|
2909
2936
|
if (s3 !== peg$FAILED) {
|
|
2910
2937
|
peg$savedPos = s0;
|
|
2911
|
-
s0 = peg$
|
|
2938
|
+
s0 = peg$f42(s2);
|
|
2912
2939
|
} else {
|
|
2913
2940
|
peg$currPos = s0;
|
|
2914
2941
|
s0 = peg$FAILED;
|
|
@@ -2939,12 +2966,12 @@ function peg$parse(input, options) {
|
|
|
2939
2966
|
if (peg$silentFails === 0) { peg$fail(peg$e11); }
|
|
2940
2967
|
}
|
|
2941
2968
|
if (s1 !== peg$FAILED) {
|
|
2942
|
-
s2 = peg$
|
|
2969
|
+
s2 = peg$parseexpectExpression();
|
|
2943
2970
|
if (s2 !== peg$FAILED) {
|
|
2944
2971
|
s3 = peg$parseexpectClosingParenthesis();
|
|
2945
2972
|
if (s3 !== peg$FAILED) {
|
|
2946
2973
|
peg$savedPos = s0;
|
|
2947
|
-
s0 = peg$
|
|
2974
|
+
s0 = peg$f43(s2);
|
|
2948
2975
|
} else {
|
|
2949
2976
|
peg$currPos = s0;
|
|
2950
2977
|
s0 = peg$FAILED;
|
|
@@ -2988,7 +3015,7 @@ function peg$parse(input, options) {
|
|
|
2988
3015
|
s3 = peg$parseexpectGuillemet();
|
|
2989
3016
|
if (s3 !== peg$FAILED) {
|
|
2990
3017
|
peg$savedPos = s0;
|
|
2991
|
-
s0 = peg$
|
|
3018
|
+
s0 = peg$f44(s2);
|
|
2992
3019
|
} else {
|
|
2993
3020
|
peg$currPos = s0;
|
|
2994
3021
|
s0 = peg$FAILED;
|
|
@@ -3080,7 +3107,7 @@ function peg$parse(input, options) {
|
|
|
3080
3107
|
s3 = null;
|
|
3081
3108
|
}
|
|
3082
3109
|
peg$savedPos = s0;
|
|
3083
|
-
s0 = peg$
|
|
3110
|
+
s0 = peg$f45(s1, s2, s3);
|
|
3084
3111
|
} else {
|
|
3085
3112
|
peg$currPos = s0;
|
|
3086
3113
|
s0 = peg$FAILED;
|
|
@@ -3101,7 +3128,7 @@ function peg$parse(input, options) {
|
|
|
3101
3128
|
s1 = peg$parsekey();
|
|
3102
3129
|
if (s1 !== peg$FAILED) {
|
|
3103
3130
|
peg$savedPos = s0;
|
|
3104
|
-
s1 = peg$
|
|
3131
|
+
s1 = peg$f46();
|
|
3105
3132
|
}
|
|
3106
3133
|
s0 = s1;
|
|
3107
3134
|
|
|
@@ -3135,7 +3162,7 @@ function peg$parse(input, options) {
|
|
|
3135
3162
|
}
|
|
3136
3163
|
if (s1 !== peg$FAILED) {
|
|
3137
3164
|
peg$savedPos = s0;
|
|
3138
|
-
s1 = peg$
|
|
3165
|
+
s1 = peg$f47(s1);
|
|
3139
3166
|
}
|
|
3140
3167
|
s0 = s1;
|
|
3141
3168
|
|
|
@@ -3149,7 +3176,7 @@ function peg$parse(input, options) {
|
|
|
3149
3176
|
s1 = peg$parseidentifier();
|
|
3150
3177
|
if (s1 !== peg$FAILED) {
|
|
3151
3178
|
peg$savedPos = s0;
|
|
3152
|
-
s1 = peg$
|
|
3179
|
+
s1 = peg$f48(s1);
|
|
3153
3180
|
}
|
|
3154
3181
|
s0 = s1;
|
|
3155
3182
|
|
|
@@ -3170,7 +3197,7 @@ function peg$parse(input, options) {
|
|
|
3170
3197
|
}
|
|
3171
3198
|
if (s1 !== peg$FAILED) {
|
|
3172
3199
|
peg$savedPos = peg$currPos;
|
|
3173
|
-
s2 = peg$
|
|
3200
|
+
s2 = peg$f49(s1);
|
|
3174
3201
|
if (s2) {
|
|
3175
3202
|
s2 = undefined;
|
|
3176
3203
|
} else {
|
|
@@ -3210,7 +3237,7 @@ function peg$parse(input, options) {
|
|
|
3210
3237
|
}
|
|
3211
3238
|
if (s1 !== peg$FAILED) {
|
|
3212
3239
|
peg$savedPos = peg$currPos;
|
|
3213
|
-
s2 = peg$
|
|
3240
|
+
s2 = peg$f50(s1);
|
|
3214
3241
|
if (s2) {
|
|
3215
3242
|
s2 = undefined;
|
|
3216
3243
|
} else {
|
|
@@ -3270,7 +3297,7 @@ function peg$parse(input, options) {
|
|
|
3270
3297
|
s2 = null;
|
|
3271
3298
|
}
|
|
3272
3299
|
peg$savedPos = s0;
|
|
3273
|
-
s0 = peg$
|
|
3300
|
+
s0 = peg$f51(s1, s2);
|
|
3274
3301
|
} else {
|
|
3275
3302
|
peg$currPos = s0;
|
|
3276
3303
|
s0 = peg$FAILED;
|
|
@@ -3321,7 +3348,7 @@ function peg$parse(input, options) {
|
|
|
3321
3348
|
s3 = null;
|
|
3322
3349
|
}
|
|
3323
3350
|
peg$savedPos = s0;
|
|
3324
|
-
s0 = peg$
|
|
3351
|
+
s0 = peg$f52(s2);
|
|
3325
3352
|
} else {
|
|
3326
3353
|
peg$currPos = s0;
|
|
3327
3354
|
s0 = peg$FAILED;
|
|
@@ -3356,7 +3383,7 @@ function peg$parse(input, options) {
|
|
|
3356
3383
|
s1 = peg$parsedigits();
|
|
3357
3384
|
if (s1 !== peg$FAILED) {
|
|
3358
3385
|
peg$savedPos = s0;
|
|
3359
|
-
s1 = peg$
|
|
3386
|
+
s1 = peg$f53();
|
|
3360
3387
|
}
|
|
3361
3388
|
s0 = s1;
|
|
3362
3389
|
peg$silentFails--;
|
|
@@ -3381,7 +3408,7 @@ function peg$parse(input, options) {
|
|
|
3381
3408
|
s3 = peg$parsekeyChar();
|
|
3382
3409
|
}
|
|
3383
3410
|
peg$savedPos = s0;
|
|
3384
|
-
s0 = peg$
|
|
3411
|
+
s0 = peg$f54();
|
|
3385
3412
|
} else {
|
|
3386
3413
|
peg$currPos = s0;
|
|
3387
3414
|
s0 = peg$FAILED;
|
|
@@ -3432,7 +3459,7 @@ function peg$parse(input, options) {
|
|
|
3432
3459
|
}
|
|
3433
3460
|
if (s1 !== peg$FAILED) {
|
|
3434
3461
|
peg$savedPos = peg$currPos;
|
|
3435
|
-
s2 = peg$
|
|
3462
|
+
s2 = peg$f55(s1);
|
|
3436
3463
|
if (s2) {
|
|
3437
3464
|
s2 = undefined;
|
|
3438
3465
|
} else {
|
|
@@ -3498,7 +3525,7 @@ function peg$parse(input, options) {
|
|
|
3498
3525
|
s2 = null;
|
|
3499
3526
|
}
|
|
3500
3527
|
peg$savedPos = s0;
|
|
3501
|
-
s0 = peg$
|
|
3528
|
+
s0 = peg$f56(s1);
|
|
3502
3529
|
} else {
|
|
3503
3530
|
peg$currPos = s0;
|
|
3504
3531
|
s0 = peg$FAILED;
|
|
@@ -3567,7 +3594,7 @@ function peg$parse(input, options) {
|
|
|
3567
3594
|
}
|
|
3568
3595
|
}
|
|
3569
3596
|
peg$savedPos = s0;
|
|
3570
|
-
s0 = peg$
|
|
3597
|
+
s0 = peg$f57(s1, s2);
|
|
3571
3598
|
} else {
|
|
3572
3599
|
peg$currPos = s0;
|
|
3573
3600
|
s0 = peg$FAILED;
|
|
@@ -3631,7 +3658,7 @@ function peg$parse(input, options) {
|
|
|
3631
3658
|
}
|
|
3632
3659
|
}
|
|
3633
3660
|
peg$savedPos = s0;
|
|
3634
|
-
s0 = peg$
|
|
3661
|
+
s0 = peg$f58(s1, s2);
|
|
3635
3662
|
} else {
|
|
3636
3663
|
peg$currPos = s0;
|
|
3637
3664
|
s0 = peg$FAILED;
|
|
@@ -3800,7 +3827,7 @@ function peg$parse(input, options) {
|
|
|
3800
3827
|
}
|
|
3801
3828
|
if (s3 !== peg$FAILED) {
|
|
3802
3829
|
peg$savedPos = s0;
|
|
3803
|
-
s0 = peg$
|
|
3830
|
+
s0 = peg$f59();
|
|
3804
3831
|
} else {
|
|
3805
3832
|
peg$currPos = s0;
|
|
3806
3833
|
s0 = peg$FAILED;
|
|
@@ -3876,7 +3903,7 @@ function peg$parse(input, options) {
|
|
|
3876
3903
|
}
|
|
3877
3904
|
}
|
|
3878
3905
|
peg$savedPos = s0;
|
|
3879
|
-
s0 = peg$
|
|
3906
|
+
s0 = peg$f60(s1, s2);
|
|
3880
3907
|
} else {
|
|
3881
3908
|
peg$currPos = s0;
|
|
3882
3909
|
s0 = peg$FAILED;
|
|
@@ -3919,7 +3946,7 @@ function peg$parse(input, options) {
|
|
|
3919
3946
|
s4 = null;
|
|
3920
3947
|
}
|
|
3921
3948
|
peg$savedPos = s0;
|
|
3922
|
-
s0 = peg$
|
|
3949
|
+
s0 = peg$f61(s3, s4);
|
|
3923
3950
|
} else {
|
|
3924
3951
|
peg$currPos = s0;
|
|
3925
3952
|
s0 = peg$FAILED;
|
|
@@ -3943,7 +3970,7 @@ function peg$parse(input, options) {
|
|
|
3943
3970
|
s3 = peg$parseparenthesesArguments();
|
|
3944
3971
|
if (s3 !== peg$FAILED) {
|
|
3945
3972
|
peg$savedPos = s0;
|
|
3946
|
-
s0 = peg$
|
|
3973
|
+
s0 = peg$f62(s2, s3);
|
|
3947
3974
|
} else {
|
|
3948
3975
|
peg$currPos = s0;
|
|
3949
3976
|
s0 = peg$FAILED;
|
|
@@ -4065,7 +4092,7 @@ function peg$parse(input, options) {
|
|
|
4065
4092
|
}
|
|
4066
4093
|
}
|
|
4067
4094
|
peg$savedPos = s0;
|
|
4068
|
-
s0 = peg$
|
|
4095
|
+
s0 = peg$f63(s1, s2);
|
|
4069
4096
|
} else {
|
|
4070
4097
|
peg$currPos = s0;
|
|
4071
4098
|
s0 = peg$FAILED;
|
|
@@ -4096,7 +4123,7 @@ function peg$parse(input, options) {
|
|
|
4096
4123
|
s5 = peg$parseexpectClosingBrace();
|
|
4097
4124
|
if (s5 !== peg$FAILED) {
|
|
4098
4125
|
peg$savedPos = s0;
|
|
4099
|
-
s0 = peg$
|
|
4126
|
+
s0 = peg$f64(s3);
|
|
4100
4127
|
} else {
|
|
4101
4128
|
peg$currPos = s0;
|
|
4102
4129
|
s0 = peg$FAILED;
|
|
@@ -4149,7 +4176,7 @@ function peg$parse(input, options) {
|
|
|
4149
4176
|
s2 = null;
|
|
4150
4177
|
}
|
|
4151
4178
|
peg$savedPos = s0;
|
|
4152
|
-
s0 = peg$
|
|
4179
|
+
s0 = peg$f65(s1);
|
|
4153
4180
|
} else {
|
|
4154
4181
|
peg$currPos = s0;
|
|
4155
4182
|
s0 = peg$FAILED;
|
|
@@ -4195,7 +4222,7 @@ function peg$parse(input, options) {
|
|
|
4195
4222
|
s5 = peg$parseexpectPipelineExpression();
|
|
4196
4223
|
if (s5 !== peg$FAILED) {
|
|
4197
4224
|
peg$savedPos = s0;
|
|
4198
|
-
s0 = peg$
|
|
4225
|
+
s0 = peg$f66(s1, s5);
|
|
4199
4226
|
} else {
|
|
4200
4227
|
peg$currPos = s0;
|
|
4201
4228
|
s0 = peg$FAILED;
|
|
@@ -4256,7 +4283,7 @@ function peg$parse(input, options) {
|
|
|
4256
4283
|
}
|
|
4257
4284
|
if (s1 !== peg$FAILED) {
|
|
4258
4285
|
peg$savedPos = s0;
|
|
4259
|
-
s1 = peg$
|
|
4286
|
+
s1 = peg$f67(s1);
|
|
4260
4287
|
}
|
|
4261
4288
|
s0 = s1;
|
|
4262
4289
|
|
|
@@ -4300,7 +4327,7 @@ function peg$parse(input, options) {
|
|
|
4300
4327
|
s5 = peg$parseexpectPipelineExpression();
|
|
4301
4328
|
if (s5 !== peg$FAILED) {
|
|
4302
4329
|
peg$savedPos = s0;
|
|
4303
|
-
s0 = peg$
|
|
4330
|
+
s0 = peg$f68(s1, s5);
|
|
4304
4331
|
} else {
|
|
4305
4332
|
peg$currPos = s0;
|
|
4306
4333
|
s0 = peg$FAILED;
|
|
@@ -4330,7 +4357,7 @@ function peg$parse(input, options) {
|
|
|
4330
4357
|
s1 = peg$parseobjectPublicKey();
|
|
4331
4358
|
if (s1 !== peg$FAILED) {
|
|
4332
4359
|
peg$savedPos = s0;
|
|
4333
|
-
s1 = peg$
|
|
4360
|
+
s1 = peg$f69(s1);
|
|
4334
4361
|
}
|
|
4335
4362
|
s0 = s1;
|
|
4336
4363
|
if (s0 === peg$FAILED) {
|
|
@@ -4338,7 +4365,7 @@ function peg$parse(input, options) {
|
|
|
4338
4365
|
s1 = peg$parseangleBracketLiteral();
|
|
4339
4366
|
if (s1 !== peg$FAILED) {
|
|
4340
4367
|
peg$savedPos = s0;
|
|
4341
|
-
s1 = peg$
|
|
4368
|
+
s1 = peg$f70(s1);
|
|
4342
4369
|
}
|
|
4343
4370
|
s0 = s1;
|
|
4344
4371
|
}
|
|
@@ -4368,7 +4395,7 @@ function peg$parse(input, options) {
|
|
|
4368
4395
|
s2 = null;
|
|
4369
4396
|
}
|
|
4370
4397
|
peg$savedPos = s0;
|
|
4371
|
-
s0 = peg$
|
|
4398
|
+
s0 = peg$f71(s1, s2);
|
|
4372
4399
|
} else {
|
|
4373
4400
|
peg$currPos = s0;
|
|
4374
4401
|
s0 = peg$FAILED;
|
|
@@ -4378,7 +4405,7 @@ function peg$parse(input, options) {
|
|
|
4378
4405
|
s1 = peg$parsestringLiteral();
|
|
4379
4406
|
if (s1 !== peg$FAILED) {
|
|
4380
4407
|
peg$savedPos = s0;
|
|
4381
|
-
s1 = peg$
|
|
4408
|
+
s1 = peg$f72(s1);
|
|
4382
4409
|
}
|
|
4383
4410
|
s0 = s1;
|
|
4384
4411
|
}
|
|
@@ -4403,7 +4430,7 @@ function peg$parse(input, options) {
|
|
|
4403
4430
|
s4 = peg$parseidentifier();
|
|
4404
4431
|
if (s4 !== peg$FAILED) {
|
|
4405
4432
|
peg$savedPos = s0;
|
|
4406
|
-
s0 = peg$
|
|
4433
|
+
s0 = peg$f73(s4);
|
|
4407
4434
|
} else {
|
|
4408
4435
|
peg$currPos = s0;
|
|
4409
4436
|
s0 = peg$FAILED;
|
|
@@ -4423,7 +4450,7 @@ function peg$parse(input, options) {
|
|
|
4423
4450
|
s1 = peg$parsekey();
|
|
4424
4451
|
if (s1 !== peg$FAILED) {
|
|
4425
4452
|
peg$savedPos = s0;
|
|
4426
|
-
s1 = peg$
|
|
4453
|
+
s1 = peg$f74(s1);
|
|
4427
4454
|
}
|
|
4428
4455
|
s0 = s1;
|
|
4429
4456
|
|
|
@@ -4465,7 +4492,7 @@ function peg$parse(input, options) {
|
|
|
4465
4492
|
s2 = null;
|
|
4466
4493
|
}
|
|
4467
4494
|
peg$savedPos = s0;
|
|
4468
|
-
s0 = peg$
|
|
4495
|
+
s0 = peg$f75(s1);
|
|
4469
4496
|
} else {
|
|
4470
4497
|
peg$currPos = s0;
|
|
4471
4498
|
s0 = peg$FAILED;
|
|
@@ -4481,7 +4508,7 @@ function peg$parse(input, options) {
|
|
|
4481
4508
|
s1 = peg$parseparameter();
|
|
4482
4509
|
if (s1 !== peg$FAILED) {
|
|
4483
4510
|
peg$savedPos = s0;
|
|
4484
|
-
s1 = peg$
|
|
4511
|
+
s1 = peg$f76(s1);
|
|
4485
4512
|
}
|
|
4486
4513
|
s0 = s1;
|
|
4487
4514
|
|
|
@@ -4510,7 +4537,7 @@ function peg$parse(input, options) {
|
|
|
4510
4537
|
s5 = peg$parseexpectClosingParenthesis();
|
|
4511
4538
|
if (s5 !== peg$FAILED) {
|
|
4512
4539
|
peg$savedPos = s0;
|
|
4513
|
-
s0 = peg$
|
|
4540
|
+
s0 = peg$f77(s3);
|
|
4514
4541
|
} else {
|
|
4515
4542
|
peg$currPos = s0;
|
|
4516
4543
|
s0 = peg$FAILED;
|
|
@@ -4545,7 +4572,7 @@ function peg$parse(input, options) {
|
|
|
4545
4572
|
s2 = null;
|
|
4546
4573
|
}
|
|
4547
4574
|
peg$savedPos = s0;
|
|
4548
|
-
s0 = peg$
|
|
4575
|
+
s0 = peg$f78(s2);
|
|
4549
4576
|
} else {
|
|
4550
4577
|
peg$currPos = s0;
|
|
4551
4578
|
s0 = peg$FAILED;
|
|
@@ -4581,7 +4608,7 @@ function peg$parse(input, options) {
|
|
|
4581
4608
|
s1 = peg$parsepathKeys();
|
|
4582
4609
|
if (s1 !== peg$FAILED) {
|
|
4583
4610
|
peg$savedPos = s0;
|
|
4584
|
-
s1 = peg$
|
|
4611
|
+
s1 = peg$f79(s1);
|
|
4585
4612
|
}
|
|
4586
4613
|
s0 = s1;
|
|
4587
4614
|
|
|
@@ -4605,7 +4632,7 @@ function peg$parse(input, options) {
|
|
|
4605
4632
|
s2 = null;
|
|
4606
4633
|
}
|
|
4607
4634
|
peg$savedPos = s0;
|
|
4608
|
-
s0 = peg$
|
|
4635
|
+
s0 = peg$f80(s1);
|
|
4609
4636
|
} else {
|
|
4610
4637
|
peg$currPos = s0;
|
|
4611
4638
|
s0 = peg$FAILED;
|
|
@@ -4621,7 +4648,7 @@ function peg$parse(input, options) {
|
|
|
4621
4648
|
}
|
|
4622
4649
|
if (s1 !== peg$FAILED) {
|
|
4623
4650
|
peg$savedPos = s0;
|
|
4624
|
-
s1 = peg$
|
|
4651
|
+
s1 = peg$f81();
|
|
4625
4652
|
}
|
|
4626
4653
|
s0 = s1;
|
|
4627
4654
|
}
|
|
@@ -4672,7 +4699,7 @@ function peg$parse(input, options) {
|
|
|
4672
4699
|
}
|
|
4673
4700
|
}
|
|
4674
4701
|
peg$savedPos = s0;
|
|
4675
|
-
s0 = peg$
|
|
4702
|
+
s0 = peg$f82(s1, s2);
|
|
4676
4703
|
} else {
|
|
4677
4704
|
peg$currPos = s0;
|
|
4678
4705
|
s0 = peg$FAILED;
|
|
@@ -4777,7 +4804,7 @@ function peg$parse(input, options) {
|
|
|
4777
4804
|
s4 = peg$parseidentifierLiteral();
|
|
4778
4805
|
if (s4 !== peg$FAILED) {
|
|
4779
4806
|
peg$savedPos = s0;
|
|
4780
|
-
s0 = peg$
|
|
4807
|
+
s0 = peg$f83(s4);
|
|
4781
4808
|
} else {
|
|
4782
4809
|
peg$currPos = s0;
|
|
4783
4810
|
s0 = peg$FAILED;
|
|
@@ -4813,7 +4840,7 @@ function peg$parse(input, options) {
|
|
|
4813
4840
|
}
|
|
4814
4841
|
}
|
|
4815
4842
|
peg$savedPos = s0;
|
|
4816
|
-
s1 = peg$
|
|
4843
|
+
s1 = peg$f84(s1);
|
|
4817
4844
|
s0 = s1;
|
|
4818
4845
|
|
|
4819
4846
|
return s0;
|
|
@@ -4847,7 +4874,7 @@ function peg$parse(input, options) {
|
|
|
4847
4874
|
if (s3 !== peg$FAILED) {
|
|
4848
4875
|
s4 = peg$parseregexFlags();
|
|
4849
4876
|
peg$savedPos = s0;
|
|
4850
|
-
s0 = peg$
|
|
4877
|
+
s0 = peg$f85(s2, s4);
|
|
4851
4878
|
} else {
|
|
4852
4879
|
peg$currPos = s0;
|
|
4853
4880
|
s0 = peg$FAILED;
|
|
@@ -4930,7 +4957,7 @@ function peg$parse(input, options) {
|
|
|
4930
4957
|
}
|
|
4931
4958
|
}
|
|
4932
4959
|
peg$savedPos = s0;
|
|
4933
|
-
s0 = peg$
|
|
4960
|
+
s0 = peg$f86(s1, s2);
|
|
4934
4961
|
} else {
|
|
4935
4962
|
peg$currPos = s0;
|
|
4936
4963
|
s0 = peg$FAILED;
|
|
@@ -5045,7 +5072,7 @@ function peg$parse(input, options) {
|
|
|
5045
5072
|
}
|
|
5046
5073
|
}
|
|
5047
5074
|
peg$savedPos = s0;
|
|
5048
|
-
s0 = peg$
|
|
5075
|
+
s0 = peg$f87();
|
|
5049
5076
|
} else {
|
|
5050
5077
|
peg$currPos = s0;
|
|
5051
5078
|
s0 = peg$FAILED;
|
|
@@ -5058,7 +5085,7 @@ function peg$parse(input, options) {
|
|
|
5058
5085
|
var s0;
|
|
5059
5086
|
|
|
5060
5087
|
peg$savedPos = peg$currPos;
|
|
5061
|
-
s0 = peg$
|
|
5088
|
+
s0 = peg$f88();
|
|
5062
5089
|
if (s0) {
|
|
5063
5090
|
s0 = undefined;
|
|
5064
5091
|
} else {
|
|
@@ -5111,7 +5138,7 @@ function peg$parse(input, options) {
|
|
|
5111
5138
|
}
|
|
5112
5139
|
}
|
|
5113
5140
|
peg$savedPos = s0;
|
|
5114
|
-
s0 = peg$
|
|
5141
|
+
s0 = peg$f89(s1, s2);
|
|
5115
5142
|
} else {
|
|
5116
5143
|
peg$currPos = s0;
|
|
5117
5144
|
s0 = peg$FAILED;
|
|
@@ -5188,7 +5215,7 @@ function peg$parse(input, options) {
|
|
|
5188
5215
|
s5 = peg$parseimplicitParenthesesCallExpression();
|
|
5189
5216
|
if (s5 !== peg$FAILED) {
|
|
5190
5217
|
peg$savedPos = s0;
|
|
5191
|
-
s0 = peg$
|
|
5218
|
+
s0 = peg$f90(s5);
|
|
5192
5219
|
} else {
|
|
5193
5220
|
peg$currPos = s0;
|
|
5194
5221
|
s0 = peg$FAILED;
|
|
@@ -5271,7 +5298,7 @@ function peg$parse(input, options) {
|
|
|
5271
5298
|
}
|
|
5272
5299
|
}
|
|
5273
5300
|
peg$savedPos = s0;
|
|
5274
|
-
s0 = peg$
|
|
5301
|
+
s0 = peg$f91();
|
|
5275
5302
|
} else {
|
|
5276
5303
|
peg$currPos = s0;
|
|
5277
5304
|
s0 = peg$FAILED;
|
|
@@ -5302,7 +5329,7 @@ function peg$parse(input, options) {
|
|
|
5302
5329
|
s3 = peg$parseexpectSingleQuote();
|
|
5303
5330
|
if (s3 !== peg$FAILED) {
|
|
5304
5331
|
peg$savedPos = s0;
|
|
5305
|
-
s0 = peg$
|
|
5332
|
+
s0 = peg$f92(s2);
|
|
5306
5333
|
} else {
|
|
5307
5334
|
peg$currPos = s0;
|
|
5308
5335
|
s0 = peg$FAILED;
|
|
@@ -5366,7 +5393,7 @@ function peg$parse(input, options) {
|
|
|
5366
5393
|
s1 = peg$parseslashFollows();
|
|
5367
5394
|
if (s1 !== peg$FAILED) {
|
|
5368
5395
|
peg$savedPos = s0;
|
|
5369
|
-
s1 = peg$
|
|
5396
|
+
s1 = peg$f93();
|
|
5370
5397
|
}
|
|
5371
5398
|
s0 = s1;
|
|
5372
5399
|
|
|
@@ -5401,7 +5428,7 @@ function peg$parse(input, options) {
|
|
|
5401
5428
|
}
|
|
5402
5429
|
if (s1 !== peg$FAILED) {
|
|
5403
5430
|
peg$savedPos = s0;
|
|
5404
|
-
s1 = peg$
|
|
5431
|
+
s1 = peg$f94();
|
|
5405
5432
|
}
|
|
5406
5433
|
s0 = s1;
|
|
5407
5434
|
|
|
@@ -5430,7 +5457,7 @@ function peg$parse(input, options) {
|
|
|
5430
5457
|
}
|
|
5431
5458
|
if (s1 !== peg$FAILED) {
|
|
5432
5459
|
peg$savedPos = s0;
|
|
5433
|
-
s1 = peg$
|
|
5460
|
+
s1 = peg$f95();
|
|
5434
5461
|
}
|
|
5435
5462
|
s0 = s1;
|
|
5436
5463
|
|
|
@@ -5447,7 +5474,7 @@ function peg$parse(input, options) {
|
|
|
5447
5474
|
s3 = peg$parseexpectPipelineExpression();
|
|
5448
5475
|
if (s3 !== peg$FAILED) {
|
|
5449
5476
|
peg$savedPos = s0;
|
|
5450
|
-
s0 = peg$
|
|
5477
|
+
s0 = peg$f96(s3);
|
|
5451
5478
|
} else {
|
|
5452
5479
|
peg$currPos = s0;
|
|
5453
5480
|
s0 = peg$FAILED;
|
|
@@ -5524,7 +5551,7 @@ function peg$parse(input, options) {
|
|
|
5524
5551
|
}
|
|
5525
5552
|
}
|
|
5526
5553
|
peg$savedPos = s0;
|
|
5527
|
-
s0 = peg$
|
|
5554
|
+
s0 = peg$f97(s1, s2);
|
|
5528
5555
|
peg$silentFails--;
|
|
5529
5556
|
s1 = peg$FAILED;
|
|
5530
5557
|
if (peg$silentFails === 0) { peg$fail(peg$e102); }
|
|
@@ -5580,7 +5607,7 @@ function peg$parse(input, options) {
|
|
|
5580
5607
|
s2 = peg$parsetemplateBodyChar();
|
|
5581
5608
|
}
|
|
5582
5609
|
peg$savedPos = s0;
|
|
5583
|
-
s1 = peg$
|
|
5610
|
+
s1 = peg$f98(s1);
|
|
5584
5611
|
s0 = s1;
|
|
5585
5612
|
peg$silentFails--;
|
|
5586
5613
|
s1 = peg$FAILED;
|
|
@@ -5599,7 +5626,7 @@ function peg$parse(input, options) {
|
|
|
5599
5626
|
s2 = peg$parse__();
|
|
5600
5627
|
s3 = peg$parsetemplateBody();
|
|
5601
5628
|
peg$savedPos = s0;
|
|
5602
|
-
s0 = peg$
|
|
5629
|
+
s0 = peg$f99(s1, s3);
|
|
5603
5630
|
} else {
|
|
5604
5631
|
peg$currPos = s0;
|
|
5605
5632
|
s0 = peg$FAILED;
|
|
@@ -5610,7 +5637,7 @@ function peg$parse(input, options) {
|
|
|
5610
5637
|
if (s1 !== peg$FAILED) {
|
|
5611
5638
|
s2 = peg$parsetemplateBody();
|
|
5612
5639
|
peg$savedPos = s0;
|
|
5613
|
-
s0 = peg$
|
|
5640
|
+
s0 = peg$f100(s1, s2);
|
|
5614
5641
|
} else {
|
|
5615
5642
|
peg$currPos = s0;
|
|
5616
5643
|
s0 = peg$FAILED;
|
|
@@ -5619,7 +5646,7 @@ function peg$parse(input, options) {
|
|
|
5619
5646
|
s0 = peg$currPos;
|
|
5620
5647
|
s1 = peg$parsetemplateBody();
|
|
5621
5648
|
peg$savedPos = s0;
|
|
5622
|
-
s1 = peg$
|
|
5649
|
+
s1 = peg$f101(s1);
|
|
5623
5650
|
s0 = s1;
|
|
5624
5651
|
}
|
|
5625
5652
|
}
|
|
@@ -5673,7 +5700,7 @@ function peg$parse(input, options) {
|
|
|
5673
5700
|
s4 = peg$parseexpectBacktick();
|
|
5674
5701
|
if (s4 !== peg$FAILED) {
|
|
5675
5702
|
peg$savedPos = s0;
|
|
5676
|
-
s0 = peg$
|
|
5703
|
+
s0 = peg$f102(s2, s3);
|
|
5677
5704
|
} else {
|
|
5678
5705
|
peg$currPos = s0;
|
|
5679
5706
|
s0 = peg$FAILED;
|
|
@@ -5747,7 +5774,7 @@ function peg$parse(input, options) {
|
|
|
5747
5774
|
s2 = peg$parsetemplateLiteralChar();
|
|
5748
5775
|
}
|
|
5749
5776
|
peg$savedPos = s0;
|
|
5750
|
-
s1 = peg$
|
|
5777
|
+
s1 = peg$f103(s1);
|
|
5751
5778
|
s0 = s1;
|
|
5752
5779
|
|
|
5753
5780
|
return s0;
|
|
@@ -5777,7 +5804,7 @@ function peg$parse(input, options) {
|
|
|
5777
5804
|
}
|
|
5778
5805
|
if (s3 !== peg$FAILED) {
|
|
5779
5806
|
peg$savedPos = s0;
|
|
5780
|
-
s0 = peg$
|
|
5807
|
+
s0 = peg$f104(s2);
|
|
5781
5808
|
} else {
|
|
5782
5809
|
peg$currPos = s0;
|
|
5783
5810
|
s0 = peg$FAILED;
|
|
@@ -5823,10 +5850,10 @@ function peg$parse(input, options) {
|
|
|
5823
5850
|
s1 = peg$parseunaryOperator();
|
|
5824
5851
|
if (s1 !== peg$FAILED) {
|
|
5825
5852
|
s2 = peg$parse__();
|
|
5826
|
-
s3 = peg$
|
|
5853
|
+
s3 = peg$parseexpectUnaryExpression();
|
|
5827
5854
|
if (s3 !== peg$FAILED) {
|
|
5828
5855
|
peg$savedPos = s0;
|
|
5829
|
-
s0 = peg$
|
|
5856
|
+
s0 = peg$f105(s1, s3);
|
|
5830
5857
|
} else {
|
|
5831
5858
|
peg$currPos = s0;
|
|
5832
5859
|
s0 = peg$FAILED;
|
|
@@ -5883,7 +5910,7 @@ function peg$parse(input, options) {
|
|
|
5883
5910
|
s4 = null;
|
|
5884
5911
|
}
|
|
5885
5912
|
peg$savedPos = s0;
|
|
5886
|
-
s0 = peg$
|
|
5913
|
+
s0 = peg$f106(s1, s3, s4);
|
|
5887
5914
|
} else {
|
|
5888
5915
|
peg$currPos = s0;
|
|
5889
5916
|
s0 = peg$FAILED;
|
|
@@ -5903,7 +5930,7 @@ function peg$parse(input, options) {
|
|
|
5903
5930
|
s2 = peg$parsepathKeys();
|
|
5904
5931
|
if (s2 !== peg$FAILED) {
|
|
5905
5932
|
peg$savedPos = s0;
|
|
5906
|
-
s0 = peg$
|
|
5933
|
+
s0 = peg$f107(s1, s2);
|
|
5907
5934
|
} else {
|
|
5908
5935
|
peg$currPos = s0;
|
|
5909
5936
|
s0 = peg$FAILED;
|
|
@@ -5957,7 +5984,7 @@ function peg$parse(input, options) {
|
|
|
5957
5984
|
s2 = null;
|
|
5958
5985
|
}
|
|
5959
5986
|
peg$savedPos = s0;
|
|
5960
|
-
s0 = peg$
|
|
5987
|
+
s0 = peg$f108(s1);
|
|
5961
5988
|
} else {
|
|
5962
5989
|
peg$currPos = s0;
|
|
5963
5990
|
s0 = peg$FAILED;
|
|
@@ -5973,7 +6000,7 @@ function peg$parse(input, options) {
|
|
|
5973
6000
|
}
|
|
5974
6001
|
if (s1 !== peg$FAILED) {
|
|
5975
6002
|
peg$savedPos = s0;
|
|
5976
|
-
s1 = peg$
|
|
6003
|
+
s1 = peg$f109();
|
|
5977
6004
|
}
|
|
5978
6005
|
s0 = s1;
|
|
5979
6006
|
}
|
|
@@ -6018,7 +6045,7 @@ function peg$parse(input, options) {
|
|
|
6018
6045
|
}
|
|
6019
6046
|
if (s1 !== peg$FAILED) {
|
|
6020
6047
|
peg$savedPos = s0;
|
|
6021
|
-
s1 = peg$
|
|
6048
|
+
s1 = peg$f110(s1);
|
|
6022
6049
|
}
|
|
6023
6050
|
s0 = s1;
|
|
6024
6051
|
peg$silentFails--;
|
|
@@ -6069,7 +6096,7 @@ function peg$parse(input, options) {
|
|
|
6069
6096
|
}
|
|
6070
6097
|
if (s3 !== peg$FAILED) {
|
|
6071
6098
|
peg$savedPos = s0;
|
|
6072
|
-
s0 = peg$
|
|
6099
|
+
s0 = peg$f111();
|
|
6073
6100
|
} else {
|
|
6074
6101
|
peg$currPos = s0;
|
|
6075
6102
|
s0 = peg$FAILED;
|
|
@@ -6247,6 +6274,7 @@ const peg$allowedStartRules = [
|
|
|
6247
6274
|
"expectGuillemet",
|
|
6248
6275
|
"expectSingleQuote",
|
|
6249
6276
|
"expectPipelineExpression",
|
|
6277
|
+
"expectUnaryExpression",
|
|
6250
6278
|
"exponentiationExpression",
|
|
6251
6279
|
"expression",
|
|
6252
6280
|
"floatLiteral",
|
|
@@ -618,6 +618,12 @@ Body`,
|
|
|
618
618
|
[markers.traverse, [markers.reference, "keys"]],
|
|
619
619
|
[markers.traverse, [markers.external, "~"]],
|
|
620
620
|
]);
|
|
621
|
+
assertParse("expression", "!x ? 0 : 1", [
|
|
622
|
+
ops.conditional,
|
|
623
|
+
[ops.logicalNot, [markers.traverse, [markers.reference, "x"]]],
|
|
624
|
+
[ops.literal, 0],
|
|
625
|
+
[ops.literal, 1],
|
|
626
|
+
]);
|
|
621
627
|
});
|
|
622
628
|
|
|
623
629
|
test("complex object", () => {
|