@weborigami/language 0.0.62 → 0.0.64-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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@weborigami/language",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.64-beta.1",
|
|
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.5.3"
|
|
12
12
|
},
|
|
13
13
|
"dependencies": {
|
|
14
|
-
"@weborigami/async-tree": "0.0.
|
|
15
|
-
"@weborigami/types": "0.0.
|
|
14
|
+
"@weborigami/async-tree": "0.0.64-beta.1",
|
|
15
|
+
"@weborigami/types": "0.0.64-beta.1",
|
|
16
16
|
"watcher": "2.3.1"
|
|
17
17
|
},
|
|
18
18
|
"scripts": {
|
|
@@ -63,9 +63,8 @@ callTarget "function call"
|
|
|
63
63
|
/ group
|
|
64
64
|
/ scopeReference
|
|
65
65
|
|
|
66
|
-
// Required closing curly brace. We use this for the `
|
|
67
|
-
//
|
|
68
|
-
// sees a left curly brace, here we must see a right curly brace.
|
|
66
|
+
// Required closing curly brace. We use this for the `object` term: if the
|
|
67
|
+
// parser sees a left curly brace, here we must see a right curly brace.
|
|
69
68
|
closingBrace
|
|
70
69
|
= "}"
|
|
71
70
|
/ .? {
|
|
@@ -207,7 +206,7 @@ number "number"
|
|
|
207
206
|
|
|
208
207
|
// An object literal: `{foo: 1, bar: 2}`
|
|
209
208
|
object "object literal"
|
|
210
|
-
= "{" __ entries:objectEntries? __
|
|
209
|
+
= "{" __ entries:objectEntries? __ closingBrace {
|
|
211
210
|
return annotate(makeObject(entries ?? [], ops.object), location());
|
|
212
211
|
}
|
|
213
212
|
|
|
@@ -223,7 +222,7 @@ objectEntry
|
|
|
223
222
|
|
|
224
223
|
// A getter definition inside an object literal: `foo = 1`
|
|
225
224
|
objectGetter "object getter"
|
|
226
|
-
= key:
|
|
225
|
+
= key:objectKey __ "=" __ value:expr {
|
|
227
226
|
return annotate([key, [ops.getter, value]], location());
|
|
228
227
|
}
|
|
229
228
|
|
|
@@ -233,9 +232,13 @@ objectIdentifier "object identifier"
|
|
|
233
232
|
return annotate([key, [ops.inherited, key]], location());
|
|
234
233
|
}
|
|
235
234
|
|
|
235
|
+
objectKey "object key"
|
|
236
|
+
= hiddenKey:("(" identifierOrString ")") { return hiddenKey.join(""); }
|
|
237
|
+
/ identifierOrString
|
|
238
|
+
|
|
236
239
|
// A property definition in an object literal: `x: 1`
|
|
237
240
|
objectProperty "object property"
|
|
238
|
-
= @
|
|
241
|
+
= @objectKey __ ":" __ @expr
|
|
239
242
|
|
|
240
243
|
parameterizedLambda
|
|
241
244
|
= "(" __ parameters:identifierList? __ ")" __ doubleArrow __ expr:expr {
|
package/src/compiler/parse.js
CHANGED
|
@@ -193,7 +193,7 @@ function peg$parse(input, options) {
|
|
|
193
193
|
var peg$FAILED = {};
|
|
194
194
|
var peg$source = options.grammarSource;
|
|
195
195
|
|
|
196
|
-
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, identifierOrString: peg$parseidentifierOrString, 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, objectIdentifier: peg$parseobjectIdentifier, objectProperty: peg$parseobjectProperty, parameterizedLambda: peg$parseparameterizedLambda, parensArgs: peg$parseparensArgs, pipeline: peg$parsepipeline, path: peg$parsepath, pathKey: peg$parsepathKey, pathKeyChar: peg$parsepathKeyChar, protocolCall: peg$parseprotocolCall, protocol: peg$parseprotocol, reservedProtocol: peg$parsereservedProtocol, scopeReference: peg$parsescopeReference, 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 };
|
|
196
|
+
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, identifierOrString: peg$parseidentifierOrString, 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, objectIdentifier: peg$parseobjectIdentifier, objectKey: peg$parseobjectKey, objectProperty: peg$parseobjectProperty, parameterizedLambda: peg$parseparameterizedLambda, parensArgs: peg$parseparensArgs, pipeline: peg$parsepipeline, path: peg$parsepath, pathKey: peg$parsepathKey, pathKeyChar: peg$parsepathKeyChar, protocolCall: peg$parseprotocolCall, protocol: peg$parseprotocol, reservedProtocol: peg$parsereservedProtocol, scopeReference: peg$parsescopeReference, 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 };
|
|
197
197
|
var peg$startRuleFunction = peg$parse__;
|
|
198
198
|
|
|
199
199
|
var peg$c0 = "//";
|
|
@@ -297,37 +297,38 @@ function peg$parse(input, options) {
|
|
|
297
297
|
var peg$e50 = peg$literalExpectation("{", false);
|
|
298
298
|
var peg$e51 = peg$otherExpectation("object getter");
|
|
299
299
|
var peg$e52 = peg$otherExpectation("object identifier");
|
|
300
|
-
var peg$e53 = peg$otherExpectation("object
|
|
301
|
-
var peg$e54 = peg$otherExpectation("
|
|
302
|
-
var peg$e55 = peg$otherExpectation("
|
|
303
|
-
var peg$e56 = peg$otherExpectation("path
|
|
304
|
-
var peg$e57 = peg$
|
|
305
|
-
var peg$e58 = peg$
|
|
306
|
-
var peg$e59 = peg$otherExpectation("protocol");
|
|
307
|
-
var peg$e60 = peg$otherExpectation("
|
|
308
|
-
var peg$e61 = peg$
|
|
309
|
-
var peg$e62 = peg$literalExpectation("
|
|
310
|
-
var peg$e63 = peg$literalExpectation("
|
|
311
|
-
var peg$e64 = peg$literalExpectation("
|
|
312
|
-
var peg$e65 = peg$literalExpectation("
|
|
313
|
-
var peg$e66 = peg$literalExpectation("
|
|
314
|
-
var peg$e67 = peg$literalExpectation("
|
|
315
|
-
var peg$e68 = peg$
|
|
316
|
-
var peg$e69 = peg$
|
|
317
|
-
var peg$e70 = peg$literalExpectation("
|
|
318
|
-
var peg$e71 = peg$
|
|
319
|
-
var peg$e72 = peg$classExpectation(["
|
|
320
|
-
var peg$e73 = peg$
|
|
321
|
-
var peg$e74 = peg$literalExpectation("
|
|
322
|
-
var peg$e75 = peg$
|
|
323
|
-
var peg$e76 = peg$
|
|
324
|
-
var peg$e77 = peg$
|
|
325
|
-
var peg$e78 = peg$otherExpectation("
|
|
326
|
-
var peg$e79 = peg$
|
|
327
|
-
var peg$e80 = peg$
|
|
328
|
-
var peg$e81 = peg$otherExpectation("template
|
|
329
|
-
var peg$e82 = peg$
|
|
330
|
-
var peg$e83 = peg$
|
|
300
|
+
var peg$e53 = peg$otherExpectation("object key");
|
|
301
|
+
var peg$e54 = peg$otherExpectation("object property");
|
|
302
|
+
var peg$e55 = peg$otherExpectation("function arguments in parentheses");
|
|
303
|
+
var peg$e56 = peg$otherExpectation("slash-separated path");
|
|
304
|
+
var peg$e57 = peg$otherExpectation("path element");
|
|
305
|
+
var peg$e58 = peg$classExpectation(["(", ")", "{", "}", "[", "]", ",", ":", "/", "\\", " ", "\t", "\n", "\r"], true, false);
|
|
306
|
+
var peg$e59 = peg$otherExpectation("function call using protocol: syntax");
|
|
307
|
+
var peg$e60 = peg$otherExpectation("protocol");
|
|
308
|
+
var peg$e61 = peg$otherExpectation("reserved protocol");
|
|
309
|
+
var peg$e62 = peg$literalExpectation("https", false);
|
|
310
|
+
var peg$e63 = peg$literalExpectation("http", false);
|
|
311
|
+
var peg$e64 = peg$literalExpectation("new", false);
|
|
312
|
+
var peg$e65 = peg$literalExpectation("package", false);
|
|
313
|
+
var peg$e66 = peg$literalExpectation("treehttps", false);
|
|
314
|
+
var peg$e67 = peg$literalExpectation("treehttp", false);
|
|
315
|
+
var peg$e68 = peg$literalExpectation("tree", false);
|
|
316
|
+
var peg$e69 = peg$otherExpectation("scope reference");
|
|
317
|
+
var peg$e70 = peg$literalExpectation(",", false);
|
|
318
|
+
var peg$e71 = peg$literalExpectation("#!", false);
|
|
319
|
+
var peg$e72 = peg$classExpectation(["\n", "\r"], true, false);
|
|
320
|
+
var peg$e73 = peg$classExpectation(["+", "-"], false, false);
|
|
321
|
+
var peg$e74 = peg$literalExpectation("\u2192", false);
|
|
322
|
+
var peg$e75 = peg$literalExpectation("->", false);
|
|
323
|
+
var peg$e76 = peg$otherExpectation("single quote string");
|
|
324
|
+
var peg$e77 = peg$literalExpectation("'", false);
|
|
325
|
+
var peg$e78 = peg$otherExpectation("string");
|
|
326
|
+
var peg$e79 = peg$otherExpectation("template");
|
|
327
|
+
var peg$e80 = peg$literalExpectation("${", false);
|
|
328
|
+
var peg$e81 = peg$otherExpectation("template text");
|
|
329
|
+
var peg$e82 = peg$otherExpectation("template literal");
|
|
330
|
+
var peg$e83 = peg$literalExpectation("`", false);
|
|
331
|
+
var peg$e84 = peg$otherExpectation("template substitution");
|
|
331
332
|
|
|
332
333
|
var peg$f0 = function() { return ""; };
|
|
333
334
|
var peg$f1 = function(path) {
|
|
@@ -378,44 +379,45 @@ function peg$parse(input, options) {
|
|
|
378
379
|
var peg$f19 = function(key) {
|
|
379
380
|
return annotate([key, [ops.inherited, key]], location());
|
|
380
381
|
};
|
|
381
|
-
var peg$f20 = function(
|
|
382
|
+
var peg$f20 = function(hiddenKey) { return hiddenKey.join(""); };
|
|
383
|
+
var peg$f21 = function(parameters, expr) {
|
|
382
384
|
return annotate([ops.lambda, parameters ?? [], expr], location());
|
|
383
385
|
};
|
|
384
|
-
var peg$
|
|
386
|
+
var peg$f22 = function(list) {
|
|
385
387
|
return list ?? annotate([undefined], location());
|
|
386
388
|
};
|
|
387
|
-
var peg$
|
|
389
|
+
var peg$f23 = function(steps) {
|
|
388
390
|
return annotate(makePipeline(steps), location());
|
|
389
391
|
};
|
|
390
|
-
var peg$
|
|
391
|
-
var peg$
|
|
392
|
+
var peg$f24 = function(chars) { return chars.join(""); };
|
|
393
|
+
var peg$f25 = function(protocol, host, path) {
|
|
392
394
|
return annotate([protocol, host, ...(path ?? [])], location());
|
|
393
395
|
};
|
|
394
|
-
var peg$
|
|
395
|
-
var peg$
|
|
396
|
-
var peg$
|
|
397
|
-
var peg$
|
|
398
|
-
var peg$
|
|
399
|
-
var peg$
|
|
400
|
-
var peg$
|
|
401
|
-
var peg$
|
|
396
|
+
var peg$f26 = function() { return ops.https; };
|
|
397
|
+
var peg$f27 = function() { return ops.http; };
|
|
398
|
+
var peg$f28 = function() { return ops.constructor; };
|
|
399
|
+
var peg$f29 = function() { return [ops.scope, "@package"] };
|
|
400
|
+
var peg$f30 = function() { return ops.treeHttps; };
|
|
401
|
+
var peg$f31 = function() { return ops.treeHttp; };
|
|
402
|
+
var peg$f32 = function() { return ops.treeHttps; };
|
|
403
|
+
var peg$f33 = function(key) {
|
|
402
404
|
return annotate([ops.scope, key], location());
|
|
403
405
|
};
|
|
404
|
-
var peg$f33 = function() { return null; };
|
|
405
406
|
var peg$f34 = function() { return null; };
|
|
406
|
-
var peg$f35 = function(
|
|
407
|
-
var peg$f36 = function(
|
|
408
|
-
var peg$f37 = function(
|
|
407
|
+
var peg$f35 = function() { return null; };
|
|
408
|
+
var peg$f36 = function(chars) { return chars.join(""); };
|
|
409
|
+
var peg$f37 = function(expr) { return [ops.spread, expr]; };
|
|
410
|
+
var peg$f38 = function(contents) {
|
|
409
411
|
return annotate([ops.lambda, null, contents], location());
|
|
410
412
|
};
|
|
411
|
-
var peg$
|
|
413
|
+
var peg$f39 = function(parts) {
|
|
412
414
|
return annotate(makeTemplate(parts), location());
|
|
413
415
|
};
|
|
414
|
-
var peg$
|
|
415
|
-
var peg$
|
|
416
|
+
var peg$f40 = function(chars) { return chars.join(""); };
|
|
417
|
+
var peg$f41 = function(parts) {
|
|
416
418
|
return annotate(makeTemplate(parts), location());
|
|
417
419
|
};
|
|
418
|
-
var peg$
|
|
420
|
+
var peg$f42 = function(chars) { return chars.join(""); };
|
|
419
421
|
var peg$currPos = options.peg$currPos | 0;
|
|
420
422
|
var peg$savedPos = peg$currPos;
|
|
421
423
|
var peg$posDetailsCache = [{ line: 1, column: 1 }];
|
|
@@ -1942,13 +1944,7 @@ function peg$parse(input, options) {
|
|
|
1942
1944
|
s3 = null;
|
|
1943
1945
|
}
|
|
1944
1946
|
s4 = peg$parse__();
|
|
1945
|
-
|
|
1946
|
-
s5 = peg$c2;
|
|
1947
|
-
peg$currPos++;
|
|
1948
|
-
} else {
|
|
1949
|
-
s5 = peg$FAILED;
|
|
1950
|
-
if (peg$silentFails === 0) { peg$fail(peg$e6); }
|
|
1951
|
-
}
|
|
1947
|
+
s5 = peg$parseclosingBrace();
|
|
1952
1948
|
if (s5 !== peg$FAILED) {
|
|
1953
1949
|
peg$savedPos = s0;
|
|
1954
1950
|
s0 = peg$f17(s3);
|
|
@@ -2034,7 +2030,7 @@ function peg$parse(input, options) {
|
|
|
2034
2030
|
|
|
2035
2031
|
peg$silentFails++;
|
|
2036
2032
|
s0 = peg$currPos;
|
|
2037
|
-
s1 = peg$
|
|
2033
|
+
s1 = peg$parseobjectKey();
|
|
2038
2034
|
if (s1 !== peg$FAILED) {
|
|
2039
2035
|
s2 = peg$parse__();
|
|
2040
2036
|
if (input.charCodeAt(peg$currPos) === 61) {
|
|
@@ -2091,12 +2087,67 @@ function peg$parse(input, options) {
|
|
|
2091
2087
|
return s0;
|
|
2092
2088
|
}
|
|
2093
2089
|
|
|
2090
|
+
function peg$parseobjectKey() {
|
|
2091
|
+
var s0, s1, s2, s3, s4;
|
|
2092
|
+
|
|
2093
|
+
peg$silentFails++;
|
|
2094
|
+
s0 = peg$currPos;
|
|
2095
|
+
s1 = peg$currPos;
|
|
2096
|
+
if (input.charCodeAt(peg$currPos) === 40) {
|
|
2097
|
+
s2 = peg$c12;
|
|
2098
|
+
peg$currPos++;
|
|
2099
|
+
} else {
|
|
2100
|
+
s2 = peg$FAILED;
|
|
2101
|
+
if (peg$silentFails === 0) { peg$fail(peg$e25); }
|
|
2102
|
+
}
|
|
2103
|
+
if (s2 !== peg$FAILED) {
|
|
2104
|
+
s3 = peg$parseidentifierOrString();
|
|
2105
|
+
if (s3 !== peg$FAILED) {
|
|
2106
|
+
if (input.charCodeAt(peg$currPos) === 41) {
|
|
2107
|
+
s4 = peg$c4;
|
|
2108
|
+
peg$currPos++;
|
|
2109
|
+
} else {
|
|
2110
|
+
s4 = peg$FAILED;
|
|
2111
|
+
if (peg$silentFails === 0) { peg$fail(peg$e9); }
|
|
2112
|
+
}
|
|
2113
|
+
if (s4 !== peg$FAILED) {
|
|
2114
|
+
s2 = [s2, s3, s4];
|
|
2115
|
+
s1 = s2;
|
|
2116
|
+
} else {
|
|
2117
|
+
peg$currPos = s1;
|
|
2118
|
+
s1 = peg$FAILED;
|
|
2119
|
+
}
|
|
2120
|
+
} else {
|
|
2121
|
+
peg$currPos = s1;
|
|
2122
|
+
s1 = peg$FAILED;
|
|
2123
|
+
}
|
|
2124
|
+
} else {
|
|
2125
|
+
peg$currPos = s1;
|
|
2126
|
+
s1 = peg$FAILED;
|
|
2127
|
+
}
|
|
2128
|
+
if (s1 !== peg$FAILED) {
|
|
2129
|
+
peg$savedPos = s0;
|
|
2130
|
+
s1 = peg$f20(s1);
|
|
2131
|
+
}
|
|
2132
|
+
s0 = s1;
|
|
2133
|
+
if (s0 === peg$FAILED) {
|
|
2134
|
+
s0 = peg$parseidentifierOrString();
|
|
2135
|
+
}
|
|
2136
|
+
peg$silentFails--;
|
|
2137
|
+
if (s0 === peg$FAILED) {
|
|
2138
|
+
s1 = peg$FAILED;
|
|
2139
|
+
if (peg$silentFails === 0) { peg$fail(peg$e53); }
|
|
2140
|
+
}
|
|
2141
|
+
|
|
2142
|
+
return s0;
|
|
2143
|
+
}
|
|
2144
|
+
|
|
2094
2145
|
function peg$parseobjectProperty() {
|
|
2095
2146
|
var s0, s1, s2, s3, s4, s5;
|
|
2096
2147
|
|
|
2097
2148
|
peg$silentFails++;
|
|
2098
2149
|
s0 = peg$currPos;
|
|
2099
|
-
s1 = peg$
|
|
2150
|
+
s1 = peg$parseobjectKey();
|
|
2100
2151
|
if (s1 !== peg$FAILED) {
|
|
2101
2152
|
s2 = peg$parse__();
|
|
2102
2153
|
if (input.charCodeAt(peg$currPos) === 58) {
|
|
@@ -2126,7 +2177,7 @@ function peg$parse(input, options) {
|
|
|
2126
2177
|
peg$silentFails--;
|
|
2127
2178
|
if (s0 === peg$FAILED) {
|
|
2128
2179
|
s1 = peg$FAILED;
|
|
2129
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
2180
|
+
if (peg$silentFails === 0) { peg$fail(peg$e54); }
|
|
2130
2181
|
}
|
|
2131
2182
|
|
|
2132
2183
|
return s0;
|
|
@@ -2165,7 +2216,7 @@ function peg$parse(input, options) {
|
|
|
2165
2216
|
s9 = peg$parsepipeline();
|
|
2166
2217
|
if (s9 !== peg$FAILED) {
|
|
2167
2218
|
peg$savedPos = s0;
|
|
2168
|
-
s0 = peg$
|
|
2219
|
+
s0 = peg$f21(s3, s9);
|
|
2169
2220
|
} else {
|
|
2170
2221
|
peg$currPos = s0;
|
|
2171
2222
|
s0 = peg$FAILED;
|
|
@@ -2214,7 +2265,7 @@ function peg$parse(input, options) {
|
|
|
2214
2265
|
}
|
|
2215
2266
|
if (s5 !== peg$FAILED) {
|
|
2216
2267
|
peg$savedPos = s0;
|
|
2217
|
-
s0 = peg$
|
|
2268
|
+
s0 = peg$f22(s3);
|
|
2218
2269
|
} else {
|
|
2219
2270
|
peg$currPos = s0;
|
|
2220
2271
|
s0 = peg$FAILED;
|
|
@@ -2226,7 +2277,7 @@ function peg$parse(input, options) {
|
|
|
2226
2277
|
peg$silentFails--;
|
|
2227
2278
|
if (s0 === peg$FAILED) {
|
|
2228
2279
|
s1 = peg$FAILED;
|
|
2229
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
2280
|
+
if (peg$silentFails === 0) { peg$fail(peg$e55); }
|
|
2230
2281
|
}
|
|
2231
2282
|
|
|
2232
2283
|
return s0;
|
|
@@ -2280,7 +2331,7 @@ function peg$parse(input, options) {
|
|
|
2280
2331
|
}
|
|
2281
2332
|
if (s1 !== peg$FAILED) {
|
|
2282
2333
|
peg$savedPos = s0;
|
|
2283
|
-
s1 = peg$
|
|
2334
|
+
s1 = peg$f23(s1);
|
|
2284
2335
|
}
|
|
2285
2336
|
s0 = s1;
|
|
2286
2337
|
|
|
@@ -2319,7 +2370,7 @@ function peg$parse(input, options) {
|
|
|
2319
2370
|
}
|
|
2320
2371
|
peg$silentFails--;
|
|
2321
2372
|
s1 = peg$FAILED;
|
|
2322
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
2373
|
+
if (peg$silentFails === 0) { peg$fail(peg$e56); }
|
|
2323
2374
|
|
|
2324
2375
|
return s0;
|
|
2325
2376
|
}
|
|
@@ -2336,11 +2387,11 @@ function peg$parse(input, options) {
|
|
|
2336
2387
|
s2 = peg$parsepathKeyChar();
|
|
2337
2388
|
}
|
|
2338
2389
|
peg$savedPos = s0;
|
|
2339
|
-
s1 = peg$
|
|
2390
|
+
s1 = peg$f24(s1);
|
|
2340
2391
|
s0 = s1;
|
|
2341
2392
|
peg$silentFails--;
|
|
2342
2393
|
s1 = peg$FAILED;
|
|
2343
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
2394
|
+
if (peg$silentFails === 0) { peg$fail(peg$e57); }
|
|
2344
2395
|
|
|
2345
2396
|
return s0;
|
|
2346
2397
|
}
|
|
@@ -2353,7 +2404,7 @@ function peg$parse(input, options) {
|
|
|
2353
2404
|
peg$currPos++;
|
|
2354
2405
|
} else {
|
|
2355
2406
|
s0 = peg$FAILED;
|
|
2356
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
2407
|
+
if (peg$silentFails === 0) { peg$fail(peg$e58); }
|
|
2357
2408
|
}
|
|
2358
2409
|
if (s0 === peg$FAILED) {
|
|
2359
2410
|
s0 = peg$parseescapedChar();
|
|
@@ -2406,7 +2457,7 @@ function peg$parse(input, options) {
|
|
|
2406
2457
|
s5 = null;
|
|
2407
2458
|
}
|
|
2408
2459
|
peg$savedPos = s0;
|
|
2409
|
-
s0 = peg$
|
|
2460
|
+
s0 = peg$f25(s1, s4, s5);
|
|
2410
2461
|
} else {
|
|
2411
2462
|
peg$currPos = s0;
|
|
2412
2463
|
s0 = peg$FAILED;
|
|
@@ -2422,7 +2473,7 @@ function peg$parse(input, options) {
|
|
|
2422
2473
|
peg$silentFails--;
|
|
2423
2474
|
if (s0 === peg$FAILED) {
|
|
2424
2475
|
s1 = peg$FAILED;
|
|
2425
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
2476
|
+
if (peg$silentFails === 0) { peg$fail(peg$e59); }
|
|
2426
2477
|
}
|
|
2427
2478
|
|
|
2428
2479
|
return s0;
|
|
@@ -2439,7 +2490,7 @@ function peg$parse(input, options) {
|
|
|
2439
2490
|
peg$silentFails--;
|
|
2440
2491
|
if (s0 === peg$FAILED) {
|
|
2441
2492
|
s1 = peg$FAILED;
|
|
2442
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
2493
|
+
if (peg$silentFails === 0) { peg$fail(peg$e60); }
|
|
2443
2494
|
}
|
|
2444
2495
|
|
|
2445
2496
|
return s0;
|
|
@@ -2455,11 +2506,11 @@ function peg$parse(input, options) {
|
|
|
2455
2506
|
peg$currPos += 5;
|
|
2456
2507
|
} else {
|
|
2457
2508
|
s1 = peg$FAILED;
|
|
2458
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
2509
|
+
if (peg$silentFails === 0) { peg$fail(peg$e62); }
|
|
2459
2510
|
}
|
|
2460
2511
|
if (s1 !== peg$FAILED) {
|
|
2461
2512
|
peg$savedPos = s0;
|
|
2462
|
-
s1 = peg$
|
|
2513
|
+
s1 = peg$f26();
|
|
2463
2514
|
}
|
|
2464
2515
|
s0 = s1;
|
|
2465
2516
|
if (s0 === peg$FAILED) {
|
|
@@ -2469,11 +2520,11 @@ function peg$parse(input, options) {
|
|
|
2469
2520
|
peg$currPos += 4;
|
|
2470
2521
|
} else {
|
|
2471
2522
|
s1 = peg$FAILED;
|
|
2472
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
2523
|
+
if (peg$silentFails === 0) { peg$fail(peg$e63); }
|
|
2473
2524
|
}
|
|
2474
2525
|
if (s1 !== peg$FAILED) {
|
|
2475
2526
|
peg$savedPos = s0;
|
|
2476
|
-
s1 = peg$
|
|
2527
|
+
s1 = peg$f27();
|
|
2477
2528
|
}
|
|
2478
2529
|
s0 = s1;
|
|
2479
2530
|
if (s0 === peg$FAILED) {
|
|
@@ -2483,11 +2534,11 @@ function peg$parse(input, options) {
|
|
|
2483
2534
|
peg$currPos += 3;
|
|
2484
2535
|
} else {
|
|
2485
2536
|
s1 = peg$FAILED;
|
|
2486
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
2537
|
+
if (peg$silentFails === 0) { peg$fail(peg$e64); }
|
|
2487
2538
|
}
|
|
2488
2539
|
if (s1 !== peg$FAILED) {
|
|
2489
2540
|
peg$savedPos = s0;
|
|
2490
|
-
s1 = peg$
|
|
2541
|
+
s1 = peg$f28();
|
|
2491
2542
|
}
|
|
2492
2543
|
s0 = s1;
|
|
2493
2544
|
if (s0 === peg$FAILED) {
|
|
@@ -2497,11 +2548,11 @@ function peg$parse(input, options) {
|
|
|
2497
2548
|
peg$currPos += 7;
|
|
2498
2549
|
} else {
|
|
2499
2550
|
s1 = peg$FAILED;
|
|
2500
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
2551
|
+
if (peg$silentFails === 0) { peg$fail(peg$e65); }
|
|
2501
2552
|
}
|
|
2502
2553
|
if (s1 !== peg$FAILED) {
|
|
2503
2554
|
peg$savedPos = s0;
|
|
2504
|
-
s1 = peg$
|
|
2555
|
+
s1 = peg$f29();
|
|
2505
2556
|
}
|
|
2506
2557
|
s0 = s1;
|
|
2507
2558
|
if (s0 === peg$FAILED) {
|
|
@@ -2511,11 +2562,11 @@ function peg$parse(input, options) {
|
|
|
2511
2562
|
peg$currPos += 9;
|
|
2512
2563
|
} else {
|
|
2513
2564
|
s1 = peg$FAILED;
|
|
2514
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
2565
|
+
if (peg$silentFails === 0) { peg$fail(peg$e66); }
|
|
2515
2566
|
}
|
|
2516
2567
|
if (s1 !== peg$FAILED) {
|
|
2517
2568
|
peg$savedPos = s0;
|
|
2518
|
-
s1 = peg$
|
|
2569
|
+
s1 = peg$f30();
|
|
2519
2570
|
}
|
|
2520
2571
|
s0 = s1;
|
|
2521
2572
|
if (s0 === peg$FAILED) {
|
|
@@ -2525,11 +2576,11 @@ function peg$parse(input, options) {
|
|
|
2525
2576
|
peg$currPos += 8;
|
|
2526
2577
|
} else {
|
|
2527
2578
|
s1 = peg$FAILED;
|
|
2528
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
2579
|
+
if (peg$silentFails === 0) { peg$fail(peg$e67); }
|
|
2529
2580
|
}
|
|
2530
2581
|
if (s1 !== peg$FAILED) {
|
|
2531
2582
|
peg$savedPos = s0;
|
|
2532
|
-
s1 = peg$
|
|
2583
|
+
s1 = peg$f31();
|
|
2533
2584
|
}
|
|
2534
2585
|
s0 = s1;
|
|
2535
2586
|
if (s0 === peg$FAILED) {
|
|
@@ -2539,11 +2590,11 @@ function peg$parse(input, options) {
|
|
|
2539
2590
|
peg$currPos += 4;
|
|
2540
2591
|
} else {
|
|
2541
2592
|
s1 = peg$FAILED;
|
|
2542
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
2593
|
+
if (peg$silentFails === 0) { peg$fail(peg$e68); }
|
|
2543
2594
|
}
|
|
2544
2595
|
if (s1 !== peg$FAILED) {
|
|
2545
2596
|
peg$savedPos = s0;
|
|
2546
|
-
s1 = peg$
|
|
2597
|
+
s1 = peg$f32();
|
|
2547
2598
|
}
|
|
2548
2599
|
s0 = s1;
|
|
2549
2600
|
}
|
|
@@ -2555,7 +2606,7 @@ function peg$parse(input, options) {
|
|
|
2555
2606
|
peg$silentFails--;
|
|
2556
2607
|
if (s0 === peg$FAILED) {
|
|
2557
2608
|
s1 = peg$FAILED;
|
|
2558
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
2609
|
+
if (peg$silentFails === 0) { peg$fail(peg$e61); }
|
|
2559
2610
|
}
|
|
2560
2611
|
|
|
2561
2612
|
return s0;
|
|
@@ -2569,13 +2620,13 @@ function peg$parse(input, options) {
|
|
|
2569
2620
|
s1 = peg$parseidentifier();
|
|
2570
2621
|
if (s1 !== peg$FAILED) {
|
|
2571
2622
|
peg$savedPos = s0;
|
|
2572
|
-
s1 = peg$
|
|
2623
|
+
s1 = peg$f33(s1);
|
|
2573
2624
|
}
|
|
2574
2625
|
s0 = s1;
|
|
2575
2626
|
peg$silentFails--;
|
|
2576
2627
|
if (s0 === peg$FAILED) {
|
|
2577
2628
|
s1 = peg$FAILED;
|
|
2578
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
2629
|
+
if (peg$silentFails === 0) { peg$fail(peg$e69); }
|
|
2579
2630
|
}
|
|
2580
2631
|
|
|
2581
2632
|
return s0;
|
|
@@ -2591,7 +2642,7 @@ function peg$parse(input, options) {
|
|
|
2591
2642
|
peg$currPos++;
|
|
2592
2643
|
} else {
|
|
2593
2644
|
s2 = peg$FAILED;
|
|
2594
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
2645
|
+
if (peg$silentFails === 0) { peg$fail(peg$e70); }
|
|
2595
2646
|
}
|
|
2596
2647
|
if (s2 !== peg$FAILED) {
|
|
2597
2648
|
s3 = peg$parse__();
|
|
@@ -2617,7 +2668,7 @@ function peg$parse(input, options) {
|
|
|
2617
2668
|
peg$currPos += 2;
|
|
2618
2669
|
} else {
|
|
2619
2670
|
s1 = peg$FAILED;
|
|
2620
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
2671
|
+
if (peg$silentFails === 0) { peg$fail(peg$e71); }
|
|
2621
2672
|
}
|
|
2622
2673
|
if (s1 !== peg$FAILED) {
|
|
2623
2674
|
s2 = [];
|
|
@@ -2626,7 +2677,7 @@ function peg$parse(input, options) {
|
|
|
2626
2677
|
peg$currPos++;
|
|
2627
2678
|
} else {
|
|
2628
2679
|
s3 = peg$FAILED;
|
|
2629
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
2680
|
+
if (peg$silentFails === 0) { peg$fail(peg$e72); }
|
|
2630
2681
|
}
|
|
2631
2682
|
while (s3 !== peg$FAILED) {
|
|
2632
2683
|
s2.push(s3);
|
|
@@ -2635,11 +2686,11 @@ function peg$parse(input, options) {
|
|
|
2635
2686
|
peg$currPos++;
|
|
2636
2687
|
} else {
|
|
2637
2688
|
s3 = peg$FAILED;
|
|
2638
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
2689
|
+
if (peg$silentFails === 0) { peg$fail(peg$e72); }
|
|
2639
2690
|
}
|
|
2640
2691
|
}
|
|
2641
2692
|
peg$savedPos = s0;
|
|
2642
|
-
s0 = peg$
|
|
2693
|
+
s0 = peg$f34();
|
|
2643
2694
|
} else {
|
|
2644
2695
|
peg$currPos = s0;
|
|
2645
2696
|
s0 = peg$FAILED;
|
|
@@ -2656,7 +2707,7 @@ function peg$parse(input, options) {
|
|
|
2656
2707
|
peg$currPos++;
|
|
2657
2708
|
} else {
|
|
2658
2709
|
s0 = peg$FAILED;
|
|
2659
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
2710
|
+
if (peg$silentFails === 0) { peg$fail(peg$e73); }
|
|
2660
2711
|
}
|
|
2661
2712
|
|
|
2662
2713
|
return s0;
|
|
@@ -2670,7 +2721,7 @@ function peg$parse(input, options) {
|
|
|
2670
2721
|
peg$currPos++;
|
|
2671
2722
|
} else {
|
|
2672
2723
|
s0 = peg$FAILED;
|
|
2673
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
2724
|
+
if (peg$silentFails === 0) { peg$fail(peg$e74); }
|
|
2674
2725
|
}
|
|
2675
2726
|
if (s0 === peg$FAILED) {
|
|
2676
2727
|
if (input.substr(peg$currPos, 2) === peg$c36) {
|
|
@@ -2678,7 +2729,7 @@ function peg$parse(input, options) {
|
|
|
2678
2729
|
peg$currPos += 2;
|
|
2679
2730
|
} else {
|
|
2680
2731
|
s0 = peg$FAILED;
|
|
2681
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
2732
|
+
if (peg$silentFails === 0) { peg$fail(peg$e75); }
|
|
2682
2733
|
}
|
|
2683
2734
|
}
|
|
2684
2735
|
|
|
@@ -2703,7 +2754,7 @@ function peg$parse(input, options) {
|
|
|
2703
2754
|
peg$currPos++;
|
|
2704
2755
|
} else {
|
|
2705
2756
|
s3 = peg$FAILED;
|
|
2706
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
2757
|
+
if (peg$silentFails === 0) { peg$fail(peg$e72); }
|
|
2707
2758
|
}
|
|
2708
2759
|
while (s3 !== peg$FAILED) {
|
|
2709
2760
|
s2.push(s3);
|
|
@@ -2712,11 +2763,11 @@ function peg$parse(input, options) {
|
|
|
2712
2763
|
peg$currPos++;
|
|
2713
2764
|
} else {
|
|
2714
2765
|
s3 = peg$FAILED;
|
|
2715
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
2766
|
+
if (peg$silentFails === 0) { peg$fail(peg$e72); }
|
|
2716
2767
|
}
|
|
2717
2768
|
}
|
|
2718
2769
|
peg$savedPos = s0;
|
|
2719
|
-
s0 = peg$
|
|
2770
|
+
s0 = peg$f35();
|
|
2720
2771
|
} else {
|
|
2721
2772
|
peg$currPos = s0;
|
|
2722
2773
|
s0 = peg$FAILED;
|
|
@@ -2735,7 +2786,7 @@ function peg$parse(input, options) {
|
|
|
2735
2786
|
peg$currPos++;
|
|
2736
2787
|
} else {
|
|
2737
2788
|
s1 = peg$FAILED;
|
|
2738
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
2789
|
+
if (peg$silentFails === 0) { peg$fail(peg$e77); }
|
|
2739
2790
|
}
|
|
2740
2791
|
if (s1 !== peg$FAILED) {
|
|
2741
2792
|
s2 = [];
|
|
@@ -2749,11 +2800,11 @@ function peg$parse(input, options) {
|
|
|
2749
2800
|
peg$currPos++;
|
|
2750
2801
|
} else {
|
|
2751
2802
|
s3 = peg$FAILED;
|
|
2752
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
2803
|
+
if (peg$silentFails === 0) { peg$fail(peg$e77); }
|
|
2753
2804
|
}
|
|
2754
2805
|
if (s3 !== peg$FAILED) {
|
|
2755
2806
|
peg$savedPos = s0;
|
|
2756
|
-
s0 = peg$
|
|
2807
|
+
s0 = peg$f36(s2);
|
|
2757
2808
|
} else {
|
|
2758
2809
|
peg$currPos = s0;
|
|
2759
2810
|
s0 = peg$FAILED;
|
|
@@ -2765,7 +2816,7 @@ function peg$parse(input, options) {
|
|
|
2765
2816
|
peg$silentFails--;
|
|
2766
2817
|
if (s0 === peg$FAILED) {
|
|
2767
2818
|
s1 = peg$FAILED;
|
|
2768
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
2819
|
+
if (peg$silentFails === 0) { peg$fail(peg$e76); }
|
|
2769
2820
|
}
|
|
2770
2821
|
|
|
2771
2822
|
return s0;
|
|
@@ -2782,7 +2833,7 @@ function peg$parse(input, options) {
|
|
|
2782
2833
|
peg$currPos++;
|
|
2783
2834
|
} else {
|
|
2784
2835
|
s2 = peg$FAILED;
|
|
2785
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
2836
|
+
if (peg$silentFails === 0) { peg$fail(peg$e77); }
|
|
2786
2837
|
}
|
|
2787
2838
|
if (s2 === peg$FAILED) {
|
|
2788
2839
|
s2 = peg$parsenewLine();
|
|
@@ -2819,7 +2870,7 @@ function peg$parse(input, options) {
|
|
|
2819
2870
|
s2 = peg$parsepipeline();
|
|
2820
2871
|
if (s2 !== peg$FAILED) {
|
|
2821
2872
|
peg$savedPos = s0;
|
|
2822
|
-
s0 = peg$
|
|
2873
|
+
s0 = peg$f37(s2);
|
|
2823
2874
|
} else {
|
|
2824
2875
|
peg$currPos = s0;
|
|
2825
2876
|
s0 = peg$FAILED;
|
|
@@ -2895,7 +2946,7 @@ function peg$parse(input, options) {
|
|
|
2895
2946
|
peg$silentFails--;
|
|
2896
2947
|
if (s0 === peg$FAILED) {
|
|
2897
2948
|
s1 = peg$FAILED;
|
|
2898
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
2949
|
+
if (peg$silentFails === 0) { peg$fail(peg$e78); }
|
|
2899
2950
|
}
|
|
2900
2951
|
|
|
2901
2952
|
return s0;
|
|
@@ -2908,11 +2959,11 @@ function peg$parse(input, options) {
|
|
|
2908
2959
|
s0 = peg$currPos;
|
|
2909
2960
|
s1 = peg$parsetemplateDocumentContents();
|
|
2910
2961
|
peg$savedPos = s0;
|
|
2911
|
-
s1 = peg$
|
|
2962
|
+
s1 = peg$f38(s1);
|
|
2912
2963
|
s0 = s1;
|
|
2913
2964
|
peg$silentFails--;
|
|
2914
2965
|
s1 = peg$FAILED;
|
|
2915
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
2966
|
+
if (peg$silentFails === 0) { peg$fail(peg$e79); }
|
|
2916
2967
|
|
|
2917
2968
|
return s0;
|
|
2918
2969
|
}
|
|
@@ -2928,7 +2979,7 @@ function peg$parse(input, options) {
|
|
|
2928
2979
|
peg$currPos += 2;
|
|
2929
2980
|
} else {
|
|
2930
2981
|
s2 = peg$FAILED;
|
|
2931
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
2982
|
+
if (peg$silentFails === 0) { peg$fail(peg$e80); }
|
|
2932
2983
|
}
|
|
2933
2984
|
peg$silentFails--;
|
|
2934
2985
|
if (s2 === peg$FAILED) {
|
|
@@ -2970,7 +3021,7 @@ function peg$parse(input, options) {
|
|
|
2970
3021
|
}
|
|
2971
3022
|
}
|
|
2972
3023
|
peg$savedPos = s0;
|
|
2973
|
-
s1 = peg$
|
|
3024
|
+
s1 = peg$f39(s1);
|
|
2974
3025
|
s0 = s1;
|
|
2975
3026
|
|
|
2976
3027
|
return s0;
|
|
@@ -2993,13 +3044,13 @@ function peg$parse(input, options) {
|
|
|
2993
3044
|
}
|
|
2994
3045
|
if (s1 !== peg$FAILED) {
|
|
2995
3046
|
peg$savedPos = s0;
|
|
2996
|
-
s1 = peg$
|
|
3047
|
+
s1 = peg$f40(s1);
|
|
2997
3048
|
}
|
|
2998
3049
|
s0 = s1;
|
|
2999
3050
|
peg$silentFails--;
|
|
3000
3051
|
if (s0 === peg$FAILED) {
|
|
3001
3052
|
s1 = peg$FAILED;
|
|
3002
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
3053
|
+
if (peg$silentFails === 0) { peg$fail(peg$e81); }
|
|
3003
3054
|
}
|
|
3004
3055
|
|
|
3005
3056
|
return s0;
|
|
@@ -3015,7 +3066,7 @@ function peg$parse(input, options) {
|
|
|
3015
3066
|
peg$currPos++;
|
|
3016
3067
|
} else {
|
|
3017
3068
|
s1 = peg$FAILED;
|
|
3018
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
3069
|
+
if (peg$silentFails === 0) { peg$fail(peg$e83); }
|
|
3019
3070
|
}
|
|
3020
3071
|
if (s1 !== peg$FAILED) {
|
|
3021
3072
|
s2 = peg$parsetemplateLiteralContents();
|
|
@@ -3024,7 +3075,7 @@ function peg$parse(input, options) {
|
|
|
3024
3075
|
peg$currPos++;
|
|
3025
3076
|
} else {
|
|
3026
3077
|
s3 = peg$FAILED;
|
|
3027
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
3078
|
+
if (peg$silentFails === 0) { peg$fail(peg$e83); }
|
|
3028
3079
|
}
|
|
3029
3080
|
if (s3 !== peg$FAILED) {
|
|
3030
3081
|
s0 = s2;
|
|
@@ -3039,7 +3090,7 @@ function peg$parse(input, options) {
|
|
|
3039
3090
|
peg$silentFails--;
|
|
3040
3091
|
if (s0 === peg$FAILED) {
|
|
3041
3092
|
s1 = peg$FAILED;
|
|
3042
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
3093
|
+
if (peg$silentFails === 0) { peg$fail(peg$e82); }
|
|
3043
3094
|
}
|
|
3044
3095
|
|
|
3045
3096
|
return s0;
|
|
@@ -3056,7 +3107,7 @@ function peg$parse(input, options) {
|
|
|
3056
3107
|
peg$currPos++;
|
|
3057
3108
|
} else {
|
|
3058
3109
|
s2 = peg$FAILED;
|
|
3059
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
3110
|
+
if (peg$silentFails === 0) { peg$fail(peg$e83); }
|
|
3060
3111
|
}
|
|
3061
3112
|
if (s2 === peg$FAILED) {
|
|
3062
3113
|
if (input.substr(peg$currPos, 2) === peg$c38) {
|
|
@@ -3064,7 +3115,7 @@ function peg$parse(input, options) {
|
|
|
3064
3115
|
peg$currPos += 2;
|
|
3065
3116
|
} else {
|
|
3066
3117
|
s2 = peg$FAILED;
|
|
3067
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
3118
|
+
if (peg$silentFails === 0) { peg$fail(peg$e80); }
|
|
3068
3119
|
}
|
|
3069
3120
|
}
|
|
3070
3121
|
peg$silentFails--;
|
|
@@ -3107,7 +3158,7 @@ function peg$parse(input, options) {
|
|
|
3107
3158
|
}
|
|
3108
3159
|
}
|
|
3109
3160
|
peg$savedPos = s0;
|
|
3110
|
-
s1 = peg$
|
|
3161
|
+
s1 = peg$f41(s1);
|
|
3111
3162
|
s0 = s1;
|
|
3112
3163
|
|
|
3113
3164
|
return s0;
|
|
@@ -3129,7 +3180,7 @@ function peg$parse(input, options) {
|
|
|
3129
3180
|
}
|
|
3130
3181
|
if (s1 !== peg$FAILED) {
|
|
3131
3182
|
peg$savedPos = s0;
|
|
3132
|
-
s1 = peg$
|
|
3183
|
+
s1 = peg$f42(s1);
|
|
3133
3184
|
}
|
|
3134
3185
|
s0 = s1;
|
|
3135
3186
|
|
|
@@ -3146,7 +3197,7 @@ function peg$parse(input, options) {
|
|
|
3146
3197
|
peg$currPos += 2;
|
|
3147
3198
|
} else {
|
|
3148
3199
|
s1 = peg$FAILED;
|
|
3149
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
3200
|
+
if (peg$silentFails === 0) { peg$fail(peg$e80); }
|
|
3150
3201
|
}
|
|
3151
3202
|
if (s1 !== peg$FAILED) {
|
|
3152
3203
|
s2 = peg$parse__();
|
|
@@ -3177,7 +3228,7 @@ function peg$parse(input, options) {
|
|
|
3177
3228
|
peg$silentFails--;
|
|
3178
3229
|
if (s0 === peg$FAILED) {
|
|
3179
3230
|
s1 = peg$FAILED;
|
|
3180
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
3231
|
+
if (peg$silentFails === 0) { peg$fail(peg$e84); }
|
|
3181
3232
|
}
|
|
3182
3233
|
|
|
3183
3234
|
return s0;
|
|
@@ -3299,6 +3350,7 @@ const peg$allowedStartRules = [
|
|
|
3299
3350
|
"objectEntry",
|
|
3300
3351
|
"objectGetter",
|
|
3301
3352
|
"objectIdentifier",
|
|
3353
|
+
"objectKey",
|
|
3302
3354
|
"objectProperty",
|
|
3303
3355
|
"parameterizedLambda",
|
|
3304
3356
|
"parensArgs",
|
|
@@ -23,10 +23,10 @@ export default async function expressionObject(entries, parent) {
|
|
|
23
23
|
// Create the object and set its parent
|
|
24
24
|
const object = {};
|
|
25
25
|
Object.defineProperty(object, symbols.parent, {
|
|
26
|
-
value: parent,
|
|
27
|
-
writable: true,
|
|
28
26
|
configurable: true,
|
|
29
27
|
enumerable: false,
|
|
28
|
+
value: parent,
|
|
29
|
+
writable: true,
|
|
30
30
|
});
|
|
31
31
|
|
|
32
32
|
let tree;
|
|
@@ -50,9 +50,21 @@ export default async function expressionObject(entries, parent) {
|
|
|
50
50
|
defineProperty = false;
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
+
let enumerable = true;
|
|
54
|
+
if (key[0] === "(" && key[key.length - 1] === ")") {
|
|
55
|
+
key = key.slice(1, -1);
|
|
56
|
+
enumerable = false;
|
|
57
|
+
}
|
|
58
|
+
|
|
53
59
|
if (defineProperty) {
|
|
54
60
|
// Define simple property
|
|
55
|
-
object[key] = value;
|
|
61
|
+
// object[key] = value;
|
|
62
|
+
Object.defineProperty(object, key, {
|
|
63
|
+
configurable: true,
|
|
64
|
+
enumerable,
|
|
65
|
+
value,
|
|
66
|
+
writable: true,
|
|
67
|
+
});
|
|
56
68
|
} else {
|
|
57
69
|
// Property getter
|
|
58
70
|
let code;
|
|
@@ -81,7 +93,7 @@ export default async function expressionObject(entries, parent) {
|
|
|
81
93
|
|
|
82
94
|
Object.defineProperty(object, key, {
|
|
83
95
|
configurable: true,
|
|
84
|
-
enumerable
|
|
96
|
+
enumerable,
|
|
85
97
|
get,
|
|
86
98
|
});
|
|
87
99
|
}
|
|
@@ -91,9 +103,11 @@ export default async function expressionObject(entries, parent) {
|
|
|
91
103
|
// and overwrite the property getter with the actual value.
|
|
92
104
|
for (const key of immediateProperties) {
|
|
93
105
|
const value = await object[key];
|
|
106
|
+
// @ts-ignore Unclear why TS thinks `object` might be undefined here
|
|
107
|
+
const enumerable = Object.getOwnPropertyDescriptor(object, key).enumerable;
|
|
94
108
|
Object.defineProperty(object, key, {
|
|
95
109
|
configurable: true,
|
|
96
|
-
enumerable
|
|
110
|
+
enumerable,
|
|
97
111
|
value,
|
|
98
112
|
writable: true,
|
|
99
113
|
});
|
|
@@ -63,4 +63,14 @@ describe("expressionObject", () => {
|
|
|
63
63
|
const json = await dataJson.unpack();
|
|
64
64
|
assert.deepEqual(json, { a: 1 });
|
|
65
65
|
});
|
|
66
|
+
|
|
67
|
+
test("a key declared with parentheses is not enumerable", async () => {
|
|
68
|
+
const entries = [
|
|
69
|
+
["(hidden)", "shh"],
|
|
70
|
+
["visible", "hey"],
|
|
71
|
+
];
|
|
72
|
+
const object = await expressionObject(entries, null);
|
|
73
|
+
assert.deepEqual(Object.keys(object), ["visible"]);
|
|
74
|
+
assert.equal(object["hidden"], "shh");
|
|
75
|
+
});
|
|
66
76
|
});
|