@weborigami/language 0.0.42 → 0.0.44

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.
@@ -192,15 +192,15 @@ function peg$parse(input, options) {
192
192
  var peg$FAILED = {};
193
193
  var peg$source = options.grammarSource;
194
194
 
195
- 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, 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, sign: peg$parsesign, singleArrow: peg$parsesingleArrow, 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 };
195
+ 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, 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
196
  var peg$startRuleFunction = peg$parse__;
197
197
 
198
- var peg$c0 = "[";
199
- var peg$c1 = "=";
200
- var peg$c2 = "}";
201
- var peg$c3 = "]";
202
- var peg$c4 = ")";
203
- var peg$c5 = "#";
198
+ var peg$c0 = "//";
199
+ var peg$c1 = "[";
200
+ var peg$c2 = "=";
201
+ var peg$c3 = "}";
202
+ var peg$c4 = "]";
203
+ var peg$c5 = ")";
204
204
  var peg$c6 = "\u21D2";
205
205
  var peg$c7 = "=>";
206
206
  var peg$c8 = "\"";
@@ -211,105 +211,113 @@ function peg$parse(input, options) {
211
211
  var peg$c13 = "-";
212
212
  var peg$c14 = ">";
213
213
  var peg$c15 = "/";
214
- var peg$c16 = "\n";
215
- var peg$c17 = "\r\n";
216
- var peg$c18 = "\r";
217
- var peg$c19 = "{";
218
- var peg$c20 = "https";
219
- var peg$c21 = "http";
220
- var peg$c22 = "package";
221
- var peg$c23 = "treehttps";
222
- var peg$c24 = "treehttp";
223
- var peg$c25 = "tree";
224
- var peg$c26 = ",";
225
- var peg$c27 = "\u2192";
226
- var peg$c28 = "->";
227
- var peg$c29 = "'";
228
- var peg$c30 = "{{";
229
- var peg$c31 = "`";
230
- var peg$c32 = "}}";
231
-
232
- var peg$r0 = /^[^\n\r]/;
233
- var peg$r1 = /^[0-9]/;
234
- var peg$r2 = /^[^(){}[\]<>\-=,\/:`"'\\# \u2192\u21D2\t\n\r]/;
235
- var peg$r3 = /^[ \t]/;
236
- var peg$r4 = /^[+\-]/;
214
+ var peg$c16 = "/*";
215
+ var peg$c17 = "*/";
216
+ var peg$c18 = "\n";
217
+ var peg$c19 = "\r\n";
218
+ var peg$c20 = "\r";
219
+ var peg$c21 = "{";
220
+ var peg$c22 = "https";
221
+ var peg$c23 = "http";
222
+ var peg$c24 = "package";
223
+ var peg$c25 = "treehttps";
224
+ var peg$c26 = "treehttp";
225
+ var peg$c27 = "tree";
226
+ var peg$c28 = ",";
227
+ var peg$c29 = "\u2192";
228
+ var peg$c30 = "->";
229
+ var peg$c31 = "#";
230
+ var peg$c32 = "'";
231
+ var peg$c33 = "{{";
232
+ var peg$c34 = "${";
233
+ var peg$c35 = "`";
234
+ var peg$c36 = "}}";
235
+
236
+ var peg$r0 = /^[0-9]/;
237
+ var peg$r1 = /^[^(){}[\]<>\-=,\/:`"'\\# \u2192\u21D2\t\n\r]/;
238
+ var peg$r2 = /^[ \t]/;
239
+ var peg$r3 = /^[+\-]/;
240
+ var peg$r4 = /^[^\n\r]/;
237
241
 
238
242
  var peg$e0 = peg$otherExpectation("absolute file path");
239
- var peg$e1 = peg$otherExpectation("function arguments");
240
- var peg$e2 = peg$otherExpectation("array");
241
- var peg$e3 = peg$literalExpectation("[", false);
242
- var peg$e4 = peg$otherExpectation("tree assignment");
243
- var peg$e5 = peg$literalExpectation("=", false);
244
- var peg$e6 = peg$otherExpectation("function call");
245
- var peg$e7 = peg$literalExpectation("}", false);
246
- var peg$e8 = peg$anyExpectation();
247
- var peg$e9 = peg$literalExpectation("]", false);
248
- var peg$e10 = peg$literalExpectation(")", false);
249
- var peg$e11 = peg$otherExpectation("comment");
250
- var peg$e12 = peg$literalExpectation("#", false);
251
- var peg$e13 = peg$classExpectation(["\n", "\r"], true, false);
252
- var peg$e14 = peg$classExpectation([["0", "9"]], false, false);
253
- var peg$e15 = peg$literalExpectation("\u21D2", false);
254
- var peg$e16 = peg$literalExpectation("=>", false);
255
- var peg$e17 = peg$otherExpectation("double quote string");
256
- var peg$e18 = peg$literalExpectation("\"", false);
257
- var peg$e19 = peg$otherExpectation("backslash-escaped character");
258
- var peg$e20 = peg$literalExpectation("\\", false);
259
- var peg$e21 = peg$otherExpectation("Origami expression");
260
- var peg$e22 = peg$otherExpectation("floating-point number");
261
- var peg$e23 = peg$literalExpectation(".", false);
262
- var peg$e24 = peg$otherExpectation("function composition");
263
- var peg$e25 = peg$otherExpectation("parenthetical group");
264
- var peg$e26 = peg$literalExpectation("(", false);
265
- var peg$e27 = peg$otherExpectation("HTTP/HTTPS host");
266
- var peg$e28 = peg$literalExpectation(":", false);
267
- var peg$e29 = peg$otherExpectation("identifier");
268
- var peg$e30 = peg$classExpectation(["(", ")", "{", "}", "[", "]", "<", ">", "-", "=", ",", "/", ":", "`", "\"", "'", "\\", "#", " ", "\u2192", "\u21D2", "\t", "\n", "\r"], true, false);
269
- var peg$e31 = peg$literalExpectation("-", false);
270
- var peg$e32 = peg$literalExpectation(">", false);
271
- var peg$e33 = peg$otherExpectation("arguments with implicit parentheses");
272
- var peg$e34 = peg$classExpectation([" ", "\t"], false, false);
273
- var peg$e35 = peg$otherExpectation("integer");
274
- var peg$e36 = peg$otherExpectation("lambda function");
275
- var peg$e37 = peg$otherExpectation("path with a leading slash");
276
- var peg$e38 = peg$literalExpectation("/", false);
277
- var peg$e39 = peg$otherExpectation("list");
278
- var peg$e40 = peg$literalExpectation("\n", false);
279
- var peg$e41 = peg$literalExpectation("\r\n", false);
280
- var peg$e42 = peg$literalExpectation("\r", false);
281
- var peg$e43 = peg$otherExpectation("number");
282
- var peg$e44 = peg$otherExpectation("object literal");
283
- var peg$e45 = peg$literalExpectation("{", false);
284
- var peg$e46 = peg$otherExpectation("object property");
285
- var peg$e47 = peg$otherExpectation("function arguments in parentheses");
286
- var peg$e48 = peg$otherExpectation("slash-separated path");
287
- var peg$e49 = peg$otherExpectation("path element");
288
- var peg$e50 = peg$otherExpectation("function call using protocol: syntax");
289
- var peg$e51 = peg$otherExpectation("protocol");
290
- var peg$e52 = peg$otherExpectation("reserved protocol");
291
- var peg$e53 = peg$literalExpectation("https", false);
292
- var peg$e54 = peg$literalExpectation("http", false);
293
- var peg$e55 = peg$literalExpectation("package", false);
294
- var peg$e56 = peg$literalExpectation("treehttps", false);
295
- var peg$e57 = peg$literalExpectation("treehttp", false);
296
- var peg$e58 = peg$literalExpectation("tree", false);
297
- var peg$e59 = peg$otherExpectation("scope reference");
298
- var peg$e60 = peg$literalExpectation(",", false);
299
- var peg$e61 = peg$classExpectation(["+", "-"], false, false);
300
- var peg$e62 = peg$literalExpectation("\u2192", false);
301
- var peg$e63 = peg$literalExpectation("->", false);
302
- var peg$e64 = peg$otherExpectation("single quote string");
303
- var peg$e65 = peg$literalExpectation("'", false);
304
- var peg$e66 = peg$otherExpectation("string");
305
- var peg$e67 = peg$otherExpectation("template");
306
- var peg$e68 = peg$literalExpectation("{{", false);
307
- var peg$e69 = peg$otherExpectation("template text");
308
- var peg$e70 = peg$otherExpectation("template literal");
309
- var peg$e71 = peg$literalExpectation("`", false);
310
- var peg$e72 = peg$otherExpectation("template substitution");
311
- var peg$e73 = peg$literalExpectation("}}", false);
312
- var peg$e74 = peg$otherExpectation("tree literal");
243
+ var peg$e1 = peg$literalExpectation("//", false);
244
+ var peg$e2 = peg$otherExpectation("function arguments");
245
+ var peg$e3 = peg$otherExpectation("array");
246
+ 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);
260
+ var peg$e18 = peg$otherExpectation("backslash-escaped character");
261
+ var peg$e19 = peg$literalExpectation("\\", false);
262
+ var peg$e20 = peg$otherExpectation("Origami expression");
263
+ var peg$e21 = peg$otherExpectation("floating-point number");
264
+ var peg$e22 = peg$literalExpectation(".", false);
265
+ var peg$e23 = peg$otherExpectation("function composition");
266
+ var peg$e24 = peg$otherExpectation("parenthetical group");
267
+ var peg$e25 = peg$literalExpectation("(", false);
268
+ var peg$e26 = peg$otherExpectation("HTTP/HTTPS host");
269
+ var peg$e27 = peg$literalExpectation(":", false);
270
+ var peg$e28 = peg$otherExpectation("identifier");
271
+ var peg$e29 = peg$classExpectation(["(", ")", "{", "}", "[", "]", "<", ">", "-", "=", ",", "/", ":", "`", "\"", "'", "\\", "#", " ", "\u2192", "\u21D2", "\t", "\n", "\r"], true, false);
272
+ var peg$e30 = peg$literalExpectation("-", false);
273
+ var peg$e31 = peg$literalExpectation(">", false);
274
+ var peg$e32 = peg$otherExpectation("arguments with implicit parentheses");
275
+ var peg$e33 = peg$classExpectation([" ", "\t"], false, false);
276
+ var peg$e34 = peg$otherExpectation("integer");
277
+ 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("package", false);
299
+ var peg$e57 = peg$literalExpectation("treehttps", false);
300
+ var peg$e58 = peg$literalExpectation("treehttp", false);
301
+ var peg$e59 = peg$literalExpectation("tree", false);
302
+ var peg$e60 = peg$otherExpectation("scope reference");
303
+ var peg$e61 = peg$literalExpectation(",", false);
304
+ var peg$e62 = peg$classExpectation(["+", "-"], false, false);
305
+ var peg$e63 = peg$literalExpectation("\u2192", false);
306
+ var peg$e64 = peg$literalExpectation("->", false);
307
+ var peg$e65 = peg$literalExpectation("#", false);
308
+ var peg$e66 = peg$classExpectation(["\n", "\r"], true, false);
309
+ var peg$e67 = peg$otherExpectation("single quote string");
310
+ var peg$e68 = peg$literalExpectation("'", false);
311
+ var peg$e69 = peg$otherExpectation("string");
312
+ var peg$e70 = peg$otherExpectation("template");
313
+ var peg$e71 = peg$literalExpectation("{{", false);
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$literalExpectation("}}", false);
320
+ var peg$e78 = peg$otherExpectation("tree literal");
313
321
 
314
322
  var peg$f0 = function() { return ""; };
315
323
  var peg$f1 = function(path) {
@@ -352,47 +360,50 @@ function peg$parse(input, options) {
352
360
  return annotate([ops.lambda, null, expr], location());
353
361
  };
354
362
  var peg$f15 = function() { return annotate([""], location()); };
355
- var peg$f16 = function(properties) {
363
+ var peg$f16 = function() { return null; };
364
+ var peg$f17 = function(properties) {
356
365
  return annotate([ops.object, ...(properties ?? [])], location());
357
366
  };
358
- var peg$f17 = function(key) {
367
+ var peg$f18 = function(key) {
359
368
  return annotate([key, [ops.scope, key]], location());
360
369
  };
361
- var peg$f18 = function(parameters, expr) {
370
+ var peg$f19 = function(parameters, expr) {
362
371
  return annotate([ops.lambda, parameters ?? [], expr], location());
363
372
  };
364
- var peg$f19 = function(list) {
373
+ var peg$f20 = function(list) {
365
374
  return list ?? annotate([undefined], location());
366
375
  };
367
- var peg$f20 = function(steps) {
376
+ var peg$f21 = function(steps) {
368
377
  return annotate(makePipeline(steps), location());
369
378
  };
370
- var peg$f21 = function(key) { return key.join(""); };
371
- var peg$f22 = function(protocol, host, path) {
379
+ var peg$f22 = function(key) { return key.join(""); };
380
+ var peg$f23 = function(protocol, host, path) {
372
381
  return annotate([protocol, host, ...(path ?? [])], location());
373
382
  };
374
- var peg$f23 = function() { return ops.https; };
375
- var peg$f24 = function() { return ops.http; };
376
- var peg$f25 = function() { return [ops.scope, "@package"] };
377
- var peg$f26 = function() { return ops.treeHttps; };
378
- var peg$f27 = function() { return ops.treeHttp; };
379
- var peg$f28 = function() { return ops.treeHttps; };
380
- var peg$f29 = function(key) {
383
+ var peg$f24 = function() { return ops.https; };
384
+ var peg$f25 = function() { return ops.http; };
385
+ var peg$f26 = function() { return [ops.scope, "@package"] };
386
+ var peg$f27 = function() { return ops.treeHttps; };
387
+ var peg$f28 = function() { return ops.treeHttp; };
388
+ var peg$f29 = function() { return ops.treeHttps; };
389
+ var peg$f30 = function(key) {
381
390
  return annotate([ops.scope, key], location());
382
391
  };
383
- var peg$f30 = function(chars) { return chars.join(""); };
384
- var peg$f31 = function(contents) {
392
+ var peg$f31 = function() { return null; };
393
+ var peg$f32 = function() { return null; };
394
+ var peg$f33 = function(chars) { return chars.join(""); };
395
+ var peg$f34 = function(contents) {
385
396
  return annotate([ops.lambda, null, contents], location());
386
397
  };
387
- var peg$f32 = function(parts) {
398
+ var peg$f35 = function(parts) {
388
399
  return annotate(makeTemplate(parts), location());
389
400
  };
390
- var peg$f33 = function(chars) { return chars.join(""); };
391
- var peg$f34 = function(parts) {
401
+ var peg$f36 = function(chars) { return chars.join(""); };
402
+ var peg$f37 = function(parts) {
392
403
  return annotate(makeTemplate(parts), location());
393
404
  };
394
- var peg$f35 = function(chars) { return chars.join(""); };
395
- var peg$f36 = function(assignments) {
405
+ var peg$f38 = function(chars) { return chars.join(""); };
406
+ var peg$f39 = function(assignments) {
396
407
  return annotate([ops.tree, ...(assignments ?? [])], location());
397
408
  };
398
409
  var peg$currPos = 0;
@@ -585,16 +596,39 @@ function peg$parse(input, options) {
585
596
  }
586
597
 
587
598
  function peg$parseabsoluteFilePath() {
588
- var s0, s1;
599
+ var s0, s1, s2;
589
600
 
590
601
  peg$silentFails++;
591
602
  s0 = peg$currPos;
592
- s1 = peg$parseleadingSlashPath();
603
+ s1 = peg$currPos;
604
+ peg$silentFails++;
605
+ if (input.substr(peg$currPos, 2) === peg$c0) {
606
+ s2 = peg$c0;
607
+ peg$currPos += 2;
608
+ } else {
609
+ s2 = peg$FAILED;
610
+ if (peg$silentFails === 0) { peg$fail(peg$e1); }
611
+ }
612
+ peg$silentFails--;
613
+ if (s2 === peg$FAILED) {
614
+ s1 = undefined;
615
+ } else {
616
+ peg$currPos = s1;
617
+ s1 = peg$FAILED;
618
+ }
593
619
  if (s1 !== peg$FAILED) {
594
- peg$savedPos = s0;
595
- s1 = peg$f1(s1);
620
+ s2 = peg$parseleadingSlashPath();
621
+ if (s2 !== peg$FAILED) {
622
+ peg$savedPos = s0;
623
+ s0 = peg$f1(s2);
624
+ } else {
625
+ peg$currPos = s0;
626
+ s0 = peg$FAILED;
627
+ }
628
+ } else {
629
+ peg$currPos = s0;
630
+ s0 = peg$FAILED;
596
631
  }
597
- s0 = s1;
598
632
  peg$silentFails--;
599
633
  if (s0 === peg$FAILED) {
600
634
  s1 = peg$FAILED;
@@ -621,7 +655,7 @@ function peg$parse(input, options) {
621
655
  peg$silentFails--;
622
656
  if (s0 === peg$FAILED) {
623
657
  s1 = peg$FAILED;
624
- if (peg$silentFails === 0) { peg$fail(peg$e1); }
658
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
625
659
  }
626
660
 
627
661
  return s0;
@@ -633,11 +667,11 @@ function peg$parse(input, options) {
633
667
  peg$silentFails++;
634
668
  s0 = peg$currPos;
635
669
  if (input.charCodeAt(peg$currPos) === 91) {
636
- s1 = peg$c0;
670
+ s1 = peg$c1;
637
671
  peg$currPos++;
638
672
  } else {
639
673
  s1 = peg$FAILED;
640
- if (peg$silentFails === 0) { peg$fail(peg$e3); }
674
+ if (peg$silentFails === 0) { peg$fail(peg$e4); }
641
675
  }
642
676
  if (s1 !== peg$FAILED) {
643
677
  s2 = peg$parse__();
@@ -661,7 +695,7 @@ function peg$parse(input, options) {
661
695
  peg$silentFails--;
662
696
  if (s0 === peg$FAILED) {
663
697
  s1 = peg$FAILED;
664
- if (peg$silentFails === 0) { peg$fail(peg$e2); }
698
+ if (peg$silentFails === 0) { peg$fail(peg$e3); }
665
699
  }
666
700
 
667
701
  return s0;
@@ -676,11 +710,11 @@ function peg$parse(input, options) {
676
710
  if (s1 !== peg$FAILED) {
677
711
  s2 = peg$parse__();
678
712
  if (input.charCodeAt(peg$currPos) === 61) {
679
- s3 = peg$c1;
713
+ s3 = peg$c2;
680
714
  peg$currPos++;
681
715
  } else {
682
716
  s3 = peg$FAILED;
683
- if (peg$silentFails === 0) { peg$fail(peg$e5); }
717
+ if (peg$silentFails === 0) { peg$fail(peg$e6); }
684
718
  }
685
719
  if (s3 !== peg$FAILED) {
686
720
  s4 = peg$parse__();
@@ -702,7 +736,7 @@ function peg$parse(input, options) {
702
736
  peg$silentFails--;
703
737
  if (s0 === peg$FAILED) {
704
738
  s1 = peg$FAILED;
705
- if (peg$silentFails === 0) { peg$fail(peg$e4); }
739
+ if (peg$silentFails === 0) { peg$fail(peg$e5); }
706
740
  }
707
741
 
708
742
  return s0;
@@ -757,7 +791,7 @@ function peg$parse(input, options) {
757
791
  peg$silentFails--;
758
792
  if (s0 === peg$FAILED) {
759
793
  s1 = peg$FAILED;
760
- if (peg$silentFails === 0) { peg$fail(peg$e6); }
794
+ if (peg$silentFails === 0) { peg$fail(peg$e7); }
761
795
  }
762
796
 
763
797
  return s0;
@@ -767,11 +801,11 @@ function peg$parse(input, options) {
767
801
  var s0, s1;
768
802
 
769
803
  if (input.charCodeAt(peg$currPos) === 125) {
770
- s0 = peg$c2;
804
+ s0 = peg$c3;
771
805
  peg$currPos++;
772
806
  } else {
773
807
  s0 = peg$FAILED;
774
- if (peg$silentFails === 0) { peg$fail(peg$e7); }
808
+ if (peg$silentFails === 0) { peg$fail(peg$e8); }
775
809
  }
776
810
  if (s0 === peg$FAILED) {
777
811
  s0 = peg$currPos;
@@ -780,7 +814,7 @@ function peg$parse(input, options) {
780
814
  peg$currPos++;
781
815
  } else {
782
816
  s1 = peg$FAILED;
783
- if (peg$silentFails === 0) { peg$fail(peg$e8); }
817
+ if (peg$silentFails === 0) { peg$fail(peg$e9); }
784
818
  }
785
819
  if (s1 === peg$FAILED) {
786
820
  s1 = null;
@@ -797,11 +831,11 @@ function peg$parse(input, options) {
797
831
  var s0, s1;
798
832
 
799
833
  if (input.charCodeAt(peg$currPos) === 93) {
800
- s0 = peg$c3;
834
+ s0 = peg$c4;
801
835
  peg$currPos++;
802
836
  } else {
803
837
  s0 = peg$FAILED;
804
- if (peg$silentFails === 0) { peg$fail(peg$e9); }
838
+ if (peg$silentFails === 0) { peg$fail(peg$e10); }
805
839
  }
806
840
  if (s0 === peg$FAILED) {
807
841
  s0 = peg$currPos;
@@ -810,7 +844,7 @@ function peg$parse(input, options) {
810
844
  peg$currPos++;
811
845
  } else {
812
846
  s1 = peg$FAILED;
813
- if (peg$silentFails === 0) { peg$fail(peg$e8); }
847
+ if (peg$silentFails === 0) { peg$fail(peg$e9); }
814
848
  }
815
849
  if (s1 === peg$FAILED) {
816
850
  s1 = null;
@@ -827,11 +861,11 @@ function peg$parse(input, options) {
827
861
  var s0, s1;
828
862
 
829
863
  if (input.charCodeAt(peg$currPos) === 41) {
830
- s0 = peg$c4;
864
+ s0 = peg$c5;
831
865
  peg$currPos++;
832
866
  } else {
833
867
  s0 = peg$FAILED;
834
- if (peg$silentFails === 0) { peg$fail(peg$e10); }
868
+ if (peg$silentFails === 0) { peg$fail(peg$e11); }
835
869
  }
836
870
  if (s0 === peg$FAILED) {
837
871
  s0 = peg$currPos;
@@ -840,7 +874,7 @@ function peg$parse(input, options) {
840
874
  peg$currPos++;
841
875
  } else {
842
876
  s1 = peg$FAILED;
843
- if (peg$silentFails === 0) { peg$fail(peg$e8); }
877
+ if (peg$silentFails === 0) { peg$fail(peg$e9); }
844
878
  }
845
879
  if (s1 === peg$FAILED) {
846
880
  s1 = null;
@@ -854,46 +888,17 @@ function peg$parse(input, options) {
854
888
  }
855
889
 
856
890
  function peg$parsecomment() {
857
- var s0, s1, s2, s3;
891
+ var s0, s1;
858
892
 
859
893
  peg$silentFails++;
860
- s0 = peg$currPos;
861
- if (input.charCodeAt(peg$currPos) === 35) {
862
- s1 = peg$c5;
863
- peg$currPos++;
864
- } else {
865
- s1 = peg$FAILED;
866
- if (peg$silentFails === 0) { peg$fail(peg$e12); }
867
- }
868
- if (s1 !== peg$FAILED) {
869
- s2 = [];
870
- if (peg$r0.test(input.charAt(peg$currPos))) {
871
- s3 = input.charAt(peg$currPos);
872
- peg$currPos++;
873
- } else {
874
- s3 = peg$FAILED;
875
- if (peg$silentFails === 0) { peg$fail(peg$e13); }
876
- }
877
- while (s3 !== peg$FAILED) {
878
- s2.push(s3);
879
- if (peg$r0.test(input.charAt(peg$currPos))) {
880
- s3 = input.charAt(peg$currPos);
881
- peg$currPos++;
882
- } else {
883
- s3 = peg$FAILED;
884
- if (peg$silentFails === 0) { peg$fail(peg$e13); }
885
- }
886
- }
887
- s1 = [s1, s2];
888
- s0 = s1;
889
- } else {
890
- peg$currPos = s0;
891
- s0 = peg$FAILED;
894
+ s0 = peg$parsemultiLineComment();
895
+ if (s0 === peg$FAILED) {
896
+ s0 = peg$parsesingleLineComment();
892
897
  }
893
898
  peg$silentFails--;
894
899
  if (s0 === peg$FAILED) {
895
900
  s1 = peg$FAILED;
896
- if (peg$silentFails === 0) { peg$fail(peg$e11); }
901
+ if (peg$silentFails === 0) { peg$fail(peg$e12); }
897
902
  }
898
903
 
899
904
  return s0;
@@ -904,22 +909,22 @@ function peg$parse(input, options) {
904
909
 
905
910
  s0 = peg$currPos;
906
911
  s1 = [];
907
- if (peg$r1.test(input.charAt(peg$currPos))) {
912
+ if (peg$r0.test(input.charAt(peg$currPos))) {
908
913
  s2 = input.charAt(peg$currPos);
909
914
  peg$currPos++;
910
915
  } else {
911
916
  s2 = peg$FAILED;
912
- if (peg$silentFails === 0) { peg$fail(peg$e14); }
917
+ if (peg$silentFails === 0) { peg$fail(peg$e13); }
913
918
  }
914
919
  if (s2 !== peg$FAILED) {
915
920
  while (s2 !== peg$FAILED) {
916
921
  s1.push(s2);
917
- if (peg$r1.test(input.charAt(peg$currPos))) {
922
+ if (peg$r0.test(input.charAt(peg$currPos))) {
918
923
  s2 = input.charAt(peg$currPos);
919
924
  peg$currPos++;
920
925
  } else {
921
926
  s2 = peg$FAILED;
922
- if (peg$silentFails === 0) { peg$fail(peg$e14); }
927
+ if (peg$silentFails === 0) { peg$fail(peg$e13); }
923
928
  }
924
929
  }
925
930
  } else {
@@ -943,7 +948,7 @@ function peg$parse(input, options) {
943
948
  peg$currPos++;
944
949
  } else {
945
950
  s0 = peg$FAILED;
946
- if (peg$silentFails === 0) { peg$fail(peg$e15); }
951
+ if (peg$silentFails === 0) { peg$fail(peg$e14); }
947
952
  }
948
953
  if (s0 === peg$FAILED) {
949
954
  if (input.substr(peg$currPos, 2) === peg$c7) {
@@ -951,7 +956,7 @@ function peg$parse(input, options) {
951
956
  peg$currPos += 2;
952
957
  } else {
953
958
  s0 = peg$FAILED;
954
- if (peg$silentFails === 0) { peg$fail(peg$e16); }
959
+ if (peg$silentFails === 0) { peg$fail(peg$e15); }
955
960
  }
956
961
  }
957
962
 
@@ -968,7 +973,7 @@ function peg$parse(input, options) {
968
973
  peg$currPos++;
969
974
  } else {
970
975
  s1 = peg$FAILED;
971
- if (peg$silentFails === 0) { peg$fail(peg$e18); }
976
+ if (peg$silentFails === 0) { peg$fail(peg$e17); }
972
977
  }
973
978
  if (s1 !== peg$FAILED) {
974
979
  s2 = [];
@@ -982,7 +987,7 @@ function peg$parse(input, options) {
982
987
  peg$currPos++;
983
988
  } else {
984
989
  s3 = peg$FAILED;
985
- if (peg$silentFails === 0) { peg$fail(peg$e18); }
990
+ if (peg$silentFails === 0) { peg$fail(peg$e17); }
986
991
  }
987
992
  if (s3 !== peg$FAILED) {
988
993
  peg$savedPos = s0;
@@ -998,7 +1003,7 @@ function peg$parse(input, options) {
998
1003
  peg$silentFails--;
999
1004
  if (s0 === peg$FAILED) {
1000
1005
  s1 = peg$FAILED;
1001
- if (peg$silentFails === 0) { peg$fail(peg$e17); }
1006
+ if (peg$silentFails === 0) { peg$fail(peg$e16); }
1002
1007
  }
1003
1008
 
1004
1009
  return s0;
@@ -1015,7 +1020,7 @@ function peg$parse(input, options) {
1015
1020
  peg$currPos++;
1016
1021
  } else {
1017
1022
  s2 = peg$FAILED;
1018
- if (peg$silentFails === 0) { peg$fail(peg$e18); }
1023
+ if (peg$silentFails === 0) { peg$fail(peg$e17); }
1019
1024
  }
1020
1025
  if (s2 === peg$FAILED) {
1021
1026
  s2 = peg$parsenewLine();
@@ -1053,7 +1058,7 @@ function peg$parse(input, options) {
1053
1058
  peg$currPos++;
1054
1059
  } else {
1055
1060
  s1 = peg$FAILED;
1056
- if (peg$silentFails === 0) { peg$fail(peg$e20); }
1061
+ if (peg$silentFails === 0) { peg$fail(peg$e19); }
1057
1062
  }
1058
1063
  if (s1 !== peg$FAILED) {
1059
1064
  if (input.length > peg$currPos) {
@@ -1061,7 +1066,7 @@ function peg$parse(input, options) {
1061
1066
  peg$currPos++;
1062
1067
  } else {
1063
1068
  s2 = peg$FAILED;
1064
- if (peg$silentFails === 0) { peg$fail(peg$e8); }
1069
+ if (peg$silentFails === 0) { peg$fail(peg$e9); }
1065
1070
  }
1066
1071
  if (s2 !== peg$FAILED) {
1067
1072
  s0 = s2;
@@ -1076,7 +1081,7 @@ function peg$parse(input, options) {
1076
1081
  peg$silentFails--;
1077
1082
  if (s0 === peg$FAILED) {
1078
1083
  s1 = peg$FAILED;
1079
- if (peg$silentFails === 0) { peg$fail(peg$e19); }
1084
+ if (peg$silentFails === 0) { peg$fail(peg$e18); }
1080
1085
  }
1081
1086
 
1082
1087
  return s0;
@@ -1107,7 +1112,7 @@ function peg$parse(input, options) {
1107
1112
  peg$silentFails--;
1108
1113
  if (s0 === peg$FAILED) {
1109
1114
  s1 = peg$FAILED;
1110
- if (peg$silentFails === 0) { peg$fail(peg$e21); }
1115
+ if (peg$silentFails === 0) { peg$fail(peg$e20); }
1111
1116
  }
1112
1117
 
1113
1118
  return s0;
@@ -1131,7 +1136,7 @@ function peg$parse(input, options) {
1131
1136
  peg$currPos++;
1132
1137
  } else {
1133
1138
  s3 = peg$FAILED;
1134
- if (peg$silentFails === 0) { peg$fail(peg$e23); }
1139
+ if (peg$silentFails === 0) { peg$fail(peg$e22); }
1135
1140
  }
1136
1141
  if (s3 !== peg$FAILED) {
1137
1142
  s4 = peg$parsedigits();
@@ -1149,7 +1154,7 @@ function peg$parse(input, options) {
1149
1154
  peg$silentFails--;
1150
1155
  if (s0 === peg$FAILED) {
1151
1156
  s1 = peg$FAILED;
1152
- if (peg$silentFails === 0) { peg$fail(peg$e22); }
1157
+ if (peg$silentFails === 0) { peg$fail(peg$e21); }
1153
1158
  }
1154
1159
 
1155
1160
  return s0;
@@ -1181,7 +1186,7 @@ function peg$parse(input, options) {
1181
1186
  peg$silentFails--;
1182
1187
  if (s0 === peg$FAILED) {
1183
1188
  s1 = peg$FAILED;
1184
- if (peg$silentFails === 0) { peg$fail(peg$e24); }
1189
+ if (peg$silentFails === 0) { peg$fail(peg$e23); }
1185
1190
  }
1186
1191
 
1187
1192
  return s0;
@@ -1197,7 +1202,7 @@ function peg$parse(input, options) {
1197
1202
  peg$currPos++;
1198
1203
  } else {
1199
1204
  s1 = peg$FAILED;
1200
- if (peg$silentFails === 0) { peg$fail(peg$e26); }
1205
+ if (peg$silentFails === 0) { peg$fail(peg$e25); }
1201
1206
  }
1202
1207
  if (s1 !== peg$FAILED) {
1203
1208
  s2 = peg$parse__();
@@ -1222,7 +1227,7 @@ function peg$parse(input, options) {
1222
1227
  peg$silentFails--;
1223
1228
  if (s0 === peg$FAILED) {
1224
1229
  s1 = peg$FAILED;
1225
- if (peg$silentFails === 0) { peg$fail(peg$e25); }
1230
+ if (peg$silentFails === 0) { peg$fail(peg$e24); }
1226
1231
  }
1227
1232
 
1228
1233
  return s0;
@@ -1241,7 +1246,7 @@ function peg$parse(input, options) {
1241
1246
  peg$currPos++;
1242
1247
  } else {
1243
1248
  s3 = peg$FAILED;
1244
- if (peg$silentFails === 0) { peg$fail(peg$e28); }
1249
+ if (peg$silentFails === 0) { peg$fail(peg$e27); }
1245
1250
  }
1246
1251
  if (s3 !== peg$FAILED) {
1247
1252
  s4 = peg$parsenumber();
@@ -1268,7 +1273,7 @@ function peg$parse(input, options) {
1268
1273
  peg$silentFails--;
1269
1274
  if (s0 === peg$FAILED) {
1270
1275
  s1 = peg$FAILED;
1271
- if (peg$silentFails === 0) { peg$fail(peg$e27); }
1276
+ if (peg$silentFails === 0) { peg$fail(peg$e26); }
1272
1277
  }
1273
1278
 
1274
1279
  return s0;
@@ -1297,7 +1302,7 @@ function peg$parse(input, options) {
1297
1302
  peg$silentFails--;
1298
1303
  if (s0 === peg$FAILED) {
1299
1304
  s1 = peg$FAILED;
1300
- if (peg$silentFails === 0) { peg$fail(peg$e29); }
1305
+ if (peg$silentFails === 0) { peg$fail(peg$e28); }
1301
1306
  }
1302
1307
 
1303
1308
  return s0;
@@ -1306,12 +1311,12 @@ function peg$parse(input, options) {
1306
1311
  function peg$parseidentifierChar() {
1307
1312
  var s0, s1, s2, s3;
1308
1313
 
1309
- if (peg$r2.test(input.charAt(peg$currPos))) {
1314
+ if (peg$r1.test(input.charAt(peg$currPos))) {
1310
1315
  s0 = input.charAt(peg$currPos);
1311
1316
  peg$currPos++;
1312
1317
  } else {
1313
1318
  s0 = peg$FAILED;
1314
- if (peg$silentFails === 0) { peg$fail(peg$e30); }
1319
+ if (peg$silentFails === 0) { peg$fail(peg$e29); }
1315
1320
  }
1316
1321
  if (s0 === peg$FAILED) {
1317
1322
  s0 = peg$currPos;
@@ -1320,7 +1325,7 @@ function peg$parse(input, options) {
1320
1325
  peg$currPos++;
1321
1326
  } else {
1322
1327
  s1 = peg$FAILED;
1323
- if (peg$silentFails === 0) { peg$fail(peg$e31); }
1328
+ if (peg$silentFails === 0) { peg$fail(peg$e30); }
1324
1329
  }
1325
1330
  if (s1 !== peg$FAILED) {
1326
1331
  s2 = peg$currPos;
@@ -1330,7 +1335,7 @@ function peg$parse(input, options) {
1330
1335
  peg$currPos++;
1331
1336
  } else {
1332
1337
  s3 = peg$FAILED;
1333
- if (peg$silentFails === 0) { peg$fail(peg$e32); }
1338
+ if (peg$silentFails === 0) { peg$fail(peg$e31); }
1334
1339
  }
1335
1340
  peg$silentFails--;
1336
1341
  if (s3 === peg$FAILED) {
@@ -1430,7 +1435,7 @@ function peg$parse(input, options) {
1430
1435
  peg$silentFails--;
1431
1436
  if (s0 === peg$FAILED) {
1432
1437
  s1 = peg$FAILED;
1433
- if (peg$silentFails === 0) { peg$fail(peg$e33); }
1438
+ if (peg$silentFails === 0) { peg$fail(peg$e32); }
1434
1439
  }
1435
1440
 
1436
1441
  return s0;
@@ -1439,12 +1444,12 @@ function peg$parse(input, options) {
1439
1444
  function peg$parseinlineSpace() {
1440
1445
  var s0;
1441
1446
 
1442
- if (peg$r3.test(input.charAt(peg$currPos))) {
1447
+ if (peg$r2.test(input.charAt(peg$currPos))) {
1443
1448
  s0 = input.charAt(peg$currPos);
1444
1449
  peg$currPos++;
1445
1450
  } else {
1446
1451
  s0 = peg$FAILED;
1447
- if (peg$silentFails === 0) { peg$fail(peg$e34); }
1452
+ if (peg$silentFails === 0) { peg$fail(peg$e33); }
1448
1453
  }
1449
1454
 
1450
1455
  return s0;
@@ -1470,7 +1475,7 @@ function peg$parse(input, options) {
1470
1475
  peg$silentFails--;
1471
1476
  if (s0 === peg$FAILED) {
1472
1477
  s1 = peg$FAILED;
1473
- if (peg$silentFails === 0) { peg$fail(peg$e35); }
1478
+ if (peg$silentFails === 0) { peg$fail(peg$e34); }
1474
1479
  }
1475
1480
 
1476
1481
  return s0;
@@ -1482,11 +1487,11 @@ function peg$parse(input, options) {
1482
1487
  peg$silentFails++;
1483
1488
  s0 = peg$currPos;
1484
1489
  if (input.charCodeAt(peg$currPos) === 61) {
1485
- s1 = peg$c1;
1490
+ s1 = peg$c2;
1486
1491
  peg$currPos++;
1487
1492
  } else {
1488
1493
  s1 = peg$FAILED;
1489
- if (peg$silentFails === 0) { peg$fail(peg$e5); }
1494
+ if (peg$silentFails === 0) { peg$fail(peg$e6); }
1490
1495
  }
1491
1496
  if (s1 !== peg$FAILED) {
1492
1497
  s2 = peg$parse__();
@@ -1505,7 +1510,7 @@ function peg$parse(input, options) {
1505
1510
  peg$silentFails--;
1506
1511
  if (s0 === peg$FAILED) {
1507
1512
  s1 = peg$FAILED;
1508
- if (peg$silentFails === 0) { peg$fail(peg$e36); }
1513
+ if (peg$silentFails === 0) { peg$fail(peg$e35); }
1509
1514
  }
1510
1515
 
1511
1516
  return s0;
@@ -1521,7 +1526,7 @@ function peg$parse(input, options) {
1521
1526
  peg$currPos++;
1522
1527
  } else {
1523
1528
  s1 = peg$FAILED;
1524
- if (peg$silentFails === 0) { peg$fail(peg$e38); }
1529
+ if (peg$silentFails === 0) { peg$fail(peg$e37); }
1525
1530
  }
1526
1531
  if (s1 !== peg$FAILED) {
1527
1532
  s2 = peg$parsepath();
@@ -1537,7 +1542,7 @@ function peg$parse(input, options) {
1537
1542
  peg$currPos++;
1538
1543
  } else {
1539
1544
  s1 = peg$FAILED;
1540
- if (peg$silentFails === 0) { peg$fail(peg$e38); }
1545
+ if (peg$silentFails === 0) { peg$fail(peg$e37); }
1541
1546
  }
1542
1547
  if (s1 !== peg$FAILED) {
1543
1548
  peg$savedPos = s0;
@@ -1548,7 +1553,7 @@ function peg$parse(input, options) {
1548
1553
  peg$silentFails--;
1549
1554
  if (s0 === peg$FAILED) {
1550
1555
  s1 = peg$FAILED;
1551
- if (peg$silentFails === 0) { peg$fail(peg$e37); }
1556
+ if (peg$silentFails === 0) { peg$fail(peg$e36); }
1552
1557
  }
1553
1558
 
1554
1559
  return s0;
@@ -1596,9 +1601,119 @@ function peg$parse(input, options) {
1596
1601
  }
1597
1602
  peg$silentFails--;
1598
1603
  if (s0 === peg$FAILED) {
1604
+ s1 = peg$FAILED;
1605
+ if (peg$silentFails === 0) { peg$fail(peg$e38); }
1606
+ }
1607
+
1608
+ return s0;
1609
+ }
1610
+
1611
+ function peg$parsemultiLineComment() {
1612
+ var s0, s1, s2, s3, s4, s5;
1613
+
1614
+ s0 = peg$currPos;
1615
+ if (input.substr(peg$currPos, 2) === peg$c16) {
1616
+ s1 = peg$c16;
1617
+ peg$currPos += 2;
1618
+ } else {
1599
1619
  s1 = peg$FAILED;
1600
1620
  if (peg$silentFails === 0) { peg$fail(peg$e39); }
1601
1621
  }
1622
+ if (s1 !== peg$FAILED) {
1623
+ s2 = [];
1624
+ s3 = peg$currPos;
1625
+ s4 = peg$currPos;
1626
+ peg$silentFails++;
1627
+ if (input.substr(peg$currPos, 2) === peg$c17) {
1628
+ s5 = peg$c17;
1629
+ peg$currPos += 2;
1630
+ } else {
1631
+ s5 = peg$FAILED;
1632
+ if (peg$silentFails === 0) { peg$fail(peg$e40); }
1633
+ }
1634
+ peg$silentFails--;
1635
+ if (s5 === peg$FAILED) {
1636
+ s4 = undefined;
1637
+ } else {
1638
+ peg$currPos = s4;
1639
+ s4 = peg$FAILED;
1640
+ }
1641
+ if (s4 !== peg$FAILED) {
1642
+ if (input.length > peg$currPos) {
1643
+ s5 = input.charAt(peg$currPos);
1644
+ peg$currPos++;
1645
+ } else {
1646
+ s5 = peg$FAILED;
1647
+ if (peg$silentFails === 0) { peg$fail(peg$e9); }
1648
+ }
1649
+ if (s5 !== peg$FAILED) {
1650
+ s4 = [s4, s5];
1651
+ s3 = s4;
1652
+ } else {
1653
+ peg$currPos = s3;
1654
+ s3 = peg$FAILED;
1655
+ }
1656
+ } else {
1657
+ peg$currPos = s3;
1658
+ s3 = peg$FAILED;
1659
+ }
1660
+ while (s3 !== peg$FAILED) {
1661
+ s2.push(s3);
1662
+ s3 = peg$currPos;
1663
+ s4 = peg$currPos;
1664
+ peg$silentFails++;
1665
+ if (input.substr(peg$currPos, 2) === peg$c17) {
1666
+ s5 = peg$c17;
1667
+ peg$currPos += 2;
1668
+ } else {
1669
+ s5 = peg$FAILED;
1670
+ if (peg$silentFails === 0) { peg$fail(peg$e40); }
1671
+ }
1672
+ peg$silentFails--;
1673
+ if (s5 === peg$FAILED) {
1674
+ s4 = undefined;
1675
+ } else {
1676
+ peg$currPos = s4;
1677
+ s4 = peg$FAILED;
1678
+ }
1679
+ if (s4 !== peg$FAILED) {
1680
+ if (input.length > peg$currPos) {
1681
+ s5 = input.charAt(peg$currPos);
1682
+ peg$currPos++;
1683
+ } else {
1684
+ s5 = peg$FAILED;
1685
+ if (peg$silentFails === 0) { peg$fail(peg$e9); }
1686
+ }
1687
+ if (s5 !== peg$FAILED) {
1688
+ s4 = [s4, s5];
1689
+ s3 = s4;
1690
+ } else {
1691
+ peg$currPos = s3;
1692
+ s3 = peg$FAILED;
1693
+ }
1694
+ } else {
1695
+ peg$currPos = s3;
1696
+ s3 = peg$FAILED;
1697
+ }
1698
+ }
1699
+ if (input.substr(peg$currPos, 2) === peg$c17) {
1700
+ s3 = peg$c17;
1701
+ peg$currPos += 2;
1702
+ } else {
1703
+ s3 = peg$FAILED;
1704
+ if (peg$silentFails === 0) { peg$fail(peg$e40); }
1705
+ }
1706
+ if (s3 !== peg$FAILED) {
1707
+ peg$savedPos = s0;
1708
+ s0 = peg$f16();
1709
+ } else {
1710
+ peg$currPos = s0;
1711
+ s0 = peg$FAILED;
1712
+ }
1713
+ } else {
1714
+ peg$currPos = s0;
1715
+ s0 = peg$FAILED;
1716
+ }
1602
1717
 
1603
1718
  return s0;
1604
1719
  }
@@ -1607,27 +1722,27 @@ function peg$parse(input, options) {
1607
1722
  var s0;
1608
1723
 
1609
1724
  if (input.charCodeAt(peg$currPos) === 10) {
1610
- s0 = peg$c16;
1725
+ s0 = peg$c18;
1611
1726
  peg$currPos++;
1612
1727
  } else {
1613
1728
  s0 = peg$FAILED;
1614
- if (peg$silentFails === 0) { peg$fail(peg$e40); }
1729
+ if (peg$silentFails === 0) { peg$fail(peg$e41); }
1615
1730
  }
1616
1731
  if (s0 === peg$FAILED) {
1617
- if (input.substr(peg$currPos, 2) === peg$c17) {
1618
- s0 = peg$c17;
1732
+ if (input.substr(peg$currPos, 2) === peg$c19) {
1733
+ s0 = peg$c19;
1619
1734
  peg$currPos += 2;
1620
1735
  } else {
1621
1736
  s0 = peg$FAILED;
1622
- if (peg$silentFails === 0) { peg$fail(peg$e41); }
1737
+ if (peg$silentFails === 0) { peg$fail(peg$e42); }
1623
1738
  }
1624
1739
  if (s0 === peg$FAILED) {
1625
1740
  if (input.charCodeAt(peg$currPos) === 13) {
1626
- s0 = peg$c18;
1741
+ s0 = peg$c20;
1627
1742
  peg$currPos++;
1628
1743
  } else {
1629
1744
  s0 = peg$FAILED;
1630
- if (peg$silentFails === 0) { peg$fail(peg$e42); }
1745
+ if (peg$silentFails === 0) { peg$fail(peg$e43); }
1631
1746
  }
1632
1747
  }
1633
1748
  }
@@ -1646,7 +1761,7 @@ function peg$parse(input, options) {
1646
1761
  peg$silentFails--;
1647
1762
  if (s0 === peg$FAILED) {
1648
1763
  s1 = peg$FAILED;
1649
- if (peg$silentFails === 0) { peg$fail(peg$e43); }
1764
+ if (peg$silentFails === 0) { peg$fail(peg$e44); }
1650
1765
  }
1651
1766
 
1652
1767
  return s0;
@@ -1658,11 +1773,11 @@ function peg$parse(input, options) {
1658
1773
  peg$silentFails++;
1659
1774
  s0 = peg$currPos;
1660
1775
  if (input.charCodeAt(peg$currPos) === 123) {
1661
- s1 = peg$c19;
1776
+ s1 = peg$c21;
1662
1777
  peg$currPos++;
1663
1778
  } else {
1664
1779
  s1 = peg$FAILED;
1665
- if (peg$silentFails === 0) { peg$fail(peg$e45); }
1780
+ if (peg$silentFails === 0) { peg$fail(peg$e46); }
1666
1781
  }
1667
1782
  if (s1 !== peg$FAILED) {
1668
1783
  s2 = peg$parse__();
@@ -1672,15 +1787,15 @@ function peg$parse(input, options) {
1672
1787
  }
1673
1788
  s4 = peg$parse__();
1674
1789
  if (input.charCodeAt(peg$currPos) === 125) {
1675
- s5 = peg$c2;
1790
+ s5 = peg$c3;
1676
1791
  peg$currPos++;
1677
1792
  } else {
1678
1793
  s5 = peg$FAILED;
1679
- if (peg$silentFails === 0) { peg$fail(peg$e7); }
1794
+ if (peg$silentFails === 0) { peg$fail(peg$e8); }
1680
1795
  }
1681
1796
  if (s5 !== peg$FAILED) {
1682
1797
  peg$savedPos = s0;
1683
- s0 = peg$f16(s3);
1798
+ s0 = peg$f17(s3);
1684
1799
  } else {
1685
1800
  peg$currPos = s0;
1686
1801
  s0 = peg$FAILED;
@@ -1692,7 +1807,7 @@ function peg$parse(input, options) {
1692
1807
  peg$silentFails--;
1693
1808
  if (s0 === peg$FAILED) {
1694
1809
  s1 = peg$FAILED;
1695
- if (peg$silentFails === 0) { peg$fail(peg$e44); }
1810
+ if (peg$silentFails === 0) { peg$fail(peg$e45); }
1696
1811
  }
1697
1812
 
1698
1813
  return s0;
@@ -1754,7 +1869,7 @@ function peg$parse(input, options) {
1754
1869
  peg$currPos++;
1755
1870
  } else {
1756
1871
  s3 = peg$FAILED;
1757
- if (peg$silentFails === 0) { peg$fail(peg$e28); }
1872
+ if (peg$silentFails === 0) { peg$fail(peg$e27); }
1758
1873
  }
1759
1874
  if (s3 !== peg$FAILED) {
1760
1875
  s4 = peg$parse__();
@@ -1776,7 +1891,7 @@ function peg$parse(input, options) {
1776
1891
  peg$silentFails--;
1777
1892
  if (s0 === peg$FAILED) {
1778
1893
  s1 = peg$FAILED;
1779
- if (peg$silentFails === 0) { peg$fail(peg$e46); }
1894
+ if (peg$silentFails === 0) { peg$fail(peg$e47); }
1780
1895
  }
1781
1896
 
1782
1897
  return s0;
@@ -1791,7 +1906,7 @@ function peg$parse(input, options) {
1791
1906
  s1 = peg$parseidentifier();
1792
1907
  if (s1 !== peg$FAILED) {
1793
1908
  peg$savedPos = s0;
1794
- s1 = peg$f17(s1);
1909
+ s1 = peg$f18(s1);
1795
1910
  }
1796
1911
  s0 = s1;
1797
1912
  }
@@ -1808,7 +1923,7 @@ function peg$parse(input, options) {
1808
1923
  peg$currPos++;
1809
1924
  } else {
1810
1925
  s1 = peg$FAILED;
1811
- if (peg$silentFails === 0) { peg$fail(peg$e26); }
1926
+ if (peg$silentFails === 0) { peg$fail(peg$e25); }
1812
1927
  }
1813
1928
  if (s1 !== peg$FAILED) {
1814
1929
  s2 = peg$parse__();
@@ -1818,11 +1933,11 @@ function peg$parse(input, options) {
1818
1933
  }
1819
1934
  s4 = peg$parse__();
1820
1935
  if (input.charCodeAt(peg$currPos) === 41) {
1821
- s5 = peg$c4;
1936
+ s5 = peg$c5;
1822
1937
  peg$currPos++;
1823
1938
  } else {
1824
1939
  s5 = peg$FAILED;
1825
- if (peg$silentFails === 0) { peg$fail(peg$e10); }
1940
+ if (peg$silentFails === 0) { peg$fail(peg$e11); }
1826
1941
  }
1827
1942
  if (s5 !== peg$FAILED) {
1828
1943
  s6 = peg$parse__();
@@ -1832,7 +1947,7 @@ function peg$parse(input, options) {
1832
1947
  s9 = peg$parsepipeline();
1833
1948
  if (s9 !== peg$FAILED) {
1834
1949
  peg$savedPos = s0;
1835
- s0 = peg$f18(s3, s9);
1950
+ s0 = peg$f19(s3, s9);
1836
1951
  } else {
1837
1952
  peg$currPos = s0;
1838
1953
  s0 = peg$FAILED;
@@ -1863,7 +1978,7 @@ function peg$parse(input, options) {
1863
1978
  peg$currPos++;
1864
1979
  } else {
1865
1980
  s1 = peg$FAILED;
1866
- if (peg$silentFails === 0) { peg$fail(peg$e26); }
1981
+ if (peg$silentFails === 0) { peg$fail(peg$e25); }
1867
1982
  }
1868
1983
  if (s1 !== peg$FAILED) {
1869
1984
  s2 = peg$parse__();
@@ -1873,15 +1988,15 @@ function peg$parse(input, options) {
1873
1988
  }
1874
1989
  s4 = peg$parse__();
1875
1990
  if (input.charCodeAt(peg$currPos) === 41) {
1876
- s5 = peg$c4;
1991
+ s5 = peg$c5;
1877
1992
  peg$currPos++;
1878
1993
  } else {
1879
1994
  s5 = peg$FAILED;
1880
- if (peg$silentFails === 0) { peg$fail(peg$e10); }
1995
+ if (peg$silentFails === 0) { peg$fail(peg$e11); }
1881
1996
  }
1882
1997
  if (s5 !== peg$FAILED) {
1883
1998
  peg$savedPos = s0;
1884
- s0 = peg$f19(s3);
1999
+ s0 = peg$f20(s3);
1885
2000
  } else {
1886
2001
  peg$currPos = s0;
1887
2002
  s0 = peg$FAILED;
@@ -1893,7 +2008,7 @@ function peg$parse(input, options) {
1893
2008
  peg$silentFails--;
1894
2009
  if (s0 === peg$FAILED) {
1895
2010
  s1 = peg$FAILED;
1896
- if (peg$silentFails === 0) { peg$fail(peg$e47); }
2011
+ if (peg$silentFails === 0) { peg$fail(peg$e48); }
1897
2012
  }
1898
2013
 
1899
2014
  return s0;
@@ -1947,7 +2062,7 @@ function peg$parse(input, options) {
1947
2062
  }
1948
2063
  if (s1 !== peg$FAILED) {
1949
2064
  peg$savedPos = s0;
1950
- s1 = peg$f20(s1);
2065
+ s1 = peg$f21(s1);
1951
2066
  }
1952
2067
  s0 = s1;
1953
2068
 
@@ -1969,7 +2084,7 @@ function peg$parse(input, options) {
1969
2084
  peg$currPos++;
1970
2085
  } else {
1971
2086
  s3 = peg$FAILED;
1972
- if (peg$silentFails === 0) { peg$fail(peg$e38); }
2087
+ if (peg$silentFails === 0) { peg$fail(peg$e37); }
1973
2088
  }
1974
2089
  if (s3 !== peg$FAILED) {
1975
2090
  s3 = peg$parsepathKey();
@@ -1986,7 +2101,7 @@ function peg$parse(input, options) {
1986
2101
  }
1987
2102
  peg$silentFails--;
1988
2103
  s1 = peg$FAILED;
1989
- if (peg$silentFails === 0) { peg$fail(peg$e48); }
2104
+ if (peg$silentFails === 0) { peg$fail(peg$e49); }
1990
2105
 
1991
2106
  return s0;
1992
2107
  }
@@ -2003,11 +2118,11 @@ function peg$parse(input, options) {
2003
2118
  s2 = peg$parseidentifierChar();
2004
2119
  }
2005
2120
  peg$savedPos = s0;
2006
- s1 = peg$f21(s1);
2121
+ s1 = peg$f22(s1);
2007
2122
  s0 = s1;
2008
2123
  peg$silentFails--;
2009
2124
  s1 = peg$FAILED;
2010
- if (peg$silentFails === 0) { peg$fail(peg$e49); }
2125
+ if (peg$silentFails === 0) { peg$fail(peg$e50); }
2011
2126
 
2012
2127
  return s0;
2013
2128
  }
@@ -2024,7 +2139,7 @@ function peg$parse(input, options) {
2024
2139
  peg$currPos++;
2025
2140
  } else {
2026
2141
  s2 = peg$FAILED;
2027
- if (peg$silentFails === 0) { peg$fail(peg$e28); }
2142
+ if (peg$silentFails === 0) { peg$fail(peg$e27); }
2028
2143
  }
2029
2144
  if (s2 !== peg$FAILED) {
2030
2145
  s3 = [];
@@ -2033,7 +2148,7 @@ function peg$parse(input, options) {
2033
2148
  peg$currPos++;
2034
2149
  } else {
2035
2150
  s4 = peg$FAILED;
2036
- if (peg$silentFails === 0) { peg$fail(peg$e38); }
2151
+ if (peg$silentFails === 0) { peg$fail(peg$e37); }
2037
2152
  }
2038
2153
  while (s4 !== peg$FAILED) {
2039
2154
  s3.push(s4);
@@ -2045,7 +2160,7 @@ function peg$parse(input, options) {
2045
2160
  peg$currPos++;
2046
2161
  } else {
2047
2162
  s4 = peg$FAILED;
2048
- if (peg$silentFails === 0) { peg$fail(peg$e38); }
2163
+ if (peg$silentFails === 0) { peg$fail(peg$e37); }
2049
2164
  }
2050
2165
  }
2051
2166
  }
@@ -2056,7 +2171,7 @@ function peg$parse(input, options) {
2056
2171
  s5 = null;
2057
2172
  }
2058
2173
  peg$savedPos = s0;
2059
- s0 = peg$f22(s1, s4, s5);
2174
+ s0 = peg$f23(s1, s4, s5);
2060
2175
  } else {
2061
2176
  peg$currPos = s0;
2062
2177
  s0 = peg$FAILED;
@@ -2072,7 +2187,7 @@ function peg$parse(input, options) {
2072
2187
  peg$silentFails--;
2073
2188
  if (s0 === peg$FAILED) {
2074
2189
  s1 = peg$FAILED;
2075
- if (peg$silentFails === 0) { peg$fail(peg$e50); }
2190
+ if (peg$silentFails === 0) { peg$fail(peg$e51); }
2076
2191
  }
2077
2192
 
2078
2193
  return s0;
@@ -2089,7 +2204,7 @@ function peg$parse(input, options) {
2089
2204
  peg$silentFails--;
2090
2205
  if (s0 === peg$FAILED) {
2091
2206
  s1 = peg$FAILED;
2092
- if (peg$silentFails === 0) { peg$fail(peg$e51); }
2207
+ if (peg$silentFails === 0) { peg$fail(peg$e52); }
2093
2208
  }
2094
2209
 
2095
2210
  return s0;
@@ -2100,86 +2215,86 @@ function peg$parse(input, options) {
2100
2215
 
2101
2216
  peg$silentFails++;
2102
2217
  s0 = peg$currPos;
2103
- if (input.substr(peg$currPos, 5) === peg$c20) {
2104
- s1 = peg$c20;
2218
+ if (input.substr(peg$currPos, 5) === peg$c22) {
2219
+ s1 = peg$c22;
2105
2220
  peg$currPos += 5;
2106
2221
  } else {
2107
2222
  s1 = peg$FAILED;
2108
- if (peg$silentFails === 0) { peg$fail(peg$e53); }
2223
+ if (peg$silentFails === 0) { peg$fail(peg$e54); }
2109
2224
  }
2110
2225
  if (s1 !== peg$FAILED) {
2111
2226
  peg$savedPos = s0;
2112
- s1 = peg$f23();
2227
+ s1 = peg$f24();
2113
2228
  }
2114
2229
  s0 = s1;
2115
2230
  if (s0 === peg$FAILED) {
2116
2231
  s0 = peg$currPos;
2117
- if (input.substr(peg$currPos, 4) === peg$c21) {
2118
- s1 = peg$c21;
2232
+ if (input.substr(peg$currPos, 4) === peg$c23) {
2233
+ s1 = peg$c23;
2119
2234
  peg$currPos += 4;
2120
2235
  } else {
2121
2236
  s1 = peg$FAILED;
2122
- if (peg$silentFails === 0) { peg$fail(peg$e54); }
2237
+ if (peg$silentFails === 0) { peg$fail(peg$e55); }
2123
2238
  }
2124
2239
  if (s1 !== peg$FAILED) {
2125
2240
  peg$savedPos = s0;
2126
- s1 = peg$f24();
2241
+ s1 = peg$f25();
2127
2242
  }
2128
2243
  s0 = s1;
2129
2244
  if (s0 === peg$FAILED) {
2130
2245
  s0 = peg$currPos;
2131
- if (input.substr(peg$currPos, 7) === peg$c22) {
2132
- s1 = peg$c22;
2246
+ if (input.substr(peg$currPos, 7) === peg$c24) {
2247
+ s1 = peg$c24;
2133
2248
  peg$currPos += 7;
2134
2249
  } else {
2135
2250
  s1 = peg$FAILED;
2136
- if (peg$silentFails === 0) { peg$fail(peg$e55); }
2251
+ if (peg$silentFails === 0) { peg$fail(peg$e56); }
2137
2252
  }
2138
2253
  if (s1 !== peg$FAILED) {
2139
2254
  peg$savedPos = s0;
2140
- s1 = peg$f25();
2255
+ s1 = peg$f26();
2141
2256
  }
2142
2257
  s0 = s1;
2143
2258
  if (s0 === peg$FAILED) {
2144
2259
  s0 = peg$currPos;
2145
- if (input.substr(peg$currPos, 9) === peg$c23) {
2146
- s1 = peg$c23;
2260
+ if (input.substr(peg$currPos, 9) === peg$c25) {
2261
+ s1 = peg$c25;
2147
2262
  peg$currPos += 9;
2148
2263
  } else {
2149
2264
  s1 = peg$FAILED;
2150
- if (peg$silentFails === 0) { peg$fail(peg$e56); }
2265
+ if (peg$silentFails === 0) { peg$fail(peg$e57); }
2151
2266
  }
2152
2267
  if (s1 !== peg$FAILED) {
2153
2268
  peg$savedPos = s0;
2154
- s1 = peg$f26();
2269
+ s1 = peg$f27();
2155
2270
  }
2156
2271
  s0 = s1;
2157
2272
  if (s0 === peg$FAILED) {
2158
2273
  s0 = peg$currPos;
2159
- if (input.substr(peg$currPos, 8) === peg$c24) {
2160
- s1 = peg$c24;
2274
+ if (input.substr(peg$currPos, 8) === peg$c26) {
2275
+ s1 = peg$c26;
2161
2276
  peg$currPos += 8;
2162
2277
  } else {
2163
2278
  s1 = peg$FAILED;
2164
- if (peg$silentFails === 0) { peg$fail(peg$e57); }
2279
+ if (peg$silentFails === 0) { peg$fail(peg$e58); }
2165
2280
  }
2166
2281
  if (s1 !== peg$FAILED) {
2167
2282
  peg$savedPos = s0;
2168
- s1 = peg$f27();
2283
+ s1 = peg$f28();
2169
2284
  }
2170
2285
  s0 = s1;
2171
2286
  if (s0 === peg$FAILED) {
2172
2287
  s0 = peg$currPos;
2173
- if (input.substr(peg$currPos, 4) === peg$c25) {
2174
- s1 = peg$c25;
2288
+ if (input.substr(peg$currPos, 4) === peg$c27) {
2289
+ s1 = peg$c27;
2175
2290
  peg$currPos += 4;
2176
2291
  } else {
2177
2292
  s1 = peg$FAILED;
2178
- if (peg$silentFails === 0) { peg$fail(peg$e58); }
2293
+ if (peg$silentFails === 0) { peg$fail(peg$e59); }
2179
2294
  }
2180
2295
  if (s1 !== peg$FAILED) {
2181
2296
  peg$savedPos = s0;
2182
- s1 = peg$f28();
2297
+ s1 = peg$f29();
2183
2298
  }
2184
2299
  s0 = s1;
2185
2300
  }
@@ -2190,7 +2305,7 @@ function peg$parse(input, options) {
2190
2305
  peg$silentFails--;
2191
2306
  if (s0 === peg$FAILED) {
2192
2307
  s1 = peg$FAILED;
2193
- if (peg$silentFails === 0) { peg$fail(peg$e52); }
2308
+ if (peg$silentFails === 0) { peg$fail(peg$e53); }
2194
2309
  }
2195
2310
 
2196
2311
  return s0;
@@ -2204,13 +2319,13 @@ function peg$parse(input, options) {
2204
2319
  s1 = peg$parseidentifier();
2205
2320
  if (s1 !== peg$FAILED) {
2206
2321
  peg$savedPos = s0;
2207
- s1 = peg$f29(s1);
2322
+ s1 = peg$f30(s1);
2208
2323
  }
2209
2324
  s0 = s1;
2210
2325
  peg$silentFails--;
2211
2326
  if (s0 === peg$FAILED) {
2212
2327
  s1 = peg$FAILED;
2213
- if (peg$silentFails === 0) { peg$fail(peg$e59); }
2328
+ if (peg$silentFails === 0) { peg$fail(peg$e60); }
2214
2329
  }
2215
2330
 
2216
2331
  return s0;
@@ -2222,11 +2337,11 @@ function peg$parse(input, options) {
2222
2337
  s0 = peg$currPos;
2223
2338
  s1 = peg$parse__();
2224
2339
  if (input.charCodeAt(peg$currPos) === 44) {
2225
- s2 = peg$c26;
2340
+ s2 = peg$c28;
2226
2341
  peg$currPos++;
2227
2342
  } else {
2228
2343
  s2 = peg$FAILED;
2229
- if (peg$silentFails === 0) { peg$fail(peg$e60); }
2344
+ if (peg$silentFails === 0) { peg$fail(peg$e61); }
2230
2345
  }
2231
2346
  if (s2 !== peg$FAILED) {
2232
2347
  s3 = peg$parse__();
@@ -2246,12 +2361,12 @@ function peg$parse(input, options) {
2246
2361
  function peg$parsesign() {
2247
2362
  var s0;
2248
2363
 
2249
- if (peg$r4.test(input.charAt(peg$currPos))) {
2364
+ if (peg$r3.test(input.charAt(peg$currPos))) {
2250
2365
  s0 = input.charAt(peg$currPos);
2251
2366
  peg$currPos++;
2252
2367
  } else {
2253
2368
  s0 = peg$FAILED;
2254
- if (peg$silentFails === 0) { peg$fail(peg$e61); }
2369
+ if (peg$silentFails === 0) { peg$fail(peg$e62); }
2255
2370
  }
2256
2371
 
2257
2372
  return s0;
@@ -2261,19 +2376,94 @@ function peg$parse(input, options) {
2261
2376
  var s0;
2262
2377
 
2263
2378
  if (input.charCodeAt(peg$currPos) === 8594) {
2264
- s0 = peg$c27;
2379
+ s0 = peg$c29;
2265
2380
  peg$currPos++;
2266
2381
  } else {
2267
2382
  s0 = peg$FAILED;
2268
- if (peg$silentFails === 0) { peg$fail(peg$e62); }
2383
+ if (peg$silentFails === 0) { peg$fail(peg$e63); }
2269
2384
  }
2270
2385
  if (s0 === peg$FAILED) {
2271
- if (input.substr(peg$currPos, 2) === peg$c28) {
2272
- s0 = peg$c28;
2386
+ if (input.substr(peg$currPos, 2) === peg$c30) {
2387
+ s0 = peg$c30;
2273
2388
  peg$currPos += 2;
2274
2389
  } else {
2275
2390
  s0 = peg$FAILED;
2276
- if (peg$silentFails === 0) { peg$fail(peg$e63); }
2391
+ if (peg$silentFails === 0) { peg$fail(peg$e64); }
2392
+ }
2393
+ }
2394
+
2395
+ return s0;
2396
+ }
2397
+
2398
+ function peg$parsesingleLineComment() {
2399
+ var s0, s1, s2, s3;
2400
+
2401
+ s0 = peg$currPos;
2402
+ if (input.charCodeAt(peg$currPos) === 35) {
2403
+ s1 = peg$c31;
2404
+ peg$currPos++;
2405
+ } else {
2406
+ s1 = peg$FAILED;
2407
+ if (peg$silentFails === 0) { peg$fail(peg$e65); }
2408
+ }
2409
+ if (s1 !== peg$FAILED) {
2410
+ s2 = [];
2411
+ if (peg$r4.test(input.charAt(peg$currPos))) {
2412
+ s3 = input.charAt(peg$currPos);
2413
+ peg$currPos++;
2414
+ } else {
2415
+ s3 = peg$FAILED;
2416
+ if (peg$silentFails === 0) { peg$fail(peg$e66); }
2417
+ }
2418
+ while (s3 !== peg$FAILED) {
2419
+ s2.push(s3);
2420
+ if (peg$r4.test(input.charAt(peg$currPos))) {
2421
+ s3 = input.charAt(peg$currPos);
2422
+ peg$currPos++;
2423
+ } else {
2424
+ s3 = peg$FAILED;
2425
+ if (peg$silentFails === 0) { peg$fail(peg$e66); }
2426
+ }
2427
+ }
2428
+ peg$savedPos = s0;
2429
+ s0 = peg$f31();
2430
+ } else {
2431
+ peg$currPos = s0;
2432
+ s0 = peg$FAILED;
2433
+ }
2434
+ if (s0 === peg$FAILED) {
2435
+ s0 = peg$currPos;
2436
+ if (input.substr(peg$currPos, 2) === peg$c0) {
2437
+ s1 = peg$c0;
2438
+ peg$currPos += 2;
2439
+ } else {
2440
+ s1 = peg$FAILED;
2441
+ if (peg$silentFails === 0) { peg$fail(peg$e1); }
2442
+ }
2443
+ if (s1 !== peg$FAILED) {
2444
+ s2 = [];
2445
+ if (peg$r4.test(input.charAt(peg$currPos))) {
2446
+ s3 = input.charAt(peg$currPos);
2447
+ peg$currPos++;
2448
+ } else {
2449
+ s3 = peg$FAILED;
2450
+ if (peg$silentFails === 0) { peg$fail(peg$e66); }
2451
+ }
2452
+ while (s3 !== peg$FAILED) {
2453
+ s2.push(s3);
2454
+ if (peg$r4.test(input.charAt(peg$currPos))) {
2455
+ s3 = input.charAt(peg$currPos);
2456
+ peg$currPos++;
2457
+ } else {
2458
+ s3 = peg$FAILED;
2459
+ if (peg$silentFails === 0) { peg$fail(peg$e66); }
2460
+ }
2461
+ }
2462
+ peg$savedPos = s0;
2463
+ s0 = peg$f32();
2464
+ } else {
2465
+ peg$currPos = s0;
2466
+ s0 = peg$FAILED;
2277
2467
  }
2278
2468
  }
2279
2469
 
@@ -2286,11 +2476,11 @@ function peg$parse(input, options) {
2286
2476
  peg$silentFails++;
2287
2477
  s0 = peg$currPos;
2288
2478
  if (input.charCodeAt(peg$currPos) === 39) {
2289
- s1 = peg$c29;
2479
+ s1 = peg$c32;
2290
2480
  peg$currPos++;
2291
2481
  } else {
2292
2482
  s1 = peg$FAILED;
2293
- if (peg$silentFails === 0) { peg$fail(peg$e65); }
2483
+ if (peg$silentFails === 0) { peg$fail(peg$e68); }
2294
2484
  }
2295
2485
  if (s1 !== peg$FAILED) {
2296
2486
  s2 = [];
@@ -2300,15 +2490,15 @@ function peg$parse(input, options) {
2300
2490
  s3 = peg$parsesingleQuoteStringChar();
2301
2491
  }
2302
2492
  if (input.charCodeAt(peg$currPos) === 39) {
2303
- s3 = peg$c29;
2493
+ s3 = peg$c32;
2304
2494
  peg$currPos++;
2305
2495
  } else {
2306
2496
  s3 = peg$FAILED;
2307
- if (peg$silentFails === 0) { peg$fail(peg$e65); }
2497
+ if (peg$silentFails === 0) { peg$fail(peg$e68); }
2308
2498
  }
2309
2499
  if (s3 !== peg$FAILED) {
2310
2500
  peg$savedPos = s0;
2311
- s0 = peg$f30(s2);
2501
+ s0 = peg$f33(s2);
2312
2502
  } else {
2313
2503
  peg$currPos = s0;
2314
2504
  s0 = peg$FAILED;
@@ -2320,7 +2510,7 @@ function peg$parse(input, options) {
2320
2510
  peg$silentFails--;
2321
2511
  if (s0 === peg$FAILED) {
2322
2512
  s1 = peg$FAILED;
2323
- if (peg$silentFails === 0) { peg$fail(peg$e64); }
2513
+ if (peg$silentFails === 0) { peg$fail(peg$e67); }
2324
2514
  }
2325
2515
 
2326
2516
  return s0;
@@ -2333,11 +2523,11 @@ function peg$parse(input, options) {
2333
2523
  s1 = peg$currPos;
2334
2524
  peg$silentFails++;
2335
2525
  if (input.charCodeAt(peg$currPos) === 39) {
2336
- s2 = peg$c29;
2526
+ s2 = peg$c32;
2337
2527
  peg$currPos++;
2338
2528
  } else {
2339
2529
  s2 = peg$FAILED;
2340
- if (peg$silentFails === 0) { peg$fail(peg$e65); }
2530
+ if (peg$silentFails === 0) { peg$fail(peg$e68); }
2341
2531
  }
2342
2532
  if (s2 === peg$FAILED) {
2343
2533
  s2 = peg$parsenewLine();
@@ -2428,7 +2618,7 @@ function peg$parse(input, options) {
2428
2618
  peg$silentFails--;
2429
2619
  if (s0 === peg$FAILED) {
2430
2620
  s1 = peg$FAILED;
2431
- if (peg$silentFails === 0) { peg$fail(peg$e66); }
2621
+ if (peg$silentFails === 0) { peg$fail(peg$e69); }
2432
2622
  }
2433
2623
 
2434
2624
  return s0;
@@ -2441,11 +2631,11 @@ function peg$parse(input, options) {
2441
2631
  s0 = peg$currPos;
2442
2632
  s1 = peg$parsetemplateDocumentContents();
2443
2633
  peg$savedPos = s0;
2444
- s1 = peg$f31(s1);
2634
+ s1 = peg$f34(s1);
2445
2635
  s0 = s1;
2446
2636
  peg$silentFails--;
2447
2637
  s1 = peg$FAILED;
2448
- if (peg$silentFails === 0) { peg$fail(peg$e67); }
2638
+ if (peg$silentFails === 0) { peg$fail(peg$e70); }
2449
2639
 
2450
2640
  return s0;
2451
2641
  }
@@ -2456,12 +2646,21 @@ function peg$parse(input, options) {
2456
2646
  s0 = peg$currPos;
2457
2647
  s1 = peg$currPos;
2458
2648
  peg$silentFails++;
2459
- if (input.substr(peg$currPos, 2) === peg$c30) {
2460
- s2 = peg$c30;
2649
+ if (input.substr(peg$currPos, 2) === peg$c33) {
2650
+ s2 = peg$c33;
2461
2651
  peg$currPos += 2;
2462
2652
  } else {
2463
2653
  s2 = peg$FAILED;
2464
- if (peg$silentFails === 0) { peg$fail(peg$e68); }
2654
+ if (peg$silentFails === 0) { peg$fail(peg$e71); }
2655
+ }
2656
+ if (s2 === peg$FAILED) {
2657
+ if (input.substr(peg$currPos, 2) === peg$c34) {
2658
+ s2 = peg$c34;
2659
+ peg$currPos += 2;
2660
+ } else {
2661
+ s2 = peg$FAILED;
2662
+ if (peg$silentFails === 0) { peg$fail(peg$e72); }
2663
+ }
2465
2664
  }
2466
2665
  peg$silentFails--;
2467
2666
  if (s2 === peg$FAILED) {
@@ -2503,7 +2702,7 @@ function peg$parse(input, options) {
2503
2702
  }
2504
2703
  }
2505
2704
  peg$savedPos = s0;
2506
- s1 = peg$f32(s1);
2705
+ s1 = peg$f35(s1);
2507
2706
  s0 = s1;
2508
2707
 
2509
2708
  return s0;
@@ -2526,13 +2725,13 @@ function peg$parse(input, options) {
2526
2725
  }
2527
2726
  if (s1 !== peg$FAILED) {
2528
2727
  peg$savedPos = s0;
2529
- s1 = peg$f33(s1);
2728
+ s1 = peg$f36(s1);
2530
2729
  }
2531
2730
  s0 = s1;
2532
2731
  peg$silentFails--;
2533
2732
  if (s0 === peg$FAILED) {
2534
2733
  s1 = peg$FAILED;
2535
- if (peg$silentFails === 0) { peg$fail(peg$e69); }
2734
+ if (peg$silentFails === 0) { peg$fail(peg$e73); }
2536
2735
  }
2537
2736
 
2538
2737
  return s0;
@@ -2544,20 +2743,20 @@ function peg$parse(input, options) {
2544
2743
  peg$silentFails++;
2545
2744
  s0 = peg$currPos;
2546
2745
  if (input.charCodeAt(peg$currPos) === 96) {
2547
- s1 = peg$c31;
2746
+ s1 = peg$c35;
2548
2747
  peg$currPos++;
2549
2748
  } else {
2550
2749
  s1 = peg$FAILED;
2551
- if (peg$silentFails === 0) { peg$fail(peg$e71); }
2750
+ if (peg$silentFails === 0) { peg$fail(peg$e75); }
2552
2751
  }
2553
2752
  if (s1 !== peg$FAILED) {
2554
2753
  s2 = peg$parsetemplateLiteralContents();
2555
2754
  if (input.charCodeAt(peg$currPos) === 96) {
2556
- s3 = peg$c31;
2755
+ s3 = peg$c35;
2557
2756
  peg$currPos++;
2558
2757
  } else {
2559
2758
  s3 = peg$FAILED;
2560
- if (peg$silentFails === 0) { peg$fail(peg$e71); }
2759
+ if (peg$silentFails === 0) { peg$fail(peg$e75); }
2561
2760
  }
2562
2761
  if (s3 !== peg$FAILED) {
2563
2762
  s0 = s2;
@@ -2572,7 +2771,7 @@ function peg$parse(input, options) {
2572
2771
  peg$silentFails--;
2573
2772
  if (s0 === peg$FAILED) {
2574
2773
  s1 = peg$FAILED;
2575
- if (peg$silentFails === 0) { peg$fail(peg$e70); }
2774
+ if (peg$silentFails === 0) { peg$fail(peg$e74); }
2576
2775
  }
2577
2776
 
2578
2777
  return s0;
@@ -2585,19 +2784,28 @@ function peg$parse(input, options) {
2585
2784
  s1 = peg$currPos;
2586
2785
  peg$silentFails++;
2587
2786
  if (input.charCodeAt(peg$currPos) === 96) {
2588
- s2 = peg$c31;
2787
+ s2 = peg$c35;
2589
2788
  peg$currPos++;
2590
2789
  } else {
2591
2790
  s2 = peg$FAILED;
2592
- if (peg$silentFails === 0) { peg$fail(peg$e71); }
2791
+ if (peg$silentFails === 0) { peg$fail(peg$e75); }
2593
2792
  }
2594
2793
  if (s2 === peg$FAILED) {
2595
- if (input.substr(peg$currPos, 2) === peg$c30) {
2596
- s2 = peg$c30;
2794
+ if (input.substr(peg$currPos, 2) === peg$c33) {
2795
+ s2 = peg$c33;
2597
2796
  peg$currPos += 2;
2598
2797
  } else {
2599
2798
  s2 = peg$FAILED;
2600
- if (peg$silentFails === 0) { peg$fail(peg$e68); }
2799
+ if (peg$silentFails === 0) { peg$fail(peg$e71); }
2800
+ }
2801
+ if (s2 === peg$FAILED) {
2802
+ if (input.substr(peg$currPos, 2) === peg$c34) {
2803
+ s2 = peg$c34;
2804
+ peg$currPos += 2;
2805
+ } else {
2806
+ s2 = peg$FAILED;
2807
+ if (peg$silentFails === 0) { peg$fail(peg$e72); }
2808
+ }
2601
2809
  }
2602
2810
  }
2603
2811
  peg$silentFails--;
@@ -2640,7 +2848,7 @@ function peg$parse(input, options) {
2640
2848
  }
2641
2849
  }
2642
2850
  peg$savedPos = s0;
2643
- s1 = peg$f34(s1);
2851
+ s1 = peg$f37(s1);
2644
2852
  s0 = s1;
2645
2853
 
2646
2854
  return s0;
@@ -2662,7 +2870,7 @@ function peg$parse(input, options) {
2662
2870
  }
2663
2871
  if (s1 !== peg$FAILED) {
2664
2872
  peg$savedPos = s0;
2665
- s1 = peg$f35(s1);
2873
+ s1 = peg$f38(s1);
2666
2874
  }
2667
2875
  s0 = s1;
2668
2876
 
@@ -2674,22 +2882,22 @@ function peg$parse(input, options) {
2674
2882
 
2675
2883
  peg$silentFails++;
2676
2884
  s0 = peg$currPos;
2677
- if (input.substr(peg$currPos, 2) === peg$c30) {
2678
- s1 = peg$c30;
2885
+ if (input.substr(peg$currPos, 2) === peg$c33) {
2886
+ s1 = peg$c33;
2679
2887
  peg$currPos += 2;
2680
2888
  } else {
2681
2889
  s1 = peg$FAILED;
2682
- if (peg$silentFails === 0) { peg$fail(peg$e68); }
2890
+ if (peg$silentFails === 0) { peg$fail(peg$e71); }
2683
2891
  }
2684
2892
  if (s1 !== peg$FAILED) {
2685
2893
  s2 = peg$parseexpression();
2686
2894
  if (s2 !== peg$FAILED) {
2687
- if (input.substr(peg$currPos, 2) === peg$c32) {
2688
- s3 = peg$c32;
2895
+ if (input.substr(peg$currPos, 2) === peg$c36) {
2896
+ s3 = peg$c36;
2689
2897
  peg$currPos += 2;
2690
2898
  } else {
2691
2899
  s3 = peg$FAILED;
2692
- if (peg$silentFails === 0) { peg$fail(peg$e73); }
2900
+ if (peg$silentFails === 0) { peg$fail(peg$e77); }
2693
2901
  }
2694
2902
  if (s3 !== peg$FAILED) {
2695
2903
  s0 = s2;
@@ -2705,10 +2913,44 @@ function peg$parse(input, options) {
2705
2913
  peg$currPos = s0;
2706
2914
  s0 = peg$FAILED;
2707
2915
  }
2916
+ if (s0 === peg$FAILED) {
2917
+ s0 = peg$currPos;
2918
+ if (input.substr(peg$currPos, 2) === peg$c34) {
2919
+ s1 = peg$c34;
2920
+ peg$currPos += 2;
2921
+ } else {
2922
+ s1 = peg$FAILED;
2923
+ if (peg$silentFails === 0) { peg$fail(peg$e72); }
2924
+ }
2925
+ if (s1 !== peg$FAILED) {
2926
+ s2 = peg$parseexpression();
2927
+ if (s2 !== peg$FAILED) {
2928
+ if (input.charCodeAt(peg$currPos) === 125) {
2929
+ s3 = peg$c3;
2930
+ peg$currPos++;
2931
+ } else {
2932
+ s3 = peg$FAILED;
2933
+ if (peg$silentFails === 0) { peg$fail(peg$e8); }
2934
+ }
2935
+ if (s3 !== peg$FAILED) {
2936
+ s0 = s2;
2937
+ } else {
2938
+ peg$currPos = s0;
2939
+ s0 = peg$FAILED;
2940
+ }
2941
+ } else {
2942
+ peg$currPos = s0;
2943
+ s0 = peg$FAILED;
2944
+ }
2945
+ } else {
2946
+ peg$currPos = s0;
2947
+ s0 = peg$FAILED;
2948
+ }
2949
+ }
2708
2950
  peg$silentFails--;
2709
2951
  if (s0 === peg$FAILED) {
2710
2952
  s1 = peg$FAILED;
2711
- if (peg$silentFails === 0) { peg$fail(peg$e72); }
2953
+ if (peg$silentFails === 0) { peg$fail(peg$e76); }
2712
2954
  }
2713
2955
 
2714
2956
  return s0;
@@ -2724,7 +2966,7 @@ function peg$parse(input, options) {
2724
2966
  peg$currPos++;
2725
2967
  } else {
2726
2968
  s0 = peg$FAILED;
2727
- if (peg$silentFails === 0) { peg$fail(peg$e8); }
2969
+ if (peg$silentFails === 0) { peg$fail(peg$e9); }
2728
2970
  }
2729
2971
  }
2730
2972
 
@@ -2737,11 +2979,11 @@ function peg$parse(input, options) {
2737
2979
  peg$silentFails++;
2738
2980
  s0 = peg$currPos;
2739
2981
  if (input.charCodeAt(peg$currPos) === 123) {
2740
- s1 = peg$c19;
2982
+ s1 = peg$c21;
2741
2983
  peg$currPos++;
2742
2984
  } else {
2743
2985
  s1 = peg$FAILED;
2744
- if (peg$silentFails === 0) { peg$fail(peg$e45); }
2986
+ if (peg$silentFails === 0) { peg$fail(peg$e46); }
2745
2987
  }
2746
2988
  if (s1 !== peg$FAILED) {
2747
2989
  s2 = peg$parse__();
@@ -2753,7 +2995,7 @@ function peg$parse(input, options) {
2753
2995
  s5 = peg$parseclosingBrace();
2754
2996
  if (s5 !== peg$FAILED) {
2755
2997
  peg$savedPos = s0;
2756
- s0 = peg$f36(s3);
2998
+ s0 = peg$f39(s3);
2757
2999
  } else {
2758
3000
  peg$currPos = s0;
2759
3001
  s0 = peg$FAILED;
@@ -2765,7 +3007,7 @@ function peg$parse(input, options) {
2765
3007
  peg$silentFails--;
2766
3008
  if (s0 === peg$FAILED) {
2767
3009
  s1 = peg$FAILED;
2768
- if (peg$silentFails === 0) { peg$fail(peg$e74); }
3010
+ if (peg$silentFails === 0) { peg$fail(peg$e78); }
2769
3011
  }
2770
3012
 
2771
3013
  return s0;