@weborigami/language 0.0.58 → 0.0.60

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.
@@ -1,4 +1,4 @@
1
- // @generated by Peggy 4.0.2.
1
+ // @generated by Peggy 4.0.3.
2
2
  //
3
3
  // https://peggyjs.org/
4
4
 
@@ -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, 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, 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 };
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, 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, 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 = "//";
@@ -209,37 +209,40 @@ function peg$parse(input, options) {
209
209
  var peg$c10 = "\\";
210
210
  var peg$c11 = ".";
211
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 = "`";
212
+ var peg$c13 = "\xAB";
213
+ var peg$c14 = "\xBB";
214
+ var peg$c15 = ":";
215
+ var peg$c16 = "-";
216
+ var peg$c17 = ">";
217
+ var peg$c18 = "=";
218
+ var peg$c19 = "/";
219
+ var peg$c20 = "/*";
220
+ var peg$c21 = "*/";
221
+ var peg$c22 = "\n";
222
+ var peg$c23 = "\r\n";
223
+ var peg$c24 = "\r";
224
+ var peg$c25 = "{";
225
+ var peg$c26 = "https";
226
+ var peg$c27 = "http";
227
+ var peg$c28 = "new";
228
+ var peg$c29 = "package";
229
+ var peg$c30 = "treehttps";
230
+ var peg$c31 = "treehttp";
231
+ var peg$c32 = "tree";
232
+ var peg$c33 = ",";
233
+ var peg$c34 = "#!";
234
+ var peg$c35 = "\u2192";
235
+ var peg$c36 = "->";
236
+ var peg$c37 = "'";
237
+ var peg$c38 = "${";
238
+ var peg$c39 = "`";
237
239
 
238
240
  var peg$r0 = /^[0-9]/;
239
- var peg$r1 = /^[^(){}[\]<>\-=,\/:`"'\\ \u2192\u21D2\t\n\r]/;
241
+ var peg$r1 = /^[^(){}[\]<>\-=,\/:`"'\xAB\xBB\\ \u2192\u21D2\t\n\r]/;
240
242
  var peg$r2 = /^[ \t]/;
241
- var peg$r3 = /^[^\n\r]/;
242
- var peg$r4 = /^[+\-]/;
243
+ var peg$r3 = /^[^(){}[\],:\/\\ \t\n\r]/;
244
+ var peg$r4 = /^[^\n\r]/;
245
+ var peg$r5 = /^[+\-]/;
243
246
 
244
247
  var peg$e0 = peg$otherExpectation("absolute file path");
245
248
  var peg$e1 = peg$literalExpectation("//", false);
@@ -267,60 +270,64 @@ function peg$parse(input, options) {
267
270
  var peg$e23 = peg$otherExpectation("function composition");
268
271
  var peg$e24 = peg$otherExpectation("parenthetical group");
269
272
  var peg$e25 = peg$literalExpectation("(", false);
270
- var peg$e26 = peg$otherExpectation("HTTP/HTTPS host");
271
- var peg$e27 = peg$literalExpectation(":", false);
272
- var peg$e28 = peg$otherExpectation("identifier");
273
- var peg$e29 = peg$classExpectation(["(", ")", "{", "}", "[", "]", "<", ">", "-", "=", ",", "/", ":", "`", "\"", "'", "\\", " ", "\u2192", "\u21D2", "\t", "\n", "\r"], true, false);
274
- var peg$e30 = peg$literalExpectation("-", false);
275
- var peg$e31 = peg$literalExpectation(">", false);
276
- var peg$e32 = peg$otherExpectation("arguments with implicit parentheses");
277
- var peg$e33 = peg$classExpectation([" ", "\t"], false, false);
278
- var peg$e34 = peg$otherExpectation("integer");
279
- var peg$e35 = peg$otherExpectation("lambda function");
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");
273
+ var peg$e26 = peg$otherExpectation("guillemet string");
274
+ var peg$e27 = peg$literalExpectation("\xAB", false);
275
+ var peg$e28 = peg$literalExpectation("\xBB", false);
276
+ var peg$e29 = peg$otherExpectation("HTTP/HTTPS host");
277
+ var peg$e30 = peg$literalExpectation(":", false);
278
+ var peg$e31 = peg$otherExpectation("identifier");
279
+ var peg$e32 = peg$classExpectation(["(", ")", "{", "}", "[", "]", "<", ">", "-", "=", ",", "/", ":", "`", "\"", "'", "\xAB", "\xBB", "\\", " ", "\u2192", "\u21D2", "\t", "\n", "\r"], true, false);
280
+ var peg$e33 = peg$literalExpectation("-", false);
281
+ var peg$e34 = peg$literalExpectation(">", false);
282
+ var peg$e35 = peg$otherExpectation("arguments with implicit parentheses");
283
+ var peg$e36 = peg$classExpectation([" ", "\t"], false, false);
284
+ var peg$e37 = peg$otherExpectation("integer");
285
+ var peg$e38 = peg$otherExpectation("lambda function");
286
+ var peg$e39 = peg$literalExpectation("=", false);
287
+ var peg$e40 = peg$otherExpectation("path with a leading slash");
288
+ var peg$e41 = peg$literalExpectation("/", false);
289
+ var peg$e42 = peg$otherExpectation("list");
290
+ var peg$e43 = peg$literalExpectation("/*", false);
291
+ var peg$e44 = peg$literalExpectation("*/", false);
292
+ var peg$e45 = peg$literalExpectation("\n", false);
293
+ var peg$e46 = peg$literalExpectation("\r\n", false);
294
+ var peg$e47 = peg$literalExpectation("\r", false);
295
+ var peg$e48 = peg$otherExpectation("number");
296
+ var peg$e49 = peg$otherExpectation("object literal");
297
+ var peg$e50 = peg$literalExpectation("{", false);
298
+ var peg$e51 = peg$otherExpectation("object property");
299
+ var peg$e52 = peg$otherExpectation("function arguments in parentheses");
300
+ var peg$e53 = peg$otherExpectation("slash-separated path");
301
+ var peg$e54 = peg$otherExpectation("path element");
302
+ var peg$e55 = peg$classExpectation(["(", ")", "{", "}", "[", "]", ",", ":", "/", "\\", " ", "\t", "\n", "\r"], true, false);
303
+ var peg$e56 = peg$otherExpectation("function call using protocol: syntax");
304
+ var peg$e57 = peg$otherExpectation("protocol");
305
+ var peg$e58 = peg$otherExpectation("reserved protocol");
306
+ var peg$e59 = peg$literalExpectation("https", false);
307
+ var peg$e60 = peg$literalExpectation("http", false);
308
+ var peg$e61 = peg$literalExpectation("new", false);
309
+ var peg$e62 = peg$literalExpectation("package", false);
310
+ var peg$e63 = peg$literalExpectation("treehttps", false);
311
+ var peg$e64 = peg$literalExpectation("treehttp", false);
312
+ var peg$e65 = peg$literalExpectation("tree", false);
313
+ var peg$e66 = peg$otherExpectation("scope reference");
314
+ var peg$e67 = peg$literalExpectation(",", false);
315
+ var peg$e68 = peg$literalExpectation("#!", false);
316
+ var peg$e69 = peg$classExpectation(["\n", "\r"], true, false);
317
+ var peg$e70 = peg$classExpectation(["+", "-"], false, false);
318
+ var peg$e71 = peg$literalExpectation("\u2192", false);
319
+ var peg$e72 = peg$literalExpectation("->", false);
320
+ var peg$e73 = peg$otherExpectation("single quote string");
321
+ var peg$e74 = peg$literalExpectation("'", false);
322
+ var peg$e75 = peg$otherExpectation("string");
323
+ var peg$e76 = peg$otherExpectation("template");
324
+ var peg$e77 = peg$literalExpectation("${", false);
325
+ var peg$e78 = peg$otherExpectation("template text");
326
+ var peg$e79 = peg$otherExpectation("template literal");
327
+ var peg$e80 = peg$literalExpectation("`", false);
328
+ var peg$e81 = peg$otherExpectation("template substitution");
329
+ var peg$e82 = peg$otherExpectation("tree literal");
330
+ var peg$e83 = peg$otherExpectation("tree assignment");
324
331
 
325
332
  var peg$f0 = function() { return ""; };
326
333
  var peg$f1 = function(path) {
@@ -351,64 +358,65 @@ function peg$parse(input, options) {
351
358
  }
352
359
  return annotate(makeFunctionCall(target, chain), location());
353
360
  };
354
- var peg$f10 = function() { return text(); };
355
- var peg$f11 = function(chars) { return chars.join(""); };
356
- var peg$f12 = function() {
361
+ var peg$f10 = function(chars) { return chars.join(""); };
362
+ var peg$f11 = function() { return text(); };
363
+ var peg$f12 = function(chars) { return chars.join(""); };
364
+ var peg$f13 = function() {
357
365
  return parseInt(text());
358
366
  };
359
- var peg$f13 = function(expr) {
367
+ var peg$f14 = function(expr) {
360
368
  return annotate([ops.lambda, null, expr], location());
361
369
  };
362
- var peg$f14 = function() { return annotate([""], location()); };
363
- var peg$f15 = function() { return null; };
364
- var peg$f16 = function(entries) {
370
+ var peg$f15 = function() { return annotate([""], location()); };
371
+ var peg$f16 = function() { return null; };
372
+ var peg$f17 = function(entries) {
365
373
  return annotate(makeObject(entries ?? [], ops.object), location());
366
374
  };
367
- var peg$f17 = function(key) {
375
+ var peg$f18 = function(key) {
368
376
  return annotate([key, [ops.scope, key]], location());
369
377
  };
370
- var peg$f18 = function(parameters, expr) {
378
+ var peg$f19 = function(parameters, expr) {
371
379
  return annotate([ops.lambda, parameters ?? [], expr], location());
372
380
  };
373
- var peg$f19 = function(list) {
381
+ var peg$f20 = function(list) {
374
382
  return list ?? annotate([undefined], location());
375
383
  };
376
- var peg$f20 = function(steps) {
384
+ var peg$f21 = function(steps) {
377
385
  return annotate(makePipeline(steps), location());
378
386
  };
379
- var peg$f21 = function(key) { return key.join(""); };
380
- var peg$f22 = function(protocol, host, path) {
387
+ var peg$f22 = function(chars) { return chars.join(""); };
388
+ var peg$f23 = function(protocol, host, path) {
381
389
  return annotate([protocol, host, ...(path ?? [])], location());
382
390
  };
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) {
391
+ var peg$f24 = function() { return ops.https; };
392
+ var peg$f25 = function() { return ops.http; };
393
+ var peg$f26 = function() { return ops.constructor; };
394
+ var peg$f27 = function() { return [ops.scope, "@package"] };
395
+ var peg$f28 = function() { return ops.treeHttps; };
396
+ var peg$f29 = function() { return ops.treeHttp; };
397
+ var peg$f30 = function() { return ops.treeHttps; };
398
+ var peg$f31 = function(key) {
391
399
  return annotate([ops.scope, key], location());
392
400
  };
393
- var peg$f31 = function() { return null; };
394
401
  var peg$f32 = function() { return null; };
395
- var peg$f33 = function(chars) { return chars.join(""); };
396
- var peg$f34 = function(expr) { return [ops.spread, expr]; };
397
- var peg$f35 = function(contents) {
402
+ var peg$f33 = function() { return null; };
403
+ var peg$f34 = function(chars) { return chars.join(""); };
404
+ var peg$f35 = function(expr) { return [ops.spread, expr]; };
405
+ var peg$f36 = function(contents) {
398
406
  return annotate([ops.lambda, null, contents], location());
399
407
  };
400
- var peg$f36 = function(parts) {
408
+ var peg$f37 = function(parts) {
401
409
  return annotate(makeTemplate(parts), location());
402
410
  };
403
- var peg$f37 = function(chars) { return chars.join(""); };
404
- var peg$f38 = function(parts) {
411
+ var peg$f38 = function(chars) { return chars.join(""); };
412
+ var peg$f39 = function(parts) {
405
413
  return annotate(makeTemplate(parts), location());
406
414
  };
407
- var peg$f39 = function(chars) { return chars.join(""); };
408
- var peg$f40 = function(entries) {
415
+ var peg$f40 = function(chars) { return chars.join(""); };
416
+ var peg$f41 = function(entries) {
409
417
  return annotate(makeObject(entries ?? [], ops.tree), location());
410
418
  };
411
- var peg$f41 = function(key) {
419
+ var peg$f42 = function(key) {
412
420
  return annotate([key, [ops.inherited, key]], location());
413
421
  };
414
422
  var peg$currPos = options.peg$currPos | 0;
@@ -1263,6 +1271,91 @@ function peg$parse(input, options) {
1263
1271
  return s0;
1264
1272
  }
1265
1273
 
1274
+ function peg$parseguillemetString() {
1275
+ var s0, s1, s2, s3;
1276
+
1277
+ peg$silentFails++;
1278
+ s0 = peg$currPos;
1279
+ if (input.charCodeAt(peg$currPos) === 171) {
1280
+ s1 = peg$c13;
1281
+ peg$currPos++;
1282
+ } else {
1283
+ s1 = peg$FAILED;
1284
+ if (peg$silentFails === 0) { peg$fail(peg$e27); }
1285
+ }
1286
+ if (s1 !== peg$FAILED) {
1287
+ s2 = [];
1288
+ s3 = peg$parseguillemetStringChar();
1289
+ while (s3 !== peg$FAILED) {
1290
+ s2.push(s3);
1291
+ s3 = peg$parseguillemetStringChar();
1292
+ }
1293
+ if (input.charCodeAt(peg$currPos) === 187) {
1294
+ s3 = peg$c14;
1295
+ peg$currPos++;
1296
+ } else {
1297
+ s3 = peg$FAILED;
1298
+ if (peg$silentFails === 0) { peg$fail(peg$e28); }
1299
+ }
1300
+ if (s3 !== peg$FAILED) {
1301
+ peg$savedPos = s0;
1302
+ s0 = peg$f10(s2);
1303
+ } else {
1304
+ peg$currPos = s0;
1305
+ s0 = peg$FAILED;
1306
+ }
1307
+ } else {
1308
+ peg$currPos = s0;
1309
+ s0 = peg$FAILED;
1310
+ }
1311
+ peg$silentFails--;
1312
+ if (s0 === peg$FAILED) {
1313
+ s1 = peg$FAILED;
1314
+ if (peg$silentFails === 0) { peg$fail(peg$e26); }
1315
+ }
1316
+
1317
+ return s0;
1318
+ }
1319
+
1320
+ function peg$parseguillemetStringChar() {
1321
+ var s0, s1, s2;
1322
+
1323
+ s0 = peg$currPos;
1324
+ s1 = peg$currPos;
1325
+ peg$silentFails++;
1326
+ if (input.charCodeAt(peg$currPos) === 187) {
1327
+ s2 = peg$c14;
1328
+ peg$currPos++;
1329
+ } else {
1330
+ s2 = peg$FAILED;
1331
+ if (peg$silentFails === 0) { peg$fail(peg$e28); }
1332
+ }
1333
+ if (s2 === peg$FAILED) {
1334
+ s2 = peg$parsenewLine();
1335
+ }
1336
+ peg$silentFails--;
1337
+ if (s2 === peg$FAILED) {
1338
+ s1 = undefined;
1339
+ } else {
1340
+ peg$currPos = s1;
1341
+ s1 = peg$FAILED;
1342
+ }
1343
+ if (s1 !== peg$FAILED) {
1344
+ s2 = peg$parsetextChar();
1345
+ if (s2 !== peg$FAILED) {
1346
+ s0 = s2;
1347
+ } else {
1348
+ peg$currPos = s0;
1349
+ s0 = peg$FAILED;
1350
+ }
1351
+ } else {
1352
+ peg$currPos = s0;
1353
+ s0 = peg$FAILED;
1354
+ }
1355
+
1356
+ return s0;
1357
+ }
1358
+
1266
1359
  function peg$parsehost() {
1267
1360
  var s0, s1, s2, s3, s4;
1268
1361
 
@@ -1272,11 +1365,11 @@ function peg$parse(input, options) {
1272
1365
  if (s1 !== peg$FAILED) {
1273
1366
  s2 = peg$currPos;
1274
1367
  if (input.charCodeAt(peg$currPos) === 58) {
1275
- s3 = peg$c13;
1368
+ s3 = peg$c15;
1276
1369
  peg$currPos++;
1277
1370
  } else {
1278
1371
  s3 = peg$FAILED;
1279
- if (peg$silentFails === 0) { peg$fail(peg$e27); }
1372
+ if (peg$silentFails === 0) { peg$fail(peg$e30); }
1280
1373
  }
1281
1374
  if (s3 !== peg$FAILED) {
1282
1375
  s4 = peg$parsenumber();
@@ -1295,7 +1388,7 @@ function peg$parse(input, options) {
1295
1388
  s2 = null;
1296
1389
  }
1297
1390
  peg$savedPos = s0;
1298
- s0 = peg$f10();
1391
+ s0 = peg$f11();
1299
1392
  } else {
1300
1393
  peg$currPos = s0;
1301
1394
  s0 = peg$FAILED;
@@ -1303,7 +1396,7 @@ function peg$parse(input, options) {
1303
1396
  peg$silentFails--;
1304
1397
  if (s0 === peg$FAILED) {
1305
1398
  s1 = peg$FAILED;
1306
- if (peg$silentFails === 0) { peg$fail(peg$e26); }
1399
+ if (peg$silentFails === 0) { peg$fail(peg$e29); }
1307
1400
  }
1308
1401
 
1309
1402
  return s0;
@@ -1326,13 +1419,13 @@ function peg$parse(input, options) {
1326
1419
  }
1327
1420
  if (s1 !== peg$FAILED) {
1328
1421
  peg$savedPos = s0;
1329
- s1 = peg$f11(s1);
1422
+ s1 = peg$f12(s1);
1330
1423
  }
1331
1424
  s0 = s1;
1332
1425
  peg$silentFails--;
1333
1426
  if (s0 === peg$FAILED) {
1334
1427
  s1 = peg$FAILED;
1335
- if (peg$silentFails === 0) { peg$fail(peg$e28); }
1428
+ if (peg$silentFails === 0) { peg$fail(peg$e31); }
1336
1429
  }
1337
1430
 
1338
1431
  return s0;
@@ -1346,26 +1439,26 @@ function peg$parse(input, options) {
1346
1439
  peg$currPos++;
1347
1440
  } else {
1348
1441
  s0 = peg$FAILED;
1349
- if (peg$silentFails === 0) { peg$fail(peg$e29); }
1442
+ if (peg$silentFails === 0) { peg$fail(peg$e32); }
1350
1443
  }
1351
1444
  if (s0 === peg$FAILED) {
1352
1445
  s0 = peg$currPos;
1353
1446
  if (input.charCodeAt(peg$currPos) === 45) {
1354
- s1 = peg$c14;
1447
+ s1 = peg$c16;
1355
1448
  peg$currPos++;
1356
1449
  } else {
1357
1450
  s1 = peg$FAILED;
1358
- if (peg$silentFails === 0) { peg$fail(peg$e30); }
1451
+ if (peg$silentFails === 0) { peg$fail(peg$e33); }
1359
1452
  }
1360
1453
  if (s1 !== peg$FAILED) {
1361
1454
  s2 = peg$currPos;
1362
1455
  peg$silentFails++;
1363
1456
  if (input.charCodeAt(peg$currPos) === 62) {
1364
- s3 = peg$c15;
1457
+ s3 = peg$c17;
1365
1458
  peg$currPos++;
1366
1459
  } else {
1367
1460
  s3 = peg$FAILED;
1368
- if (peg$silentFails === 0) { peg$fail(peg$e31); }
1461
+ if (peg$silentFails === 0) { peg$fail(peg$e34); }
1369
1462
  }
1370
1463
  peg$silentFails--;
1371
1464
  if (s3 === peg$FAILED) {
@@ -1447,7 +1540,7 @@ function peg$parse(input, options) {
1447
1540
  }
1448
1541
 
1449
1542
  function peg$parseimplicitParensArgs() {
1450
- var s0, s1, s2;
1543
+ var s0, s1, s2, s3, s4, s5;
1451
1544
 
1452
1545
  peg$silentFails++;
1453
1546
  s0 = peg$currPos;
@@ -1462,8 +1555,36 @@ function peg$parse(input, options) {
1462
1555
  s1 = peg$FAILED;
1463
1556
  }
1464
1557
  if (s1 !== peg$FAILED) {
1465
- s2 = peg$parselist();
1558
+ s2 = peg$currPos;
1559
+ s3 = [];
1560
+ s4 = peg$parsestep();
1561
+ while (s4 !== peg$FAILED) {
1562
+ s3.push(s4);
1563
+ s4 = peg$currPos;
1564
+ s5 = peg$parseseparator();
1565
+ if (s5 !== peg$FAILED) {
1566
+ s5 = peg$parsestep();
1567
+ if (s5 === peg$FAILED) {
1568
+ peg$currPos = s4;
1569
+ s4 = peg$FAILED;
1570
+ } else {
1571
+ s4 = s5;
1572
+ }
1573
+ } else {
1574
+ s4 = s5;
1575
+ }
1576
+ }
1577
+ if (s3.length < 1) {
1578
+ peg$currPos = s2;
1579
+ s2 = peg$FAILED;
1580
+ } else {
1581
+ s2 = s3;
1582
+ }
1466
1583
  if (s2 !== peg$FAILED) {
1584
+ s3 = peg$parseseparator();
1585
+ if (s3 === peg$FAILED) {
1586
+ s3 = null;
1587
+ }
1467
1588
  s0 = s2;
1468
1589
  } else {
1469
1590
  peg$currPos = s0;
@@ -1476,7 +1597,7 @@ function peg$parse(input, options) {
1476
1597
  peg$silentFails--;
1477
1598
  if (s0 === peg$FAILED) {
1478
1599
  s1 = peg$FAILED;
1479
- if (peg$silentFails === 0) { peg$fail(peg$e32); }
1600
+ if (peg$silentFails === 0) { peg$fail(peg$e35); }
1480
1601
  }
1481
1602
 
1482
1603
  return s0;
@@ -1490,7 +1611,7 @@ function peg$parse(input, options) {
1490
1611
  peg$currPos++;
1491
1612
  } else {
1492
1613
  s0 = peg$FAILED;
1493
- if (peg$silentFails === 0) { peg$fail(peg$e33); }
1614
+ if (peg$silentFails === 0) { peg$fail(peg$e36); }
1494
1615
  }
1495
1616
 
1496
1617
  return s0;
@@ -1508,7 +1629,7 @@ function peg$parse(input, options) {
1508
1629
  s2 = peg$parsedigits();
1509
1630
  if (s2 !== peg$FAILED) {
1510
1631
  peg$savedPos = s0;
1511
- s0 = peg$f12();
1632
+ s0 = peg$f13();
1512
1633
  } else {
1513
1634
  peg$currPos = s0;
1514
1635
  s0 = peg$FAILED;
@@ -1516,7 +1637,7 @@ function peg$parse(input, options) {
1516
1637
  peg$silentFails--;
1517
1638
  if (s0 === peg$FAILED) {
1518
1639
  s1 = peg$FAILED;
1519
- if (peg$silentFails === 0) { peg$fail(peg$e34); }
1640
+ if (peg$silentFails === 0) { peg$fail(peg$e37); }
1520
1641
  }
1521
1642
 
1522
1643
  return s0;
@@ -1528,18 +1649,18 @@ function peg$parse(input, options) {
1528
1649
  peg$silentFails++;
1529
1650
  s0 = peg$currPos;
1530
1651
  if (input.charCodeAt(peg$currPos) === 61) {
1531
- s1 = peg$c16;
1652
+ s1 = peg$c18;
1532
1653
  peg$currPos++;
1533
1654
  } else {
1534
1655
  s1 = peg$FAILED;
1535
- if (peg$silentFails === 0) { peg$fail(peg$e36); }
1656
+ if (peg$silentFails === 0) { peg$fail(peg$e39); }
1536
1657
  }
1537
1658
  if (s1 !== peg$FAILED) {
1538
1659
  s2 = peg$parse__();
1539
1660
  s3 = peg$parsepipeline();
1540
1661
  if (s3 !== peg$FAILED) {
1541
1662
  peg$savedPos = s0;
1542
- s0 = peg$f13(s3);
1663
+ s0 = peg$f14(s3);
1543
1664
  } else {
1544
1665
  peg$currPos = s0;
1545
1666
  s0 = peg$FAILED;
@@ -1551,7 +1672,7 @@ function peg$parse(input, options) {
1551
1672
  peg$silentFails--;
1552
1673
  if (s0 === peg$FAILED) {
1553
1674
  s1 = peg$FAILED;
1554
- if (peg$silentFails === 0) { peg$fail(peg$e35); }
1675
+ if (peg$silentFails === 0) { peg$fail(peg$e38); }
1555
1676
  }
1556
1677
 
1557
1678
  return s0;
@@ -1563,11 +1684,11 @@ function peg$parse(input, options) {
1563
1684
  peg$silentFails++;
1564
1685
  s0 = peg$currPos;
1565
1686
  if (input.charCodeAt(peg$currPos) === 47) {
1566
- s1 = peg$c17;
1687
+ s1 = peg$c19;
1567
1688
  peg$currPos++;
1568
1689
  } else {
1569
1690
  s1 = peg$FAILED;
1570
- if (peg$silentFails === 0) { peg$fail(peg$e38); }
1691
+ if (peg$silentFails === 0) { peg$fail(peg$e41); }
1571
1692
  }
1572
1693
  if (s1 !== peg$FAILED) {
1573
1694
  s2 = peg$parsepath();
@@ -1579,22 +1700,22 @@ function peg$parse(input, options) {
1579
1700
  if (s0 === peg$FAILED) {
1580
1701
  s0 = peg$currPos;
1581
1702
  if (input.charCodeAt(peg$currPos) === 47) {
1582
- s1 = peg$c17;
1703
+ s1 = peg$c19;
1583
1704
  peg$currPos++;
1584
1705
  } else {
1585
1706
  s1 = peg$FAILED;
1586
- if (peg$silentFails === 0) { peg$fail(peg$e38); }
1707
+ if (peg$silentFails === 0) { peg$fail(peg$e41); }
1587
1708
  }
1588
1709
  if (s1 !== peg$FAILED) {
1589
1710
  peg$savedPos = s0;
1590
- s1 = peg$f14();
1711
+ s1 = peg$f15();
1591
1712
  }
1592
1713
  s0 = s1;
1593
1714
  }
1594
1715
  peg$silentFails--;
1595
1716
  if (s0 === peg$FAILED) {
1596
1717
  s1 = peg$FAILED;
1597
- if (peg$silentFails === 0) { peg$fail(peg$e37); }
1718
+ if (peg$silentFails === 0) { peg$fail(peg$e40); }
1598
1719
  }
1599
1720
 
1600
1721
  return s0;
@@ -1643,7 +1764,7 @@ function peg$parse(input, options) {
1643
1764
  peg$silentFails--;
1644
1765
  if (s0 === peg$FAILED) {
1645
1766
  s1 = peg$FAILED;
1646
- if (peg$silentFails === 0) { peg$fail(peg$e39); }
1767
+ if (peg$silentFails === 0) { peg$fail(peg$e42); }
1647
1768
  }
1648
1769
 
1649
1770
  return s0;
@@ -1653,24 +1774,24 @@ function peg$parse(input, options) {
1653
1774
  var s0, s1, s2, s3, s4, s5;
1654
1775
 
1655
1776
  s0 = peg$currPos;
1656
- if (input.substr(peg$currPos, 2) === peg$c18) {
1657
- s1 = peg$c18;
1777
+ if (input.substr(peg$currPos, 2) === peg$c20) {
1778
+ s1 = peg$c20;
1658
1779
  peg$currPos += 2;
1659
1780
  } else {
1660
1781
  s1 = peg$FAILED;
1661
- if (peg$silentFails === 0) { peg$fail(peg$e40); }
1782
+ if (peg$silentFails === 0) { peg$fail(peg$e43); }
1662
1783
  }
1663
1784
  if (s1 !== peg$FAILED) {
1664
1785
  s2 = [];
1665
1786
  s3 = peg$currPos;
1666
1787
  s4 = peg$currPos;
1667
1788
  peg$silentFails++;
1668
- if (input.substr(peg$currPos, 2) === peg$c19) {
1669
- s5 = peg$c19;
1789
+ if (input.substr(peg$currPos, 2) === peg$c21) {
1790
+ s5 = peg$c21;
1670
1791
  peg$currPos += 2;
1671
1792
  } else {
1672
1793
  s5 = peg$FAILED;
1673
- if (peg$silentFails === 0) { peg$fail(peg$e41); }
1794
+ if (peg$silentFails === 0) { peg$fail(peg$e44); }
1674
1795
  }
1675
1796
  peg$silentFails--;
1676
1797
  if (s5 === peg$FAILED) {
@@ -1703,12 +1824,12 @@ function peg$parse(input, options) {
1703
1824
  s3 = peg$currPos;
1704
1825
  s4 = peg$currPos;
1705
1826
  peg$silentFails++;
1706
- if (input.substr(peg$currPos, 2) === peg$c19) {
1707
- s5 = peg$c19;
1827
+ if (input.substr(peg$currPos, 2) === peg$c21) {
1828
+ s5 = peg$c21;
1708
1829
  peg$currPos += 2;
1709
1830
  } else {
1710
1831
  s5 = peg$FAILED;
1711
- if (peg$silentFails === 0) { peg$fail(peg$e41); }
1832
+ if (peg$silentFails === 0) { peg$fail(peg$e44); }
1712
1833
  }
1713
1834
  peg$silentFails--;
1714
1835
  if (s5 === peg$FAILED) {
@@ -1737,16 +1858,16 @@ function peg$parse(input, options) {
1737
1858
  s3 = peg$FAILED;
1738
1859
  }
1739
1860
  }
1740
- if (input.substr(peg$currPos, 2) === peg$c19) {
1741
- s3 = peg$c19;
1861
+ if (input.substr(peg$currPos, 2) === peg$c21) {
1862
+ s3 = peg$c21;
1742
1863
  peg$currPos += 2;
1743
1864
  } else {
1744
1865
  s3 = peg$FAILED;
1745
- if (peg$silentFails === 0) { peg$fail(peg$e41); }
1866
+ if (peg$silentFails === 0) { peg$fail(peg$e44); }
1746
1867
  }
1747
1868
  if (s3 !== peg$FAILED) {
1748
1869
  peg$savedPos = s0;
1749
- s0 = peg$f15();
1870
+ s0 = peg$f16();
1750
1871
  } else {
1751
1872
  peg$currPos = s0;
1752
1873
  s0 = peg$FAILED;
@@ -1763,27 +1884,27 @@ function peg$parse(input, options) {
1763
1884
  var s0;
1764
1885
 
1765
1886
  if (input.charCodeAt(peg$currPos) === 10) {
1766
- s0 = peg$c20;
1887
+ s0 = peg$c22;
1767
1888
  peg$currPos++;
1768
1889
  } else {
1769
1890
  s0 = peg$FAILED;
1770
- if (peg$silentFails === 0) { peg$fail(peg$e42); }
1891
+ if (peg$silentFails === 0) { peg$fail(peg$e45); }
1771
1892
  }
1772
1893
  if (s0 === peg$FAILED) {
1773
- if (input.substr(peg$currPos, 2) === peg$c21) {
1774
- s0 = peg$c21;
1894
+ if (input.substr(peg$currPos, 2) === peg$c23) {
1895
+ s0 = peg$c23;
1775
1896
  peg$currPos += 2;
1776
1897
  } else {
1777
1898
  s0 = peg$FAILED;
1778
- if (peg$silentFails === 0) { peg$fail(peg$e43); }
1899
+ if (peg$silentFails === 0) { peg$fail(peg$e46); }
1779
1900
  }
1780
1901
  if (s0 === peg$FAILED) {
1781
1902
  if (input.charCodeAt(peg$currPos) === 13) {
1782
- s0 = peg$c22;
1903
+ s0 = peg$c24;
1783
1904
  peg$currPos++;
1784
1905
  } else {
1785
1906
  s0 = peg$FAILED;
1786
- if (peg$silentFails === 0) { peg$fail(peg$e44); }
1907
+ if (peg$silentFails === 0) { peg$fail(peg$e47); }
1787
1908
  }
1788
1909
  }
1789
1910
  }
@@ -1802,7 +1923,7 @@ function peg$parse(input, options) {
1802
1923
  peg$silentFails--;
1803
1924
  if (s0 === peg$FAILED) {
1804
1925
  s1 = peg$FAILED;
1805
- if (peg$silentFails === 0) { peg$fail(peg$e45); }
1926
+ if (peg$silentFails === 0) { peg$fail(peg$e48); }
1806
1927
  }
1807
1928
 
1808
1929
  return s0;
@@ -1814,11 +1935,11 @@ function peg$parse(input, options) {
1814
1935
  peg$silentFails++;
1815
1936
  s0 = peg$currPos;
1816
1937
  if (input.charCodeAt(peg$currPos) === 123) {
1817
- s1 = peg$c23;
1938
+ s1 = peg$c25;
1818
1939
  peg$currPos++;
1819
1940
  } else {
1820
1941
  s1 = peg$FAILED;
1821
- if (peg$silentFails === 0) { peg$fail(peg$e47); }
1942
+ if (peg$silentFails === 0) { peg$fail(peg$e50); }
1822
1943
  }
1823
1944
  if (s1 !== peg$FAILED) {
1824
1945
  s2 = peg$parse__();
@@ -1836,7 +1957,7 @@ function peg$parse(input, options) {
1836
1957
  }
1837
1958
  if (s5 !== peg$FAILED) {
1838
1959
  peg$savedPos = s0;
1839
- s0 = peg$f16(s3);
1960
+ s0 = peg$f17(s3);
1840
1961
  } else {
1841
1962
  peg$currPos = s0;
1842
1963
  s0 = peg$FAILED;
@@ -1848,7 +1969,7 @@ function peg$parse(input, options) {
1848
1969
  peg$silentFails--;
1849
1970
  if (s0 === peg$FAILED) {
1850
1971
  s1 = peg$FAILED;
1851
- if (peg$silentFails === 0) { peg$fail(peg$e46); }
1972
+ if (peg$silentFails === 0) { peg$fail(peg$e49); }
1852
1973
  }
1853
1974
 
1854
1975
  return s0;
@@ -1908,7 +2029,7 @@ function peg$parse(input, options) {
1908
2029
  s1 = peg$parseidentifierOrString();
1909
2030
  if (s1 !== peg$FAILED) {
1910
2031
  peg$savedPos = s0;
1911
- s1 = peg$f17(s1);
2032
+ s1 = peg$f18(s1);
1912
2033
  }
1913
2034
  s0 = s1;
1914
2035
  }
@@ -1926,11 +2047,11 @@ function peg$parse(input, options) {
1926
2047
  if (s1 !== peg$FAILED) {
1927
2048
  s2 = peg$parse__();
1928
2049
  if (input.charCodeAt(peg$currPos) === 58) {
1929
- s3 = peg$c13;
2050
+ s3 = peg$c15;
1930
2051
  peg$currPos++;
1931
2052
  } else {
1932
2053
  s3 = peg$FAILED;
1933
- if (peg$silentFails === 0) { peg$fail(peg$e27); }
2054
+ if (peg$silentFails === 0) { peg$fail(peg$e30); }
1934
2055
  }
1935
2056
  if (s3 !== peg$FAILED) {
1936
2057
  s4 = peg$parse__();
@@ -1952,7 +2073,7 @@ function peg$parse(input, options) {
1952
2073
  peg$silentFails--;
1953
2074
  if (s0 === peg$FAILED) {
1954
2075
  s1 = peg$FAILED;
1955
- if (peg$silentFails === 0) { peg$fail(peg$e48); }
2076
+ if (peg$silentFails === 0) { peg$fail(peg$e51); }
1956
2077
  }
1957
2078
 
1958
2079
  return s0;
@@ -1991,7 +2112,7 @@ function peg$parse(input, options) {
1991
2112
  s9 = peg$parsepipeline();
1992
2113
  if (s9 !== peg$FAILED) {
1993
2114
  peg$savedPos = s0;
1994
- s0 = peg$f18(s3, s9);
2115
+ s0 = peg$f19(s3, s9);
1995
2116
  } else {
1996
2117
  peg$currPos = s0;
1997
2118
  s0 = peg$FAILED;
@@ -2040,7 +2161,7 @@ function peg$parse(input, options) {
2040
2161
  }
2041
2162
  if (s5 !== peg$FAILED) {
2042
2163
  peg$savedPos = s0;
2043
- s0 = peg$f19(s3);
2164
+ s0 = peg$f20(s3);
2044
2165
  } else {
2045
2166
  peg$currPos = s0;
2046
2167
  s0 = peg$FAILED;
@@ -2052,7 +2173,7 @@ function peg$parse(input, options) {
2052
2173
  peg$silentFails--;
2053
2174
  if (s0 === peg$FAILED) {
2054
2175
  s1 = peg$FAILED;
2055
- if (peg$silentFails === 0) { peg$fail(peg$e49); }
2176
+ if (peg$silentFails === 0) { peg$fail(peg$e52); }
2056
2177
  }
2057
2178
 
2058
2179
  return s0;
@@ -2106,7 +2227,7 @@ function peg$parse(input, options) {
2106
2227
  }
2107
2228
  if (s1 !== peg$FAILED) {
2108
2229
  peg$savedPos = s0;
2109
- s1 = peg$f20(s1);
2230
+ s1 = peg$f21(s1);
2110
2231
  }
2111
2232
  s0 = s1;
2112
2233
 
@@ -2124,11 +2245,11 @@ function peg$parse(input, options) {
2124
2245
  s1.push(s2);
2125
2246
  s2 = peg$currPos;
2126
2247
  if (input.charCodeAt(peg$currPos) === 47) {
2127
- s3 = peg$c17;
2248
+ s3 = peg$c19;
2128
2249
  peg$currPos++;
2129
2250
  } else {
2130
2251
  s3 = peg$FAILED;
2131
- if (peg$silentFails === 0) { peg$fail(peg$e38); }
2252
+ if (peg$silentFails === 0) { peg$fail(peg$e41); }
2132
2253
  }
2133
2254
  if (s3 !== peg$FAILED) {
2134
2255
  s3 = peg$parsepathKey();
@@ -2145,7 +2266,7 @@ function peg$parse(input, options) {
2145
2266
  }
2146
2267
  peg$silentFails--;
2147
2268
  s1 = peg$FAILED;
2148
- if (peg$silentFails === 0) { peg$fail(peg$e50); }
2269
+ if (peg$silentFails === 0) { peg$fail(peg$e53); }
2149
2270
 
2150
2271
  return s0;
2151
2272
  }
@@ -2156,17 +2277,34 @@ function peg$parse(input, options) {
2156
2277
  peg$silentFails++;
2157
2278
  s0 = peg$currPos;
2158
2279
  s1 = [];
2159
- s2 = peg$parseidentifierChar();
2280
+ s2 = peg$parsepathKeyChar();
2160
2281
  while (s2 !== peg$FAILED) {
2161
2282
  s1.push(s2);
2162
- s2 = peg$parseidentifierChar();
2283
+ s2 = peg$parsepathKeyChar();
2163
2284
  }
2164
2285
  peg$savedPos = s0;
2165
- s1 = peg$f21(s1);
2286
+ s1 = peg$f22(s1);
2166
2287
  s0 = s1;
2167
2288
  peg$silentFails--;
2168
2289
  s1 = peg$FAILED;
2169
- if (peg$silentFails === 0) { peg$fail(peg$e51); }
2290
+ if (peg$silentFails === 0) { peg$fail(peg$e54); }
2291
+
2292
+ return s0;
2293
+ }
2294
+
2295
+ function peg$parsepathKeyChar() {
2296
+ var s0;
2297
+
2298
+ s0 = input.charAt(peg$currPos);
2299
+ if (peg$r3.test(s0)) {
2300
+ peg$currPos++;
2301
+ } else {
2302
+ s0 = peg$FAILED;
2303
+ if (peg$silentFails === 0) { peg$fail(peg$e55); }
2304
+ }
2305
+ if (s0 === peg$FAILED) {
2306
+ s0 = peg$parseescapedChar();
2307
+ }
2170
2308
 
2171
2309
  return s0;
2172
2310
  }
@@ -2179,20 +2317,20 @@ function peg$parse(input, options) {
2179
2317
  s1 = peg$parseprotocol();
2180
2318
  if (s1 !== peg$FAILED) {
2181
2319
  if (input.charCodeAt(peg$currPos) === 58) {
2182
- s2 = peg$c13;
2320
+ s2 = peg$c15;
2183
2321
  peg$currPos++;
2184
2322
  } else {
2185
2323
  s2 = peg$FAILED;
2186
- if (peg$silentFails === 0) { peg$fail(peg$e27); }
2324
+ if (peg$silentFails === 0) { peg$fail(peg$e30); }
2187
2325
  }
2188
2326
  if (s2 !== peg$FAILED) {
2189
2327
  s3 = [];
2190
2328
  if (input.charCodeAt(peg$currPos) === 47) {
2191
- s4 = peg$c17;
2329
+ s4 = peg$c19;
2192
2330
  peg$currPos++;
2193
2331
  } else {
2194
2332
  s4 = peg$FAILED;
2195
- if (peg$silentFails === 0) { peg$fail(peg$e38); }
2333
+ if (peg$silentFails === 0) { peg$fail(peg$e41); }
2196
2334
  }
2197
2335
  while (s4 !== peg$FAILED) {
2198
2336
  s3.push(s4);
@@ -2200,11 +2338,11 @@ function peg$parse(input, options) {
2200
2338
  s4 = peg$FAILED;
2201
2339
  } else {
2202
2340
  if (input.charCodeAt(peg$currPos) === 47) {
2203
- s4 = peg$c17;
2341
+ s4 = peg$c19;
2204
2342
  peg$currPos++;
2205
2343
  } else {
2206
2344
  s4 = peg$FAILED;
2207
- if (peg$silentFails === 0) { peg$fail(peg$e38); }
2345
+ if (peg$silentFails === 0) { peg$fail(peg$e41); }
2208
2346
  }
2209
2347
  }
2210
2348
  }
@@ -2215,7 +2353,7 @@ function peg$parse(input, options) {
2215
2353
  s5 = null;
2216
2354
  }
2217
2355
  peg$savedPos = s0;
2218
- s0 = peg$f22(s1, s4, s5);
2356
+ s0 = peg$f23(s1, s4, s5);
2219
2357
  } else {
2220
2358
  peg$currPos = s0;
2221
2359
  s0 = peg$FAILED;
@@ -2231,7 +2369,7 @@ function peg$parse(input, options) {
2231
2369
  peg$silentFails--;
2232
2370
  if (s0 === peg$FAILED) {
2233
2371
  s1 = peg$FAILED;
2234
- if (peg$silentFails === 0) { peg$fail(peg$e52); }
2372
+ if (peg$silentFails === 0) { peg$fail(peg$e56); }
2235
2373
  }
2236
2374
 
2237
2375
  return s0;
@@ -2248,7 +2386,7 @@ function peg$parse(input, options) {
2248
2386
  peg$silentFails--;
2249
2387
  if (s0 === peg$FAILED) {
2250
2388
  s1 = peg$FAILED;
2251
- if (peg$silentFails === 0) { peg$fail(peg$e53); }
2389
+ if (peg$silentFails === 0) { peg$fail(peg$e57); }
2252
2390
  }
2253
2391
 
2254
2392
  return s0;
@@ -2259,100 +2397,100 @@ function peg$parse(input, options) {
2259
2397
 
2260
2398
  peg$silentFails++;
2261
2399
  s0 = peg$currPos;
2262
- if (input.substr(peg$currPos, 5) === peg$c24) {
2263
- s1 = peg$c24;
2400
+ if (input.substr(peg$currPos, 5) === peg$c26) {
2401
+ s1 = peg$c26;
2264
2402
  peg$currPos += 5;
2265
2403
  } else {
2266
2404
  s1 = peg$FAILED;
2267
- if (peg$silentFails === 0) { peg$fail(peg$e55); }
2405
+ if (peg$silentFails === 0) { peg$fail(peg$e59); }
2268
2406
  }
2269
2407
  if (s1 !== peg$FAILED) {
2270
2408
  peg$savedPos = s0;
2271
- s1 = peg$f23();
2409
+ s1 = peg$f24();
2272
2410
  }
2273
2411
  s0 = s1;
2274
2412
  if (s0 === peg$FAILED) {
2275
2413
  s0 = peg$currPos;
2276
- if (input.substr(peg$currPos, 4) === peg$c25) {
2277
- s1 = peg$c25;
2414
+ if (input.substr(peg$currPos, 4) === peg$c27) {
2415
+ s1 = peg$c27;
2278
2416
  peg$currPos += 4;
2279
2417
  } else {
2280
2418
  s1 = peg$FAILED;
2281
- if (peg$silentFails === 0) { peg$fail(peg$e56); }
2419
+ if (peg$silentFails === 0) { peg$fail(peg$e60); }
2282
2420
  }
2283
2421
  if (s1 !== peg$FAILED) {
2284
2422
  peg$savedPos = s0;
2285
- s1 = peg$f24();
2423
+ s1 = peg$f25();
2286
2424
  }
2287
2425
  s0 = s1;
2288
2426
  if (s0 === peg$FAILED) {
2289
2427
  s0 = peg$currPos;
2290
- if (input.substr(peg$currPos, 3) === peg$c26) {
2291
- s1 = peg$c26;
2428
+ if (input.substr(peg$currPos, 3) === peg$c28) {
2429
+ s1 = peg$c28;
2292
2430
  peg$currPos += 3;
2293
2431
  } else {
2294
2432
  s1 = peg$FAILED;
2295
- if (peg$silentFails === 0) { peg$fail(peg$e57); }
2433
+ if (peg$silentFails === 0) { peg$fail(peg$e61); }
2296
2434
  }
2297
2435
  if (s1 !== peg$FAILED) {
2298
2436
  peg$savedPos = s0;
2299
- s1 = peg$f25();
2437
+ s1 = peg$f26();
2300
2438
  }
2301
2439
  s0 = s1;
2302
2440
  if (s0 === peg$FAILED) {
2303
2441
  s0 = peg$currPos;
2304
- if (input.substr(peg$currPos, 7) === peg$c27) {
2305
- s1 = peg$c27;
2442
+ if (input.substr(peg$currPos, 7) === peg$c29) {
2443
+ s1 = peg$c29;
2306
2444
  peg$currPos += 7;
2307
2445
  } else {
2308
2446
  s1 = peg$FAILED;
2309
- if (peg$silentFails === 0) { peg$fail(peg$e58); }
2447
+ if (peg$silentFails === 0) { peg$fail(peg$e62); }
2310
2448
  }
2311
2449
  if (s1 !== peg$FAILED) {
2312
2450
  peg$savedPos = s0;
2313
- s1 = peg$f26();
2451
+ s1 = peg$f27();
2314
2452
  }
2315
2453
  s0 = s1;
2316
2454
  if (s0 === peg$FAILED) {
2317
2455
  s0 = peg$currPos;
2318
- if (input.substr(peg$currPos, 9) === peg$c28) {
2319
- s1 = peg$c28;
2456
+ if (input.substr(peg$currPos, 9) === peg$c30) {
2457
+ s1 = peg$c30;
2320
2458
  peg$currPos += 9;
2321
2459
  } else {
2322
2460
  s1 = peg$FAILED;
2323
- if (peg$silentFails === 0) { peg$fail(peg$e59); }
2461
+ if (peg$silentFails === 0) { peg$fail(peg$e63); }
2324
2462
  }
2325
2463
  if (s1 !== peg$FAILED) {
2326
2464
  peg$savedPos = s0;
2327
- s1 = peg$f27();
2465
+ s1 = peg$f28();
2328
2466
  }
2329
2467
  s0 = s1;
2330
2468
  if (s0 === peg$FAILED) {
2331
2469
  s0 = peg$currPos;
2332
- if (input.substr(peg$currPos, 8) === peg$c29) {
2333
- s1 = peg$c29;
2470
+ if (input.substr(peg$currPos, 8) === peg$c31) {
2471
+ s1 = peg$c31;
2334
2472
  peg$currPos += 8;
2335
2473
  } else {
2336
2474
  s1 = peg$FAILED;
2337
- if (peg$silentFails === 0) { peg$fail(peg$e60); }
2475
+ if (peg$silentFails === 0) { peg$fail(peg$e64); }
2338
2476
  }
2339
2477
  if (s1 !== peg$FAILED) {
2340
2478
  peg$savedPos = s0;
2341
- s1 = peg$f28();
2479
+ s1 = peg$f29();
2342
2480
  }
2343
2481
  s0 = s1;
2344
2482
  if (s0 === peg$FAILED) {
2345
2483
  s0 = peg$currPos;
2346
- if (input.substr(peg$currPos, 4) === peg$c30) {
2347
- s1 = peg$c30;
2484
+ if (input.substr(peg$currPos, 4) === peg$c32) {
2485
+ s1 = peg$c32;
2348
2486
  peg$currPos += 4;
2349
2487
  } else {
2350
2488
  s1 = peg$FAILED;
2351
- if (peg$silentFails === 0) { peg$fail(peg$e61); }
2489
+ if (peg$silentFails === 0) { peg$fail(peg$e65); }
2352
2490
  }
2353
2491
  if (s1 !== peg$FAILED) {
2354
2492
  peg$savedPos = s0;
2355
- s1 = peg$f29();
2493
+ s1 = peg$f30();
2356
2494
  }
2357
2495
  s0 = s1;
2358
2496
  }
@@ -2364,7 +2502,7 @@ function peg$parse(input, options) {
2364
2502
  peg$silentFails--;
2365
2503
  if (s0 === peg$FAILED) {
2366
2504
  s1 = peg$FAILED;
2367
- if (peg$silentFails === 0) { peg$fail(peg$e54); }
2505
+ if (peg$silentFails === 0) { peg$fail(peg$e58); }
2368
2506
  }
2369
2507
 
2370
2508
  return s0;
@@ -2378,13 +2516,13 @@ function peg$parse(input, options) {
2378
2516
  s1 = peg$parseidentifier();
2379
2517
  if (s1 !== peg$FAILED) {
2380
2518
  peg$savedPos = s0;
2381
- s1 = peg$f30(s1);
2519
+ s1 = peg$f31(s1);
2382
2520
  }
2383
2521
  s0 = s1;
2384
2522
  peg$silentFails--;
2385
2523
  if (s0 === peg$FAILED) {
2386
2524
  s1 = peg$FAILED;
2387
- if (peg$silentFails === 0) { peg$fail(peg$e62); }
2525
+ if (peg$silentFails === 0) { peg$fail(peg$e66); }
2388
2526
  }
2389
2527
 
2390
2528
  return s0;
@@ -2396,11 +2534,11 @@ function peg$parse(input, options) {
2396
2534
  s0 = peg$currPos;
2397
2535
  s1 = peg$parse__();
2398
2536
  if (input.charCodeAt(peg$currPos) === 44) {
2399
- s2 = peg$c31;
2537
+ s2 = peg$c33;
2400
2538
  peg$currPos++;
2401
2539
  } else {
2402
2540
  s2 = peg$FAILED;
2403
- if (peg$silentFails === 0) { peg$fail(peg$e63); }
2541
+ if (peg$silentFails === 0) { peg$fail(peg$e67); }
2404
2542
  }
2405
2543
  if (s2 !== peg$FAILED) {
2406
2544
  s3 = peg$parse__();
@@ -2421,34 +2559,34 @@ function peg$parse(input, options) {
2421
2559
  var s0, s1, s2, s3;
2422
2560
 
2423
2561
  s0 = peg$currPos;
2424
- if (input.substr(peg$currPos, 2) === peg$c32) {
2425
- s1 = peg$c32;
2562
+ if (input.substr(peg$currPos, 2) === peg$c34) {
2563
+ s1 = peg$c34;
2426
2564
  peg$currPos += 2;
2427
2565
  } else {
2428
2566
  s1 = peg$FAILED;
2429
- if (peg$silentFails === 0) { peg$fail(peg$e64); }
2567
+ if (peg$silentFails === 0) { peg$fail(peg$e68); }
2430
2568
  }
2431
2569
  if (s1 !== peg$FAILED) {
2432
2570
  s2 = [];
2433
2571
  s3 = input.charAt(peg$currPos);
2434
- if (peg$r3.test(s3)) {
2572
+ if (peg$r4.test(s3)) {
2435
2573
  peg$currPos++;
2436
2574
  } else {
2437
2575
  s3 = peg$FAILED;
2438
- if (peg$silentFails === 0) { peg$fail(peg$e65); }
2576
+ if (peg$silentFails === 0) { peg$fail(peg$e69); }
2439
2577
  }
2440
2578
  while (s3 !== peg$FAILED) {
2441
2579
  s2.push(s3);
2442
2580
  s3 = input.charAt(peg$currPos);
2443
- if (peg$r3.test(s3)) {
2581
+ if (peg$r4.test(s3)) {
2444
2582
  peg$currPos++;
2445
2583
  } else {
2446
2584
  s3 = peg$FAILED;
2447
- if (peg$silentFails === 0) { peg$fail(peg$e65); }
2585
+ if (peg$silentFails === 0) { peg$fail(peg$e69); }
2448
2586
  }
2449
2587
  }
2450
2588
  peg$savedPos = s0;
2451
- s0 = peg$f31();
2589
+ s0 = peg$f32();
2452
2590
  } else {
2453
2591
  peg$currPos = s0;
2454
2592
  s0 = peg$FAILED;
@@ -2461,11 +2599,11 @@ function peg$parse(input, options) {
2461
2599
  var s0;
2462
2600
 
2463
2601
  s0 = input.charAt(peg$currPos);
2464
- if (peg$r4.test(s0)) {
2602
+ if (peg$r5.test(s0)) {
2465
2603
  peg$currPos++;
2466
2604
  } else {
2467
2605
  s0 = peg$FAILED;
2468
- if (peg$silentFails === 0) { peg$fail(peg$e66); }
2606
+ if (peg$silentFails === 0) { peg$fail(peg$e70); }
2469
2607
  }
2470
2608
 
2471
2609
  return s0;
@@ -2475,19 +2613,19 @@ function peg$parse(input, options) {
2475
2613
  var s0;
2476
2614
 
2477
2615
  if (input.charCodeAt(peg$currPos) === 8594) {
2478
- s0 = peg$c33;
2616
+ s0 = peg$c35;
2479
2617
  peg$currPos++;
2480
2618
  } else {
2481
2619
  s0 = peg$FAILED;
2482
- if (peg$silentFails === 0) { peg$fail(peg$e67); }
2620
+ if (peg$silentFails === 0) { peg$fail(peg$e71); }
2483
2621
  }
2484
2622
  if (s0 === peg$FAILED) {
2485
- if (input.substr(peg$currPos, 2) === peg$c34) {
2486
- s0 = peg$c34;
2623
+ if (input.substr(peg$currPos, 2) === peg$c36) {
2624
+ s0 = peg$c36;
2487
2625
  peg$currPos += 2;
2488
2626
  } else {
2489
2627
  s0 = peg$FAILED;
2490
- if (peg$silentFails === 0) { peg$fail(peg$e68); }
2628
+ if (peg$silentFails === 0) { peg$fail(peg$e72); }
2491
2629
  }
2492
2630
  }
2493
2631
 
@@ -2508,24 +2646,24 @@ function peg$parse(input, options) {
2508
2646
  if (s1 !== peg$FAILED) {
2509
2647
  s2 = [];
2510
2648
  s3 = input.charAt(peg$currPos);
2511
- if (peg$r3.test(s3)) {
2649
+ if (peg$r4.test(s3)) {
2512
2650
  peg$currPos++;
2513
2651
  } else {
2514
2652
  s3 = peg$FAILED;
2515
- if (peg$silentFails === 0) { peg$fail(peg$e65); }
2653
+ if (peg$silentFails === 0) { peg$fail(peg$e69); }
2516
2654
  }
2517
2655
  while (s3 !== peg$FAILED) {
2518
2656
  s2.push(s3);
2519
2657
  s3 = input.charAt(peg$currPos);
2520
- if (peg$r3.test(s3)) {
2658
+ if (peg$r4.test(s3)) {
2521
2659
  peg$currPos++;
2522
2660
  } else {
2523
2661
  s3 = peg$FAILED;
2524
- if (peg$silentFails === 0) { peg$fail(peg$e65); }
2662
+ if (peg$silentFails === 0) { peg$fail(peg$e69); }
2525
2663
  }
2526
2664
  }
2527
2665
  peg$savedPos = s0;
2528
- s0 = peg$f32();
2666
+ s0 = peg$f33();
2529
2667
  } else {
2530
2668
  peg$currPos = s0;
2531
2669
  s0 = peg$FAILED;
@@ -2540,11 +2678,11 @@ function peg$parse(input, options) {
2540
2678
  peg$silentFails++;
2541
2679
  s0 = peg$currPos;
2542
2680
  if (input.charCodeAt(peg$currPos) === 39) {
2543
- s1 = peg$c35;
2681
+ s1 = peg$c37;
2544
2682
  peg$currPos++;
2545
2683
  } else {
2546
2684
  s1 = peg$FAILED;
2547
- if (peg$silentFails === 0) { peg$fail(peg$e70); }
2685
+ if (peg$silentFails === 0) { peg$fail(peg$e74); }
2548
2686
  }
2549
2687
  if (s1 !== peg$FAILED) {
2550
2688
  s2 = [];
@@ -2554,15 +2692,15 @@ function peg$parse(input, options) {
2554
2692
  s3 = peg$parsesingleQuoteStringChar();
2555
2693
  }
2556
2694
  if (input.charCodeAt(peg$currPos) === 39) {
2557
- s3 = peg$c35;
2695
+ s3 = peg$c37;
2558
2696
  peg$currPos++;
2559
2697
  } else {
2560
2698
  s3 = peg$FAILED;
2561
- if (peg$silentFails === 0) { peg$fail(peg$e70); }
2699
+ if (peg$silentFails === 0) { peg$fail(peg$e74); }
2562
2700
  }
2563
2701
  if (s3 !== peg$FAILED) {
2564
2702
  peg$savedPos = s0;
2565
- s0 = peg$f33(s2);
2703
+ s0 = peg$f34(s2);
2566
2704
  } else {
2567
2705
  peg$currPos = s0;
2568
2706
  s0 = peg$FAILED;
@@ -2574,7 +2712,7 @@ function peg$parse(input, options) {
2574
2712
  peg$silentFails--;
2575
2713
  if (s0 === peg$FAILED) {
2576
2714
  s1 = peg$FAILED;
2577
- if (peg$silentFails === 0) { peg$fail(peg$e69); }
2715
+ if (peg$silentFails === 0) { peg$fail(peg$e73); }
2578
2716
  }
2579
2717
 
2580
2718
  return s0;
@@ -2587,11 +2725,11 @@ function peg$parse(input, options) {
2587
2725
  s1 = peg$currPos;
2588
2726
  peg$silentFails++;
2589
2727
  if (input.charCodeAt(peg$currPos) === 39) {
2590
- s2 = peg$c35;
2728
+ s2 = peg$c37;
2591
2729
  peg$currPos++;
2592
2730
  } else {
2593
2731
  s2 = peg$FAILED;
2594
- if (peg$silentFails === 0) { peg$fail(peg$e70); }
2732
+ if (peg$silentFails === 0) { peg$fail(peg$e74); }
2595
2733
  }
2596
2734
  if (s2 === peg$FAILED) {
2597
2735
  s2 = peg$parsenewLine();
@@ -2628,7 +2766,7 @@ function peg$parse(input, options) {
2628
2766
  s2 = peg$parsepipeline();
2629
2767
  if (s2 !== peg$FAILED) {
2630
2768
  peg$savedPos = s0;
2631
- s0 = peg$f34(s2);
2769
+ s0 = peg$f35(s2);
2632
2770
  } else {
2633
2771
  peg$currPos = s0;
2634
2772
  s0 = peg$FAILED;
@@ -2700,11 +2838,14 @@ function peg$parse(input, options) {
2700
2838
  s0 = peg$parsedoubleQuoteString();
2701
2839
  if (s0 === peg$FAILED) {
2702
2840
  s0 = peg$parsesingleQuoteString();
2841
+ if (s0 === peg$FAILED) {
2842
+ s0 = peg$parseguillemetString();
2843
+ }
2703
2844
  }
2704
2845
  peg$silentFails--;
2705
2846
  if (s0 === peg$FAILED) {
2706
2847
  s1 = peg$FAILED;
2707
- if (peg$silentFails === 0) { peg$fail(peg$e71); }
2848
+ if (peg$silentFails === 0) { peg$fail(peg$e75); }
2708
2849
  }
2709
2850
 
2710
2851
  return s0;
@@ -2717,11 +2858,11 @@ function peg$parse(input, options) {
2717
2858
  s0 = peg$currPos;
2718
2859
  s1 = peg$parsetemplateDocumentContents();
2719
2860
  peg$savedPos = s0;
2720
- s1 = peg$f35(s1);
2861
+ s1 = peg$f36(s1);
2721
2862
  s0 = s1;
2722
2863
  peg$silentFails--;
2723
2864
  s1 = peg$FAILED;
2724
- if (peg$silentFails === 0) { peg$fail(peg$e72); }
2865
+ if (peg$silentFails === 0) { peg$fail(peg$e76); }
2725
2866
 
2726
2867
  return s0;
2727
2868
  }
@@ -2732,12 +2873,12 @@ function peg$parse(input, options) {
2732
2873
  s0 = peg$currPos;
2733
2874
  s1 = peg$currPos;
2734
2875
  peg$silentFails++;
2735
- if (input.substr(peg$currPos, 2) === peg$c36) {
2736
- s2 = peg$c36;
2876
+ if (input.substr(peg$currPos, 2) === peg$c38) {
2877
+ s2 = peg$c38;
2737
2878
  peg$currPos += 2;
2738
2879
  } else {
2739
2880
  s2 = peg$FAILED;
2740
- if (peg$silentFails === 0) { peg$fail(peg$e73); }
2881
+ if (peg$silentFails === 0) { peg$fail(peg$e77); }
2741
2882
  }
2742
2883
  peg$silentFails--;
2743
2884
  if (s2 === peg$FAILED) {
@@ -2779,7 +2920,7 @@ function peg$parse(input, options) {
2779
2920
  }
2780
2921
  }
2781
2922
  peg$savedPos = s0;
2782
- s1 = peg$f36(s1);
2923
+ s1 = peg$f37(s1);
2783
2924
  s0 = s1;
2784
2925
 
2785
2926
  return s0;
@@ -2802,13 +2943,13 @@ function peg$parse(input, options) {
2802
2943
  }
2803
2944
  if (s1 !== peg$FAILED) {
2804
2945
  peg$savedPos = s0;
2805
- s1 = peg$f37(s1);
2946
+ s1 = peg$f38(s1);
2806
2947
  }
2807
2948
  s0 = s1;
2808
2949
  peg$silentFails--;
2809
2950
  if (s0 === peg$FAILED) {
2810
2951
  s1 = peg$FAILED;
2811
- if (peg$silentFails === 0) { peg$fail(peg$e74); }
2952
+ if (peg$silentFails === 0) { peg$fail(peg$e78); }
2812
2953
  }
2813
2954
 
2814
2955
  return s0;
@@ -2820,20 +2961,20 @@ function peg$parse(input, options) {
2820
2961
  peg$silentFails++;
2821
2962
  s0 = peg$currPos;
2822
2963
  if (input.charCodeAt(peg$currPos) === 96) {
2823
- s1 = peg$c37;
2964
+ s1 = peg$c39;
2824
2965
  peg$currPos++;
2825
2966
  } else {
2826
2967
  s1 = peg$FAILED;
2827
- if (peg$silentFails === 0) { peg$fail(peg$e76); }
2968
+ if (peg$silentFails === 0) { peg$fail(peg$e80); }
2828
2969
  }
2829
2970
  if (s1 !== peg$FAILED) {
2830
2971
  s2 = peg$parsetemplateLiteralContents();
2831
2972
  if (input.charCodeAt(peg$currPos) === 96) {
2832
- s3 = peg$c37;
2973
+ s3 = peg$c39;
2833
2974
  peg$currPos++;
2834
2975
  } else {
2835
2976
  s3 = peg$FAILED;
2836
- if (peg$silentFails === 0) { peg$fail(peg$e76); }
2977
+ if (peg$silentFails === 0) { peg$fail(peg$e80); }
2837
2978
  }
2838
2979
  if (s3 !== peg$FAILED) {
2839
2980
  s0 = s2;
@@ -2848,7 +2989,7 @@ function peg$parse(input, options) {
2848
2989
  peg$silentFails--;
2849
2990
  if (s0 === peg$FAILED) {
2850
2991
  s1 = peg$FAILED;
2851
- if (peg$silentFails === 0) { peg$fail(peg$e75); }
2992
+ if (peg$silentFails === 0) { peg$fail(peg$e79); }
2852
2993
  }
2853
2994
 
2854
2995
  return s0;
@@ -2861,19 +3002,19 @@ function peg$parse(input, options) {
2861
3002
  s1 = peg$currPos;
2862
3003
  peg$silentFails++;
2863
3004
  if (input.charCodeAt(peg$currPos) === 96) {
2864
- s2 = peg$c37;
3005
+ s2 = peg$c39;
2865
3006
  peg$currPos++;
2866
3007
  } else {
2867
3008
  s2 = peg$FAILED;
2868
- if (peg$silentFails === 0) { peg$fail(peg$e76); }
3009
+ if (peg$silentFails === 0) { peg$fail(peg$e80); }
2869
3010
  }
2870
3011
  if (s2 === peg$FAILED) {
2871
- if (input.substr(peg$currPos, 2) === peg$c36) {
2872
- s2 = peg$c36;
3012
+ if (input.substr(peg$currPos, 2) === peg$c38) {
3013
+ s2 = peg$c38;
2873
3014
  peg$currPos += 2;
2874
3015
  } else {
2875
3016
  s2 = peg$FAILED;
2876
- if (peg$silentFails === 0) { peg$fail(peg$e73); }
3017
+ if (peg$silentFails === 0) { peg$fail(peg$e77); }
2877
3018
  }
2878
3019
  }
2879
3020
  peg$silentFails--;
@@ -2916,7 +3057,7 @@ function peg$parse(input, options) {
2916
3057
  }
2917
3058
  }
2918
3059
  peg$savedPos = s0;
2919
- s1 = peg$f38(s1);
3060
+ s1 = peg$f39(s1);
2920
3061
  s0 = s1;
2921
3062
 
2922
3063
  return s0;
@@ -2938,7 +3079,7 @@ function peg$parse(input, options) {
2938
3079
  }
2939
3080
  if (s1 !== peg$FAILED) {
2940
3081
  peg$savedPos = s0;
2941
- s1 = peg$f39(s1);
3082
+ s1 = peg$f40(s1);
2942
3083
  }
2943
3084
  s0 = s1;
2944
3085
 
@@ -2946,29 +3087,31 @@ function peg$parse(input, options) {
2946
3087
  }
2947
3088
 
2948
3089
  function peg$parsetemplateSubstitution() {
2949
- var s0, s1, s2, s3;
3090
+ var s0, s1, s2, s3, s4, s5;
2950
3091
 
2951
3092
  peg$silentFails++;
2952
3093
  s0 = peg$currPos;
2953
- if (input.substr(peg$currPos, 2) === peg$c36) {
2954
- s1 = peg$c36;
3094
+ if (input.substr(peg$currPos, 2) === peg$c38) {
3095
+ s1 = peg$c38;
2955
3096
  peg$currPos += 2;
2956
3097
  } else {
2957
3098
  s1 = peg$FAILED;
2958
- if (peg$silentFails === 0) { peg$fail(peg$e73); }
3099
+ if (peg$silentFails === 0) { peg$fail(peg$e77); }
2959
3100
  }
2960
3101
  if (s1 !== peg$FAILED) {
2961
- s2 = peg$parseexpression();
2962
- if (s2 !== peg$FAILED) {
3102
+ s2 = peg$parse__();
3103
+ s3 = peg$parsepipeline();
3104
+ if (s3 !== peg$FAILED) {
3105
+ s4 = peg$parse__();
2963
3106
  if (input.charCodeAt(peg$currPos) === 125) {
2964
- s3 = peg$c2;
3107
+ s5 = peg$c2;
2965
3108
  peg$currPos++;
2966
3109
  } else {
2967
- s3 = peg$FAILED;
3110
+ s5 = peg$FAILED;
2968
3111
  if (peg$silentFails === 0) { peg$fail(peg$e6); }
2969
3112
  }
2970
- if (s3 !== peg$FAILED) {
2971
- s0 = s2;
3113
+ if (s5 !== peg$FAILED) {
3114
+ s0 = s3;
2972
3115
  } else {
2973
3116
  peg$currPos = s0;
2974
3117
  s0 = peg$FAILED;
@@ -2984,7 +3127,7 @@ function peg$parse(input, options) {
2984
3127
  peg$silentFails--;
2985
3128
  if (s0 === peg$FAILED) {
2986
3129
  s1 = peg$FAILED;
2987
- if (peg$silentFails === 0) { peg$fail(peg$e77); }
3130
+ if (peg$silentFails === 0) { peg$fail(peg$e81); }
2988
3131
  }
2989
3132
 
2990
3133
  return s0;
@@ -3013,11 +3156,11 @@ function peg$parse(input, options) {
3013
3156
  peg$silentFails++;
3014
3157
  s0 = peg$currPos;
3015
3158
  if (input.charCodeAt(peg$currPos) === 123) {
3016
- s1 = peg$c23;
3159
+ s1 = peg$c25;
3017
3160
  peg$currPos++;
3018
3161
  } else {
3019
3162
  s1 = peg$FAILED;
3020
- if (peg$silentFails === 0) { peg$fail(peg$e47); }
3163
+ if (peg$silentFails === 0) { peg$fail(peg$e50); }
3021
3164
  }
3022
3165
  if (s1 !== peg$FAILED) {
3023
3166
  s2 = peg$parse__();
@@ -3029,7 +3172,7 @@ function peg$parse(input, options) {
3029
3172
  s5 = peg$parseclosingBrace();
3030
3173
  if (s5 !== peg$FAILED) {
3031
3174
  peg$savedPos = s0;
3032
- s0 = peg$f40(s3);
3175
+ s0 = peg$f41(s3);
3033
3176
  } else {
3034
3177
  peg$currPos = s0;
3035
3178
  s0 = peg$FAILED;
@@ -3041,7 +3184,7 @@ function peg$parse(input, options) {
3041
3184
  peg$silentFails--;
3042
3185
  if (s0 === peg$FAILED) {
3043
3186
  s1 = peg$FAILED;
3044
- if (peg$silentFails === 0) { peg$fail(peg$e78); }
3187
+ if (peg$silentFails === 0) { peg$fail(peg$e82); }
3045
3188
  }
3046
3189
 
3047
3190
  return s0;
@@ -3056,11 +3199,11 @@ function peg$parse(input, options) {
3056
3199
  if (s1 !== peg$FAILED) {
3057
3200
  s2 = peg$parse__();
3058
3201
  if (input.charCodeAt(peg$currPos) === 61) {
3059
- s3 = peg$c16;
3202
+ s3 = peg$c18;
3060
3203
  peg$currPos++;
3061
3204
  } else {
3062
3205
  s3 = peg$FAILED;
3063
- if (peg$silentFails === 0) { peg$fail(peg$e36); }
3206
+ if (peg$silentFails === 0) { peg$fail(peg$e39); }
3064
3207
  }
3065
3208
  if (s3 !== peg$FAILED) {
3066
3209
  s4 = peg$parse__();
@@ -3082,7 +3225,7 @@ function peg$parse(input, options) {
3082
3225
  peg$silentFails--;
3083
3226
  if (s0 === peg$FAILED) {
3084
3227
  s1 = peg$FAILED;
3085
- if (peg$silentFails === 0) { peg$fail(peg$e79); }
3228
+ if (peg$silentFails === 0) { peg$fail(peg$e83); }
3086
3229
  }
3087
3230
 
3088
3231
  return s0;
@@ -3142,7 +3285,7 @@ function peg$parse(input, options) {
3142
3285
  s1 = peg$parseidentifierOrString();
3143
3286
  if (s1 !== peg$FAILED) {
3144
3287
  peg$savedPos = s0;
3145
- s1 = peg$f41(s1);
3288
+ s1 = peg$f42(s1);
3146
3289
  }
3147
3290
  s0 = s1;
3148
3291
  }
@@ -3229,6 +3372,8 @@ const peg$allowedStartRules = [
3229
3372
  "float",
3230
3373
  "functionComposition",
3231
3374
  "group",
3375
+ "guillemetString",
3376
+ "guillemetStringChar",
3232
3377
  "host",
3233
3378
  "identifier",
3234
3379
  "identifierChar",
@@ -3252,6 +3397,7 @@ const peg$allowedStartRules = [
3252
3397
  "pipeline",
3253
3398
  "path",
3254
3399
  "pathKey",
3400
+ "pathKeyChar",
3255
3401
  "protocolCall",
3256
3402
  "protocol",
3257
3403
  "reservedProtocol",