simplex-lang 0.0.7 → 0.2.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,32 @@ 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 = "{";
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
236
  var peg$c40 = ":";
237
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 = "|";
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 = "=>";
253
+ var peg$c57 = "=";
247
254
  var peg$r0 = /^[\t\v-\f \xA0\u1680\u2000-\u200A\u202F\u205F\u3000\uFEFF]/;
248
255
  var peg$r1 = /^[\n\r\u2028\u2029]/;
249
256
  var peg$r2 = /^[\r\u2028-\u2029]/;
@@ -337,27 +344,34 @@ function peg$parse(input, options) {
337
344
  var peg$e62 = peg$literalExpectation("true", false);
338
345
  var peg$e63 = peg$literalExpectation("typeof", false);
339
346
  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);
347
+ var peg$e65 = peg$literalExpectation("let", false);
348
+ var peg$e66 = peg$literalExpectation("(", false);
349
+ var peg$e67 = peg$literalExpectation(")", false);
350
+ var peg$e68 = peg$literalExpectation("[", false);
351
+ var peg$e69 = peg$literalExpectation("]", false);
352
+ var peg$e70 = peg$literalExpectation(",", false);
353
+ var peg$e71 = peg$literalExpectation("{", false);
354
+ var peg$e72 = peg$literalExpectation("}", false);
348
355
  var peg$e73 = peg$literalExpectation(":", false);
349
356
  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);
357
+ var peg$e75 = peg$literalExpectation("#", false);
358
+ var peg$e76 = peg$literalExpectation("^", false);
359
+ var peg$e77 = peg$classExpectation(["*", "/"], false, false);
360
+ var peg$e78 = peg$literalExpectation("&", false);
361
+ var peg$e79 = peg$literalExpectation("<=", false);
362
+ var peg$e80 = peg$literalExpectation(">=", false);
363
+ var peg$e81 = peg$classExpectation(["<", ">"], false, false);
364
+ var peg$e82 = peg$literalExpectation("==", false);
365
+ var peg$e83 = peg$literalExpectation("!=", false);
366
+ var peg$e84 = peg$literalExpectation("&&", false);
367
+ var peg$e85 = peg$literalExpectation("||", false);
368
+ var peg$e86 = peg$literalExpectation("??", false);
369
+ var peg$e87 = peg$literalExpectation("|?", false);
370
+ var peg$e88 = peg$literalExpectation("|>", false);
371
+ var peg$e89 = peg$literalExpectation("|", false);
372
+ var peg$e90 = peg$literalExpectation("%", false);
373
+ var peg$e91 = peg$literalExpectation("=>", false);
374
+ var peg$e92 = peg$literalExpectation("=", false);
361
375
  var peg$f0 = function (statement) { return statement; };
362
376
  var peg$f1 = function (name) { return name; };
363
377
  var peg$f2 = function (head, tail) {
@@ -589,8 +603,14 @@ function peg$parse(input, options) {
589
603
  var peg$f53 = function (head, tail) {
590
604
  return buildList(head, tail, 3);
591
605
  };
592
- var peg$f54 = function (head, tail) { return buildBinaryExpression(head, tail, location()); };
593
- var peg$f55 = function (operator, argument) {
606
+ var peg$f54 = function () {
607
+ return {
608
+ type: 'CurryPlaceholder',
609
+ location: getLocation(location())
610
+ };
611
+ };
612
+ var peg$f55 = function (head, tail) { return buildBinaryExpression(head, tail, location()); };
613
+ var peg$f56 = function (operator, argument) {
594
614
  return {
595
615
  type: "UnaryExpression",
596
616
  operator: operator,
@@ -599,14 +619,14 @@ function peg$parse(input, options) {
599
619
  location: getLocation(location())
600
620
  };
601
621
  };
602
- var peg$f56 = function (head, tail) { return buildBinaryExpression(head, tail, location()); };
603
622
  var peg$f57 = function (head, tail) { return buildBinaryExpression(head, tail, location()); };
604
623
  var peg$f58 = function (head, tail) { return buildBinaryExpression(head, tail, location()); };
605
624
  var peg$f59 = function (head, tail) { return buildBinaryExpression(head, tail, location()); };
606
625
  var peg$f60 = function (head, tail) { return buildBinaryExpression(head, tail, location()); };
607
- var peg$f61 = function (head, tail) { return buildLogicalExpression(head, tail, location()); };
626
+ var peg$f61 = function (head, tail) { return buildBinaryExpression(head, tail, location()); };
608
627
  var peg$f62 = function (head, tail) { return buildLogicalExpression(head, tail, location()); };
609
- var peg$f63 = function (test, consequent, alternate) {
628
+ var peg$f63 = function (head, tail) { return buildLogicalExpression(head, tail, location()); };
629
+ var peg$f64 = function (test, consequent, alternate) {
610
630
  return {
611
631
  type: "ConditionalExpression",
612
632
  test: test,
@@ -615,7 +635,7 @@ function peg$parse(input, options) {
615
635
  location: getLocation(location())
616
636
  };
617
637
  };
618
- var peg$f64 = function (test, consequent) {
638
+ var peg$f65 = function (test, consequent) {
619
639
  return {
620
640
  type: "ConditionalExpression",
621
641
  test: test,
@@ -624,16 +644,61 @@ function peg$parse(input, options) {
624
644
  location: getLocation(location())
625
645
  };
626
646
  };
627
- var peg$f65 = function (head, tail) {
647
+ var peg$f66 = function (head, tail) {
628
648
  return buildExpression("NullishCoalescingExpression", head, tail, getLocation(location()));
629
649
  };
630
- var peg$f66 = function (head, operator, expression) { return { operator, expression }; };
631
- var peg$f67 = function (head, tail) {
650
+ var peg$f67 = function (head, operator, expression) { return { operator, expression }; };
651
+ var peg$f68 = function (head, tail) {
632
652
  return tail.length > 0
633
653
  ? { type: "PipeSequence", head, tail, location: getLocation(location()) }
634
654
  : head;
635
655
  };
636
- var peg$f68 = function (expression) {
656
+ var peg$f69 = function () {
657
+ return {
658
+ type: "TopicReference",
659
+ location: getLocation(location())
660
+ };
661
+ };
662
+ var peg$f70 = function (params, body) {
663
+ return {
664
+ type: "LambdaExpression",
665
+ params: optionalList(extractOptional(params, 0)),
666
+ expression: body,
667
+ location: getLocation(location())
668
+ };
669
+ };
670
+ var peg$f71 = function (param, body) {
671
+ return {
672
+ type: "LambdaExpression",
673
+ params: [param],
674
+ expression: body,
675
+ location: getLocation(location())
676
+ };
677
+ };
678
+ var peg$f72 = function (head, tail) {
679
+ return buildList(head, tail, 3);
680
+ };
681
+ var peg$f73 = function (declarations, body) {
682
+ return {
683
+ type: "LetExpression",
684
+ declarations,
685
+ expression: body,
686
+ location: getLocation(location())
687
+ };
688
+ };
689
+ var peg$f74 = function (head, tail) {
690
+ return buildList(head, tail, 3);
691
+ };
692
+ var peg$f75 = function (id, init) {
693
+ return {
694
+ type: "VariableDeclarator",
695
+ id: id,
696
+ init: extractOptional(init, 1),
697
+ location: getLocation(location())
698
+ };
699
+ };
700
+ var peg$f76 = function (expression) { return expression; };
701
+ var peg$f77 = function (expression) {
637
702
  return {
638
703
  type: "ExpressionStatement",
639
704
  expression: expression
@@ -1387,6 +1452,9 @@ function peg$parse(input, options) {
1387
1452
  s0 = peg$parseThenToken();
1388
1453
  if (s0 === peg$FAILED) {
1389
1454
  s0 = peg$parseTypeofToken();
1455
+ if (s0 === peg$FAILED) {
1456
+ s0 = peg$parseLetToken();
1457
+ }
1390
1458
  }
1391
1459
  }
1392
1460
  }
@@ -3059,6 +3127,46 @@ function peg$parse(input, options) {
3059
3127
  }
3060
3128
  return s0;
3061
3129
  }
3130
+ function peg$parseLetToken() {
3131
+ var s0, s1, s2, s3;
3132
+ s0 = peg$currPos;
3133
+ if (input.substr(peg$currPos, 3) === peg$c32) {
3134
+ s1 = peg$c32;
3135
+ peg$currPos += 3;
3136
+ }
3137
+ else {
3138
+ s1 = peg$FAILED;
3139
+ if (peg$silentFails === 0) {
3140
+ peg$fail(peg$e65);
3141
+ }
3142
+ }
3143
+ if (s1 !== peg$FAILED) {
3144
+ s2 = peg$currPos;
3145
+ peg$silentFails++;
3146
+ s3 = peg$parseIdentifierPart();
3147
+ peg$silentFails--;
3148
+ if (s3 === peg$FAILED) {
3149
+ s2 = undefined;
3150
+ }
3151
+ else {
3152
+ peg$currPos = s2;
3153
+ s2 = peg$FAILED;
3154
+ }
3155
+ if (s2 !== peg$FAILED) {
3156
+ s1 = [s1, s2];
3157
+ s0 = s1;
3158
+ }
3159
+ else {
3160
+ peg$currPos = s0;
3161
+ s0 = peg$FAILED;
3162
+ }
3163
+ }
3164
+ else {
3165
+ peg$currPos = s0;
3166
+ s0 = peg$FAILED;
3167
+ }
3168
+ return s0;
3169
+ }
3062
3170
  function peg$parse__() {
3063
3171
  var s0, s1;
3064
3172
  s0 = [];
@@ -3100,19 +3208,14 @@ function peg$parse(input, options) {
3100
3208
  function peg$parseEOS() {
3101
3209
  var s0, s1, s2, s3;
3102
3210
  s0 = peg$currPos;
3103
- s1 = peg$parse__();
3104
- if (input.charCodeAt(peg$currPos) === 59) {
3105
- s2 = peg$c32;
3106
- peg$currPos++;
3107
- }
3108
- else {
3109
- s2 = peg$FAILED;
3110
- if (peg$silentFails === 0) {
3111
- peg$fail(peg$e65);
3112
- }
3211
+ s1 = peg$parse_();
3212
+ s2 = peg$parseSingleLineComment();
3213
+ if (s2 === peg$FAILED) {
3214
+ s2 = null;
3113
3215
  }
3114
- if (s2 !== peg$FAILED) {
3115
- s1 = [s1, s2];
3216
+ s3 = peg$parseLineTerminatorSequence();
3217
+ if (s3 !== peg$FAILED) {
3218
+ s1 = [s1, s2, s3];
3116
3219
  s0 = s1;
3117
3220
  }
3118
3221
  else {
@@ -3121,65 +3224,16 @@ function peg$parse(input, options) {
3121
3224
  }
3122
3225
  if (s0 === peg$FAILED) {
3123
3226
  s0 = peg$currPos;
3124
- s1 = peg$parse_();
3125
- s2 = peg$parseSingleLineComment();
3126
- if (s2 === peg$FAILED) {
3127
- s2 = null;
3128
- }
3129
- s3 = peg$parseLineTerminatorSequence();
3130
- if (s3 !== peg$FAILED) {
3131
- s1 = [s1, s2, s3];
3227
+ s1 = peg$parse__();
3228
+ s2 = peg$parseEOF();
3229
+ if (s2 !== peg$FAILED) {
3230
+ s1 = [s1, s2];
3132
3231
  s0 = s1;
3133
3232
  }
3134
3233
  else {
3135
3234
  peg$currPos = s0;
3136
3235
  s0 = peg$FAILED;
3137
3236
  }
3138
- if (s0 === peg$FAILED) {
3139
- s0 = peg$currPos;
3140
- s1 = peg$parse_();
3141
- s2 = peg$currPos;
3142
- peg$silentFails++;
3143
- if (input.charCodeAt(peg$currPos) === 125) {
3144
- s3 = peg$c33;
3145
- peg$currPos++;
3146
- }
3147
- else {
3148
- s3 = peg$FAILED;
3149
- if (peg$silentFails === 0) {
3150
- peg$fail(peg$e66);
3151
- }
3152
- }
3153
- peg$silentFails--;
3154
- if (s3 !== peg$FAILED) {
3155
- peg$currPos = s2;
3156
- s2 = undefined;
3157
- }
3158
- else {
3159
- s2 = peg$FAILED;
3160
- }
3161
- if (s2 !== peg$FAILED) {
3162
- s1 = [s1, s2];
3163
- s0 = s1;
3164
- }
3165
- else {
3166
- peg$currPos = s0;
3167
- s0 = peg$FAILED;
3168
- }
3169
- if (s0 === peg$FAILED) {
3170
- s0 = peg$currPos;
3171
- s1 = peg$parse__();
3172
- s2 = peg$parseEOF();
3173
- if (s2 !== peg$FAILED) {
3174
- s1 = [s1, s2];
3175
- s0 = s1;
3176
- }
3177
- else {
3178
- peg$currPos = s0;
3179
- s0 = peg$FAILED;
3180
- }
3181
- }
3182
- }
3183
3237
  }
3184
3238
  return s0;
3185
3239
  }
@@ -3213,39 +3267,46 @@ function peg$parse(input, options) {
3213
3267
  if (s0 === peg$FAILED) {
3214
3268
  s0 = peg$parseLiteral();
3215
3269
  if (s0 === peg$FAILED) {
3216
- s0 = peg$parseArrayLiteral();
3270
+ s0 = peg$parseTopicReference();
3217
3271
  if (s0 === peg$FAILED) {
3218
- s0 = peg$parseObjectLiteral();
3272
+ s0 = peg$parseArrayLiteral();
3219
3273
  if (s0 === peg$FAILED) {
3220
- s0 = peg$currPos;
3221
- if (input.charCodeAt(peg$currPos) === 40) {
3222
- s1 = peg$c34;
3223
- peg$currPos++;
3224
- }
3225
- else {
3226
- s1 = peg$FAILED;
3227
- if (peg$silentFails === 0) {
3228
- peg$fail(peg$e67);
3274
+ s0 = peg$parseObjectLiteral();
3275
+ if (s0 === peg$FAILED) {
3276
+ s0 = peg$currPos;
3277
+ if (input.charCodeAt(peg$currPos) === 40) {
3278
+ s1 = peg$c33;
3279
+ peg$currPos++;
3229
3280
  }
3230
- }
3231
- if (s1 !== peg$FAILED) {
3232
- s2 = peg$parse__();
3233
- s3 = peg$parsePipeExpression();
3234
- if (s3 !== peg$FAILED) {
3235
- s4 = peg$parse__();
3236
- if (input.charCodeAt(peg$currPos) === 41) {
3237
- s5 = peg$c35;
3238
- peg$currPos++;
3281
+ else {
3282
+ s1 = peg$FAILED;
3283
+ if (peg$silentFails === 0) {
3284
+ peg$fail(peg$e66);
3239
3285
  }
3240
- else {
3241
- s5 = peg$FAILED;
3242
- if (peg$silentFails === 0) {
3243
- peg$fail(peg$e68);
3286
+ }
3287
+ if (s1 !== peg$FAILED) {
3288
+ s2 = peg$parse__();
3289
+ s3 = peg$parseExpression();
3290
+ if (s3 !== peg$FAILED) {
3291
+ s4 = peg$parse__();
3292
+ if (input.charCodeAt(peg$currPos) === 41) {
3293
+ s5 = peg$c34;
3294
+ peg$currPos++;
3295
+ }
3296
+ else {
3297
+ s5 = peg$FAILED;
3298
+ if (peg$silentFails === 0) {
3299
+ peg$fail(peg$e67);
3300
+ }
3301
+ }
3302
+ if (s5 !== peg$FAILED) {
3303
+ peg$savedPos = s0;
3304
+ s0 = peg$f30(s3);
3305
+ }
3306
+ else {
3307
+ peg$currPos = s0;
3308
+ s0 = peg$FAILED;
3244
3309
  }
3245
- }
3246
- if (s5 !== peg$FAILED) {
3247
- peg$savedPos = s0;
3248
- s0 = peg$f30(s3);
3249
3310
  }
3250
3311
  else {
3251
3312
  peg$currPos = s0;
@@ -3257,10 +3318,6 @@ function peg$parse(input, options) {
3257
3318
  s0 = peg$FAILED;
3258
3319
  }
3259
3320
  }
3260
- else {
3261
- peg$currPos = s0;
3262
- s0 = peg$FAILED;
3263
- }
3264
3321
  }
3265
3322
  }
3266
3323
  }
@@ -3271,13 +3328,13 @@ function peg$parse(input, options) {
3271
3328
  var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9;
3272
3329
  s0 = peg$currPos;
3273
3330
  if (input.charCodeAt(peg$currPos) === 91) {
3274
- s1 = peg$c36;
3331
+ s1 = peg$c35;
3275
3332
  peg$currPos++;
3276
3333
  }
3277
3334
  else {
3278
3335
  s1 = peg$FAILED;
3279
3336
  if (peg$silentFails === 0) {
3280
- peg$fail(peg$e69);
3337
+ peg$fail(peg$e68);
3281
3338
  }
3282
3339
  }
3283
3340
  if (s1 !== peg$FAILED) {
@@ -3297,13 +3354,13 @@ function peg$parse(input, options) {
3297
3354
  s3 = null;
3298
3355
  }
3299
3356
  if (input.charCodeAt(peg$currPos) === 93) {
3300
- s4 = peg$c37;
3357
+ s4 = peg$c36;
3301
3358
  peg$currPos++;
3302
3359
  }
3303
3360
  else {
3304
3361
  s4 = peg$FAILED;
3305
3362
  if (peg$silentFails === 0) {
3306
- peg$fail(peg$e70);
3363
+ peg$fail(peg$e69);
3307
3364
  }
3308
3365
  }
3309
3366
  if (s4 !== peg$FAILED) {
@@ -3322,13 +3379,13 @@ function peg$parse(input, options) {
3322
3379
  if (s0 === peg$FAILED) {
3323
3380
  s0 = peg$currPos;
3324
3381
  if (input.charCodeAt(peg$currPos) === 91) {
3325
- s1 = peg$c36;
3382
+ s1 = peg$c35;
3326
3383
  peg$currPos++;
3327
3384
  }
3328
3385
  else {
3329
3386
  s1 = peg$FAILED;
3330
3387
  if (peg$silentFails === 0) {
3331
- peg$fail(peg$e69);
3388
+ peg$fail(peg$e68);
3332
3389
  }
3333
3390
  }
3334
3391
  if (s1 !== peg$FAILED) {
@@ -3337,13 +3394,13 @@ function peg$parse(input, options) {
3337
3394
  if (s3 !== peg$FAILED) {
3338
3395
  s4 = peg$parse__();
3339
3396
  if (input.charCodeAt(peg$currPos) === 93) {
3340
- s5 = peg$c37;
3397
+ s5 = peg$c36;
3341
3398
  peg$currPos++;
3342
3399
  }
3343
3400
  else {
3344
3401
  s5 = peg$FAILED;
3345
3402
  if (peg$silentFails === 0) {
3346
- peg$fail(peg$e70);
3403
+ peg$fail(peg$e69);
3347
3404
  }
3348
3405
  }
3349
3406
  if (s5 !== peg$FAILED) {
@@ -3367,13 +3424,13 @@ function peg$parse(input, options) {
3367
3424
  if (s0 === peg$FAILED) {
3368
3425
  s0 = peg$currPos;
3369
3426
  if (input.charCodeAt(peg$currPos) === 91) {
3370
- s1 = peg$c36;
3427
+ s1 = peg$c35;
3371
3428
  peg$currPos++;
3372
3429
  }
3373
3430
  else {
3374
3431
  s1 = peg$FAILED;
3375
3432
  if (peg$silentFails === 0) {
3376
- peg$fail(peg$e69);
3433
+ peg$fail(peg$e68);
3377
3434
  }
3378
3435
  }
3379
3436
  if (s1 !== peg$FAILED) {
@@ -3382,13 +3439,13 @@ function peg$parse(input, options) {
3382
3439
  if (s3 !== peg$FAILED) {
3383
3440
  s4 = peg$parse__();
3384
3441
  if (input.charCodeAt(peg$currPos) === 44) {
3385
- s5 = peg$c38;
3442
+ s5 = peg$c37;
3386
3443
  peg$currPos++;
3387
3444
  }
3388
3445
  else {
3389
3446
  s5 = peg$FAILED;
3390
3447
  if (peg$silentFails === 0) {
3391
- peg$fail(peg$e71);
3448
+ peg$fail(peg$e70);
3392
3449
  }
3393
3450
  }
3394
3451
  if (s5 !== peg$FAILED) {
@@ -3408,13 +3465,13 @@ function peg$parse(input, options) {
3408
3465
  s7 = null;
3409
3466
  }
3410
3467
  if (input.charCodeAt(peg$currPos) === 93) {
3411
- s8 = peg$c37;
3468
+ s8 = peg$c36;
3412
3469
  peg$currPos++;
3413
3470
  }
3414
3471
  else {
3415
3472
  s8 = peg$FAILED;
3416
3473
  if (peg$silentFails === 0) {
3417
- peg$fail(peg$e70);
3474
+ peg$fail(peg$e69);
3418
3475
  }
3419
3476
  }
3420
3477
  if (s8 !== peg$FAILED) {
@@ -3462,7 +3519,7 @@ function peg$parse(input, options) {
3462
3519
  if (s2 === peg$FAILED) {
3463
3520
  s2 = null;
3464
3521
  }
3465
- s3 = peg$parsePipeExpression();
3522
+ s3 = peg$parseExpression();
3466
3523
  if (s3 !== peg$FAILED) {
3467
3524
  peg$savedPos = s1;
3468
3525
  s1 = peg$f34(s2, s3);
@@ -3476,13 +3533,13 @@ function peg$parse(input, options) {
3476
3533
  s3 = peg$currPos;
3477
3534
  s4 = peg$parse__();
3478
3535
  if (input.charCodeAt(peg$currPos) === 44) {
3479
- s5 = peg$c38;
3536
+ s5 = peg$c37;
3480
3537
  peg$currPos++;
3481
3538
  }
3482
3539
  else {
3483
3540
  s5 = peg$FAILED;
3484
3541
  if (peg$silentFails === 0) {
3485
- peg$fail(peg$e71);
3542
+ peg$fail(peg$e70);
3486
3543
  }
3487
3544
  }
3488
3545
  if (s5 !== peg$FAILED) {
@@ -3501,7 +3558,7 @@ function peg$parse(input, options) {
3501
3558
  if (s7 === peg$FAILED) {
3502
3559
  s7 = null;
3503
3560
  }
3504
- s8 = peg$parsePipeExpression();
3561
+ s8 = peg$parseExpression();
3505
3562
  if (s8 !== peg$FAILED) {
3506
3563
  peg$savedPos = s3;
3507
3564
  s3 = peg$f35(s1, s7, s8);
@@ -3520,13 +3577,13 @@ function peg$parse(input, options) {
3520
3577
  s3 = peg$currPos;
3521
3578
  s4 = peg$parse__();
3522
3579
  if (input.charCodeAt(peg$currPos) === 44) {
3523
- s5 = peg$c38;
3580
+ s5 = peg$c37;
3524
3581
  peg$currPos++;
3525
3582
  }
3526
3583
  else {
3527
3584
  s5 = peg$FAILED;
3528
3585
  if (peg$silentFails === 0) {
3529
- peg$fail(peg$e71);
3586
+ peg$fail(peg$e70);
3530
3587
  }
3531
3588
  }
3532
3589
  if (s5 !== peg$FAILED) {
@@ -3545,7 +3602,7 @@ function peg$parse(input, options) {
3545
3602
  if (s7 === peg$FAILED) {
3546
3603
  s7 = null;
3547
3604
  }
3548
- s8 = peg$parsePipeExpression();
3605
+ s8 = peg$parseExpression();
3549
3606
  if (s8 !== peg$FAILED) {
3550
3607
  peg$savedPos = s3;
3551
3608
  s3 = peg$f35(s1, s7, s8);
@@ -3573,13 +3630,13 @@ function peg$parse(input, options) {
3573
3630
  var s0, s1, s2, s3, s4, s5;
3574
3631
  s0 = peg$currPos;
3575
3632
  if (input.charCodeAt(peg$currPos) === 44) {
3576
- s1 = peg$c38;
3633
+ s1 = peg$c37;
3577
3634
  peg$currPos++;
3578
3635
  }
3579
3636
  else {
3580
3637
  s1 = peg$FAILED;
3581
3638
  if (peg$silentFails === 0) {
3582
- peg$fail(peg$e71);
3639
+ peg$fail(peg$e70);
3583
3640
  }
3584
3641
  }
3585
3642
  if (s1 !== peg$FAILED) {
@@ -3587,13 +3644,13 @@ function peg$parse(input, options) {
3587
3644
  s3 = peg$currPos;
3588
3645
  s4 = peg$parse__();
3589
3646
  if (input.charCodeAt(peg$currPos) === 44) {
3590
- s5 = peg$c38;
3647
+ s5 = peg$c37;
3591
3648
  peg$currPos++;
3592
3649
  }
3593
3650
  else {
3594
3651
  s5 = peg$FAILED;
3595
3652
  if (peg$silentFails === 0) {
3596
- peg$fail(peg$e71);
3653
+ peg$fail(peg$e70);
3597
3654
  }
3598
3655
  }
3599
3656
  if (s5 !== peg$FAILED) {
@@ -3609,13 +3666,13 @@ function peg$parse(input, options) {
3609
3666
  s3 = peg$currPos;
3610
3667
  s4 = peg$parse__();
3611
3668
  if (input.charCodeAt(peg$currPos) === 44) {
3612
- s5 = peg$c38;
3669
+ s5 = peg$c37;
3613
3670
  peg$currPos++;
3614
3671
  }
3615
3672
  else {
3616
3673
  s5 = peg$FAILED;
3617
3674
  if (peg$silentFails === 0) {
3618
- peg$fail(peg$e71);
3675
+ peg$fail(peg$e70);
3619
3676
  }
3620
3677
  }
3621
3678
  if (s5 !== peg$FAILED) {
@@ -3640,25 +3697,25 @@ function peg$parse(input, options) {
3640
3697
  var s0, s1, s2, s3, s4, s5, s6, s7;
3641
3698
  s0 = peg$currPos;
3642
3699
  if (input.charCodeAt(peg$currPos) === 123) {
3643
- s1 = peg$c39;
3700
+ s1 = peg$c38;
3644
3701
  peg$currPos++;
3645
3702
  }
3646
3703
  else {
3647
3704
  s1 = peg$FAILED;
3648
3705
  if (peg$silentFails === 0) {
3649
- peg$fail(peg$e72);
3706
+ peg$fail(peg$e71);
3650
3707
  }
3651
3708
  }
3652
3709
  if (s1 !== peg$FAILED) {
3653
3710
  s2 = peg$parse__();
3654
3711
  if (input.charCodeAt(peg$currPos) === 125) {
3655
- s3 = peg$c33;
3712
+ s3 = peg$c39;
3656
3713
  peg$currPos++;
3657
3714
  }
3658
3715
  else {
3659
3716
  s3 = peg$FAILED;
3660
3717
  if (peg$silentFails === 0) {
3661
- peg$fail(peg$e66);
3718
+ peg$fail(peg$e72);
3662
3719
  }
3663
3720
  }
3664
3721
  if (s3 !== peg$FAILED) {
@@ -3677,13 +3734,13 @@ function peg$parse(input, options) {
3677
3734
  if (s0 === peg$FAILED) {
3678
3735
  s0 = peg$currPos;
3679
3736
  if (input.charCodeAt(peg$currPos) === 123) {
3680
- s1 = peg$c39;
3737
+ s1 = peg$c38;
3681
3738
  peg$currPos++;
3682
3739
  }
3683
3740
  else {
3684
3741
  s1 = peg$FAILED;
3685
3742
  if (peg$silentFails === 0) {
3686
- peg$fail(peg$e72);
3743
+ peg$fail(peg$e71);
3687
3744
  }
3688
3745
  }
3689
3746
  if (s1 !== peg$FAILED) {
@@ -3692,13 +3749,13 @@ function peg$parse(input, options) {
3692
3749
  if (s3 !== peg$FAILED) {
3693
3750
  s4 = peg$parse__();
3694
3751
  if (input.charCodeAt(peg$currPos) === 125) {
3695
- s5 = peg$c33;
3752
+ s5 = peg$c39;
3696
3753
  peg$currPos++;
3697
3754
  }
3698
3755
  else {
3699
3756
  s5 = peg$FAILED;
3700
3757
  if (peg$silentFails === 0) {
3701
- peg$fail(peg$e66);
3758
+ peg$fail(peg$e72);
3702
3759
  }
3703
3760
  }
3704
3761
  if (s5 !== peg$FAILED) {
@@ -3722,13 +3779,13 @@ function peg$parse(input, options) {
3722
3779
  if (s0 === peg$FAILED) {
3723
3780
  s0 = peg$currPos;
3724
3781
  if (input.charCodeAt(peg$currPos) === 123) {
3725
- s1 = peg$c39;
3782
+ s1 = peg$c38;
3726
3783
  peg$currPos++;
3727
3784
  }
3728
3785
  else {
3729
3786
  s1 = peg$FAILED;
3730
3787
  if (peg$silentFails === 0) {
3731
- peg$fail(peg$e72);
3788
+ peg$fail(peg$e71);
3732
3789
  }
3733
3790
  }
3734
3791
  if (s1 !== peg$FAILED) {
@@ -3737,25 +3794,25 @@ function peg$parse(input, options) {
3737
3794
  if (s3 !== peg$FAILED) {
3738
3795
  s4 = peg$parse__();
3739
3796
  if (input.charCodeAt(peg$currPos) === 44) {
3740
- s5 = peg$c38;
3797
+ s5 = peg$c37;
3741
3798
  peg$currPos++;
3742
3799
  }
3743
3800
  else {
3744
3801
  s5 = peg$FAILED;
3745
3802
  if (peg$silentFails === 0) {
3746
- peg$fail(peg$e71);
3803
+ peg$fail(peg$e70);
3747
3804
  }
3748
3805
  }
3749
3806
  if (s5 !== peg$FAILED) {
3750
3807
  s6 = peg$parse__();
3751
3808
  if (input.charCodeAt(peg$currPos) === 125) {
3752
- s7 = peg$c33;
3809
+ s7 = peg$c39;
3753
3810
  peg$currPos++;
3754
3811
  }
3755
3812
  else {
3756
3813
  s7 = peg$FAILED;
3757
3814
  if (peg$silentFails === 0) {
3758
- peg$fail(peg$e66);
3815
+ peg$fail(peg$e72);
3759
3816
  }
3760
3817
  }
3761
3818
  if (s7 !== peg$FAILED) {
@@ -3794,13 +3851,13 @@ function peg$parse(input, options) {
3794
3851
  s3 = peg$currPos;
3795
3852
  s4 = peg$parse__();
3796
3853
  if (input.charCodeAt(peg$currPos) === 44) {
3797
- s5 = peg$c38;
3854
+ s5 = peg$c37;
3798
3855
  peg$currPos++;
3799
3856
  }
3800
3857
  else {
3801
3858
  s5 = peg$FAILED;
3802
3859
  if (peg$silentFails === 0) {
3803
- peg$fail(peg$e71);
3860
+ peg$fail(peg$e70);
3804
3861
  }
3805
3862
  }
3806
3863
  if (s5 !== peg$FAILED) {
@@ -3824,13 +3881,13 @@ function peg$parse(input, options) {
3824
3881
  s3 = peg$currPos;
3825
3882
  s4 = peg$parse__();
3826
3883
  if (input.charCodeAt(peg$currPos) === 44) {
3827
- s5 = peg$c38;
3884
+ s5 = peg$c37;
3828
3885
  peg$currPos++;
3829
3886
  }
3830
3887
  else {
3831
3888
  s5 = peg$FAILED;
3832
3889
  if (peg$silentFails === 0) {
3833
- peg$fail(peg$e71);
3890
+ peg$fail(peg$e70);
3834
3891
  }
3835
3892
  }
3836
3893
  if (s5 !== peg$FAILED) {
@@ -3877,7 +3934,7 @@ function peg$parse(input, options) {
3877
3934
  }
3878
3935
  if (s3 !== peg$FAILED) {
3879
3936
  s4 = peg$parse__();
3880
- s5 = peg$parsePipeExpression();
3937
+ s5 = peg$parseExpression();
3881
3938
  if (s5 !== peg$FAILED) {
3882
3939
  peg$savedPos = s0;
3883
3940
  s0 = peg$f42(s1, s5);
@@ -3918,28 +3975,28 @@ function peg$parse(input, options) {
3918
3975
  s3 = peg$currPos;
3919
3976
  s4 = peg$parse__();
3920
3977
  if (input.charCodeAt(peg$currPos) === 91) {
3921
- s5 = peg$c36;
3978
+ s5 = peg$c35;
3922
3979
  peg$currPos++;
3923
3980
  }
3924
3981
  else {
3925
3982
  s5 = peg$FAILED;
3926
3983
  if (peg$silentFails === 0) {
3927
- peg$fail(peg$e69);
3984
+ peg$fail(peg$e68);
3928
3985
  }
3929
3986
  }
3930
3987
  if (s5 !== peg$FAILED) {
3931
3988
  s6 = peg$parse__();
3932
- s7 = peg$parsePipeExpression();
3989
+ s7 = peg$parseExpression();
3933
3990
  if (s7 !== peg$FAILED) {
3934
3991
  s8 = peg$parse__();
3935
3992
  if (input.charCodeAt(peg$currPos) === 93) {
3936
- s9 = peg$c37;
3993
+ s9 = peg$c36;
3937
3994
  peg$currPos++;
3938
3995
  }
3939
3996
  else {
3940
3997
  s9 = peg$FAILED;
3941
3998
  if (peg$silentFails === 0) {
3942
- peg$fail(peg$e70);
3999
+ peg$fail(peg$e69);
3943
4000
  }
3944
4001
  }
3945
4002
  if (s9 !== peg$FAILED) {
@@ -4025,28 +4082,28 @@ function peg$parse(input, options) {
4025
4082
  s3 = peg$currPos;
4026
4083
  s4 = peg$parse__();
4027
4084
  if (input.charCodeAt(peg$currPos) === 91) {
4028
- s5 = peg$c36;
4085
+ s5 = peg$c35;
4029
4086
  peg$currPos++;
4030
4087
  }
4031
4088
  else {
4032
4089
  s5 = peg$FAILED;
4033
4090
  if (peg$silentFails === 0) {
4034
- peg$fail(peg$e69);
4091
+ peg$fail(peg$e68);
4035
4092
  }
4036
4093
  }
4037
4094
  if (s5 !== peg$FAILED) {
4038
4095
  s6 = peg$parse__();
4039
- s7 = peg$parsePipeExpression();
4096
+ s7 = peg$parseExpression();
4040
4097
  if (s7 !== peg$FAILED) {
4041
4098
  s8 = peg$parse__();
4042
4099
  if (input.charCodeAt(peg$currPos) === 93) {
4043
- s9 = peg$c37;
4100
+ s9 = peg$c36;
4044
4101
  peg$currPos++;
4045
4102
  }
4046
4103
  else {
4047
4104
  s9 = peg$FAILED;
4048
4105
  if (peg$silentFails === 0) {
4049
- peg$fail(peg$e70);
4106
+ peg$fail(peg$e69);
4050
4107
  }
4051
4108
  }
4052
4109
  if (s9 !== peg$FAILED) {
@@ -4175,28 +4232,28 @@ function peg$parse(input, options) {
4175
4232
  s3 = peg$currPos;
4176
4233
  s4 = peg$parse__();
4177
4234
  if (input.charCodeAt(peg$currPos) === 91) {
4178
- s5 = peg$c36;
4235
+ s5 = peg$c35;
4179
4236
  peg$currPos++;
4180
4237
  }
4181
4238
  else {
4182
4239
  s5 = peg$FAILED;
4183
4240
  if (peg$silentFails === 0) {
4184
- peg$fail(peg$e69);
4241
+ peg$fail(peg$e68);
4185
4242
  }
4186
4243
  }
4187
4244
  if (s5 !== peg$FAILED) {
4188
4245
  s6 = peg$parse__();
4189
- s7 = peg$parsePipeExpression();
4246
+ s7 = peg$parseExpression();
4190
4247
  if (s7 !== peg$FAILED) {
4191
4248
  s8 = peg$parse__();
4192
4249
  if (input.charCodeAt(peg$currPos) === 93) {
4193
- s9 = peg$c37;
4250
+ s9 = peg$c36;
4194
4251
  peg$currPos++;
4195
4252
  }
4196
4253
  else {
4197
4254
  s9 = peg$FAILED;
4198
4255
  if (peg$silentFails === 0) {
4199
- peg$fail(peg$e70);
4256
+ peg$fail(peg$e69);
4200
4257
  }
4201
4258
  }
4202
4259
  if (s9 !== peg$FAILED) {
@@ -4265,28 +4322,28 @@ function peg$parse(input, options) {
4265
4322
  s3 = peg$currPos;
4266
4323
  s4 = peg$parse__();
4267
4324
  if (input.charCodeAt(peg$currPos) === 91) {
4268
- s5 = peg$c36;
4325
+ s5 = peg$c35;
4269
4326
  peg$currPos++;
4270
4327
  }
4271
4328
  else {
4272
4329
  s5 = peg$FAILED;
4273
4330
  if (peg$silentFails === 0) {
4274
- peg$fail(peg$e69);
4331
+ peg$fail(peg$e68);
4275
4332
  }
4276
4333
  }
4277
4334
  if (s5 !== peg$FAILED) {
4278
4335
  s6 = peg$parse__();
4279
- s7 = peg$parsePipeExpression();
4336
+ s7 = peg$parseExpression();
4280
4337
  if (s7 !== peg$FAILED) {
4281
4338
  s8 = peg$parse__();
4282
4339
  if (input.charCodeAt(peg$currPos) === 93) {
4283
- s9 = peg$c37;
4340
+ s9 = peg$c36;
4284
4341
  peg$currPos++;
4285
4342
  }
4286
4343
  else {
4287
4344
  s9 = peg$FAILED;
4288
4345
  if (peg$silentFails === 0) {
4289
- peg$fail(peg$e70);
4346
+ peg$fail(peg$e69);
4290
4347
  }
4291
4348
  }
4292
4349
  if (s9 !== peg$FAILED) {
@@ -4352,13 +4409,13 @@ function peg$parse(input, options) {
4352
4409
  var s0, s1, s2, s3, s4, s5;
4353
4410
  s0 = peg$currPos;
4354
4411
  if (input.charCodeAt(peg$currPos) === 40) {
4355
- s1 = peg$c34;
4412
+ s1 = peg$c33;
4356
4413
  peg$currPos++;
4357
4414
  }
4358
4415
  else {
4359
4416
  s1 = peg$FAILED;
4360
4417
  if (peg$silentFails === 0) {
4361
- peg$fail(peg$e67);
4418
+ peg$fail(peg$e66);
4362
4419
  }
4363
4420
  }
4364
4421
  if (s1 !== peg$FAILED) {
@@ -4378,13 +4435,13 @@ function peg$parse(input, options) {
4378
4435
  s3 = null;
4379
4436
  }
4380
4437
  if (input.charCodeAt(peg$currPos) === 41) {
4381
- s4 = peg$c35;
4438
+ s4 = peg$c34;
4382
4439
  peg$currPos++;
4383
4440
  }
4384
4441
  else {
4385
4442
  s4 = peg$FAILED;
4386
4443
  if (peg$silentFails === 0) {
4387
- peg$fail(peg$e68);
4444
+ peg$fail(peg$e67);
4388
4445
  }
4389
4446
  }
4390
4447
  if (s4 !== peg$FAILED) {
@@ -4405,24 +4462,24 @@ function peg$parse(input, options) {
4405
4462
  function peg$parseArgumentList() {
4406
4463
  var s0, s1, s2, s3, s4, s5, s6, s7;
4407
4464
  s0 = peg$currPos;
4408
- s1 = peg$parsePipeExpression();
4465
+ s1 = peg$parseCallArgument();
4409
4466
  if (s1 !== peg$FAILED) {
4410
4467
  s2 = [];
4411
4468
  s3 = peg$currPos;
4412
4469
  s4 = peg$parse__();
4413
4470
  if (input.charCodeAt(peg$currPos) === 44) {
4414
- s5 = peg$c38;
4471
+ s5 = peg$c37;
4415
4472
  peg$currPos++;
4416
4473
  }
4417
4474
  else {
4418
4475
  s5 = peg$FAILED;
4419
4476
  if (peg$silentFails === 0) {
4420
- peg$fail(peg$e71);
4477
+ peg$fail(peg$e70);
4421
4478
  }
4422
4479
  }
4423
4480
  if (s5 !== peg$FAILED) {
4424
4481
  s6 = peg$parse__();
4425
- s7 = peg$parsePipeExpression();
4482
+ s7 = peg$parseCallArgument();
4426
4483
  if (s7 !== peg$FAILED) {
4427
4484
  s4 = [s4, s5, s6, s7];
4428
4485
  s3 = s4;
@@ -4441,18 +4498,18 @@ function peg$parse(input, options) {
4441
4498
  s3 = peg$currPos;
4442
4499
  s4 = peg$parse__();
4443
4500
  if (input.charCodeAt(peg$currPos) === 44) {
4444
- s5 = peg$c38;
4501
+ s5 = peg$c37;
4445
4502
  peg$currPos++;
4446
4503
  }
4447
4504
  else {
4448
4505
  s5 = peg$FAILED;
4449
4506
  if (peg$silentFails === 0) {
4450
- peg$fail(peg$e71);
4507
+ peg$fail(peg$e70);
4451
4508
  }
4452
4509
  }
4453
4510
  if (s5 !== peg$FAILED) {
4454
4511
  s6 = peg$parse__();
4455
- s7 = peg$parsePipeExpression();
4512
+ s7 = peg$parseCallArgument();
4456
4513
  if (s7 !== peg$FAILED) {
4457
4514
  s4 = [s4, s5, s6, s7];
4458
4515
  s3 = s4;
@@ -4476,6 +4533,34 @@ function peg$parse(input, options) {
4476
4533
  }
4477
4534
  return s0;
4478
4535
  }
4536
+ function peg$parseCallArgument() {
4537
+ var s0;
4538
+ s0 = peg$parseExpression();
4539
+ if (s0 === peg$FAILED) {
4540
+ s0 = peg$parseCurryPlaceholder();
4541
+ }
4542
+ return s0;
4543
+ }
4544
+ function peg$parseCurryPlaceholder() {
4545
+ var s0, s1;
4546
+ s0 = peg$currPos;
4547
+ if (input.charCodeAt(peg$currPos) === 35) {
4548
+ s1 = peg$c42;
4549
+ peg$currPos++;
4550
+ }
4551
+ else {
4552
+ s1 = peg$FAILED;
4553
+ if (peg$silentFails === 0) {
4554
+ peg$fail(peg$e75);
4555
+ }
4556
+ }
4557
+ if (s1 !== peg$FAILED) {
4558
+ peg$savedPos = s0;
4559
+ s1 = peg$f54();
4560
+ }
4561
+ s0 = s1;
4562
+ return s0;
4563
+ }
4479
4564
  function peg$parseLeftHandSideExpression() {
4480
4565
  var s0;
4481
4566
  s0 = peg$parseCallExpression();
@@ -4532,7 +4617,7 @@ function peg$parse(input, options) {
4532
4617
  }
4533
4618
  }
4534
4619
  peg$savedPos = s0;
4535
- s0 = peg$f54(s1, s2);
4620
+ s0 = peg$f55(s1, s2);
4536
4621
  }
4537
4622
  else {
4538
4623
  peg$currPos = s0;
@@ -4543,13 +4628,13 @@ function peg$parse(input, options) {
4543
4628
  function peg$parseExponentiationOperator() {
4544
4629
  var s0;
4545
4630
  if (input.charCodeAt(peg$currPos) === 94) {
4546
- s0 = peg$c42;
4631
+ s0 = peg$c43;
4547
4632
  peg$currPos++;
4548
4633
  }
4549
4634
  else {
4550
4635
  s0 = peg$FAILED;
4551
4636
  if (peg$silentFails === 0) {
4552
- peg$fail(peg$e75);
4637
+ peg$fail(peg$e76);
4553
4638
  }
4554
4639
  }
4555
4640
  return s0;
@@ -4565,7 +4650,7 @@ function peg$parse(input, options) {
4565
4650
  s3 = peg$parseUnaryExpression();
4566
4651
  if (s3 !== peg$FAILED) {
4567
4652
  peg$savedPos = s0;
4568
- s0 = peg$f55(s1, s3);
4653
+ s0 = peg$f56(s1, s3);
4569
4654
  }
4570
4655
  else {
4571
4656
  peg$currPos = s0;
@@ -4661,7 +4746,7 @@ function peg$parse(input, options) {
4661
4746
  }
4662
4747
  }
4663
4748
  peg$savedPos = s0;
4664
- s0 = peg$f56(s1, s2);
4749
+ s0 = peg$f57(s1, s2);
4665
4750
  }
4666
4751
  else {
4667
4752
  peg$currPos = s0;
@@ -4678,7 +4763,7 @@ function peg$parse(input, options) {
4678
4763
  else {
4679
4764
  s0 = peg$FAILED;
4680
4765
  if (peg$silentFails === 0) {
4681
- peg$fail(peg$e76);
4766
+ peg$fail(peg$e77);
4682
4767
  }
4683
4768
  }
4684
4769
  if (s0 === peg$FAILED) {
@@ -4741,7 +4826,7 @@ function peg$parse(input, options) {
4741
4826
  }
4742
4827
  }
4743
4828
  peg$savedPos = s0;
4744
- s0 = peg$f57(s1, s2);
4829
+ s0 = peg$f58(s1, s2);
4745
4830
  }
4746
4831
  else {
4747
4832
  peg$currPos = s0;
@@ -4811,7 +4896,7 @@ function peg$parse(input, options) {
4811
4896
  }
4812
4897
  }
4813
4898
  peg$savedPos = s0;
4814
- s0 = peg$f58(s1, s2);
4899
+ s0 = peg$f59(s1, s2);
4815
4900
  }
4816
4901
  else {
4817
4902
  peg$currPos = s0;
@@ -4822,13 +4907,13 @@ function peg$parse(input, options) {
4822
4907
  function peg$parseConcatenationOperator() {
4823
4908
  var s0;
4824
4909
  if (input.charCodeAt(peg$currPos) === 38) {
4825
- s0 = peg$c43;
4910
+ s0 = peg$c44;
4826
4911
  peg$currPos++;
4827
4912
  }
4828
4913
  else {
4829
4914
  s0 = peg$FAILED;
4830
4915
  if (peg$silentFails === 0) {
4831
- peg$fail(peg$e77);
4916
+ peg$fail(peg$e78);
4832
4917
  }
4833
4918
  }
4834
4919
  return s0;
@@ -4881,7 +4966,7 @@ function peg$parse(input, options) {
4881
4966
  }
4882
4967
  }
4883
4968
  peg$savedPos = s0;
4884
- s0 = peg$f59(s1, s2);
4969
+ s0 = peg$f60(s1, s2);
4885
4970
  }
4886
4971
  else {
4887
4972
  peg$currPos = s0;
@@ -4891,25 +4976,25 @@ function peg$parse(input, options) {
4891
4976
  }
4892
4977
  function peg$parseRelationalOperator() {
4893
4978
  var s0, s1;
4894
- if (input.substr(peg$currPos, 2) === peg$c44) {
4895
- s0 = peg$c44;
4979
+ if (input.substr(peg$currPos, 2) === peg$c45) {
4980
+ s0 = peg$c45;
4896
4981
  peg$currPos += 2;
4897
4982
  }
4898
4983
  else {
4899
4984
  s0 = peg$FAILED;
4900
4985
  if (peg$silentFails === 0) {
4901
- peg$fail(peg$e78);
4986
+ peg$fail(peg$e79);
4902
4987
  }
4903
4988
  }
4904
4989
  if (s0 === peg$FAILED) {
4905
- if (input.substr(peg$currPos, 2) === peg$c45) {
4906
- s0 = peg$c45;
4990
+ if (input.substr(peg$currPos, 2) === peg$c46) {
4991
+ s0 = peg$c46;
4907
4992
  peg$currPos += 2;
4908
4993
  }
4909
4994
  else {
4910
4995
  s0 = peg$FAILED;
4911
4996
  if (peg$silentFails === 0) {
4912
- peg$fail(peg$e79);
4997
+ peg$fail(peg$e80);
4913
4998
  }
4914
4999
  }
4915
5000
  if (s0 === peg$FAILED) {
@@ -4920,7 +5005,7 @@ function peg$parse(input, options) {
4920
5005
  else {
4921
5006
  s0 = peg$FAILED;
4922
5007
  if (peg$silentFails === 0) {
4923
- peg$fail(peg$e80);
5008
+ peg$fail(peg$e81);
4924
5009
  }
4925
5010
  }
4926
5011
  if (s0 === peg$FAILED) {
@@ -4985,7 +5070,7 @@ function peg$parse(input, options) {
4985
5070
  }
4986
5071
  }
4987
5072
  peg$savedPos = s0;
4988
- s0 = peg$f60(s1, s2);
5073
+ s0 = peg$f61(s1, s2);
4989
5074
  }
4990
5075
  else {
4991
5076
  peg$currPos = s0;
@@ -4995,25 +5080,25 @@ function peg$parse(input, options) {
4995
5080
  }
4996
5081
  function peg$parseEqualityOperator() {
4997
5082
  var s0;
4998
- if (input.substr(peg$currPos, 2) === peg$c46) {
4999
- s0 = peg$c46;
5083
+ if (input.substr(peg$currPos, 2) === peg$c47) {
5084
+ s0 = peg$c47;
5000
5085
  peg$currPos += 2;
5001
5086
  }
5002
5087
  else {
5003
5088
  s0 = peg$FAILED;
5004
5089
  if (peg$silentFails === 0) {
5005
- peg$fail(peg$e81);
5090
+ peg$fail(peg$e82);
5006
5091
  }
5007
5092
  }
5008
5093
  if (s0 === peg$FAILED) {
5009
- if (input.substr(peg$currPos, 2) === peg$c47) {
5010
- s0 = peg$c47;
5094
+ if (input.substr(peg$currPos, 2) === peg$c48) {
5095
+ s0 = peg$c48;
5011
5096
  peg$currPos += 2;
5012
5097
  }
5013
5098
  else {
5014
5099
  s0 = peg$FAILED;
5015
5100
  if (peg$silentFails === 0) {
5016
- peg$fail(peg$e82);
5101
+ peg$fail(peg$e83);
5017
5102
  }
5018
5103
  }
5019
5104
  }
@@ -5067,7 +5152,7 @@ function peg$parse(input, options) {
5067
5152
  }
5068
5153
  }
5069
5154
  peg$savedPos = s0;
5070
- s0 = peg$f61(s1, s2);
5155
+ s0 = peg$f62(s1, s2);
5071
5156
  }
5072
5157
  else {
5073
5158
  peg$currPos = s0;
@@ -5085,6 +5170,18 @@ function peg$parse(input, options) {
5085
5170
  else {
5086
5171
  s0 = s1;
5087
5172
  }
5173
+ if (s0 === peg$FAILED) {
5174
+ if (input.substr(peg$currPos, 2) === peg$c49) {
5175
+ s0 = peg$c49;
5176
+ peg$currPos += 2;
5177
+ }
5178
+ else {
5179
+ s0 = peg$FAILED;
5180
+ if (peg$silentFails === 0) {
5181
+ peg$fail(peg$e84);
5182
+ }
5183
+ }
5184
+ }
5088
5185
  return s0;
5089
5186
  }
5090
5187
  function peg$parseLogicalORExpression() {
@@ -5135,7 +5232,7 @@ function peg$parse(input, options) {
5135
5232
  }
5136
5233
  }
5137
5234
  peg$savedPos = s0;
5138
- s0 = peg$f62(s1, s2);
5235
+ s0 = peg$f63(s1, s2);
5139
5236
  }
5140
5237
  else {
5141
5238
  peg$currPos = s0;
@@ -5153,6 +5250,18 @@ function peg$parse(input, options) {
5153
5250
  else {
5154
5251
  s0 = s1;
5155
5252
  }
5253
+ if (s0 === peg$FAILED) {
5254
+ if (input.substr(peg$currPos, 2) === peg$c50) {
5255
+ s0 = peg$c50;
5256
+ peg$currPos += 2;
5257
+ }
5258
+ else {
5259
+ s0 = peg$FAILED;
5260
+ if (peg$silentFails === 0) {
5261
+ peg$fail(peg$e85);
5262
+ }
5263
+ }
5264
+ }
5156
5265
  return s0;
5157
5266
  }
5158
5267
  function peg$parseConditionalExpression() {
@@ -5161,22 +5270,22 @@ function peg$parse(input, options) {
5161
5270
  s1 = peg$parseIfToken();
5162
5271
  if (s1 !== peg$FAILED) {
5163
5272
  s2 = peg$parse__();
5164
- s3 = peg$parsePipeExpression();
5273
+ s3 = peg$parseExpression();
5165
5274
  if (s3 !== peg$FAILED) {
5166
5275
  s4 = peg$parse__();
5167
5276
  s5 = peg$parseThenToken();
5168
5277
  if (s5 !== peg$FAILED) {
5169
5278
  s6 = peg$parse__();
5170
- s7 = peg$parsePipeExpression();
5279
+ s7 = peg$parseExpression();
5171
5280
  if (s7 !== peg$FAILED) {
5172
5281
  s8 = peg$parse__();
5173
5282
  s9 = peg$parseElseToken();
5174
5283
  if (s9 !== peg$FAILED) {
5175
5284
  s10 = peg$parse__();
5176
- s11 = peg$parsePipeExpression();
5285
+ s11 = peg$parseExpression();
5177
5286
  if (s11 !== peg$FAILED) {
5178
5287
  peg$savedPos = s0;
5179
- s0 = peg$f63(s3, s7, s11);
5288
+ s0 = peg$f64(s3, s7, s11);
5180
5289
  }
5181
5290
  else {
5182
5291
  peg$currPos = s0;
@@ -5212,16 +5321,16 @@ function peg$parse(input, options) {
5212
5321
  s1 = peg$parseIfToken();
5213
5322
  if (s1 !== peg$FAILED) {
5214
5323
  s2 = peg$parse__();
5215
- s3 = peg$parsePipeExpression();
5324
+ s3 = peg$parseExpression();
5216
5325
  if (s3 !== peg$FAILED) {
5217
5326
  s4 = peg$parse__();
5218
5327
  s5 = peg$parseThenToken();
5219
5328
  if (s5 !== peg$FAILED) {
5220
5329
  s6 = peg$parse__();
5221
- s7 = peg$parsePipeExpression();
5330
+ s7 = peg$parseExpression();
5222
5331
  if (s7 !== peg$FAILED) {
5223
5332
  peg$savedPos = s0;
5224
- s0 = peg$f64(s3, s7);
5333
+ s0 = peg$f65(s3, s7);
5225
5334
  }
5226
5335
  else {
5227
5336
  peg$currPos = s0;
@@ -5296,7 +5405,7 @@ function peg$parse(input, options) {
5296
5405
  }
5297
5406
  }
5298
5407
  peg$savedPos = s0;
5299
- s0 = peg$f65(s1, s2);
5408
+ s0 = peg$f66(s1, s2);
5300
5409
  }
5301
5410
  else {
5302
5411
  peg$currPos = s0;
@@ -5306,14 +5415,14 @@ function peg$parse(input, options) {
5306
5415
  }
5307
5416
  function peg$parseNullishCoalescingOperator() {
5308
5417
  var s0;
5309
- if (input.substr(peg$currPos, 2) === peg$c48) {
5310
- s0 = peg$c48;
5418
+ if (input.substr(peg$currPos, 2) === peg$c51) {
5419
+ s0 = peg$c51;
5311
5420
  peg$currPos += 2;
5312
5421
  }
5313
5422
  else {
5314
5423
  s0 = peg$FAILED;
5315
5424
  if (peg$silentFails === 0) {
5316
- peg$fail(peg$e83);
5425
+ peg$fail(peg$e86);
5317
5426
  }
5318
5427
  }
5319
5428
  return s0;
@@ -5332,7 +5441,7 @@ function peg$parse(input, options) {
5332
5441
  s7 = peg$parseNullishCoalescingExpression();
5333
5442
  if (s7 !== peg$FAILED) {
5334
5443
  peg$savedPos = s3;
5335
- s3 = peg$f66(s1, s5, s7);
5444
+ s3 = peg$f67(s1, s5, s7);
5336
5445
  }
5337
5446
  else {
5338
5447
  peg$currPos = s3;
@@ -5353,7 +5462,7 @@ function peg$parse(input, options) {
5353
5462
  s7 = peg$parseNullishCoalescingExpression();
5354
5463
  if (s7 !== peg$FAILED) {
5355
5464
  peg$savedPos = s3;
5356
- s3 = peg$f66(s1, s5, s7);
5465
+ s3 = peg$f67(s1, s5, s7);
5357
5466
  }
5358
5467
  else {
5359
5468
  peg$currPos = s3;
@@ -5366,7 +5475,7 @@ function peg$parse(input, options) {
5366
5475
  }
5367
5476
  }
5368
5477
  peg$savedPos = s0;
5369
- s0 = peg$f67(s1, s2);
5478
+ s0 = peg$f68(s1, s2);
5370
5479
  }
5371
5480
  else {
5372
5481
  peg$currPos = s0;
@@ -5376,41 +5485,494 @@ function peg$parse(input, options) {
5376
5485
  }
5377
5486
  function peg$parsePipeOperator() {
5378
5487
  var s0;
5379
- if (input.substr(peg$currPos, 2) === peg$c49) {
5380
- s0 = peg$c49;
5488
+ if (input.substr(peg$currPos, 2) === peg$c52) {
5489
+ s0 = peg$c52;
5381
5490
  peg$currPos += 2;
5382
5491
  }
5383
5492
  else {
5384
5493
  s0 = peg$FAILED;
5385
5494
  if (peg$silentFails === 0) {
5386
- peg$fail(peg$e84);
5495
+ peg$fail(peg$e87);
5387
5496
  }
5388
5497
  }
5389
5498
  if (s0 === peg$FAILED) {
5390
- if (input.charCodeAt(peg$currPos) === 124) {
5391
- s0 = peg$c50;
5392
- peg$currPos++;
5499
+ if (input.substr(peg$currPos, 2) === peg$c53) {
5500
+ s0 = peg$c53;
5501
+ peg$currPos += 2;
5393
5502
  }
5394
5503
  else {
5395
5504
  s0 = peg$FAILED;
5396
5505
  if (peg$silentFails === 0) {
5397
- peg$fail(peg$e85);
5506
+ peg$fail(peg$e88);
5398
5507
  }
5399
5508
  }
5509
+ if (s0 === peg$FAILED) {
5510
+ if (input.charCodeAt(peg$currPos) === 124) {
5511
+ s0 = peg$c54;
5512
+ peg$currPos++;
5513
+ }
5514
+ else {
5515
+ s0 = peg$FAILED;
5516
+ if (peg$silentFails === 0) {
5517
+ peg$fail(peg$e89);
5518
+ }
5519
+ }
5520
+ }
5521
+ }
5522
+ return s0;
5523
+ }
5524
+ function peg$parseTopicReference() {
5525
+ var s0, s1;
5526
+ s0 = peg$currPos;
5527
+ if (input.charCodeAt(peg$currPos) === 37) {
5528
+ s1 = peg$c55;
5529
+ peg$currPos++;
5530
+ }
5531
+ else {
5532
+ s1 = peg$FAILED;
5533
+ if (peg$silentFails === 0) {
5534
+ peg$fail(peg$e90);
5535
+ }
5536
+ }
5537
+ if (s1 !== peg$FAILED) {
5538
+ peg$savedPos = s0;
5539
+ s1 = peg$f69();
5540
+ }
5541
+ s0 = s1;
5542
+ return s0;
5543
+ }
5544
+ function peg$parseLambdaExpression() {
5545
+ var s0, s1, s2, s3, s4, s5, s6, s7, s8;
5546
+ s0 = peg$currPos;
5547
+ if (input.charCodeAt(peg$currPos) === 40) {
5548
+ s1 = peg$c33;
5549
+ peg$currPos++;
5550
+ }
5551
+ else {
5552
+ s1 = peg$FAILED;
5553
+ if (peg$silentFails === 0) {
5554
+ peg$fail(peg$e66);
5555
+ }
5556
+ }
5557
+ if (s1 !== peg$FAILED) {
5558
+ s2 = peg$parse__();
5559
+ s3 = peg$currPos;
5560
+ s4 = peg$parseFormalParameterList();
5561
+ if (s4 !== peg$FAILED) {
5562
+ s5 = peg$parse__();
5563
+ s4 = [s4, s5];
5564
+ s3 = s4;
5565
+ }
5566
+ else {
5567
+ peg$currPos = s3;
5568
+ s3 = peg$FAILED;
5569
+ }
5570
+ if (s3 === peg$FAILED) {
5571
+ s3 = null;
5572
+ }
5573
+ if (input.charCodeAt(peg$currPos) === 41) {
5574
+ s4 = peg$c34;
5575
+ peg$currPos++;
5576
+ }
5577
+ else {
5578
+ s4 = peg$FAILED;
5579
+ if (peg$silentFails === 0) {
5580
+ peg$fail(peg$e67);
5581
+ }
5582
+ }
5583
+ if (s4 !== peg$FAILED) {
5584
+ s5 = peg$parse__();
5585
+ s6 = peg$parseLambdaArrow();
5586
+ if (s6 !== peg$FAILED) {
5587
+ s7 = peg$parse__();
5588
+ s8 = peg$parseExpression();
5589
+ if (s8 !== peg$FAILED) {
5590
+ peg$savedPos = s0;
5591
+ s0 = peg$f70(s3, s8);
5592
+ }
5593
+ else {
5594
+ peg$currPos = s0;
5595
+ s0 = peg$FAILED;
5596
+ }
5597
+ }
5598
+ else {
5599
+ peg$currPos = s0;
5600
+ s0 = peg$FAILED;
5601
+ }
5602
+ }
5603
+ else {
5604
+ peg$currPos = s0;
5605
+ s0 = peg$FAILED;
5606
+ }
5607
+ }
5608
+ else {
5609
+ peg$currPos = s0;
5610
+ s0 = peg$FAILED;
5611
+ }
5612
+ if (s0 === peg$FAILED) {
5613
+ s0 = peg$currPos;
5614
+ s1 = peg$parse__();
5615
+ s2 = peg$parseIdentifier();
5616
+ if (s2 !== peg$FAILED) {
5617
+ s3 = peg$parse__();
5618
+ s4 = peg$parseLambdaArrow();
5619
+ if (s4 !== peg$FAILED) {
5620
+ s5 = peg$parse__();
5621
+ s6 = peg$parseExpression();
5622
+ if (s6 !== peg$FAILED) {
5623
+ peg$savedPos = s0;
5624
+ s0 = peg$f71(s2, s6);
5625
+ }
5626
+ else {
5627
+ peg$currPos = s0;
5628
+ s0 = peg$FAILED;
5629
+ }
5630
+ }
5631
+ else {
5632
+ peg$currPos = s0;
5633
+ s0 = peg$FAILED;
5634
+ }
5635
+ }
5636
+ else {
5637
+ peg$currPos = s0;
5638
+ s0 = peg$FAILED;
5639
+ }
5640
+ }
5641
+ return s0;
5642
+ }
5643
+ function peg$parseLambdaArrow() {
5644
+ var s0;
5645
+ if (input.substr(peg$currPos, 2) === peg$c56) {
5646
+ s0 = peg$c56;
5647
+ peg$currPos += 2;
5648
+ }
5649
+ else {
5650
+ s0 = peg$FAILED;
5651
+ if (peg$silentFails === 0) {
5652
+ peg$fail(peg$e91);
5653
+ }
5654
+ }
5655
+ return s0;
5656
+ }
5657
+ function peg$parseFormalParameterList() {
5658
+ var s0, s1, s2, s3, s4, s5, s6, s7;
5659
+ s0 = peg$currPos;
5660
+ s1 = peg$parseIdentifier();
5661
+ if (s1 !== peg$FAILED) {
5662
+ s2 = [];
5663
+ s3 = peg$currPos;
5664
+ s4 = peg$parse__();
5665
+ if (input.charCodeAt(peg$currPos) === 44) {
5666
+ s5 = peg$c37;
5667
+ peg$currPos++;
5668
+ }
5669
+ else {
5670
+ s5 = peg$FAILED;
5671
+ if (peg$silentFails === 0) {
5672
+ peg$fail(peg$e70);
5673
+ }
5674
+ }
5675
+ if (s5 !== peg$FAILED) {
5676
+ s6 = peg$parse__();
5677
+ s7 = peg$parseIdentifier();
5678
+ if (s7 !== peg$FAILED) {
5679
+ s4 = [s4, s5, s6, s7];
5680
+ s3 = s4;
5681
+ }
5682
+ else {
5683
+ peg$currPos = s3;
5684
+ s3 = peg$FAILED;
5685
+ }
5686
+ }
5687
+ else {
5688
+ peg$currPos = s3;
5689
+ s3 = peg$FAILED;
5690
+ }
5691
+ while (s3 !== peg$FAILED) {
5692
+ s2.push(s3);
5693
+ s3 = peg$currPos;
5694
+ s4 = peg$parse__();
5695
+ if (input.charCodeAt(peg$currPos) === 44) {
5696
+ s5 = peg$c37;
5697
+ peg$currPos++;
5698
+ }
5699
+ else {
5700
+ s5 = peg$FAILED;
5701
+ if (peg$silentFails === 0) {
5702
+ peg$fail(peg$e70);
5703
+ }
5704
+ }
5705
+ if (s5 !== peg$FAILED) {
5706
+ s6 = peg$parse__();
5707
+ s7 = peg$parseIdentifier();
5708
+ if (s7 !== peg$FAILED) {
5709
+ s4 = [s4, s5, s6, s7];
5710
+ s3 = s4;
5711
+ }
5712
+ else {
5713
+ peg$currPos = s3;
5714
+ s3 = peg$FAILED;
5715
+ }
5716
+ }
5717
+ else {
5718
+ peg$currPos = s3;
5719
+ s3 = peg$FAILED;
5720
+ }
5721
+ }
5722
+ peg$savedPos = s0;
5723
+ s0 = peg$f72(s1, s2);
5724
+ }
5725
+ else {
5726
+ peg$currPos = s0;
5727
+ s0 = peg$FAILED;
5728
+ }
5729
+ return s0;
5730
+ }
5731
+ function peg$parseLetExpression() {
5732
+ var s0, s1, s2, s3, s4, s5, s6, s7;
5733
+ s0 = peg$currPos;
5734
+ s1 = peg$parseLetToken();
5735
+ if (s1 !== peg$FAILED) {
5736
+ s2 = peg$parse__();
5737
+ s3 = peg$parseVariableDeclarationList();
5738
+ if (s3 !== peg$FAILED) {
5739
+ s4 = peg$parse__();
5740
+ if (input.charCodeAt(peg$currPos) === 44) {
5741
+ s5 = peg$c37;
5742
+ peg$currPos++;
5743
+ }
5744
+ else {
5745
+ s5 = peg$FAILED;
5746
+ if (peg$silentFails === 0) {
5747
+ peg$fail(peg$e70);
5748
+ }
5749
+ }
5750
+ if (s5 !== peg$FAILED) {
5751
+ s6 = peg$parse__();
5752
+ s7 = peg$parseExpression();
5753
+ if (s7 !== peg$FAILED) {
5754
+ peg$savedPos = s0;
5755
+ s0 = peg$f73(s3, s7);
5756
+ }
5757
+ else {
5758
+ peg$currPos = s0;
5759
+ s0 = peg$FAILED;
5760
+ }
5761
+ }
5762
+ else {
5763
+ peg$currPos = s0;
5764
+ s0 = peg$FAILED;
5765
+ }
5766
+ }
5767
+ else {
5768
+ peg$currPos = s0;
5769
+ s0 = peg$FAILED;
5770
+ }
5771
+ }
5772
+ else {
5773
+ peg$currPos = s0;
5774
+ s0 = peg$FAILED;
5775
+ }
5776
+ return s0;
5777
+ }
5778
+ function peg$parseVariableDeclarationList() {
5779
+ var s0, s1, s2, s3, s4, s5, s6, s7;
5780
+ s0 = peg$currPos;
5781
+ s1 = peg$parseVariableDeclaration();
5782
+ if (s1 !== peg$FAILED) {
5783
+ s2 = [];
5784
+ s3 = peg$currPos;
5785
+ s4 = peg$parse__();
5786
+ if (input.charCodeAt(peg$currPos) === 44) {
5787
+ s5 = peg$c37;
5788
+ peg$currPos++;
5789
+ }
5790
+ else {
5791
+ s5 = peg$FAILED;
5792
+ if (peg$silentFails === 0) {
5793
+ peg$fail(peg$e70);
5794
+ }
5795
+ }
5796
+ if (s5 !== peg$FAILED) {
5797
+ s6 = peg$parse__();
5798
+ s7 = peg$parseVariableDeclaration();
5799
+ if (s7 !== peg$FAILED) {
5800
+ s4 = [s4, s5, s6, s7];
5801
+ s3 = s4;
5802
+ }
5803
+ else {
5804
+ peg$currPos = s3;
5805
+ s3 = peg$FAILED;
5806
+ }
5807
+ }
5808
+ else {
5809
+ peg$currPos = s3;
5810
+ s3 = peg$FAILED;
5811
+ }
5812
+ while (s3 !== peg$FAILED) {
5813
+ s2.push(s3);
5814
+ s3 = peg$currPos;
5815
+ s4 = peg$parse__();
5816
+ if (input.charCodeAt(peg$currPos) === 44) {
5817
+ s5 = peg$c37;
5818
+ peg$currPos++;
5819
+ }
5820
+ else {
5821
+ s5 = peg$FAILED;
5822
+ if (peg$silentFails === 0) {
5823
+ peg$fail(peg$e70);
5824
+ }
5825
+ }
5826
+ if (s5 !== peg$FAILED) {
5827
+ s6 = peg$parse__();
5828
+ s7 = peg$parseVariableDeclaration();
5829
+ if (s7 !== peg$FAILED) {
5830
+ s4 = [s4, s5, s6, s7];
5831
+ s3 = s4;
5832
+ }
5833
+ else {
5834
+ peg$currPos = s3;
5835
+ s3 = peg$FAILED;
5836
+ }
5837
+ }
5838
+ else {
5839
+ peg$currPos = s3;
5840
+ s3 = peg$FAILED;
5841
+ }
5842
+ }
5843
+ peg$savedPos = s0;
5844
+ s0 = peg$f74(s1, s2);
5845
+ }
5846
+ else {
5847
+ peg$currPos = s0;
5848
+ s0 = peg$FAILED;
5849
+ }
5850
+ return s0;
5851
+ }
5852
+ function peg$parseVariableDeclaration() {
5853
+ var s0, s1, s2, s3, s4;
5854
+ s0 = peg$currPos;
5855
+ s1 = peg$parseIdentifier();
5856
+ if (s1 !== peg$FAILED) {
5857
+ s2 = peg$currPos;
5858
+ s3 = peg$parse__();
5859
+ s4 = peg$parseInitialiser();
5860
+ if (s4 !== peg$FAILED) {
5861
+ s3 = [s3, s4];
5862
+ s2 = s3;
5863
+ }
5864
+ else {
5865
+ peg$currPos = s2;
5866
+ s2 = peg$FAILED;
5867
+ }
5868
+ if (s2 !== peg$FAILED) {
5869
+ peg$savedPos = s0;
5870
+ s0 = peg$f75(s1, s2);
5871
+ }
5872
+ else {
5873
+ peg$currPos = s0;
5874
+ s0 = peg$FAILED;
5875
+ }
5876
+ }
5877
+ else {
5878
+ peg$currPos = s0;
5879
+ s0 = peg$FAILED;
5880
+ }
5881
+ return s0;
5882
+ }
5883
+ function peg$parseInitialiser() {
5884
+ var s0, s1, s2, s3;
5885
+ s0 = peg$currPos;
5886
+ s1 = peg$parseEqualOperator();
5887
+ if (s1 !== peg$FAILED) {
5888
+ s2 = peg$parse__();
5889
+ s3 = peg$parseExpression();
5890
+ if (s3 !== peg$FAILED) {
5891
+ peg$savedPos = s0;
5892
+ s0 = peg$f76(s3);
5893
+ }
5894
+ else {
5895
+ peg$currPos = s0;
5896
+ s0 = peg$FAILED;
5897
+ }
5898
+ }
5899
+ else {
5900
+ peg$currPos = s0;
5901
+ s0 = peg$FAILED;
5902
+ }
5903
+ return s0;
5904
+ }
5905
+ function peg$parseEqualOperator() {
5906
+ var s0, s1, s2, s3;
5907
+ s0 = peg$currPos;
5908
+ if (input.charCodeAt(peg$currPos) === 61) {
5909
+ s1 = peg$c57;
5910
+ peg$currPos++;
5911
+ }
5912
+ else {
5913
+ s1 = peg$FAILED;
5914
+ if (peg$silentFails === 0) {
5915
+ peg$fail(peg$e92);
5916
+ }
5917
+ }
5918
+ if (s1 !== peg$FAILED) {
5919
+ s2 = peg$currPos;
5920
+ peg$silentFails++;
5921
+ if (input.charCodeAt(peg$currPos) === 61) {
5922
+ s3 = peg$c57;
5923
+ peg$currPos++;
5924
+ }
5925
+ else {
5926
+ s3 = peg$FAILED;
5927
+ if (peg$silentFails === 0) {
5928
+ peg$fail(peg$e92);
5929
+ }
5930
+ }
5931
+ peg$silentFails--;
5932
+ if (s3 === peg$FAILED) {
5933
+ s2 = undefined;
5934
+ }
5935
+ else {
5936
+ peg$currPos = s2;
5937
+ s2 = peg$FAILED;
5938
+ }
5939
+ if (s2 !== peg$FAILED) {
5940
+ s1 = [s1, s2];
5941
+ s0 = s1;
5942
+ }
5943
+ else {
5944
+ peg$currPos = s0;
5945
+ s0 = peg$FAILED;
5946
+ }
5947
+ }
5948
+ else {
5949
+ peg$currPos = s0;
5950
+ s0 = peg$FAILED;
5951
+ }
5952
+ return s0;
5953
+ }
5954
+ function peg$parseExpression() {
5955
+ var s0;
5956
+ s0 = peg$parseLetExpression();
5957
+ if (s0 === peg$FAILED) {
5958
+ s0 = peg$parseLambdaExpression();
5959
+ if (s0 === peg$FAILED) {
5960
+ s0 = peg$parsePipeExpression();
5961
+ }
5400
5962
  }
5401
5963
  return s0;
5402
5964
  }
5403
5965
  function peg$parseExpressionStatement() {
5404
5966
  var s0, s1, s2;
5405
5967
  s0 = peg$currPos;
5406
- s1 = peg$parsePipeExpression();
5968
+ s1 = peg$parseExpression();
5407
5969
  if (s1 === peg$FAILED) {
5408
5970
  s1 = null;
5409
5971
  }
5410
5972
  s2 = peg$parseEOS();
5411
5973
  if (s2 !== peg$FAILED) {
5412
5974
  peg$savedPos = s0;
5413
- s0 = peg$f68(s1);
5975
+ s0 = peg$f77(s1);
5414
5976
  }
5415
5977
  else {
5416
5978
  peg$currPos = s0;