@weborigami/language 0.0.63 → 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": {
|
|
@@ -222,7 +222,7 @@ objectEntry
|
|
|
222
222
|
|
|
223
223
|
// A getter definition inside an object literal: `foo = 1`
|
|
224
224
|
objectGetter "object getter"
|
|
225
|
-
= key:
|
|
225
|
+
= key:objectKey __ "=" __ value:expr {
|
|
226
226
|
return annotate([key, [ops.getter, value]], location());
|
|
227
227
|
}
|
|
228
228
|
|
|
@@ -232,9 +232,13 @@ objectIdentifier "object identifier"
|
|
|
232
232
|
return annotate([key, [ops.inherited, key]], location());
|
|
233
233
|
}
|
|
234
234
|
|
|
235
|
+
objectKey "object key"
|
|
236
|
+
= hiddenKey:("(" identifierOrString ")") { return hiddenKey.join(""); }
|
|
237
|
+
/ identifierOrString
|
|
238
|
+
|
|
235
239
|
// A property definition in an object literal: `x: 1`
|
|
236
240
|
objectProperty "object property"
|
|
237
|
-
= @
|
|
241
|
+
= @objectKey __ ":" __ @expr
|
|
238
242
|
|
|
239
243
|
parameterizedLambda
|
|
240
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 }];
|
|
@@ -2028,7 +2030,7 @@ function peg$parse(input, options) {
|
|
|
2028
2030
|
|
|
2029
2031
|
peg$silentFails++;
|
|
2030
2032
|
s0 = peg$currPos;
|
|
2031
|
-
s1 = peg$
|
|
2033
|
+
s1 = peg$parseobjectKey();
|
|
2032
2034
|
if (s1 !== peg$FAILED) {
|
|
2033
2035
|
s2 = peg$parse__();
|
|
2034
2036
|
if (input.charCodeAt(peg$currPos) === 61) {
|
|
@@ -2085,12 +2087,67 @@ function peg$parse(input, options) {
|
|
|
2085
2087
|
return s0;
|
|
2086
2088
|
}
|
|
2087
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
|
+
|
|
2088
2145
|
function peg$parseobjectProperty() {
|
|
2089
2146
|
var s0, s1, s2, s3, s4, s5;
|
|
2090
2147
|
|
|
2091
2148
|
peg$silentFails++;
|
|
2092
2149
|
s0 = peg$currPos;
|
|
2093
|
-
s1 = peg$
|
|
2150
|
+
s1 = peg$parseobjectKey();
|
|
2094
2151
|
if (s1 !== peg$FAILED) {
|
|
2095
2152
|
s2 = peg$parse__();
|
|
2096
2153
|
if (input.charCodeAt(peg$currPos) === 58) {
|
|
@@ -2120,7 +2177,7 @@ function peg$parse(input, options) {
|
|
|
2120
2177
|
peg$silentFails--;
|
|
2121
2178
|
if (s0 === peg$FAILED) {
|
|
2122
2179
|
s1 = peg$FAILED;
|
|
2123
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
2180
|
+
if (peg$silentFails === 0) { peg$fail(peg$e54); }
|
|
2124
2181
|
}
|
|
2125
2182
|
|
|
2126
2183
|
return s0;
|
|
@@ -2159,7 +2216,7 @@ function peg$parse(input, options) {
|
|
|
2159
2216
|
s9 = peg$parsepipeline();
|
|
2160
2217
|
if (s9 !== peg$FAILED) {
|
|
2161
2218
|
peg$savedPos = s0;
|
|
2162
|
-
s0 = peg$
|
|
2219
|
+
s0 = peg$f21(s3, s9);
|
|
2163
2220
|
} else {
|
|
2164
2221
|
peg$currPos = s0;
|
|
2165
2222
|
s0 = peg$FAILED;
|
|
@@ -2208,7 +2265,7 @@ function peg$parse(input, options) {
|
|
|
2208
2265
|
}
|
|
2209
2266
|
if (s5 !== peg$FAILED) {
|
|
2210
2267
|
peg$savedPos = s0;
|
|
2211
|
-
s0 = peg$
|
|
2268
|
+
s0 = peg$f22(s3);
|
|
2212
2269
|
} else {
|
|
2213
2270
|
peg$currPos = s0;
|
|
2214
2271
|
s0 = peg$FAILED;
|
|
@@ -2220,7 +2277,7 @@ function peg$parse(input, options) {
|
|
|
2220
2277
|
peg$silentFails--;
|
|
2221
2278
|
if (s0 === peg$FAILED) {
|
|
2222
2279
|
s1 = peg$FAILED;
|
|
2223
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
2280
|
+
if (peg$silentFails === 0) { peg$fail(peg$e55); }
|
|
2224
2281
|
}
|
|
2225
2282
|
|
|
2226
2283
|
return s0;
|
|
@@ -2274,7 +2331,7 @@ function peg$parse(input, options) {
|
|
|
2274
2331
|
}
|
|
2275
2332
|
if (s1 !== peg$FAILED) {
|
|
2276
2333
|
peg$savedPos = s0;
|
|
2277
|
-
s1 = peg$
|
|
2334
|
+
s1 = peg$f23(s1);
|
|
2278
2335
|
}
|
|
2279
2336
|
s0 = s1;
|
|
2280
2337
|
|
|
@@ -2313,7 +2370,7 @@ function peg$parse(input, options) {
|
|
|
2313
2370
|
}
|
|
2314
2371
|
peg$silentFails--;
|
|
2315
2372
|
s1 = peg$FAILED;
|
|
2316
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
2373
|
+
if (peg$silentFails === 0) { peg$fail(peg$e56); }
|
|
2317
2374
|
|
|
2318
2375
|
return s0;
|
|
2319
2376
|
}
|
|
@@ -2330,11 +2387,11 @@ function peg$parse(input, options) {
|
|
|
2330
2387
|
s2 = peg$parsepathKeyChar();
|
|
2331
2388
|
}
|
|
2332
2389
|
peg$savedPos = s0;
|
|
2333
|
-
s1 = peg$
|
|
2390
|
+
s1 = peg$f24(s1);
|
|
2334
2391
|
s0 = s1;
|
|
2335
2392
|
peg$silentFails--;
|
|
2336
2393
|
s1 = peg$FAILED;
|
|
2337
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
2394
|
+
if (peg$silentFails === 0) { peg$fail(peg$e57); }
|
|
2338
2395
|
|
|
2339
2396
|
return s0;
|
|
2340
2397
|
}
|
|
@@ -2347,7 +2404,7 @@ function peg$parse(input, options) {
|
|
|
2347
2404
|
peg$currPos++;
|
|
2348
2405
|
} else {
|
|
2349
2406
|
s0 = peg$FAILED;
|
|
2350
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
2407
|
+
if (peg$silentFails === 0) { peg$fail(peg$e58); }
|
|
2351
2408
|
}
|
|
2352
2409
|
if (s0 === peg$FAILED) {
|
|
2353
2410
|
s0 = peg$parseescapedChar();
|
|
@@ -2400,7 +2457,7 @@ function peg$parse(input, options) {
|
|
|
2400
2457
|
s5 = null;
|
|
2401
2458
|
}
|
|
2402
2459
|
peg$savedPos = s0;
|
|
2403
|
-
s0 = peg$
|
|
2460
|
+
s0 = peg$f25(s1, s4, s5);
|
|
2404
2461
|
} else {
|
|
2405
2462
|
peg$currPos = s0;
|
|
2406
2463
|
s0 = peg$FAILED;
|
|
@@ -2416,7 +2473,7 @@ function peg$parse(input, options) {
|
|
|
2416
2473
|
peg$silentFails--;
|
|
2417
2474
|
if (s0 === peg$FAILED) {
|
|
2418
2475
|
s1 = peg$FAILED;
|
|
2419
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
2476
|
+
if (peg$silentFails === 0) { peg$fail(peg$e59); }
|
|
2420
2477
|
}
|
|
2421
2478
|
|
|
2422
2479
|
return s0;
|
|
@@ -2433,7 +2490,7 @@ function peg$parse(input, options) {
|
|
|
2433
2490
|
peg$silentFails--;
|
|
2434
2491
|
if (s0 === peg$FAILED) {
|
|
2435
2492
|
s1 = peg$FAILED;
|
|
2436
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
2493
|
+
if (peg$silentFails === 0) { peg$fail(peg$e60); }
|
|
2437
2494
|
}
|
|
2438
2495
|
|
|
2439
2496
|
return s0;
|
|
@@ -2449,11 +2506,11 @@ function peg$parse(input, options) {
|
|
|
2449
2506
|
peg$currPos += 5;
|
|
2450
2507
|
} else {
|
|
2451
2508
|
s1 = peg$FAILED;
|
|
2452
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
2509
|
+
if (peg$silentFails === 0) { peg$fail(peg$e62); }
|
|
2453
2510
|
}
|
|
2454
2511
|
if (s1 !== peg$FAILED) {
|
|
2455
2512
|
peg$savedPos = s0;
|
|
2456
|
-
s1 = peg$
|
|
2513
|
+
s1 = peg$f26();
|
|
2457
2514
|
}
|
|
2458
2515
|
s0 = s1;
|
|
2459
2516
|
if (s0 === peg$FAILED) {
|
|
@@ -2463,11 +2520,11 @@ function peg$parse(input, options) {
|
|
|
2463
2520
|
peg$currPos += 4;
|
|
2464
2521
|
} else {
|
|
2465
2522
|
s1 = peg$FAILED;
|
|
2466
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
2523
|
+
if (peg$silentFails === 0) { peg$fail(peg$e63); }
|
|
2467
2524
|
}
|
|
2468
2525
|
if (s1 !== peg$FAILED) {
|
|
2469
2526
|
peg$savedPos = s0;
|
|
2470
|
-
s1 = peg$
|
|
2527
|
+
s1 = peg$f27();
|
|
2471
2528
|
}
|
|
2472
2529
|
s0 = s1;
|
|
2473
2530
|
if (s0 === peg$FAILED) {
|
|
@@ -2477,11 +2534,11 @@ function peg$parse(input, options) {
|
|
|
2477
2534
|
peg$currPos += 3;
|
|
2478
2535
|
} else {
|
|
2479
2536
|
s1 = peg$FAILED;
|
|
2480
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
2537
|
+
if (peg$silentFails === 0) { peg$fail(peg$e64); }
|
|
2481
2538
|
}
|
|
2482
2539
|
if (s1 !== peg$FAILED) {
|
|
2483
2540
|
peg$savedPos = s0;
|
|
2484
|
-
s1 = peg$
|
|
2541
|
+
s1 = peg$f28();
|
|
2485
2542
|
}
|
|
2486
2543
|
s0 = s1;
|
|
2487
2544
|
if (s0 === peg$FAILED) {
|
|
@@ -2491,11 +2548,11 @@ function peg$parse(input, options) {
|
|
|
2491
2548
|
peg$currPos += 7;
|
|
2492
2549
|
} else {
|
|
2493
2550
|
s1 = peg$FAILED;
|
|
2494
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
2551
|
+
if (peg$silentFails === 0) { peg$fail(peg$e65); }
|
|
2495
2552
|
}
|
|
2496
2553
|
if (s1 !== peg$FAILED) {
|
|
2497
2554
|
peg$savedPos = s0;
|
|
2498
|
-
s1 = peg$
|
|
2555
|
+
s1 = peg$f29();
|
|
2499
2556
|
}
|
|
2500
2557
|
s0 = s1;
|
|
2501
2558
|
if (s0 === peg$FAILED) {
|
|
@@ -2505,11 +2562,11 @@ function peg$parse(input, options) {
|
|
|
2505
2562
|
peg$currPos += 9;
|
|
2506
2563
|
} else {
|
|
2507
2564
|
s1 = peg$FAILED;
|
|
2508
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
2565
|
+
if (peg$silentFails === 0) { peg$fail(peg$e66); }
|
|
2509
2566
|
}
|
|
2510
2567
|
if (s1 !== peg$FAILED) {
|
|
2511
2568
|
peg$savedPos = s0;
|
|
2512
|
-
s1 = peg$
|
|
2569
|
+
s1 = peg$f30();
|
|
2513
2570
|
}
|
|
2514
2571
|
s0 = s1;
|
|
2515
2572
|
if (s0 === peg$FAILED) {
|
|
@@ -2519,11 +2576,11 @@ function peg$parse(input, options) {
|
|
|
2519
2576
|
peg$currPos += 8;
|
|
2520
2577
|
} else {
|
|
2521
2578
|
s1 = peg$FAILED;
|
|
2522
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
2579
|
+
if (peg$silentFails === 0) { peg$fail(peg$e67); }
|
|
2523
2580
|
}
|
|
2524
2581
|
if (s1 !== peg$FAILED) {
|
|
2525
2582
|
peg$savedPos = s0;
|
|
2526
|
-
s1 = peg$
|
|
2583
|
+
s1 = peg$f31();
|
|
2527
2584
|
}
|
|
2528
2585
|
s0 = s1;
|
|
2529
2586
|
if (s0 === peg$FAILED) {
|
|
@@ -2533,11 +2590,11 @@ function peg$parse(input, options) {
|
|
|
2533
2590
|
peg$currPos += 4;
|
|
2534
2591
|
} else {
|
|
2535
2592
|
s1 = peg$FAILED;
|
|
2536
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
2593
|
+
if (peg$silentFails === 0) { peg$fail(peg$e68); }
|
|
2537
2594
|
}
|
|
2538
2595
|
if (s1 !== peg$FAILED) {
|
|
2539
2596
|
peg$savedPos = s0;
|
|
2540
|
-
s1 = peg$
|
|
2597
|
+
s1 = peg$f32();
|
|
2541
2598
|
}
|
|
2542
2599
|
s0 = s1;
|
|
2543
2600
|
}
|
|
@@ -2549,7 +2606,7 @@ function peg$parse(input, options) {
|
|
|
2549
2606
|
peg$silentFails--;
|
|
2550
2607
|
if (s0 === peg$FAILED) {
|
|
2551
2608
|
s1 = peg$FAILED;
|
|
2552
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
2609
|
+
if (peg$silentFails === 0) { peg$fail(peg$e61); }
|
|
2553
2610
|
}
|
|
2554
2611
|
|
|
2555
2612
|
return s0;
|
|
@@ -2563,13 +2620,13 @@ function peg$parse(input, options) {
|
|
|
2563
2620
|
s1 = peg$parseidentifier();
|
|
2564
2621
|
if (s1 !== peg$FAILED) {
|
|
2565
2622
|
peg$savedPos = s0;
|
|
2566
|
-
s1 = peg$
|
|
2623
|
+
s1 = peg$f33(s1);
|
|
2567
2624
|
}
|
|
2568
2625
|
s0 = s1;
|
|
2569
2626
|
peg$silentFails--;
|
|
2570
2627
|
if (s0 === peg$FAILED) {
|
|
2571
2628
|
s1 = peg$FAILED;
|
|
2572
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
2629
|
+
if (peg$silentFails === 0) { peg$fail(peg$e69); }
|
|
2573
2630
|
}
|
|
2574
2631
|
|
|
2575
2632
|
return s0;
|
|
@@ -2585,7 +2642,7 @@ function peg$parse(input, options) {
|
|
|
2585
2642
|
peg$currPos++;
|
|
2586
2643
|
} else {
|
|
2587
2644
|
s2 = peg$FAILED;
|
|
2588
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
2645
|
+
if (peg$silentFails === 0) { peg$fail(peg$e70); }
|
|
2589
2646
|
}
|
|
2590
2647
|
if (s2 !== peg$FAILED) {
|
|
2591
2648
|
s3 = peg$parse__();
|
|
@@ -2611,7 +2668,7 @@ function peg$parse(input, options) {
|
|
|
2611
2668
|
peg$currPos += 2;
|
|
2612
2669
|
} else {
|
|
2613
2670
|
s1 = peg$FAILED;
|
|
2614
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
2671
|
+
if (peg$silentFails === 0) { peg$fail(peg$e71); }
|
|
2615
2672
|
}
|
|
2616
2673
|
if (s1 !== peg$FAILED) {
|
|
2617
2674
|
s2 = [];
|
|
@@ -2620,7 +2677,7 @@ function peg$parse(input, options) {
|
|
|
2620
2677
|
peg$currPos++;
|
|
2621
2678
|
} else {
|
|
2622
2679
|
s3 = peg$FAILED;
|
|
2623
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
2680
|
+
if (peg$silentFails === 0) { peg$fail(peg$e72); }
|
|
2624
2681
|
}
|
|
2625
2682
|
while (s3 !== peg$FAILED) {
|
|
2626
2683
|
s2.push(s3);
|
|
@@ -2629,11 +2686,11 @@ function peg$parse(input, options) {
|
|
|
2629
2686
|
peg$currPos++;
|
|
2630
2687
|
} else {
|
|
2631
2688
|
s3 = peg$FAILED;
|
|
2632
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
2689
|
+
if (peg$silentFails === 0) { peg$fail(peg$e72); }
|
|
2633
2690
|
}
|
|
2634
2691
|
}
|
|
2635
2692
|
peg$savedPos = s0;
|
|
2636
|
-
s0 = peg$
|
|
2693
|
+
s0 = peg$f34();
|
|
2637
2694
|
} else {
|
|
2638
2695
|
peg$currPos = s0;
|
|
2639
2696
|
s0 = peg$FAILED;
|
|
@@ -2650,7 +2707,7 @@ function peg$parse(input, options) {
|
|
|
2650
2707
|
peg$currPos++;
|
|
2651
2708
|
} else {
|
|
2652
2709
|
s0 = peg$FAILED;
|
|
2653
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
2710
|
+
if (peg$silentFails === 0) { peg$fail(peg$e73); }
|
|
2654
2711
|
}
|
|
2655
2712
|
|
|
2656
2713
|
return s0;
|
|
@@ -2664,7 +2721,7 @@ function peg$parse(input, options) {
|
|
|
2664
2721
|
peg$currPos++;
|
|
2665
2722
|
} else {
|
|
2666
2723
|
s0 = peg$FAILED;
|
|
2667
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
2724
|
+
if (peg$silentFails === 0) { peg$fail(peg$e74); }
|
|
2668
2725
|
}
|
|
2669
2726
|
if (s0 === peg$FAILED) {
|
|
2670
2727
|
if (input.substr(peg$currPos, 2) === peg$c36) {
|
|
@@ -2672,7 +2729,7 @@ function peg$parse(input, options) {
|
|
|
2672
2729
|
peg$currPos += 2;
|
|
2673
2730
|
} else {
|
|
2674
2731
|
s0 = peg$FAILED;
|
|
2675
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
2732
|
+
if (peg$silentFails === 0) { peg$fail(peg$e75); }
|
|
2676
2733
|
}
|
|
2677
2734
|
}
|
|
2678
2735
|
|
|
@@ -2697,7 +2754,7 @@ function peg$parse(input, options) {
|
|
|
2697
2754
|
peg$currPos++;
|
|
2698
2755
|
} else {
|
|
2699
2756
|
s3 = peg$FAILED;
|
|
2700
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
2757
|
+
if (peg$silentFails === 0) { peg$fail(peg$e72); }
|
|
2701
2758
|
}
|
|
2702
2759
|
while (s3 !== peg$FAILED) {
|
|
2703
2760
|
s2.push(s3);
|
|
@@ -2706,11 +2763,11 @@ function peg$parse(input, options) {
|
|
|
2706
2763
|
peg$currPos++;
|
|
2707
2764
|
} else {
|
|
2708
2765
|
s3 = peg$FAILED;
|
|
2709
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
2766
|
+
if (peg$silentFails === 0) { peg$fail(peg$e72); }
|
|
2710
2767
|
}
|
|
2711
2768
|
}
|
|
2712
2769
|
peg$savedPos = s0;
|
|
2713
|
-
s0 = peg$
|
|
2770
|
+
s0 = peg$f35();
|
|
2714
2771
|
} else {
|
|
2715
2772
|
peg$currPos = s0;
|
|
2716
2773
|
s0 = peg$FAILED;
|
|
@@ -2729,7 +2786,7 @@ function peg$parse(input, options) {
|
|
|
2729
2786
|
peg$currPos++;
|
|
2730
2787
|
} else {
|
|
2731
2788
|
s1 = peg$FAILED;
|
|
2732
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
2789
|
+
if (peg$silentFails === 0) { peg$fail(peg$e77); }
|
|
2733
2790
|
}
|
|
2734
2791
|
if (s1 !== peg$FAILED) {
|
|
2735
2792
|
s2 = [];
|
|
@@ -2743,11 +2800,11 @@ function peg$parse(input, options) {
|
|
|
2743
2800
|
peg$currPos++;
|
|
2744
2801
|
} else {
|
|
2745
2802
|
s3 = peg$FAILED;
|
|
2746
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
2803
|
+
if (peg$silentFails === 0) { peg$fail(peg$e77); }
|
|
2747
2804
|
}
|
|
2748
2805
|
if (s3 !== peg$FAILED) {
|
|
2749
2806
|
peg$savedPos = s0;
|
|
2750
|
-
s0 = peg$
|
|
2807
|
+
s0 = peg$f36(s2);
|
|
2751
2808
|
} else {
|
|
2752
2809
|
peg$currPos = s0;
|
|
2753
2810
|
s0 = peg$FAILED;
|
|
@@ -2759,7 +2816,7 @@ function peg$parse(input, options) {
|
|
|
2759
2816
|
peg$silentFails--;
|
|
2760
2817
|
if (s0 === peg$FAILED) {
|
|
2761
2818
|
s1 = peg$FAILED;
|
|
2762
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
2819
|
+
if (peg$silentFails === 0) { peg$fail(peg$e76); }
|
|
2763
2820
|
}
|
|
2764
2821
|
|
|
2765
2822
|
return s0;
|
|
@@ -2776,7 +2833,7 @@ function peg$parse(input, options) {
|
|
|
2776
2833
|
peg$currPos++;
|
|
2777
2834
|
} else {
|
|
2778
2835
|
s2 = peg$FAILED;
|
|
2779
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
2836
|
+
if (peg$silentFails === 0) { peg$fail(peg$e77); }
|
|
2780
2837
|
}
|
|
2781
2838
|
if (s2 === peg$FAILED) {
|
|
2782
2839
|
s2 = peg$parsenewLine();
|
|
@@ -2813,7 +2870,7 @@ function peg$parse(input, options) {
|
|
|
2813
2870
|
s2 = peg$parsepipeline();
|
|
2814
2871
|
if (s2 !== peg$FAILED) {
|
|
2815
2872
|
peg$savedPos = s0;
|
|
2816
|
-
s0 = peg$
|
|
2873
|
+
s0 = peg$f37(s2);
|
|
2817
2874
|
} else {
|
|
2818
2875
|
peg$currPos = s0;
|
|
2819
2876
|
s0 = peg$FAILED;
|
|
@@ -2889,7 +2946,7 @@ function peg$parse(input, options) {
|
|
|
2889
2946
|
peg$silentFails--;
|
|
2890
2947
|
if (s0 === peg$FAILED) {
|
|
2891
2948
|
s1 = peg$FAILED;
|
|
2892
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
2949
|
+
if (peg$silentFails === 0) { peg$fail(peg$e78); }
|
|
2893
2950
|
}
|
|
2894
2951
|
|
|
2895
2952
|
return s0;
|
|
@@ -2902,11 +2959,11 @@ function peg$parse(input, options) {
|
|
|
2902
2959
|
s0 = peg$currPos;
|
|
2903
2960
|
s1 = peg$parsetemplateDocumentContents();
|
|
2904
2961
|
peg$savedPos = s0;
|
|
2905
|
-
s1 = peg$
|
|
2962
|
+
s1 = peg$f38(s1);
|
|
2906
2963
|
s0 = s1;
|
|
2907
2964
|
peg$silentFails--;
|
|
2908
2965
|
s1 = peg$FAILED;
|
|
2909
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
2966
|
+
if (peg$silentFails === 0) { peg$fail(peg$e79); }
|
|
2910
2967
|
|
|
2911
2968
|
return s0;
|
|
2912
2969
|
}
|
|
@@ -2922,7 +2979,7 @@ function peg$parse(input, options) {
|
|
|
2922
2979
|
peg$currPos += 2;
|
|
2923
2980
|
} else {
|
|
2924
2981
|
s2 = peg$FAILED;
|
|
2925
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
2982
|
+
if (peg$silentFails === 0) { peg$fail(peg$e80); }
|
|
2926
2983
|
}
|
|
2927
2984
|
peg$silentFails--;
|
|
2928
2985
|
if (s2 === peg$FAILED) {
|
|
@@ -2964,7 +3021,7 @@ function peg$parse(input, options) {
|
|
|
2964
3021
|
}
|
|
2965
3022
|
}
|
|
2966
3023
|
peg$savedPos = s0;
|
|
2967
|
-
s1 = peg$
|
|
3024
|
+
s1 = peg$f39(s1);
|
|
2968
3025
|
s0 = s1;
|
|
2969
3026
|
|
|
2970
3027
|
return s0;
|
|
@@ -2987,13 +3044,13 @@ function peg$parse(input, options) {
|
|
|
2987
3044
|
}
|
|
2988
3045
|
if (s1 !== peg$FAILED) {
|
|
2989
3046
|
peg$savedPos = s0;
|
|
2990
|
-
s1 = peg$
|
|
3047
|
+
s1 = peg$f40(s1);
|
|
2991
3048
|
}
|
|
2992
3049
|
s0 = s1;
|
|
2993
3050
|
peg$silentFails--;
|
|
2994
3051
|
if (s0 === peg$FAILED) {
|
|
2995
3052
|
s1 = peg$FAILED;
|
|
2996
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
3053
|
+
if (peg$silentFails === 0) { peg$fail(peg$e81); }
|
|
2997
3054
|
}
|
|
2998
3055
|
|
|
2999
3056
|
return s0;
|
|
@@ -3009,7 +3066,7 @@ function peg$parse(input, options) {
|
|
|
3009
3066
|
peg$currPos++;
|
|
3010
3067
|
} else {
|
|
3011
3068
|
s1 = peg$FAILED;
|
|
3012
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
3069
|
+
if (peg$silentFails === 0) { peg$fail(peg$e83); }
|
|
3013
3070
|
}
|
|
3014
3071
|
if (s1 !== peg$FAILED) {
|
|
3015
3072
|
s2 = peg$parsetemplateLiteralContents();
|
|
@@ -3018,7 +3075,7 @@ function peg$parse(input, options) {
|
|
|
3018
3075
|
peg$currPos++;
|
|
3019
3076
|
} else {
|
|
3020
3077
|
s3 = peg$FAILED;
|
|
3021
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
3078
|
+
if (peg$silentFails === 0) { peg$fail(peg$e83); }
|
|
3022
3079
|
}
|
|
3023
3080
|
if (s3 !== peg$FAILED) {
|
|
3024
3081
|
s0 = s2;
|
|
@@ -3033,7 +3090,7 @@ function peg$parse(input, options) {
|
|
|
3033
3090
|
peg$silentFails--;
|
|
3034
3091
|
if (s0 === peg$FAILED) {
|
|
3035
3092
|
s1 = peg$FAILED;
|
|
3036
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
3093
|
+
if (peg$silentFails === 0) { peg$fail(peg$e82); }
|
|
3037
3094
|
}
|
|
3038
3095
|
|
|
3039
3096
|
return s0;
|
|
@@ -3050,7 +3107,7 @@ function peg$parse(input, options) {
|
|
|
3050
3107
|
peg$currPos++;
|
|
3051
3108
|
} else {
|
|
3052
3109
|
s2 = peg$FAILED;
|
|
3053
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
3110
|
+
if (peg$silentFails === 0) { peg$fail(peg$e83); }
|
|
3054
3111
|
}
|
|
3055
3112
|
if (s2 === peg$FAILED) {
|
|
3056
3113
|
if (input.substr(peg$currPos, 2) === peg$c38) {
|
|
@@ -3058,7 +3115,7 @@ function peg$parse(input, options) {
|
|
|
3058
3115
|
peg$currPos += 2;
|
|
3059
3116
|
} else {
|
|
3060
3117
|
s2 = peg$FAILED;
|
|
3061
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
3118
|
+
if (peg$silentFails === 0) { peg$fail(peg$e80); }
|
|
3062
3119
|
}
|
|
3063
3120
|
}
|
|
3064
3121
|
peg$silentFails--;
|
|
@@ -3101,7 +3158,7 @@ function peg$parse(input, options) {
|
|
|
3101
3158
|
}
|
|
3102
3159
|
}
|
|
3103
3160
|
peg$savedPos = s0;
|
|
3104
|
-
s1 = peg$
|
|
3161
|
+
s1 = peg$f41(s1);
|
|
3105
3162
|
s0 = s1;
|
|
3106
3163
|
|
|
3107
3164
|
return s0;
|
|
@@ -3123,7 +3180,7 @@ function peg$parse(input, options) {
|
|
|
3123
3180
|
}
|
|
3124
3181
|
if (s1 !== peg$FAILED) {
|
|
3125
3182
|
peg$savedPos = s0;
|
|
3126
|
-
s1 = peg$
|
|
3183
|
+
s1 = peg$f42(s1);
|
|
3127
3184
|
}
|
|
3128
3185
|
s0 = s1;
|
|
3129
3186
|
|
|
@@ -3140,7 +3197,7 @@ function peg$parse(input, options) {
|
|
|
3140
3197
|
peg$currPos += 2;
|
|
3141
3198
|
} else {
|
|
3142
3199
|
s1 = peg$FAILED;
|
|
3143
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
3200
|
+
if (peg$silentFails === 0) { peg$fail(peg$e80); }
|
|
3144
3201
|
}
|
|
3145
3202
|
if (s1 !== peg$FAILED) {
|
|
3146
3203
|
s2 = peg$parse__();
|
|
@@ -3171,7 +3228,7 @@ function peg$parse(input, options) {
|
|
|
3171
3228
|
peg$silentFails--;
|
|
3172
3229
|
if (s0 === peg$FAILED) {
|
|
3173
3230
|
s1 = peg$FAILED;
|
|
3174
|
-
if (peg$silentFails === 0) { peg$fail(peg$
|
|
3231
|
+
if (peg$silentFails === 0) { peg$fail(peg$e84); }
|
|
3175
3232
|
}
|
|
3176
3233
|
|
|
3177
3234
|
return s0;
|
|
@@ -3293,6 +3350,7 @@ const peg$allowedStartRules = [
|
|
|
3293
3350
|
"objectEntry",
|
|
3294
3351
|
"objectGetter",
|
|
3295
3352
|
"objectIdentifier",
|
|
3353
|
+
"objectKey",
|
|
3296
3354
|
"objectProperty",
|
|
3297
3355
|
"parameterizedLambda",
|
|
3298
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
|
});
|