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.
package/parser/index.js CHANGED
@@ -261,25 +261,32 @@ function peg$parse(input, options) {
261
261
  var peg$c29 = "true";
262
262
  var peg$c30 = "typeof";
263
263
  var peg$c31 = "mod";
264
- var peg$c32 = ";";
265
- var peg$c33 = "}";
266
- var peg$c34 = "(";
267
- var peg$c35 = ")";
268
- var peg$c36 = "[";
269
- var peg$c37 = "]";
270
- var peg$c38 = ",";
271
- var peg$c39 = "{";
264
+ var peg$c32 = "let";
265
+ var peg$c33 = "(";
266
+ var peg$c34 = ")";
267
+ var peg$c35 = "[";
268
+ var peg$c36 = "]";
269
+ var peg$c37 = ",";
270
+ var peg$c38 = "{";
271
+ var peg$c39 = "}";
272
272
  var peg$c40 = ":";
273
273
  var peg$c41 = "::";
274
- var peg$c42 = "^";
275
- var peg$c43 = "&";
276
- var peg$c44 = "<=";
277
- var peg$c45 = ">=";
278
- var peg$c46 = "==";
279
- var peg$c47 = "!=";
280
- var peg$c48 = "??";
281
- var peg$c49 = "|?";
282
- var peg$c50 = "|";
274
+ var peg$c42 = "#";
275
+ var peg$c43 = "^";
276
+ var peg$c44 = "&";
277
+ var peg$c45 = "<=";
278
+ var peg$c46 = ">=";
279
+ var peg$c47 = "==";
280
+ var peg$c48 = "!=";
281
+ var peg$c49 = "&&";
282
+ var peg$c50 = "||";
283
+ var peg$c51 = "??";
284
+ var peg$c52 = "|?";
285
+ var peg$c53 = "|>";
286
+ var peg$c54 = "|";
287
+ var peg$c55 = "%";
288
+ var peg$c56 = "=>";
289
+ var peg$c57 = "=";
283
290
 
284
291
  var peg$r0 = /^[\t\v-\f \xA0\u1680\u2000-\u200A\u202F\u205F\u3000\uFEFF]/;
285
292
  var peg$r1 = /^[\n\r\u2028\u2029]/;
@@ -375,27 +382,34 @@ function peg$parse(input, options) {
375
382
  var peg$e62 = peg$literalExpectation("true", false);
376
383
  var peg$e63 = peg$literalExpectation("typeof", false);
377
384
  var peg$e64 = peg$literalExpectation("mod", false);
378
- var peg$e65 = peg$literalExpectation(";", false);
379
- var peg$e66 = peg$literalExpectation("}", false);
380
- var peg$e67 = peg$literalExpectation("(", false);
381
- var peg$e68 = peg$literalExpectation(")", false);
382
- var peg$e69 = peg$literalExpectation("[", false);
383
- var peg$e70 = peg$literalExpectation("]", false);
384
- var peg$e71 = peg$literalExpectation(",", false);
385
- var peg$e72 = peg$literalExpectation("{", false);
385
+ var peg$e65 = peg$literalExpectation("let", false);
386
+ var peg$e66 = peg$literalExpectation("(", false);
387
+ var peg$e67 = peg$literalExpectation(")", false);
388
+ var peg$e68 = peg$literalExpectation("[", false);
389
+ var peg$e69 = peg$literalExpectation("]", false);
390
+ var peg$e70 = peg$literalExpectation(",", false);
391
+ var peg$e71 = peg$literalExpectation("{", false);
392
+ var peg$e72 = peg$literalExpectation("}", false);
386
393
  var peg$e73 = peg$literalExpectation(":", false);
387
394
  var peg$e74 = peg$literalExpectation("::", false);
388
- var peg$e75 = peg$literalExpectation("^", false);
389
- var peg$e76 = peg$classExpectation(["*", "/"], false, false);
390
- var peg$e77 = peg$literalExpectation("&", false);
391
- var peg$e78 = peg$literalExpectation("<=", false);
392
- var peg$e79 = peg$literalExpectation(">=", false);
393
- var peg$e80 = peg$classExpectation(["<", ">"], false, false);
394
- var peg$e81 = peg$literalExpectation("==", false);
395
- var peg$e82 = peg$literalExpectation("!=", false);
396
- var peg$e83 = peg$literalExpectation("??", false);
397
- var peg$e84 = peg$literalExpectation("|?", false);
398
- var peg$e85 = peg$literalExpectation("|", false);
395
+ var peg$e75 = peg$literalExpectation("#", false);
396
+ var peg$e76 = peg$literalExpectation("^", false);
397
+ var peg$e77 = peg$classExpectation(["*", "/"], false, false);
398
+ var peg$e78 = peg$literalExpectation("&", false);
399
+ var peg$e79 = peg$literalExpectation("<=", false);
400
+ var peg$e80 = peg$literalExpectation(">=", false);
401
+ var peg$e81 = peg$classExpectation(["<", ">"], false, false);
402
+ var peg$e82 = peg$literalExpectation("==", false);
403
+ var peg$e83 = peg$literalExpectation("!=", false);
404
+ var peg$e84 = peg$literalExpectation("&&", false);
405
+ var peg$e85 = peg$literalExpectation("||", false);
406
+ var peg$e86 = peg$literalExpectation("??", false);
407
+ var peg$e87 = peg$literalExpectation("|?", false);
408
+ var peg$e88 = peg$literalExpectation("|>", false);
409
+ var peg$e89 = peg$literalExpectation("|", false);
410
+ var peg$e90 = peg$literalExpectation("%", false);
411
+ var peg$e91 = peg$literalExpectation("=>", false);
412
+ var peg$e92 = peg$literalExpectation("=", false);
399
413
 
400
414
  var peg$f0 = function(statement) { return statement; };
401
415
  var peg$f1 = function(name) { return name; };
@@ -629,8 +643,14 @@ function peg$parse(input, options) {
629
643
  var peg$f53 = function(head, tail) {
630
644
  return buildList(head, tail, 3);
631
645
  };
632
- var peg$f54 = function(head, tail) { return buildBinaryExpression(head, tail, location()); };
633
- var peg$f55 = function(operator, argument) {
646
+ var peg$f54 = function() {
647
+ return {
648
+ type: 'CurryPlaceholder',
649
+ location: getLocation(location())
650
+ }
651
+ };
652
+ var peg$f55 = function(head, tail) { return buildBinaryExpression(head, tail, location()); };
653
+ var peg$f56 = function(operator, argument) {
634
654
  return {
635
655
  type: "UnaryExpression",
636
656
  operator: operator,
@@ -639,14 +659,14 @@ function peg$parse(input, options) {
639
659
  location: getLocation(location())
640
660
  };
641
661
  };
642
- var peg$f56 = function(head, tail) { return buildBinaryExpression(head, tail, location()); };
643
662
  var peg$f57 = function(head, tail) { return buildBinaryExpression(head, tail, location()); };
644
663
  var peg$f58 = function(head, tail) { return buildBinaryExpression(head, tail, location()); };
645
664
  var peg$f59 = function(head, tail) { return buildBinaryExpression(head, tail, location()); };
646
665
  var peg$f60 = function(head, tail) { return buildBinaryExpression(head, tail, location()); };
647
- var peg$f61 = function(head, tail) { return buildLogicalExpression(head, tail, location()); };
666
+ var peg$f61 = function(head, tail) { return buildBinaryExpression(head, tail, location()); };
648
667
  var peg$f62 = function(head, tail) { return buildLogicalExpression(head, tail, location()); };
649
- var peg$f63 = function(test, consequent, alternate) {
668
+ var peg$f63 = function(head, tail) { return buildLogicalExpression(head, tail, location()); };
669
+ var peg$f64 = function(test, consequent, alternate) {
650
670
  return {
651
671
  type: "ConditionalExpression",
652
672
  test: test,
@@ -655,7 +675,7 @@ function peg$parse(input, options) {
655
675
  location: getLocation(location())
656
676
  };
657
677
  };
658
- var peg$f64 = function(test, consequent) {
678
+ var peg$f65 = function(test, consequent) {
659
679
  return {
660
680
  type: "ConditionalExpression",
661
681
  test: test,
@@ -664,19 +684,64 @@ function peg$parse(input, options) {
664
684
  location: getLocation(location())
665
685
  };
666
686
  };
667
- var peg$f65 = function(head, tail) {
687
+ var peg$f66 = function(head, tail) {
668
688
  return buildExpression(
669
689
  "NullishCoalescingExpression",
670
690
  head, tail, getLocation(location())
671
691
  );
672
692
  };
673
- var peg$f66 = function(head, operator, expression) { return { operator, expression } };
674
- var peg$f67 = function(head, tail) {
693
+ var peg$f67 = function(head, operator, expression) { return { operator, expression } };
694
+ var peg$f68 = function(head, tail) {
675
695
  return tail.length > 0
676
696
  ? { type: "PipeSequence", head, tail, location: getLocation(location()) }
677
697
  : head
678
698
  };
679
- var peg$f68 = function(expression) {
699
+ var peg$f69 = function() {
700
+ return {
701
+ type: "TopicReference",
702
+ location: getLocation(location())
703
+ };
704
+ };
705
+ var peg$f70 = function(params, body) {
706
+ return {
707
+ type: "LambdaExpression",
708
+ params: optionalList(extractOptional(params, 0)),
709
+ expression: body,
710
+ location: getLocation(location())
711
+ };
712
+ };
713
+ var peg$f71 = function(param, body) {
714
+ return {
715
+ type: "LambdaExpression",
716
+ params: [param],
717
+ expression: body,
718
+ location: getLocation(location())
719
+ }
720
+ };
721
+ var peg$f72 = function(head, tail) {
722
+ return buildList(head, tail, 3);
723
+ };
724
+ var peg$f73 = function(declarations, body) {
725
+ return {
726
+ type: "LetExpression",
727
+ declarations,
728
+ expression: body,
729
+ location: getLocation(location())
730
+ }
731
+ };
732
+ var peg$f74 = function(head, tail) {
733
+ return buildList(head, tail, 3);
734
+ };
735
+ var peg$f75 = function(id, init) {
736
+ return {
737
+ type: "VariableDeclarator",
738
+ id: id,
739
+ init: extractOptional(init, 1),
740
+ location: getLocation(location())
741
+ };
742
+ };
743
+ var peg$f76 = function(expression) { return expression; };
744
+ var peg$f77 = function(expression) {
680
745
  return {
681
746
  type: "ExpressionStatement",
682
747
  expression: expression
@@ -1416,6 +1481,9 @@ function peg$parse(input, options) {
1416
1481
  s0 = peg$parseThenToken();
1417
1482
  if (s0 === peg$FAILED) {
1418
1483
  s0 = peg$parseTypeofToken();
1484
+ if (s0 === peg$FAILED) {
1485
+ s0 = peg$parseLetToken();
1486
+ }
1419
1487
  }
1420
1488
  }
1421
1489
  }
@@ -2980,6 +3048,43 @@ function peg$parse(input, options) {
2980
3048
  return s0;
2981
3049
  }
2982
3050
 
3051
+ function peg$parseLetToken() {
3052
+ var s0, s1, s2, s3;
3053
+
3054
+ s0 = peg$currPos;
3055
+ if (input.substr(peg$currPos, 3) === peg$c32) {
3056
+ s1 = peg$c32;
3057
+ peg$currPos += 3;
3058
+ } else {
3059
+ s1 = peg$FAILED;
3060
+ if (peg$silentFails === 0) { peg$fail(peg$e65); }
3061
+ }
3062
+ if (s1 !== peg$FAILED) {
3063
+ s2 = peg$currPos;
3064
+ peg$silentFails++;
3065
+ s3 = peg$parseIdentifierPart();
3066
+ peg$silentFails--;
3067
+ if (s3 === peg$FAILED) {
3068
+ s2 = undefined;
3069
+ } else {
3070
+ peg$currPos = s2;
3071
+ s2 = peg$FAILED;
3072
+ }
3073
+ if (s2 !== peg$FAILED) {
3074
+ s1 = [s1, s2];
3075
+ s0 = s1;
3076
+ } else {
3077
+ peg$currPos = s0;
3078
+ s0 = peg$FAILED;
3079
+ }
3080
+ } else {
3081
+ peg$currPos = s0;
3082
+ s0 = peg$FAILED;
3083
+ }
3084
+
3085
+ return s0;
3086
+ }
3087
+
2983
3088
  function peg$parse__() {
2984
3089
  var s0, s1;
2985
3090
 
@@ -3028,16 +3133,14 @@ function peg$parse(input, options) {
3028
3133
  var s0, s1, s2, s3;
3029
3134
 
3030
3135
  s0 = peg$currPos;
3031
- s1 = peg$parse__();
3032
- if (input.charCodeAt(peg$currPos) === 59) {
3033
- s2 = peg$c32;
3034
- peg$currPos++;
3035
- } else {
3036
- s2 = peg$FAILED;
3037
- if (peg$silentFails === 0) { peg$fail(peg$e65); }
3136
+ s1 = peg$parse_();
3137
+ s2 = peg$parseSingleLineComment();
3138
+ if (s2 === peg$FAILED) {
3139
+ s2 = null;
3038
3140
  }
3039
- if (s2 !== peg$FAILED) {
3040
- s1 = [s1, s2];
3141
+ s3 = peg$parseLineTerminatorSequence();
3142
+ if (s3 !== peg$FAILED) {
3143
+ s1 = [s1, s2, s3];
3041
3144
  s0 = s1;
3042
3145
  } else {
3043
3146
  peg$currPos = s0;
@@ -3045,58 +3148,15 @@ function peg$parse(input, options) {
3045
3148
  }
3046
3149
  if (s0 === peg$FAILED) {
3047
3150
  s0 = peg$currPos;
3048
- s1 = peg$parse_();
3049
- s2 = peg$parseSingleLineComment();
3050
- if (s2 === peg$FAILED) {
3051
- s2 = null;
3052
- }
3053
- s3 = peg$parseLineTerminatorSequence();
3054
- if (s3 !== peg$FAILED) {
3055
- s1 = [s1, s2, s3];
3151
+ s1 = peg$parse__();
3152
+ s2 = peg$parseEOF();
3153
+ if (s2 !== peg$FAILED) {
3154
+ s1 = [s1, s2];
3056
3155
  s0 = s1;
3057
3156
  } else {
3058
3157
  peg$currPos = s0;
3059
3158
  s0 = peg$FAILED;
3060
3159
  }
3061
- if (s0 === peg$FAILED) {
3062
- s0 = peg$currPos;
3063
- s1 = peg$parse_();
3064
- s2 = peg$currPos;
3065
- peg$silentFails++;
3066
- if (input.charCodeAt(peg$currPos) === 125) {
3067
- s3 = peg$c33;
3068
- peg$currPos++;
3069
- } else {
3070
- s3 = peg$FAILED;
3071
- if (peg$silentFails === 0) { peg$fail(peg$e66); }
3072
- }
3073
- peg$silentFails--;
3074
- if (s3 !== peg$FAILED) {
3075
- peg$currPos = s2;
3076
- s2 = undefined;
3077
- } else {
3078
- s2 = peg$FAILED;
3079
- }
3080
- if (s2 !== peg$FAILED) {
3081
- s1 = [s1, s2];
3082
- s0 = s1;
3083
- } else {
3084
- peg$currPos = s0;
3085
- s0 = peg$FAILED;
3086
- }
3087
- if (s0 === peg$FAILED) {
3088
- s0 = peg$currPos;
3089
- s1 = peg$parse__();
3090
- s2 = peg$parseEOF();
3091
- if (s2 !== peg$FAILED) {
3092
- s1 = [s1, s2];
3093
- s0 = s1;
3094
- } else {
3095
- peg$currPos = s0;
3096
- s0 = peg$FAILED;
3097
- }
3098
- }
3099
- }
3100
3160
  }
3101
3161
 
3102
3162
  return s0;
@@ -3132,33 +3192,39 @@ function peg$parse(input, options) {
3132
3192
  if (s0 === peg$FAILED) {
3133
3193
  s0 = peg$parseLiteral();
3134
3194
  if (s0 === peg$FAILED) {
3135
- s0 = peg$parseArrayLiteral();
3195
+ s0 = peg$parseTopicReference();
3136
3196
  if (s0 === peg$FAILED) {
3137
- s0 = peg$parseObjectLiteral();
3197
+ s0 = peg$parseArrayLiteral();
3138
3198
  if (s0 === peg$FAILED) {
3139
- s0 = peg$currPos;
3140
- if (input.charCodeAt(peg$currPos) === 40) {
3141
- s1 = peg$c34;
3142
- peg$currPos++;
3143
- } else {
3144
- s1 = peg$FAILED;
3145
- if (peg$silentFails === 0) { peg$fail(peg$e67); }
3146
- }
3147
- if (s1 !== peg$FAILED) {
3148
- s2 = peg$parse__();
3149
- s3 = peg$parsePipeExpression();
3150
- if (s3 !== peg$FAILED) {
3151
- s4 = peg$parse__();
3152
- if (input.charCodeAt(peg$currPos) === 41) {
3153
- s5 = peg$c35;
3154
- peg$currPos++;
3155
- } else {
3156
- s5 = peg$FAILED;
3157
- if (peg$silentFails === 0) { peg$fail(peg$e68); }
3158
- }
3159
- if (s5 !== peg$FAILED) {
3160
- peg$savedPos = s0;
3161
- s0 = peg$f30(s3);
3199
+ s0 = peg$parseObjectLiteral();
3200
+ if (s0 === peg$FAILED) {
3201
+ s0 = peg$currPos;
3202
+ if (input.charCodeAt(peg$currPos) === 40) {
3203
+ s1 = peg$c33;
3204
+ peg$currPos++;
3205
+ } else {
3206
+ s1 = peg$FAILED;
3207
+ if (peg$silentFails === 0) { peg$fail(peg$e66); }
3208
+ }
3209
+ if (s1 !== peg$FAILED) {
3210
+ s2 = peg$parse__();
3211
+ s3 = peg$parseExpression();
3212
+ if (s3 !== peg$FAILED) {
3213
+ s4 = peg$parse__();
3214
+ if (input.charCodeAt(peg$currPos) === 41) {
3215
+ s5 = peg$c34;
3216
+ peg$currPos++;
3217
+ } else {
3218
+ s5 = peg$FAILED;
3219
+ if (peg$silentFails === 0) { peg$fail(peg$e67); }
3220
+ }
3221
+ if (s5 !== peg$FAILED) {
3222
+ peg$savedPos = s0;
3223
+ s0 = peg$f30(s3);
3224
+ } else {
3225
+ peg$currPos = s0;
3226
+ s0 = peg$FAILED;
3227
+ }
3162
3228
  } else {
3163
3229
  peg$currPos = s0;
3164
3230
  s0 = peg$FAILED;
@@ -3167,9 +3233,6 @@ function peg$parse(input, options) {
3167
3233
  peg$currPos = s0;
3168
3234
  s0 = peg$FAILED;
3169
3235
  }
3170
- } else {
3171
- peg$currPos = s0;
3172
- s0 = peg$FAILED;
3173
3236
  }
3174
3237
  }
3175
3238
  }
@@ -3184,11 +3247,11 @@ function peg$parse(input, options) {
3184
3247
 
3185
3248
  s0 = peg$currPos;
3186
3249
  if (input.charCodeAt(peg$currPos) === 91) {
3187
- s1 = peg$c36;
3250
+ s1 = peg$c35;
3188
3251
  peg$currPos++;
3189
3252
  } else {
3190
3253
  s1 = peg$FAILED;
3191
- if (peg$silentFails === 0) { peg$fail(peg$e69); }
3254
+ if (peg$silentFails === 0) { peg$fail(peg$e68); }
3192
3255
  }
3193
3256
  if (s1 !== peg$FAILED) {
3194
3257
  s2 = peg$parse__();
@@ -3206,11 +3269,11 @@ function peg$parse(input, options) {
3206
3269
  s3 = null;
3207
3270
  }
3208
3271
  if (input.charCodeAt(peg$currPos) === 93) {
3209
- s4 = peg$c37;
3272
+ s4 = peg$c36;
3210
3273
  peg$currPos++;
3211
3274
  } else {
3212
3275
  s4 = peg$FAILED;
3213
- if (peg$silentFails === 0) { peg$fail(peg$e70); }
3276
+ if (peg$silentFails === 0) { peg$fail(peg$e69); }
3214
3277
  }
3215
3278
  if (s4 !== peg$FAILED) {
3216
3279
  peg$savedPos = s0;
@@ -3226,11 +3289,11 @@ function peg$parse(input, options) {
3226
3289
  if (s0 === peg$FAILED) {
3227
3290
  s0 = peg$currPos;
3228
3291
  if (input.charCodeAt(peg$currPos) === 91) {
3229
- s1 = peg$c36;
3292
+ s1 = peg$c35;
3230
3293
  peg$currPos++;
3231
3294
  } else {
3232
3295
  s1 = peg$FAILED;
3233
- if (peg$silentFails === 0) { peg$fail(peg$e69); }
3296
+ if (peg$silentFails === 0) { peg$fail(peg$e68); }
3234
3297
  }
3235
3298
  if (s1 !== peg$FAILED) {
3236
3299
  s2 = peg$parse__();
@@ -3238,11 +3301,11 @@ function peg$parse(input, options) {
3238
3301
  if (s3 !== peg$FAILED) {
3239
3302
  s4 = peg$parse__();
3240
3303
  if (input.charCodeAt(peg$currPos) === 93) {
3241
- s5 = peg$c37;
3304
+ s5 = peg$c36;
3242
3305
  peg$currPos++;
3243
3306
  } else {
3244
3307
  s5 = peg$FAILED;
3245
- if (peg$silentFails === 0) { peg$fail(peg$e70); }
3308
+ if (peg$silentFails === 0) { peg$fail(peg$e69); }
3246
3309
  }
3247
3310
  if (s5 !== peg$FAILED) {
3248
3311
  peg$savedPos = s0;
@@ -3262,11 +3325,11 @@ function peg$parse(input, options) {
3262
3325
  if (s0 === peg$FAILED) {
3263
3326
  s0 = peg$currPos;
3264
3327
  if (input.charCodeAt(peg$currPos) === 91) {
3265
- s1 = peg$c36;
3328
+ s1 = peg$c35;
3266
3329
  peg$currPos++;
3267
3330
  } else {
3268
3331
  s1 = peg$FAILED;
3269
- if (peg$silentFails === 0) { peg$fail(peg$e69); }
3332
+ if (peg$silentFails === 0) { peg$fail(peg$e68); }
3270
3333
  }
3271
3334
  if (s1 !== peg$FAILED) {
3272
3335
  s2 = peg$parse__();
@@ -3274,11 +3337,11 @@ function peg$parse(input, options) {
3274
3337
  if (s3 !== peg$FAILED) {
3275
3338
  s4 = peg$parse__();
3276
3339
  if (input.charCodeAt(peg$currPos) === 44) {
3277
- s5 = peg$c38;
3340
+ s5 = peg$c37;
3278
3341
  peg$currPos++;
3279
3342
  } else {
3280
3343
  s5 = peg$FAILED;
3281
- if (peg$silentFails === 0) { peg$fail(peg$e71); }
3344
+ if (peg$silentFails === 0) { peg$fail(peg$e70); }
3282
3345
  }
3283
3346
  if (s5 !== peg$FAILED) {
3284
3347
  s6 = peg$parse__();
@@ -3296,11 +3359,11 @@ function peg$parse(input, options) {
3296
3359
  s7 = null;
3297
3360
  }
3298
3361
  if (input.charCodeAt(peg$currPos) === 93) {
3299
- s8 = peg$c37;
3362
+ s8 = peg$c36;
3300
3363
  peg$currPos++;
3301
3364
  } else {
3302
3365
  s8 = peg$FAILED;
3303
- if (peg$silentFails === 0) { peg$fail(peg$e70); }
3366
+ if (peg$silentFails === 0) { peg$fail(peg$e69); }
3304
3367
  }
3305
3368
  if (s8 !== peg$FAILED) {
3306
3369
  peg$savedPos = s0;
@@ -3345,7 +3408,7 @@ function peg$parse(input, options) {
3345
3408
  if (s2 === peg$FAILED) {
3346
3409
  s2 = null;
3347
3410
  }
3348
- s3 = peg$parsePipeExpression();
3411
+ s3 = peg$parseExpression();
3349
3412
  if (s3 !== peg$FAILED) {
3350
3413
  peg$savedPos = s1;
3351
3414
  s1 = peg$f34(s2, s3);
@@ -3358,11 +3421,11 @@ function peg$parse(input, options) {
3358
3421
  s3 = peg$currPos;
3359
3422
  s4 = peg$parse__();
3360
3423
  if (input.charCodeAt(peg$currPos) === 44) {
3361
- s5 = peg$c38;
3424
+ s5 = peg$c37;
3362
3425
  peg$currPos++;
3363
3426
  } else {
3364
3427
  s5 = peg$FAILED;
3365
- if (peg$silentFails === 0) { peg$fail(peg$e71); }
3428
+ if (peg$silentFails === 0) { peg$fail(peg$e70); }
3366
3429
  }
3367
3430
  if (s5 !== peg$FAILED) {
3368
3431
  s6 = peg$parse__();
@@ -3379,7 +3442,7 @@ function peg$parse(input, options) {
3379
3442
  if (s7 === peg$FAILED) {
3380
3443
  s7 = null;
3381
3444
  }
3382
- s8 = peg$parsePipeExpression();
3445
+ s8 = peg$parseExpression();
3383
3446
  if (s8 !== peg$FAILED) {
3384
3447
  peg$savedPos = s3;
3385
3448
  s3 = peg$f35(s1, s7, s8);
@@ -3396,11 +3459,11 @@ function peg$parse(input, options) {
3396
3459
  s3 = peg$currPos;
3397
3460
  s4 = peg$parse__();
3398
3461
  if (input.charCodeAt(peg$currPos) === 44) {
3399
- s5 = peg$c38;
3462
+ s5 = peg$c37;
3400
3463
  peg$currPos++;
3401
3464
  } else {
3402
3465
  s5 = peg$FAILED;
3403
- if (peg$silentFails === 0) { peg$fail(peg$e71); }
3466
+ if (peg$silentFails === 0) { peg$fail(peg$e70); }
3404
3467
  }
3405
3468
  if (s5 !== peg$FAILED) {
3406
3469
  s6 = peg$parse__();
@@ -3417,7 +3480,7 @@ function peg$parse(input, options) {
3417
3480
  if (s7 === peg$FAILED) {
3418
3481
  s7 = null;
3419
3482
  }
3420
- s8 = peg$parsePipeExpression();
3483
+ s8 = peg$parseExpression();
3421
3484
  if (s8 !== peg$FAILED) {
3422
3485
  peg$savedPos = s3;
3423
3486
  s3 = peg$f35(s1, s7, s8);
@@ -3445,22 +3508,22 @@ function peg$parse(input, options) {
3445
3508
 
3446
3509
  s0 = peg$currPos;
3447
3510
  if (input.charCodeAt(peg$currPos) === 44) {
3448
- s1 = peg$c38;
3511
+ s1 = peg$c37;
3449
3512
  peg$currPos++;
3450
3513
  } else {
3451
3514
  s1 = peg$FAILED;
3452
- if (peg$silentFails === 0) { peg$fail(peg$e71); }
3515
+ if (peg$silentFails === 0) { peg$fail(peg$e70); }
3453
3516
  }
3454
3517
  if (s1 !== peg$FAILED) {
3455
3518
  s2 = [];
3456
3519
  s3 = peg$currPos;
3457
3520
  s4 = peg$parse__();
3458
3521
  if (input.charCodeAt(peg$currPos) === 44) {
3459
- s5 = peg$c38;
3522
+ s5 = peg$c37;
3460
3523
  peg$currPos++;
3461
3524
  } else {
3462
3525
  s5 = peg$FAILED;
3463
- if (peg$silentFails === 0) { peg$fail(peg$e71); }
3526
+ if (peg$silentFails === 0) { peg$fail(peg$e70); }
3464
3527
  }
3465
3528
  if (s5 !== peg$FAILED) {
3466
3529
  s4 = [s4, s5];
@@ -3474,11 +3537,11 @@ function peg$parse(input, options) {
3474
3537
  s3 = peg$currPos;
3475
3538
  s4 = peg$parse__();
3476
3539
  if (input.charCodeAt(peg$currPos) === 44) {
3477
- s5 = peg$c38;
3540
+ s5 = peg$c37;
3478
3541
  peg$currPos++;
3479
3542
  } else {
3480
3543
  s5 = peg$FAILED;
3481
- if (peg$silentFails === 0) { peg$fail(peg$e71); }
3544
+ if (peg$silentFails === 0) { peg$fail(peg$e70); }
3482
3545
  }
3483
3546
  if (s5 !== peg$FAILED) {
3484
3547
  s4 = [s4, s5];
@@ -3503,20 +3566,20 @@ function peg$parse(input, options) {
3503
3566
 
3504
3567
  s0 = peg$currPos;
3505
3568
  if (input.charCodeAt(peg$currPos) === 123) {
3506
- s1 = peg$c39;
3569
+ s1 = peg$c38;
3507
3570
  peg$currPos++;
3508
3571
  } else {
3509
3572
  s1 = peg$FAILED;
3510
- if (peg$silentFails === 0) { peg$fail(peg$e72); }
3573
+ if (peg$silentFails === 0) { peg$fail(peg$e71); }
3511
3574
  }
3512
3575
  if (s1 !== peg$FAILED) {
3513
3576
  s2 = peg$parse__();
3514
3577
  if (input.charCodeAt(peg$currPos) === 125) {
3515
- s3 = peg$c33;
3578
+ s3 = peg$c39;
3516
3579
  peg$currPos++;
3517
3580
  } else {
3518
3581
  s3 = peg$FAILED;
3519
- if (peg$silentFails === 0) { peg$fail(peg$e66); }
3582
+ if (peg$silentFails === 0) { peg$fail(peg$e72); }
3520
3583
  }
3521
3584
  if (s3 !== peg$FAILED) {
3522
3585
  peg$savedPos = s0;
@@ -3532,11 +3595,11 @@ function peg$parse(input, options) {
3532
3595
  if (s0 === peg$FAILED) {
3533
3596
  s0 = peg$currPos;
3534
3597
  if (input.charCodeAt(peg$currPos) === 123) {
3535
- s1 = peg$c39;
3598
+ s1 = peg$c38;
3536
3599
  peg$currPos++;
3537
3600
  } else {
3538
3601
  s1 = peg$FAILED;
3539
- if (peg$silentFails === 0) { peg$fail(peg$e72); }
3602
+ if (peg$silentFails === 0) { peg$fail(peg$e71); }
3540
3603
  }
3541
3604
  if (s1 !== peg$FAILED) {
3542
3605
  s2 = peg$parse__();
@@ -3544,11 +3607,11 @@ function peg$parse(input, options) {
3544
3607
  if (s3 !== peg$FAILED) {
3545
3608
  s4 = peg$parse__();
3546
3609
  if (input.charCodeAt(peg$currPos) === 125) {
3547
- s5 = peg$c33;
3610
+ s5 = peg$c39;
3548
3611
  peg$currPos++;
3549
3612
  } else {
3550
3613
  s5 = peg$FAILED;
3551
- if (peg$silentFails === 0) { peg$fail(peg$e66); }
3614
+ if (peg$silentFails === 0) { peg$fail(peg$e72); }
3552
3615
  }
3553
3616
  if (s5 !== peg$FAILED) {
3554
3617
  peg$savedPos = s0;
@@ -3568,11 +3631,11 @@ function peg$parse(input, options) {
3568
3631
  if (s0 === peg$FAILED) {
3569
3632
  s0 = peg$currPos;
3570
3633
  if (input.charCodeAt(peg$currPos) === 123) {
3571
- s1 = peg$c39;
3634
+ s1 = peg$c38;
3572
3635
  peg$currPos++;
3573
3636
  } else {
3574
3637
  s1 = peg$FAILED;
3575
- if (peg$silentFails === 0) { peg$fail(peg$e72); }
3638
+ if (peg$silentFails === 0) { peg$fail(peg$e71); }
3576
3639
  }
3577
3640
  if (s1 !== peg$FAILED) {
3578
3641
  s2 = peg$parse__();
@@ -3580,20 +3643,20 @@ function peg$parse(input, options) {
3580
3643
  if (s3 !== peg$FAILED) {
3581
3644
  s4 = peg$parse__();
3582
3645
  if (input.charCodeAt(peg$currPos) === 44) {
3583
- s5 = peg$c38;
3646
+ s5 = peg$c37;
3584
3647
  peg$currPos++;
3585
3648
  } else {
3586
3649
  s5 = peg$FAILED;
3587
- if (peg$silentFails === 0) { peg$fail(peg$e71); }
3650
+ if (peg$silentFails === 0) { peg$fail(peg$e70); }
3588
3651
  }
3589
3652
  if (s5 !== peg$FAILED) {
3590
3653
  s6 = peg$parse__();
3591
3654
  if (input.charCodeAt(peg$currPos) === 125) {
3592
- s7 = peg$c33;
3655
+ s7 = peg$c39;
3593
3656
  peg$currPos++;
3594
3657
  } else {
3595
3658
  s7 = peg$FAILED;
3596
- if (peg$silentFails === 0) { peg$fail(peg$e66); }
3659
+ if (peg$silentFails === 0) { peg$fail(peg$e72); }
3597
3660
  }
3598
3661
  if (s7 !== peg$FAILED) {
3599
3662
  peg$savedPos = s0;
@@ -3630,11 +3693,11 @@ function peg$parse(input, options) {
3630
3693
  s3 = peg$currPos;
3631
3694
  s4 = peg$parse__();
3632
3695
  if (input.charCodeAt(peg$currPos) === 44) {
3633
- s5 = peg$c38;
3696
+ s5 = peg$c37;
3634
3697
  peg$currPos++;
3635
3698
  } else {
3636
3699
  s5 = peg$FAILED;
3637
- if (peg$silentFails === 0) { peg$fail(peg$e71); }
3700
+ if (peg$silentFails === 0) { peg$fail(peg$e70); }
3638
3701
  }
3639
3702
  if (s5 !== peg$FAILED) {
3640
3703
  s6 = peg$parse__();
@@ -3655,11 +3718,11 @@ function peg$parse(input, options) {
3655
3718
  s3 = peg$currPos;
3656
3719
  s4 = peg$parse__();
3657
3720
  if (input.charCodeAt(peg$currPos) === 44) {
3658
- s5 = peg$c38;
3721
+ s5 = peg$c37;
3659
3722
  peg$currPos++;
3660
3723
  } else {
3661
3724
  s5 = peg$FAILED;
3662
- if (peg$silentFails === 0) { peg$fail(peg$e71); }
3725
+ if (peg$silentFails === 0) { peg$fail(peg$e70); }
3663
3726
  }
3664
3727
  if (s5 !== peg$FAILED) {
3665
3728
  s6 = peg$parse__();
@@ -3702,7 +3765,7 @@ function peg$parse(input, options) {
3702
3765
  }
3703
3766
  if (s3 !== peg$FAILED) {
3704
3767
  s4 = peg$parse__();
3705
- s5 = peg$parsePipeExpression();
3768
+ s5 = peg$parseExpression();
3706
3769
  if (s5 !== peg$FAILED) {
3707
3770
  peg$savedPos = s0;
3708
3771
  s0 = peg$f42(s1, s5);
@@ -3746,23 +3809,23 @@ function peg$parse(input, options) {
3746
3809
  s3 = peg$currPos;
3747
3810
  s4 = peg$parse__();
3748
3811
  if (input.charCodeAt(peg$currPos) === 91) {
3749
- s5 = peg$c36;
3812
+ s5 = peg$c35;
3750
3813
  peg$currPos++;
3751
3814
  } else {
3752
3815
  s5 = peg$FAILED;
3753
- if (peg$silentFails === 0) { peg$fail(peg$e69); }
3816
+ if (peg$silentFails === 0) { peg$fail(peg$e68); }
3754
3817
  }
3755
3818
  if (s5 !== peg$FAILED) {
3756
3819
  s6 = peg$parse__();
3757
- s7 = peg$parsePipeExpression();
3820
+ s7 = peg$parseExpression();
3758
3821
  if (s7 !== peg$FAILED) {
3759
3822
  s8 = peg$parse__();
3760
3823
  if (input.charCodeAt(peg$currPos) === 93) {
3761
- s9 = peg$c37;
3824
+ s9 = peg$c36;
3762
3825
  peg$currPos++;
3763
3826
  } else {
3764
3827
  s9 = peg$FAILED;
3765
- if (peg$silentFails === 0) { peg$fail(peg$e70); }
3828
+ if (peg$silentFails === 0) { peg$fail(peg$e69); }
3766
3829
  }
3767
3830
  if (s9 !== peg$FAILED) {
3768
3831
  peg$savedPos = s3;
@@ -3834,23 +3897,23 @@ function peg$parse(input, options) {
3834
3897
  s3 = peg$currPos;
3835
3898
  s4 = peg$parse__();
3836
3899
  if (input.charCodeAt(peg$currPos) === 91) {
3837
- s5 = peg$c36;
3900
+ s5 = peg$c35;
3838
3901
  peg$currPos++;
3839
3902
  } else {
3840
3903
  s5 = peg$FAILED;
3841
- if (peg$silentFails === 0) { peg$fail(peg$e69); }
3904
+ if (peg$silentFails === 0) { peg$fail(peg$e68); }
3842
3905
  }
3843
3906
  if (s5 !== peg$FAILED) {
3844
3907
  s6 = peg$parse__();
3845
- s7 = peg$parsePipeExpression();
3908
+ s7 = peg$parseExpression();
3846
3909
  if (s7 !== peg$FAILED) {
3847
3910
  s8 = peg$parse__();
3848
3911
  if (input.charCodeAt(peg$currPos) === 93) {
3849
- s9 = peg$c37;
3912
+ s9 = peg$c36;
3850
3913
  peg$currPos++;
3851
3914
  } else {
3852
3915
  s9 = peg$FAILED;
3853
- if (peg$silentFails === 0) { peg$fail(peg$e70); }
3916
+ if (peg$silentFails === 0) { peg$fail(peg$e69); }
3854
3917
  }
3855
3918
  if (s9 !== peg$FAILED) {
3856
3919
  peg$savedPos = s3;
@@ -3964,23 +4027,23 @@ function peg$parse(input, options) {
3964
4027
  s3 = peg$currPos;
3965
4028
  s4 = peg$parse__();
3966
4029
  if (input.charCodeAt(peg$currPos) === 91) {
3967
- s5 = peg$c36;
4030
+ s5 = peg$c35;
3968
4031
  peg$currPos++;
3969
4032
  } else {
3970
4033
  s5 = peg$FAILED;
3971
- if (peg$silentFails === 0) { peg$fail(peg$e69); }
4034
+ if (peg$silentFails === 0) { peg$fail(peg$e68); }
3972
4035
  }
3973
4036
  if (s5 !== peg$FAILED) {
3974
4037
  s6 = peg$parse__();
3975
- s7 = peg$parsePipeExpression();
4038
+ s7 = peg$parseExpression();
3976
4039
  if (s7 !== peg$FAILED) {
3977
4040
  s8 = peg$parse__();
3978
4041
  if (input.charCodeAt(peg$currPos) === 93) {
3979
- s9 = peg$c37;
4042
+ s9 = peg$c36;
3980
4043
  peg$currPos++;
3981
4044
  } else {
3982
4045
  s9 = peg$FAILED;
3983
- if (peg$silentFails === 0) { peg$fail(peg$e70); }
4046
+ if (peg$silentFails === 0) { peg$fail(peg$e69); }
3984
4047
  }
3985
4048
  if (s9 !== peg$FAILED) {
3986
4049
  peg$savedPos = s3;
@@ -4039,23 +4102,23 @@ function peg$parse(input, options) {
4039
4102
  s3 = peg$currPos;
4040
4103
  s4 = peg$parse__();
4041
4104
  if (input.charCodeAt(peg$currPos) === 91) {
4042
- s5 = peg$c36;
4105
+ s5 = peg$c35;
4043
4106
  peg$currPos++;
4044
4107
  } else {
4045
4108
  s5 = peg$FAILED;
4046
- if (peg$silentFails === 0) { peg$fail(peg$e69); }
4109
+ if (peg$silentFails === 0) { peg$fail(peg$e68); }
4047
4110
  }
4048
4111
  if (s5 !== peg$FAILED) {
4049
4112
  s6 = peg$parse__();
4050
- s7 = peg$parsePipeExpression();
4113
+ s7 = peg$parseExpression();
4051
4114
  if (s7 !== peg$FAILED) {
4052
4115
  s8 = peg$parse__();
4053
4116
  if (input.charCodeAt(peg$currPos) === 93) {
4054
- s9 = peg$c37;
4117
+ s9 = peg$c36;
4055
4118
  peg$currPos++;
4056
4119
  } else {
4057
4120
  s9 = peg$FAILED;
4058
- if (peg$silentFails === 0) { peg$fail(peg$e70); }
4121
+ if (peg$silentFails === 0) { peg$fail(peg$e69); }
4059
4122
  }
4060
4123
  if (s9 !== peg$FAILED) {
4061
4124
  peg$savedPos = s3;
@@ -4114,11 +4177,11 @@ function peg$parse(input, options) {
4114
4177
 
4115
4178
  s0 = peg$currPos;
4116
4179
  if (input.charCodeAt(peg$currPos) === 40) {
4117
- s1 = peg$c34;
4180
+ s1 = peg$c33;
4118
4181
  peg$currPos++;
4119
4182
  } else {
4120
4183
  s1 = peg$FAILED;
4121
- if (peg$silentFails === 0) { peg$fail(peg$e67); }
4184
+ if (peg$silentFails === 0) { peg$fail(peg$e66); }
4122
4185
  }
4123
4186
  if (s1 !== peg$FAILED) {
4124
4187
  s2 = peg$parse__();
@@ -4136,11 +4199,11 @@ function peg$parse(input, options) {
4136
4199
  s3 = null;
4137
4200
  }
4138
4201
  if (input.charCodeAt(peg$currPos) === 41) {
4139
- s4 = peg$c35;
4202
+ s4 = peg$c34;
4140
4203
  peg$currPos++;
4141
4204
  } else {
4142
4205
  s4 = peg$FAILED;
4143
- if (peg$silentFails === 0) { peg$fail(peg$e68); }
4206
+ if (peg$silentFails === 0) { peg$fail(peg$e67); }
4144
4207
  }
4145
4208
  if (s4 !== peg$FAILED) {
4146
4209
  peg$savedPos = s0;
@@ -4161,21 +4224,21 @@ function peg$parse(input, options) {
4161
4224
  var s0, s1, s2, s3, s4, s5, s6, s7;
4162
4225
 
4163
4226
  s0 = peg$currPos;
4164
- s1 = peg$parsePipeExpression();
4227
+ s1 = peg$parseCallArgument();
4165
4228
  if (s1 !== peg$FAILED) {
4166
4229
  s2 = [];
4167
4230
  s3 = peg$currPos;
4168
4231
  s4 = peg$parse__();
4169
4232
  if (input.charCodeAt(peg$currPos) === 44) {
4170
- s5 = peg$c38;
4233
+ s5 = peg$c37;
4171
4234
  peg$currPos++;
4172
4235
  } else {
4173
4236
  s5 = peg$FAILED;
4174
- if (peg$silentFails === 0) { peg$fail(peg$e71); }
4237
+ if (peg$silentFails === 0) { peg$fail(peg$e70); }
4175
4238
  }
4176
4239
  if (s5 !== peg$FAILED) {
4177
4240
  s6 = peg$parse__();
4178
- s7 = peg$parsePipeExpression();
4241
+ s7 = peg$parseCallArgument();
4179
4242
  if (s7 !== peg$FAILED) {
4180
4243
  s4 = [s4, s5, s6, s7];
4181
4244
  s3 = s4;
@@ -4192,15 +4255,15 @@ function peg$parse(input, options) {
4192
4255
  s3 = peg$currPos;
4193
4256
  s4 = peg$parse__();
4194
4257
  if (input.charCodeAt(peg$currPos) === 44) {
4195
- s5 = peg$c38;
4258
+ s5 = peg$c37;
4196
4259
  peg$currPos++;
4197
4260
  } else {
4198
4261
  s5 = peg$FAILED;
4199
- if (peg$silentFails === 0) { peg$fail(peg$e71); }
4262
+ if (peg$silentFails === 0) { peg$fail(peg$e70); }
4200
4263
  }
4201
4264
  if (s5 !== peg$FAILED) {
4202
4265
  s6 = peg$parse__();
4203
- s7 = peg$parsePipeExpression();
4266
+ s7 = peg$parseCallArgument();
4204
4267
  if (s7 !== peg$FAILED) {
4205
4268
  s4 = [s4, s5, s6, s7];
4206
4269
  s3 = s4;
@@ -4223,6 +4286,37 @@ function peg$parse(input, options) {
4223
4286
  return s0;
4224
4287
  }
4225
4288
 
4289
+ function peg$parseCallArgument() {
4290
+ var s0;
4291
+
4292
+ s0 = peg$parseExpression();
4293
+ if (s0 === peg$FAILED) {
4294
+ s0 = peg$parseCurryPlaceholder();
4295
+ }
4296
+
4297
+ return s0;
4298
+ }
4299
+
4300
+ function peg$parseCurryPlaceholder() {
4301
+ var s0, s1;
4302
+
4303
+ s0 = peg$currPos;
4304
+ if (input.charCodeAt(peg$currPos) === 35) {
4305
+ s1 = peg$c42;
4306
+ peg$currPos++;
4307
+ } else {
4308
+ s1 = peg$FAILED;
4309
+ if (peg$silentFails === 0) { peg$fail(peg$e75); }
4310
+ }
4311
+ if (s1 !== peg$FAILED) {
4312
+ peg$savedPos = s0;
4313
+ s1 = peg$f54();
4314
+ }
4315
+ s0 = s1;
4316
+
4317
+ return s0;
4318
+ }
4319
+
4226
4320
  function peg$parseLeftHandSideExpression() {
4227
4321
  var s0;
4228
4322
 
@@ -4279,7 +4373,7 @@ function peg$parse(input, options) {
4279
4373
  }
4280
4374
  }
4281
4375
  peg$savedPos = s0;
4282
- s0 = peg$f54(s1, s2);
4376
+ s0 = peg$f55(s1, s2);
4283
4377
  } else {
4284
4378
  peg$currPos = s0;
4285
4379
  s0 = peg$FAILED;
@@ -4292,11 +4386,11 @@ function peg$parse(input, options) {
4292
4386
  var s0;
4293
4387
 
4294
4388
  if (input.charCodeAt(peg$currPos) === 94) {
4295
- s0 = peg$c42;
4389
+ s0 = peg$c43;
4296
4390
  peg$currPos++;
4297
4391
  } else {
4298
4392
  s0 = peg$FAILED;
4299
- if (peg$silentFails === 0) { peg$fail(peg$e75); }
4393
+ if (peg$silentFails === 0) { peg$fail(peg$e76); }
4300
4394
  }
4301
4395
 
4302
4396
  return s0;
@@ -4314,7 +4408,7 @@ function peg$parse(input, options) {
4314
4408
  s3 = peg$parseUnaryExpression();
4315
4409
  if (s3 !== peg$FAILED) {
4316
4410
  peg$savedPos = s0;
4317
- s0 = peg$f55(s1, s3);
4411
+ s0 = peg$f56(s1, s3);
4318
4412
  } else {
4319
4413
  peg$currPos = s0;
4320
4414
  s0 = peg$FAILED;
@@ -4405,7 +4499,7 @@ function peg$parse(input, options) {
4405
4499
  }
4406
4500
  }
4407
4501
  peg$savedPos = s0;
4408
- s0 = peg$f56(s1, s2);
4502
+ s0 = peg$f57(s1, s2);
4409
4503
  } else {
4410
4504
  peg$currPos = s0;
4411
4505
  s0 = peg$FAILED;
@@ -4422,7 +4516,7 @@ function peg$parse(input, options) {
4422
4516
  peg$currPos++;
4423
4517
  } else {
4424
4518
  s0 = peg$FAILED;
4425
- if (peg$silentFails === 0) { peg$fail(peg$e76); }
4519
+ if (peg$silentFails === 0) { peg$fail(peg$e77); }
4426
4520
  }
4427
4521
  if (s0 === peg$FAILED) {
4428
4522
  s0 = peg$currPos;
@@ -4482,7 +4576,7 @@ function peg$parse(input, options) {
4482
4576
  }
4483
4577
  }
4484
4578
  peg$savedPos = s0;
4485
- s0 = peg$f57(s1, s2);
4579
+ s0 = peg$f58(s1, s2);
4486
4580
  } else {
4487
4581
  peg$currPos = s0;
4488
4582
  s0 = peg$FAILED;
@@ -4550,7 +4644,7 @@ function peg$parse(input, options) {
4550
4644
  }
4551
4645
  }
4552
4646
  peg$savedPos = s0;
4553
- s0 = peg$f58(s1, s2);
4647
+ s0 = peg$f59(s1, s2);
4554
4648
  } else {
4555
4649
  peg$currPos = s0;
4556
4650
  s0 = peg$FAILED;
@@ -4563,11 +4657,11 @@ function peg$parse(input, options) {
4563
4657
  var s0;
4564
4658
 
4565
4659
  if (input.charCodeAt(peg$currPos) === 38) {
4566
- s0 = peg$c43;
4660
+ s0 = peg$c44;
4567
4661
  peg$currPos++;
4568
4662
  } else {
4569
4663
  s0 = peg$FAILED;
4570
- if (peg$silentFails === 0) { peg$fail(peg$e77); }
4664
+ if (peg$silentFails === 0) { peg$fail(peg$e78); }
4571
4665
  }
4572
4666
 
4573
4667
  return s0;
@@ -4618,7 +4712,7 @@ function peg$parse(input, options) {
4618
4712
  }
4619
4713
  }
4620
4714
  peg$savedPos = s0;
4621
- s0 = peg$f59(s1, s2);
4715
+ s0 = peg$f60(s1, s2);
4622
4716
  } else {
4623
4717
  peg$currPos = s0;
4624
4718
  s0 = peg$FAILED;
@@ -4630,20 +4724,20 @@ function peg$parse(input, options) {
4630
4724
  function peg$parseRelationalOperator() {
4631
4725
  var s0, s1;
4632
4726
 
4633
- if (input.substr(peg$currPos, 2) === peg$c44) {
4634
- s0 = peg$c44;
4727
+ if (input.substr(peg$currPos, 2) === peg$c45) {
4728
+ s0 = peg$c45;
4635
4729
  peg$currPos += 2;
4636
4730
  } else {
4637
4731
  s0 = peg$FAILED;
4638
- if (peg$silentFails === 0) { peg$fail(peg$e78); }
4732
+ if (peg$silentFails === 0) { peg$fail(peg$e79); }
4639
4733
  }
4640
4734
  if (s0 === peg$FAILED) {
4641
- if (input.substr(peg$currPos, 2) === peg$c45) {
4642
- s0 = peg$c45;
4735
+ if (input.substr(peg$currPos, 2) === peg$c46) {
4736
+ s0 = peg$c46;
4643
4737
  peg$currPos += 2;
4644
4738
  } else {
4645
4739
  s0 = peg$FAILED;
4646
- if (peg$silentFails === 0) { peg$fail(peg$e79); }
4740
+ if (peg$silentFails === 0) { peg$fail(peg$e80); }
4647
4741
  }
4648
4742
  if (s0 === peg$FAILED) {
4649
4743
  s0 = input.charAt(peg$currPos);
@@ -4651,7 +4745,7 @@ function peg$parse(input, options) {
4651
4745
  peg$currPos++;
4652
4746
  } else {
4653
4747
  s0 = peg$FAILED;
4654
- if (peg$silentFails === 0) { peg$fail(peg$e80); }
4748
+ if (peg$silentFails === 0) { peg$fail(peg$e81); }
4655
4749
  }
4656
4750
  if (s0 === peg$FAILED) {
4657
4751
  s0 = peg$currPos;
@@ -4713,7 +4807,7 @@ function peg$parse(input, options) {
4713
4807
  }
4714
4808
  }
4715
4809
  peg$savedPos = s0;
4716
- s0 = peg$f60(s1, s2);
4810
+ s0 = peg$f61(s1, s2);
4717
4811
  } else {
4718
4812
  peg$currPos = s0;
4719
4813
  s0 = peg$FAILED;
@@ -4725,20 +4819,20 @@ function peg$parse(input, options) {
4725
4819
  function peg$parseEqualityOperator() {
4726
4820
  var s0;
4727
4821
 
4728
- if (input.substr(peg$currPos, 2) === peg$c46) {
4729
- s0 = peg$c46;
4822
+ if (input.substr(peg$currPos, 2) === peg$c47) {
4823
+ s0 = peg$c47;
4730
4824
  peg$currPos += 2;
4731
4825
  } else {
4732
4826
  s0 = peg$FAILED;
4733
- if (peg$silentFails === 0) { peg$fail(peg$e81); }
4827
+ if (peg$silentFails === 0) { peg$fail(peg$e82); }
4734
4828
  }
4735
4829
  if (s0 === peg$FAILED) {
4736
- if (input.substr(peg$currPos, 2) === peg$c47) {
4737
- s0 = peg$c47;
4830
+ if (input.substr(peg$currPos, 2) === peg$c48) {
4831
+ s0 = peg$c48;
4738
4832
  peg$currPos += 2;
4739
4833
  } else {
4740
4834
  s0 = peg$FAILED;
4741
- if (peg$silentFails === 0) { peg$fail(peg$e82); }
4835
+ if (peg$silentFails === 0) { peg$fail(peg$e83); }
4742
4836
  }
4743
4837
  }
4744
4838
 
@@ -4790,7 +4884,7 @@ function peg$parse(input, options) {
4790
4884
  }
4791
4885
  }
4792
4886
  peg$savedPos = s0;
4793
- s0 = peg$f61(s1, s2);
4887
+ s0 = peg$f62(s1, s2);
4794
4888
  } else {
4795
4889
  peg$currPos = s0;
4796
4890
  s0 = peg$FAILED;
@@ -4809,6 +4903,15 @@ function peg$parse(input, options) {
4809
4903
  } else {
4810
4904
  s0 = s1;
4811
4905
  }
4906
+ if (s0 === peg$FAILED) {
4907
+ if (input.substr(peg$currPos, 2) === peg$c49) {
4908
+ s0 = peg$c49;
4909
+ peg$currPos += 2;
4910
+ } else {
4911
+ s0 = peg$FAILED;
4912
+ if (peg$silentFails === 0) { peg$fail(peg$e84); }
4913
+ }
4914
+ }
4812
4915
 
4813
4916
  return s0;
4814
4917
  }
@@ -4858,7 +4961,7 @@ function peg$parse(input, options) {
4858
4961
  }
4859
4962
  }
4860
4963
  peg$savedPos = s0;
4861
- s0 = peg$f62(s1, s2);
4964
+ s0 = peg$f63(s1, s2);
4862
4965
  } else {
4863
4966
  peg$currPos = s0;
4864
4967
  s0 = peg$FAILED;
@@ -4877,6 +4980,15 @@ function peg$parse(input, options) {
4877
4980
  } else {
4878
4981
  s0 = s1;
4879
4982
  }
4983
+ if (s0 === peg$FAILED) {
4984
+ if (input.substr(peg$currPos, 2) === peg$c50) {
4985
+ s0 = peg$c50;
4986
+ peg$currPos += 2;
4987
+ } else {
4988
+ s0 = peg$FAILED;
4989
+ if (peg$silentFails === 0) { peg$fail(peg$e85); }
4990
+ }
4991
+ }
4880
4992
 
4881
4993
  return s0;
4882
4994
  }
@@ -4888,22 +5000,22 @@ function peg$parse(input, options) {
4888
5000
  s1 = peg$parseIfToken();
4889
5001
  if (s1 !== peg$FAILED) {
4890
5002
  s2 = peg$parse__();
4891
- s3 = peg$parsePipeExpression();
5003
+ s3 = peg$parseExpression();
4892
5004
  if (s3 !== peg$FAILED) {
4893
5005
  s4 = peg$parse__();
4894
5006
  s5 = peg$parseThenToken();
4895
5007
  if (s5 !== peg$FAILED) {
4896
5008
  s6 = peg$parse__();
4897
- s7 = peg$parsePipeExpression();
5009
+ s7 = peg$parseExpression();
4898
5010
  if (s7 !== peg$FAILED) {
4899
5011
  s8 = peg$parse__();
4900
5012
  s9 = peg$parseElseToken();
4901
5013
  if (s9 !== peg$FAILED) {
4902
5014
  s10 = peg$parse__();
4903
- s11 = peg$parsePipeExpression();
5015
+ s11 = peg$parseExpression();
4904
5016
  if (s11 !== peg$FAILED) {
4905
5017
  peg$savedPos = s0;
4906
- s0 = peg$f63(s3, s7, s11);
5018
+ s0 = peg$f64(s3, s7, s11);
4907
5019
  } else {
4908
5020
  peg$currPos = s0;
4909
5021
  s0 = peg$FAILED;
@@ -4933,16 +5045,16 @@ function peg$parse(input, options) {
4933
5045
  s1 = peg$parseIfToken();
4934
5046
  if (s1 !== peg$FAILED) {
4935
5047
  s2 = peg$parse__();
4936
- s3 = peg$parsePipeExpression();
5048
+ s3 = peg$parseExpression();
4937
5049
  if (s3 !== peg$FAILED) {
4938
5050
  s4 = peg$parse__();
4939
5051
  s5 = peg$parseThenToken();
4940
5052
  if (s5 !== peg$FAILED) {
4941
5053
  s6 = peg$parse__();
4942
- s7 = peg$parsePipeExpression();
5054
+ s7 = peg$parseExpression();
4943
5055
  if (s7 !== peg$FAILED) {
4944
5056
  peg$savedPos = s0;
4945
- s0 = peg$f64(s3, s7);
5057
+ s0 = peg$f65(s3, s7);
4946
5058
  } else {
4947
5059
  peg$currPos = s0;
4948
5060
  s0 = peg$FAILED;
@@ -5012,7 +5124,7 @@ function peg$parse(input, options) {
5012
5124
  }
5013
5125
  }
5014
5126
  peg$savedPos = s0;
5015
- s0 = peg$f65(s1, s2);
5127
+ s0 = peg$f66(s1, s2);
5016
5128
  } else {
5017
5129
  peg$currPos = s0;
5018
5130
  s0 = peg$FAILED;
@@ -5024,12 +5136,12 @@ function peg$parse(input, options) {
5024
5136
  function peg$parseNullishCoalescingOperator() {
5025
5137
  var s0;
5026
5138
 
5027
- if (input.substr(peg$currPos, 2) === peg$c48) {
5028
- s0 = peg$c48;
5139
+ if (input.substr(peg$currPos, 2) === peg$c51) {
5140
+ s0 = peg$c51;
5029
5141
  peg$currPos += 2;
5030
5142
  } else {
5031
5143
  s0 = peg$FAILED;
5032
- if (peg$silentFails === 0) { peg$fail(peg$e83); }
5144
+ if (peg$silentFails === 0) { peg$fail(peg$e86); }
5033
5145
  }
5034
5146
 
5035
5147
  return s0;
@@ -5050,7 +5162,7 @@ function peg$parse(input, options) {
5050
5162
  s7 = peg$parseNullishCoalescingExpression();
5051
5163
  if (s7 !== peg$FAILED) {
5052
5164
  peg$savedPos = s3;
5053
- s3 = peg$f66(s1, s5, s7);
5165
+ s3 = peg$f67(s1, s5, s7);
5054
5166
  } else {
5055
5167
  peg$currPos = s3;
5056
5168
  s3 = peg$FAILED;
@@ -5069,7 +5181,7 @@ function peg$parse(input, options) {
5069
5181
  s7 = peg$parseNullishCoalescingExpression();
5070
5182
  if (s7 !== peg$FAILED) {
5071
5183
  peg$savedPos = s3;
5072
- s3 = peg$f66(s1, s5, s7);
5184
+ s3 = peg$f67(s1, s5, s7);
5073
5185
  } else {
5074
5186
  peg$currPos = s3;
5075
5187
  s3 = peg$FAILED;
@@ -5080,7 +5192,7 @@ function peg$parse(input, options) {
5080
5192
  }
5081
5193
  }
5082
5194
  peg$savedPos = s0;
5083
- s0 = peg$f67(s1, s2);
5195
+ s0 = peg$f68(s1, s2);
5084
5196
  } else {
5085
5197
  peg$currPos = s0;
5086
5198
  s0 = peg$FAILED;
@@ -5092,20 +5204,437 @@ function peg$parse(input, options) {
5092
5204
  function peg$parsePipeOperator() {
5093
5205
  var s0;
5094
5206
 
5095
- if (input.substr(peg$currPos, 2) === peg$c49) {
5096
- s0 = peg$c49;
5207
+ if (input.substr(peg$currPos, 2) === peg$c52) {
5208
+ s0 = peg$c52;
5097
5209
  peg$currPos += 2;
5098
5210
  } else {
5099
5211
  s0 = peg$FAILED;
5100
- if (peg$silentFails === 0) { peg$fail(peg$e84); }
5212
+ if (peg$silentFails === 0) { peg$fail(peg$e87); }
5101
5213
  }
5102
5214
  if (s0 === peg$FAILED) {
5103
- if (input.charCodeAt(peg$currPos) === 124) {
5104
- s0 = peg$c50;
5105
- peg$currPos++;
5215
+ if (input.substr(peg$currPos, 2) === peg$c53) {
5216
+ s0 = peg$c53;
5217
+ peg$currPos += 2;
5106
5218
  } else {
5107
5219
  s0 = peg$FAILED;
5108
- if (peg$silentFails === 0) { peg$fail(peg$e85); }
5220
+ if (peg$silentFails === 0) { peg$fail(peg$e88); }
5221
+ }
5222
+ if (s0 === peg$FAILED) {
5223
+ if (input.charCodeAt(peg$currPos) === 124) {
5224
+ s0 = peg$c54;
5225
+ peg$currPos++;
5226
+ } else {
5227
+ s0 = peg$FAILED;
5228
+ if (peg$silentFails === 0) { peg$fail(peg$e89); }
5229
+ }
5230
+ }
5231
+ }
5232
+
5233
+ return s0;
5234
+ }
5235
+
5236
+ function peg$parseTopicReference() {
5237
+ var s0, s1;
5238
+
5239
+ s0 = peg$currPos;
5240
+ if (input.charCodeAt(peg$currPos) === 37) {
5241
+ s1 = peg$c55;
5242
+ peg$currPos++;
5243
+ } else {
5244
+ s1 = peg$FAILED;
5245
+ if (peg$silentFails === 0) { peg$fail(peg$e90); }
5246
+ }
5247
+ if (s1 !== peg$FAILED) {
5248
+ peg$savedPos = s0;
5249
+ s1 = peg$f69();
5250
+ }
5251
+ s0 = s1;
5252
+
5253
+ return s0;
5254
+ }
5255
+
5256
+ function peg$parseLambdaExpression() {
5257
+ var s0, s1, s2, s3, s4, s5, s6, s7, s8;
5258
+
5259
+ s0 = peg$currPos;
5260
+ if (input.charCodeAt(peg$currPos) === 40) {
5261
+ s1 = peg$c33;
5262
+ peg$currPos++;
5263
+ } else {
5264
+ s1 = peg$FAILED;
5265
+ if (peg$silentFails === 0) { peg$fail(peg$e66); }
5266
+ }
5267
+ if (s1 !== peg$FAILED) {
5268
+ s2 = peg$parse__();
5269
+ s3 = peg$currPos;
5270
+ s4 = peg$parseFormalParameterList();
5271
+ if (s4 !== peg$FAILED) {
5272
+ s5 = peg$parse__();
5273
+ s4 = [s4, s5];
5274
+ s3 = s4;
5275
+ } else {
5276
+ peg$currPos = s3;
5277
+ s3 = peg$FAILED;
5278
+ }
5279
+ if (s3 === peg$FAILED) {
5280
+ s3 = null;
5281
+ }
5282
+ if (input.charCodeAt(peg$currPos) === 41) {
5283
+ s4 = peg$c34;
5284
+ peg$currPos++;
5285
+ } else {
5286
+ s4 = peg$FAILED;
5287
+ if (peg$silentFails === 0) { peg$fail(peg$e67); }
5288
+ }
5289
+ if (s4 !== peg$FAILED) {
5290
+ s5 = peg$parse__();
5291
+ s6 = peg$parseLambdaArrow();
5292
+ if (s6 !== peg$FAILED) {
5293
+ s7 = peg$parse__();
5294
+ s8 = peg$parseExpression();
5295
+ if (s8 !== peg$FAILED) {
5296
+ peg$savedPos = s0;
5297
+ s0 = peg$f70(s3, s8);
5298
+ } else {
5299
+ peg$currPos = s0;
5300
+ s0 = peg$FAILED;
5301
+ }
5302
+ } else {
5303
+ peg$currPos = s0;
5304
+ s0 = peg$FAILED;
5305
+ }
5306
+ } else {
5307
+ peg$currPos = s0;
5308
+ s0 = peg$FAILED;
5309
+ }
5310
+ } else {
5311
+ peg$currPos = s0;
5312
+ s0 = peg$FAILED;
5313
+ }
5314
+ if (s0 === peg$FAILED) {
5315
+ s0 = peg$currPos;
5316
+ s1 = peg$parse__();
5317
+ s2 = peg$parseIdentifier();
5318
+ if (s2 !== peg$FAILED) {
5319
+ s3 = peg$parse__();
5320
+ s4 = peg$parseLambdaArrow();
5321
+ if (s4 !== peg$FAILED) {
5322
+ s5 = peg$parse__();
5323
+ s6 = peg$parseExpression();
5324
+ if (s6 !== peg$FAILED) {
5325
+ peg$savedPos = s0;
5326
+ s0 = peg$f71(s2, s6);
5327
+ } else {
5328
+ peg$currPos = s0;
5329
+ s0 = peg$FAILED;
5330
+ }
5331
+ } else {
5332
+ peg$currPos = s0;
5333
+ s0 = peg$FAILED;
5334
+ }
5335
+ } else {
5336
+ peg$currPos = s0;
5337
+ s0 = peg$FAILED;
5338
+ }
5339
+ }
5340
+
5341
+ return s0;
5342
+ }
5343
+
5344
+ function peg$parseLambdaArrow() {
5345
+ var s0;
5346
+
5347
+ if (input.substr(peg$currPos, 2) === peg$c56) {
5348
+ s0 = peg$c56;
5349
+ peg$currPos += 2;
5350
+ } else {
5351
+ s0 = peg$FAILED;
5352
+ if (peg$silentFails === 0) { peg$fail(peg$e91); }
5353
+ }
5354
+
5355
+ return s0;
5356
+ }
5357
+
5358
+ function peg$parseFormalParameterList() {
5359
+ var s0, s1, s2, s3, s4, s5, s6, s7;
5360
+
5361
+ s0 = peg$currPos;
5362
+ s1 = peg$parseIdentifier();
5363
+ if (s1 !== peg$FAILED) {
5364
+ s2 = [];
5365
+ s3 = peg$currPos;
5366
+ s4 = peg$parse__();
5367
+ if (input.charCodeAt(peg$currPos) === 44) {
5368
+ s5 = peg$c37;
5369
+ peg$currPos++;
5370
+ } else {
5371
+ s5 = peg$FAILED;
5372
+ if (peg$silentFails === 0) { peg$fail(peg$e70); }
5373
+ }
5374
+ if (s5 !== peg$FAILED) {
5375
+ s6 = peg$parse__();
5376
+ s7 = peg$parseIdentifier();
5377
+ if (s7 !== peg$FAILED) {
5378
+ s4 = [s4, s5, s6, s7];
5379
+ s3 = s4;
5380
+ } else {
5381
+ peg$currPos = s3;
5382
+ s3 = peg$FAILED;
5383
+ }
5384
+ } else {
5385
+ peg$currPos = s3;
5386
+ s3 = peg$FAILED;
5387
+ }
5388
+ while (s3 !== peg$FAILED) {
5389
+ s2.push(s3);
5390
+ s3 = peg$currPos;
5391
+ s4 = peg$parse__();
5392
+ if (input.charCodeAt(peg$currPos) === 44) {
5393
+ s5 = peg$c37;
5394
+ peg$currPos++;
5395
+ } else {
5396
+ s5 = peg$FAILED;
5397
+ if (peg$silentFails === 0) { peg$fail(peg$e70); }
5398
+ }
5399
+ if (s5 !== peg$FAILED) {
5400
+ s6 = peg$parse__();
5401
+ s7 = peg$parseIdentifier();
5402
+ if (s7 !== peg$FAILED) {
5403
+ s4 = [s4, s5, s6, s7];
5404
+ s3 = s4;
5405
+ } else {
5406
+ peg$currPos = s3;
5407
+ s3 = peg$FAILED;
5408
+ }
5409
+ } else {
5410
+ peg$currPos = s3;
5411
+ s3 = peg$FAILED;
5412
+ }
5413
+ }
5414
+ peg$savedPos = s0;
5415
+ s0 = peg$f72(s1, s2);
5416
+ } else {
5417
+ peg$currPos = s0;
5418
+ s0 = peg$FAILED;
5419
+ }
5420
+
5421
+ return s0;
5422
+ }
5423
+
5424
+ function peg$parseLetExpression() {
5425
+ var s0, s1, s2, s3, s4, s5, s6, s7;
5426
+
5427
+ s0 = peg$currPos;
5428
+ s1 = peg$parseLetToken();
5429
+ if (s1 !== peg$FAILED) {
5430
+ s2 = peg$parse__();
5431
+ s3 = peg$parseVariableDeclarationList();
5432
+ if (s3 !== peg$FAILED) {
5433
+ s4 = peg$parse__();
5434
+ if (input.charCodeAt(peg$currPos) === 44) {
5435
+ s5 = peg$c37;
5436
+ peg$currPos++;
5437
+ } else {
5438
+ s5 = peg$FAILED;
5439
+ if (peg$silentFails === 0) { peg$fail(peg$e70); }
5440
+ }
5441
+ if (s5 !== peg$FAILED) {
5442
+ s6 = peg$parse__();
5443
+ s7 = peg$parseExpression();
5444
+ if (s7 !== peg$FAILED) {
5445
+ peg$savedPos = s0;
5446
+ s0 = peg$f73(s3, s7);
5447
+ } else {
5448
+ peg$currPos = s0;
5449
+ s0 = peg$FAILED;
5450
+ }
5451
+ } else {
5452
+ peg$currPos = s0;
5453
+ s0 = peg$FAILED;
5454
+ }
5455
+ } else {
5456
+ peg$currPos = s0;
5457
+ s0 = peg$FAILED;
5458
+ }
5459
+ } else {
5460
+ peg$currPos = s0;
5461
+ s0 = peg$FAILED;
5462
+ }
5463
+
5464
+ return s0;
5465
+ }
5466
+
5467
+ function peg$parseVariableDeclarationList() {
5468
+ var s0, s1, s2, s3, s4, s5, s6, s7;
5469
+
5470
+ s0 = peg$currPos;
5471
+ s1 = peg$parseVariableDeclaration();
5472
+ if (s1 !== peg$FAILED) {
5473
+ s2 = [];
5474
+ s3 = peg$currPos;
5475
+ s4 = peg$parse__();
5476
+ if (input.charCodeAt(peg$currPos) === 44) {
5477
+ s5 = peg$c37;
5478
+ peg$currPos++;
5479
+ } else {
5480
+ s5 = peg$FAILED;
5481
+ if (peg$silentFails === 0) { peg$fail(peg$e70); }
5482
+ }
5483
+ if (s5 !== peg$FAILED) {
5484
+ s6 = peg$parse__();
5485
+ s7 = peg$parseVariableDeclaration();
5486
+ if (s7 !== peg$FAILED) {
5487
+ s4 = [s4, s5, s6, s7];
5488
+ s3 = s4;
5489
+ } else {
5490
+ peg$currPos = s3;
5491
+ s3 = peg$FAILED;
5492
+ }
5493
+ } else {
5494
+ peg$currPos = s3;
5495
+ s3 = peg$FAILED;
5496
+ }
5497
+ while (s3 !== peg$FAILED) {
5498
+ s2.push(s3);
5499
+ s3 = peg$currPos;
5500
+ s4 = peg$parse__();
5501
+ if (input.charCodeAt(peg$currPos) === 44) {
5502
+ s5 = peg$c37;
5503
+ peg$currPos++;
5504
+ } else {
5505
+ s5 = peg$FAILED;
5506
+ if (peg$silentFails === 0) { peg$fail(peg$e70); }
5507
+ }
5508
+ if (s5 !== peg$FAILED) {
5509
+ s6 = peg$parse__();
5510
+ s7 = peg$parseVariableDeclaration();
5511
+ if (s7 !== peg$FAILED) {
5512
+ s4 = [s4, s5, s6, s7];
5513
+ s3 = s4;
5514
+ } else {
5515
+ peg$currPos = s3;
5516
+ s3 = peg$FAILED;
5517
+ }
5518
+ } else {
5519
+ peg$currPos = s3;
5520
+ s3 = peg$FAILED;
5521
+ }
5522
+ }
5523
+ peg$savedPos = s0;
5524
+ s0 = peg$f74(s1, s2);
5525
+ } else {
5526
+ peg$currPos = s0;
5527
+ s0 = peg$FAILED;
5528
+ }
5529
+
5530
+ return s0;
5531
+ }
5532
+
5533
+ function peg$parseVariableDeclaration() {
5534
+ var s0, s1, s2, s3, s4;
5535
+
5536
+ s0 = peg$currPos;
5537
+ s1 = peg$parseIdentifier();
5538
+ if (s1 !== peg$FAILED) {
5539
+ s2 = peg$currPos;
5540
+ s3 = peg$parse__();
5541
+ s4 = peg$parseInitialiser();
5542
+ if (s4 !== peg$FAILED) {
5543
+ s3 = [s3, s4];
5544
+ s2 = s3;
5545
+ } else {
5546
+ peg$currPos = s2;
5547
+ s2 = peg$FAILED;
5548
+ }
5549
+ if (s2 !== peg$FAILED) {
5550
+ peg$savedPos = s0;
5551
+ s0 = peg$f75(s1, s2);
5552
+ } else {
5553
+ peg$currPos = s0;
5554
+ s0 = peg$FAILED;
5555
+ }
5556
+ } else {
5557
+ peg$currPos = s0;
5558
+ s0 = peg$FAILED;
5559
+ }
5560
+
5561
+ return s0;
5562
+ }
5563
+
5564
+ function peg$parseInitialiser() {
5565
+ var s0, s1, s2, s3;
5566
+
5567
+ s0 = peg$currPos;
5568
+ s1 = peg$parseEqualOperator();
5569
+ if (s1 !== peg$FAILED) {
5570
+ s2 = peg$parse__();
5571
+ s3 = peg$parseExpression();
5572
+ if (s3 !== peg$FAILED) {
5573
+ peg$savedPos = s0;
5574
+ s0 = peg$f76(s3);
5575
+ } else {
5576
+ peg$currPos = s0;
5577
+ s0 = peg$FAILED;
5578
+ }
5579
+ } else {
5580
+ peg$currPos = s0;
5581
+ s0 = peg$FAILED;
5582
+ }
5583
+
5584
+ return s0;
5585
+ }
5586
+
5587
+ function peg$parseEqualOperator() {
5588
+ var s0, s1, s2, s3;
5589
+
5590
+ s0 = peg$currPos;
5591
+ if (input.charCodeAt(peg$currPos) === 61) {
5592
+ s1 = peg$c57;
5593
+ peg$currPos++;
5594
+ } else {
5595
+ s1 = peg$FAILED;
5596
+ if (peg$silentFails === 0) { peg$fail(peg$e92); }
5597
+ }
5598
+ if (s1 !== peg$FAILED) {
5599
+ s2 = peg$currPos;
5600
+ peg$silentFails++;
5601
+ if (input.charCodeAt(peg$currPos) === 61) {
5602
+ s3 = peg$c57;
5603
+ peg$currPos++;
5604
+ } else {
5605
+ s3 = peg$FAILED;
5606
+ if (peg$silentFails === 0) { peg$fail(peg$e92); }
5607
+ }
5608
+ peg$silentFails--;
5609
+ if (s3 === peg$FAILED) {
5610
+ s2 = undefined;
5611
+ } else {
5612
+ peg$currPos = s2;
5613
+ s2 = peg$FAILED;
5614
+ }
5615
+ if (s2 !== peg$FAILED) {
5616
+ s1 = [s1, s2];
5617
+ s0 = s1;
5618
+ } else {
5619
+ peg$currPos = s0;
5620
+ s0 = peg$FAILED;
5621
+ }
5622
+ } else {
5623
+ peg$currPos = s0;
5624
+ s0 = peg$FAILED;
5625
+ }
5626
+
5627
+ return s0;
5628
+ }
5629
+
5630
+ function peg$parseExpression() {
5631
+ var s0;
5632
+
5633
+ s0 = peg$parseLetExpression();
5634
+ if (s0 === peg$FAILED) {
5635
+ s0 = peg$parseLambdaExpression();
5636
+ if (s0 === peg$FAILED) {
5637
+ s0 = peg$parsePipeExpression();
5109
5638
  }
5110
5639
  }
5111
5640
 
@@ -5116,14 +5645,14 @@ function peg$parse(input, options) {
5116
5645
  var s0, s1, s2;
5117
5646
 
5118
5647
  s0 = peg$currPos;
5119
- s1 = peg$parsePipeExpression();
5648
+ s1 = peg$parseExpression();
5120
5649
  if (s1 === peg$FAILED) {
5121
5650
  s1 = null;
5122
5651
  }
5123
5652
  s2 = peg$parseEOS();
5124
5653
  if (s2 !== peg$FAILED) {
5125
5654
  peg$savedPos = s0;
5126
- s0 = peg$f68(s1);
5655
+ s0 = peg$f77(s1);
5127
5656
  } else {
5128
5657
  peg$currPos = s0;
5129
5658
  s0 = peg$FAILED;