simplex-lang 0.0.6 → 0.1.0

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.
@@ -225,25 +225,31 @@ function peg$parse(input, options) {
225
225
  var peg$c29 = "true";
226
226
  var peg$c30 = "typeof";
227
227
  var peg$c31 = "mod";
228
- var peg$c32 = ";";
229
- var peg$c33 = "}";
230
- var peg$c34 = "(";
231
- var peg$c35 = ")";
232
- var peg$c36 = "[";
233
- var peg$c37 = "]";
234
- var peg$c38 = ",";
235
- var peg$c39 = "{";
236
- var peg$c40 = ":";
237
- var peg$c41 = "::";
238
- var peg$c42 = "^";
239
- var peg$c43 = "&";
240
- var peg$c44 = "<=";
241
- var peg$c45 = ">=";
242
- var peg$c46 = "==";
243
- var peg$c47 = "!=";
244
- var peg$c48 = "??";
245
- var peg$c49 = "|?";
246
- var peg$c50 = "|";
228
+ var peg$c32 = "let";
229
+ var peg$c33 = ";";
230
+ var peg$c34 = "}";
231
+ var peg$c35 = "(";
232
+ var peg$c36 = ")";
233
+ var peg$c37 = "[";
234
+ var peg$c38 = "]";
235
+ var peg$c39 = ",";
236
+ var peg$c40 = "{";
237
+ var peg$c41 = ":";
238
+ var peg$c42 = "::";
239
+ var peg$c43 = "%";
240
+ var peg$c44 = "^";
241
+ var peg$c45 = "&";
242
+ var peg$c46 = "<=";
243
+ var peg$c47 = ">=";
244
+ var peg$c48 = "==";
245
+ var peg$c49 = "!=";
246
+ var peg$c50 = "&&";
247
+ var peg$c51 = "||";
248
+ var peg$c52 = "??";
249
+ var peg$c53 = "|?";
250
+ var peg$c54 = "|";
251
+ var peg$c55 = "=>";
252
+ var peg$c56 = "=";
247
253
  var peg$r0 = /^[\t\v-\f \xA0\u1680\u2000-\u200A\u202F\u205F\u3000\uFEFF]/;
248
254
  var peg$r1 = /^[\n\r\u2028\u2029]/;
249
255
  var peg$r2 = /^[\r\u2028-\u2029]/;
@@ -337,27 +343,33 @@ function peg$parse(input, options) {
337
343
  var peg$e62 = peg$literalExpectation("true", false);
338
344
  var peg$e63 = peg$literalExpectation("typeof", false);
339
345
  var peg$e64 = peg$literalExpectation("mod", false);
340
- var peg$e65 = peg$literalExpectation(";", false);
341
- var peg$e66 = peg$literalExpectation("}", false);
342
- var peg$e67 = peg$literalExpectation("(", false);
343
- var peg$e68 = peg$literalExpectation(")", false);
344
- var peg$e69 = peg$literalExpectation("[", false);
345
- var peg$e70 = peg$literalExpectation("]", false);
346
- var peg$e71 = peg$literalExpectation(",", false);
347
- var peg$e72 = peg$literalExpectation("{", false);
348
- var peg$e73 = peg$literalExpectation(":", false);
349
- var peg$e74 = peg$literalExpectation("::", false);
350
- var peg$e75 = peg$literalExpectation("^", false);
351
- var peg$e76 = peg$classExpectation(["*", "/"], false, false);
352
- var peg$e77 = peg$literalExpectation("&", false);
353
- var peg$e78 = peg$literalExpectation("<=", false);
354
- var peg$e79 = peg$literalExpectation(">=", false);
355
- var peg$e80 = peg$classExpectation(["<", ">"], false, false);
356
- var peg$e81 = peg$literalExpectation("==", false);
357
- var peg$e82 = peg$literalExpectation("!=", false);
358
- var peg$e83 = peg$literalExpectation("??", false);
359
- var peg$e84 = peg$literalExpectation("|?", false);
360
- var peg$e85 = peg$literalExpectation("|", false);
346
+ var peg$e65 = peg$literalExpectation("let", false);
347
+ var peg$e66 = peg$literalExpectation(";", false);
348
+ var peg$e67 = peg$literalExpectation("}", false);
349
+ var peg$e68 = peg$literalExpectation("(", false);
350
+ var peg$e69 = peg$literalExpectation(")", false);
351
+ var peg$e70 = peg$literalExpectation("[", false);
352
+ var peg$e71 = peg$literalExpectation("]", false);
353
+ var peg$e72 = peg$literalExpectation(",", false);
354
+ var peg$e73 = peg$literalExpectation("{", false);
355
+ var peg$e74 = peg$literalExpectation(":", false);
356
+ var peg$e75 = peg$literalExpectation("::", false);
357
+ var peg$e76 = peg$literalExpectation("%", false);
358
+ var peg$e77 = peg$literalExpectation("^", false);
359
+ var peg$e78 = peg$classExpectation(["*", "/"], false, false);
360
+ var peg$e79 = peg$literalExpectation("&", false);
361
+ var peg$e80 = peg$literalExpectation("<=", false);
362
+ var peg$e81 = peg$literalExpectation(">=", false);
363
+ var peg$e82 = peg$classExpectation(["<", ">"], false, false);
364
+ var peg$e83 = peg$literalExpectation("==", false);
365
+ var peg$e84 = peg$literalExpectation("!=", false);
366
+ var peg$e85 = peg$literalExpectation("&&", false);
367
+ var peg$e86 = peg$literalExpectation("||", false);
368
+ var peg$e87 = peg$literalExpectation("??", false);
369
+ var peg$e88 = peg$literalExpectation("|?", false);
370
+ var peg$e89 = peg$literalExpectation("|", false);
371
+ var peg$e90 = peg$literalExpectation("=>", false);
372
+ var peg$e91 = peg$literalExpectation("=", false);
361
373
  var peg$f0 = function (statement) { return statement; };
362
374
  var peg$f1 = function (name) { return name; };
363
375
  var peg$f2 = function (head, tail) {
@@ -589,8 +601,14 @@ function peg$parse(input, options) {
589
601
  var peg$f53 = function (head, tail) {
590
602
  return buildList(head, tail, 3);
591
603
  };
592
- var peg$f54 = function (head, tail) { return buildBinaryExpression(head, tail, location()); };
593
- var peg$f55 = function (operator, argument) {
604
+ var peg$f54 = function () {
605
+ return {
606
+ type: 'CurryPlaceholder',
607
+ location: getLocation(location())
608
+ };
609
+ };
610
+ var peg$f55 = function (head, tail) { return buildBinaryExpression(head, tail, location()); };
611
+ var peg$f56 = function (operator, argument) {
594
612
  return {
595
613
  type: "UnaryExpression",
596
614
  operator: operator,
@@ -599,14 +617,14 @@ function peg$parse(input, options) {
599
617
  location: getLocation(location())
600
618
  };
601
619
  };
602
- var peg$f56 = function (head, tail) { return buildBinaryExpression(head, tail, location()); };
603
620
  var peg$f57 = function (head, tail) { return buildBinaryExpression(head, tail, location()); };
604
621
  var peg$f58 = function (head, tail) { return buildBinaryExpression(head, tail, location()); };
605
622
  var peg$f59 = function (head, tail) { return buildBinaryExpression(head, tail, location()); };
606
623
  var peg$f60 = function (head, tail) { return buildBinaryExpression(head, tail, location()); };
607
- var peg$f61 = function (head, tail) { return buildLogicalExpression(head, tail, location()); };
624
+ var peg$f61 = function (head, tail) { return buildBinaryExpression(head, tail, location()); };
608
625
  var peg$f62 = function (head, tail) { return buildLogicalExpression(head, tail, location()); };
609
- var peg$f63 = function (test, consequent, alternate) {
626
+ var peg$f63 = function (head, tail) { return buildLogicalExpression(head, tail, location()); };
627
+ var peg$f64 = function (test, consequent, alternate) {
610
628
  return {
611
629
  type: "ConditionalExpression",
612
630
  test: test,
@@ -615,7 +633,7 @@ function peg$parse(input, options) {
615
633
  location: getLocation(location())
616
634
  };
617
635
  };
618
- var peg$f64 = function (test, consequent) {
636
+ var peg$f65 = function (test, consequent) {
619
637
  return {
620
638
  type: "ConditionalExpression",
621
639
  test: test,
@@ -624,16 +642,55 @@ function peg$parse(input, options) {
624
642
  location: getLocation(location())
625
643
  };
626
644
  };
627
- var peg$f65 = function (head, tail) {
645
+ var peg$f66 = function (head, tail) {
628
646
  return buildExpression("NullishCoalescingExpression", head, tail, getLocation(location()));
629
647
  };
630
- var peg$f66 = function (head, operator, expression) { return { operator, expression }; };
631
- var peg$f67 = function (head, tail) {
648
+ var peg$f67 = function (head, operator, expression) { return { operator, expression }; };
649
+ var peg$f68 = function (head, tail) {
632
650
  return tail.length > 0
633
651
  ? { type: "PipeSequence", head, tail, location: getLocation(location()) }
634
652
  : head;
635
653
  };
636
- var peg$f68 = function (expression) {
654
+ var peg$f69 = function (params, body) {
655
+ return {
656
+ type: "LambdaExpression",
657
+ params: optionalList(extractOptional(params, 0)),
658
+ expression: body,
659
+ location: getLocation(location())
660
+ };
661
+ };
662
+ var peg$f70 = function (param, body) {
663
+ return {
664
+ type: "LambdaExpression",
665
+ params: [param],
666
+ expression: body,
667
+ location: getLocation(location())
668
+ };
669
+ };
670
+ var peg$f71 = function (head, tail) {
671
+ return buildList(head, tail, 3);
672
+ };
673
+ var peg$f72 = function (declarations, body) {
674
+ return {
675
+ type: "LetExpression",
676
+ declarations,
677
+ expression: body,
678
+ location: getLocation(location())
679
+ };
680
+ };
681
+ var peg$f73 = function (head, tail) {
682
+ return buildList(head, tail, 3);
683
+ };
684
+ var peg$f74 = function (id, init) {
685
+ return {
686
+ type: "VariableDeclarator",
687
+ id: id,
688
+ init: extractOptional(init, 1),
689
+ location: getLocation(location())
690
+ };
691
+ };
692
+ var peg$f75 = function (expression) { return expression; };
693
+ var peg$f76 = function (expression) {
637
694
  return {
638
695
  type: "ExpressionStatement",
639
696
  expression: expression
@@ -1387,6 +1444,9 @@ function peg$parse(input, options) {
1387
1444
  s0 = peg$parseThenToken();
1388
1445
  if (s0 === peg$FAILED) {
1389
1446
  s0 = peg$parseTypeofToken();
1447
+ if (s0 === peg$FAILED) {
1448
+ s0 = peg$parseLetToken();
1449
+ }
1390
1450
  }
1391
1451
  }
1392
1452
  }
@@ -3059,6 +3119,46 @@ function peg$parse(input, options) {
3059
3119
  }
3060
3120
  return s0;
3061
3121
  }
3122
+ function peg$parseLetToken() {
3123
+ var s0, s1, s2, s3;
3124
+ s0 = peg$currPos;
3125
+ if (input.substr(peg$currPos, 3) === peg$c32) {
3126
+ s1 = peg$c32;
3127
+ peg$currPos += 3;
3128
+ }
3129
+ else {
3130
+ s1 = peg$FAILED;
3131
+ if (peg$silentFails === 0) {
3132
+ peg$fail(peg$e65);
3133
+ }
3134
+ }
3135
+ if (s1 !== peg$FAILED) {
3136
+ s2 = peg$currPos;
3137
+ peg$silentFails++;
3138
+ s3 = peg$parseIdentifierPart();
3139
+ peg$silentFails--;
3140
+ if (s3 === peg$FAILED) {
3141
+ s2 = undefined;
3142
+ }
3143
+ else {
3144
+ peg$currPos = s2;
3145
+ s2 = peg$FAILED;
3146
+ }
3147
+ if (s2 !== peg$FAILED) {
3148
+ s1 = [s1, s2];
3149
+ s0 = s1;
3150
+ }
3151
+ else {
3152
+ peg$currPos = s0;
3153
+ s0 = peg$FAILED;
3154
+ }
3155
+ }
3156
+ else {
3157
+ peg$currPos = s0;
3158
+ s0 = peg$FAILED;
3159
+ }
3160
+ return s0;
3161
+ }
3062
3162
  function peg$parse__() {
3063
3163
  var s0, s1;
3064
3164
  s0 = [];
@@ -3102,13 +3202,13 @@ function peg$parse(input, options) {
3102
3202
  s0 = peg$currPos;
3103
3203
  s1 = peg$parse__();
3104
3204
  if (input.charCodeAt(peg$currPos) === 59) {
3105
- s2 = peg$c32;
3205
+ s2 = peg$c33;
3106
3206
  peg$currPos++;
3107
3207
  }
3108
3208
  else {
3109
3209
  s2 = peg$FAILED;
3110
3210
  if (peg$silentFails === 0) {
3111
- peg$fail(peg$e65);
3211
+ peg$fail(peg$e66);
3112
3212
  }
3113
3213
  }
3114
3214
  if (s2 !== peg$FAILED) {
@@ -3141,13 +3241,13 @@ function peg$parse(input, options) {
3141
3241
  s2 = peg$currPos;
3142
3242
  peg$silentFails++;
3143
3243
  if (input.charCodeAt(peg$currPos) === 125) {
3144
- s3 = peg$c33;
3244
+ s3 = peg$c34;
3145
3245
  peg$currPos++;
3146
3246
  }
3147
3247
  else {
3148
3248
  s3 = peg$FAILED;
3149
3249
  if (peg$silentFails === 0) {
3150
- peg$fail(peg$e66);
3250
+ peg$fail(peg$e67);
3151
3251
  }
3152
3252
  }
3153
3253
  peg$silentFails--;
@@ -3219,28 +3319,28 @@ function peg$parse(input, options) {
3219
3319
  if (s0 === peg$FAILED) {
3220
3320
  s0 = peg$currPos;
3221
3321
  if (input.charCodeAt(peg$currPos) === 40) {
3222
- s1 = peg$c34;
3322
+ s1 = peg$c35;
3223
3323
  peg$currPos++;
3224
3324
  }
3225
3325
  else {
3226
3326
  s1 = peg$FAILED;
3227
3327
  if (peg$silentFails === 0) {
3228
- peg$fail(peg$e67);
3328
+ peg$fail(peg$e68);
3229
3329
  }
3230
3330
  }
3231
3331
  if (s1 !== peg$FAILED) {
3232
3332
  s2 = peg$parse__();
3233
- s3 = peg$parsePipeExpression();
3333
+ s3 = peg$parseExpression();
3234
3334
  if (s3 !== peg$FAILED) {
3235
3335
  s4 = peg$parse__();
3236
3336
  if (input.charCodeAt(peg$currPos) === 41) {
3237
- s5 = peg$c35;
3337
+ s5 = peg$c36;
3238
3338
  peg$currPos++;
3239
3339
  }
3240
3340
  else {
3241
3341
  s5 = peg$FAILED;
3242
3342
  if (peg$silentFails === 0) {
3243
- peg$fail(peg$e68);
3343
+ peg$fail(peg$e69);
3244
3344
  }
3245
3345
  }
3246
3346
  if (s5 !== peg$FAILED) {
@@ -3271,13 +3371,13 @@ function peg$parse(input, options) {
3271
3371
  var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9;
3272
3372
  s0 = peg$currPos;
3273
3373
  if (input.charCodeAt(peg$currPos) === 91) {
3274
- s1 = peg$c36;
3374
+ s1 = peg$c37;
3275
3375
  peg$currPos++;
3276
3376
  }
3277
3377
  else {
3278
3378
  s1 = peg$FAILED;
3279
3379
  if (peg$silentFails === 0) {
3280
- peg$fail(peg$e69);
3380
+ peg$fail(peg$e70);
3281
3381
  }
3282
3382
  }
3283
3383
  if (s1 !== peg$FAILED) {
@@ -3297,13 +3397,13 @@ function peg$parse(input, options) {
3297
3397
  s3 = null;
3298
3398
  }
3299
3399
  if (input.charCodeAt(peg$currPos) === 93) {
3300
- s4 = peg$c37;
3400
+ s4 = peg$c38;
3301
3401
  peg$currPos++;
3302
3402
  }
3303
3403
  else {
3304
3404
  s4 = peg$FAILED;
3305
3405
  if (peg$silentFails === 0) {
3306
- peg$fail(peg$e70);
3406
+ peg$fail(peg$e71);
3307
3407
  }
3308
3408
  }
3309
3409
  if (s4 !== peg$FAILED) {
@@ -3322,13 +3422,13 @@ function peg$parse(input, options) {
3322
3422
  if (s0 === peg$FAILED) {
3323
3423
  s0 = peg$currPos;
3324
3424
  if (input.charCodeAt(peg$currPos) === 91) {
3325
- s1 = peg$c36;
3425
+ s1 = peg$c37;
3326
3426
  peg$currPos++;
3327
3427
  }
3328
3428
  else {
3329
3429
  s1 = peg$FAILED;
3330
3430
  if (peg$silentFails === 0) {
3331
- peg$fail(peg$e69);
3431
+ peg$fail(peg$e70);
3332
3432
  }
3333
3433
  }
3334
3434
  if (s1 !== peg$FAILED) {
@@ -3337,13 +3437,13 @@ function peg$parse(input, options) {
3337
3437
  if (s3 !== peg$FAILED) {
3338
3438
  s4 = peg$parse__();
3339
3439
  if (input.charCodeAt(peg$currPos) === 93) {
3340
- s5 = peg$c37;
3440
+ s5 = peg$c38;
3341
3441
  peg$currPos++;
3342
3442
  }
3343
3443
  else {
3344
3444
  s5 = peg$FAILED;
3345
3445
  if (peg$silentFails === 0) {
3346
- peg$fail(peg$e70);
3446
+ peg$fail(peg$e71);
3347
3447
  }
3348
3448
  }
3349
3449
  if (s5 !== peg$FAILED) {
@@ -3367,13 +3467,13 @@ function peg$parse(input, options) {
3367
3467
  if (s0 === peg$FAILED) {
3368
3468
  s0 = peg$currPos;
3369
3469
  if (input.charCodeAt(peg$currPos) === 91) {
3370
- s1 = peg$c36;
3470
+ s1 = peg$c37;
3371
3471
  peg$currPos++;
3372
3472
  }
3373
3473
  else {
3374
3474
  s1 = peg$FAILED;
3375
3475
  if (peg$silentFails === 0) {
3376
- peg$fail(peg$e69);
3476
+ peg$fail(peg$e70);
3377
3477
  }
3378
3478
  }
3379
3479
  if (s1 !== peg$FAILED) {
@@ -3382,13 +3482,13 @@ function peg$parse(input, options) {
3382
3482
  if (s3 !== peg$FAILED) {
3383
3483
  s4 = peg$parse__();
3384
3484
  if (input.charCodeAt(peg$currPos) === 44) {
3385
- s5 = peg$c38;
3485
+ s5 = peg$c39;
3386
3486
  peg$currPos++;
3387
3487
  }
3388
3488
  else {
3389
3489
  s5 = peg$FAILED;
3390
3490
  if (peg$silentFails === 0) {
3391
- peg$fail(peg$e71);
3491
+ peg$fail(peg$e72);
3392
3492
  }
3393
3493
  }
3394
3494
  if (s5 !== peg$FAILED) {
@@ -3408,13 +3508,13 @@ function peg$parse(input, options) {
3408
3508
  s7 = null;
3409
3509
  }
3410
3510
  if (input.charCodeAt(peg$currPos) === 93) {
3411
- s8 = peg$c37;
3511
+ s8 = peg$c38;
3412
3512
  peg$currPos++;
3413
3513
  }
3414
3514
  else {
3415
3515
  s8 = peg$FAILED;
3416
3516
  if (peg$silentFails === 0) {
3417
- peg$fail(peg$e70);
3517
+ peg$fail(peg$e71);
3418
3518
  }
3419
3519
  }
3420
3520
  if (s8 !== peg$FAILED) {
@@ -3462,7 +3562,7 @@ function peg$parse(input, options) {
3462
3562
  if (s2 === peg$FAILED) {
3463
3563
  s2 = null;
3464
3564
  }
3465
- s3 = peg$parsePipeExpression();
3565
+ s3 = peg$parseExpression();
3466
3566
  if (s3 !== peg$FAILED) {
3467
3567
  peg$savedPos = s1;
3468
3568
  s1 = peg$f34(s2, s3);
@@ -3476,13 +3576,13 @@ function peg$parse(input, options) {
3476
3576
  s3 = peg$currPos;
3477
3577
  s4 = peg$parse__();
3478
3578
  if (input.charCodeAt(peg$currPos) === 44) {
3479
- s5 = peg$c38;
3579
+ s5 = peg$c39;
3480
3580
  peg$currPos++;
3481
3581
  }
3482
3582
  else {
3483
3583
  s5 = peg$FAILED;
3484
3584
  if (peg$silentFails === 0) {
3485
- peg$fail(peg$e71);
3585
+ peg$fail(peg$e72);
3486
3586
  }
3487
3587
  }
3488
3588
  if (s5 !== peg$FAILED) {
@@ -3501,7 +3601,7 @@ function peg$parse(input, options) {
3501
3601
  if (s7 === peg$FAILED) {
3502
3602
  s7 = null;
3503
3603
  }
3504
- s8 = peg$parsePipeExpression();
3604
+ s8 = peg$parseExpression();
3505
3605
  if (s8 !== peg$FAILED) {
3506
3606
  peg$savedPos = s3;
3507
3607
  s3 = peg$f35(s1, s7, s8);
@@ -3520,13 +3620,13 @@ function peg$parse(input, options) {
3520
3620
  s3 = peg$currPos;
3521
3621
  s4 = peg$parse__();
3522
3622
  if (input.charCodeAt(peg$currPos) === 44) {
3523
- s5 = peg$c38;
3623
+ s5 = peg$c39;
3524
3624
  peg$currPos++;
3525
3625
  }
3526
3626
  else {
3527
3627
  s5 = peg$FAILED;
3528
3628
  if (peg$silentFails === 0) {
3529
- peg$fail(peg$e71);
3629
+ peg$fail(peg$e72);
3530
3630
  }
3531
3631
  }
3532
3632
  if (s5 !== peg$FAILED) {
@@ -3545,7 +3645,7 @@ function peg$parse(input, options) {
3545
3645
  if (s7 === peg$FAILED) {
3546
3646
  s7 = null;
3547
3647
  }
3548
- s8 = peg$parsePipeExpression();
3648
+ s8 = peg$parseExpression();
3549
3649
  if (s8 !== peg$FAILED) {
3550
3650
  peg$savedPos = s3;
3551
3651
  s3 = peg$f35(s1, s7, s8);
@@ -3573,13 +3673,13 @@ function peg$parse(input, options) {
3573
3673
  var s0, s1, s2, s3, s4, s5;
3574
3674
  s0 = peg$currPos;
3575
3675
  if (input.charCodeAt(peg$currPos) === 44) {
3576
- s1 = peg$c38;
3676
+ s1 = peg$c39;
3577
3677
  peg$currPos++;
3578
3678
  }
3579
3679
  else {
3580
3680
  s1 = peg$FAILED;
3581
3681
  if (peg$silentFails === 0) {
3582
- peg$fail(peg$e71);
3682
+ peg$fail(peg$e72);
3583
3683
  }
3584
3684
  }
3585
3685
  if (s1 !== peg$FAILED) {
@@ -3587,13 +3687,13 @@ function peg$parse(input, options) {
3587
3687
  s3 = peg$currPos;
3588
3688
  s4 = peg$parse__();
3589
3689
  if (input.charCodeAt(peg$currPos) === 44) {
3590
- s5 = peg$c38;
3690
+ s5 = peg$c39;
3591
3691
  peg$currPos++;
3592
3692
  }
3593
3693
  else {
3594
3694
  s5 = peg$FAILED;
3595
3695
  if (peg$silentFails === 0) {
3596
- peg$fail(peg$e71);
3696
+ peg$fail(peg$e72);
3597
3697
  }
3598
3698
  }
3599
3699
  if (s5 !== peg$FAILED) {
@@ -3609,13 +3709,13 @@ function peg$parse(input, options) {
3609
3709
  s3 = peg$currPos;
3610
3710
  s4 = peg$parse__();
3611
3711
  if (input.charCodeAt(peg$currPos) === 44) {
3612
- s5 = peg$c38;
3712
+ s5 = peg$c39;
3613
3713
  peg$currPos++;
3614
3714
  }
3615
3715
  else {
3616
3716
  s5 = peg$FAILED;
3617
3717
  if (peg$silentFails === 0) {
3618
- peg$fail(peg$e71);
3718
+ peg$fail(peg$e72);
3619
3719
  }
3620
3720
  }
3621
3721
  if (s5 !== peg$FAILED) {
@@ -3640,25 +3740,25 @@ function peg$parse(input, options) {
3640
3740
  var s0, s1, s2, s3, s4, s5, s6, s7;
3641
3741
  s0 = peg$currPos;
3642
3742
  if (input.charCodeAt(peg$currPos) === 123) {
3643
- s1 = peg$c39;
3743
+ s1 = peg$c40;
3644
3744
  peg$currPos++;
3645
3745
  }
3646
3746
  else {
3647
3747
  s1 = peg$FAILED;
3648
3748
  if (peg$silentFails === 0) {
3649
- peg$fail(peg$e72);
3749
+ peg$fail(peg$e73);
3650
3750
  }
3651
3751
  }
3652
3752
  if (s1 !== peg$FAILED) {
3653
3753
  s2 = peg$parse__();
3654
3754
  if (input.charCodeAt(peg$currPos) === 125) {
3655
- s3 = peg$c33;
3755
+ s3 = peg$c34;
3656
3756
  peg$currPos++;
3657
3757
  }
3658
3758
  else {
3659
3759
  s3 = peg$FAILED;
3660
3760
  if (peg$silentFails === 0) {
3661
- peg$fail(peg$e66);
3761
+ peg$fail(peg$e67);
3662
3762
  }
3663
3763
  }
3664
3764
  if (s3 !== peg$FAILED) {
@@ -3677,13 +3777,13 @@ function peg$parse(input, options) {
3677
3777
  if (s0 === peg$FAILED) {
3678
3778
  s0 = peg$currPos;
3679
3779
  if (input.charCodeAt(peg$currPos) === 123) {
3680
- s1 = peg$c39;
3780
+ s1 = peg$c40;
3681
3781
  peg$currPos++;
3682
3782
  }
3683
3783
  else {
3684
3784
  s1 = peg$FAILED;
3685
3785
  if (peg$silentFails === 0) {
3686
- peg$fail(peg$e72);
3786
+ peg$fail(peg$e73);
3687
3787
  }
3688
3788
  }
3689
3789
  if (s1 !== peg$FAILED) {
@@ -3692,13 +3792,13 @@ function peg$parse(input, options) {
3692
3792
  if (s3 !== peg$FAILED) {
3693
3793
  s4 = peg$parse__();
3694
3794
  if (input.charCodeAt(peg$currPos) === 125) {
3695
- s5 = peg$c33;
3795
+ s5 = peg$c34;
3696
3796
  peg$currPos++;
3697
3797
  }
3698
3798
  else {
3699
3799
  s5 = peg$FAILED;
3700
3800
  if (peg$silentFails === 0) {
3701
- peg$fail(peg$e66);
3801
+ peg$fail(peg$e67);
3702
3802
  }
3703
3803
  }
3704
3804
  if (s5 !== peg$FAILED) {
@@ -3722,13 +3822,13 @@ function peg$parse(input, options) {
3722
3822
  if (s0 === peg$FAILED) {
3723
3823
  s0 = peg$currPos;
3724
3824
  if (input.charCodeAt(peg$currPos) === 123) {
3725
- s1 = peg$c39;
3825
+ s1 = peg$c40;
3726
3826
  peg$currPos++;
3727
3827
  }
3728
3828
  else {
3729
3829
  s1 = peg$FAILED;
3730
3830
  if (peg$silentFails === 0) {
3731
- peg$fail(peg$e72);
3831
+ peg$fail(peg$e73);
3732
3832
  }
3733
3833
  }
3734
3834
  if (s1 !== peg$FAILED) {
@@ -3737,25 +3837,25 @@ function peg$parse(input, options) {
3737
3837
  if (s3 !== peg$FAILED) {
3738
3838
  s4 = peg$parse__();
3739
3839
  if (input.charCodeAt(peg$currPos) === 44) {
3740
- s5 = peg$c38;
3840
+ s5 = peg$c39;
3741
3841
  peg$currPos++;
3742
3842
  }
3743
3843
  else {
3744
3844
  s5 = peg$FAILED;
3745
3845
  if (peg$silentFails === 0) {
3746
- peg$fail(peg$e71);
3846
+ peg$fail(peg$e72);
3747
3847
  }
3748
3848
  }
3749
3849
  if (s5 !== peg$FAILED) {
3750
3850
  s6 = peg$parse__();
3751
3851
  if (input.charCodeAt(peg$currPos) === 125) {
3752
- s7 = peg$c33;
3852
+ s7 = peg$c34;
3753
3853
  peg$currPos++;
3754
3854
  }
3755
3855
  else {
3756
3856
  s7 = peg$FAILED;
3757
3857
  if (peg$silentFails === 0) {
3758
- peg$fail(peg$e66);
3858
+ peg$fail(peg$e67);
3759
3859
  }
3760
3860
  }
3761
3861
  if (s7 !== peg$FAILED) {
@@ -3794,13 +3894,13 @@ function peg$parse(input, options) {
3794
3894
  s3 = peg$currPos;
3795
3895
  s4 = peg$parse__();
3796
3896
  if (input.charCodeAt(peg$currPos) === 44) {
3797
- s5 = peg$c38;
3897
+ s5 = peg$c39;
3798
3898
  peg$currPos++;
3799
3899
  }
3800
3900
  else {
3801
3901
  s5 = peg$FAILED;
3802
3902
  if (peg$silentFails === 0) {
3803
- peg$fail(peg$e71);
3903
+ peg$fail(peg$e72);
3804
3904
  }
3805
3905
  }
3806
3906
  if (s5 !== peg$FAILED) {
@@ -3824,13 +3924,13 @@ function peg$parse(input, options) {
3824
3924
  s3 = peg$currPos;
3825
3925
  s4 = peg$parse__();
3826
3926
  if (input.charCodeAt(peg$currPos) === 44) {
3827
- s5 = peg$c38;
3927
+ s5 = peg$c39;
3828
3928
  peg$currPos++;
3829
3929
  }
3830
3930
  else {
3831
3931
  s5 = peg$FAILED;
3832
3932
  if (peg$silentFails === 0) {
3833
- peg$fail(peg$e71);
3933
+ peg$fail(peg$e72);
3834
3934
  }
3835
3935
  }
3836
3936
  if (s5 !== peg$FAILED) {
@@ -3866,18 +3966,18 @@ function peg$parse(input, options) {
3866
3966
  if (s1 !== peg$FAILED) {
3867
3967
  s2 = peg$parse__();
3868
3968
  if (input.charCodeAt(peg$currPos) === 58) {
3869
- s3 = peg$c40;
3969
+ s3 = peg$c41;
3870
3970
  peg$currPos++;
3871
3971
  }
3872
3972
  else {
3873
3973
  s3 = peg$FAILED;
3874
3974
  if (peg$silentFails === 0) {
3875
- peg$fail(peg$e73);
3975
+ peg$fail(peg$e74);
3876
3976
  }
3877
3977
  }
3878
3978
  if (s3 !== peg$FAILED) {
3879
3979
  s4 = peg$parse__();
3880
- s5 = peg$parsePipeExpression();
3980
+ s5 = peg$parseExpression();
3881
3981
  if (s5 !== peg$FAILED) {
3882
3982
  peg$savedPos = s0;
3883
3983
  s0 = peg$f42(s1, s5);
@@ -3918,28 +4018,28 @@ function peg$parse(input, options) {
3918
4018
  s3 = peg$currPos;
3919
4019
  s4 = peg$parse__();
3920
4020
  if (input.charCodeAt(peg$currPos) === 91) {
3921
- s5 = peg$c36;
4021
+ s5 = peg$c37;
3922
4022
  peg$currPos++;
3923
4023
  }
3924
4024
  else {
3925
4025
  s5 = peg$FAILED;
3926
4026
  if (peg$silentFails === 0) {
3927
- peg$fail(peg$e69);
4027
+ peg$fail(peg$e70);
3928
4028
  }
3929
4029
  }
3930
4030
  if (s5 !== peg$FAILED) {
3931
4031
  s6 = peg$parse__();
3932
- s7 = peg$parsePipeExpression();
4032
+ s7 = peg$parseExpression();
3933
4033
  if (s7 !== peg$FAILED) {
3934
4034
  s8 = peg$parse__();
3935
4035
  if (input.charCodeAt(peg$currPos) === 93) {
3936
- s9 = peg$c37;
4036
+ s9 = peg$c38;
3937
4037
  peg$currPos++;
3938
4038
  }
3939
4039
  else {
3940
4040
  s9 = peg$FAILED;
3941
4041
  if (peg$silentFails === 0) {
3942
- peg$fail(peg$e70);
4042
+ peg$fail(peg$e71);
3943
4043
  }
3944
4044
  }
3945
4045
  if (s9 !== peg$FAILED) {
@@ -3992,14 +4092,14 @@ function peg$parse(input, options) {
3992
4092
  if (s3 === peg$FAILED) {
3993
4093
  s3 = peg$currPos;
3994
4094
  s4 = peg$parse__();
3995
- if (input.substr(peg$currPos, 2) === peg$c41) {
3996
- s5 = peg$c41;
4095
+ if (input.substr(peg$currPos, 2) === peg$c42) {
4096
+ s5 = peg$c42;
3997
4097
  peg$currPos += 2;
3998
4098
  }
3999
4099
  else {
4000
4100
  s5 = peg$FAILED;
4001
4101
  if (peg$silentFails === 0) {
4002
- peg$fail(peg$e74);
4102
+ peg$fail(peg$e75);
4003
4103
  }
4004
4104
  }
4005
4105
  if (s5 !== peg$FAILED) {
@@ -4025,28 +4125,28 @@ function peg$parse(input, options) {
4025
4125
  s3 = peg$currPos;
4026
4126
  s4 = peg$parse__();
4027
4127
  if (input.charCodeAt(peg$currPos) === 91) {
4028
- s5 = peg$c36;
4128
+ s5 = peg$c37;
4029
4129
  peg$currPos++;
4030
4130
  }
4031
4131
  else {
4032
4132
  s5 = peg$FAILED;
4033
4133
  if (peg$silentFails === 0) {
4034
- peg$fail(peg$e69);
4134
+ peg$fail(peg$e70);
4035
4135
  }
4036
4136
  }
4037
4137
  if (s5 !== peg$FAILED) {
4038
4138
  s6 = peg$parse__();
4039
- s7 = peg$parsePipeExpression();
4139
+ s7 = peg$parseExpression();
4040
4140
  if (s7 !== peg$FAILED) {
4041
4141
  s8 = peg$parse__();
4042
4142
  if (input.charCodeAt(peg$currPos) === 93) {
4043
- s9 = peg$c37;
4143
+ s9 = peg$c38;
4044
4144
  peg$currPos++;
4045
4145
  }
4046
4146
  else {
4047
4147
  s9 = peg$FAILED;
4048
4148
  if (peg$silentFails === 0) {
4049
- peg$fail(peg$e70);
4149
+ peg$fail(peg$e71);
4050
4150
  }
4051
4151
  }
4052
4152
  if (s9 !== peg$FAILED) {
@@ -4099,14 +4199,14 @@ function peg$parse(input, options) {
4099
4199
  if (s3 === peg$FAILED) {
4100
4200
  s3 = peg$currPos;
4101
4201
  s4 = peg$parse__();
4102
- if (input.substr(peg$currPos, 2) === peg$c41) {
4103
- s5 = peg$c41;
4202
+ if (input.substr(peg$currPos, 2) === peg$c42) {
4203
+ s5 = peg$c42;
4104
4204
  peg$currPos += 2;
4105
4205
  }
4106
4206
  else {
4107
4207
  s5 = peg$FAILED;
4108
4208
  if (peg$silentFails === 0) {
4109
- peg$fail(peg$e74);
4209
+ peg$fail(peg$e75);
4110
4210
  }
4111
4211
  }
4112
4212
  if (s5 !== peg$FAILED) {
@@ -4175,28 +4275,28 @@ function peg$parse(input, options) {
4175
4275
  s3 = peg$currPos;
4176
4276
  s4 = peg$parse__();
4177
4277
  if (input.charCodeAt(peg$currPos) === 91) {
4178
- s5 = peg$c36;
4278
+ s5 = peg$c37;
4179
4279
  peg$currPos++;
4180
4280
  }
4181
4281
  else {
4182
4282
  s5 = peg$FAILED;
4183
4283
  if (peg$silentFails === 0) {
4184
- peg$fail(peg$e69);
4284
+ peg$fail(peg$e70);
4185
4285
  }
4186
4286
  }
4187
4287
  if (s5 !== peg$FAILED) {
4188
4288
  s6 = peg$parse__();
4189
- s7 = peg$parsePipeExpression();
4289
+ s7 = peg$parseExpression();
4190
4290
  if (s7 !== peg$FAILED) {
4191
4291
  s8 = peg$parse__();
4192
4292
  if (input.charCodeAt(peg$currPos) === 93) {
4193
- s9 = peg$c37;
4293
+ s9 = peg$c38;
4194
4294
  peg$currPos++;
4195
4295
  }
4196
4296
  else {
4197
4297
  s9 = peg$FAILED;
4198
4298
  if (peg$silentFails === 0) {
4199
- peg$fail(peg$e70);
4299
+ peg$fail(peg$e71);
4200
4300
  }
4201
4301
  }
4202
4302
  if (s9 !== peg$FAILED) {
@@ -4265,28 +4365,28 @@ function peg$parse(input, options) {
4265
4365
  s3 = peg$currPos;
4266
4366
  s4 = peg$parse__();
4267
4367
  if (input.charCodeAt(peg$currPos) === 91) {
4268
- s5 = peg$c36;
4368
+ s5 = peg$c37;
4269
4369
  peg$currPos++;
4270
4370
  }
4271
4371
  else {
4272
4372
  s5 = peg$FAILED;
4273
4373
  if (peg$silentFails === 0) {
4274
- peg$fail(peg$e69);
4374
+ peg$fail(peg$e70);
4275
4375
  }
4276
4376
  }
4277
4377
  if (s5 !== peg$FAILED) {
4278
4378
  s6 = peg$parse__();
4279
- s7 = peg$parsePipeExpression();
4379
+ s7 = peg$parseExpression();
4280
4380
  if (s7 !== peg$FAILED) {
4281
4381
  s8 = peg$parse__();
4282
4382
  if (input.charCodeAt(peg$currPos) === 93) {
4283
- s9 = peg$c37;
4383
+ s9 = peg$c38;
4284
4384
  peg$currPos++;
4285
4385
  }
4286
4386
  else {
4287
4387
  s9 = peg$FAILED;
4288
4388
  if (peg$silentFails === 0) {
4289
- peg$fail(peg$e70);
4389
+ peg$fail(peg$e71);
4290
4390
  }
4291
4391
  }
4292
4392
  if (s9 !== peg$FAILED) {
@@ -4352,13 +4452,13 @@ function peg$parse(input, options) {
4352
4452
  var s0, s1, s2, s3, s4, s5;
4353
4453
  s0 = peg$currPos;
4354
4454
  if (input.charCodeAt(peg$currPos) === 40) {
4355
- s1 = peg$c34;
4455
+ s1 = peg$c35;
4356
4456
  peg$currPos++;
4357
4457
  }
4358
4458
  else {
4359
4459
  s1 = peg$FAILED;
4360
4460
  if (peg$silentFails === 0) {
4361
- peg$fail(peg$e67);
4461
+ peg$fail(peg$e68);
4362
4462
  }
4363
4463
  }
4364
4464
  if (s1 !== peg$FAILED) {
@@ -4378,13 +4478,13 @@ function peg$parse(input, options) {
4378
4478
  s3 = null;
4379
4479
  }
4380
4480
  if (input.charCodeAt(peg$currPos) === 41) {
4381
- s4 = peg$c35;
4481
+ s4 = peg$c36;
4382
4482
  peg$currPos++;
4383
4483
  }
4384
4484
  else {
4385
4485
  s4 = peg$FAILED;
4386
4486
  if (peg$silentFails === 0) {
4387
- peg$fail(peg$e68);
4487
+ peg$fail(peg$e69);
4388
4488
  }
4389
4489
  }
4390
4490
  if (s4 !== peg$FAILED) {
@@ -4405,24 +4505,24 @@ function peg$parse(input, options) {
4405
4505
  function peg$parseArgumentList() {
4406
4506
  var s0, s1, s2, s3, s4, s5, s6, s7;
4407
4507
  s0 = peg$currPos;
4408
- s1 = peg$parsePipeExpression();
4508
+ s1 = peg$parseCallArgument();
4409
4509
  if (s1 !== peg$FAILED) {
4410
4510
  s2 = [];
4411
4511
  s3 = peg$currPos;
4412
4512
  s4 = peg$parse__();
4413
4513
  if (input.charCodeAt(peg$currPos) === 44) {
4414
- s5 = peg$c38;
4514
+ s5 = peg$c39;
4415
4515
  peg$currPos++;
4416
4516
  }
4417
4517
  else {
4418
4518
  s5 = peg$FAILED;
4419
4519
  if (peg$silentFails === 0) {
4420
- peg$fail(peg$e71);
4520
+ peg$fail(peg$e72);
4421
4521
  }
4422
4522
  }
4423
4523
  if (s5 !== peg$FAILED) {
4424
4524
  s6 = peg$parse__();
4425
- s7 = peg$parsePipeExpression();
4525
+ s7 = peg$parseCallArgument();
4426
4526
  if (s7 !== peg$FAILED) {
4427
4527
  s4 = [s4, s5, s6, s7];
4428
4528
  s3 = s4;
@@ -4441,18 +4541,18 @@ function peg$parse(input, options) {
4441
4541
  s3 = peg$currPos;
4442
4542
  s4 = peg$parse__();
4443
4543
  if (input.charCodeAt(peg$currPos) === 44) {
4444
- s5 = peg$c38;
4544
+ s5 = peg$c39;
4445
4545
  peg$currPos++;
4446
4546
  }
4447
4547
  else {
4448
4548
  s5 = peg$FAILED;
4449
4549
  if (peg$silentFails === 0) {
4450
- peg$fail(peg$e71);
4550
+ peg$fail(peg$e72);
4451
4551
  }
4452
4552
  }
4453
4553
  if (s5 !== peg$FAILED) {
4454
4554
  s6 = peg$parse__();
4455
- s7 = peg$parsePipeExpression();
4555
+ s7 = peg$parseCallArgument();
4456
4556
  if (s7 !== peg$FAILED) {
4457
4557
  s4 = [s4, s5, s6, s7];
4458
4558
  s3 = s4;
@@ -4476,6 +4576,34 @@ function peg$parse(input, options) {
4476
4576
  }
4477
4577
  return s0;
4478
4578
  }
4579
+ function peg$parseCallArgument() {
4580
+ var s0;
4581
+ s0 = peg$parseExpression();
4582
+ if (s0 === peg$FAILED) {
4583
+ s0 = peg$parseCurryPlaceholder();
4584
+ }
4585
+ return s0;
4586
+ }
4587
+ function peg$parseCurryPlaceholder() {
4588
+ var s0, s1;
4589
+ s0 = peg$currPos;
4590
+ if (input.charCodeAt(peg$currPos) === 37) {
4591
+ s1 = peg$c43;
4592
+ peg$currPos++;
4593
+ }
4594
+ else {
4595
+ s1 = peg$FAILED;
4596
+ if (peg$silentFails === 0) {
4597
+ peg$fail(peg$e76);
4598
+ }
4599
+ }
4600
+ if (s1 !== peg$FAILED) {
4601
+ peg$savedPos = s0;
4602
+ s1 = peg$f54();
4603
+ }
4604
+ s0 = s1;
4605
+ return s0;
4606
+ }
4479
4607
  function peg$parseLeftHandSideExpression() {
4480
4608
  var s0;
4481
4609
  s0 = peg$parseCallExpression();
@@ -4532,7 +4660,7 @@ function peg$parse(input, options) {
4532
4660
  }
4533
4661
  }
4534
4662
  peg$savedPos = s0;
4535
- s0 = peg$f54(s1, s2);
4663
+ s0 = peg$f55(s1, s2);
4536
4664
  }
4537
4665
  else {
4538
4666
  peg$currPos = s0;
@@ -4543,13 +4671,13 @@ function peg$parse(input, options) {
4543
4671
  function peg$parseExponentiationOperator() {
4544
4672
  var s0;
4545
4673
  if (input.charCodeAt(peg$currPos) === 94) {
4546
- s0 = peg$c42;
4674
+ s0 = peg$c44;
4547
4675
  peg$currPos++;
4548
4676
  }
4549
4677
  else {
4550
4678
  s0 = peg$FAILED;
4551
4679
  if (peg$silentFails === 0) {
4552
- peg$fail(peg$e75);
4680
+ peg$fail(peg$e77);
4553
4681
  }
4554
4682
  }
4555
4683
  return s0;
@@ -4565,7 +4693,7 @@ function peg$parse(input, options) {
4565
4693
  s3 = peg$parseUnaryExpression();
4566
4694
  if (s3 !== peg$FAILED) {
4567
4695
  peg$savedPos = s0;
4568
- s0 = peg$f55(s1, s3);
4696
+ s0 = peg$f56(s1, s3);
4569
4697
  }
4570
4698
  else {
4571
4699
  peg$currPos = s0;
@@ -4661,7 +4789,7 @@ function peg$parse(input, options) {
4661
4789
  }
4662
4790
  }
4663
4791
  peg$savedPos = s0;
4664
- s0 = peg$f56(s1, s2);
4792
+ s0 = peg$f57(s1, s2);
4665
4793
  }
4666
4794
  else {
4667
4795
  peg$currPos = s0;
@@ -4678,7 +4806,7 @@ function peg$parse(input, options) {
4678
4806
  else {
4679
4807
  s0 = peg$FAILED;
4680
4808
  if (peg$silentFails === 0) {
4681
- peg$fail(peg$e76);
4809
+ peg$fail(peg$e78);
4682
4810
  }
4683
4811
  }
4684
4812
  if (s0 === peg$FAILED) {
@@ -4741,7 +4869,7 @@ function peg$parse(input, options) {
4741
4869
  }
4742
4870
  }
4743
4871
  peg$savedPos = s0;
4744
- s0 = peg$f57(s1, s2);
4872
+ s0 = peg$f58(s1, s2);
4745
4873
  }
4746
4874
  else {
4747
4875
  peg$currPos = s0;
@@ -4811,7 +4939,7 @@ function peg$parse(input, options) {
4811
4939
  }
4812
4940
  }
4813
4941
  peg$savedPos = s0;
4814
- s0 = peg$f58(s1, s2);
4942
+ s0 = peg$f59(s1, s2);
4815
4943
  }
4816
4944
  else {
4817
4945
  peg$currPos = s0;
@@ -4822,13 +4950,13 @@ function peg$parse(input, options) {
4822
4950
  function peg$parseConcatenationOperator() {
4823
4951
  var s0;
4824
4952
  if (input.charCodeAt(peg$currPos) === 38) {
4825
- s0 = peg$c43;
4953
+ s0 = peg$c45;
4826
4954
  peg$currPos++;
4827
4955
  }
4828
4956
  else {
4829
4957
  s0 = peg$FAILED;
4830
4958
  if (peg$silentFails === 0) {
4831
- peg$fail(peg$e77);
4959
+ peg$fail(peg$e79);
4832
4960
  }
4833
4961
  }
4834
4962
  return s0;
@@ -4881,7 +5009,7 @@ function peg$parse(input, options) {
4881
5009
  }
4882
5010
  }
4883
5011
  peg$savedPos = s0;
4884
- s0 = peg$f59(s1, s2);
5012
+ s0 = peg$f60(s1, s2);
4885
5013
  }
4886
5014
  else {
4887
5015
  peg$currPos = s0;
@@ -4891,25 +5019,25 @@ function peg$parse(input, options) {
4891
5019
  }
4892
5020
  function peg$parseRelationalOperator() {
4893
5021
  var s0, s1;
4894
- if (input.substr(peg$currPos, 2) === peg$c44) {
4895
- s0 = peg$c44;
5022
+ if (input.substr(peg$currPos, 2) === peg$c46) {
5023
+ s0 = peg$c46;
4896
5024
  peg$currPos += 2;
4897
5025
  }
4898
5026
  else {
4899
5027
  s0 = peg$FAILED;
4900
5028
  if (peg$silentFails === 0) {
4901
- peg$fail(peg$e78);
5029
+ peg$fail(peg$e80);
4902
5030
  }
4903
5031
  }
4904
5032
  if (s0 === peg$FAILED) {
4905
- if (input.substr(peg$currPos, 2) === peg$c45) {
4906
- s0 = peg$c45;
5033
+ if (input.substr(peg$currPos, 2) === peg$c47) {
5034
+ s0 = peg$c47;
4907
5035
  peg$currPos += 2;
4908
5036
  }
4909
5037
  else {
4910
5038
  s0 = peg$FAILED;
4911
5039
  if (peg$silentFails === 0) {
4912
- peg$fail(peg$e79);
5040
+ peg$fail(peg$e81);
4913
5041
  }
4914
5042
  }
4915
5043
  if (s0 === peg$FAILED) {
@@ -4920,7 +5048,7 @@ function peg$parse(input, options) {
4920
5048
  else {
4921
5049
  s0 = peg$FAILED;
4922
5050
  if (peg$silentFails === 0) {
4923
- peg$fail(peg$e80);
5051
+ peg$fail(peg$e82);
4924
5052
  }
4925
5053
  }
4926
5054
  if (s0 === peg$FAILED) {
@@ -4985,7 +5113,7 @@ function peg$parse(input, options) {
4985
5113
  }
4986
5114
  }
4987
5115
  peg$savedPos = s0;
4988
- s0 = peg$f60(s1, s2);
5116
+ s0 = peg$f61(s1, s2);
4989
5117
  }
4990
5118
  else {
4991
5119
  peg$currPos = s0;
@@ -4995,25 +5123,25 @@ function peg$parse(input, options) {
4995
5123
  }
4996
5124
  function peg$parseEqualityOperator() {
4997
5125
  var s0;
4998
- if (input.substr(peg$currPos, 2) === peg$c46) {
4999
- s0 = peg$c46;
5126
+ if (input.substr(peg$currPos, 2) === peg$c48) {
5127
+ s0 = peg$c48;
5000
5128
  peg$currPos += 2;
5001
5129
  }
5002
5130
  else {
5003
5131
  s0 = peg$FAILED;
5004
5132
  if (peg$silentFails === 0) {
5005
- peg$fail(peg$e81);
5133
+ peg$fail(peg$e83);
5006
5134
  }
5007
5135
  }
5008
5136
  if (s0 === peg$FAILED) {
5009
- if (input.substr(peg$currPos, 2) === peg$c47) {
5010
- s0 = peg$c47;
5137
+ if (input.substr(peg$currPos, 2) === peg$c49) {
5138
+ s0 = peg$c49;
5011
5139
  peg$currPos += 2;
5012
5140
  }
5013
5141
  else {
5014
5142
  s0 = peg$FAILED;
5015
5143
  if (peg$silentFails === 0) {
5016
- peg$fail(peg$e82);
5144
+ peg$fail(peg$e84);
5017
5145
  }
5018
5146
  }
5019
5147
  }
@@ -5067,7 +5195,7 @@ function peg$parse(input, options) {
5067
5195
  }
5068
5196
  }
5069
5197
  peg$savedPos = s0;
5070
- s0 = peg$f61(s1, s2);
5198
+ s0 = peg$f62(s1, s2);
5071
5199
  }
5072
5200
  else {
5073
5201
  peg$currPos = s0;
@@ -5085,6 +5213,18 @@ function peg$parse(input, options) {
5085
5213
  else {
5086
5214
  s0 = s1;
5087
5215
  }
5216
+ if (s0 === peg$FAILED) {
5217
+ if (input.substr(peg$currPos, 2) === peg$c50) {
5218
+ s0 = peg$c50;
5219
+ peg$currPos += 2;
5220
+ }
5221
+ else {
5222
+ s0 = peg$FAILED;
5223
+ if (peg$silentFails === 0) {
5224
+ peg$fail(peg$e85);
5225
+ }
5226
+ }
5227
+ }
5088
5228
  return s0;
5089
5229
  }
5090
5230
  function peg$parseLogicalORExpression() {
@@ -5135,7 +5275,7 @@ function peg$parse(input, options) {
5135
5275
  }
5136
5276
  }
5137
5277
  peg$savedPos = s0;
5138
- s0 = peg$f62(s1, s2);
5278
+ s0 = peg$f63(s1, s2);
5139
5279
  }
5140
5280
  else {
5141
5281
  peg$currPos = s0;
@@ -5153,6 +5293,18 @@ function peg$parse(input, options) {
5153
5293
  else {
5154
5294
  s0 = s1;
5155
5295
  }
5296
+ if (s0 === peg$FAILED) {
5297
+ if (input.substr(peg$currPos, 2) === peg$c51) {
5298
+ s0 = peg$c51;
5299
+ peg$currPos += 2;
5300
+ }
5301
+ else {
5302
+ s0 = peg$FAILED;
5303
+ if (peg$silentFails === 0) {
5304
+ peg$fail(peg$e86);
5305
+ }
5306
+ }
5307
+ }
5156
5308
  return s0;
5157
5309
  }
5158
5310
  function peg$parseConditionalExpression() {
@@ -5161,22 +5313,22 @@ function peg$parse(input, options) {
5161
5313
  s1 = peg$parseIfToken();
5162
5314
  if (s1 !== peg$FAILED) {
5163
5315
  s2 = peg$parse__();
5164
- s3 = peg$parsePipeExpression();
5316
+ s3 = peg$parseExpression();
5165
5317
  if (s3 !== peg$FAILED) {
5166
5318
  s4 = peg$parse__();
5167
5319
  s5 = peg$parseThenToken();
5168
5320
  if (s5 !== peg$FAILED) {
5169
5321
  s6 = peg$parse__();
5170
- s7 = peg$parsePipeExpression();
5322
+ s7 = peg$parseExpression();
5171
5323
  if (s7 !== peg$FAILED) {
5172
5324
  s8 = peg$parse__();
5173
5325
  s9 = peg$parseElseToken();
5174
5326
  if (s9 !== peg$FAILED) {
5175
5327
  s10 = peg$parse__();
5176
- s11 = peg$parsePipeExpression();
5328
+ s11 = peg$parseExpression();
5177
5329
  if (s11 !== peg$FAILED) {
5178
5330
  peg$savedPos = s0;
5179
- s0 = peg$f63(s3, s7, s11);
5331
+ s0 = peg$f64(s3, s7, s11);
5180
5332
  }
5181
5333
  else {
5182
5334
  peg$currPos = s0;
@@ -5212,16 +5364,16 @@ function peg$parse(input, options) {
5212
5364
  s1 = peg$parseIfToken();
5213
5365
  if (s1 !== peg$FAILED) {
5214
5366
  s2 = peg$parse__();
5215
- s3 = peg$parsePipeExpression();
5367
+ s3 = peg$parseExpression();
5216
5368
  if (s3 !== peg$FAILED) {
5217
5369
  s4 = peg$parse__();
5218
5370
  s5 = peg$parseThenToken();
5219
5371
  if (s5 !== peg$FAILED) {
5220
5372
  s6 = peg$parse__();
5221
- s7 = peg$parsePipeExpression();
5373
+ s7 = peg$parseExpression();
5222
5374
  if (s7 !== peg$FAILED) {
5223
5375
  peg$savedPos = s0;
5224
- s0 = peg$f64(s3, s7);
5376
+ s0 = peg$f65(s3, s7);
5225
5377
  }
5226
5378
  else {
5227
5379
  peg$currPos = s0;
@@ -5296,7 +5448,7 @@ function peg$parse(input, options) {
5296
5448
  }
5297
5449
  }
5298
5450
  peg$savedPos = s0;
5299
- s0 = peg$f65(s1, s2);
5451
+ s0 = peg$f66(s1, s2);
5300
5452
  }
5301
5453
  else {
5302
5454
  peg$currPos = s0;
@@ -5306,14 +5458,14 @@ function peg$parse(input, options) {
5306
5458
  }
5307
5459
  function peg$parseNullishCoalescingOperator() {
5308
5460
  var s0;
5309
- if (input.substr(peg$currPos, 2) === peg$c48) {
5310
- s0 = peg$c48;
5461
+ if (input.substr(peg$currPos, 2) === peg$c52) {
5462
+ s0 = peg$c52;
5311
5463
  peg$currPos += 2;
5312
5464
  }
5313
5465
  else {
5314
5466
  s0 = peg$FAILED;
5315
5467
  if (peg$silentFails === 0) {
5316
- peg$fail(peg$e83);
5468
+ peg$fail(peg$e87);
5317
5469
  }
5318
5470
  }
5319
5471
  return s0;
@@ -5332,7 +5484,7 @@ function peg$parse(input, options) {
5332
5484
  s7 = peg$parseNullishCoalescingExpression();
5333
5485
  if (s7 !== peg$FAILED) {
5334
5486
  peg$savedPos = s3;
5335
- s3 = peg$f66(s1, s5, s7);
5487
+ s3 = peg$f67(s1, s5, s7);
5336
5488
  }
5337
5489
  else {
5338
5490
  peg$currPos = s3;
@@ -5353,7 +5505,7 @@ function peg$parse(input, options) {
5353
5505
  s7 = peg$parseNullishCoalescingExpression();
5354
5506
  if (s7 !== peg$FAILED) {
5355
5507
  peg$savedPos = s3;
5356
- s3 = peg$f66(s1, s5, s7);
5508
+ s3 = peg$f67(s1, s5, s7);
5357
5509
  }
5358
5510
  else {
5359
5511
  peg$currPos = s3;
@@ -5366,7 +5518,7 @@ function peg$parse(input, options) {
5366
5518
  }
5367
5519
  }
5368
5520
  peg$savedPos = s0;
5369
- s0 = peg$f67(s1, s2);
5521
+ s0 = peg$f68(s1, s2);
5370
5522
  }
5371
5523
  else {
5372
5524
  peg$currPos = s0;
@@ -5376,41 +5528,462 @@ function peg$parse(input, options) {
5376
5528
  }
5377
5529
  function peg$parsePipeOperator() {
5378
5530
  var s0;
5379
- if (input.substr(peg$currPos, 2) === peg$c49) {
5380
- s0 = peg$c49;
5531
+ if (input.substr(peg$currPos, 2) === peg$c53) {
5532
+ s0 = peg$c53;
5381
5533
  peg$currPos += 2;
5382
5534
  }
5383
5535
  else {
5384
5536
  s0 = peg$FAILED;
5385
5537
  if (peg$silentFails === 0) {
5386
- peg$fail(peg$e84);
5538
+ peg$fail(peg$e88);
5387
5539
  }
5388
5540
  }
5389
5541
  if (s0 === peg$FAILED) {
5390
5542
  if (input.charCodeAt(peg$currPos) === 124) {
5391
- s0 = peg$c50;
5543
+ s0 = peg$c54;
5392
5544
  peg$currPos++;
5393
5545
  }
5394
5546
  else {
5395
5547
  s0 = peg$FAILED;
5396
5548
  if (peg$silentFails === 0) {
5397
- peg$fail(peg$e85);
5549
+ peg$fail(peg$e89);
5550
+ }
5551
+ }
5552
+ }
5553
+ return s0;
5554
+ }
5555
+ function peg$parseLambdaExpression() {
5556
+ var s0, s1, s2, s3, s4, s5, s6, s7, s8;
5557
+ s0 = peg$currPos;
5558
+ if (input.charCodeAt(peg$currPos) === 40) {
5559
+ s1 = peg$c35;
5560
+ peg$currPos++;
5561
+ }
5562
+ else {
5563
+ s1 = peg$FAILED;
5564
+ if (peg$silentFails === 0) {
5565
+ peg$fail(peg$e68);
5566
+ }
5567
+ }
5568
+ if (s1 !== peg$FAILED) {
5569
+ s2 = peg$parse__();
5570
+ s3 = peg$currPos;
5571
+ s4 = peg$parseFormalParameterList();
5572
+ if (s4 !== peg$FAILED) {
5573
+ s5 = peg$parse__();
5574
+ s4 = [s4, s5];
5575
+ s3 = s4;
5576
+ }
5577
+ else {
5578
+ peg$currPos = s3;
5579
+ s3 = peg$FAILED;
5580
+ }
5581
+ if (s3 === peg$FAILED) {
5582
+ s3 = null;
5583
+ }
5584
+ if (input.charCodeAt(peg$currPos) === 41) {
5585
+ s4 = peg$c36;
5586
+ peg$currPos++;
5587
+ }
5588
+ else {
5589
+ s4 = peg$FAILED;
5590
+ if (peg$silentFails === 0) {
5591
+ peg$fail(peg$e69);
5592
+ }
5593
+ }
5594
+ if (s4 !== peg$FAILED) {
5595
+ s5 = peg$parse__();
5596
+ s6 = peg$parseLambdaArrow();
5597
+ if (s6 !== peg$FAILED) {
5598
+ s7 = peg$parse__();
5599
+ s8 = peg$parseExpression();
5600
+ if (s8 !== peg$FAILED) {
5601
+ peg$savedPos = s0;
5602
+ s0 = peg$f69(s3, s8);
5603
+ }
5604
+ else {
5605
+ peg$currPos = s0;
5606
+ s0 = peg$FAILED;
5607
+ }
5608
+ }
5609
+ else {
5610
+ peg$currPos = s0;
5611
+ s0 = peg$FAILED;
5612
+ }
5613
+ }
5614
+ else {
5615
+ peg$currPos = s0;
5616
+ s0 = peg$FAILED;
5617
+ }
5618
+ }
5619
+ else {
5620
+ peg$currPos = s0;
5621
+ s0 = peg$FAILED;
5622
+ }
5623
+ if (s0 === peg$FAILED) {
5624
+ s0 = peg$currPos;
5625
+ s1 = peg$parse__();
5626
+ s2 = peg$parseIdentifier();
5627
+ if (s2 !== peg$FAILED) {
5628
+ s3 = peg$parse__();
5629
+ s4 = peg$parseLambdaArrow();
5630
+ if (s4 !== peg$FAILED) {
5631
+ s5 = peg$parse__();
5632
+ s6 = peg$parseExpression();
5633
+ if (s6 !== peg$FAILED) {
5634
+ peg$savedPos = s0;
5635
+ s0 = peg$f70(s2, s6);
5636
+ }
5637
+ else {
5638
+ peg$currPos = s0;
5639
+ s0 = peg$FAILED;
5640
+ }
5641
+ }
5642
+ else {
5643
+ peg$currPos = s0;
5644
+ s0 = peg$FAILED;
5398
5645
  }
5399
5646
  }
5647
+ else {
5648
+ peg$currPos = s0;
5649
+ s0 = peg$FAILED;
5650
+ }
5651
+ }
5652
+ return s0;
5653
+ }
5654
+ function peg$parseLambdaArrow() {
5655
+ var s0;
5656
+ if (input.substr(peg$currPos, 2) === peg$c55) {
5657
+ s0 = peg$c55;
5658
+ peg$currPos += 2;
5659
+ }
5660
+ else {
5661
+ s0 = peg$FAILED;
5662
+ if (peg$silentFails === 0) {
5663
+ peg$fail(peg$e90);
5664
+ }
5665
+ }
5666
+ return s0;
5667
+ }
5668
+ function peg$parseFormalParameterList() {
5669
+ var s0, s1, s2, s3, s4, s5, s6, s7;
5670
+ s0 = peg$currPos;
5671
+ s1 = peg$parseIdentifier();
5672
+ if (s1 !== peg$FAILED) {
5673
+ s2 = [];
5674
+ s3 = peg$currPos;
5675
+ s4 = peg$parse__();
5676
+ if (input.charCodeAt(peg$currPos) === 44) {
5677
+ s5 = peg$c39;
5678
+ peg$currPos++;
5679
+ }
5680
+ else {
5681
+ s5 = peg$FAILED;
5682
+ if (peg$silentFails === 0) {
5683
+ peg$fail(peg$e72);
5684
+ }
5685
+ }
5686
+ if (s5 !== peg$FAILED) {
5687
+ s6 = peg$parse__();
5688
+ s7 = peg$parseIdentifier();
5689
+ if (s7 !== peg$FAILED) {
5690
+ s4 = [s4, s5, s6, s7];
5691
+ s3 = s4;
5692
+ }
5693
+ else {
5694
+ peg$currPos = s3;
5695
+ s3 = peg$FAILED;
5696
+ }
5697
+ }
5698
+ else {
5699
+ peg$currPos = s3;
5700
+ s3 = peg$FAILED;
5701
+ }
5702
+ while (s3 !== peg$FAILED) {
5703
+ s2.push(s3);
5704
+ s3 = peg$currPos;
5705
+ s4 = peg$parse__();
5706
+ if (input.charCodeAt(peg$currPos) === 44) {
5707
+ s5 = peg$c39;
5708
+ peg$currPos++;
5709
+ }
5710
+ else {
5711
+ s5 = peg$FAILED;
5712
+ if (peg$silentFails === 0) {
5713
+ peg$fail(peg$e72);
5714
+ }
5715
+ }
5716
+ if (s5 !== peg$FAILED) {
5717
+ s6 = peg$parse__();
5718
+ s7 = peg$parseIdentifier();
5719
+ if (s7 !== peg$FAILED) {
5720
+ s4 = [s4, s5, s6, s7];
5721
+ s3 = s4;
5722
+ }
5723
+ else {
5724
+ peg$currPos = s3;
5725
+ s3 = peg$FAILED;
5726
+ }
5727
+ }
5728
+ else {
5729
+ peg$currPos = s3;
5730
+ s3 = peg$FAILED;
5731
+ }
5732
+ }
5733
+ peg$savedPos = s0;
5734
+ s0 = peg$f71(s1, s2);
5735
+ }
5736
+ else {
5737
+ peg$currPos = s0;
5738
+ s0 = peg$FAILED;
5739
+ }
5740
+ return s0;
5741
+ }
5742
+ function peg$parseLetExpression() {
5743
+ var s0, s1, s2, s3, s4, s5, s6, s7;
5744
+ s0 = peg$currPos;
5745
+ s1 = peg$parseLetToken();
5746
+ if (s1 !== peg$FAILED) {
5747
+ s2 = peg$parse__();
5748
+ s3 = peg$parseVariableDeclarationList();
5749
+ if (s3 !== peg$FAILED) {
5750
+ s4 = peg$parse__();
5751
+ if (input.charCodeAt(peg$currPos) === 44) {
5752
+ s5 = peg$c39;
5753
+ peg$currPos++;
5754
+ }
5755
+ else {
5756
+ s5 = peg$FAILED;
5757
+ if (peg$silentFails === 0) {
5758
+ peg$fail(peg$e72);
5759
+ }
5760
+ }
5761
+ if (s5 !== peg$FAILED) {
5762
+ s6 = peg$parse__();
5763
+ s7 = peg$parseExpression();
5764
+ if (s7 !== peg$FAILED) {
5765
+ peg$savedPos = s0;
5766
+ s0 = peg$f72(s3, s7);
5767
+ }
5768
+ else {
5769
+ peg$currPos = s0;
5770
+ s0 = peg$FAILED;
5771
+ }
5772
+ }
5773
+ else {
5774
+ peg$currPos = s0;
5775
+ s0 = peg$FAILED;
5776
+ }
5777
+ }
5778
+ else {
5779
+ peg$currPos = s0;
5780
+ s0 = peg$FAILED;
5781
+ }
5782
+ }
5783
+ else {
5784
+ peg$currPos = s0;
5785
+ s0 = peg$FAILED;
5786
+ }
5787
+ return s0;
5788
+ }
5789
+ function peg$parseVariableDeclarationList() {
5790
+ var s0, s1, s2, s3, s4, s5, s6, s7;
5791
+ s0 = peg$currPos;
5792
+ s1 = peg$parseVariableDeclaration();
5793
+ if (s1 !== peg$FAILED) {
5794
+ s2 = [];
5795
+ s3 = peg$currPos;
5796
+ s4 = peg$parse__();
5797
+ if (input.charCodeAt(peg$currPos) === 44) {
5798
+ s5 = peg$c39;
5799
+ peg$currPos++;
5800
+ }
5801
+ else {
5802
+ s5 = peg$FAILED;
5803
+ if (peg$silentFails === 0) {
5804
+ peg$fail(peg$e72);
5805
+ }
5806
+ }
5807
+ if (s5 !== peg$FAILED) {
5808
+ s6 = peg$parse__();
5809
+ s7 = peg$parseVariableDeclaration();
5810
+ if (s7 !== peg$FAILED) {
5811
+ s4 = [s4, s5, s6, s7];
5812
+ s3 = s4;
5813
+ }
5814
+ else {
5815
+ peg$currPos = s3;
5816
+ s3 = peg$FAILED;
5817
+ }
5818
+ }
5819
+ else {
5820
+ peg$currPos = s3;
5821
+ s3 = peg$FAILED;
5822
+ }
5823
+ while (s3 !== peg$FAILED) {
5824
+ s2.push(s3);
5825
+ s3 = peg$currPos;
5826
+ s4 = peg$parse__();
5827
+ if (input.charCodeAt(peg$currPos) === 44) {
5828
+ s5 = peg$c39;
5829
+ peg$currPos++;
5830
+ }
5831
+ else {
5832
+ s5 = peg$FAILED;
5833
+ if (peg$silentFails === 0) {
5834
+ peg$fail(peg$e72);
5835
+ }
5836
+ }
5837
+ if (s5 !== peg$FAILED) {
5838
+ s6 = peg$parse__();
5839
+ s7 = peg$parseVariableDeclaration();
5840
+ if (s7 !== peg$FAILED) {
5841
+ s4 = [s4, s5, s6, s7];
5842
+ s3 = s4;
5843
+ }
5844
+ else {
5845
+ peg$currPos = s3;
5846
+ s3 = peg$FAILED;
5847
+ }
5848
+ }
5849
+ else {
5850
+ peg$currPos = s3;
5851
+ s3 = peg$FAILED;
5852
+ }
5853
+ }
5854
+ peg$savedPos = s0;
5855
+ s0 = peg$f73(s1, s2);
5856
+ }
5857
+ else {
5858
+ peg$currPos = s0;
5859
+ s0 = peg$FAILED;
5860
+ }
5861
+ return s0;
5862
+ }
5863
+ function peg$parseVariableDeclaration() {
5864
+ var s0, s1, s2, s3, s4;
5865
+ s0 = peg$currPos;
5866
+ s1 = peg$parseIdentifier();
5867
+ if (s1 !== peg$FAILED) {
5868
+ s2 = peg$currPos;
5869
+ s3 = peg$parse__();
5870
+ s4 = peg$parseInitialiser();
5871
+ if (s4 !== peg$FAILED) {
5872
+ s3 = [s3, s4];
5873
+ s2 = s3;
5874
+ }
5875
+ else {
5876
+ peg$currPos = s2;
5877
+ s2 = peg$FAILED;
5878
+ }
5879
+ if (s2 !== peg$FAILED) {
5880
+ peg$savedPos = s0;
5881
+ s0 = peg$f74(s1, s2);
5882
+ }
5883
+ else {
5884
+ peg$currPos = s0;
5885
+ s0 = peg$FAILED;
5886
+ }
5887
+ }
5888
+ else {
5889
+ peg$currPos = s0;
5890
+ s0 = peg$FAILED;
5891
+ }
5892
+ return s0;
5893
+ }
5894
+ function peg$parseInitialiser() {
5895
+ var s0, s1, s2, s3;
5896
+ s0 = peg$currPos;
5897
+ s1 = peg$parseEqualOperator();
5898
+ if (s1 !== peg$FAILED) {
5899
+ s2 = peg$parse__();
5900
+ s3 = peg$parseExpression();
5901
+ if (s3 !== peg$FAILED) {
5902
+ peg$savedPos = s0;
5903
+ s0 = peg$f75(s3);
5904
+ }
5905
+ else {
5906
+ peg$currPos = s0;
5907
+ s0 = peg$FAILED;
5908
+ }
5909
+ }
5910
+ else {
5911
+ peg$currPos = s0;
5912
+ s0 = peg$FAILED;
5913
+ }
5914
+ return s0;
5915
+ }
5916
+ function peg$parseEqualOperator() {
5917
+ var s0, s1, s2, s3;
5918
+ s0 = peg$currPos;
5919
+ if (input.charCodeAt(peg$currPos) === 61) {
5920
+ s1 = peg$c56;
5921
+ peg$currPos++;
5922
+ }
5923
+ else {
5924
+ s1 = peg$FAILED;
5925
+ if (peg$silentFails === 0) {
5926
+ peg$fail(peg$e91);
5927
+ }
5928
+ }
5929
+ if (s1 !== peg$FAILED) {
5930
+ s2 = peg$currPos;
5931
+ peg$silentFails++;
5932
+ if (input.charCodeAt(peg$currPos) === 61) {
5933
+ s3 = peg$c56;
5934
+ peg$currPos++;
5935
+ }
5936
+ else {
5937
+ s3 = peg$FAILED;
5938
+ if (peg$silentFails === 0) {
5939
+ peg$fail(peg$e91);
5940
+ }
5941
+ }
5942
+ peg$silentFails--;
5943
+ if (s3 === peg$FAILED) {
5944
+ s2 = undefined;
5945
+ }
5946
+ else {
5947
+ peg$currPos = s2;
5948
+ s2 = peg$FAILED;
5949
+ }
5950
+ if (s2 !== peg$FAILED) {
5951
+ s1 = [s1, s2];
5952
+ s0 = s1;
5953
+ }
5954
+ else {
5955
+ peg$currPos = s0;
5956
+ s0 = peg$FAILED;
5957
+ }
5958
+ }
5959
+ else {
5960
+ peg$currPos = s0;
5961
+ s0 = peg$FAILED;
5962
+ }
5963
+ return s0;
5964
+ }
5965
+ function peg$parseExpression() {
5966
+ var s0;
5967
+ s0 = peg$parseLetExpression();
5968
+ if (s0 === peg$FAILED) {
5969
+ s0 = peg$parseLambdaExpression();
5970
+ if (s0 === peg$FAILED) {
5971
+ s0 = peg$parsePipeExpression();
5972
+ }
5400
5973
  }
5401
5974
  return s0;
5402
5975
  }
5403
5976
  function peg$parseExpressionStatement() {
5404
5977
  var s0, s1, s2;
5405
5978
  s0 = peg$currPos;
5406
- s1 = peg$parsePipeExpression();
5979
+ s1 = peg$parseExpression();
5407
5980
  if (s1 === peg$FAILED) {
5408
5981
  s1 = null;
5409
5982
  }
5410
5983
  s2 = peg$parseEOS();
5411
5984
  if (s2 !== peg$FAILED) {
5412
5985
  peg$savedPos = s0;
5413
- s0 = peg$f68(s1);
5986
+ s0 = peg$f76(s1);
5414
5987
  }
5415
5988
  else {
5416
5989
  peg$currPos = s0;