@weborigami/language 0.0.50 → 0.0.52

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.
@@ -12,7 +12,7 @@
12
12
  //
13
13
 
14
14
  import * as ops from "../runtime/ops.js";
15
- import { makeFunctionCall, makePipeline, makeTemplate } from "./parserHelpers.js";
15
+ import { makeFunctionCall, makeObject, makePipeline, makeTemplate } from "./parserHelpers.js";
16
16
 
17
17
  // If a parse result is an object that will be evaluated at runtime, attach the
18
18
  // location of the source code that produced it for debugging and error messages.
@@ -193,45 +193,47 @@ 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, assignment: peg$parseassignment, assignmentOrShorthand: peg$parseassignmentOrShorthand, 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, escapedChar: peg$parseescapedChar, expr: peg$parseexpr, expression: peg$parseexpression, float: peg$parsefloat, functionComposition: peg$parsefunctionComposition, group: peg$parsegroup, host: peg$parsehost, identifier: peg$parseidentifier, identifierChar: peg$parseidentifierChar, identifierList: peg$parseidentifierList, implicitParensArgs: peg$parseimplicitParensArgs, inlineSpace: peg$parseinlineSpace, integer: peg$parseinteger, lambda: peg$parselambda, leadingSlashPath: peg$parseleadingSlashPath, list: peg$parselist, multiLineComment: peg$parsemultiLineComment, newLine: peg$parsenewLine, number: peg$parsenumber, object: peg$parseobject, objectProperties: peg$parseobjectProperties, objectProperty: peg$parseobjectProperty, objectPropertyOrShorthand: peg$parseobjectPropertyOrShorthand, parameterizedLambda: peg$parseparameterizedLambda, parensArgs: peg$parseparensArgs, pipeline: peg$parsepipeline, path: peg$parsepath, pathKey: peg$parsepathKey, 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, 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, tree: peg$parsetree, treeAssignments: peg$parsetreeAssignments, whitespaceWithNewLine: peg$parsewhitespaceWithNewLine };
196
+ var peg$startRuleFunctions = { __: peg$parse__, absoluteFilePath: peg$parseabsoluteFilePath, args: peg$parseargs, array: peg$parsearray, 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, host: peg$parsehost, identifier: peg$parseidentifier, identifierChar: peg$parseidentifierChar, identifierList: peg$parseidentifierList, implicitParensArgs: peg$parseimplicitParensArgs, inlineSpace: peg$parseinlineSpace, integer: peg$parseinteger, lambda: peg$parselambda, leadingSlashPath: peg$parseleadingSlashPath, list: peg$parselist, multiLineComment: peg$parsemultiLineComment, newLine: peg$parsenewLine, number: peg$parsenumber, object: peg$parseobject, objectEntries: peg$parseobjectEntries, objectEntry: peg$parseobjectEntry, objectProperty: peg$parseobjectProperty, parameterizedLambda: peg$parseparameterizedLambda, parensArgs: peg$parseparensArgs, pipeline: peg$parsepipeline, path: peg$parsepath, pathKey: peg$parsepathKey, 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, tree: peg$parsetree, treeAssignment: peg$parsetreeAssignment, treeEntries: peg$parsetreeEntries, treeEntry: peg$parsetreeEntry, whitespaceWithNewLine: peg$parsewhitespaceWithNewLine };
197
197
  var peg$startRuleFunction = peg$parse__;
198
198
 
199
199
  var peg$c0 = "//";
200
200
  var peg$c1 = "[";
201
- var peg$c2 = "=";
202
- var peg$c3 = "}";
203
- var peg$c4 = "]";
204
- var peg$c5 = ")";
205
- var peg$c6 = "\u21D2";
206
- var peg$c7 = "=>";
207
- var peg$c8 = "\"";
208
- var peg$c9 = "\\";
209
- var peg$c10 = ".";
210
- var peg$c11 = "(";
211
- var peg$c12 = ":";
212
- var peg$c13 = "-";
213
- var peg$c14 = ">";
214
- var peg$c15 = "/";
215
- var peg$c16 = "/*";
216
- var peg$c17 = "*/";
217
- var peg$c18 = "\n";
218
- var peg$c19 = "\r\n";
219
- var peg$c20 = "\r";
220
- var peg$c21 = "{";
221
- var peg$c22 = "https";
222
- var peg$c23 = "http";
223
- var peg$c24 = "new";
224
- var peg$c25 = "package";
225
- var peg$c26 = "treehttps";
226
- var peg$c27 = "treehttp";
227
- var peg$c28 = "tree";
228
- var peg$c29 = ",";
229
- var peg$c30 = "#!";
230
- var peg$c31 = "\u2192";
231
- var peg$c32 = "->";
232
- var peg$c33 = "'";
233
- var peg$c34 = "${";
234
- var peg$c35 = "`";
201
+ var peg$c2 = "}";
202
+ var peg$c3 = "]";
203
+ var peg$c4 = ")";
204
+ var peg$c5 = "\u21D2";
205
+ var peg$c6 = "=>";
206
+ var peg$c7 = "\"";
207
+ var peg$c8 = "...";
208
+ var peg$c9 = "\u2026";
209
+ var peg$c10 = "\\";
210
+ var peg$c11 = ".";
211
+ var peg$c12 = "(";
212
+ var peg$c13 = ":";
213
+ var peg$c14 = "-";
214
+ var peg$c15 = ">";
215
+ var peg$c16 = "=";
216
+ var peg$c17 = "/";
217
+ var peg$c18 = "/*";
218
+ var peg$c19 = "*/";
219
+ var peg$c20 = "\n";
220
+ var peg$c21 = "\r\n";
221
+ var peg$c22 = "\r";
222
+ var peg$c23 = "{";
223
+ var peg$c24 = "https";
224
+ var peg$c25 = "http";
225
+ var peg$c26 = "new";
226
+ var peg$c27 = "package";
227
+ var peg$c28 = "treehttps";
228
+ var peg$c29 = "treehttp";
229
+ var peg$c30 = "tree";
230
+ var peg$c31 = ",";
231
+ var peg$c32 = "#!";
232
+ var peg$c33 = "\u2192";
233
+ var peg$c34 = "->";
234
+ var peg$c35 = "'";
235
+ var peg$c36 = "${";
236
+ var peg$c37 = "`";
235
237
 
236
238
  var peg$r0 = /^[0-9]/;
237
239
  var peg$r1 = /^[^(){}[\]<>\-=,\/:`"'\\ \u2192\u21D2\t\n\r]/;
@@ -244,19 +246,19 @@ function peg$parse(input, options) {
244
246
  var peg$e2 = peg$otherExpectation("function arguments");
245
247
  var peg$e3 = peg$otherExpectation("array");
246
248
  var peg$e4 = peg$literalExpectation("[", false);
247
- var peg$e5 = peg$otherExpectation("tree assignment");
248
- var peg$e6 = peg$literalExpectation("=", false);
249
- var peg$e7 = peg$otherExpectation("function call");
250
- var peg$e8 = peg$literalExpectation("}", false);
251
- var peg$e9 = peg$anyExpectation();
252
- var peg$e10 = peg$literalExpectation("]", false);
253
- var peg$e11 = peg$literalExpectation(")", false);
254
- var peg$e12 = peg$otherExpectation("comment");
255
- var peg$e13 = peg$classExpectation([["0", "9"]], false, false);
256
- var peg$e14 = peg$literalExpectation("\u21D2", false);
257
- var peg$e15 = peg$literalExpectation("=>", false);
258
- var peg$e16 = peg$otherExpectation("double quote string");
259
- var peg$e17 = peg$literalExpectation("\"", false);
249
+ var peg$e5 = peg$otherExpectation("function call");
250
+ var peg$e6 = peg$literalExpectation("}", false);
251
+ var peg$e7 = peg$anyExpectation();
252
+ var peg$e8 = peg$literalExpectation("]", false);
253
+ var peg$e9 = peg$literalExpectation(")", false);
254
+ var peg$e10 = peg$otherExpectation("comment");
255
+ var peg$e11 = peg$classExpectation([["0", "9"]], false, false);
256
+ var peg$e12 = peg$literalExpectation("\u21D2", false);
257
+ var peg$e13 = peg$literalExpectation("=>", false);
258
+ var peg$e14 = peg$otherExpectation("double quote string");
259
+ var peg$e15 = peg$literalExpectation("\"", false);
260
+ var peg$e16 = peg$literalExpectation("...", false);
261
+ var peg$e17 = peg$literalExpectation("\u2026", false);
260
262
  var peg$e18 = peg$otherExpectation("backslash-escaped character");
261
263
  var peg$e19 = peg$literalExpectation("\\", false);
262
264
  var peg$e20 = peg$otherExpectation("Origami expression");
@@ -275,48 +277,50 @@ function peg$parse(input, options) {
275
277
  var peg$e33 = peg$classExpectation([" ", "\t"], false, false);
276
278
  var peg$e34 = peg$otherExpectation("integer");
277
279
  var peg$e35 = peg$otherExpectation("lambda function");
278
- var peg$e36 = peg$otherExpectation("path with a leading slash");
279
- var peg$e37 = peg$literalExpectation("/", false);
280
- var peg$e38 = peg$otherExpectation("list");
281
- var peg$e39 = peg$literalExpectation("/*", false);
282
- var peg$e40 = peg$literalExpectation("*/", false);
283
- var peg$e41 = peg$literalExpectation("\n", false);
284
- var peg$e42 = peg$literalExpectation("\r\n", false);
285
- var peg$e43 = peg$literalExpectation("\r", false);
286
- var peg$e44 = peg$otherExpectation("number");
287
- var peg$e45 = peg$otherExpectation("object literal");
288
- var peg$e46 = peg$literalExpectation("{", false);
289
- var peg$e47 = peg$otherExpectation("object property");
290
- var peg$e48 = peg$otherExpectation("function arguments in parentheses");
291
- var peg$e49 = peg$otherExpectation("slash-separated path");
292
- var peg$e50 = peg$otherExpectation("path element");
293
- var peg$e51 = peg$otherExpectation("function call using protocol: syntax");
294
- var peg$e52 = peg$otherExpectation("protocol");
295
- var peg$e53 = peg$otherExpectation("reserved protocol");
296
- var peg$e54 = peg$literalExpectation("https", false);
297
- var peg$e55 = peg$literalExpectation("http", false);
298
- var peg$e56 = peg$literalExpectation("new", false);
299
- var peg$e57 = peg$literalExpectation("package", false);
300
- var peg$e58 = peg$literalExpectation("treehttps", false);
301
- var peg$e59 = peg$literalExpectation("treehttp", false);
302
- var peg$e60 = peg$literalExpectation("tree", false);
303
- var peg$e61 = peg$otherExpectation("scope reference");
304
- var peg$e62 = peg$literalExpectation(",", false);
305
- var peg$e63 = peg$literalExpectation("#!", false);
306
- var peg$e64 = peg$classExpectation(["\n", "\r"], true, false);
307
- var peg$e65 = peg$classExpectation(["+", "-"], false, false);
308
- var peg$e66 = peg$literalExpectation("\u2192", false);
309
- var peg$e67 = peg$literalExpectation("->", false);
310
- var peg$e68 = peg$otherExpectation("single quote string");
311
- var peg$e69 = peg$literalExpectation("'", false);
312
- var peg$e70 = peg$otherExpectation("string");
313
- var peg$e71 = peg$otherExpectation("template");
314
- var peg$e72 = peg$literalExpectation("${", false);
315
- var peg$e73 = peg$otherExpectation("template text");
316
- var peg$e74 = peg$otherExpectation("template literal");
317
- var peg$e75 = peg$literalExpectation("`", false);
318
- var peg$e76 = peg$otherExpectation("template substitution");
319
- var peg$e77 = peg$otherExpectation("tree literal");
280
+ var peg$e36 = peg$literalExpectation("=", false);
281
+ var peg$e37 = peg$otherExpectation("path with a leading slash");
282
+ var peg$e38 = peg$literalExpectation("/", false);
283
+ var peg$e39 = peg$otherExpectation("list");
284
+ var peg$e40 = peg$literalExpectation("/*", false);
285
+ var peg$e41 = peg$literalExpectation("*/", false);
286
+ var peg$e42 = peg$literalExpectation("\n", false);
287
+ var peg$e43 = peg$literalExpectation("\r\n", false);
288
+ var peg$e44 = peg$literalExpectation("\r", false);
289
+ var peg$e45 = peg$otherExpectation("number");
290
+ var peg$e46 = peg$otherExpectation("object literal");
291
+ var peg$e47 = peg$literalExpectation("{", false);
292
+ var peg$e48 = peg$otherExpectation("object property");
293
+ var peg$e49 = peg$otherExpectation("function arguments in parentheses");
294
+ var peg$e50 = peg$otherExpectation("slash-separated path");
295
+ var peg$e51 = peg$otherExpectation("path element");
296
+ var peg$e52 = peg$otherExpectation("function call using protocol: syntax");
297
+ var peg$e53 = peg$otherExpectation("protocol");
298
+ var peg$e54 = peg$otherExpectation("reserved protocol");
299
+ var peg$e55 = peg$literalExpectation("https", false);
300
+ var peg$e56 = peg$literalExpectation("http", false);
301
+ var peg$e57 = peg$literalExpectation("new", false);
302
+ var peg$e58 = peg$literalExpectation("package", false);
303
+ var peg$e59 = peg$literalExpectation("treehttps", false);
304
+ var peg$e60 = peg$literalExpectation("treehttp", false);
305
+ var peg$e61 = peg$literalExpectation("tree", false);
306
+ var peg$e62 = peg$otherExpectation("scope reference");
307
+ var peg$e63 = peg$literalExpectation(",", false);
308
+ var peg$e64 = peg$literalExpectation("#!", false);
309
+ var peg$e65 = peg$classExpectation(["\n", "\r"], true, false);
310
+ var peg$e66 = peg$classExpectation(["+", "-"], false, false);
311
+ var peg$e67 = peg$literalExpectation("\u2192", false);
312
+ var peg$e68 = peg$literalExpectation("->", false);
313
+ var peg$e69 = peg$otherExpectation("single quote string");
314
+ var peg$e70 = peg$literalExpectation("'", false);
315
+ var peg$e71 = peg$otherExpectation("string");
316
+ var peg$e72 = peg$otherExpectation("template");
317
+ var peg$e73 = peg$literalExpectation("${", false);
318
+ var peg$e74 = peg$otherExpectation("template text");
319
+ var peg$e75 = peg$otherExpectation("template literal");
320
+ var peg$e76 = peg$literalExpectation("`", false);
321
+ var peg$e77 = peg$otherExpectation("template substitution");
322
+ var peg$e78 = peg$otherExpectation("tree literal");
323
+ var peg$e79 = peg$otherExpectation("tree assignment");
320
324
 
321
325
  var peg$f0 = function() { return ""; };
322
326
  var peg$f1 = function(path) {
@@ -328,70 +332,68 @@ function peg$parse(input, options) {
328
332
  var peg$f3 = function(list) {
329
333
  return annotate([ops.array, ...(list ?? [])], location());
330
334
  };
331
- var peg$f4 = function(key) {
332
- return annotate([key, [ops.inherited, key]], location());
333
- };
334
- var peg$f5 = function() {
335
+ var peg$f4 = function() {
335
336
  error("Expected right curly brace");
336
337
  };
337
- var peg$f6 = function() {
338
+ var peg$f5 = function() {
338
339
  error("Expected right bracket");
339
340
  };
340
- var peg$f7 = function() {
341
+ var peg$f6 = function() {
341
342
  error("Expected right parenthesis");
342
343
  };
343
- var peg$f8 = function(chars) { return chars.join(""); };
344
- var peg$f9 = function() {
344
+ var peg$f7 = function(chars) { return chars.join(""); };
345
+ var peg$f8 = function() {
345
346
  return parseFloat(text());
346
347
  };
347
- var peg$f10 = function(target, chain, end) {
348
+ var peg$f9 = function(target, chain, end) {
348
349
  if (end) {
349
350
  chain.push(end);
350
351
  }
351
352
  return annotate(makeFunctionCall(target, chain), location());
352
353
  };
353
- var peg$f11 = function() { return text(); };
354
- var peg$f12 = function(chars) { return chars.join(""); };
355
- var peg$f13 = function() {
354
+ var peg$f10 = function() { return text(); };
355
+ var peg$f11 = function(chars) { return chars.join(""); };
356
+ var peg$f12 = function() {
356
357
  return parseInt(text());
357
358
  };
358
- var peg$f14 = function(expr) {
359
+ var peg$f13 = function(expr) {
359
360
  return annotate([ops.lambda, null, expr], location());
360
361
  };
361
- var peg$f15 = function() { return annotate([""], location()); };
362
- var peg$f16 = function() { return null; };
363
- var peg$f17 = function(properties) {
364
- return annotate([ops.object, ...(properties ?? [])], location());
362
+ var peg$f14 = function() { return annotate([""], location()); };
363
+ var peg$f15 = function() { return null; };
364
+ var peg$f16 = function(entries) {
365
+ return annotate(makeObject(entries ?? [], ops.object), location());
365
366
  };
366
- var peg$f18 = function(key) {
367
+ var peg$f17 = function(key) {
367
368
  return annotate([key, [ops.scope, key]], location());
368
369
  };
369
- var peg$f19 = function(parameters, expr) {
370
+ var peg$f18 = function(parameters, expr) {
370
371
  return annotate([ops.lambda, parameters ?? [], expr], location());
371
372
  };
372
- var peg$f20 = function(list) {
373
+ var peg$f19 = function(list) {
373
374
  return list ?? annotate([undefined], location());
374
375
  };
375
- var peg$f21 = function(steps) {
376
+ var peg$f20 = function(steps) {
376
377
  return annotate(makePipeline(steps), location());
377
378
  };
378
- var peg$f22 = function(key) { return key.join(""); };
379
- var peg$f23 = function(protocol, host, path) {
379
+ var peg$f21 = function(key) { return key.join(""); };
380
+ var peg$f22 = function(protocol, host, path) {
380
381
  return annotate([protocol, host, ...(path ?? [])], location());
381
382
  };
382
- var peg$f24 = function() { return ops.https; };
383
- var peg$f25 = function() { return ops.http; };
384
- var peg$f26 = function() { return ops.constructor; };
385
- var peg$f27 = function() { return [ops.scope, "@package"] };
386
- var peg$f28 = function() { return ops.treeHttps; };
387
- var peg$f29 = function() { return ops.treeHttp; };
388
- var peg$f30 = function() { return ops.treeHttps; };
389
- var peg$f31 = function(key) {
383
+ var peg$f23 = function() { return ops.https; };
384
+ var peg$f24 = function() { return ops.http; };
385
+ var peg$f25 = function() { return ops.constructor; };
386
+ var peg$f26 = function() { return [ops.scope, "@package"] };
387
+ var peg$f27 = function() { return ops.treeHttps; };
388
+ var peg$f28 = function() { return ops.treeHttp; };
389
+ var peg$f29 = function() { return ops.treeHttps; };
390
+ var peg$f30 = function(key) {
390
391
  return annotate([ops.scope, key], location());
391
392
  };
393
+ var peg$f31 = function() { return null; };
392
394
  var peg$f32 = function() { return null; };
393
- var peg$f33 = function() { return null; };
394
- var peg$f34 = function(chars) { return chars.join(""); };
395
+ var peg$f33 = function(chars) { return chars.join(""); };
396
+ var peg$f34 = function(expr) { return [ops.spread, expr]; };
395
397
  var peg$f35 = function(contents) {
396
398
  return annotate([ops.lambda, null, contents], location());
397
399
  };
@@ -403,8 +405,11 @@ function peg$parse(input, options) {
403
405
  return annotate(makeTemplate(parts), location());
404
406
  };
405
407
  var peg$f39 = function(chars) { return chars.join(""); };
406
- var peg$f40 = function(assignments) {
407
- return annotate([ops.tree, ...(assignments ?? [])], location());
408
+ var peg$f40 = function(entries) {
409
+ return annotate(makeObject(entries ?? [], ops.tree), location());
410
+ };
411
+ var peg$f41 = function(key) {
412
+ return annotate([key, [ops.inherited, key]], location());
408
413
  };
409
414
  var peg$currPos = options.peg$currPos | 0;
410
415
  var peg$savedPos = peg$currPos;
@@ -703,64 +708,6 @@ function peg$parse(input, options) {
703
708
  return s0;
704
709
  }
705
710
 
706
- function peg$parseassignment() {
707
- var s0, s1, s2, s3, s4, s5;
708
-
709
- peg$silentFails++;
710
- s0 = peg$currPos;
711
- s1 = peg$parseidentifier();
712
- if (s1 !== peg$FAILED) {
713
- s2 = peg$parse__();
714
- if (input.charCodeAt(peg$currPos) === 61) {
715
- s3 = peg$c2;
716
- peg$currPos++;
717
- } else {
718
- s3 = peg$FAILED;
719
- if (peg$silentFails === 0) { peg$fail(peg$e6); }
720
- }
721
- if (s3 !== peg$FAILED) {
722
- s4 = peg$parse__();
723
- s5 = peg$parsepipeline();
724
- if (s5 !== peg$FAILED) {
725
- s0 = [ s1, s5 ];
726
- } else {
727
- peg$currPos = s0;
728
- s0 = peg$FAILED;
729
- }
730
- } else {
731
- peg$currPos = s0;
732
- s0 = peg$FAILED;
733
- }
734
- } else {
735
- peg$currPos = s0;
736
- s0 = peg$FAILED;
737
- }
738
- peg$silentFails--;
739
- if (s0 === peg$FAILED) {
740
- s1 = peg$FAILED;
741
- if (peg$silentFails === 0) { peg$fail(peg$e5); }
742
- }
743
-
744
- return s0;
745
- }
746
-
747
- function peg$parseassignmentOrShorthand() {
748
- var s0, s1;
749
-
750
- s0 = peg$parseassignment();
751
- if (s0 === peg$FAILED) {
752
- s0 = peg$currPos;
753
- s1 = peg$parseidentifier();
754
- if (s1 !== peg$FAILED) {
755
- peg$savedPos = s0;
756
- s1 = peg$f4(s1);
757
- }
758
- s0 = s1;
759
- }
760
-
761
- return s0;
762
- }
763
-
764
711
  function peg$parsecallTarget() {
765
712
  var s0, s1;
766
713
 
@@ -793,7 +740,7 @@ function peg$parse(input, options) {
793
740
  peg$silentFails--;
794
741
  if (s0 === peg$FAILED) {
795
742
  s1 = peg$FAILED;
796
- if (peg$silentFails === 0) { peg$fail(peg$e7); }
743
+ if (peg$silentFails === 0) { peg$fail(peg$e5); }
797
744
  }
798
745
 
799
746
  return s0;
@@ -803,11 +750,11 @@ function peg$parse(input, options) {
803
750
  var s0, s1;
804
751
 
805
752
  if (input.charCodeAt(peg$currPos) === 125) {
806
- s0 = peg$c3;
753
+ s0 = peg$c2;
807
754
  peg$currPos++;
808
755
  } else {
809
756
  s0 = peg$FAILED;
810
- if (peg$silentFails === 0) { peg$fail(peg$e8); }
757
+ if (peg$silentFails === 0) { peg$fail(peg$e6); }
811
758
  }
812
759
  if (s0 === peg$FAILED) {
813
760
  s0 = peg$currPos;
@@ -816,13 +763,13 @@ function peg$parse(input, options) {
816
763
  peg$currPos++;
817
764
  } else {
818
765
  s1 = peg$FAILED;
819
- if (peg$silentFails === 0) { peg$fail(peg$e9); }
766
+ if (peg$silentFails === 0) { peg$fail(peg$e7); }
820
767
  }
821
768
  if (s1 === peg$FAILED) {
822
769
  s1 = null;
823
770
  }
824
771
  peg$savedPos = s0;
825
- s1 = peg$f5();
772
+ s1 = peg$f4();
826
773
  s0 = s1;
827
774
  }
828
775
 
@@ -833,11 +780,11 @@ function peg$parse(input, options) {
833
780
  var s0, s1;
834
781
 
835
782
  if (input.charCodeAt(peg$currPos) === 93) {
836
- s0 = peg$c4;
783
+ s0 = peg$c3;
837
784
  peg$currPos++;
838
785
  } else {
839
786
  s0 = peg$FAILED;
840
- if (peg$silentFails === 0) { peg$fail(peg$e10); }
787
+ if (peg$silentFails === 0) { peg$fail(peg$e8); }
841
788
  }
842
789
  if (s0 === peg$FAILED) {
843
790
  s0 = peg$currPos;
@@ -846,13 +793,13 @@ function peg$parse(input, options) {
846
793
  peg$currPos++;
847
794
  } else {
848
795
  s1 = peg$FAILED;
849
- if (peg$silentFails === 0) { peg$fail(peg$e9); }
796
+ if (peg$silentFails === 0) { peg$fail(peg$e7); }
850
797
  }
851
798
  if (s1 === peg$FAILED) {
852
799
  s1 = null;
853
800
  }
854
801
  peg$savedPos = s0;
855
- s1 = peg$f6();
802
+ s1 = peg$f5();
856
803
  s0 = s1;
857
804
  }
858
805
 
@@ -863,11 +810,11 @@ function peg$parse(input, options) {
863
810
  var s0, s1;
864
811
 
865
812
  if (input.charCodeAt(peg$currPos) === 41) {
866
- s0 = peg$c5;
813
+ s0 = peg$c4;
867
814
  peg$currPos++;
868
815
  } else {
869
816
  s0 = peg$FAILED;
870
- if (peg$silentFails === 0) { peg$fail(peg$e11); }
817
+ if (peg$silentFails === 0) { peg$fail(peg$e9); }
871
818
  }
872
819
  if (s0 === peg$FAILED) {
873
820
  s0 = peg$currPos;
@@ -876,13 +823,13 @@ function peg$parse(input, options) {
876
823
  peg$currPos++;
877
824
  } else {
878
825
  s1 = peg$FAILED;
879
- if (peg$silentFails === 0) { peg$fail(peg$e9); }
826
+ if (peg$silentFails === 0) { peg$fail(peg$e7); }
880
827
  }
881
828
  if (s1 === peg$FAILED) {
882
829
  s1 = null;
883
830
  }
884
831
  peg$savedPos = s0;
885
- s1 = peg$f7();
832
+ s1 = peg$f6();
886
833
  s0 = s1;
887
834
  }
888
835
 
@@ -900,7 +847,7 @@ function peg$parse(input, options) {
900
847
  peg$silentFails--;
901
848
  if (s0 === peg$FAILED) {
902
849
  s1 = peg$FAILED;
903
- if (peg$silentFails === 0) { peg$fail(peg$e12); }
850
+ if (peg$silentFails === 0) { peg$fail(peg$e10); }
904
851
  }
905
852
 
906
853
  return s0;
@@ -916,7 +863,7 @@ function peg$parse(input, options) {
916
863
  peg$currPos++;
917
864
  } else {
918
865
  s2 = peg$FAILED;
919
- if (peg$silentFails === 0) { peg$fail(peg$e13); }
866
+ if (peg$silentFails === 0) { peg$fail(peg$e11); }
920
867
  }
921
868
  if (s2 !== peg$FAILED) {
922
869
  while (s2 !== peg$FAILED) {
@@ -926,7 +873,7 @@ function peg$parse(input, options) {
926
873
  peg$currPos++;
927
874
  } else {
928
875
  s2 = peg$FAILED;
929
- if (peg$silentFails === 0) { peg$fail(peg$e13); }
876
+ if (peg$silentFails === 0) { peg$fail(peg$e11); }
930
877
  }
931
878
  }
932
879
  } else {
@@ -946,19 +893,19 @@ function peg$parse(input, options) {
946
893
  var s0;
947
894
 
948
895
  if (input.charCodeAt(peg$currPos) === 8658) {
949
- s0 = peg$c6;
896
+ s0 = peg$c5;
950
897
  peg$currPos++;
951
898
  } else {
952
899
  s0 = peg$FAILED;
953
- if (peg$silentFails === 0) { peg$fail(peg$e14); }
900
+ if (peg$silentFails === 0) { peg$fail(peg$e12); }
954
901
  }
955
902
  if (s0 === peg$FAILED) {
956
- if (input.substr(peg$currPos, 2) === peg$c7) {
957
- s0 = peg$c7;
903
+ if (input.substr(peg$currPos, 2) === peg$c6) {
904
+ s0 = peg$c6;
958
905
  peg$currPos += 2;
959
906
  } else {
960
907
  s0 = peg$FAILED;
961
- if (peg$silentFails === 0) { peg$fail(peg$e15); }
908
+ if (peg$silentFails === 0) { peg$fail(peg$e13); }
962
909
  }
963
910
  }
964
911
 
@@ -971,11 +918,11 @@ function peg$parse(input, options) {
971
918
  peg$silentFails++;
972
919
  s0 = peg$currPos;
973
920
  if (input.charCodeAt(peg$currPos) === 34) {
974
- s1 = peg$c8;
921
+ s1 = peg$c7;
975
922
  peg$currPos++;
976
923
  } else {
977
924
  s1 = peg$FAILED;
978
- if (peg$silentFails === 0) { peg$fail(peg$e17); }
925
+ if (peg$silentFails === 0) { peg$fail(peg$e15); }
979
926
  }
980
927
  if (s1 !== peg$FAILED) {
981
928
  s2 = [];
@@ -985,15 +932,15 @@ function peg$parse(input, options) {
985
932
  s3 = peg$parsedoubleQuoteStringChar();
986
933
  }
987
934
  if (input.charCodeAt(peg$currPos) === 34) {
988
- s3 = peg$c8;
935
+ s3 = peg$c7;
989
936
  peg$currPos++;
990
937
  } else {
991
938
  s3 = peg$FAILED;
992
- if (peg$silentFails === 0) { peg$fail(peg$e17); }
939
+ if (peg$silentFails === 0) { peg$fail(peg$e15); }
993
940
  }
994
941
  if (s3 !== peg$FAILED) {
995
942
  peg$savedPos = s0;
996
- s0 = peg$f8(s2);
943
+ s0 = peg$f7(s2);
997
944
  } else {
998
945
  peg$currPos = s0;
999
946
  s0 = peg$FAILED;
@@ -1005,7 +952,7 @@ function peg$parse(input, options) {
1005
952
  peg$silentFails--;
1006
953
  if (s0 === peg$FAILED) {
1007
954
  s1 = peg$FAILED;
1008
- if (peg$silentFails === 0) { peg$fail(peg$e16); }
955
+ if (peg$silentFails === 0) { peg$fail(peg$e14); }
1009
956
  }
1010
957
 
1011
958
  return s0;
@@ -1018,11 +965,11 @@ function peg$parse(input, options) {
1018
965
  s1 = peg$currPos;
1019
966
  peg$silentFails++;
1020
967
  if (input.charCodeAt(peg$currPos) === 34) {
1021
- s2 = peg$c8;
968
+ s2 = peg$c7;
1022
969
  peg$currPos++;
1023
970
  } else {
1024
971
  s2 = peg$FAILED;
1025
- if (peg$silentFails === 0) { peg$fail(peg$e17); }
972
+ if (peg$silentFails === 0) { peg$fail(peg$e15); }
1026
973
  }
1027
974
  if (s2 === peg$FAILED) {
1028
975
  s2 = peg$parsenewLine();
@@ -1050,13 +997,36 @@ function peg$parse(input, options) {
1050
997
  return s0;
1051
998
  }
1052
999
 
1000
+ function peg$parseellipsis() {
1001
+ var s0;
1002
+
1003
+ if (input.substr(peg$currPos, 3) === peg$c8) {
1004
+ s0 = peg$c8;
1005
+ peg$currPos += 3;
1006
+ } else {
1007
+ s0 = peg$FAILED;
1008
+ if (peg$silentFails === 0) { peg$fail(peg$e16); }
1009
+ }
1010
+ if (s0 === peg$FAILED) {
1011
+ if (input.charCodeAt(peg$currPos) === 8230) {
1012
+ s0 = peg$c9;
1013
+ peg$currPos++;
1014
+ } else {
1015
+ s0 = peg$FAILED;
1016
+ if (peg$silentFails === 0) { peg$fail(peg$e17); }
1017
+ }
1018
+ }
1019
+
1020
+ return s0;
1021
+ }
1022
+
1053
1023
  function peg$parseescapedChar() {
1054
1024
  var s0, s1, s2;
1055
1025
 
1056
1026
  peg$silentFails++;
1057
1027
  s0 = peg$currPos;
1058
1028
  if (input.charCodeAt(peg$currPos) === 92) {
1059
- s1 = peg$c9;
1029
+ s1 = peg$c10;
1060
1030
  peg$currPos++;
1061
1031
  } else {
1062
1032
  s1 = peg$FAILED;
@@ -1068,7 +1038,7 @@ function peg$parse(input, options) {
1068
1038
  peg$currPos++;
1069
1039
  } else {
1070
1040
  s2 = peg$FAILED;
1071
- if (peg$silentFails === 0) { peg$fail(peg$e9); }
1041
+ if (peg$silentFails === 0) { peg$fail(peg$e7); }
1072
1042
  }
1073
1043
  if (s2 !== peg$FAILED) {
1074
1044
  s0 = s2;
@@ -1138,7 +1108,7 @@ function peg$parse(input, options) {
1138
1108
  s2 = null;
1139
1109
  }
1140
1110
  if (input.charCodeAt(peg$currPos) === 46) {
1141
- s3 = peg$c10;
1111
+ s3 = peg$c11;
1142
1112
  peg$currPos++;
1143
1113
  } else {
1144
1114
  s3 = peg$FAILED;
@@ -1148,7 +1118,7 @@ function peg$parse(input, options) {
1148
1118
  s4 = peg$parsedigits();
1149
1119
  if (s4 !== peg$FAILED) {
1150
1120
  peg$savedPos = s0;
1151
- s0 = peg$f9();
1121
+ s0 = peg$f8();
1152
1122
  } else {
1153
1123
  peg$currPos = s0;
1154
1124
  s0 = peg$FAILED;
@@ -1184,7 +1154,7 @@ function peg$parse(input, options) {
1184
1154
  s3 = null;
1185
1155
  }
1186
1156
  peg$savedPos = s0;
1187
- s0 = peg$f10(s1, s2, s3);
1157
+ s0 = peg$f9(s1, s2, s3);
1188
1158
  } else {
1189
1159
  peg$currPos = s0;
1190
1160
  s0 = peg$FAILED;
@@ -1204,7 +1174,7 @@ function peg$parse(input, options) {
1204
1174
  peg$silentFails++;
1205
1175
  s0 = peg$currPos;
1206
1176
  if (input.charCodeAt(peg$currPos) === 40) {
1207
- s1 = peg$c11;
1177
+ s1 = peg$c12;
1208
1178
  peg$currPos++;
1209
1179
  } else {
1210
1180
  s1 = peg$FAILED;
@@ -1248,7 +1218,7 @@ function peg$parse(input, options) {
1248
1218
  if (s1 !== peg$FAILED) {
1249
1219
  s2 = peg$currPos;
1250
1220
  if (input.charCodeAt(peg$currPos) === 58) {
1251
- s3 = peg$c12;
1221
+ s3 = peg$c13;
1252
1222
  peg$currPos++;
1253
1223
  } else {
1254
1224
  s3 = peg$FAILED;
@@ -1271,7 +1241,7 @@ function peg$parse(input, options) {
1271
1241
  s2 = null;
1272
1242
  }
1273
1243
  peg$savedPos = s0;
1274
- s0 = peg$f11();
1244
+ s0 = peg$f10();
1275
1245
  } else {
1276
1246
  peg$currPos = s0;
1277
1247
  s0 = peg$FAILED;
@@ -1302,7 +1272,7 @@ function peg$parse(input, options) {
1302
1272
  }
1303
1273
  if (s1 !== peg$FAILED) {
1304
1274
  peg$savedPos = s0;
1305
- s1 = peg$f12(s1);
1275
+ s1 = peg$f11(s1);
1306
1276
  }
1307
1277
  s0 = s1;
1308
1278
  peg$silentFails--;
@@ -1327,7 +1297,7 @@ function peg$parse(input, options) {
1327
1297
  if (s0 === peg$FAILED) {
1328
1298
  s0 = peg$currPos;
1329
1299
  if (input.charCodeAt(peg$currPos) === 45) {
1330
- s1 = peg$c13;
1300
+ s1 = peg$c14;
1331
1301
  peg$currPos++;
1332
1302
  } else {
1333
1303
  s1 = peg$FAILED;
@@ -1337,7 +1307,7 @@ function peg$parse(input, options) {
1337
1307
  s2 = peg$currPos;
1338
1308
  peg$silentFails++;
1339
1309
  if (input.charCodeAt(peg$currPos) === 62) {
1340
- s3 = peg$c14;
1310
+ s3 = peg$c15;
1341
1311
  peg$currPos++;
1342
1312
  } else {
1343
1313
  s3 = peg$FAILED;
@@ -1473,7 +1443,7 @@ function peg$parse(input, options) {
1473
1443
  s2 = peg$parsedigits();
1474
1444
  if (s2 !== peg$FAILED) {
1475
1445
  peg$savedPos = s0;
1476
- s0 = peg$f13();
1446
+ s0 = peg$f12();
1477
1447
  } else {
1478
1448
  peg$currPos = s0;
1479
1449
  s0 = peg$FAILED;
@@ -1493,18 +1463,18 @@ function peg$parse(input, options) {
1493
1463
  peg$silentFails++;
1494
1464
  s0 = peg$currPos;
1495
1465
  if (input.charCodeAt(peg$currPos) === 61) {
1496
- s1 = peg$c2;
1466
+ s1 = peg$c16;
1497
1467
  peg$currPos++;
1498
1468
  } else {
1499
1469
  s1 = peg$FAILED;
1500
- if (peg$silentFails === 0) { peg$fail(peg$e6); }
1470
+ if (peg$silentFails === 0) { peg$fail(peg$e36); }
1501
1471
  }
1502
1472
  if (s1 !== peg$FAILED) {
1503
1473
  s2 = peg$parse__();
1504
1474
  s3 = peg$parsepipeline();
1505
1475
  if (s3 !== peg$FAILED) {
1506
1476
  peg$savedPos = s0;
1507
- s0 = peg$f14(s3);
1477
+ s0 = peg$f13(s3);
1508
1478
  } else {
1509
1479
  peg$currPos = s0;
1510
1480
  s0 = peg$FAILED;
@@ -1528,11 +1498,11 @@ function peg$parse(input, options) {
1528
1498
  peg$silentFails++;
1529
1499
  s0 = peg$currPos;
1530
1500
  if (input.charCodeAt(peg$currPos) === 47) {
1531
- s1 = peg$c15;
1501
+ s1 = peg$c17;
1532
1502
  peg$currPos++;
1533
1503
  } else {
1534
1504
  s1 = peg$FAILED;
1535
- if (peg$silentFails === 0) { peg$fail(peg$e37); }
1505
+ if (peg$silentFails === 0) { peg$fail(peg$e38); }
1536
1506
  }
1537
1507
  if (s1 !== peg$FAILED) {
1538
1508
  s2 = peg$parsepath();
@@ -1544,22 +1514,22 @@ function peg$parse(input, options) {
1544
1514
  if (s0 === peg$FAILED) {
1545
1515
  s0 = peg$currPos;
1546
1516
  if (input.charCodeAt(peg$currPos) === 47) {
1547
- s1 = peg$c15;
1517
+ s1 = peg$c17;
1548
1518
  peg$currPos++;
1549
1519
  } else {
1550
1520
  s1 = peg$FAILED;
1551
- if (peg$silentFails === 0) { peg$fail(peg$e37); }
1521
+ if (peg$silentFails === 0) { peg$fail(peg$e38); }
1552
1522
  }
1553
1523
  if (s1 !== peg$FAILED) {
1554
1524
  peg$savedPos = s0;
1555
- s1 = peg$f15();
1525
+ s1 = peg$f14();
1556
1526
  }
1557
1527
  s0 = s1;
1558
1528
  }
1559
1529
  peg$silentFails--;
1560
1530
  if (s0 === peg$FAILED) {
1561
1531
  s1 = peg$FAILED;
1562
- if (peg$silentFails === 0) { peg$fail(peg$e36); }
1532
+ if (peg$silentFails === 0) { peg$fail(peg$e37); }
1563
1533
  }
1564
1534
 
1565
1535
  return s0;
@@ -1608,7 +1578,7 @@ function peg$parse(input, options) {
1608
1578
  peg$silentFails--;
1609
1579
  if (s0 === peg$FAILED) {
1610
1580
  s1 = peg$FAILED;
1611
- if (peg$silentFails === 0) { peg$fail(peg$e38); }
1581
+ if (peg$silentFails === 0) { peg$fail(peg$e39); }
1612
1582
  }
1613
1583
 
1614
1584
  return s0;
@@ -1618,24 +1588,24 @@ function peg$parse(input, options) {
1618
1588
  var s0, s1, s2, s3, s4, s5;
1619
1589
 
1620
1590
  s0 = peg$currPos;
1621
- if (input.substr(peg$currPos, 2) === peg$c16) {
1622
- s1 = peg$c16;
1591
+ if (input.substr(peg$currPos, 2) === peg$c18) {
1592
+ s1 = peg$c18;
1623
1593
  peg$currPos += 2;
1624
1594
  } else {
1625
1595
  s1 = peg$FAILED;
1626
- if (peg$silentFails === 0) { peg$fail(peg$e39); }
1596
+ if (peg$silentFails === 0) { peg$fail(peg$e40); }
1627
1597
  }
1628
1598
  if (s1 !== peg$FAILED) {
1629
1599
  s2 = [];
1630
1600
  s3 = peg$currPos;
1631
1601
  s4 = peg$currPos;
1632
1602
  peg$silentFails++;
1633
- if (input.substr(peg$currPos, 2) === peg$c17) {
1634
- s5 = peg$c17;
1603
+ if (input.substr(peg$currPos, 2) === peg$c19) {
1604
+ s5 = peg$c19;
1635
1605
  peg$currPos += 2;
1636
1606
  } else {
1637
1607
  s5 = peg$FAILED;
1638
- if (peg$silentFails === 0) { peg$fail(peg$e40); }
1608
+ if (peg$silentFails === 0) { peg$fail(peg$e41); }
1639
1609
  }
1640
1610
  peg$silentFails--;
1641
1611
  if (s5 === peg$FAILED) {
@@ -1650,7 +1620,7 @@ function peg$parse(input, options) {
1650
1620
  peg$currPos++;
1651
1621
  } else {
1652
1622
  s5 = peg$FAILED;
1653
- if (peg$silentFails === 0) { peg$fail(peg$e9); }
1623
+ if (peg$silentFails === 0) { peg$fail(peg$e7); }
1654
1624
  }
1655
1625
  if (s5 !== peg$FAILED) {
1656
1626
  s4 = [s4, s5];
@@ -1668,12 +1638,12 @@ function peg$parse(input, options) {
1668
1638
  s3 = peg$currPos;
1669
1639
  s4 = peg$currPos;
1670
1640
  peg$silentFails++;
1671
- if (input.substr(peg$currPos, 2) === peg$c17) {
1672
- s5 = peg$c17;
1641
+ if (input.substr(peg$currPos, 2) === peg$c19) {
1642
+ s5 = peg$c19;
1673
1643
  peg$currPos += 2;
1674
1644
  } else {
1675
1645
  s5 = peg$FAILED;
1676
- if (peg$silentFails === 0) { peg$fail(peg$e40); }
1646
+ if (peg$silentFails === 0) { peg$fail(peg$e41); }
1677
1647
  }
1678
1648
  peg$silentFails--;
1679
1649
  if (s5 === peg$FAILED) {
@@ -1688,7 +1658,7 @@ function peg$parse(input, options) {
1688
1658
  peg$currPos++;
1689
1659
  } else {
1690
1660
  s5 = peg$FAILED;
1691
- if (peg$silentFails === 0) { peg$fail(peg$e9); }
1661
+ if (peg$silentFails === 0) { peg$fail(peg$e7); }
1692
1662
  }
1693
1663
  if (s5 !== peg$FAILED) {
1694
1664
  s4 = [s4, s5];
@@ -1702,16 +1672,16 @@ function peg$parse(input, options) {
1702
1672
  s3 = peg$FAILED;
1703
1673
  }
1704
1674
  }
1705
- if (input.substr(peg$currPos, 2) === peg$c17) {
1706
- s3 = peg$c17;
1675
+ if (input.substr(peg$currPos, 2) === peg$c19) {
1676
+ s3 = peg$c19;
1707
1677
  peg$currPos += 2;
1708
1678
  } else {
1709
1679
  s3 = peg$FAILED;
1710
- if (peg$silentFails === 0) { peg$fail(peg$e40); }
1680
+ if (peg$silentFails === 0) { peg$fail(peg$e41); }
1711
1681
  }
1712
1682
  if (s3 !== peg$FAILED) {
1713
1683
  peg$savedPos = s0;
1714
- s0 = peg$f16();
1684
+ s0 = peg$f15();
1715
1685
  } else {
1716
1686
  peg$currPos = s0;
1717
1687
  s0 = peg$FAILED;
@@ -1728,27 +1698,27 @@ function peg$parse(input, options) {
1728
1698
  var s0;
1729
1699
 
1730
1700
  if (input.charCodeAt(peg$currPos) === 10) {
1731
- s0 = peg$c18;
1701
+ s0 = peg$c20;
1732
1702
  peg$currPos++;
1733
1703
  } else {
1734
1704
  s0 = peg$FAILED;
1735
- if (peg$silentFails === 0) { peg$fail(peg$e41); }
1705
+ if (peg$silentFails === 0) { peg$fail(peg$e42); }
1736
1706
  }
1737
1707
  if (s0 === peg$FAILED) {
1738
- if (input.substr(peg$currPos, 2) === peg$c19) {
1739
- s0 = peg$c19;
1708
+ if (input.substr(peg$currPos, 2) === peg$c21) {
1709
+ s0 = peg$c21;
1740
1710
  peg$currPos += 2;
1741
1711
  } else {
1742
1712
  s0 = peg$FAILED;
1743
- if (peg$silentFails === 0) { peg$fail(peg$e42); }
1713
+ if (peg$silentFails === 0) { peg$fail(peg$e43); }
1744
1714
  }
1745
1715
  if (s0 === peg$FAILED) {
1746
1716
  if (input.charCodeAt(peg$currPos) === 13) {
1747
- s0 = peg$c20;
1717
+ s0 = peg$c22;
1748
1718
  peg$currPos++;
1749
1719
  } else {
1750
1720
  s0 = peg$FAILED;
1751
- if (peg$silentFails === 0) { peg$fail(peg$e43); }
1721
+ if (peg$silentFails === 0) { peg$fail(peg$e44); }
1752
1722
  }
1753
1723
  }
1754
1724
  }
@@ -1767,7 +1737,7 @@ function peg$parse(input, options) {
1767
1737
  peg$silentFails--;
1768
1738
  if (s0 === peg$FAILED) {
1769
1739
  s1 = peg$FAILED;
1770
- if (peg$silentFails === 0) { peg$fail(peg$e44); }
1740
+ if (peg$silentFails === 0) { peg$fail(peg$e45); }
1771
1741
  }
1772
1742
 
1773
1743
  return s0;
@@ -1779,29 +1749,29 @@ function peg$parse(input, options) {
1779
1749
  peg$silentFails++;
1780
1750
  s0 = peg$currPos;
1781
1751
  if (input.charCodeAt(peg$currPos) === 123) {
1782
- s1 = peg$c21;
1752
+ s1 = peg$c23;
1783
1753
  peg$currPos++;
1784
1754
  } else {
1785
1755
  s1 = peg$FAILED;
1786
- if (peg$silentFails === 0) { peg$fail(peg$e46); }
1756
+ if (peg$silentFails === 0) { peg$fail(peg$e47); }
1787
1757
  }
1788
1758
  if (s1 !== peg$FAILED) {
1789
1759
  s2 = peg$parse__();
1790
- s3 = peg$parseobjectProperties();
1760
+ s3 = peg$parseobjectEntries();
1791
1761
  if (s3 === peg$FAILED) {
1792
1762
  s3 = null;
1793
1763
  }
1794
1764
  s4 = peg$parse__();
1795
1765
  if (input.charCodeAt(peg$currPos) === 125) {
1796
- s5 = peg$c3;
1766
+ s5 = peg$c2;
1797
1767
  peg$currPos++;
1798
1768
  } else {
1799
1769
  s5 = peg$FAILED;
1800
- if (peg$silentFails === 0) { peg$fail(peg$e8); }
1770
+ if (peg$silentFails === 0) { peg$fail(peg$e6); }
1801
1771
  }
1802
1772
  if (s5 !== peg$FAILED) {
1803
1773
  peg$savedPos = s0;
1804
- s0 = peg$f17(s3);
1774
+ s0 = peg$f16(s3);
1805
1775
  } else {
1806
1776
  peg$currPos = s0;
1807
1777
  s0 = peg$FAILED;
@@ -1813,25 +1783,25 @@ function peg$parse(input, options) {
1813
1783
  peg$silentFails--;
1814
1784
  if (s0 === peg$FAILED) {
1815
1785
  s1 = peg$FAILED;
1816
- if (peg$silentFails === 0) { peg$fail(peg$e45); }
1786
+ if (peg$silentFails === 0) { peg$fail(peg$e46); }
1817
1787
  }
1818
1788
 
1819
1789
  return s0;
1820
1790
  }
1821
1791
 
1822
- function peg$parseobjectProperties() {
1792
+ function peg$parseobjectEntries() {
1823
1793
  var s0, s1, s2, s3, s4;
1824
1794
 
1825
1795
  s0 = peg$currPos;
1826
1796
  s1 = peg$currPos;
1827
1797
  s2 = [];
1828
- s3 = peg$parseobjectPropertyOrShorthand();
1798
+ s3 = peg$parseobjectEntry();
1829
1799
  while (s3 !== peg$FAILED) {
1830
1800
  s2.push(s3);
1831
1801
  s3 = peg$currPos;
1832
1802
  s4 = peg$parseseparator();
1833
1803
  if (s4 !== peg$FAILED) {
1834
- s4 = peg$parseobjectPropertyOrShorthand();
1804
+ s4 = peg$parseobjectEntry();
1835
1805
  if (s4 === peg$FAILED) {
1836
1806
  peg$currPos = s3;
1837
1807
  s3 = peg$FAILED;
@@ -1862,6 +1832,26 @@ function peg$parse(input, options) {
1862
1832
  return s0;
1863
1833
  }
1864
1834
 
1835
+ function peg$parseobjectEntry() {
1836
+ var s0, s1;
1837
+
1838
+ s0 = peg$parsespread();
1839
+ if (s0 === peg$FAILED) {
1840
+ s0 = peg$parseobjectProperty();
1841
+ if (s0 === peg$FAILED) {
1842
+ s0 = peg$currPos;
1843
+ s1 = peg$parseidentifier();
1844
+ if (s1 !== peg$FAILED) {
1845
+ peg$savedPos = s0;
1846
+ s1 = peg$f17(s1);
1847
+ }
1848
+ s0 = s1;
1849
+ }
1850
+ }
1851
+
1852
+ return s0;
1853
+ }
1854
+
1865
1855
  function peg$parseobjectProperty() {
1866
1856
  var s0, s1, s2, s3, s4, s5;
1867
1857
 
@@ -1871,7 +1861,7 @@ function peg$parse(input, options) {
1871
1861
  if (s1 !== peg$FAILED) {
1872
1862
  s2 = peg$parse__();
1873
1863
  if (input.charCodeAt(peg$currPos) === 58) {
1874
- s3 = peg$c12;
1864
+ s3 = peg$c13;
1875
1865
  peg$currPos++;
1876
1866
  } else {
1877
1867
  s3 = peg$FAILED;
@@ -1897,24 +1887,7 @@ function peg$parse(input, options) {
1897
1887
  peg$silentFails--;
1898
1888
  if (s0 === peg$FAILED) {
1899
1889
  s1 = peg$FAILED;
1900
- if (peg$silentFails === 0) { peg$fail(peg$e47); }
1901
- }
1902
-
1903
- return s0;
1904
- }
1905
-
1906
- function peg$parseobjectPropertyOrShorthand() {
1907
- var s0, s1;
1908
-
1909
- s0 = peg$parseobjectProperty();
1910
- if (s0 === peg$FAILED) {
1911
- s0 = peg$currPos;
1912
- s1 = peg$parseidentifier();
1913
- if (s1 !== peg$FAILED) {
1914
- peg$savedPos = s0;
1915
- s1 = peg$f18(s1);
1916
- }
1917
- s0 = s1;
1890
+ if (peg$silentFails === 0) { peg$fail(peg$e48); }
1918
1891
  }
1919
1892
 
1920
1893
  return s0;
@@ -1925,7 +1898,7 @@ function peg$parse(input, options) {
1925
1898
 
1926
1899
  s0 = peg$currPos;
1927
1900
  if (input.charCodeAt(peg$currPos) === 40) {
1928
- s1 = peg$c11;
1901
+ s1 = peg$c12;
1929
1902
  peg$currPos++;
1930
1903
  } else {
1931
1904
  s1 = peg$FAILED;
@@ -1939,11 +1912,11 @@ function peg$parse(input, options) {
1939
1912
  }
1940
1913
  s4 = peg$parse__();
1941
1914
  if (input.charCodeAt(peg$currPos) === 41) {
1942
- s5 = peg$c5;
1915
+ s5 = peg$c4;
1943
1916
  peg$currPos++;
1944
1917
  } else {
1945
1918
  s5 = peg$FAILED;
1946
- if (peg$silentFails === 0) { peg$fail(peg$e11); }
1919
+ if (peg$silentFails === 0) { peg$fail(peg$e9); }
1947
1920
  }
1948
1921
  if (s5 !== peg$FAILED) {
1949
1922
  s6 = peg$parse__();
@@ -1953,7 +1926,7 @@ function peg$parse(input, options) {
1953
1926
  s9 = peg$parsepipeline();
1954
1927
  if (s9 !== peg$FAILED) {
1955
1928
  peg$savedPos = s0;
1956
- s0 = peg$f19(s3, s9);
1929
+ s0 = peg$f18(s3, s9);
1957
1930
  } else {
1958
1931
  peg$currPos = s0;
1959
1932
  s0 = peg$FAILED;
@@ -1980,7 +1953,7 @@ function peg$parse(input, options) {
1980
1953
  peg$silentFails++;
1981
1954
  s0 = peg$currPos;
1982
1955
  if (input.charCodeAt(peg$currPos) === 40) {
1983
- s1 = peg$c11;
1956
+ s1 = peg$c12;
1984
1957
  peg$currPos++;
1985
1958
  } else {
1986
1959
  s1 = peg$FAILED;
@@ -1994,15 +1967,15 @@ function peg$parse(input, options) {
1994
1967
  }
1995
1968
  s4 = peg$parse__();
1996
1969
  if (input.charCodeAt(peg$currPos) === 41) {
1997
- s5 = peg$c5;
1970
+ s5 = peg$c4;
1998
1971
  peg$currPos++;
1999
1972
  } else {
2000
1973
  s5 = peg$FAILED;
2001
- if (peg$silentFails === 0) { peg$fail(peg$e11); }
1974
+ if (peg$silentFails === 0) { peg$fail(peg$e9); }
2002
1975
  }
2003
1976
  if (s5 !== peg$FAILED) {
2004
1977
  peg$savedPos = s0;
2005
- s0 = peg$f20(s3);
1978
+ s0 = peg$f19(s3);
2006
1979
  } else {
2007
1980
  peg$currPos = s0;
2008
1981
  s0 = peg$FAILED;
@@ -2014,7 +1987,7 @@ function peg$parse(input, options) {
2014
1987
  peg$silentFails--;
2015
1988
  if (s0 === peg$FAILED) {
2016
1989
  s1 = peg$FAILED;
2017
- if (peg$silentFails === 0) { peg$fail(peg$e48); }
1990
+ if (peg$silentFails === 0) { peg$fail(peg$e49); }
2018
1991
  }
2019
1992
 
2020
1993
  return s0;
@@ -2068,7 +2041,7 @@ function peg$parse(input, options) {
2068
2041
  }
2069
2042
  if (s1 !== peg$FAILED) {
2070
2043
  peg$savedPos = s0;
2071
- s1 = peg$f21(s1);
2044
+ s1 = peg$f20(s1);
2072
2045
  }
2073
2046
  s0 = s1;
2074
2047
 
@@ -2086,11 +2059,11 @@ function peg$parse(input, options) {
2086
2059
  s1.push(s2);
2087
2060
  s2 = peg$currPos;
2088
2061
  if (input.charCodeAt(peg$currPos) === 47) {
2089
- s3 = peg$c15;
2062
+ s3 = peg$c17;
2090
2063
  peg$currPos++;
2091
2064
  } else {
2092
2065
  s3 = peg$FAILED;
2093
- if (peg$silentFails === 0) { peg$fail(peg$e37); }
2066
+ if (peg$silentFails === 0) { peg$fail(peg$e38); }
2094
2067
  }
2095
2068
  if (s3 !== peg$FAILED) {
2096
2069
  s3 = peg$parsepathKey();
@@ -2107,7 +2080,7 @@ function peg$parse(input, options) {
2107
2080
  }
2108
2081
  peg$silentFails--;
2109
2082
  s1 = peg$FAILED;
2110
- if (peg$silentFails === 0) { peg$fail(peg$e49); }
2083
+ if (peg$silentFails === 0) { peg$fail(peg$e50); }
2111
2084
 
2112
2085
  return s0;
2113
2086
  }
@@ -2124,11 +2097,11 @@ function peg$parse(input, options) {
2124
2097
  s2 = peg$parseidentifierChar();
2125
2098
  }
2126
2099
  peg$savedPos = s0;
2127
- s1 = peg$f22(s1);
2100
+ s1 = peg$f21(s1);
2128
2101
  s0 = s1;
2129
2102
  peg$silentFails--;
2130
2103
  s1 = peg$FAILED;
2131
- if (peg$silentFails === 0) { peg$fail(peg$e50); }
2104
+ if (peg$silentFails === 0) { peg$fail(peg$e51); }
2132
2105
 
2133
2106
  return s0;
2134
2107
  }
@@ -2141,7 +2114,7 @@ function peg$parse(input, options) {
2141
2114
  s1 = peg$parseprotocol();
2142
2115
  if (s1 !== peg$FAILED) {
2143
2116
  if (input.charCodeAt(peg$currPos) === 58) {
2144
- s2 = peg$c12;
2117
+ s2 = peg$c13;
2145
2118
  peg$currPos++;
2146
2119
  } else {
2147
2120
  s2 = peg$FAILED;
@@ -2150,11 +2123,11 @@ function peg$parse(input, options) {
2150
2123
  if (s2 !== peg$FAILED) {
2151
2124
  s3 = [];
2152
2125
  if (input.charCodeAt(peg$currPos) === 47) {
2153
- s4 = peg$c15;
2126
+ s4 = peg$c17;
2154
2127
  peg$currPos++;
2155
2128
  } else {
2156
2129
  s4 = peg$FAILED;
2157
- if (peg$silentFails === 0) { peg$fail(peg$e37); }
2130
+ if (peg$silentFails === 0) { peg$fail(peg$e38); }
2158
2131
  }
2159
2132
  while (s4 !== peg$FAILED) {
2160
2133
  s3.push(s4);
@@ -2162,11 +2135,11 @@ function peg$parse(input, options) {
2162
2135
  s4 = peg$FAILED;
2163
2136
  } else {
2164
2137
  if (input.charCodeAt(peg$currPos) === 47) {
2165
- s4 = peg$c15;
2138
+ s4 = peg$c17;
2166
2139
  peg$currPos++;
2167
2140
  } else {
2168
2141
  s4 = peg$FAILED;
2169
- if (peg$silentFails === 0) { peg$fail(peg$e37); }
2142
+ if (peg$silentFails === 0) { peg$fail(peg$e38); }
2170
2143
  }
2171
2144
  }
2172
2145
  }
@@ -2177,7 +2150,7 @@ function peg$parse(input, options) {
2177
2150
  s5 = null;
2178
2151
  }
2179
2152
  peg$savedPos = s0;
2180
- s0 = peg$f23(s1, s4, s5);
2153
+ s0 = peg$f22(s1, s4, s5);
2181
2154
  } else {
2182
2155
  peg$currPos = s0;
2183
2156
  s0 = peg$FAILED;
@@ -2193,7 +2166,7 @@ function peg$parse(input, options) {
2193
2166
  peg$silentFails--;
2194
2167
  if (s0 === peg$FAILED) {
2195
2168
  s1 = peg$FAILED;
2196
- if (peg$silentFails === 0) { peg$fail(peg$e51); }
2169
+ if (peg$silentFails === 0) { peg$fail(peg$e52); }
2197
2170
  }
2198
2171
 
2199
2172
  return s0;
@@ -2210,7 +2183,7 @@ function peg$parse(input, options) {
2210
2183
  peg$silentFails--;
2211
2184
  if (s0 === peg$FAILED) {
2212
2185
  s1 = peg$FAILED;
2213
- if (peg$silentFails === 0) { peg$fail(peg$e52); }
2186
+ if (peg$silentFails === 0) { peg$fail(peg$e53); }
2214
2187
  }
2215
2188
 
2216
2189
  return s0;
@@ -2221,100 +2194,100 @@ function peg$parse(input, options) {
2221
2194
 
2222
2195
  peg$silentFails++;
2223
2196
  s0 = peg$currPos;
2224
- if (input.substr(peg$currPos, 5) === peg$c22) {
2225
- s1 = peg$c22;
2197
+ if (input.substr(peg$currPos, 5) === peg$c24) {
2198
+ s1 = peg$c24;
2226
2199
  peg$currPos += 5;
2227
2200
  } else {
2228
2201
  s1 = peg$FAILED;
2229
- if (peg$silentFails === 0) { peg$fail(peg$e54); }
2202
+ if (peg$silentFails === 0) { peg$fail(peg$e55); }
2230
2203
  }
2231
2204
  if (s1 !== peg$FAILED) {
2232
2205
  peg$savedPos = s0;
2233
- s1 = peg$f24();
2206
+ s1 = peg$f23();
2234
2207
  }
2235
2208
  s0 = s1;
2236
2209
  if (s0 === peg$FAILED) {
2237
2210
  s0 = peg$currPos;
2238
- if (input.substr(peg$currPos, 4) === peg$c23) {
2239
- s1 = peg$c23;
2211
+ if (input.substr(peg$currPos, 4) === peg$c25) {
2212
+ s1 = peg$c25;
2240
2213
  peg$currPos += 4;
2241
2214
  } else {
2242
2215
  s1 = peg$FAILED;
2243
- if (peg$silentFails === 0) { peg$fail(peg$e55); }
2216
+ if (peg$silentFails === 0) { peg$fail(peg$e56); }
2244
2217
  }
2245
2218
  if (s1 !== peg$FAILED) {
2246
2219
  peg$savedPos = s0;
2247
- s1 = peg$f25();
2220
+ s1 = peg$f24();
2248
2221
  }
2249
2222
  s0 = s1;
2250
2223
  if (s0 === peg$FAILED) {
2251
2224
  s0 = peg$currPos;
2252
- if (input.substr(peg$currPos, 3) === peg$c24) {
2253
- s1 = peg$c24;
2225
+ if (input.substr(peg$currPos, 3) === peg$c26) {
2226
+ s1 = peg$c26;
2254
2227
  peg$currPos += 3;
2255
2228
  } else {
2256
2229
  s1 = peg$FAILED;
2257
- if (peg$silentFails === 0) { peg$fail(peg$e56); }
2230
+ if (peg$silentFails === 0) { peg$fail(peg$e57); }
2258
2231
  }
2259
2232
  if (s1 !== peg$FAILED) {
2260
2233
  peg$savedPos = s0;
2261
- s1 = peg$f26();
2234
+ s1 = peg$f25();
2262
2235
  }
2263
2236
  s0 = s1;
2264
2237
  if (s0 === peg$FAILED) {
2265
2238
  s0 = peg$currPos;
2266
- if (input.substr(peg$currPos, 7) === peg$c25) {
2267
- s1 = peg$c25;
2239
+ if (input.substr(peg$currPos, 7) === peg$c27) {
2240
+ s1 = peg$c27;
2268
2241
  peg$currPos += 7;
2269
2242
  } else {
2270
2243
  s1 = peg$FAILED;
2271
- if (peg$silentFails === 0) { peg$fail(peg$e57); }
2244
+ if (peg$silentFails === 0) { peg$fail(peg$e58); }
2272
2245
  }
2273
2246
  if (s1 !== peg$FAILED) {
2274
2247
  peg$savedPos = s0;
2275
- s1 = peg$f27();
2248
+ s1 = peg$f26();
2276
2249
  }
2277
2250
  s0 = s1;
2278
2251
  if (s0 === peg$FAILED) {
2279
2252
  s0 = peg$currPos;
2280
- if (input.substr(peg$currPos, 9) === peg$c26) {
2281
- s1 = peg$c26;
2253
+ if (input.substr(peg$currPos, 9) === peg$c28) {
2254
+ s1 = peg$c28;
2282
2255
  peg$currPos += 9;
2283
2256
  } else {
2284
2257
  s1 = peg$FAILED;
2285
- if (peg$silentFails === 0) { peg$fail(peg$e58); }
2258
+ if (peg$silentFails === 0) { peg$fail(peg$e59); }
2286
2259
  }
2287
2260
  if (s1 !== peg$FAILED) {
2288
2261
  peg$savedPos = s0;
2289
- s1 = peg$f28();
2262
+ s1 = peg$f27();
2290
2263
  }
2291
2264
  s0 = s1;
2292
2265
  if (s0 === peg$FAILED) {
2293
2266
  s0 = peg$currPos;
2294
- if (input.substr(peg$currPos, 8) === peg$c27) {
2295
- s1 = peg$c27;
2267
+ if (input.substr(peg$currPos, 8) === peg$c29) {
2268
+ s1 = peg$c29;
2296
2269
  peg$currPos += 8;
2297
2270
  } else {
2298
2271
  s1 = peg$FAILED;
2299
- if (peg$silentFails === 0) { peg$fail(peg$e59); }
2272
+ if (peg$silentFails === 0) { peg$fail(peg$e60); }
2300
2273
  }
2301
2274
  if (s1 !== peg$FAILED) {
2302
2275
  peg$savedPos = s0;
2303
- s1 = peg$f29();
2276
+ s1 = peg$f28();
2304
2277
  }
2305
2278
  s0 = s1;
2306
2279
  if (s0 === peg$FAILED) {
2307
2280
  s0 = peg$currPos;
2308
- if (input.substr(peg$currPos, 4) === peg$c28) {
2309
- s1 = peg$c28;
2281
+ if (input.substr(peg$currPos, 4) === peg$c30) {
2282
+ s1 = peg$c30;
2310
2283
  peg$currPos += 4;
2311
2284
  } else {
2312
2285
  s1 = peg$FAILED;
2313
- if (peg$silentFails === 0) { peg$fail(peg$e60); }
2286
+ if (peg$silentFails === 0) { peg$fail(peg$e61); }
2314
2287
  }
2315
2288
  if (s1 !== peg$FAILED) {
2316
2289
  peg$savedPos = s0;
2317
- s1 = peg$f30();
2290
+ s1 = peg$f29();
2318
2291
  }
2319
2292
  s0 = s1;
2320
2293
  }
@@ -2326,7 +2299,7 @@ function peg$parse(input, options) {
2326
2299
  peg$silentFails--;
2327
2300
  if (s0 === peg$FAILED) {
2328
2301
  s1 = peg$FAILED;
2329
- if (peg$silentFails === 0) { peg$fail(peg$e53); }
2302
+ if (peg$silentFails === 0) { peg$fail(peg$e54); }
2330
2303
  }
2331
2304
 
2332
2305
  return s0;
@@ -2340,13 +2313,13 @@ function peg$parse(input, options) {
2340
2313
  s1 = peg$parseidentifier();
2341
2314
  if (s1 !== peg$FAILED) {
2342
2315
  peg$savedPos = s0;
2343
- s1 = peg$f31(s1);
2316
+ s1 = peg$f30(s1);
2344
2317
  }
2345
2318
  s0 = s1;
2346
2319
  peg$silentFails--;
2347
2320
  if (s0 === peg$FAILED) {
2348
2321
  s1 = peg$FAILED;
2349
- if (peg$silentFails === 0) { peg$fail(peg$e61); }
2322
+ if (peg$silentFails === 0) { peg$fail(peg$e62); }
2350
2323
  }
2351
2324
 
2352
2325
  return s0;
@@ -2358,11 +2331,11 @@ function peg$parse(input, options) {
2358
2331
  s0 = peg$currPos;
2359
2332
  s1 = peg$parse__();
2360
2333
  if (input.charCodeAt(peg$currPos) === 44) {
2361
- s2 = peg$c29;
2334
+ s2 = peg$c31;
2362
2335
  peg$currPos++;
2363
2336
  } else {
2364
2337
  s2 = peg$FAILED;
2365
- if (peg$silentFails === 0) { peg$fail(peg$e62); }
2338
+ if (peg$silentFails === 0) { peg$fail(peg$e63); }
2366
2339
  }
2367
2340
  if (s2 !== peg$FAILED) {
2368
2341
  s3 = peg$parse__();
@@ -2383,12 +2356,12 @@ function peg$parse(input, options) {
2383
2356
  var s0, s1, s2, s3;
2384
2357
 
2385
2358
  s0 = peg$currPos;
2386
- if (input.substr(peg$currPos, 2) === peg$c30) {
2387
- s1 = peg$c30;
2359
+ if (input.substr(peg$currPos, 2) === peg$c32) {
2360
+ s1 = peg$c32;
2388
2361
  peg$currPos += 2;
2389
2362
  } else {
2390
2363
  s1 = peg$FAILED;
2391
- if (peg$silentFails === 0) { peg$fail(peg$e63); }
2364
+ if (peg$silentFails === 0) { peg$fail(peg$e64); }
2392
2365
  }
2393
2366
  if (s1 !== peg$FAILED) {
2394
2367
  s2 = [];
@@ -2397,7 +2370,7 @@ function peg$parse(input, options) {
2397
2370
  peg$currPos++;
2398
2371
  } else {
2399
2372
  s3 = peg$FAILED;
2400
- if (peg$silentFails === 0) { peg$fail(peg$e64); }
2373
+ if (peg$silentFails === 0) { peg$fail(peg$e65); }
2401
2374
  }
2402
2375
  while (s3 !== peg$FAILED) {
2403
2376
  s2.push(s3);
@@ -2406,11 +2379,11 @@ function peg$parse(input, options) {
2406
2379
  peg$currPos++;
2407
2380
  } else {
2408
2381
  s3 = peg$FAILED;
2409
- if (peg$silentFails === 0) { peg$fail(peg$e64); }
2382
+ if (peg$silentFails === 0) { peg$fail(peg$e65); }
2410
2383
  }
2411
2384
  }
2412
2385
  peg$savedPos = s0;
2413
- s0 = peg$f32();
2386
+ s0 = peg$f31();
2414
2387
  } else {
2415
2388
  peg$currPos = s0;
2416
2389
  s0 = peg$FAILED;
@@ -2427,7 +2400,7 @@ function peg$parse(input, options) {
2427
2400
  peg$currPos++;
2428
2401
  } else {
2429
2402
  s0 = peg$FAILED;
2430
- if (peg$silentFails === 0) { peg$fail(peg$e65); }
2403
+ if (peg$silentFails === 0) { peg$fail(peg$e66); }
2431
2404
  }
2432
2405
 
2433
2406
  return s0;
@@ -2437,19 +2410,19 @@ function peg$parse(input, options) {
2437
2410
  var s0;
2438
2411
 
2439
2412
  if (input.charCodeAt(peg$currPos) === 8594) {
2440
- s0 = peg$c31;
2413
+ s0 = peg$c33;
2441
2414
  peg$currPos++;
2442
2415
  } else {
2443
2416
  s0 = peg$FAILED;
2444
- if (peg$silentFails === 0) { peg$fail(peg$e66); }
2417
+ if (peg$silentFails === 0) { peg$fail(peg$e67); }
2445
2418
  }
2446
2419
  if (s0 === peg$FAILED) {
2447
- if (input.substr(peg$currPos, 2) === peg$c32) {
2448
- s0 = peg$c32;
2420
+ if (input.substr(peg$currPos, 2) === peg$c34) {
2421
+ s0 = peg$c34;
2449
2422
  peg$currPos += 2;
2450
2423
  } else {
2451
2424
  s0 = peg$FAILED;
2452
- if (peg$silentFails === 0) { peg$fail(peg$e67); }
2425
+ if (peg$silentFails === 0) { peg$fail(peg$e68); }
2453
2426
  }
2454
2427
  }
2455
2428
 
@@ -2474,7 +2447,7 @@ function peg$parse(input, options) {
2474
2447
  peg$currPos++;
2475
2448
  } else {
2476
2449
  s3 = peg$FAILED;
2477
- if (peg$silentFails === 0) { peg$fail(peg$e64); }
2450
+ if (peg$silentFails === 0) { peg$fail(peg$e65); }
2478
2451
  }
2479
2452
  while (s3 !== peg$FAILED) {
2480
2453
  s2.push(s3);
@@ -2483,11 +2456,11 @@ function peg$parse(input, options) {
2483
2456
  peg$currPos++;
2484
2457
  } else {
2485
2458
  s3 = peg$FAILED;
2486
- if (peg$silentFails === 0) { peg$fail(peg$e64); }
2459
+ if (peg$silentFails === 0) { peg$fail(peg$e65); }
2487
2460
  }
2488
2461
  }
2489
2462
  peg$savedPos = s0;
2490
- s0 = peg$f33();
2463
+ s0 = peg$f32();
2491
2464
  } else {
2492
2465
  peg$currPos = s0;
2493
2466
  s0 = peg$FAILED;
@@ -2502,11 +2475,11 @@ function peg$parse(input, options) {
2502
2475
  peg$silentFails++;
2503
2476
  s0 = peg$currPos;
2504
2477
  if (input.charCodeAt(peg$currPos) === 39) {
2505
- s1 = peg$c33;
2478
+ s1 = peg$c35;
2506
2479
  peg$currPos++;
2507
2480
  } else {
2508
2481
  s1 = peg$FAILED;
2509
- if (peg$silentFails === 0) { peg$fail(peg$e69); }
2482
+ if (peg$silentFails === 0) { peg$fail(peg$e70); }
2510
2483
  }
2511
2484
  if (s1 !== peg$FAILED) {
2512
2485
  s2 = [];
@@ -2516,15 +2489,15 @@ function peg$parse(input, options) {
2516
2489
  s3 = peg$parsesingleQuoteStringChar();
2517
2490
  }
2518
2491
  if (input.charCodeAt(peg$currPos) === 39) {
2519
- s3 = peg$c33;
2492
+ s3 = peg$c35;
2520
2493
  peg$currPos++;
2521
2494
  } else {
2522
2495
  s3 = peg$FAILED;
2523
- if (peg$silentFails === 0) { peg$fail(peg$e69); }
2496
+ if (peg$silentFails === 0) { peg$fail(peg$e70); }
2524
2497
  }
2525
2498
  if (s3 !== peg$FAILED) {
2526
2499
  peg$savedPos = s0;
2527
- s0 = peg$f34(s2);
2500
+ s0 = peg$f33(s2);
2528
2501
  } else {
2529
2502
  peg$currPos = s0;
2530
2503
  s0 = peg$FAILED;
@@ -2536,7 +2509,7 @@ function peg$parse(input, options) {
2536
2509
  peg$silentFails--;
2537
2510
  if (s0 === peg$FAILED) {
2538
2511
  s1 = peg$FAILED;
2539
- if (peg$silentFails === 0) { peg$fail(peg$e68); }
2512
+ if (peg$silentFails === 0) { peg$fail(peg$e69); }
2540
2513
  }
2541
2514
 
2542
2515
  return s0;
@@ -2549,11 +2522,11 @@ function peg$parse(input, options) {
2549
2522
  s1 = peg$currPos;
2550
2523
  peg$silentFails++;
2551
2524
  if (input.charCodeAt(peg$currPos) === 39) {
2552
- s2 = peg$c33;
2525
+ s2 = peg$c35;
2553
2526
  peg$currPos++;
2554
2527
  } else {
2555
2528
  s2 = peg$FAILED;
2556
- if (peg$silentFails === 0) { peg$fail(peg$e69); }
2529
+ if (peg$silentFails === 0) { peg$fail(peg$e70); }
2557
2530
  }
2558
2531
  if (s2 === peg$FAILED) {
2559
2532
  s2 = peg$parsenewLine();
@@ -2581,6 +2554,28 @@ function peg$parse(input, options) {
2581
2554
  return s0;
2582
2555
  }
2583
2556
 
2557
+ function peg$parsespread() {
2558
+ var s0, s1, s2;
2559
+
2560
+ s0 = peg$currPos;
2561
+ s1 = peg$parseellipsis();
2562
+ if (s1 !== peg$FAILED) {
2563
+ s2 = peg$parsepipeline();
2564
+ if (s2 !== peg$FAILED) {
2565
+ peg$savedPos = s0;
2566
+ s0 = peg$f34(s2);
2567
+ } else {
2568
+ peg$currPos = s0;
2569
+ s0 = peg$FAILED;
2570
+ }
2571
+ } else {
2572
+ peg$currPos = s0;
2573
+ s0 = peg$FAILED;
2574
+ }
2575
+
2576
+ return s0;
2577
+ }
2578
+
2584
2579
  function peg$parsestep() {
2585
2580
  var s0;
2586
2581
 
@@ -2644,7 +2639,7 @@ function peg$parse(input, options) {
2644
2639
  peg$silentFails--;
2645
2640
  if (s0 === peg$FAILED) {
2646
2641
  s1 = peg$FAILED;
2647
- if (peg$silentFails === 0) { peg$fail(peg$e70); }
2642
+ if (peg$silentFails === 0) { peg$fail(peg$e71); }
2648
2643
  }
2649
2644
 
2650
2645
  return s0;
@@ -2661,7 +2656,7 @@ function peg$parse(input, options) {
2661
2656
  s0 = s1;
2662
2657
  peg$silentFails--;
2663
2658
  s1 = peg$FAILED;
2664
- if (peg$silentFails === 0) { peg$fail(peg$e71); }
2659
+ if (peg$silentFails === 0) { peg$fail(peg$e72); }
2665
2660
 
2666
2661
  return s0;
2667
2662
  }
@@ -2672,12 +2667,12 @@ function peg$parse(input, options) {
2672
2667
  s0 = peg$currPos;
2673
2668
  s1 = peg$currPos;
2674
2669
  peg$silentFails++;
2675
- if (input.substr(peg$currPos, 2) === peg$c34) {
2676
- s2 = peg$c34;
2670
+ if (input.substr(peg$currPos, 2) === peg$c36) {
2671
+ s2 = peg$c36;
2677
2672
  peg$currPos += 2;
2678
2673
  } else {
2679
2674
  s2 = peg$FAILED;
2680
- if (peg$silentFails === 0) { peg$fail(peg$e72); }
2675
+ if (peg$silentFails === 0) { peg$fail(peg$e73); }
2681
2676
  }
2682
2677
  peg$silentFails--;
2683
2678
  if (s2 === peg$FAILED) {
@@ -2748,7 +2743,7 @@ function peg$parse(input, options) {
2748
2743
  peg$silentFails--;
2749
2744
  if (s0 === peg$FAILED) {
2750
2745
  s1 = peg$FAILED;
2751
- if (peg$silentFails === 0) { peg$fail(peg$e73); }
2746
+ if (peg$silentFails === 0) { peg$fail(peg$e74); }
2752
2747
  }
2753
2748
 
2754
2749
  return s0;
@@ -2760,20 +2755,20 @@ function peg$parse(input, options) {
2760
2755
  peg$silentFails++;
2761
2756
  s0 = peg$currPos;
2762
2757
  if (input.charCodeAt(peg$currPos) === 96) {
2763
- s1 = peg$c35;
2758
+ s1 = peg$c37;
2764
2759
  peg$currPos++;
2765
2760
  } else {
2766
2761
  s1 = peg$FAILED;
2767
- if (peg$silentFails === 0) { peg$fail(peg$e75); }
2762
+ if (peg$silentFails === 0) { peg$fail(peg$e76); }
2768
2763
  }
2769
2764
  if (s1 !== peg$FAILED) {
2770
2765
  s2 = peg$parsetemplateLiteralContents();
2771
2766
  if (input.charCodeAt(peg$currPos) === 96) {
2772
- s3 = peg$c35;
2767
+ s3 = peg$c37;
2773
2768
  peg$currPos++;
2774
2769
  } else {
2775
2770
  s3 = peg$FAILED;
2776
- if (peg$silentFails === 0) { peg$fail(peg$e75); }
2771
+ if (peg$silentFails === 0) { peg$fail(peg$e76); }
2777
2772
  }
2778
2773
  if (s3 !== peg$FAILED) {
2779
2774
  s0 = s2;
@@ -2788,7 +2783,7 @@ function peg$parse(input, options) {
2788
2783
  peg$silentFails--;
2789
2784
  if (s0 === peg$FAILED) {
2790
2785
  s1 = peg$FAILED;
2791
- if (peg$silentFails === 0) { peg$fail(peg$e74); }
2786
+ if (peg$silentFails === 0) { peg$fail(peg$e75); }
2792
2787
  }
2793
2788
 
2794
2789
  return s0;
@@ -2801,19 +2796,19 @@ function peg$parse(input, options) {
2801
2796
  s1 = peg$currPos;
2802
2797
  peg$silentFails++;
2803
2798
  if (input.charCodeAt(peg$currPos) === 96) {
2804
- s2 = peg$c35;
2799
+ s2 = peg$c37;
2805
2800
  peg$currPos++;
2806
2801
  } else {
2807
2802
  s2 = peg$FAILED;
2808
- if (peg$silentFails === 0) { peg$fail(peg$e75); }
2803
+ if (peg$silentFails === 0) { peg$fail(peg$e76); }
2809
2804
  }
2810
2805
  if (s2 === peg$FAILED) {
2811
- if (input.substr(peg$currPos, 2) === peg$c34) {
2812
- s2 = peg$c34;
2806
+ if (input.substr(peg$currPos, 2) === peg$c36) {
2807
+ s2 = peg$c36;
2813
2808
  peg$currPos += 2;
2814
2809
  } else {
2815
2810
  s2 = peg$FAILED;
2816
- if (peg$silentFails === 0) { peg$fail(peg$e72); }
2811
+ if (peg$silentFails === 0) { peg$fail(peg$e73); }
2817
2812
  }
2818
2813
  }
2819
2814
  peg$silentFails--;
@@ -2890,22 +2885,22 @@ function peg$parse(input, options) {
2890
2885
 
2891
2886
  peg$silentFails++;
2892
2887
  s0 = peg$currPos;
2893
- if (input.substr(peg$currPos, 2) === peg$c34) {
2894
- s1 = peg$c34;
2888
+ if (input.substr(peg$currPos, 2) === peg$c36) {
2889
+ s1 = peg$c36;
2895
2890
  peg$currPos += 2;
2896
2891
  } else {
2897
2892
  s1 = peg$FAILED;
2898
- if (peg$silentFails === 0) { peg$fail(peg$e72); }
2893
+ if (peg$silentFails === 0) { peg$fail(peg$e73); }
2899
2894
  }
2900
2895
  if (s1 !== peg$FAILED) {
2901
2896
  s2 = peg$parseexpression();
2902
2897
  if (s2 !== peg$FAILED) {
2903
2898
  if (input.charCodeAt(peg$currPos) === 125) {
2904
- s3 = peg$c3;
2899
+ s3 = peg$c2;
2905
2900
  peg$currPos++;
2906
2901
  } else {
2907
2902
  s3 = peg$FAILED;
2908
- if (peg$silentFails === 0) { peg$fail(peg$e8); }
2903
+ if (peg$silentFails === 0) { peg$fail(peg$e6); }
2909
2904
  }
2910
2905
  if (s3 !== peg$FAILED) {
2911
2906
  s0 = s2;
@@ -2924,7 +2919,7 @@ function peg$parse(input, options) {
2924
2919
  peg$silentFails--;
2925
2920
  if (s0 === peg$FAILED) {
2926
2921
  s1 = peg$FAILED;
2927
- if (peg$silentFails === 0) { peg$fail(peg$e76); }
2922
+ if (peg$silentFails === 0) { peg$fail(peg$e77); }
2928
2923
  }
2929
2924
 
2930
2925
  return s0;
@@ -2940,7 +2935,7 @@ function peg$parse(input, options) {
2940
2935
  peg$currPos++;
2941
2936
  } else {
2942
2937
  s0 = peg$FAILED;
2943
- if (peg$silentFails === 0) { peg$fail(peg$e9); }
2938
+ if (peg$silentFails === 0) { peg$fail(peg$e7); }
2944
2939
  }
2945
2940
  }
2946
2941
 
@@ -2953,15 +2948,15 @@ function peg$parse(input, options) {
2953
2948
  peg$silentFails++;
2954
2949
  s0 = peg$currPos;
2955
2950
  if (input.charCodeAt(peg$currPos) === 123) {
2956
- s1 = peg$c21;
2951
+ s1 = peg$c23;
2957
2952
  peg$currPos++;
2958
2953
  } else {
2959
2954
  s1 = peg$FAILED;
2960
- if (peg$silentFails === 0) { peg$fail(peg$e46); }
2955
+ if (peg$silentFails === 0) { peg$fail(peg$e47); }
2961
2956
  }
2962
2957
  if (s1 !== peg$FAILED) {
2963
2958
  s2 = peg$parse__();
2964
- s3 = peg$parsetreeAssignments();
2959
+ s3 = peg$parsetreeEntries();
2965
2960
  if (s3 === peg$FAILED) {
2966
2961
  s3 = null;
2967
2962
  }
@@ -2981,25 +2976,66 @@ function peg$parse(input, options) {
2981
2976
  peg$silentFails--;
2982
2977
  if (s0 === peg$FAILED) {
2983
2978
  s1 = peg$FAILED;
2984
- if (peg$silentFails === 0) { peg$fail(peg$e77); }
2979
+ if (peg$silentFails === 0) { peg$fail(peg$e78); }
2980
+ }
2981
+
2982
+ return s0;
2983
+ }
2984
+
2985
+ function peg$parsetreeAssignment() {
2986
+ var s0, s1, s2, s3, s4, s5;
2987
+
2988
+ peg$silentFails++;
2989
+ s0 = peg$currPos;
2990
+ s1 = peg$parseidentifier();
2991
+ if (s1 !== peg$FAILED) {
2992
+ s2 = peg$parse__();
2993
+ if (input.charCodeAt(peg$currPos) === 61) {
2994
+ s3 = peg$c16;
2995
+ peg$currPos++;
2996
+ } else {
2997
+ s3 = peg$FAILED;
2998
+ if (peg$silentFails === 0) { peg$fail(peg$e36); }
2999
+ }
3000
+ if (s3 !== peg$FAILED) {
3001
+ s4 = peg$parse__();
3002
+ s5 = peg$parsepipeline();
3003
+ if (s5 !== peg$FAILED) {
3004
+ s0 = [ s1, s5 ];
3005
+ } else {
3006
+ peg$currPos = s0;
3007
+ s0 = peg$FAILED;
3008
+ }
3009
+ } else {
3010
+ peg$currPos = s0;
3011
+ s0 = peg$FAILED;
3012
+ }
3013
+ } else {
3014
+ peg$currPos = s0;
3015
+ s0 = peg$FAILED;
3016
+ }
3017
+ peg$silentFails--;
3018
+ if (s0 === peg$FAILED) {
3019
+ s1 = peg$FAILED;
3020
+ if (peg$silentFails === 0) { peg$fail(peg$e79); }
2985
3021
  }
2986
3022
 
2987
3023
  return s0;
2988
3024
  }
2989
3025
 
2990
- function peg$parsetreeAssignments() {
3026
+ function peg$parsetreeEntries() {
2991
3027
  var s0, s1, s2, s3, s4;
2992
3028
 
2993
3029
  s0 = peg$currPos;
2994
3030
  s1 = peg$currPos;
2995
3031
  s2 = [];
2996
- s3 = peg$parseassignmentOrShorthand();
3032
+ s3 = peg$parsetreeEntry();
2997
3033
  while (s3 !== peg$FAILED) {
2998
3034
  s2.push(s3);
2999
3035
  s3 = peg$currPos;
3000
3036
  s4 = peg$parseseparator();
3001
3037
  if (s4 !== peg$FAILED) {
3002
- s4 = peg$parseassignmentOrShorthand();
3038
+ s4 = peg$parsetreeEntry();
3003
3039
  if (s4 === peg$FAILED) {
3004
3040
  peg$currPos = s3;
3005
3041
  s3 = peg$FAILED;
@@ -3030,6 +3066,26 @@ function peg$parse(input, options) {
3030
3066
  return s0;
3031
3067
  }
3032
3068
 
3069
+ function peg$parsetreeEntry() {
3070
+ var s0, s1;
3071
+
3072
+ s0 = peg$parsespread();
3073
+ if (s0 === peg$FAILED) {
3074
+ s0 = peg$parsetreeAssignment();
3075
+ if (s0 === peg$FAILED) {
3076
+ s0 = peg$currPos;
3077
+ s1 = peg$parseidentifier();
3078
+ if (s1 !== peg$FAILED) {
3079
+ peg$savedPos = s0;
3080
+ s1 = peg$f41(s1);
3081
+ }
3082
+ s0 = s1;
3083
+ }
3084
+ }
3085
+
3086
+ return s0;
3087
+ }
3088
+
3033
3089
  function peg$parsewhitespaceWithNewLine() {
3034
3090
  var s0, s1, s2, s3, s4;
3035
3091
 
@@ -3090,8 +3146,6 @@ const peg$allowedStartRules = [
3090
3146
  "absoluteFilePath",
3091
3147
  "args",
3092
3148
  "array",
3093
- "assignment",
3094
- "assignmentOrShorthand",
3095
3149
  "callTarget",
3096
3150
  "closingBrace",
3097
3151
  "closingBracket",
@@ -3101,6 +3155,7 @@ const peg$allowedStartRules = [
3101
3155
  "doubleArrow",
3102
3156
  "doubleQuoteString",
3103
3157
  "doubleQuoteStringChar",
3158
+ "ellipsis",
3104
3159
  "escapedChar",
3105
3160
  "expr",
3106
3161
  "expression",
@@ -3121,9 +3176,9 @@ const peg$allowedStartRules = [
3121
3176
  "newLine",
3122
3177
  "number",
3123
3178
  "object",
3124
- "objectProperties",
3179
+ "objectEntries",
3180
+ "objectEntry",
3125
3181
  "objectProperty",
3126
- "objectPropertyOrShorthand",
3127
3182
  "parameterizedLambda",
3128
3183
  "parensArgs",
3129
3184
  "pipeline",
@@ -3140,6 +3195,7 @@ const peg$allowedStartRules = [
3140
3195
  "singleLineComment",
3141
3196
  "singleQuoteString",
3142
3197
  "singleQuoteStringChar",
3198
+ "spread",
3143
3199
  "step",
3144
3200
  "start",
3145
3201
  "string",
@@ -3154,7 +3210,9 @@ const peg$allowedStartRules = [
3154
3210
  "templateSubstitution",
3155
3211
  "textChar",
3156
3212
  "tree",
3157
- "treeAssignments",
3213
+ "treeAssignment",
3214
+ "treeEntries",
3215
+ "treeEntry",
3158
3216
  "whitespaceWithNewLine"
3159
3217
  ];
3160
3218