simplex-lang 0.2.2 → 1.0.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.
Files changed (51) hide show
  1. package/README.md +530 -13
  2. package/build/parser/index.js +1161 -479
  3. package/build/parser/index.js.map +1 -1
  4. package/build/src/compiler.d.ts +26 -18
  5. package/build/src/compiler.js +211 -457
  6. package/build/src/compiler.js.map +1 -1
  7. package/build/src/constants.d.ts +25 -0
  8. package/build/src/constants.js +29 -0
  9. package/build/src/constants.js.map +1 -0
  10. package/build/src/error-mapping.d.ts +31 -0
  11. package/build/src/error-mapping.js +72 -0
  12. package/build/src/error-mapping.js.map +1 -0
  13. package/build/src/errors.d.ts +8 -5
  14. package/build/src/errors.js +8 -10
  15. package/build/src/errors.js.map +1 -1
  16. package/build/src/index.d.ts +1 -0
  17. package/build/src/index.js +1 -0
  18. package/build/src/index.js.map +1 -1
  19. package/build/src/simplex-tree.d.ts +25 -3
  20. package/build/src/simplex.peggy +120 -3
  21. package/build/src/tools/index.d.ts +25 -6
  22. package/build/src/tools/index.js +91 -19
  23. package/build/src/tools/index.js.map +1 -1
  24. package/build/src/version.js +1 -1
  25. package/build/src/visitors.d.ts +15 -0
  26. package/build/src/visitors.js +330 -0
  27. package/build/src/visitors.js.map +1 -0
  28. package/package.json +10 -8
  29. package/parser/index.js +1161 -479
  30. package/parser/index.js.map +1 -1
  31. package/src/compiler.ts +332 -609
  32. package/src/constants.ts +30 -0
  33. package/src/error-mapping.ts +112 -0
  34. package/src/errors.ts +8 -12
  35. package/src/index.ts +1 -0
  36. package/src/simplex-tree.ts +30 -2
  37. package/src/simplex.peggy +120 -3
  38. package/src/tools/index.ts +117 -24
  39. package/src/visitors.ts +491 -0
  40. package/build/src/tools/cast.d.ts +0 -2
  41. package/build/src/tools/cast.js +0 -20
  42. package/build/src/tools/cast.js.map +0 -1
  43. package/build/src/tools/ensure.d.ts +0 -3
  44. package/build/src/tools/ensure.js +0 -30
  45. package/build/src/tools/ensure.js.map +0 -1
  46. package/build/src/tools/guards.d.ts +0 -2
  47. package/build/src/tools/guards.js +0 -20
  48. package/build/src/tools/guards.js.map +0 -1
  49. package/src/tools/cast.ts +0 -26
  50. package/src/tools/ensure.ts +0 -41
  51. package/src/tools/guards.ts +0 -29
package/parser/index.js CHANGED
@@ -241,52 +241,57 @@ function peg$parse(input, options) {
241
241
  var peg$c9 = "0x";
242
242
  var peg$c10 = "\"";
243
243
  var peg$c11 = "'";
244
- var peg$c12 = "b";
245
- var peg$c13 = "f";
246
- var peg$c14 = "n";
247
- var peg$c15 = "r";
248
- var peg$c16 = "t";
249
- var peg$c17 = "v";
250
- var peg$c18 = "x";
251
- var peg$c19 = "u";
252
- var peg$c20 = "and";
253
- var peg$c21 = "else";
254
- var peg$c22 = "false";
255
- var peg$c23 = "if";
256
- var peg$c24 = "in";
257
- var peg$c25 = "not";
258
- var peg$c26 = "null";
259
- var peg$c27 = "or";
260
- var peg$c28 = "then";
261
- var peg$c29 = "true";
262
- var peg$c30 = "typeof";
263
- var peg$c31 = "mod";
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
- var peg$c40 = ":";
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 = "||";
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 = "=";
244
+ var peg$c12 = "`";
245
+ var peg$c13 = "${";
246
+ var peg$c14 = "}";
247
+ var peg$c15 = "$";
248
+ var peg$c16 = "b";
249
+ var peg$c17 = "f";
250
+ var peg$c18 = "n";
251
+ var peg$c19 = "r";
252
+ var peg$c20 = "t";
253
+ var peg$c21 = "v";
254
+ var peg$c22 = "x";
255
+ var peg$c23 = "u";
256
+ var peg$c24 = "and";
257
+ var peg$c25 = "else";
258
+ var peg$c26 = "false";
259
+ var peg$c27 = "if";
260
+ var peg$c28 = "in";
261
+ var peg$c29 = "not";
262
+ var peg$c30 = "null";
263
+ var peg$c31 = "or";
264
+ var peg$c32 = "then";
265
+ var peg$c33 = "true";
266
+ var peg$c34 = "typeof";
267
+ var peg$c35 = "mod";
268
+ var peg$c36 = "let";
269
+ var peg$c37 = "(";
270
+ var peg$c38 = ")";
271
+ var peg$c39 = "[";
272
+ var peg$c40 = "]";
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 = "&";
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 = "??";
290
+ var peg$c58 = "|?";
291
+ var peg$c59 = "|>";
292
+ var peg$c60 = "|";
293
+ var peg$c61 = "%";
294
+ var peg$c62 = "=>";
290
295
 
291
296
  var peg$r0 = /^[\t\v-\f \xA0\u1680\u2000-\u200A\u202F\u205F\u3000\uFEFF]/;
292
297
  var peg$r1 = /^[\n\r\u2028\u2029]/;
@@ -349,67 +354,73 @@ function peg$parse(input, options) {
349
354
  var peg$e29 = peg$literalExpectation("'", false);
350
355
  var peg$e30 = peg$classExpectation(["\n", "\r", "\"", "\\", ["\u2028", "\u2029"]], false, false);
351
356
  var peg$e31 = peg$classExpectation(["\n", "\r", "'", "\\", ["\u2028", "\u2029"]], false, false);
352
- var peg$e32 = peg$classExpectation(["\"", "'", "\\"], false, false);
353
- var peg$e33 = peg$literalExpectation("b", false);
354
- var peg$e34 = peg$literalExpectation("f", false);
355
- var peg$e35 = peg$literalExpectation("n", false);
356
- var peg$e36 = peg$literalExpectation("r", false);
357
- var peg$e37 = peg$literalExpectation("t", false);
358
- var peg$e38 = peg$literalExpectation("v", false);
359
- var peg$e39 = peg$classExpectation([["0", "9"], "u", "x"], false, false);
360
- var peg$e40 = peg$literalExpectation("x", false);
361
- var peg$e41 = peg$literalExpectation("u", false);
362
- var peg$e42 = peg$classExpectation([["a", "z"], "\xB5", ["\xDF", "\xF6"], ["\xF8", "\xFF"], "\u0101", "\u0103", "\u0105", "\u0107", "\u0109", "\u010B", "\u010D", "\u010F", "\u0111", "\u0113", "\u0115", "\u0117", "\u0119", "\u011B", "\u011D", "\u011F", "\u0121", "\u0123", "\u0125", "\u0127", "\u0129", "\u012B", "\u012D", "\u012F", "\u0131", "\u0133", "\u0135", ["\u0137", "\u0138"], "\u013A", "\u013C", "\u013E", "\u0140", "\u0142", "\u0144", "\u0146", ["\u0148", "\u0149"], "\u014B", "\u014D", "\u014F", "\u0151", "\u0153", "\u0155", "\u0157", "\u0159", "\u015B", "\u015D", "\u015F", "\u0161", "\u0163", "\u0165", "\u0167", "\u0169", "\u016B", "\u016D", "\u016F", "\u0171", "\u0173", "\u0175", "\u0177", "\u017A", "\u017C", ["\u017E", "\u0180"], "\u0183", "\u0185", "\u0188", ["\u018C", "\u018D"], "\u0192", "\u0195", ["\u0199", "\u019B"], "\u019E", "\u01A1", "\u01A3", "\u01A5", "\u01A8", ["\u01AA", "\u01AB"], "\u01AD", "\u01B0", "\u01B4", "\u01B6", ["\u01B9", "\u01BA"], ["\u01BD", "\u01BF"], "\u01C6", "\u01C9", "\u01CC", "\u01CE", "\u01D0", "\u01D2", "\u01D4", "\u01D6", "\u01D8", "\u01DA", ["\u01DC", "\u01DD"], "\u01DF", "\u01E1", "\u01E3", "\u01E5", "\u01E7", "\u01E9", "\u01EB", "\u01ED", ["\u01EF", "\u01F0"], "\u01F3", "\u01F5", "\u01F9", "\u01FB", "\u01FD", "\u01FF", "\u0201", "\u0203", "\u0205", "\u0207", "\u0209", "\u020B", "\u020D", "\u020F", "\u0211", "\u0213", "\u0215", "\u0217", "\u0219", "\u021B", "\u021D", "\u021F", "\u0221", "\u0223", "\u0225", "\u0227", "\u0229", "\u022B", "\u022D", "\u022F", "\u0231", ["\u0233", "\u0239"], "\u023C", ["\u023F", "\u0240"], "\u0242", "\u0247", "\u0249", "\u024B", "\u024D", ["\u024F", "\u0293"], ["\u0295", "\u02AF"], "\u0371", "\u0373", "\u0377", ["\u037B", "\u037D"], "\u0390", ["\u03AC", "\u03CE"], ["\u03D0", "\u03D1"], ["\u03D5", "\u03D7"], "\u03D9", "\u03DB", "\u03DD", "\u03DF", "\u03E1", "\u03E3", "\u03E5", "\u03E7", "\u03E9", "\u03EB", "\u03ED", ["\u03EF", "\u03F3"], "\u03F5", "\u03F8", ["\u03FB", "\u03FC"], ["\u0430", "\u045F"], "\u0461", "\u0463", "\u0465", "\u0467", "\u0469", "\u046B", "\u046D", "\u046F", "\u0471", "\u0473", "\u0475", "\u0477", "\u0479", "\u047B", "\u047D", "\u047F", "\u0481", "\u048B", "\u048D", "\u048F", "\u0491", "\u0493", "\u0495", "\u0497", "\u0499", "\u049B", "\u049D", "\u049F", "\u04A1", "\u04A3", "\u04A5", "\u04A7", "\u04A9", "\u04AB", "\u04AD", "\u04AF", "\u04B1", "\u04B3", "\u04B5", "\u04B7", "\u04B9", "\u04BB", "\u04BD", "\u04BF", "\u04C2", "\u04C4", "\u04C6", "\u04C8", "\u04CA", "\u04CC", ["\u04CE", "\u04CF"], "\u04D1", "\u04D3", "\u04D5", "\u04D7", "\u04D9", "\u04DB", "\u04DD", "\u04DF", "\u04E1", "\u04E3", "\u04E5", "\u04E7", "\u04E9", "\u04EB", "\u04ED", "\u04EF", "\u04F1", "\u04F3", "\u04F5", "\u04F7", "\u04F9", "\u04FB", "\u04FD", "\u04FF", "\u0501", "\u0503", "\u0505", "\u0507", "\u0509", "\u050B", "\u050D", "\u050F", "\u0511", "\u0513", "\u0515", "\u0517", "\u0519", "\u051B", "\u051D", "\u051F", "\u0521", "\u0523", "\u0525", "\u0527", "\u0529", "\u052B", "\u052D", "\u052F", ["\u0561", "\u0587"], ["\u13F8", "\u13FD"], ["\u1D00", "\u1D2B"], ["\u1D6B", "\u1D77"], ["\u1D79", "\u1D9A"], "\u1E01", "\u1E03", "\u1E05", "\u1E07", "\u1E09", "\u1E0B", "\u1E0D", "\u1E0F", "\u1E11", "\u1E13", "\u1E15", "\u1E17", "\u1E19", "\u1E1B", "\u1E1D", "\u1E1F", "\u1E21", "\u1E23", "\u1E25", "\u1E27", "\u1E29", "\u1E2B", "\u1E2D", "\u1E2F", "\u1E31", "\u1E33", "\u1E35", "\u1E37", "\u1E39", "\u1E3B", "\u1E3D", "\u1E3F", "\u1E41", "\u1E43", "\u1E45", "\u1E47", "\u1E49", "\u1E4B", "\u1E4D", "\u1E4F", "\u1E51", "\u1E53", "\u1E55", "\u1E57", "\u1E59", "\u1E5B", "\u1E5D", "\u1E5F", "\u1E61", "\u1E63", "\u1E65", "\u1E67", "\u1E69", "\u1E6B", "\u1E6D", "\u1E6F", "\u1E71", "\u1E73", "\u1E75", "\u1E77", "\u1E79", "\u1E7B", "\u1E7D", "\u1E7F", "\u1E81", "\u1E83", "\u1E85", "\u1E87", "\u1E89", "\u1E8B", "\u1E8D", "\u1E8F", "\u1E91", "\u1E93", ["\u1E95", "\u1E9D"], "\u1E9F", "\u1EA1", "\u1EA3", "\u1EA5", "\u1EA7", "\u1EA9", "\u1EAB", "\u1EAD", "\u1EAF", "\u1EB1", "\u1EB3", "\u1EB5", "\u1EB7", "\u1EB9", "\u1EBB", "\u1EBD", "\u1EBF", "\u1EC1", "\u1EC3", "\u1EC5", "\u1EC7", "\u1EC9", "\u1ECB", "\u1ECD", "\u1ECF", "\u1ED1", "\u1ED3", "\u1ED5", "\u1ED7", "\u1ED9", "\u1EDB", "\u1EDD", "\u1EDF", "\u1EE1", "\u1EE3", "\u1EE5", "\u1EE7", "\u1EE9", "\u1EEB", "\u1EED", "\u1EEF", "\u1EF1", "\u1EF3", "\u1EF5", "\u1EF7", "\u1EF9", "\u1EFB", "\u1EFD", ["\u1EFF", "\u1F07"], ["\u1F10", "\u1F15"], ["\u1F20", "\u1F27"], ["\u1F30", "\u1F37"], ["\u1F40", "\u1F45"], ["\u1F50", "\u1F57"], ["\u1F60", "\u1F67"], ["\u1F70", "\u1F7D"], ["\u1F80", "\u1F87"], ["\u1F90", "\u1F97"], ["\u1FA0", "\u1FA7"], ["\u1FB0", "\u1FB4"], ["\u1FB6", "\u1FB7"], "\u1FBE", ["\u1FC2", "\u1FC4"], ["\u1FC6", "\u1FC7"], ["\u1FD0", "\u1FD3"], ["\u1FD6", "\u1FD7"], ["\u1FE0", "\u1FE7"], ["\u1FF2", "\u1FF4"], ["\u1FF6", "\u1FF7"], "\u210A", ["\u210E", "\u210F"], "\u2113", "\u212F", "\u2134", "\u2139", ["\u213C", "\u213D"], ["\u2146", "\u2149"], "\u214E", "\u2184", ["\u2C30", "\u2C5E"], "\u2C61", ["\u2C65", "\u2C66"], "\u2C68", "\u2C6A", "\u2C6C", "\u2C71", ["\u2C73", "\u2C74"], ["\u2C76", "\u2C7B"], "\u2C81", "\u2C83", "\u2C85", "\u2C87", "\u2C89", "\u2C8B", "\u2C8D", "\u2C8F", "\u2C91", "\u2C93", "\u2C95", "\u2C97", "\u2C99", "\u2C9B", "\u2C9D", "\u2C9F", "\u2CA1", "\u2CA3", "\u2CA5", "\u2CA7", "\u2CA9", "\u2CAB", "\u2CAD", "\u2CAF", "\u2CB1", "\u2CB3", "\u2CB5", "\u2CB7", "\u2CB9", "\u2CBB", "\u2CBD", "\u2CBF", "\u2CC1", "\u2CC3", "\u2CC5", "\u2CC7", "\u2CC9", "\u2CCB", "\u2CCD", "\u2CCF", "\u2CD1", "\u2CD3", "\u2CD5", "\u2CD7", "\u2CD9", "\u2CDB", "\u2CDD", "\u2CDF", "\u2CE1", ["\u2CE3", "\u2CE4"], "\u2CEC", "\u2CEE", "\u2CF3", ["\u2D00", "\u2D25"], "\u2D27", "\u2D2D", "\uA641", "\uA643", "\uA645", "\uA647", "\uA649", "\uA64B", "\uA64D", "\uA64F", "\uA651", "\uA653", "\uA655", "\uA657", "\uA659", "\uA65B", "\uA65D", "\uA65F", "\uA661", "\uA663", "\uA665", "\uA667", "\uA669", "\uA66B", "\uA66D", "\uA681", "\uA683", "\uA685", "\uA687", "\uA689", "\uA68B", "\uA68D", "\uA68F", "\uA691", "\uA693", "\uA695", "\uA697", "\uA699", "\uA69B", "\uA723", "\uA725", "\uA727", "\uA729", "\uA72B", "\uA72D", ["\uA72F", "\uA731"], "\uA733", "\uA735", "\uA737", "\uA739", "\uA73B", "\uA73D", "\uA73F", "\uA741", "\uA743", "\uA745", "\uA747", "\uA749", "\uA74B", "\uA74D", "\uA74F", "\uA751", "\uA753", "\uA755", "\uA757", "\uA759", "\uA75B", "\uA75D", "\uA75F", "\uA761", "\uA763", "\uA765", "\uA767", "\uA769", "\uA76B", "\uA76D", "\uA76F", ["\uA771", "\uA778"], "\uA77A", "\uA77C", "\uA77F", "\uA781", "\uA783", "\uA785", "\uA787", "\uA78C", "\uA78E", "\uA791", ["\uA793", "\uA795"], "\uA797", "\uA799", "\uA79B", "\uA79D", "\uA79F", "\uA7A1", "\uA7A3", "\uA7A5", "\uA7A7", "\uA7A9", "\uA7B5", "\uA7B7", "\uA7FA", ["\uAB30", "\uAB5A"], ["\uAB60", "\uAB65"], ["\uAB70", "\uABBF"], ["\uFB00", "\uFB06"], ["\uFB13", "\uFB17"], ["\uFF41", "\uFF5A"]], false, false);
363
- var peg$e43 = peg$classExpectation([["\u02B0", "\u02C1"], ["\u02C6", "\u02D1"], ["\u02E0", "\u02E4"], "\u02EC", "\u02EE", "\u0374", "\u037A", "\u0559", "\u0640", ["\u06E5", "\u06E6"], ["\u07F4", "\u07F5"], "\u07FA", "\u081A", "\u0824", "\u0828", "\u0971", "\u0E46", "\u0EC6", "\u10FC", "\u17D7", "\u1843", "\u1AA7", ["\u1C78", "\u1C7D"], ["\u1D2C", "\u1D6A"], "\u1D78", ["\u1D9B", "\u1DBF"], "\u2071", "\u207F", ["\u2090", "\u209C"], ["\u2C7C", "\u2C7D"], "\u2D6F", "\u2E2F", "\u3005", ["\u3031", "\u3035"], "\u303B", ["\u309D", "\u309E"], ["\u30FC", "\u30FE"], "\uA015", ["\uA4F8", "\uA4FD"], "\uA60C", "\uA67F", ["\uA69C", "\uA69D"], ["\uA717", "\uA71F"], "\uA770", "\uA788", ["\uA7F8", "\uA7F9"], "\uA9CF", "\uA9E6", "\uAA70", "\uAADD", ["\uAAF3", "\uAAF4"], ["\uAB5C", "\uAB5F"], "\uFF70", ["\uFF9E", "\uFF9F"]], false, false);
364
- var peg$e44 = peg$classExpectation(["\xAA", "\xBA", "\u01BB", ["\u01C0", "\u01C3"], "\u0294", ["\u05D0", "\u05EA"], ["\u05F0", "\u05F2"], ["\u0620", "\u063F"], ["\u0641", "\u064A"], ["\u066E", "\u066F"], ["\u0671", "\u06D3"], "\u06D5", ["\u06EE", "\u06EF"], ["\u06FA", "\u06FC"], "\u06FF", "\u0710", ["\u0712", "\u072F"], ["\u074D", "\u07A5"], "\u07B1", ["\u07CA", "\u07EA"], ["\u0800", "\u0815"], ["\u0840", "\u0858"], ["\u08A0", "\u08B4"], ["\u0904", "\u0939"], "\u093D", "\u0950", ["\u0958", "\u0961"], ["\u0972", "\u0980"], ["\u0985", "\u098C"], ["\u098F", "\u0990"], ["\u0993", "\u09A8"], ["\u09AA", "\u09B0"], "\u09B2", ["\u09B6", "\u09B9"], "\u09BD", "\u09CE", ["\u09DC", "\u09DD"], ["\u09DF", "\u09E1"], ["\u09F0", "\u09F1"], ["\u0A05", "\u0A0A"], ["\u0A0F", "\u0A10"], ["\u0A13", "\u0A28"], ["\u0A2A", "\u0A30"], ["\u0A32", "\u0A33"], ["\u0A35", "\u0A36"], ["\u0A38", "\u0A39"], ["\u0A59", "\u0A5C"], "\u0A5E", ["\u0A72", "\u0A74"], ["\u0A85", "\u0A8D"], ["\u0A8F", "\u0A91"], ["\u0A93", "\u0AA8"], ["\u0AAA", "\u0AB0"], ["\u0AB2", "\u0AB3"], ["\u0AB5", "\u0AB9"], "\u0ABD", "\u0AD0", ["\u0AE0", "\u0AE1"], "\u0AF9", ["\u0B05", "\u0B0C"], ["\u0B0F", "\u0B10"], ["\u0B13", "\u0B28"], ["\u0B2A", "\u0B30"], ["\u0B32", "\u0B33"], ["\u0B35", "\u0B39"], "\u0B3D", ["\u0B5C", "\u0B5D"], ["\u0B5F", "\u0B61"], "\u0B71", "\u0B83", ["\u0B85", "\u0B8A"], ["\u0B8E", "\u0B90"], ["\u0B92", "\u0B95"], ["\u0B99", "\u0B9A"], "\u0B9C", ["\u0B9E", "\u0B9F"], ["\u0BA3", "\u0BA4"], ["\u0BA8", "\u0BAA"], ["\u0BAE", "\u0BB9"], "\u0BD0", ["\u0C05", "\u0C0C"], ["\u0C0E", "\u0C10"], ["\u0C12", "\u0C28"], ["\u0C2A", "\u0C39"], "\u0C3D", ["\u0C58", "\u0C5A"], ["\u0C60", "\u0C61"], ["\u0C85", "\u0C8C"], ["\u0C8E", "\u0C90"], ["\u0C92", "\u0CA8"], ["\u0CAA", "\u0CB3"], ["\u0CB5", "\u0CB9"], "\u0CBD", "\u0CDE", ["\u0CE0", "\u0CE1"], ["\u0CF1", "\u0CF2"], ["\u0D05", "\u0D0C"], ["\u0D0E", "\u0D10"], ["\u0D12", "\u0D3A"], "\u0D3D", "\u0D4E", ["\u0D5F", "\u0D61"], ["\u0D7A", "\u0D7F"], ["\u0D85", "\u0D96"], ["\u0D9A", "\u0DB1"], ["\u0DB3", "\u0DBB"], "\u0DBD", ["\u0DC0", "\u0DC6"], ["\u0E01", "\u0E30"], ["\u0E32", "\u0E33"], ["\u0E40", "\u0E45"], ["\u0E81", "\u0E82"], "\u0E84", ["\u0E87", "\u0E88"], "\u0E8A", "\u0E8D", ["\u0E94", "\u0E97"], ["\u0E99", "\u0E9F"], ["\u0EA1", "\u0EA3"], "\u0EA5", "\u0EA7", ["\u0EAA", "\u0EAB"], ["\u0EAD", "\u0EB0"], ["\u0EB2", "\u0EB3"], "\u0EBD", ["\u0EC0", "\u0EC4"], ["\u0EDC", "\u0EDF"], "\u0F00", ["\u0F40", "\u0F47"], ["\u0F49", "\u0F6C"], ["\u0F88", "\u0F8C"], ["\u1000", "\u102A"], "\u103F", ["\u1050", "\u1055"], ["\u105A", "\u105D"], "\u1061", ["\u1065", "\u1066"], ["\u106E", "\u1070"], ["\u1075", "\u1081"], "\u108E", ["\u10D0", "\u10FA"], ["\u10FD", "\u1248"], ["\u124A", "\u124D"], ["\u1250", "\u1256"], "\u1258", ["\u125A", "\u125D"], ["\u1260", "\u1288"], ["\u128A", "\u128D"], ["\u1290", "\u12B0"], ["\u12B2", "\u12B5"], ["\u12B8", "\u12BE"], "\u12C0", ["\u12C2", "\u12C5"], ["\u12C8", "\u12D6"], ["\u12D8", "\u1310"], ["\u1312", "\u1315"], ["\u1318", "\u135A"], ["\u1380", "\u138F"], ["\u1401", "\u166C"], ["\u166F", "\u167F"], ["\u1681", "\u169A"], ["\u16A0", "\u16EA"], ["\u16F1", "\u16F8"], ["\u1700", "\u170C"], ["\u170E", "\u1711"], ["\u1720", "\u1731"], ["\u1740", "\u1751"], ["\u1760", "\u176C"], ["\u176E", "\u1770"], ["\u1780", "\u17B3"], "\u17DC", ["\u1820", "\u1842"], ["\u1844", "\u1877"], ["\u1880", "\u18A8"], "\u18AA", ["\u18B0", "\u18F5"], ["\u1900", "\u191E"], ["\u1950", "\u196D"], ["\u1970", "\u1974"], ["\u1980", "\u19AB"], ["\u19B0", "\u19C9"], ["\u1A00", "\u1A16"], ["\u1A20", "\u1A54"], ["\u1B05", "\u1B33"], ["\u1B45", "\u1B4B"], ["\u1B83", "\u1BA0"], ["\u1BAE", "\u1BAF"], ["\u1BBA", "\u1BE5"], ["\u1C00", "\u1C23"], ["\u1C4D", "\u1C4F"], ["\u1C5A", "\u1C77"], ["\u1CE9", "\u1CEC"], ["\u1CEE", "\u1CF1"], ["\u1CF5", "\u1CF6"], ["\u2135", "\u2138"], ["\u2D30", "\u2D67"], ["\u2D80", "\u2D96"], ["\u2DA0", "\u2DA6"], ["\u2DA8", "\u2DAE"], ["\u2DB0", "\u2DB6"], ["\u2DB8", "\u2DBE"], ["\u2DC0", "\u2DC6"], ["\u2DC8", "\u2DCE"], ["\u2DD0", "\u2DD6"], ["\u2DD8", "\u2DDE"], "\u3006", "\u303C", ["\u3041", "\u3096"], "\u309F", ["\u30A1", "\u30FA"], "\u30FF", ["\u3105", "\u312D"], ["\u3131", "\u318E"], ["\u31A0", "\u31BA"], ["\u31F0", "\u31FF"], ["\u3400", "\u4DB5"], ["\u4E00", "\u9FD5"], ["\uA000", "\uA014"], ["\uA016", "\uA48C"], ["\uA4D0", "\uA4F7"], ["\uA500", "\uA60B"], ["\uA610", "\uA61F"], ["\uA62A", "\uA62B"], "\uA66E", ["\uA6A0", "\uA6E5"], "\uA78F", "\uA7F7", ["\uA7FB", "\uA801"], ["\uA803", "\uA805"], ["\uA807", "\uA80A"], ["\uA80C", "\uA822"], ["\uA840", "\uA873"], ["\uA882", "\uA8B3"], ["\uA8F2", "\uA8F7"], "\uA8FB", "\uA8FD", ["\uA90A", "\uA925"], ["\uA930", "\uA946"], ["\uA960", "\uA97C"], ["\uA984", "\uA9B2"], ["\uA9E0", "\uA9E4"], ["\uA9E7", "\uA9EF"], ["\uA9FA", "\uA9FE"], ["\uAA00", "\uAA28"], ["\uAA40", "\uAA42"], ["\uAA44", "\uAA4B"], ["\uAA60", "\uAA6F"], ["\uAA71", "\uAA76"], "\uAA7A", ["\uAA7E", "\uAAAF"], "\uAAB1", ["\uAAB5", "\uAAB6"], ["\uAAB9", "\uAABD"], "\uAAC0", "\uAAC2", ["\uAADB", "\uAADC"], ["\uAAE0", "\uAAEA"], "\uAAF2", ["\uAB01", "\uAB06"], ["\uAB09", "\uAB0E"], ["\uAB11", "\uAB16"], ["\uAB20", "\uAB26"], ["\uAB28", "\uAB2E"], ["\uABC0", "\uABE2"], ["\uAC00", "\uD7A3"], ["\uD7B0", "\uD7C6"], ["\uD7CB", "\uD7FB"], ["\uF900", "\uFA6D"], ["\uFA70", "\uFAD9"], "\uFB1D", ["\uFB1F", "\uFB28"], ["\uFB2A", "\uFB36"], ["\uFB38", "\uFB3C"], "\uFB3E", ["\uFB40", "\uFB41"], ["\uFB43", "\uFB44"], ["\uFB46", "\uFBB1"], ["\uFBD3", "\uFD3D"], ["\uFD50", "\uFD8F"], ["\uFD92", "\uFDC7"], ["\uFDF0", "\uFDFB"], ["\uFE70", "\uFE74"], ["\uFE76", "\uFEFC"], ["\uFF66", "\uFF6F"], ["\uFF71", "\uFF9D"], ["\uFFA0", "\uFFBE"], ["\uFFC2", "\uFFC7"], ["\uFFCA", "\uFFCF"], ["\uFFD2", "\uFFD7"], ["\uFFDA", "\uFFDC"]], false, false);
365
- var peg$e45 = peg$classExpectation(["\u01C5", "\u01C8", "\u01CB", "\u01F2", ["\u1F88", "\u1F8F"], ["\u1F98", "\u1F9F"], ["\u1FA8", "\u1FAF"], "\u1FBC", "\u1FCC", "\u1FFC"], false, false);
366
- var peg$e46 = peg$classExpectation([["A", "Z"], ["\xC0", "\xD6"], ["\xD8", "\xDE"], "\u0100", "\u0102", "\u0104", "\u0106", "\u0108", "\u010A", "\u010C", "\u010E", "\u0110", "\u0112", "\u0114", "\u0116", "\u0118", "\u011A", "\u011C", "\u011E", "\u0120", "\u0122", "\u0124", "\u0126", "\u0128", "\u012A", "\u012C", "\u012E", "\u0130", "\u0132", "\u0134", "\u0136", "\u0139", "\u013B", "\u013D", "\u013F", "\u0141", "\u0143", "\u0145", "\u0147", "\u014A", "\u014C", "\u014E", "\u0150", "\u0152", "\u0154", "\u0156", "\u0158", "\u015A", "\u015C", "\u015E", "\u0160", "\u0162", "\u0164", "\u0166", "\u0168", "\u016A", "\u016C", "\u016E", "\u0170", "\u0172", "\u0174", "\u0176", ["\u0178", "\u0179"], "\u017B", "\u017D", ["\u0181", "\u0182"], "\u0184", ["\u0186", "\u0187"], ["\u0189", "\u018B"], ["\u018E", "\u0191"], ["\u0193", "\u0194"], ["\u0196", "\u0198"], ["\u019C", "\u019D"], ["\u019F", "\u01A0"], "\u01A2", "\u01A4", ["\u01A6", "\u01A7"], "\u01A9", "\u01AC", ["\u01AE", "\u01AF"], ["\u01B1", "\u01B3"], "\u01B5", ["\u01B7", "\u01B8"], "\u01BC", "\u01C4", "\u01C7", "\u01CA", "\u01CD", "\u01CF", "\u01D1", "\u01D3", "\u01D5", "\u01D7", "\u01D9", "\u01DB", "\u01DE", "\u01E0", "\u01E2", "\u01E4", "\u01E6", "\u01E8", "\u01EA", "\u01EC", "\u01EE", "\u01F1", "\u01F4", ["\u01F6", "\u01F8"], "\u01FA", "\u01FC", "\u01FE", "\u0200", "\u0202", "\u0204", "\u0206", "\u0208", "\u020A", "\u020C", "\u020E", "\u0210", "\u0212", "\u0214", "\u0216", "\u0218", "\u021A", "\u021C", "\u021E", "\u0220", "\u0222", "\u0224", "\u0226", "\u0228", "\u022A", "\u022C", "\u022E", "\u0230", "\u0232", ["\u023A", "\u023B"], ["\u023D", "\u023E"], "\u0241", ["\u0243", "\u0246"], "\u0248", "\u024A", "\u024C", "\u024E", "\u0370", "\u0372", "\u0376", "\u037F", "\u0386", ["\u0388", "\u038A"], "\u038C", ["\u038E", "\u038F"], ["\u0391", "\u03A1"], ["\u03A3", "\u03AB"], "\u03CF", ["\u03D2", "\u03D4"], "\u03D8", "\u03DA", "\u03DC", "\u03DE", "\u03E0", "\u03E2", "\u03E4", "\u03E6", "\u03E8", "\u03EA", "\u03EC", "\u03EE", "\u03F4", "\u03F7", ["\u03F9", "\u03FA"], ["\u03FD", "\u042F"], "\u0460", "\u0462", "\u0464", "\u0466", "\u0468", "\u046A", "\u046C", "\u046E", "\u0470", "\u0472", "\u0474", "\u0476", "\u0478", "\u047A", "\u047C", "\u047E", "\u0480", "\u048A", "\u048C", "\u048E", "\u0490", "\u0492", "\u0494", "\u0496", "\u0498", "\u049A", "\u049C", "\u049E", "\u04A0", "\u04A2", "\u04A4", "\u04A6", "\u04A8", "\u04AA", "\u04AC", "\u04AE", "\u04B0", "\u04B2", "\u04B4", "\u04B6", "\u04B8", "\u04BA", "\u04BC", "\u04BE", ["\u04C0", "\u04C1"], "\u04C3", "\u04C5", "\u04C7", "\u04C9", "\u04CB", "\u04CD", "\u04D0", "\u04D2", "\u04D4", "\u04D6", "\u04D8", "\u04DA", "\u04DC", "\u04DE", "\u04E0", "\u04E2", "\u04E4", "\u04E6", "\u04E8", "\u04EA", "\u04EC", "\u04EE", "\u04F0", "\u04F2", "\u04F4", "\u04F6", "\u04F8", "\u04FA", "\u04FC", "\u04FE", "\u0500", "\u0502", "\u0504", "\u0506", "\u0508", "\u050A", "\u050C", "\u050E", "\u0510", "\u0512", "\u0514", "\u0516", "\u0518", "\u051A", "\u051C", "\u051E", "\u0520", "\u0522", "\u0524", "\u0526", "\u0528", "\u052A", "\u052C", "\u052E", ["\u0531", "\u0556"], ["\u10A0", "\u10C5"], "\u10C7", "\u10CD", ["\u13A0", "\u13F5"], "\u1E00", "\u1E02", "\u1E04", "\u1E06", "\u1E08", "\u1E0A", "\u1E0C", "\u1E0E", "\u1E10", "\u1E12", "\u1E14", "\u1E16", "\u1E18", "\u1E1A", "\u1E1C", "\u1E1E", "\u1E20", "\u1E22", "\u1E24", "\u1E26", "\u1E28", "\u1E2A", "\u1E2C", "\u1E2E", "\u1E30", "\u1E32", "\u1E34", "\u1E36", "\u1E38", "\u1E3A", "\u1E3C", "\u1E3E", "\u1E40", "\u1E42", "\u1E44", "\u1E46", "\u1E48", "\u1E4A", "\u1E4C", "\u1E4E", "\u1E50", "\u1E52", "\u1E54", "\u1E56", "\u1E58", "\u1E5A", "\u1E5C", "\u1E5E", "\u1E60", "\u1E62", "\u1E64", "\u1E66", "\u1E68", "\u1E6A", "\u1E6C", "\u1E6E", "\u1E70", "\u1E72", "\u1E74", "\u1E76", "\u1E78", "\u1E7A", "\u1E7C", "\u1E7E", "\u1E80", "\u1E82", "\u1E84", "\u1E86", "\u1E88", "\u1E8A", "\u1E8C", "\u1E8E", "\u1E90", "\u1E92", "\u1E94", "\u1E9E", "\u1EA0", "\u1EA2", "\u1EA4", "\u1EA6", "\u1EA8", "\u1EAA", "\u1EAC", "\u1EAE", "\u1EB0", "\u1EB2", "\u1EB4", "\u1EB6", "\u1EB8", "\u1EBA", "\u1EBC", "\u1EBE", "\u1EC0", "\u1EC2", "\u1EC4", "\u1EC6", "\u1EC8", "\u1ECA", "\u1ECC", "\u1ECE", "\u1ED0", "\u1ED2", "\u1ED4", "\u1ED6", "\u1ED8", "\u1EDA", "\u1EDC", "\u1EDE", "\u1EE0", "\u1EE2", "\u1EE4", "\u1EE6", "\u1EE8", "\u1EEA", "\u1EEC", "\u1EEE", "\u1EF0", "\u1EF2", "\u1EF4", "\u1EF6", "\u1EF8", "\u1EFA", "\u1EFC", "\u1EFE", ["\u1F08", "\u1F0F"], ["\u1F18", "\u1F1D"], ["\u1F28", "\u1F2F"], ["\u1F38", "\u1F3F"], ["\u1F48", "\u1F4D"], "\u1F59", "\u1F5B", "\u1F5D", "\u1F5F", ["\u1F68", "\u1F6F"], ["\u1FB8", "\u1FBB"], ["\u1FC8", "\u1FCB"], ["\u1FD8", "\u1FDB"], ["\u1FE8", "\u1FEC"], ["\u1FF8", "\u1FFB"], "\u2102", "\u2107", ["\u210B", "\u210D"], ["\u2110", "\u2112"], "\u2115", ["\u2119", "\u211D"], "\u2124", "\u2126", "\u2128", ["\u212A", "\u212D"], ["\u2130", "\u2133"], ["\u213E", "\u213F"], "\u2145", "\u2183", ["\u2C00", "\u2C2E"], "\u2C60", ["\u2C62", "\u2C64"], "\u2C67", "\u2C69", "\u2C6B", ["\u2C6D", "\u2C70"], "\u2C72", "\u2C75", ["\u2C7E", "\u2C80"], "\u2C82", "\u2C84", "\u2C86", "\u2C88", "\u2C8A", "\u2C8C", "\u2C8E", "\u2C90", "\u2C92", "\u2C94", "\u2C96", "\u2C98", "\u2C9A", "\u2C9C", "\u2C9E", "\u2CA0", "\u2CA2", "\u2CA4", "\u2CA6", "\u2CA8", "\u2CAA", "\u2CAC", "\u2CAE", "\u2CB0", "\u2CB2", "\u2CB4", "\u2CB6", "\u2CB8", "\u2CBA", "\u2CBC", "\u2CBE", "\u2CC0", "\u2CC2", "\u2CC4", "\u2CC6", "\u2CC8", "\u2CCA", "\u2CCC", "\u2CCE", "\u2CD0", "\u2CD2", "\u2CD4", "\u2CD6", "\u2CD8", "\u2CDA", "\u2CDC", "\u2CDE", "\u2CE0", "\u2CE2", "\u2CEB", "\u2CED", "\u2CF2", "\uA640", "\uA642", "\uA644", "\uA646", "\uA648", "\uA64A", "\uA64C", "\uA64E", "\uA650", "\uA652", "\uA654", "\uA656", "\uA658", "\uA65A", "\uA65C", "\uA65E", "\uA660", "\uA662", "\uA664", "\uA666", "\uA668", "\uA66A", "\uA66C", "\uA680", "\uA682", "\uA684", "\uA686", "\uA688", "\uA68A", "\uA68C", "\uA68E", "\uA690", "\uA692", "\uA694", "\uA696", "\uA698", "\uA69A", "\uA722", "\uA724", "\uA726", "\uA728", "\uA72A", "\uA72C", "\uA72E", "\uA732", "\uA734", "\uA736", "\uA738", "\uA73A", "\uA73C", "\uA73E", "\uA740", "\uA742", "\uA744", "\uA746", "\uA748", "\uA74A", "\uA74C", "\uA74E", "\uA750", "\uA752", "\uA754", "\uA756", "\uA758", "\uA75A", "\uA75C", "\uA75E", "\uA760", "\uA762", "\uA764", "\uA766", "\uA768", "\uA76A", "\uA76C", "\uA76E", "\uA779", "\uA77B", ["\uA77D", "\uA77E"], "\uA780", "\uA782", "\uA784", "\uA786", "\uA78B", "\uA78D", "\uA790", "\uA792", "\uA796", "\uA798", "\uA79A", "\uA79C", "\uA79E", "\uA7A0", "\uA7A2", "\uA7A4", "\uA7A6", "\uA7A8", ["\uA7AA", "\uA7AD"], ["\uA7B0", "\uA7B4"], "\uA7B6", ["\uFF21", "\uFF3A"]], false, false);
367
- var peg$e47 = peg$classExpectation(["\u0903", "\u093B", ["\u093E", "\u0940"], ["\u0949", "\u094C"], ["\u094E", "\u094F"], ["\u0982", "\u0983"], ["\u09BE", "\u09C0"], ["\u09C7", "\u09C8"], ["\u09CB", "\u09CC"], "\u09D7", "\u0A03", ["\u0A3E", "\u0A40"], "\u0A83", ["\u0ABE", "\u0AC0"], "\u0AC9", ["\u0ACB", "\u0ACC"], ["\u0B02", "\u0B03"], "\u0B3E", "\u0B40", ["\u0B47", "\u0B48"], ["\u0B4B", "\u0B4C"], "\u0B57", ["\u0BBE", "\u0BBF"], ["\u0BC1", "\u0BC2"], ["\u0BC6", "\u0BC8"], ["\u0BCA", "\u0BCC"], "\u0BD7", ["\u0C01", "\u0C03"], ["\u0C41", "\u0C44"], ["\u0C82", "\u0C83"], "\u0CBE", ["\u0CC0", "\u0CC4"], ["\u0CC7", "\u0CC8"], ["\u0CCA", "\u0CCB"], ["\u0CD5", "\u0CD6"], ["\u0D02", "\u0D03"], ["\u0D3E", "\u0D40"], ["\u0D46", "\u0D48"], ["\u0D4A", "\u0D4C"], "\u0D57", ["\u0D82", "\u0D83"], ["\u0DCF", "\u0DD1"], ["\u0DD8", "\u0DDF"], ["\u0DF2", "\u0DF3"], ["\u0F3E", "\u0F3F"], "\u0F7F", ["\u102B", "\u102C"], "\u1031", "\u1038", ["\u103B", "\u103C"], ["\u1056", "\u1057"], ["\u1062", "\u1064"], ["\u1067", "\u106D"], ["\u1083", "\u1084"], ["\u1087", "\u108C"], "\u108F", ["\u109A", "\u109C"], "\u17B6", ["\u17BE", "\u17C5"], ["\u17C7", "\u17C8"], ["\u1923", "\u1926"], ["\u1929", "\u192B"], ["\u1930", "\u1931"], ["\u1933", "\u1938"], ["\u1A19", "\u1A1A"], "\u1A55", "\u1A57", "\u1A61", ["\u1A63", "\u1A64"], ["\u1A6D", "\u1A72"], "\u1B04", "\u1B35", "\u1B3B", ["\u1B3D", "\u1B41"], ["\u1B43", "\u1B44"], "\u1B82", "\u1BA1", ["\u1BA6", "\u1BA7"], "\u1BAA", "\u1BE7", ["\u1BEA", "\u1BEC"], "\u1BEE", ["\u1BF2", "\u1BF3"], ["\u1C24", "\u1C2B"], ["\u1C34", "\u1C35"], "\u1CE1", ["\u1CF2", "\u1CF3"], ["\u302E", "\u302F"], ["\uA823", "\uA824"], "\uA827", ["\uA880", "\uA881"], ["\uA8B4", "\uA8C3"], ["\uA952", "\uA953"], "\uA983", ["\uA9B4", "\uA9B5"], ["\uA9BA", "\uA9BB"], ["\uA9BD", "\uA9C0"], ["\uAA2F", "\uAA30"], ["\uAA33", "\uAA34"], "\uAA4D", "\uAA7B", "\uAA7D", "\uAAEB", ["\uAAEE", "\uAAEF"], "\uAAF5", ["\uABE3", "\uABE4"], ["\uABE6", "\uABE7"], ["\uABE9", "\uABEA"], "\uABEC"], false, false);
368
- var peg$e48 = peg$classExpectation([["\u0300", "\u036F"], ["\u0483", "\u0487"], ["\u0591", "\u05BD"], "\u05BF", ["\u05C1", "\u05C2"], ["\u05C4", "\u05C5"], "\u05C7", ["\u0610", "\u061A"], ["\u064B", "\u065F"], "\u0670", ["\u06D6", "\u06DC"], ["\u06DF", "\u06E4"], ["\u06E7", "\u06E8"], ["\u06EA", "\u06ED"], "\u0711", ["\u0730", "\u074A"], ["\u07A6", "\u07B0"], ["\u07EB", "\u07F3"], ["\u0816", "\u0819"], ["\u081B", "\u0823"], ["\u0825", "\u0827"], ["\u0829", "\u082D"], ["\u0859", "\u085B"], ["\u08E3", "\u0902"], "\u093A", "\u093C", ["\u0941", "\u0948"], "\u094D", ["\u0951", "\u0957"], ["\u0962", "\u0963"], "\u0981", "\u09BC", ["\u09C1", "\u09C4"], "\u09CD", ["\u09E2", "\u09E3"], ["\u0A01", "\u0A02"], "\u0A3C", ["\u0A41", "\u0A42"], ["\u0A47", "\u0A48"], ["\u0A4B", "\u0A4D"], "\u0A51", ["\u0A70", "\u0A71"], "\u0A75", ["\u0A81", "\u0A82"], "\u0ABC", ["\u0AC1", "\u0AC5"], ["\u0AC7", "\u0AC8"], "\u0ACD", ["\u0AE2", "\u0AE3"], "\u0B01", "\u0B3C", "\u0B3F", ["\u0B41", "\u0B44"], "\u0B4D", "\u0B56", ["\u0B62", "\u0B63"], "\u0B82", "\u0BC0", "\u0BCD", "\u0C00", ["\u0C3E", "\u0C40"], ["\u0C46", "\u0C48"], ["\u0C4A", "\u0C4D"], ["\u0C55", "\u0C56"], ["\u0C62", "\u0C63"], "\u0C81", "\u0CBC", "\u0CBF", "\u0CC6", ["\u0CCC", "\u0CCD"], ["\u0CE2", "\u0CE3"], "\u0D01", ["\u0D41", "\u0D44"], "\u0D4D", ["\u0D62", "\u0D63"], "\u0DCA", ["\u0DD2", "\u0DD4"], "\u0DD6", "\u0E31", ["\u0E34", "\u0E3A"], ["\u0E47", "\u0E4E"], "\u0EB1", ["\u0EB4", "\u0EB9"], ["\u0EBB", "\u0EBC"], ["\u0EC8", "\u0ECD"], ["\u0F18", "\u0F19"], "\u0F35", "\u0F37", "\u0F39", ["\u0F71", "\u0F7E"], ["\u0F80", "\u0F84"], ["\u0F86", "\u0F87"], ["\u0F8D", "\u0F97"], ["\u0F99", "\u0FBC"], "\u0FC6", ["\u102D", "\u1030"], ["\u1032", "\u1037"], ["\u1039", "\u103A"], ["\u103D", "\u103E"], ["\u1058", "\u1059"], ["\u105E", "\u1060"], ["\u1071", "\u1074"], "\u1082", ["\u1085", "\u1086"], "\u108D", "\u109D", ["\u135D", "\u135F"], ["\u1712", "\u1714"], ["\u1732", "\u1734"], ["\u1752", "\u1753"], ["\u1772", "\u1773"], ["\u17B4", "\u17B5"], ["\u17B7", "\u17BD"], "\u17C6", ["\u17C9", "\u17D3"], "\u17DD", ["\u180B", "\u180D"], "\u18A9", ["\u1920", "\u1922"], ["\u1927", "\u1928"], "\u1932", ["\u1939", "\u193B"], ["\u1A17", "\u1A18"], "\u1A1B", "\u1A56", ["\u1A58", "\u1A5E"], "\u1A60", "\u1A62", ["\u1A65", "\u1A6C"], ["\u1A73", "\u1A7C"], "\u1A7F", ["\u1AB0", "\u1ABD"], ["\u1B00", "\u1B03"], "\u1B34", ["\u1B36", "\u1B3A"], "\u1B3C", "\u1B42", ["\u1B6B", "\u1B73"], ["\u1B80", "\u1B81"], ["\u1BA2", "\u1BA5"], ["\u1BA8", "\u1BA9"], ["\u1BAB", "\u1BAD"], "\u1BE6", ["\u1BE8", "\u1BE9"], "\u1BED", ["\u1BEF", "\u1BF1"], ["\u1C2C", "\u1C33"], ["\u1C36", "\u1C37"], ["\u1CD0", "\u1CD2"], ["\u1CD4", "\u1CE0"], ["\u1CE2", "\u1CE8"], "\u1CED", "\u1CF4", ["\u1CF8", "\u1CF9"], ["\u1DC0", "\u1DF5"], ["\u1DFC", "\u1DFF"], ["\u20D0", "\u20DC"], "\u20E1", ["\u20E5", "\u20F0"], ["\u2CEF", "\u2CF1"], "\u2D7F", ["\u2DE0", "\u2DFF"], ["\u302A", "\u302D"], ["\u3099", "\u309A"], "\uA66F", ["\uA674", "\uA67D"], ["\uA69E", "\uA69F"], ["\uA6F0", "\uA6F1"], "\uA802", "\uA806", "\uA80B", ["\uA825", "\uA826"], "\uA8C4", ["\uA8E0", "\uA8F1"], ["\uA926", "\uA92D"], ["\uA947", "\uA951"], ["\uA980", "\uA982"], "\uA9B3", ["\uA9B6", "\uA9B9"], "\uA9BC", "\uA9E5", ["\uAA29", "\uAA2E"], ["\uAA31", "\uAA32"], ["\uAA35", "\uAA36"], "\uAA43", "\uAA4C", "\uAA7C", "\uAAB0", ["\uAAB2", "\uAAB4"], ["\uAAB7", "\uAAB8"], ["\uAABE", "\uAABF"], "\uAAC1", ["\uAAEC", "\uAAED"], "\uAAF6", "\uABE5", "\uABE8", "\uABED", "\uFB1E", ["\uFE00", "\uFE0F"], ["\uFE20", "\uFE2F"]], false, false);
369
- var peg$e49 = peg$classExpectation([["0", "9"], ["\u0660", "\u0669"], ["\u06F0", "\u06F9"], ["\u07C0", "\u07C9"], ["\u0966", "\u096F"], ["\u09E6", "\u09EF"], ["\u0A66", "\u0A6F"], ["\u0AE6", "\u0AEF"], ["\u0B66", "\u0B6F"], ["\u0BE6", "\u0BEF"], ["\u0C66", "\u0C6F"], ["\u0CE6", "\u0CEF"], ["\u0D66", "\u0D6F"], ["\u0DE6", "\u0DEF"], ["\u0E50", "\u0E59"], ["\u0ED0", "\u0ED9"], ["\u0F20", "\u0F29"], ["\u1040", "\u1049"], ["\u1090", "\u1099"], ["\u17E0", "\u17E9"], ["\u1810", "\u1819"], ["\u1946", "\u194F"], ["\u19D0", "\u19D9"], ["\u1A80", "\u1A89"], ["\u1A90", "\u1A99"], ["\u1B50", "\u1B59"], ["\u1BB0", "\u1BB9"], ["\u1C40", "\u1C49"], ["\u1C50", "\u1C59"], ["\uA620", "\uA629"], ["\uA8D0", "\uA8D9"], ["\uA900", "\uA909"], ["\uA9D0", "\uA9D9"], ["\uA9F0", "\uA9F9"], ["\uAA50", "\uAA59"], ["\uABF0", "\uABF9"], ["\uFF10", "\uFF19"]], false, false);
370
- var peg$e50 = peg$classExpectation([["\u16EE", "\u16F0"], ["\u2160", "\u2182"], ["\u2185", "\u2188"], "\u3007", ["\u3021", "\u3029"], ["\u3038", "\u303A"], ["\uA6E6", "\uA6EF"]], false, false);
371
- var peg$e51 = peg$classExpectation(["_", ["\u203F", "\u2040"], "\u2054", ["\uFE33", "\uFE34"], ["\uFE4D", "\uFE4F"], "\uFF3F"], false, false);
372
- var peg$e52 = peg$classExpectation([" ", "\xA0", "\u1680", ["\u2000", "\u200A"], "\u202F", "\u205F", "\u3000"], false, false);
373
- var peg$e53 = peg$literalExpectation("and", false);
374
- var peg$e54 = peg$literalExpectation("else", false);
375
- var peg$e55 = peg$literalExpectation("false", false);
376
- var peg$e56 = peg$literalExpectation("if", false);
377
- var peg$e57 = peg$literalExpectation("in", false);
378
- var peg$e58 = peg$literalExpectation("not", false);
379
- var peg$e59 = peg$literalExpectation("null", false);
380
- var peg$e60 = peg$literalExpectation("or", false);
381
- var peg$e61 = peg$literalExpectation("then", false);
382
- var peg$e62 = peg$literalExpectation("true", false);
383
- var peg$e63 = peg$literalExpectation("typeof", false);
384
- var peg$e64 = peg$literalExpectation("mod", 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);
393
- var peg$e73 = peg$literalExpectation(":", false);
394
- var peg$e74 = 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);
357
+ var peg$e32 = peg$otherExpectation("template literal");
358
+ var peg$e33 = peg$literalExpectation("`", false);
359
+ var peg$e34 = peg$literalExpectation("${", false);
360
+ var peg$e35 = peg$literalExpectation("}", false);
361
+ var peg$e36 = peg$literalExpectation("$", false);
362
+ var peg$e37 = peg$classExpectation(["\"", "'", "\\"], false, false);
363
+ var peg$e38 = peg$literalExpectation("b", false);
364
+ var peg$e39 = peg$literalExpectation("f", false);
365
+ var peg$e40 = peg$literalExpectation("n", false);
366
+ var peg$e41 = peg$literalExpectation("r", false);
367
+ var peg$e42 = peg$literalExpectation("t", false);
368
+ var peg$e43 = peg$literalExpectation("v", false);
369
+ var peg$e44 = peg$classExpectation([["0", "9"], "u", "x"], false, false);
370
+ var peg$e45 = peg$literalExpectation("x", false);
371
+ var peg$e46 = peg$literalExpectation("u", false);
372
+ var peg$e47 = peg$classExpectation([["a", "z"], "\xB5", ["\xDF", "\xF6"], ["\xF8", "\xFF"], "\u0101", "\u0103", "\u0105", "\u0107", "\u0109", "\u010B", "\u010D", "\u010F", "\u0111", "\u0113", "\u0115", "\u0117", "\u0119", "\u011B", "\u011D", "\u011F", "\u0121", "\u0123", "\u0125", "\u0127", "\u0129", "\u012B", "\u012D", "\u012F", "\u0131", "\u0133", "\u0135", ["\u0137", "\u0138"], "\u013A", "\u013C", "\u013E", "\u0140", "\u0142", "\u0144", "\u0146", ["\u0148", "\u0149"], "\u014B", "\u014D", "\u014F", "\u0151", "\u0153", "\u0155", "\u0157", "\u0159", "\u015B", "\u015D", "\u015F", "\u0161", "\u0163", "\u0165", "\u0167", "\u0169", "\u016B", "\u016D", "\u016F", "\u0171", "\u0173", "\u0175", "\u0177", "\u017A", "\u017C", ["\u017E", "\u0180"], "\u0183", "\u0185", "\u0188", ["\u018C", "\u018D"], "\u0192", "\u0195", ["\u0199", "\u019B"], "\u019E", "\u01A1", "\u01A3", "\u01A5", "\u01A8", ["\u01AA", "\u01AB"], "\u01AD", "\u01B0", "\u01B4", "\u01B6", ["\u01B9", "\u01BA"], ["\u01BD", "\u01BF"], "\u01C6", "\u01C9", "\u01CC", "\u01CE", "\u01D0", "\u01D2", "\u01D4", "\u01D6", "\u01D8", "\u01DA", ["\u01DC", "\u01DD"], "\u01DF", "\u01E1", "\u01E3", "\u01E5", "\u01E7", "\u01E9", "\u01EB", "\u01ED", ["\u01EF", "\u01F0"], "\u01F3", "\u01F5", "\u01F9", "\u01FB", "\u01FD", "\u01FF", "\u0201", "\u0203", "\u0205", "\u0207", "\u0209", "\u020B", "\u020D", "\u020F", "\u0211", "\u0213", "\u0215", "\u0217", "\u0219", "\u021B", "\u021D", "\u021F", "\u0221", "\u0223", "\u0225", "\u0227", "\u0229", "\u022B", "\u022D", "\u022F", "\u0231", ["\u0233", "\u0239"], "\u023C", ["\u023F", "\u0240"], "\u0242", "\u0247", "\u0249", "\u024B", "\u024D", ["\u024F", "\u0293"], ["\u0295", "\u02AF"], "\u0371", "\u0373", "\u0377", ["\u037B", "\u037D"], "\u0390", ["\u03AC", "\u03CE"], ["\u03D0", "\u03D1"], ["\u03D5", "\u03D7"], "\u03D9", "\u03DB", "\u03DD", "\u03DF", "\u03E1", "\u03E3", "\u03E5", "\u03E7", "\u03E9", "\u03EB", "\u03ED", ["\u03EF", "\u03F3"], "\u03F5", "\u03F8", ["\u03FB", "\u03FC"], ["\u0430", "\u045F"], "\u0461", "\u0463", "\u0465", "\u0467", "\u0469", "\u046B", "\u046D", "\u046F", "\u0471", "\u0473", "\u0475", "\u0477", "\u0479", "\u047B", "\u047D", "\u047F", "\u0481", "\u048B", "\u048D", "\u048F", "\u0491", "\u0493", "\u0495", "\u0497", "\u0499", "\u049B", "\u049D", "\u049F", "\u04A1", "\u04A3", "\u04A5", "\u04A7", "\u04A9", "\u04AB", "\u04AD", "\u04AF", "\u04B1", "\u04B3", "\u04B5", "\u04B7", "\u04B9", "\u04BB", "\u04BD", "\u04BF", "\u04C2", "\u04C4", "\u04C6", "\u04C8", "\u04CA", "\u04CC", ["\u04CE", "\u04CF"], "\u04D1", "\u04D3", "\u04D5", "\u04D7", "\u04D9", "\u04DB", "\u04DD", "\u04DF", "\u04E1", "\u04E3", "\u04E5", "\u04E7", "\u04E9", "\u04EB", "\u04ED", "\u04EF", "\u04F1", "\u04F3", "\u04F5", "\u04F7", "\u04F9", "\u04FB", "\u04FD", "\u04FF", "\u0501", "\u0503", "\u0505", "\u0507", "\u0509", "\u050B", "\u050D", "\u050F", "\u0511", "\u0513", "\u0515", "\u0517", "\u0519", "\u051B", "\u051D", "\u051F", "\u0521", "\u0523", "\u0525", "\u0527", "\u0529", "\u052B", "\u052D", "\u052F", ["\u0561", "\u0587"], ["\u13F8", "\u13FD"], ["\u1D00", "\u1D2B"], ["\u1D6B", "\u1D77"], ["\u1D79", "\u1D9A"], "\u1E01", "\u1E03", "\u1E05", "\u1E07", "\u1E09", "\u1E0B", "\u1E0D", "\u1E0F", "\u1E11", "\u1E13", "\u1E15", "\u1E17", "\u1E19", "\u1E1B", "\u1E1D", "\u1E1F", "\u1E21", "\u1E23", "\u1E25", "\u1E27", "\u1E29", "\u1E2B", "\u1E2D", "\u1E2F", "\u1E31", "\u1E33", "\u1E35", "\u1E37", "\u1E39", "\u1E3B", "\u1E3D", "\u1E3F", "\u1E41", "\u1E43", "\u1E45", "\u1E47", "\u1E49", "\u1E4B", "\u1E4D", "\u1E4F", "\u1E51", "\u1E53", "\u1E55", "\u1E57", "\u1E59", "\u1E5B", "\u1E5D", "\u1E5F", "\u1E61", "\u1E63", "\u1E65", "\u1E67", "\u1E69", "\u1E6B", "\u1E6D", "\u1E6F", "\u1E71", "\u1E73", "\u1E75", "\u1E77", "\u1E79", "\u1E7B", "\u1E7D", "\u1E7F", "\u1E81", "\u1E83", "\u1E85", "\u1E87", "\u1E89", "\u1E8B", "\u1E8D", "\u1E8F", "\u1E91", "\u1E93", ["\u1E95", "\u1E9D"], "\u1E9F", "\u1EA1", "\u1EA3", "\u1EA5", "\u1EA7", "\u1EA9", "\u1EAB", "\u1EAD", "\u1EAF", "\u1EB1", "\u1EB3", "\u1EB5", "\u1EB7", "\u1EB9", "\u1EBB", "\u1EBD", "\u1EBF", "\u1EC1", "\u1EC3", "\u1EC5", "\u1EC7", "\u1EC9", "\u1ECB", "\u1ECD", "\u1ECF", "\u1ED1", "\u1ED3", "\u1ED5", "\u1ED7", "\u1ED9", "\u1EDB", "\u1EDD", "\u1EDF", "\u1EE1", "\u1EE3", "\u1EE5", "\u1EE7", "\u1EE9", "\u1EEB", "\u1EED", "\u1EEF", "\u1EF1", "\u1EF3", "\u1EF5", "\u1EF7", "\u1EF9", "\u1EFB", "\u1EFD", ["\u1EFF", "\u1F07"], ["\u1F10", "\u1F15"], ["\u1F20", "\u1F27"], ["\u1F30", "\u1F37"], ["\u1F40", "\u1F45"], ["\u1F50", "\u1F57"], ["\u1F60", "\u1F67"], ["\u1F70", "\u1F7D"], ["\u1F80", "\u1F87"], ["\u1F90", "\u1F97"], ["\u1FA0", "\u1FA7"], ["\u1FB0", "\u1FB4"], ["\u1FB6", "\u1FB7"], "\u1FBE", ["\u1FC2", "\u1FC4"], ["\u1FC6", "\u1FC7"], ["\u1FD0", "\u1FD3"], ["\u1FD6", "\u1FD7"], ["\u1FE0", "\u1FE7"], ["\u1FF2", "\u1FF4"], ["\u1FF6", "\u1FF7"], "\u210A", ["\u210E", "\u210F"], "\u2113", "\u212F", "\u2134", "\u2139", ["\u213C", "\u213D"], ["\u2146", "\u2149"], "\u214E", "\u2184", ["\u2C30", "\u2C5E"], "\u2C61", ["\u2C65", "\u2C66"], "\u2C68", "\u2C6A", "\u2C6C", "\u2C71", ["\u2C73", "\u2C74"], ["\u2C76", "\u2C7B"], "\u2C81", "\u2C83", "\u2C85", "\u2C87", "\u2C89", "\u2C8B", "\u2C8D", "\u2C8F", "\u2C91", "\u2C93", "\u2C95", "\u2C97", "\u2C99", "\u2C9B", "\u2C9D", "\u2C9F", "\u2CA1", "\u2CA3", "\u2CA5", "\u2CA7", "\u2CA9", "\u2CAB", "\u2CAD", "\u2CAF", "\u2CB1", "\u2CB3", "\u2CB5", "\u2CB7", "\u2CB9", "\u2CBB", "\u2CBD", "\u2CBF", "\u2CC1", "\u2CC3", "\u2CC5", "\u2CC7", "\u2CC9", "\u2CCB", "\u2CCD", "\u2CCF", "\u2CD1", "\u2CD3", "\u2CD5", "\u2CD7", "\u2CD9", "\u2CDB", "\u2CDD", "\u2CDF", "\u2CE1", ["\u2CE3", "\u2CE4"], "\u2CEC", "\u2CEE", "\u2CF3", ["\u2D00", "\u2D25"], "\u2D27", "\u2D2D", "\uA641", "\uA643", "\uA645", "\uA647", "\uA649", "\uA64B", "\uA64D", "\uA64F", "\uA651", "\uA653", "\uA655", "\uA657", "\uA659", "\uA65B", "\uA65D", "\uA65F", "\uA661", "\uA663", "\uA665", "\uA667", "\uA669", "\uA66B", "\uA66D", "\uA681", "\uA683", "\uA685", "\uA687", "\uA689", "\uA68B", "\uA68D", "\uA68F", "\uA691", "\uA693", "\uA695", "\uA697", "\uA699", "\uA69B", "\uA723", "\uA725", "\uA727", "\uA729", "\uA72B", "\uA72D", ["\uA72F", "\uA731"], "\uA733", "\uA735", "\uA737", "\uA739", "\uA73B", "\uA73D", "\uA73F", "\uA741", "\uA743", "\uA745", "\uA747", "\uA749", "\uA74B", "\uA74D", "\uA74F", "\uA751", "\uA753", "\uA755", "\uA757", "\uA759", "\uA75B", "\uA75D", "\uA75F", "\uA761", "\uA763", "\uA765", "\uA767", "\uA769", "\uA76B", "\uA76D", "\uA76F", ["\uA771", "\uA778"], "\uA77A", "\uA77C", "\uA77F", "\uA781", "\uA783", "\uA785", "\uA787", "\uA78C", "\uA78E", "\uA791", ["\uA793", "\uA795"], "\uA797", "\uA799", "\uA79B", "\uA79D", "\uA79F", "\uA7A1", "\uA7A3", "\uA7A5", "\uA7A7", "\uA7A9", "\uA7B5", "\uA7B7", "\uA7FA", ["\uAB30", "\uAB5A"], ["\uAB60", "\uAB65"], ["\uAB70", "\uABBF"], ["\uFB00", "\uFB06"], ["\uFB13", "\uFB17"], ["\uFF41", "\uFF5A"]], false, false);
373
+ var peg$e48 = peg$classExpectation([["\u02B0", "\u02C1"], ["\u02C6", "\u02D1"], ["\u02E0", "\u02E4"], "\u02EC", "\u02EE", "\u0374", "\u037A", "\u0559", "\u0640", ["\u06E5", "\u06E6"], ["\u07F4", "\u07F5"], "\u07FA", "\u081A", "\u0824", "\u0828", "\u0971", "\u0E46", "\u0EC6", "\u10FC", "\u17D7", "\u1843", "\u1AA7", ["\u1C78", "\u1C7D"], ["\u1D2C", "\u1D6A"], "\u1D78", ["\u1D9B", "\u1DBF"], "\u2071", "\u207F", ["\u2090", "\u209C"], ["\u2C7C", "\u2C7D"], "\u2D6F", "\u2E2F", "\u3005", ["\u3031", "\u3035"], "\u303B", ["\u309D", "\u309E"], ["\u30FC", "\u30FE"], "\uA015", ["\uA4F8", "\uA4FD"], "\uA60C", "\uA67F", ["\uA69C", "\uA69D"], ["\uA717", "\uA71F"], "\uA770", "\uA788", ["\uA7F8", "\uA7F9"], "\uA9CF", "\uA9E6", "\uAA70", "\uAADD", ["\uAAF3", "\uAAF4"], ["\uAB5C", "\uAB5F"], "\uFF70", ["\uFF9E", "\uFF9F"]], false, false);
374
+ var peg$e49 = peg$classExpectation(["\xAA", "\xBA", "\u01BB", ["\u01C0", "\u01C3"], "\u0294", ["\u05D0", "\u05EA"], ["\u05F0", "\u05F2"], ["\u0620", "\u063F"], ["\u0641", "\u064A"], ["\u066E", "\u066F"], ["\u0671", "\u06D3"], "\u06D5", ["\u06EE", "\u06EF"], ["\u06FA", "\u06FC"], "\u06FF", "\u0710", ["\u0712", "\u072F"], ["\u074D", "\u07A5"], "\u07B1", ["\u07CA", "\u07EA"], ["\u0800", "\u0815"], ["\u0840", "\u0858"], ["\u08A0", "\u08B4"], ["\u0904", "\u0939"], "\u093D", "\u0950", ["\u0958", "\u0961"], ["\u0972", "\u0980"], ["\u0985", "\u098C"], ["\u098F", "\u0990"], ["\u0993", "\u09A8"], ["\u09AA", "\u09B0"], "\u09B2", ["\u09B6", "\u09B9"], "\u09BD", "\u09CE", ["\u09DC", "\u09DD"], ["\u09DF", "\u09E1"], ["\u09F0", "\u09F1"], ["\u0A05", "\u0A0A"], ["\u0A0F", "\u0A10"], ["\u0A13", "\u0A28"], ["\u0A2A", "\u0A30"], ["\u0A32", "\u0A33"], ["\u0A35", "\u0A36"], ["\u0A38", "\u0A39"], ["\u0A59", "\u0A5C"], "\u0A5E", ["\u0A72", "\u0A74"], ["\u0A85", "\u0A8D"], ["\u0A8F", "\u0A91"], ["\u0A93", "\u0AA8"], ["\u0AAA", "\u0AB0"], ["\u0AB2", "\u0AB3"], ["\u0AB5", "\u0AB9"], "\u0ABD", "\u0AD0", ["\u0AE0", "\u0AE1"], "\u0AF9", ["\u0B05", "\u0B0C"], ["\u0B0F", "\u0B10"], ["\u0B13", "\u0B28"], ["\u0B2A", "\u0B30"], ["\u0B32", "\u0B33"], ["\u0B35", "\u0B39"], "\u0B3D", ["\u0B5C", "\u0B5D"], ["\u0B5F", "\u0B61"], "\u0B71", "\u0B83", ["\u0B85", "\u0B8A"], ["\u0B8E", "\u0B90"], ["\u0B92", "\u0B95"], ["\u0B99", "\u0B9A"], "\u0B9C", ["\u0B9E", "\u0B9F"], ["\u0BA3", "\u0BA4"], ["\u0BA8", "\u0BAA"], ["\u0BAE", "\u0BB9"], "\u0BD0", ["\u0C05", "\u0C0C"], ["\u0C0E", "\u0C10"], ["\u0C12", "\u0C28"], ["\u0C2A", "\u0C39"], "\u0C3D", ["\u0C58", "\u0C5A"], ["\u0C60", "\u0C61"], ["\u0C85", "\u0C8C"], ["\u0C8E", "\u0C90"], ["\u0C92", "\u0CA8"], ["\u0CAA", "\u0CB3"], ["\u0CB5", "\u0CB9"], "\u0CBD", "\u0CDE", ["\u0CE0", "\u0CE1"], ["\u0CF1", "\u0CF2"], ["\u0D05", "\u0D0C"], ["\u0D0E", "\u0D10"], ["\u0D12", "\u0D3A"], "\u0D3D", "\u0D4E", ["\u0D5F", "\u0D61"], ["\u0D7A", "\u0D7F"], ["\u0D85", "\u0D96"], ["\u0D9A", "\u0DB1"], ["\u0DB3", "\u0DBB"], "\u0DBD", ["\u0DC0", "\u0DC6"], ["\u0E01", "\u0E30"], ["\u0E32", "\u0E33"], ["\u0E40", "\u0E45"], ["\u0E81", "\u0E82"], "\u0E84", ["\u0E87", "\u0E88"], "\u0E8A", "\u0E8D", ["\u0E94", "\u0E97"], ["\u0E99", "\u0E9F"], ["\u0EA1", "\u0EA3"], "\u0EA5", "\u0EA7", ["\u0EAA", "\u0EAB"], ["\u0EAD", "\u0EB0"], ["\u0EB2", "\u0EB3"], "\u0EBD", ["\u0EC0", "\u0EC4"], ["\u0EDC", "\u0EDF"], "\u0F00", ["\u0F40", "\u0F47"], ["\u0F49", "\u0F6C"], ["\u0F88", "\u0F8C"], ["\u1000", "\u102A"], "\u103F", ["\u1050", "\u1055"], ["\u105A", "\u105D"], "\u1061", ["\u1065", "\u1066"], ["\u106E", "\u1070"], ["\u1075", "\u1081"], "\u108E", ["\u10D0", "\u10FA"], ["\u10FD", "\u1248"], ["\u124A", "\u124D"], ["\u1250", "\u1256"], "\u1258", ["\u125A", "\u125D"], ["\u1260", "\u1288"], ["\u128A", "\u128D"], ["\u1290", "\u12B0"], ["\u12B2", "\u12B5"], ["\u12B8", "\u12BE"], "\u12C0", ["\u12C2", "\u12C5"], ["\u12C8", "\u12D6"], ["\u12D8", "\u1310"], ["\u1312", "\u1315"], ["\u1318", "\u135A"], ["\u1380", "\u138F"], ["\u1401", "\u166C"], ["\u166F", "\u167F"], ["\u1681", "\u169A"], ["\u16A0", "\u16EA"], ["\u16F1", "\u16F8"], ["\u1700", "\u170C"], ["\u170E", "\u1711"], ["\u1720", "\u1731"], ["\u1740", "\u1751"], ["\u1760", "\u176C"], ["\u176E", "\u1770"], ["\u1780", "\u17B3"], "\u17DC", ["\u1820", "\u1842"], ["\u1844", "\u1877"], ["\u1880", "\u18A8"], "\u18AA", ["\u18B0", "\u18F5"], ["\u1900", "\u191E"], ["\u1950", "\u196D"], ["\u1970", "\u1974"], ["\u1980", "\u19AB"], ["\u19B0", "\u19C9"], ["\u1A00", "\u1A16"], ["\u1A20", "\u1A54"], ["\u1B05", "\u1B33"], ["\u1B45", "\u1B4B"], ["\u1B83", "\u1BA0"], ["\u1BAE", "\u1BAF"], ["\u1BBA", "\u1BE5"], ["\u1C00", "\u1C23"], ["\u1C4D", "\u1C4F"], ["\u1C5A", "\u1C77"], ["\u1CE9", "\u1CEC"], ["\u1CEE", "\u1CF1"], ["\u1CF5", "\u1CF6"], ["\u2135", "\u2138"], ["\u2D30", "\u2D67"], ["\u2D80", "\u2D96"], ["\u2DA0", "\u2DA6"], ["\u2DA8", "\u2DAE"], ["\u2DB0", "\u2DB6"], ["\u2DB8", "\u2DBE"], ["\u2DC0", "\u2DC6"], ["\u2DC8", "\u2DCE"], ["\u2DD0", "\u2DD6"], ["\u2DD8", "\u2DDE"], "\u3006", "\u303C", ["\u3041", "\u3096"], "\u309F", ["\u30A1", "\u30FA"], "\u30FF", ["\u3105", "\u312D"], ["\u3131", "\u318E"], ["\u31A0", "\u31BA"], ["\u31F0", "\u31FF"], ["\u3400", "\u4DB5"], ["\u4E00", "\u9FD5"], ["\uA000", "\uA014"], ["\uA016", "\uA48C"], ["\uA4D0", "\uA4F7"], ["\uA500", "\uA60B"], ["\uA610", "\uA61F"], ["\uA62A", "\uA62B"], "\uA66E", ["\uA6A0", "\uA6E5"], "\uA78F", "\uA7F7", ["\uA7FB", "\uA801"], ["\uA803", "\uA805"], ["\uA807", "\uA80A"], ["\uA80C", "\uA822"], ["\uA840", "\uA873"], ["\uA882", "\uA8B3"], ["\uA8F2", "\uA8F7"], "\uA8FB", "\uA8FD", ["\uA90A", "\uA925"], ["\uA930", "\uA946"], ["\uA960", "\uA97C"], ["\uA984", "\uA9B2"], ["\uA9E0", "\uA9E4"], ["\uA9E7", "\uA9EF"], ["\uA9FA", "\uA9FE"], ["\uAA00", "\uAA28"], ["\uAA40", "\uAA42"], ["\uAA44", "\uAA4B"], ["\uAA60", "\uAA6F"], ["\uAA71", "\uAA76"], "\uAA7A", ["\uAA7E", "\uAAAF"], "\uAAB1", ["\uAAB5", "\uAAB6"], ["\uAAB9", "\uAABD"], "\uAAC0", "\uAAC2", ["\uAADB", "\uAADC"], ["\uAAE0", "\uAAEA"], "\uAAF2", ["\uAB01", "\uAB06"], ["\uAB09", "\uAB0E"], ["\uAB11", "\uAB16"], ["\uAB20", "\uAB26"], ["\uAB28", "\uAB2E"], ["\uABC0", "\uABE2"], ["\uAC00", "\uD7A3"], ["\uD7B0", "\uD7C6"], ["\uD7CB", "\uD7FB"], ["\uF900", "\uFA6D"], ["\uFA70", "\uFAD9"], "\uFB1D", ["\uFB1F", "\uFB28"], ["\uFB2A", "\uFB36"], ["\uFB38", "\uFB3C"], "\uFB3E", ["\uFB40", "\uFB41"], ["\uFB43", "\uFB44"], ["\uFB46", "\uFBB1"], ["\uFBD3", "\uFD3D"], ["\uFD50", "\uFD8F"], ["\uFD92", "\uFDC7"], ["\uFDF0", "\uFDFB"], ["\uFE70", "\uFE74"], ["\uFE76", "\uFEFC"], ["\uFF66", "\uFF6F"], ["\uFF71", "\uFF9D"], ["\uFFA0", "\uFFBE"], ["\uFFC2", "\uFFC7"], ["\uFFCA", "\uFFCF"], ["\uFFD2", "\uFFD7"], ["\uFFDA", "\uFFDC"]], false, false);
375
+ var peg$e50 = peg$classExpectation(["\u01C5", "\u01C8", "\u01CB", "\u01F2", ["\u1F88", "\u1F8F"], ["\u1F98", "\u1F9F"], ["\u1FA8", "\u1FAF"], "\u1FBC", "\u1FCC", "\u1FFC"], false, false);
376
+ var peg$e51 = peg$classExpectation([["A", "Z"], ["\xC0", "\xD6"], ["\xD8", "\xDE"], "\u0100", "\u0102", "\u0104", "\u0106", "\u0108", "\u010A", "\u010C", "\u010E", "\u0110", "\u0112", "\u0114", "\u0116", "\u0118", "\u011A", "\u011C", "\u011E", "\u0120", "\u0122", "\u0124", "\u0126", "\u0128", "\u012A", "\u012C", "\u012E", "\u0130", "\u0132", "\u0134", "\u0136", "\u0139", "\u013B", "\u013D", "\u013F", "\u0141", "\u0143", "\u0145", "\u0147", "\u014A", "\u014C", "\u014E", "\u0150", "\u0152", "\u0154", "\u0156", "\u0158", "\u015A", "\u015C", "\u015E", "\u0160", "\u0162", "\u0164", "\u0166", "\u0168", "\u016A", "\u016C", "\u016E", "\u0170", "\u0172", "\u0174", "\u0176", ["\u0178", "\u0179"], "\u017B", "\u017D", ["\u0181", "\u0182"], "\u0184", ["\u0186", "\u0187"], ["\u0189", "\u018B"], ["\u018E", "\u0191"], ["\u0193", "\u0194"], ["\u0196", "\u0198"], ["\u019C", "\u019D"], ["\u019F", "\u01A0"], "\u01A2", "\u01A4", ["\u01A6", "\u01A7"], "\u01A9", "\u01AC", ["\u01AE", "\u01AF"], ["\u01B1", "\u01B3"], "\u01B5", ["\u01B7", "\u01B8"], "\u01BC", "\u01C4", "\u01C7", "\u01CA", "\u01CD", "\u01CF", "\u01D1", "\u01D3", "\u01D5", "\u01D7", "\u01D9", "\u01DB", "\u01DE", "\u01E0", "\u01E2", "\u01E4", "\u01E6", "\u01E8", "\u01EA", "\u01EC", "\u01EE", "\u01F1", "\u01F4", ["\u01F6", "\u01F8"], "\u01FA", "\u01FC", "\u01FE", "\u0200", "\u0202", "\u0204", "\u0206", "\u0208", "\u020A", "\u020C", "\u020E", "\u0210", "\u0212", "\u0214", "\u0216", "\u0218", "\u021A", "\u021C", "\u021E", "\u0220", "\u0222", "\u0224", "\u0226", "\u0228", "\u022A", "\u022C", "\u022E", "\u0230", "\u0232", ["\u023A", "\u023B"], ["\u023D", "\u023E"], "\u0241", ["\u0243", "\u0246"], "\u0248", "\u024A", "\u024C", "\u024E", "\u0370", "\u0372", "\u0376", "\u037F", "\u0386", ["\u0388", "\u038A"], "\u038C", ["\u038E", "\u038F"], ["\u0391", "\u03A1"], ["\u03A3", "\u03AB"], "\u03CF", ["\u03D2", "\u03D4"], "\u03D8", "\u03DA", "\u03DC", "\u03DE", "\u03E0", "\u03E2", "\u03E4", "\u03E6", "\u03E8", "\u03EA", "\u03EC", "\u03EE", "\u03F4", "\u03F7", ["\u03F9", "\u03FA"], ["\u03FD", "\u042F"], "\u0460", "\u0462", "\u0464", "\u0466", "\u0468", "\u046A", "\u046C", "\u046E", "\u0470", "\u0472", "\u0474", "\u0476", "\u0478", "\u047A", "\u047C", "\u047E", "\u0480", "\u048A", "\u048C", "\u048E", "\u0490", "\u0492", "\u0494", "\u0496", "\u0498", "\u049A", "\u049C", "\u049E", "\u04A0", "\u04A2", "\u04A4", "\u04A6", "\u04A8", "\u04AA", "\u04AC", "\u04AE", "\u04B0", "\u04B2", "\u04B4", "\u04B6", "\u04B8", "\u04BA", "\u04BC", "\u04BE", ["\u04C0", "\u04C1"], "\u04C3", "\u04C5", "\u04C7", "\u04C9", "\u04CB", "\u04CD", "\u04D0", "\u04D2", "\u04D4", "\u04D6", "\u04D8", "\u04DA", "\u04DC", "\u04DE", "\u04E0", "\u04E2", "\u04E4", "\u04E6", "\u04E8", "\u04EA", "\u04EC", "\u04EE", "\u04F0", "\u04F2", "\u04F4", "\u04F6", "\u04F8", "\u04FA", "\u04FC", "\u04FE", "\u0500", "\u0502", "\u0504", "\u0506", "\u0508", "\u050A", "\u050C", "\u050E", "\u0510", "\u0512", "\u0514", "\u0516", "\u0518", "\u051A", "\u051C", "\u051E", "\u0520", "\u0522", "\u0524", "\u0526", "\u0528", "\u052A", "\u052C", "\u052E", ["\u0531", "\u0556"], ["\u10A0", "\u10C5"], "\u10C7", "\u10CD", ["\u13A0", "\u13F5"], "\u1E00", "\u1E02", "\u1E04", "\u1E06", "\u1E08", "\u1E0A", "\u1E0C", "\u1E0E", "\u1E10", "\u1E12", "\u1E14", "\u1E16", "\u1E18", "\u1E1A", "\u1E1C", "\u1E1E", "\u1E20", "\u1E22", "\u1E24", "\u1E26", "\u1E28", "\u1E2A", "\u1E2C", "\u1E2E", "\u1E30", "\u1E32", "\u1E34", "\u1E36", "\u1E38", "\u1E3A", "\u1E3C", "\u1E3E", "\u1E40", "\u1E42", "\u1E44", "\u1E46", "\u1E48", "\u1E4A", "\u1E4C", "\u1E4E", "\u1E50", "\u1E52", "\u1E54", "\u1E56", "\u1E58", "\u1E5A", "\u1E5C", "\u1E5E", "\u1E60", "\u1E62", "\u1E64", "\u1E66", "\u1E68", "\u1E6A", "\u1E6C", "\u1E6E", "\u1E70", "\u1E72", "\u1E74", "\u1E76", "\u1E78", "\u1E7A", "\u1E7C", "\u1E7E", "\u1E80", "\u1E82", "\u1E84", "\u1E86", "\u1E88", "\u1E8A", "\u1E8C", "\u1E8E", "\u1E90", "\u1E92", "\u1E94", "\u1E9E", "\u1EA0", "\u1EA2", "\u1EA4", "\u1EA6", "\u1EA8", "\u1EAA", "\u1EAC", "\u1EAE", "\u1EB0", "\u1EB2", "\u1EB4", "\u1EB6", "\u1EB8", "\u1EBA", "\u1EBC", "\u1EBE", "\u1EC0", "\u1EC2", "\u1EC4", "\u1EC6", "\u1EC8", "\u1ECA", "\u1ECC", "\u1ECE", "\u1ED0", "\u1ED2", "\u1ED4", "\u1ED6", "\u1ED8", "\u1EDA", "\u1EDC", "\u1EDE", "\u1EE0", "\u1EE2", "\u1EE4", "\u1EE6", "\u1EE8", "\u1EEA", "\u1EEC", "\u1EEE", "\u1EF0", "\u1EF2", "\u1EF4", "\u1EF6", "\u1EF8", "\u1EFA", "\u1EFC", "\u1EFE", ["\u1F08", "\u1F0F"], ["\u1F18", "\u1F1D"], ["\u1F28", "\u1F2F"], ["\u1F38", "\u1F3F"], ["\u1F48", "\u1F4D"], "\u1F59", "\u1F5B", "\u1F5D", "\u1F5F", ["\u1F68", "\u1F6F"], ["\u1FB8", "\u1FBB"], ["\u1FC8", "\u1FCB"], ["\u1FD8", "\u1FDB"], ["\u1FE8", "\u1FEC"], ["\u1FF8", "\u1FFB"], "\u2102", "\u2107", ["\u210B", "\u210D"], ["\u2110", "\u2112"], "\u2115", ["\u2119", "\u211D"], "\u2124", "\u2126", "\u2128", ["\u212A", "\u212D"], ["\u2130", "\u2133"], ["\u213E", "\u213F"], "\u2145", "\u2183", ["\u2C00", "\u2C2E"], "\u2C60", ["\u2C62", "\u2C64"], "\u2C67", "\u2C69", "\u2C6B", ["\u2C6D", "\u2C70"], "\u2C72", "\u2C75", ["\u2C7E", "\u2C80"], "\u2C82", "\u2C84", "\u2C86", "\u2C88", "\u2C8A", "\u2C8C", "\u2C8E", "\u2C90", "\u2C92", "\u2C94", "\u2C96", "\u2C98", "\u2C9A", "\u2C9C", "\u2C9E", "\u2CA0", "\u2CA2", "\u2CA4", "\u2CA6", "\u2CA8", "\u2CAA", "\u2CAC", "\u2CAE", "\u2CB0", "\u2CB2", "\u2CB4", "\u2CB6", "\u2CB8", "\u2CBA", "\u2CBC", "\u2CBE", "\u2CC0", "\u2CC2", "\u2CC4", "\u2CC6", "\u2CC8", "\u2CCA", "\u2CCC", "\u2CCE", "\u2CD0", "\u2CD2", "\u2CD4", "\u2CD6", "\u2CD8", "\u2CDA", "\u2CDC", "\u2CDE", "\u2CE0", "\u2CE2", "\u2CEB", "\u2CED", "\u2CF2", "\uA640", "\uA642", "\uA644", "\uA646", "\uA648", "\uA64A", "\uA64C", "\uA64E", "\uA650", "\uA652", "\uA654", "\uA656", "\uA658", "\uA65A", "\uA65C", "\uA65E", "\uA660", "\uA662", "\uA664", "\uA666", "\uA668", "\uA66A", "\uA66C", "\uA680", "\uA682", "\uA684", "\uA686", "\uA688", "\uA68A", "\uA68C", "\uA68E", "\uA690", "\uA692", "\uA694", "\uA696", "\uA698", "\uA69A", "\uA722", "\uA724", "\uA726", "\uA728", "\uA72A", "\uA72C", "\uA72E", "\uA732", "\uA734", "\uA736", "\uA738", "\uA73A", "\uA73C", "\uA73E", "\uA740", "\uA742", "\uA744", "\uA746", "\uA748", "\uA74A", "\uA74C", "\uA74E", "\uA750", "\uA752", "\uA754", "\uA756", "\uA758", "\uA75A", "\uA75C", "\uA75E", "\uA760", "\uA762", "\uA764", "\uA766", "\uA768", "\uA76A", "\uA76C", "\uA76E", "\uA779", "\uA77B", ["\uA77D", "\uA77E"], "\uA780", "\uA782", "\uA784", "\uA786", "\uA78B", "\uA78D", "\uA790", "\uA792", "\uA796", "\uA798", "\uA79A", "\uA79C", "\uA79E", "\uA7A0", "\uA7A2", "\uA7A4", "\uA7A6", "\uA7A8", ["\uA7AA", "\uA7AD"], ["\uA7B0", "\uA7B4"], "\uA7B6", ["\uFF21", "\uFF3A"]], false, false);
377
+ var peg$e52 = peg$classExpectation(["\u0903", "\u093B", ["\u093E", "\u0940"], ["\u0949", "\u094C"], ["\u094E", "\u094F"], ["\u0982", "\u0983"], ["\u09BE", "\u09C0"], ["\u09C7", "\u09C8"], ["\u09CB", "\u09CC"], "\u09D7", "\u0A03", ["\u0A3E", "\u0A40"], "\u0A83", ["\u0ABE", "\u0AC0"], "\u0AC9", ["\u0ACB", "\u0ACC"], ["\u0B02", "\u0B03"], "\u0B3E", "\u0B40", ["\u0B47", "\u0B48"], ["\u0B4B", "\u0B4C"], "\u0B57", ["\u0BBE", "\u0BBF"], ["\u0BC1", "\u0BC2"], ["\u0BC6", "\u0BC8"], ["\u0BCA", "\u0BCC"], "\u0BD7", ["\u0C01", "\u0C03"], ["\u0C41", "\u0C44"], ["\u0C82", "\u0C83"], "\u0CBE", ["\u0CC0", "\u0CC4"], ["\u0CC7", "\u0CC8"], ["\u0CCA", "\u0CCB"], ["\u0CD5", "\u0CD6"], ["\u0D02", "\u0D03"], ["\u0D3E", "\u0D40"], ["\u0D46", "\u0D48"], ["\u0D4A", "\u0D4C"], "\u0D57", ["\u0D82", "\u0D83"], ["\u0DCF", "\u0DD1"], ["\u0DD8", "\u0DDF"], ["\u0DF2", "\u0DF3"], ["\u0F3E", "\u0F3F"], "\u0F7F", ["\u102B", "\u102C"], "\u1031", "\u1038", ["\u103B", "\u103C"], ["\u1056", "\u1057"], ["\u1062", "\u1064"], ["\u1067", "\u106D"], ["\u1083", "\u1084"], ["\u1087", "\u108C"], "\u108F", ["\u109A", "\u109C"], "\u17B6", ["\u17BE", "\u17C5"], ["\u17C7", "\u17C8"], ["\u1923", "\u1926"], ["\u1929", "\u192B"], ["\u1930", "\u1931"], ["\u1933", "\u1938"], ["\u1A19", "\u1A1A"], "\u1A55", "\u1A57", "\u1A61", ["\u1A63", "\u1A64"], ["\u1A6D", "\u1A72"], "\u1B04", "\u1B35", "\u1B3B", ["\u1B3D", "\u1B41"], ["\u1B43", "\u1B44"], "\u1B82", "\u1BA1", ["\u1BA6", "\u1BA7"], "\u1BAA", "\u1BE7", ["\u1BEA", "\u1BEC"], "\u1BEE", ["\u1BF2", "\u1BF3"], ["\u1C24", "\u1C2B"], ["\u1C34", "\u1C35"], "\u1CE1", ["\u1CF2", "\u1CF3"], ["\u302E", "\u302F"], ["\uA823", "\uA824"], "\uA827", ["\uA880", "\uA881"], ["\uA8B4", "\uA8C3"], ["\uA952", "\uA953"], "\uA983", ["\uA9B4", "\uA9B5"], ["\uA9BA", "\uA9BB"], ["\uA9BD", "\uA9C0"], ["\uAA2F", "\uAA30"], ["\uAA33", "\uAA34"], "\uAA4D", "\uAA7B", "\uAA7D", "\uAAEB", ["\uAAEE", "\uAAEF"], "\uAAF5", ["\uABE3", "\uABE4"], ["\uABE6", "\uABE7"], ["\uABE9", "\uABEA"], "\uABEC"], false, false);
378
+ var peg$e53 = peg$classExpectation([["\u0300", "\u036F"], ["\u0483", "\u0487"], ["\u0591", "\u05BD"], "\u05BF", ["\u05C1", "\u05C2"], ["\u05C4", "\u05C5"], "\u05C7", ["\u0610", "\u061A"], ["\u064B", "\u065F"], "\u0670", ["\u06D6", "\u06DC"], ["\u06DF", "\u06E4"], ["\u06E7", "\u06E8"], ["\u06EA", "\u06ED"], "\u0711", ["\u0730", "\u074A"], ["\u07A6", "\u07B0"], ["\u07EB", "\u07F3"], ["\u0816", "\u0819"], ["\u081B", "\u0823"], ["\u0825", "\u0827"], ["\u0829", "\u082D"], ["\u0859", "\u085B"], ["\u08E3", "\u0902"], "\u093A", "\u093C", ["\u0941", "\u0948"], "\u094D", ["\u0951", "\u0957"], ["\u0962", "\u0963"], "\u0981", "\u09BC", ["\u09C1", "\u09C4"], "\u09CD", ["\u09E2", "\u09E3"], ["\u0A01", "\u0A02"], "\u0A3C", ["\u0A41", "\u0A42"], ["\u0A47", "\u0A48"], ["\u0A4B", "\u0A4D"], "\u0A51", ["\u0A70", "\u0A71"], "\u0A75", ["\u0A81", "\u0A82"], "\u0ABC", ["\u0AC1", "\u0AC5"], ["\u0AC7", "\u0AC8"], "\u0ACD", ["\u0AE2", "\u0AE3"], "\u0B01", "\u0B3C", "\u0B3F", ["\u0B41", "\u0B44"], "\u0B4D", "\u0B56", ["\u0B62", "\u0B63"], "\u0B82", "\u0BC0", "\u0BCD", "\u0C00", ["\u0C3E", "\u0C40"], ["\u0C46", "\u0C48"], ["\u0C4A", "\u0C4D"], ["\u0C55", "\u0C56"], ["\u0C62", "\u0C63"], "\u0C81", "\u0CBC", "\u0CBF", "\u0CC6", ["\u0CCC", "\u0CCD"], ["\u0CE2", "\u0CE3"], "\u0D01", ["\u0D41", "\u0D44"], "\u0D4D", ["\u0D62", "\u0D63"], "\u0DCA", ["\u0DD2", "\u0DD4"], "\u0DD6", "\u0E31", ["\u0E34", "\u0E3A"], ["\u0E47", "\u0E4E"], "\u0EB1", ["\u0EB4", "\u0EB9"], ["\u0EBB", "\u0EBC"], ["\u0EC8", "\u0ECD"], ["\u0F18", "\u0F19"], "\u0F35", "\u0F37", "\u0F39", ["\u0F71", "\u0F7E"], ["\u0F80", "\u0F84"], ["\u0F86", "\u0F87"], ["\u0F8D", "\u0F97"], ["\u0F99", "\u0FBC"], "\u0FC6", ["\u102D", "\u1030"], ["\u1032", "\u1037"], ["\u1039", "\u103A"], ["\u103D", "\u103E"], ["\u1058", "\u1059"], ["\u105E", "\u1060"], ["\u1071", "\u1074"], "\u1082", ["\u1085", "\u1086"], "\u108D", "\u109D", ["\u135D", "\u135F"], ["\u1712", "\u1714"], ["\u1732", "\u1734"], ["\u1752", "\u1753"], ["\u1772", "\u1773"], ["\u17B4", "\u17B5"], ["\u17B7", "\u17BD"], "\u17C6", ["\u17C9", "\u17D3"], "\u17DD", ["\u180B", "\u180D"], "\u18A9", ["\u1920", "\u1922"], ["\u1927", "\u1928"], "\u1932", ["\u1939", "\u193B"], ["\u1A17", "\u1A18"], "\u1A1B", "\u1A56", ["\u1A58", "\u1A5E"], "\u1A60", "\u1A62", ["\u1A65", "\u1A6C"], ["\u1A73", "\u1A7C"], "\u1A7F", ["\u1AB0", "\u1ABD"], ["\u1B00", "\u1B03"], "\u1B34", ["\u1B36", "\u1B3A"], "\u1B3C", "\u1B42", ["\u1B6B", "\u1B73"], ["\u1B80", "\u1B81"], ["\u1BA2", "\u1BA5"], ["\u1BA8", "\u1BA9"], ["\u1BAB", "\u1BAD"], "\u1BE6", ["\u1BE8", "\u1BE9"], "\u1BED", ["\u1BEF", "\u1BF1"], ["\u1C2C", "\u1C33"], ["\u1C36", "\u1C37"], ["\u1CD0", "\u1CD2"], ["\u1CD4", "\u1CE0"], ["\u1CE2", "\u1CE8"], "\u1CED", "\u1CF4", ["\u1CF8", "\u1CF9"], ["\u1DC0", "\u1DF5"], ["\u1DFC", "\u1DFF"], ["\u20D0", "\u20DC"], "\u20E1", ["\u20E5", "\u20F0"], ["\u2CEF", "\u2CF1"], "\u2D7F", ["\u2DE0", "\u2DFF"], ["\u302A", "\u302D"], ["\u3099", "\u309A"], "\uA66F", ["\uA674", "\uA67D"], ["\uA69E", "\uA69F"], ["\uA6F0", "\uA6F1"], "\uA802", "\uA806", "\uA80B", ["\uA825", "\uA826"], "\uA8C4", ["\uA8E0", "\uA8F1"], ["\uA926", "\uA92D"], ["\uA947", "\uA951"], ["\uA980", "\uA982"], "\uA9B3", ["\uA9B6", "\uA9B9"], "\uA9BC", "\uA9E5", ["\uAA29", "\uAA2E"], ["\uAA31", "\uAA32"], ["\uAA35", "\uAA36"], "\uAA43", "\uAA4C", "\uAA7C", "\uAAB0", ["\uAAB2", "\uAAB4"], ["\uAAB7", "\uAAB8"], ["\uAABE", "\uAABF"], "\uAAC1", ["\uAAEC", "\uAAED"], "\uAAF6", "\uABE5", "\uABE8", "\uABED", "\uFB1E", ["\uFE00", "\uFE0F"], ["\uFE20", "\uFE2F"]], false, false);
379
+ var peg$e54 = peg$classExpectation([["0", "9"], ["\u0660", "\u0669"], ["\u06F0", "\u06F9"], ["\u07C0", "\u07C9"], ["\u0966", "\u096F"], ["\u09E6", "\u09EF"], ["\u0A66", "\u0A6F"], ["\u0AE6", "\u0AEF"], ["\u0B66", "\u0B6F"], ["\u0BE6", "\u0BEF"], ["\u0C66", "\u0C6F"], ["\u0CE6", "\u0CEF"], ["\u0D66", "\u0D6F"], ["\u0DE6", "\u0DEF"], ["\u0E50", "\u0E59"], ["\u0ED0", "\u0ED9"], ["\u0F20", "\u0F29"], ["\u1040", "\u1049"], ["\u1090", "\u1099"], ["\u17E0", "\u17E9"], ["\u1810", "\u1819"], ["\u1946", "\u194F"], ["\u19D0", "\u19D9"], ["\u1A80", "\u1A89"], ["\u1A90", "\u1A99"], ["\u1B50", "\u1B59"], ["\u1BB0", "\u1BB9"], ["\u1C40", "\u1C49"], ["\u1C50", "\u1C59"], ["\uA620", "\uA629"], ["\uA8D0", "\uA8D9"], ["\uA900", "\uA909"], ["\uA9D0", "\uA9D9"], ["\uA9F0", "\uA9F9"], ["\uAA50", "\uAA59"], ["\uABF0", "\uABF9"], ["\uFF10", "\uFF19"]], false, false);
380
+ var peg$e55 = peg$classExpectation([["\u16EE", "\u16F0"], ["\u2160", "\u2182"], ["\u2185", "\u2188"], "\u3007", ["\u3021", "\u3029"], ["\u3038", "\u303A"], ["\uA6E6", "\uA6EF"]], false, false);
381
+ var peg$e56 = peg$classExpectation(["_", ["\u203F", "\u2040"], "\u2054", ["\uFE33", "\uFE34"], ["\uFE4D", "\uFE4F"], "\uFF3F"], false, false);
382
+ var peg$e57 = peg$classExpectation([" ", "\xA0", "\u1680", ["\u2000", "\u200A"], "\u202F", "\u205F", "\u3000"], false, false);
383
+ var peg$e58 = peg$literalExpectation("and", false);
384
+ var peg$e59 = peg$literalExpectation("else", false);
385
+ var peg$e60 = peg$literalExpectation("false", false);
386
+ var peg$e61 = peg$literalExpectation("if", false);
387
+ var peg$e62 = peg$literalExpectation("in", false);
388
+ var peg$e63 = peg$literalExpectation("not", false);
389
+ var peg$e64 = peg$literalExpectation("null", false);
390
+ var peg$e65 = peg$literalExpectation("or", false);
391
+ var peg$e66 = peg$literalExpectation("then", false);
392
+ var peg$e67 = peg$literalExpectation("true", false);
393
+ var peg$e68 = peg$literalExpectation("typeof", false);
394
+ var peg$e69 = peg$literalExpectation("mod", false);
395
+ var peg$e70 = peg$literalExpectation("let", false);
396
+ var peg$e71 = peg$literalExpectation("(", false);
397
+ var peg$e72 = peg$literalExpectation(")", false);
398
+ var peg$e73 = peg$literalExpectation("[", false);
399
+ var peg$e74 = peg$literalExpectation("]", false);
400
+ var peg$e75 = peg$literalExpectation(",", false);
401
+ var peg$e76 = peg$literalExpectation("{", false);
402
+ var peg$e77 = peg$literalExpectation("...", false);
403
+ var peg$e78 = peg$literalExpectation(":", false);
404
+ var peg$e79 = peg$literalExpectation("::", false);
405
+ var peg$e80 = peg$literalExpectation("!", false);
406
+ var peg$e81 = peg$literalExpectation("=", false);
407
+ var peg$e82 = peg$literalExpectation("#", false);
408
+ var peg$e83 = peg$literalExpectation("^", false);
409
+ var peg$e84 = peg$classExpectation(["*", "/"], false, false);
410
+ var peg$e85 = peg$literalExpectation("&", false);
411
+ var peg$e86 = peg$literalExpectation("<=", false);
412
+ var peg$e87 = peg$literalExpectation(">=", false);
413
+ var peg$e88 = peg$classExpectation(["<", ">"], false, false);
414
+ var peg$e89 = peg$literalExpectation("==", false);
415
+ var peg$e90 = peg$literalExpectation("!=", false);
416
+ var peg$e91 = peg$literalExpectation("&&", false);
417
+ var peg$e92 = peg$literalExpectation("||", false);
418
+ var peg$e93 = peg$literalExpectation("??", false);
419
+ var peg$e94 = peg$literalExpectation("|?", false);
420
+ var peg$e95 = peg$literalExpectation("|>", false);
421
+ var peg$e96 = peg$literalExpectation("|", false);
422
+ var peg$e97 = peg$literalExpectation("%", false);
423
+ var peg$e98 = peg$literalExpectation("=>", false);
413
424
 
414
425
  var peg$f0 = function(statement) { return statement; };
415
426
  var peg$f1 = function(name) { return name; };
@@ -494,101 +505,173 @@ function peg$parse(input, options) {
494
505
  var peg$f16 = function(sequence) { return sequence; };
495
506
  var peg$f17 = function() { return text(); };
496
507
  var peg$f18 = function(sequence) { return sequence; };
497
- var peg$f19 = function() { return ""; };
498
- var peg$f20 = function() { return "\0"; };
499
- var peg$f21 = function() { return "\b"; };
500
- var peg$f22 = function() { return "\f"; };
501
- var peg$f23 = function() { return "\n"; };
502
- var peg$f24 = function() { return "\r"; };
503
- var peg$f25 = function() { return "\t"; };
504
- var peg$f26 = function() { return "\v"; };
505
- var peg$f27 = function() { return text(); };
506
- var peg$f28 = function(digits) {
508
+ var peg$f19 = function(head, parts) {
509
+ var quasis = [];
510
+ var expressions = [];
511
+
512
+ quasis.push({
513
+ value: head.join(""),
514
+ location: getLocation(location())
515
+ });
516
+
517
+ for (var i = 0; i < parts.length; i++) {
518
+ expressions.push(parts[i].expression);
519
+ quasis.push({
520
+ value: (parts[i].suffix || []).join(""),
521
+ location: getLocation(location())
522
+ });
523
+ }
524
+
525
+ return {
526
+ type: "TemplateLiteral",
527
+ tag: null,
528
+ quasis: quasis,
529
+ expressions: expressions,
530
+ location: getLocation(location())
531
+ };
532
+ };
533
+ var peg$f20 = function(expression, suffix) {
534
+ return { expression: expression, suffix: suffix };
535
+ };
536
+ var peg$f21 = function(sequence) { return sequence; };
537
+ var peg$f22 = function() { return text(); };
538
+ var peg$f23 = function() { return "`"; };
539
+ var peg$f24 = function() { return "$"; };
540
+ var peg$f25 = function() { return ""; };
541
+ var peg$f26 = function() { return "\0"; };
542
+ var peg$f27 = function() { return "\b"; };
543
+ var peg$f28 = function() { return "\f"; };
544
+ var peg$f29 = function() { return "\n"; };
545
+ var peg$f30 = function() { return "\r"; };
546
+ var peg$f31 = function() { return "\t"; };
547
+ var peg$f32 = function() { return "\v"; };
548
+ var peg$f33 = function() { return text(); };
549
+ var peg$f34 = function(digits) {
507
550
  return String.fromCharCode(parseInt(digits, 16));
508
551
  };
509
- var peg$f29 = function(digits) {
552
+ var peg$f35 = function(digits) {
510
553
  return String.fromCharCode(parseInt(digits, 16));
511
554
  };
512
- var peg$f30 = function(expression) { return expression; };
513
- var peg$f31 = function(elision) {
555
+ var peg$f36 = function(expression) { return expression; };
556
+ var peg$f37 = function(elision) {
514
557
  return {
515
558
  type: "ArrayExpression",
516
559
  elements: optionalList(extractOptional(elision, 0)),
517
560
  location: getLocation(location())
518
561
  };
519
562
  };
520
- var peg$f32 = function(elements) {
563
+ var peg$f38 = function(elements) {
521
564
  return {
522
565
  type: "ArrayExpression",
523
566
  elements: elements,
524
567
  location: getLocation(location())
525
568
  };
526
569
  };
527
- var peg$f33 = function(elements, elision) {
570
+ var peg$f39 = function(elements, elision) {
528
571
  return {
529
572
  type: "ArrayExpression",
530
573
  elements: elements.concat(optionalList(extractOptional(elision, 0))),
531
574
  location: getLocation(location())
532
575
  };
533
576
  };
534
- var peg$f34 = function(elision, element) {
577
+ var peg$f40 = function(elision, element) {
535
578
  return optionalList(extractOptional(elision, 0)).concat(element);
536
579
  };
537
- var peg$f35 = function(head, elision, element) {
580
+ var peg$f41 = function(head, elision, element) {
538
581
  return optionalList(extractOptional(elision, 0)).concat(element);
539
582
  };
540
- var peg$f36 = function(head, tail) { return Array.prototype.concat.apply(head, tail); };
541
- var peg$f37 = function(commas) { return filledArray(commas.length + 1, null); };
542
- var peg$f38 = function() {
583
+ var peg$f42 = function(head, tail) { return Array.prototype.concat.apply(head, tail); };
584
+ var peg$f43 = function(commas) { return filledArray(commas.length + 1, null); };
585
+ var peg$f44 = function() {
543
586
  return {
544
587
  type: "ObjectExpression",
545
588
  properties: [],
546
589
  location: getLocation(location())
547
590
  };
548
591
  };
549
- var peg$f39 = function(properties) {
592
+ var peg$f45 = function(properties) {
550
593
  return {
551
594
  type: "ObjectExpression",
552
595
  properties: properties,
553
596
  location: getLocation(location())
554
597
  };
555
598
  };
556
- var peg$f40 = function(properties) {
599
+ var peg$f46 = function(properties) {
557
600
  return {
558
601
  type: "ObjectExpression",
559
602
  properties: properties,
560
603
  location: getLocation(location())
561
604
  };
562
605
  };
563
- var peg$f41 = function(head, tail) {
606
+ var peg$f47 = function(head, tail) {
564
607
  return buildList(head, tail, 3);
565
608
  };
566
- var peg$f42 = function(key, value) {
609
+ var peg$f48 = function(argument) {
610
+ return {
611
+ type: "SpreadElement",
612
+ argument: argument,
613
+ location: getLocation(location())
614
+ };
615
+ };
616
+ var peg$f49 = function(key, value) {
617
+ return {
618
+ type: "Property",
619
+ key: key,
620
+ value: value,
621
+ computed: false,
622
+ kind: "init",
623
+ location: getLocation(location())
624
+ };
625
+ };
626
+ var peg$f50 = function(key, value) {
567
627
  return {
568
628
  type: "Property",
569
629
  key: key,
570
630
  value: value,
631
+ computed: true,
571
632
  kind: "init",
572
633
  location: getLocation(location())
573
634
  };
574
635
  };
575
- var peg$f43 = function(head, property) {
636
+ var peg$f51 = function(head, property) {
576
637
  return {
577
638
  property: property, computed: true, extension: false, location: getLocation(location())
578
639
  };
579
640
  };
580
- var peg$f44 = function(head, property) {
641
+ var peg$f52 = function(head, property) {
581
642
  return {
582
643
  property: property, computed: false, extension: false, location: getLocation(location())
583
644
  };
584
645
  };
585
- var peg$f45 = function(head, property) {
646
+ var peg$f53 = function(head, property) {
586
647
  return {
587
648
  property: property, computed: false, extension: true, location: getLocation(location())
588
649
  };
589
650
  };
590
- var peg$f46 = function(head, tail) {
651
+ var peg$f54 = function(head, template) {
652
+ return {
653
+ tagged: true, template: template, location: getLocation(location())
654
+ };
655
+ };
656
+ var peg$f55 = function(head) {
657
+ return {
658
+ nonNullAssert: true, location: getLocation(location())
659
+ };
660
+ };
661
+ var peg$f56 = function(head, tail) {
591
662
  return tail.reduce(function(result, element) {
663
+ if (element.tagged) {
664
+ element.template.tag = result;
665
+ element.template.location = getLocation(location());
666
+ return element.template;
667
+ }
668
+ if (element.nonNullAssert) {
669
+ return {
670
+ type: "NonNullAssertExpression",
671
+ expression: result,
672
+ location: element.location
673
+ };
674
+ }
592
675
  return {
593
676
  type: "MemberExpression",
594
677
  object: result,
@@ -599,7 +682,7 @@ function peg$parse(input, options) {
599
682
  };
600
683
  }, head);
601
684
  };
602
- var peg$f47 = function(callee, args) {
685
+ var peg$f57 = function(callee, args) {
603
686
  return {
604
687
  type: "CallExpression",
605
688
  callee: callee,
@@ -607,14 +690,14 @@ function peg$parse(input, options) {
607
690
  location: getLocation(location())
608
691
  };
609
692
  };
610
- var peg$f48 = function(head, args) {
693
+ var peg$f58 = function(head, args) {
611
694
  return {
612
695
  type: "CallExpression",
613
696
  arguments: args,
614
697
  location: getLocation(location())
615
698
  };
616
699
  };
617
- var peg$f49 = function(head, property) {
700
+ var peg$f59 = function(head, property) {
618
701
  return {
619
702
  type: "MemberExpression",
620
703
  property: property,
@@ -622,35 +705,67 @@ function peg$parse(input, options) {
622
705
  location: getLocation(location())
623
706
  };
624
707
  };
625
- var peg$f50 = function(head, property) {
708
+ var peg$f60 = function(head, property) {
709
+ return {
710
+ type: "MemberExpression",
711
+ property: property,
712
+ computed: false,
713
+ extension: false,
714
+ location: getLocation(location())
715
+ };
716
+ };
717
+ var peg$f61 = function(head, property) {
626
718
  return {
627
719
  type: "MemberExpression",
628
720
  property: property,
629
721
  computed: false,
722
+ extension: true,
630
723
  location: getLocation(location())
631
724
  };
632
725
  };
633
- var peg$f51 = function(head, tail) {
726
+ var peg$f62 = function(head, template) {
727
+ return {
728
+ tagged: true, template: template, location: getLocation(location())
729
+ };
730
+ };
731
+ var peg$f63 = function(head) {
732
+ return {
733
+ nonNullAssert: true, location: getLocation(location())
734
+ };
735
+ };
736
+ var peg$f64 = function(head, tail) {
634
737
  return tail.reduce(function(result, element) {
738
+ if (element.tagged) {
739
+ element.template.tag = result;
740
+ element.template.location = getLocation(location());
741
+ return element.template;
742
+ }
743
+ if (element.nonNullAssert) {
744
+ return {
745
+ type: "NonNullAssertExpression",
746
+ expression: result,
747
+ location: element.location
748
+ };
749
+ }
635
750
  element[TYPES_TO_PROPERTY_NAMES[element.type]] = result;
636
751
 
637
752
  return element;
638
753
  }, head);
639
754
  };
640
- var peg$f52 = function(args) {
755
+ var peg$f65 = function(args) {
641
756
  return optionalList(extractOptional(args, 0));
642
757
  };
643
- var peg$f53 = function(head, tail) {
758
+ var peg$f66 = function(head, tail) {
644
759
  return buildList(head, tail, 3);
645
760
  };
646
- var peg$f54 = function() {
761
+ var peg$f67 = function() {
647
762
  return {
648
763
  type: 'CurryPlaceholder',
649
764
  location: getLocation(location())
650
765
  }
651
766
  };
652
- var peg$f55 = function(head, tail) { return buildBinaryExpression(head, tail, location()); };
653
- var peg$f56 = function(operator, argument) {
767
+ var peg$f68 = function(head, tail) { return buildBinaryExpression(head, tail, location()); };
768
+ var peg$f69 = function(operator, argument) {
654
769
  return {
655
770
  type: "UnaryExpression",
656
771
  operator: operator,
@@ -659,14 +774,14 @@ function peg$parse(input, options) {
659
774
  location: getLocation(location())
660
775
  };
661
776
  };
662
- var peg$f57 = function(head, tail) { return buildBinaryExpression(head, tail, location()); };
663
- var peg$f58 = function(head, tail) { return buildBinaryExpression(head, tail, location()); };
664
- var peg$f59 = function(head, tail) { return buildBinaryExpression(head, tail, location()); };
665
- var peg$f60 = function(head, tail) { return buildBinaryExpression(head, tail, location()); };
666
- var peg$f61 = function(head, tail) { return buildBinaryExpression(head, tail, location()); };
667
- var peg$f62 = function(head, tail) { return buildLogicalExpression(head, tail, location()); };
668
- var peg$f63 = function(head, tail) { return buildLogicalExpression(head, tail, location()); };
669
- var peg$f64 = function(test, consequent, alternate) {
777
+ var peg$f70 = function(head, tail) { return buildBinaryExpression(head, tail, location()); };
778
+ var peg$f71 = function(head, tail) { return buildBinaryExpression(head, tail, location()); };
779
+ var peg$f72 = function(head, tail) { return buildBinaryExpression(head, tail, location()); };
780
+ var peg$f73 = function(head, tail) { return buildBinaryExpression(head, tail, location()); };
781
+ var peg$f74 = function(head, tail) { return buildBinaryExpression(head, tail, location()); };
782
+ var peg$f75 = function(head, tail) { return buildLogicalExpression(head, tail, location()); };
783
+ var peg$f76 = function(head, tail) { return buildLogicalExpression(head, tail, location()); };
784
+ var peg$f77 = function(test, consequent, alternate) {
670
785
  return {
671
786
  type: "ConditionalExpression",
672
787
  test: test,
@@ -675,7 +790,7 @@ function peg$parse(input, options) {
675
790
  location: getLocation(location())
676
791
  };
677
792
  };
678
- var peg$f65 = function(test, consequent) {
793
+ var peg$f78 = function(test, consequent) {
679
794
  return {
680
795
  type: "ConditionalExpression",
681
796
  test: test,
@@ -684,25 +799,25 @@ function peg$parse(input, options) {
684
799
  location: getLocation(location())
685
800
  };
686
801
  };
687
- var peg$f66 = function(head, tail) {
802
+ var peg$f79 = function(head, tail) {
688
803
  return buildExpression(
689
804
  "NullishCoalescingExpression",
690
805
  head, tail, getLocation(location())
691
806
  );
692
807
  };
693
- var peg$f67 = function(head, operator, expression) { return { operator, expression } };
694
- var peg$f68 = function(head, tail) {
808
+ var peg$f80 = function(head, operator, expression) { return { operator, expression } };
809
+ var peg$f81 = function(head, tail) {
695
810
  return tail.length > 0
696
811
  ? { type: "PipeSequence", head, tail, location: getLocation(location()) }
697
812
  : head
698
813
  };
699
- var peg$f69 = function() {
814
+ var peg$f82 = function() {
700
815
  return {
701
816
  type: "TopicReference",
702
817
  location: getLocation(location())
703
818
  };
704
819
  };
705
- var peg$f70 = function(params, body) {
820
+ var peg$f83 = function(params, body) {
706
821
  return {
707
822
  type: "LambdaExpression",
708
823
  params: optionalList(extractOptional(params, 0)),
@@ -710,7 +825,7 @@ function peg$parse(input, options) {
710
825
  location: getLocation(location())
711
826
  };
712
827
  };
713
- var peg$f71 = function(param, body) {
828
+ var peg$f84 = function(param, body) {
714
829
  return {
715
830
  type: "LambdaExpression",
716
831
  params: [param],
@@ -718,10 +833,10 @@ function peg$parse(input, options) {
718
833
  location: getLocation(location())
719
834
  }
720
835
  };
721
- var peg$f72 = function(head, tail) {
836
+ var peg$f85 = function(head, tail) {
722
837
  return buildList(head, tail, 3);
723
838
  };
724
- var peg$f73 = function(declarations, body) {
839
+ var peg$f86 = function(declarations, body) {
725
840
  return {
726
841
  type: "LetExpression",
727
842
  declarations,
@@ -729,10 +844,10 @@ function peg$parse(input, options) {
729
844
  location: getLocation(location())
730
845
  }
731
846
  };
732
- var peg$f74 = function(head, tail) {
847
+ var peg$f87 = function(head, tail) {
733
848
  return buildList(head, tail, 3);
734
849
  };
735
- var peg$f75 = function(id, init) {
850
+ var peg$f88 = function(id, init) {
736
851
  return {
737
852
  type: "VariableDeclarator",
738
853
  id: id,
@@ -740,8 +855,8 @@ function peg$parse(input, options) {
740
855
  location: getLocation(location())
741
856
  };
742
857
  };
743
- var peg$f76 = function(expression) { return expression; };
744
- var peg$f77 = function(expression) {
858
+ var peg$f89 = function(expression) { return expression; };
859
+ var peg$f90 = function(expression) {
745
860
  return {
746
861
  type: "ExpressionStatement",
747
862
  expression: expression
@@ -2102,6 +2217,222 @@ function peg$parse(input, options) {
2102
2217
  return s0;
2103
2218
  }
2104
2219
 
2220
+ function peg$parseTemplateLiteral() {
2221
+ var s0, s1, s2, s3, s4;
2222
+
2223
+ peg$silentFails++;
2224
+ s0 = peg$currPos;
2225
+ if (input.charCodeAt(peg$currPos) === 96) {
2226
+ s1 = peg$c12;
2227
+ peg$currPos++;
2228
+ } else {
2229
+ s1 = peg$FAILED;
2230
+ if (peg$silentFails === 0) { peg$fail(peg$e33); }
2231
+ }
2232
+ if (s1 !== peg$FAILED) {
2233
+ s2 = [];
2234
+ s3 = peg$parseTemplateCharacter();
2235
+ while (s3 !== peg$FAILED) {
2236
+ s2.push(s3);
2237
+ s3 = peg$parseTemplateCharacter();
2238
+ }
2239
+ s3 = [];
2240
+ s4 = peg$parseTemplatePart();
2241
+ while (s4 !== peg$FAILED) {
2242
+ s3.push(s4);
2243
+ s4 = peg$parseTemplatePart();
2244
+ }
2245
+ if (input.charCodeAt(peg$currPos) === 96) {
2246
+ s4 = peg$c12;
2247
+ peg$currPos++;
2248
+ } else {
2249
+ s4 = peg$FAILED;
2250
+ if (peg$silentFails === 0) { peg$fail(peg$e33); }
2251
+ }
2252
+ if (s4 !== peg$FAILED) {
2253
+ peg$savedPos = s0;
2254
+ s0 = peg$f19(s2, s3);
2255
+ } else {
2256
+ peg$currPos = s0;
2257
+ s0 = peg$FAILED;
2258
+ }
2259
+ } else {
2260
+ peg$currPos = s0;
2261
+ s0 = peg$FAILED;
2262
+ }
2263
+ peg$silentFails--;
2264
+ if (s0 === peg$FAILED) {
2265
+ s1 = peg$FAILED;
2266
+ if (peg$silentFails === 0) { peg$fail(peg$e32); }
2267
+ }
2268
+
2269
+ return s0;
2270
+ }
2271
+
2272
+ function peg$parseTemplatePart() {
2273
+ var s0, s1, s2, s3, s4, s5, s6, s7;
2274
+
2275
+ s0 = peg$currPos;
2276
+ if (input.substr(peg$currPos, 2) === peg$c13) {
2277
+ s1 = peg$c13;
2278
+ peg$currPos += 2;
2279
+ } else {
2280
+ s1 = peg$FAILED;
2281
+ if (peg$silentFails === 0) { peg$fail(peg$e34); }
2282
+ }
2283
+ if (s1 !== peg$FAILED) {
2284
+ s2 = peg$parse__();
2285
+ s3 = peg$parseExpression();
2286
+ if (s3 !== peg$FAILED) {
2287
+ s4 = peg$parse__();
2288
+ if (input.charCodeAt(peg$currPos) === 125) {
2289
+ s5 = peg$c14;
2290
+ peg$currPos++;
2291
+ } else {
2292
+ s5 = peg$FAILED;
2293
+ if (peg$silentFails === 0) { peg$fail(peg$e35); }
2294
+ }
2295
+ if (s5 !== peg$FAILED) {
2296
+ s6 = [];
2297
+ s7 = peg$parseTemplateCharacter();
2298
+ while (s7 !== peg$FAILED) {
2299
+ s6.push(s7);
2300
+ s7 = peg$parseTemplateCharacter();
2301
+ }
2302
+ peg$savedPos = s0;
2303
+ s0 = peg$f20(s3, s6);
2304
+ } else {
2305
+ peg$currPos = s0;
2306
+ s0 = peg$FAILED;
2307
+ }
2308
+ } else {
2309
+ peg$currPos = s0;
2310
+ s0 = peg$FAILED;
2311
+ }
2312
+ } else {
2313
+ peg$currPos = s0;
2314
+ s0 = peg$FAILED;
2315
+ }
2316
+
2317
+ return s0;
2318
+ }
2319
+
2320
+ function peg$parseTemplateCharacter() {
2321
+ var s0, s1, s2;
2322
+
2323
+ s0 = peg$currPos;
2324
+ if (input.charCodeAt(peg$currPos) === 92) {
2325
+ s1 = peg$c5;
2326
+ peg$currPos++;
2327
+ } else {
2328
+ s1 = peg$FAILED;
2329
+ if (peg$silentFails === 0) { peg$fail(peg$e14); }
2330
+ }
2331
+ if (s1 !== peg$FAILED) {
2332
+ s2 = peg$parseTemplateEscapeSequence();
2333
+ if (s2 !== peg$FAILED) {
2334
+ peg$savedPos = s0;
2335
+ s0 = peg$f21(s2);
2336
+ } else {
2337
+ peg$currPos = s0;
2338
+ s0 = peg$FAILED;
2339
+ }
2340
+ } else {
2341
+ peg$currPos = s0;
2342
+ s0 = peg$FAILED;
2343
+ }
2344
+ if (s0 === peg$FAILED) {
2345
+ s0 = peg$currPos;
2346
+ s1 = peg$currPos;
2347
+ peg$silentFails++;
2348
+ if (input.charCodeAt(peg$currPos) === 96) {
2349
+ s2 = peg$c12;
2350
+ peg$currPos++;
2351
+ } else {
2352
+ s2 = peg$FAILED;
2353
+ if (peg$silentFails === 0) { peg$fail(peg$e33); }
2354
+ }
2355
+ if (s2 === peg$FAILED) {
2356
+ if (input.substr(peg$currPos, 2) === peg$c13) {
2357
+ s2 = peg$c13;
2358
+ peg$currPos += 2;
2359
+ } else {
2360
+ s2 = peg$FAILED;
2361
+ if (peg$silentFails === 0) { peg$fail(peg$e34); }
2362
+ }
2363
+ if (s2 === peg$FAILED) {
2364
+ if (input.charCodeAt(peg$currPos) === 92) {
2365
+ s2 = peg$c5;
2366
+ peg$currPos++;
2367
+ } else {
2368
+ s2 = peg$FAILED;
2369
+ if (peg$silentFails === 0) { peg$fail(peg$e14); }
2370
+ }
2371
+ }
2372
+ }
2373
+ peg$silentFails--;
2374
+ if (s2 === peg$FAILED) {
2375
+ s1 = undefined;
2376
+ } else {
2377
+ peg$currPos = s1;
2378
+ s1 = peg$FAILED;
2379
+ }
2380
+ if (s1 !== peg$FAILED) {
2381
+ s2 = peg$parseSourceCharacter();
2382
+ if (s2 !== peg$FAILED) {
2383
+ peg$savedPos = s0;
2384
+ s0 = peg$f22();
2385
+ } else {
2386
+ peg$currPos = s0;
2387
+ s0 = peg$FAILED;
2388
+ }
2389
+ } else {
2390
+ peg$currPos = s0;
2391
+ s0 = peg$FAILED;
2392
+ }
2393
+ }
2394
+
2395
+ return s0;
2396
+ }
2397
+
2398
+ function peg$parseTemplateEscapeSequence() {
2399
+ var s0, s1;
2400
+
2401
+ s0 = peg$currPos;
2402
+ if (input.charCodeAt(peg$currPos) === 96) {
2403
+ s1 = peg$c12;
2404
+ peg$currPos++;
2405
+ } else {
2406
+ s1 = peg$FAILED;
2407
+ if (peg$silentFails === 0) { peg$fail(peg$e33); }
2408
+ }
2409
+ if (s1 !== peg$FAILED) {
2410
+ peg$savedPos = s0;
2411
+ s1 = peg$f23();
2412
+ }
2413
+ s0 = s1;
2414
+ if (s0 === peg$FAILED) {
2415
+ s0 = peg$currPos;
2416
+ if (input.charCodeAt(peg$currPos) === 36) {
2417
+ s1 = peg$c15;
2418
+ peg$currPos++;
2419
+ } else {
2420
+ s1 = peg$FAILED;
2421
+ if (peg$silentFails === 0) { peg$fail(peg$e36); }
2422
+ }
2423
+ if (s1 !== peg$FAILED) {
2424
+ peg$savedPos = s0;
2425
+ s1 = peg$f24();
2426
+ }
2427
+ s0 = s1;
2428
+ if (s0 === peg$FAILED) {
2429
+ s0 = peg$parseEscapeSequence();
2430
+ }
2431
+ }
2432
+
2433
+ return s0;
2434
+ }
2435
+
2105
2436
  function peg$parseLineContinuation() {
2106
2437
  var s0, s1, s2;
2107
2438
 
@@ -2117,7 +2448,7 @@ function peg$parse(input, options) {
2117
2448
  s2 = peg$parseLineTerminatorSequence();
2118
2449
  if (s2 !== peg$FAILED) {
2119
2450
  peg$savedPos = s0;
2120
- s0 = peg$f19();
2451
+ s0 = peg$f25();
2121
2452
  } else {
2122
2453
  peg$currPos = s0;
2123
2454
  s0 = peg$FAILED;
@@ -2156,7 +2487,7 @@ function peg$parse(input, options) {
2156
2487
  }
2157
2488
  if (s2 !== peg$FAILED) {
2158
2489
  peg$savedPos = s0;
2159
- s0 = peg$f20();
2490
+ s0 = peg$f26();
2160
2491
  } else {
2161
2492
  peg$currPos = s0;
2162
2493
  s0 = peg$FAILED;
@@ -2195,90 +2526,90 @@ function peg$parse(input, options) {
2195
2526
  peg$currPos++;
2196
2527
  } else {
2197
2528
  s0 = peg$FAILED;
2198
- if (peg$silentFails === 0) { peg$fail(peg$e32); }
2529
+ if (peg$silentFails === 0) { peg$fail(peg$e37); }
2199
2530
  }
2200
2531
  if (s0 === peg$FAILED) {
2201
2532
  s0 = peg$currPos;
2202
2533
  if (input.charCodeAt(peg$currPos) === 98) {
2203
- s1 = peg$c12;
2534
+ s1 = peg$c16;
2204
2535
  peg$currPos++;
2205
2536
  } else {
2206
2537
  s1 = peg$FAILED;
2207
- if (peg$silentFails === 0) { peg$fail(peg$e33); }
2538
+ if (peg$silentFails === 0) { peg$fail(peg$e38); }
2208
2539
  }
2209
2540
  if (s1 !== peg$FAILED) {
2210
2541
  peg$savedPos = s0;
2211
- s1 = peg$f21();
2542
+ s1 = peg$f27();
2212
2543
  }
2213
2544
  s0 = s1;
2214
2545
  if (s0 === peg$FAILED) {
2215
2546
  s0 = peg$currPos;
2216
2547
  if (input.charCodeAt(peg$currPos) === 102) {
2217
- s1 = peg$c13;
2548
+ s1 = peg$c17;
2218
2549
  peg$currPos++;
2219
2550
  } else {
2220
2551
  s1 = peg$FAILED;
2221
- if (peg$silentFails === 0) { peg$fail(peg$e34); }
2552
+ if (peg$silentFails === 0) { peg$fail(peg$e39); }
2222
2553
  }
2223
2554
  if (s1 !== peg$FAILED) {
2224
2555
  peg$savedPos = s0;
2225
- s1 = peg$f22();
2556
+ s1 = peg$f28();
2226
2557
  }
2227
2558
  s0 = s1;
2228
2559
  if (s0 === peg$FAILED) {
2229
2560
  s0 = peg$currPos;
2230
2561
  if (input.charCodeAt(peg$currPos) === 110) {
2231
- s1 = peg$c14;
2562
+ s1 = peg$c18;
2232
2563
  peg$currPos++;
2233
2564
  } else {
2234
2565
  s1 = peg$FAILED;
2235
- if (peg$silentFails === 0) { peg$fail(peg$e35); }
2566
+ if (peg$silentFails === 0) { peg$fail(peg$e40); }
2236
2567
  }
2237
2568
  if (s1 !== peg$FAILED) {
2238
2569
  peg$savedPos = s0;
2239
- s1 = peg$f23();
2570
+ s1 = peg$f29();
2240
2571
  }
2241
2572
  s0 = s1;
2242
2573
  if (s0 === peg$FAILED) {
2243
2574
  s0 = peg$currPos;
2244
2575
  if (input.charCodeAt(peg$currPos) === 114) {
2245
- s1 = peg$c15;
2576
+ s1 = peg$c19;
2246
2577
  peg$currPos++;
2247
2578
  } else {
2248
2579
  s1 = peg$FAILED;
2249
- if (peg$silentFails === 0) { peg$fail(peg$e36); }
2580
+ if (peg$silentFails === 0) { peg$fail(peg$e41); }
2250
2581
  }
2251
2582
  if (s1 !== peg$FAILED) {
2252
2583
  peg$savedPos = s0;
2253
- s1 = peg$f24();
2584
+ s1 = peg$f30();
2254
2585
  }
2255
2586
  s0 = s1;
2256
2587
  if (s0 === peg$FAILED) {
2257
2588
  s0 = peg$currPos;
2258
2589
  if (input.charCodeAt(peg$currPos) === 116) {
2259
- s1 = peg$c16;
2590
+ s1 = peg$c20;
2260
2591
  peg$currPos++;
2261
2592
  } else {
2262
2593
  s1 = peg$FAILED;
2263
- if (peg$silentFails === 0) { peg$fail(peg$e37); }
2594
+ if (peg$silentFails === 0) { peg$fail(peg$e42); }
2264
2595
  }
2265
2596
  if (s1 !== peg$FAILED) {
2266
2597
  peg$savedPos = s0;
2267
- s1 = peg$f25();
2598
+ s1 = peg$f31();
2268
2599
  }
2269
2600
  s0 = s1;
2270
2601
  if (s0 === peg$FAILED) {
2271
2602
  s0 = peg$currPos;
2272
2603
  if (input.charCodeAt(peg$currPos) === 118) {
2273
- s1 = peg$c17;
2604
+ s1 = peg$c21;
2274
2605
  peg$currPos++;
2275
2606
  } else {
2276
2607
  s1 = peg$FAILED;
2277
- if (peg$silentFails === 0) { peg$fail(peg$e38); }
2608
+ if (peg$silentFails === 0) { peg$fail(peg$e43); }
2278
2609
  }
2279
2610
  if (s1 !== peg$FAILED) {
2280
2611
  peg$savedPos = s0;
2281
- s1 = peg$f26();
2612
+ s1 = peg$f32();
2282
2613
  }
2283
2614
  s0 = s1;
2284
2615
  }
@@ -2312,7 +2643,7 @@ function peg$parse(input, options) {
2312
2643
  s2 = peg$parseSourceCharacter();
2313
2644
  if (s2 !== peg$FAILED) {
2314
2645
  peg$savedPos = s0;
2315
- s0 = peg$f27();
2646
+ s0 = peg$f33();
2316
2647
  } else {
2317
2648
  peg$currPos = s0;
2318
2649
  s0 = peg$FAILED;
@@ -2335,7 +2666,7 @@ function peg$parse(input, options) {
2335
2666
  peg$currPos++;
2336
2667
  } else {
2337
2668
  s0 = peg$FAILED;
2338
- if (peg$silentFails === 0) { peg$fail(peg$e39); }
2669
+ if (peg$silentFails === 0) { peg$fail(peg$e44); }
2339
2670
  }
2340
2671
  }
2341
2672
 
@@ -2347,11 +2678,11 @@ function peg$parse(input, options) {
2347
2678
 
2348
2679
  s0 = peg$currPos;
2349
2680
  if (input.charCodeAt(peg$currPos) === 120) {
2350
- s1 = peg$c18;
2681
+ s1 = peg$c22;
2351
2682
  peg$currPos++;
2352
2683
  } else {
2353
2684
  s1 = peg$FAILED;
2354
- if (peg$silentFails === 0) { peg$fail(peg$e40); }
2685
+ if (peg$silentFails === 0) { peg$fail(peg$e45); }
2355
2686
  }
2356
2687
  if (s1 !== peg$FAILED) {
2357
2688
  s2 = peg$currPos;
@@ -2377,7 +2708,7 @@ function peg$parse(input, options) {
2377
2708
  }
2378
2709
  if (s2 !== peg$FAILED) {
2379
2710
  peg$savedPos = s0;
2380
- s0 = peg$f28(s2);
2711
+ s0 = peg$f34(s2);
2381
2712
  } else {
2382
2713
  peg$currPos = s0;
2383
2714
  s0 = peg$FAILED;
@@ -2395,11 +2726,11 @@ function peg$parse(input, options) {
2395
2726
 
2396
2727
  s0 = peg$currPos;
2397
2728
  if (input.charCodeAt(peg$currPos) === 117) {
2398
- s1 = peg$c19;
2729
+ s1 = peg$c23;
2399
2730
  peg$currPos++;
2400
2731
  } else {
2401
2732
  s1 = peg$FAILED;
2402
- if (peg$silentFails === 0) { peg$fail(peg$e41); }
2733
+ if (peg$silentFails === 0) { peg$fail(peg$e46); }
2403
2734
  }
2404
2735
  if (s1 !== peg$FAILED) {
2405
2736
  s2 = peg$currPos;
@@ -2437,7 +2768,7 @@ function peg$parse(input, options) {
2437
2768
  }
2438
2769
  if (s2 !== peg$FAILED) {
2439
2770
  peg$savedPos = s0;
2440
- s0 = peg$f29(s2);
2771
+ s0 = peg$f35(s2);
2441
2772
  } else {
2442
2773
  peg$currPos = s0;
2443
2774
  s0 = peg$FAILED;
@@ -2458,7 +2789,7 @@ function peg$parse(input, options) {
2458
2789
  peg$currPos++;
2459
2790
  } else {
2460
2791
  s0 = peg$FAILED;
2461
- if (peg$silentFails === 0) { peg$fail(peg$e42); }
2792
+ if (peg$silentFails === 0) { peg$fail(peg$e47); }
2462
2793
  }
2463
2794
 
2464
2795
  return s0;
@@ -2472,7 +2803,7 @@ function peg$parse(input, options) {
2472
2803
  peg$currPos++;
2473
2804
  } else {
2474
2805
  s0 = peg$FAILED;
2475
- if (peg$silentFails === 0) { peg$fail(peg$e43); }
2806
+ if (peg$silentFails === 0) { peg$fail(peg$e48); }
2476
2807
  }
2477
2808
 
2478
2809
  return s0;
@@ -2486,7 +2817,7 @@ function peg$parse(input, options) {
2486
2817
  peg$currPos++;
2487
2818
  } else {
2488
2819
  s0 = peg$FAILED;
2489
- if (peg$silentFails === 0) { peg$fail(peg$e44); }
2820
+ if (peg$silentFails === 0) { peg$fail(peg$e49); }
2490
2821
  }
2491
2822
 
2492
2823
  return s0;
@@ -2500,7 +2831,7 @@ function peg$parse(input, options) {
2500
2831
  peg$currPos++;
2501
2832
  } else {
2502
2833
  s0 = peg$FAILED;
2503
- if (peg$silentFails === 0) { peg$fail(peg$e45); }
2834
+ if (peg$silentFails === 0) { peg$fail(peg$e50); }
2504
2835
  }
2505
2836
 
2506
2837
  return s0;
@@ -2514,7 +2845,7 @@ function peg$parse(input, options) {
2514
2845
  peg$currPos++;
2515
2846
  } else {
2516
2847
  s0 = peg$FAILED;
2517
- if (peg$silentFails === 0) { peg$fail(peg$e46); }
2848
+ if (peg$silentFails === 0) { peg$fail(peg$e51); }
2518
2849
  }
2519
2850
 
2520
2851
  return s0;
@@ -2528,7 +2859,7 @@ function peg$parse(input, options) {
2528
2859
  peg$currPos++;
2529
2860
  } else {
2530
2861
  s0 = peg$FAILED;
2531
- if (peg$silentFails === 0) { peg$fail(peg$e47); }
2862
+ if (peg$silentFails === 0) { peg$fail(peg$e52); }
2532
2863
  }
2533
2864
 
2534
2865
  return s0;
@@ -2542,7 +2873,7 @@ function peg$parse(input, options) {
2542
2873
  peg$currPos++;
2543
2874
  } else {
2544
2875
  s0 = peg$FAILED;
2545
- if (peg$silentFails === 0) { peg$fail(peg$e48); }
2876
+ if (peg$silentFails === 0) { peg$fail(peg$e53); }
2546
2877
  }
2547
2878
 
2548
2879
  return s0;
@@ -2556,7 +2887,7 @@ function peg$parse(input, options) {
2556
2887
  peg$currPos++;
2557
2888
  } else {
2558
2889
  s0 = peg$FAILED;
2559
- if (peg$silentFails === 0) { peg$fail(peg$e49); }
2890
+ if (peg$silentFails === 0) { peg$fail(peg$e54); }
2560
2891
  }
2561
2892
 
2562
2893
  return s0;
@@ -2570,7 +2901,7 @@ function peg$parse(input, options) {
2570
2901
  peg$currPos++;
2571
2902
  } else {
2572
2903
  s0 = peg$FAILED;
2573
- if (peg$silentFails === 0) { peg$fail(peg$e50); }
2904
+ if (peg$silentFails === 0) { peg$fail(peg$e55); }
2574
2905
  }
2575
2906
 
2576
2907
  return s0;
@@ -2584,7 +2915,7 @@ function peg$parse(input, options) {
2584
2915
  peg$currPos++;
2585
2916
  } else {
2586
2917
  s0 = peg$FAILED;
2587
- if (peg$silentFails === 0) { peg$fail(peg$e51); }
2918
+ if (peg$silentFails === 0) { peg$fail(peg$e56); }
2588
2919
  }
2589
2920
 
2590
2921
  return s0;
@@ -2598,7 +2929,7 @@ function peg$parse(input, options) {
2598
2929
  peg$currPos++;
2599
2930
  } else {
2600
2931
  s0 = peg$FAILED;
2601
- if (peg$silentFails === 0) { peg$fail(peg$e52); }
2932
+ if (peg$silentFails === 0) { peg$fail(peg$e57); }
2602
2933
  }
2603
2934
 
2604
2935
  return s0;
@@ -2608,12 +2939,12 @@ function peg$parse(input, options) {
2608
2939
  var s0, s1, s2, s3;
2609
2940
 
2610
2941
  s0 = peg$currPos;
2611
- if (input.substr(peg$currPos, 3) === peg$c20) {
2612
- s1 = peg$c20;
2942
+ if (input.substr(peg$currPos, 3) === peg$c24) {
2943
+ s1 = peg$c24;
2613
2944
  peg$currPos += 3;
2614
2945
  } else {
2615
2946
  s1 = peg$FAILED;
2616
- if (peg$silentFails === 0) { peg$fail(peg$e53); }
2947
+ if (peg$silentFails === 0) { peg$fail(peg$e58); }
2617
2948
  }
2618
2949
  if (s1 !== peg$FAILED) {
2619
2950
  s2 = peg$currPos;
@@ -2645,12 +2976,12 @@ function peg$parse(input, options) {
2645
2976
  var s0, s1, s2, s3;
2646
2977
 
2647
2978
  s0 = peg$currPos;
2648
- if (input.substr(peg$currPos, 4) === peg$c21) {
2649
- s1 = peg$c21;
2979
+ if (input.substr(peg$currPos, 4) === peg$c25) {
2980
+ s1 = peg$c25;
2650
2981
  peg$currPos += 4;
2651
2982
  } else {
2652
2983
  s1 = peg$FAILED;
2653
- if (peg$silentFails === 0) { peg$fail(peg$e54); }
2984
+ if (peg$silentFails === 0) { peg$fail(peg$e59); }
2654
2985
  }
2655
2986
  if (s1 !== peg$FAILED) {
2656
2987
  s2 = peg$currPos;
@@ -2682,12 +3013,12 @@ function peg$parse(input, options) {
2682
3013
  var s0, s1, s2, s3;
2683
3014
 
2684
3015
  s0 = peg$currPos;
2685
- if (input.substr(peg$currPos, 5) === peg$c22) {
2686
- s1 = peg$c22;
3016
+ if (input.substr(peg$currPos, 5) === peg$c26) {
3017
+ s1 = peg$c26;
2687
3018
  peg$currPos += 5;
2688
3019
  } else {
2689
3020
  s1 = peg$FAILED;
2690
- if (peg$silentFails === 0) { peg$fail(peg$e55); }
3021
+ if (peg$silentFails === 0) { peg$fail(peg$e60); }
2691
3022
  }
2692
3023
  if (s1 !== peg$FAILED) {
2693
3024
  s2 = peg$currPos;
@@ -2719,12 +3050,12 @@ function peg$parse(input, options) {
2719
3050
  var s0, s1, s2, s3;
2720
3051
 
2721
3052
  s0 = peg$currPos;
2722
- if (input.substr(peg$currPos, 2) === peg$c23) {
2723
- s1 = peg$c23;
3053
+ if (input.substr(peg$currPos, 2) === peg$c27) {
3054
+ s1 = peg$c27;
2724
3055
  peg$currPos += 2;
2725
3056
  } else {
2726
3057
  s1 = peg$FAILED;
2727
- if (peg$silentFails === 0) { peg$fail(peg$e56); }
3058
+ if (peg$silentFails === 0) { peg$fail(peg$e61); }
2728
3059
  }
2729
3060
  if (s1 !== peg$FAILED) {
2730
3061
  s2 = peg$currPos;
@@ -2756,12 +3087,12 @@ function peg$parse(input, options) {
2756
3087
  var s0, s1, s2, s3;
2757
3088
 
2758
3089
  s0 = peg$currPos;
2759
- if (input.substr(peg$currPos, 2) === peg$c24) {
2760
- s1 = peg$c24;
3090
+ if (input.substr(peg$currPos, 2) === peg$c28) {
3091
+ s1 = peg$c28;
2761
3092
  peg$currPos += 2;
2762
3093
  } else {
2763
3094
  s1 = peg$FAILED;
2764
- if (peg$silentFails === 0) { peg$fail(peg$e57); }
3095
+ if (peg$silentFails === 0) { peg$fail(peg$e62); }
2765
3096
  }
2766
3097
  if (s1 !== peg$FAILED) {
2767
3098
  s2 = peg$currPos;
@@ -2793,12 +3124,12 @@ function peg$parse(input, options) {
2793
3124
  var s0, s1, s2, s3;
2794
3125
 
2795
3126
  s0 = peg$currPos;
2796
- if (input.substr(peg$currPos, 3) === peg$c25) {
2797
- s1 = peg$c25;
3127
+ if (input.substr(peg$currPos, 3) === peg$c29) {
3128
+ s1 = peg$c29;
2798
3129
  peg$currPos += 3;
2799
3130
  } else {
2800
3131
  s1 = peg$FAILED;
2801
- if (peg$silentFails === 0) { peg$fail(peg$e58); }
3132
+ if (peg$silentFails === 0) { peg$fail(peg$e63); }
2802
3133
  }
2803
3134
  if (s1 !== peg$FAILED) {
2804
3135
  s2 = peg$currPos;
@@ -2830,12 +3161,12 @@ function peg$parse(input, options) {
2830
3161
  var s0, s1, s2, s3;
2831
3162
 
2832
3163
  s0 = peg$currPos;
2833
- if (input.substr(peg$currPos, 4) === peg$c26) {
2834
- s1 = peg$c26;
3164
+ if (input.substr(peg$currPos, 4) === peg$c30) {
3165
+ s1 = peg$c30;
2835
3166
  peg$currPos += 4;
2836
3167
  } else {
2837
3168
  s1 = peg$FAILED;
2838
- if (peg$silentFails === 0) { peg$fail(peg$e59); }
3169
+ if (peg$silentFails === 0) { peg$fail(peg$e64); }
2839
3170
  }
2840
3171
  if (s1 !== peg$FAILED) {
2841
3172
  s2 = peg$currPos;
@@ -2867,12 +3198,12 @@ function peg$parse(input, options) {
2867
3198
  var s0, s1, s2, s3;
2868
3199
 
2869
3200
  s0 = peg$currPos;
2870
- if (input.substr(peg$currPos, 2) === peg$c27) {
2871
- s1 = peg$c27;
3201
+ if (input.substr(peg$currPos, 2) === peg$c31) {
3202
+ s1 = peg$c31;
2872
3203
  peg$currPos += 2;
2873
3204
  } else {
2874
3205
  s1 = peg$FAILED;
2875
- if (peg$silentFails === 0) { peg$fail(peg$e60); }
3206
+ if (peg$silentFails === 0) { peg$fail(peg$e65); }
2876
3207
  }
2877
3208
  if (s1 !== peg$FAILED) {
2878
3209
  s2 = peg$currPos;
@@ -2904,12 +3235,12 @@ function peg$parse(input, options) {
2904
3235
  var s0, s1, s2, s3;
2905
3236
 
2906
3237
  s0 = peg$currPos;
2907
- if (input.substr(peg$currPos, 4) === peg$c28) {
2908
- s1 = peg$c28;
3238
+ if (input.substr(peg$currPos, 4) === peg$c32) {
3239
+ s1 = peg$c32;
2909
3240
  peg$currPos += 4;
2910
3241
  } else {
2911
3242
  s1 = peg$FAILED;
2912
- if (peg$silentFails === 0) { peg$fail(peg$e61); }
3243
+ if (peg$silentFails === 0) { peg$fail(peg$e66); }
2913
3244
  }
2914
3245
  if (s1 !== peg$FAILED) {
2915
3246
  s2 = peg$currPos;
@@ -2941,12 +3272,12 @@ function peg$parse(input, options) {
2941
3272
  var s0, s1, s2, s3;
2942
3273
 
2943
3274
  s0 = peg$currPos;
2944
- if (input.substr(peg$currPos, 4) === peg$c29) {
2945
- s1 = peg$c29;
3275
+ if (input.substr(peg$currPos, 4) === peg$c33) {
3276
+ s1 = peg$c33;
2946
3277
  peg$currPos += 4;
2947
3278
  } else {
2948
3279
  s1 = peg$FAILED;
2949
- if (peg$silentFails === 0) { peg$fail(peg$e62); }
3280
+ if (peg$silentFails === 0) { peg$fail(peg$e67); }
2950
3281
  }
2951
3282
  if (s1 !== peg$FAILED) {
2952
3283
  s2 = peg$currPos;
@@ -2978,12 +3309,12 @@ function peg$parse(input, options) {
2978
3309
  var s0, s1, s2, s3;
2979
3310
 
2980
3311
  s0 = peg$currPos;
2981
- if (input.substr(peg$currPos, 6) === peg$c30) {
2982
- s1 = peg$c30;
3312
+ if (input.substr(peg$currPos, 6) === peg$c34) {
3313
+ s1 = peg$c34;
2983
3314
  peg$currPos += 6;
2984
3315
  } else {
2985
3316
  s1 = peg$FAILED;
2986
- if (peg$silentFails === 0) { peg$fail(peg$e63); }
3317
+ if (peg$silentFails === 0) { peg$fail(peg$e68); }
2987
3318
  }
2988
3319
  if (s1 !== peg$FAILED) {
2989
3320
  s2 = peg$currPos;
@@ -3015,12 +3346,12 @@ function peg$parse(input, options) {
3015
3346
  var s0, s1, s2, s3;
3016
3347
 
3017
3348
  s0 = peg$currPos;
3018
- if (input.substr(peg$currPos, 3) === peg$c31) {
3019
- s1 = peg$c31;
3349
+ if (input.substr(peg$currPos, 3) === peg$c35) {
3350
+ s1 = peg$c35;
3020
3351
  peg$currPos += 3;
3021
3352
  } else {
3022
3353
  s1 = peg$FAILED;
3023
- if (peg$silentFails === 0) { peg$fail(peg$e64); }
3354
+ if (peg$silentFails === 0) { peg$fail(peg$e69); }
3024
3355
  }
3025
3356
  if (s1 !== peg$FAILED) {
3026
3357
  s2 = peg$currPos;
@@ -3052,12 +3383,12 @@ function peg$parse(input, options) {
3052
3383
  var s0, s1, s2, s3;
3053
3384
 
3054
3385
  s0 = peg$currPos;
3055
- if (input.substr(peg$currPos, 3) === peg$c32) {
3056
- s1 = peg$c32;
3386
+ if (input.substr(peg$currPos, 3) === peg$c36) {
3387
+ s1 = peg$c36;
3057
3388
  peg$currPos += 3;
3058
3389
  } else {
3059
3390
  s1 = peg$FAILED;
3060
- if (peg$silentFails === 0) { peg$fail(peg$e65); }
3391
+ if (peg$silentFails === 0) { peg$fail(peg$e70); }
3061
3392
  }
3062
3393
  if (s1 !== peg$FAILED) {
3063
3394
  s2 = peg$currPos;
@@ -3194,33 +3525,39 @@ function peg$parse(input, options) {
3194
3525
  if (s0 === peg$FAILED) {
3195
3526
  s0 = peg$parseTopicReference();
3196
3527
  if (s0 === peg$FAILED) {
3197
- s0 = peg$parseArrayLiteral();
3528
+ s0 = peg$parseTemplateLiteral();
3198
3529
  if (s0 === peg$FAILED) {
3199
- s0 = peg$parseObjectLiteral();
3530
+ s0 = peg$parseArrayLiteral();
3200
3531
  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);
3532
+ s0 = peg$parseObjectLiteral();
3533
+ if (s0 === peg$FAILED) {
3534
+ s0 = peg$currPos;
3535
+ if (input.charCodeAt(peg$currPos) === 40) {
3536
+ s1 = peg$c37;
3537
+ peg$currPos++;
3538
+ } else {
3539
+ s1 = peg$FAILED;
3540
+ if (peg$silentFails === 0) { peg$fail(peg$e71); }
3541
+ }
3542
+ if (s1 !== peg$FAILED) {
3543
+ s2 = peg$parse__();
3544
+ s3 = peg$parseExpression();
3545
+ if (s3 !== peg$FAILED) {
3546
+ s4 = peg$parse__();
3547
+ if (input.charCodeAt(peg$currPos) === 41) {
3548
+ s5 = peg$c38;
3549
+ peg$currPos++;
3550
+ } else {
3551
+ s5 = peg$FAILED;
3552
+ if (peg$silentFails === 0) { peg$fail(peg$e72); }
3553
+ }
3554
+ if (s5 !== peg$FAILED) {
3555
+ peg$savedPos = s0;
3556
+ s0 = peg$f36(s3);
3557
+ } else {
3558
+ peg$currPos = s0;
3559
+ s0 = peg$FAILED;
3560
+ }
3224
3561
  } else {
3225
3562
  peg$currPos = s0;
3226
3563
  s0 = peg$FAILED;
@@ -3229,9 +3566,6 @@ function peg$parse(input, options) {
3229
3566
  peg$currPos = s0;
3230
3567
  s0 = peg$FAILED;
3231
3568
  }
3232
- } else {
3233
- peg$currPos = s0;
3234
- s0 = peg$FAILED;
3235
3569
  }
3236
3570
  }
3237
3571
  }
@@ -3247,11 +3581,11 @@ function peg$parse(input, options) {
3247
3581
 
3248
3582
  s0 = peg$currPos;
3249
3583
  if (input.charCodeAt(peg$currPos) === 91) {
3250
- s1 = peg$c35;
3584
+ s1 = peg$c39;
3251
3585
  peg$currPos++;
3252
3586
  } else {
3253
3587
  s1 = peg$FAILED;
3254
- if (peg$silentFails === 0) { peg$fail(peg$e68); }
3588
+ if (peg$silentFails === 0) { peg$fail(peg$e73); }
3255
3589
  }
3256
3590
  if (s1 !== peg$FAILED) {
3257
3591
  s2 = peg$parse__();
@@ -3269,15 +3603,15 @@ function peg$parse(input, options) {
3269
3603
  s3 = null;
3270
3604
  }
3271
3605
  if (input.charCodeAt(peg$currPos) === 93) {
3272
- s4 = peg$c36;
3606
+ s4 = peg$c40;
3273
3607
  peg$currPos++;
3274
3608
  } else {
3275
3609
  s4 = peg$FAILED;
3276
- if (peg$silentFails === 0) { peg$fail(peg$e69); }
3610
+ if (peg$silentFails === 0) { peg$fail(peg$e74); }
3277
3611
  }
3278
3612
  if (s4 !== peg$FAILED) {
3279
3613
  peg$savedPos = s0;
3280
- s0 = peg$f31(s3);
3614
+ s0 = peg$f37(s3);
3281
3615
  } else {
3282
3616
  peg$currPos = s0;
3283
3617
  s0 = peg$FAILED;
@@ -3289,11 +3623,11 @@ function peg$parse(input, options) {
3289
3623
  if (s0 === peg$FAILED) {
3290
3624
  s0 = peg$currPos;
3291
3625
  if (input.charCodeAt(peg$currPos) === 91) {
3292
- s1 = peg$c35;
3626
+ s1 = peg$c39;
3293
3627
  peg$currPos++;
3294
3628
  } else {
3295
3629
  s1 = peg$FAILED;
3296
- if (peg$silentFails === 0) { peg$fail(peg$e68); }
3630
+ if (peg$silentFails === 0) { peg$fail(peg$e73); }
3297
3631
  }
3298
3632
  if (s1 !== peg$FAILED) {
3299
3633
  s2 = peg$parse__();
@@ -3301,15 +3635,15 @@ function peg$parse(input, options) {
3301
3635
  if (s3 !== peg$FAILED) {
3302
3636
  s4 = peg$parse__();
3303
3637
  if (input.charCodeAt(peg$currPos) === 93) {
3304
- s5 = peg$c36;
3638
+ s5 = peg$c40;
3305
3639
  peg$currPos++;
3306
3640
  } else {
3307
3641
  s5 = peg$FAILED;
3308
- if (peg$silentFails === 0) { peg$fail(peg$e69); }
3642
+ if (peg$silentFails === 0) { peg$fail(peg$e74); }
3309
3643
  }
3310
3644
  if (s5 !== peg$FAILED) {
3311
3645
  peg$savedPos = s0;
3312
- s0 = peg$f32(s3);
3646
+ s0 = peg$f38(s3);
3313
3647
  } else {
3314
3648
  peg$currPos = s0;
3315
3649
  s0 = peg$FAILED;
@@ -3325,11 +3659,11 @@ function peg$parse(input, options) {
3325
3659
  if (s0 === peg$FAILED) {
3326
3660
  s0 = peg$currPos;
3327
3661
  if (input.charCodeAt(peg$currPos) === 91) {
3328
- s1 = peg$c35;
3662
+ s1 = peg$c39;
3329
3663
  peg$currPos++;
3330
3664
  } else {
3331
3665
  s1 = peg$FAILED;
3332
- if (peg$silentFails === 0) { peg$fail(peg$e68); }
3666
+ if (peg$silentFails === 0) { peg$fail(peg$e73); }
3333
3667
  }
3334
3668
  if (s1 !== peg$FAILED) {
3335
3669
  s2 = peg$parse__();
@@ -3337,11 +3671,11 @@ function peg$parse(input, options) {
3337
3671
  if (s3 !== peg$FAILED) {
3338
3672
  s4 = peg$parse__();
3339
3673
  if (input.charCodeAt(peg$currPos) === 44) {
3340
- s5 = peg$c37;
3674
+ s5 = peg$c41;
3341
3675
  peg$currPos++;
3342
3676
  } else {
3343
3677
  s5 = peg$FAILED;
3344
- if (peg$silentFails === 0) { peg$fail(peg$e70); }
3678
+ if (peg$silentFails === 0) { peg$fail(peg$e75); }
3345
3679
  }
3346
3680
  if (s5 !== peg$FAILED) {
3347
3681
  s6 = peg$parse__();
@@ -3359,15 +3693,15 @@ function peg$parse(input, options) {
3359
3693
  s7 = null;
3360
3694
  }
3361
3695
  if (input.charCodeAt(peg$currPos) === 93) {
3362
- s8 = peg$c36;
3696
+ s8 = peg$c40;
3363
3697
  peg$currPos++;
3364
3698
  } else {
3365
3699
  s8 = peg$FAILED;
3366
- if (peg$silentFails === 0) { peg$fail(peg$e69); }
3700
+ if (peg$silentFails === 0) { peg$fail(peg$e74); }
3367
3701
  }
3368
3702
  if (s8 !== peg$FAILED) {
3369
3703
  peg$savedPos = s0;
3370
- s0 = peg$f33(s3, s7);
3704
+ s0 = peg$f39(s3, s7);
3371
3705
  } else {
3372
3706
  peg$currPos = s0;
3373
3707
  s0 = peg$FAILED;
@@ -3408,10 +3742,13 @@ function peg$parse(input, options) {
3408
3742
  if (s2 === peg$FAILED) {
3409
3743
  s2 = null;
3410
3744
  }
3411
- s3 = peg$parseExpression();
3745
+ s3 = peg$parseSpreadElement();
3746
+ if (s3 === peg$FAILED) {
3747
+ s3 = peg$parseExpression();
3748
+ }
3412
3749
  if (s3 !== peg$FAILED) {
3413
3750
  peg$savedPos = s1;
3414
- s1 = peg$f34(s2, s3);
3751
+ s1 = peg$f40(s2, s3);
3415
3752
  } else {
3416
3753
  peg$currPos = s1;
3417
3754
  s1 = peg$FAILED;
@@ -3421,11 +3758,11 @@ function peg$parse(input, options) {
3421
3758
  s3 = peg$currPos;
3422
3759
  s4 = peg$parse__();
3423
3760
  if (input.charCodeAt(peg$currPos) === 44) {
3424
- s5 = peg$c37;
3761
+ s5 = peg$c41;
3425
3762
  peg$currPos++;
3426
3763
  } else {
3427
3764
  s5 = peg$FAILED;
3428
- if (peg$silentFails === 0) { peg$fail(peg$e70); }
3765
+ if (peg$silentFails === 0) { peg$fail(peg$e75); }
3429
3766
  }
3430
3767
  if (s5 !== peg$FAILED) {
3431
3768
  s6 = peg$parse__();
@@ -3442,10 +3779,13 @@ function peg$parse(input, options) {
3442
3779
  if (s7 === peg$FAILED) {
3443
3780
  s7 = null;
3444
3781
  }
3445
- s8 = peg$parseExpression();
3782
+ s8 = peg$parseSpreadElement();
3783
+ if (s8 === peg$FAILED) {
3784
+ s8 = peg$parseExpression();
3785
+ }
3446
3786
  if (s8 !== peg$FAILED) {
3447
3787
  peg$savedPos = s3;
3448
- s3 = peg$f35(s1, s7, s8);
3788
+ s3 = peg$f41(s1, s7, s8);
3449
3789
  } else {
3450
3790
  peg$currPos = s3;
3451
3791
  s3 = peg$FAILED;
@@ -3459,11 +3799,11 @@ function peg$parse(input, options) {
3459
3799
  s3 = peg$currPos;
3460
3800
  s4 = peg$parse__();
3461
3801
  if (input.charCodeAt(peg$currPos) === 44) {
3462
- s5 = peg$c37;
3802
+ s5 = peg$c41;
3463
3803
  peg$currPos++;
3464
3804
  } else {
3465
3805
  s5 = peg$FAILED;
3466
- if (peg$silentFails === 0) { peg$fail(peg$e70); }
3806
+ if (peg$silentFails === 0) { peg$fail(peg$e75); }
3467
3807
  }
3468
3808
  if (s5 !== peg$FAILED) {
3469
3809
  s6 = peg$parse__();
@@ -3480,10 +3820,13 @@ function peg$parse(input, options) {
3480
3820
  if (s7 === peg$FAILED) {
3481
3821
  s7 = null;
3482
3822
  }
3483
- s8 = peg$parseExpression();
3823
+ s8 = peg$parseSpreadElement();
3824
+ if (s8 === peg$FAILED) {
3825
+ s8 = peg$parseExpression();
3826
+ }
3484
3827
  if (s8 !== peg$FAILED) {
3485
3828
  peg$savedPos = s3;
3486
- s3 = peg$f35(s1, s7, s8);
3829
+ s3 = peg$f41(s1, s7, s8);
3487
3830
  } else {
3488
3831
  peg$currPos = s3;
3489
3832
  s3 = peg$FAILED;
@@ -3494,7 +3837,7 @@ function peg$parse(input, options) {
3494
3837
  }
3495
3838
  }
3496
3839
  peg$savedPos = s0;
3497
- s0 = peg$f36(s1, s2);
3840
+ s0 = peg$f42(s1, s2);
3498
3841
  } else {
3499
3842
  peg$currPos = s0;
3500
3843
  s0 = peg$FAILED;
@@ -3508,22 +3851,22 @@ function peg$parse(input, options) {
3508
3851
 
3509
3852
  s0 = peg$currPos;
3510
3853
  if (input.charCodeAt(peg$currPos) === 44) {
3511
- s1 = peg$c37;
3854
+ s1 = peg$c41;
3512
3855
  peg$currPos++;
3513
3856
  } else {
3514
3857
  s1 = peg$FAILED;
3515
- if (peg$silentFails === 0) { peg$fail(peg$e70); }
3858
+ if (peg$silentFails === 0) { peg$fail(peg$e75); }
3516
3859
  }
3517
3860
  if (s1 !== peg$FAILED) {
3518
3861
  s2 = [];
3519
3862
  s3 = peg$currPos;
3520
3863
  s4 = peg$parse__();
3521
3864
  if (input.charCodeAt(peg$currPos) === 44) {
3522
- s5 = peg$c37;
3865
+ s5 = peg$c41;
3523
3866
  peg$currPos++;
3524
3867
  } else {
3525
3868
  s5 = peg$FAILED;
3526
- if (peg$silentFails === 0) { peg$fail(peg$e70); }
3869
+ if (peg$silentFails === 0) { peg$fail(peg$e75); }
3527
3870
  }
3528
3871
  if (s5 !== peg$FAILED) {
3529
3872
  s4 = [s4, s5];
@@ -3537,11 +3880,11 @@ function peg$parse(input, options) {
3537
3880
  s3 = peg$currPos;
3538
3881
  s4 = peg$parse__();
3539
3882
  if (input.charCodeAt(peg$currPos) === 44) {
3540
- s5 = peg$c37;
3883
+ s5 = peg$c41;
3541
3884
  peg$currPos++;
3542
3885
  } else {
3543
3886
  s5 = peg$FAILED;
3544
- if (peg$silentFails === 0) { peg$fail(peg$e70); }
3887
+ if (peg$silentFails === 0) { peg$fail(peg$e75); }
3545
3888
  }
3546
3889
  if (s5 !== peg$FAILED) {
3547
3890
  s4 = [s4, s5];
@@ -3552,7 +3895,7 @@ function peg$parse(input, options) {
3552
3895
  }
3553
3896
  }
3554
3897
  peg$savedPos = s0;
3555
- s0 = peg$f37(s2);
3898
+ s0 = peg$f43(s2);
3556
3899
  } else {
3557
3900
  peg$currPos = s0;
3558
3901
  s0 = peg$FAILED;
@@ -3566,24 +3909,24 @@ function peg$parse(input, options) {
3566
3909
 
3567
3910
  s0 = peg$currPos;
3568
3911
  if (input.charCodeAt(peg$currPos) === 123) {
3569
- s1 = peg$c38;
3912
+ s1 = peg$c42;
3570
3913
  peg$currPos++;
3571
3914
  } else {
3572
3915
  s1 = peg$FAILED;
3573
- if (peg$silentFails === 0) { peg$fail(peg$e71); }
3916
+ if (peg$silentFails === 0) { peg$fail(peg$e76); }
3574
3917
  }
3575
3918
  if (s1 !== peg$FAILED) {
3576
3919
  s2 = peg$parse__();
3577
3920
  if (input.charCodeAt(peg$currPos) === 125) {
3578
- s3 = peg$c39;
3921
+ s3 = peg$c14;
3579
3922
  peg$currPos++;
3580
3923
  } else {
3581
3924
  s3 = peg$FAILED;
3582
- if (peg$silentFails === 0) { peg$fail(peg$e72); }
3925
+ if (peg$silentFails === 0) { peg$fail(peg$e35); }
3583
3926
  }
3584
3927
  if (s3 !== peg$FAILED) {
3585
3928
  peg$savedPos = s0;
3586
- s0 = peg$f38();
3929
+ s0 = peg$f44();
3587
3930
  } else {
3588
3931
  peg$currPos = s0;
3589
3932
  s0 = peg$FAILED;
@@ -3595,11 +3938,11 @@ function peg$parse(input, options) {
3595
3938
  if (s0 === peg$FAILED) {
3596
3939
  s0 = peg$currPos;
3597
3940
  if (input.charCodeAt(peg$currPos) === 123) {
3598
- s1 = peg$c38;
3941
+ s1 = peg$c42;
3599
3942
  peg$currPos++;
3600
3943
  } else {
3601
3944
  s1 = peg$FAILED;
3602
- if (peg$silentFails === 0) { peg$fail(peg$e71); }
3945
+ if (peg$silentFails === 0) { peg$fail(peg$e76); }
3603
3946
  }
3604
3947
  if (s1 !== peg$FAILED) {
3605
3948
  s2 = peg$parse__();
@@ -3607,15 +3950,15 @@ function peg$parse(input, options) {
3607
3950
  if (s3 !== peg$FAILED) {
3608
3951
  s4 = peg$parse__();
3609
3952
  if (input.charCodeAt(peg$currPos) === 125) {
3610
- s5 = peg$c39;
3953
+ s5 = peg$c14;
3611
3954
  peg$currPos++;
3612
3955
  } else {
3613
3956
  s5 = peg$FAILED;
3614
- if (peg$silentFails === 0) { peg$fail(peg$e72); }
3957
+ if (peg$silentFails === 0) { peg$fail(peg$e35); }
3615
3958
  }
3616
3959
  if (s5 !== peg$FAILED) {
3617
3960
  peg$savedPos = s0;
3618
- s0 = peg$f39(s3);
3961
+ s0 = peg$f45(s3);
3619
3962
  } else {
3620
3963
  peg$currPos = s0;
3621
3964
  s0 = peg$FAILED;
@@ -3631,11 +3974,11 @@ function peg$parse(input, options) {
3631
3974
  if (s0 === peg$FAILED) {
3632
3975
  s0 = peg$currPos;
3633
3976
  if (input.charCodeAt(peg$currPos) === 123) {
3634
- s1 = peg$c38;
3977
+ s1 = peg$c42;
3635
3978
  peg$currPos++;
3636
3979
  } else {
3637
3980
  s1 = peg$FAILED;
3638
- if (peg$silentFails === 0) { peg$fail(peg$e71); }
3981
+ if (peg$silentFails === 0) { peg$fail(peg$e76); }
3639
3982
  }
3640
3983
  if (s1 !== peg$FAILED) {
3641
3984
  s2 = peg$parse__();
@@ -3643,24 +3986,24 @@ function peg$parse(input, options) {
3643
3986
  if (s3 !== peg$FAILED) {
3644
3987
  s4 = peg$parse__();
3645
3988
  if (input.charCodeAt(peg$currPos) === 44) {
3646
- s5 = peg$c37;
3989
+ s5 = peg$c41;
3647
3990
  peg$currPos++;
3648
3991
  } else {
3649
3992
  s5 = peg$FAILED;
3650
- if (peg$silentFails === 0) { peg$fail(peg$e70); }
3993
+ if (peg$silentFails === 0) { peg$fail(peg$e75); }
3651
3994
  }
3652
3995
  if (s5 !== peg$FAILED) {
3653
3996
  s6 = peg$parse__();
3654
3997
  if (input.charCodeAt(peg$currPos) === 125) {
3655
- s7 = peg$c39;
3998
+ s7 = peg$c14;
3656
3999
  peg$currPos++;
3657
4000
  } else {
3658
4001
  s7 = peg$FAILED;
3659
- if (peg$silentFails === 0) { peg$fail(peg$e72); }
4002
+ if (peg$silentFails === 0) { peg$fail(peg$e35); }
3660
4003
  }
3661
4004
  if (s7 !== peg$FAILED) {
3662
4005
  peg$savedPos = s0;
3663
- s0 = peg$f40(s3);
4006
+ s0 = peg$f46(s3);
3664
4007
  } else {
3665
4008
  peg$currPos = s0;
3666
4009
  s0 = peg$FAILED;
@@ -3693,11 +4036,11 @@ function peg$parse(input, options) {
3693
4036
  s3 = peg$currPos;
3694
4037
  s4 = peg$parse__();
3695
4038
  if (input.charCodeAt(peg$currPos) === 44) {
3696
- s5 = peg$c37;
4039
+ s5 = peg$c41;
3697
4040
  peg$currPos++;
3698
4041
  } else {
3699
4042
  s5 = peg$FAILED;
3700
- if (peg$silentFails === 0) { peg$fail(peg$e70); }
4043
+ if (peg$silentFails === 0) { peg$fail(peg$e75); }
3701
4044
  }
3702
4045
  if (s5 !== peg$FAILED) {
3703
4046
  s6 = peg$parse__();
@@ -3718,11 +4061,11 @@ function peg$parse(input, options) {
3718
4061
  s3 = peg$currPos;
3719
4062
  s4 = peg$parse__();
3720
4063
  if (input.charCodeAt(peg$currPos) === 44) {
3721
- s5 = peg$c37;
4064
+ s5 = peg$c41;
3722
4065
  peg$currPos++;
3723
4066
  } else {
3724
4067
  s5 = peg$FAILED;
3725
- if (peg$silentFails === 0) { peg$fail(peg$e70); }
4068
+ if (peg$silentFails === 0) { peg$fail(peg$e75); }
3726
4069
  }
3727
4070
  if (s5 !== peg$FAILED) {
3728
4071
  s6 = peg$parse__();
@@ -3740,7 +4083,7 @@ function peg$parse(input, options) {
3740
4083
  }
3741
4084
  }
3742
4085
  peg$savedPos = s0;
3743
- s0 = peg$f41(s1, s2);
4086
+ s0 = peg$f47(s1, s2);
3744
4087
  } else {
3745
4088
  peg$currPos = s0;
3746
4089
  s0 = peg$FAILED;
@@ -3749,26 +4092,61 @@ function peg$parse(input, options) {
3749
4092
  return s0;
3750
4093
  }
3751
4094
 
3752
- function peg$parsePropertyAssignment() {
3753
- var s0, s1, s2, s3, s4, s5;
4095
+ function peg$parseSpreadElement() {
4096
+ var s0, s1, s2, s3;
3754
4097
 
3755
4098
  s0 = peg$currPos;
3756
- s1 = peg$parsePropertyName();
4099
+ if (input.substr(peg$currPos, 3) === peg$c43) {
4100
+ s1 = peg$c43;
4101
+ peg$currPos += 3;
4102
+ } else {
4103
+ s1 = peg$FAILED;
4104
+ if (peg$silentFails === 0) { peg$fail(peg$e77); }
4105
+ }
3757
4106
  if (s1 !== peg$FAILED) {
3758
4107
  s2 = peg$parse__();
3759
- if (input.charCodeAt(peg$currPos) === 58) {
3760
- s3 = peg$c40;
3761
- peg$currPos++;
4108
+ s3 = peg$parseExpression();
4109
+ if (s3 !== peg$FAILED) {
4110
+ peg$savedPos = s0;
4111
+ s0 = peg$f48(s3);
3762
4112
  } else {
3763
- s3 = peg$FAILED;
3764
- if (peg$silentFails === 0) { peg$fail(peg$e73); }
4113
+ peg$currPos = s0;
4114
+ s0 = peg$FAILED;
3765
4115
  }
3766
- if (s3 !== peg$FAILED) {
3767
- s4 = peg$parse__();
3768
- s5 = peg$parseExpression();
3769
- if (s5 !== peg$FAILED) {
3770
- peg$savedPos = s0;
3771
- s0 = peg$f42(s1, s5);
4116
+ } else {
4117
+ peg$currPos = s0;
4118
+ s0 = peg$FAILED;
4119
+ }
4120
+
4121
+ return s0;
4122
+ }
4123
+
4124
+ function peg$parsePropertyAssignment() {
4125
+ var s0, s1, s2, s3, s4, s5, s6, s7, s8, s9;
4126
+
4127
+ s0 = peg$parseSpreadElement();
4128
+ if (s0 === peg$FAILED) {
4129
+ s0 = peg$currPos;
4130
+ s1 = peg$parsePropertyName();
4131
+ if (s1 !== peg$FAILED) {
4132
+ s2 = peg$parse__();
4133
+ if (input.charCodeAt(peg$currPos) === 58) {
4134
+ s3 = peg$c44;
4135
+ peg$currPos++;
4136
+ } else {
4137
+ s3 = peg$FAILED;
4138
+ if (peg$silentFails === 0) { peg$fail(peg$e78); }
4139
+ }
4140
+ if (s3 !== peg$FAILED) {
4141
+ s4 = peg$parse__();
4142
+ s5 = peg$parseExpression();
4143
+ if (s5 !== peg$FAILED) {
4144
+ peg$savedPos = s0;
4145
+ s0 = peg$f49(s1, s5);
4146
+ } else {
4147
+ peg$currPos = s0;
4148
+ s0 = peg$FAILED;
4149
+ }
3772
4150
  } else {
3773
4151
  peg$currPos = s0;
3774
4152
  s0 = peg$FAILED;
@@ -3777,9 +4155,63 @@ function peg$parse(input, options) {
3777
4155
  peg$currPos = s0;
3778
4156
  s0 = peg$FAILED;
3779
4157
  }
3780
- } else {
3781
- peg$currPos = s0;
3782
- s0 = peg$FAILED;
4158
+ if (s0 === peg$FAILED) {
4159
+ s0 = peg$currPos;
4160
+ if (input.charCodeAt(peg$currPos) === 91) {
4161
+ s1 = peg$c39;
4162
+ peg$currPos++;
4163
+ } else {
4164
+ s1 = peg$FAILED;
4165
+ if (peg$silentFails === 0) { peg$fail(peg$e73); }
4166
+ }
4167
+ if (s1 !== peg$FAILED) {
4168
+ s2 = peg$parse__();
4169
+ s3 = peg$parseExpression();
4170
+ if (s3 !== peg$FAILED) {
4171
+ s4 = peg$parse__();
4172
+ if (input.charCodeAt(peg$currPos) === 93) {
4173
+ s5 = peg$c40;
4174
+ peg$currPos++;
4175
+ } else {
4176
+ s5 = peg$FAILED;
4177
+ if (peg$silentFails === 0) { peg$fail(peg$e74); }
4178
+ }
4179
+ if (s5 !== peg$FAILED) {
4180
+ s6 = peg$parse__();
4181
+ if (input.charCodeAt(peg$currPos) === 58) {
4182
+ s7 = peg$c44;
4183
+ peg$currPos++;
4184
+ } else {
4185
+ s7 = peg$FAILED;
4186
+ if (peg$silentFails === 0) { peg$fail(peg$e78); }
4187
+ }
4188
+ if (s7 !== peg$FAILED) {
4189
+ s8 = peg$parse__();
4190
+ s9 = peg$parseExpression();
4191
+ if (s9 !== peg$FAILED) {
4192
+ peg$savedPos = s0;
4193
+ s0 = peg$f50(s3, s9);
4194
+ } else {
4195
+ peg$currPos = s0;
4196
+ s0 = peg$FAILED;
4197
+ }
4198
+ } else {
4199
+ peg$currPos = s0;
4200
+ s0 = peg$FAILED;
4201
+ }
4202
+ } else {
4203
+ peg$currPos = s0;
4204
+ s0 = peg$FAILED;
4205
+ }
4206
+ } else {
4207
+ peg$currPos = s0;
4208
+ s0 = peg$FAILED;
4209
+ }
4210
+ } else {
4211
+ peg$currPos = s0;
4212
+ s0 = peg$FAILED;
4213
+ }
4214
+ }
3783
4215
  }
3784
4216
 
3785
4217
  return s0;
@@ -3809,11 +4241,11 @@ function peg$parse(input, options) {
3809
4241
  s3 = peg$currPos;
3810
4242
  s4 = peg$parse__();
3811
4243
  if (input.charCodeAt(peg$currPos) === 91) {
3812
- s5 = peg$c35;
4244
+ s5 = peg$c39;
3813
4245
  peg$currPos++;
3814
4246
  } else {
3815
4247
  s5 = peg$FAILED;
3816
- if (peg$silentFails === 0) { peg$fail(peg$e68); }
4248
+ if (peg$silentFails === 0) { peg$fail(peg$e73); }
3817
4249
  }
3818
4250
  if (s5 !== peg$FAILED) {
3819
4251
  s6 = peg$parse__();
@@ -3821,15 +4253,15 @@ function peg$parse(input, options) {
3821
4253
  if (s7 !== peg$FAILED) {
3822
4254
  s8 = peg$parse__();
3823
4255
  if (input.charCodeAt(peg$currPos) === 93) {
3824
- s9 = peg$c36;
4256
+ s9 = peg$c40;
3825
4257
  peg$currPos++;
3826
4258
  } else {
3827
4259
  s9 = peg$FAILED;
3828
- if (peg$silentFails === 0) { peg$fail(peg$e69); }
4260
+ if (peg$silentFails === 0) { peg$fail(peg$e74); }
3829
4261
  }
3830
4262
  if (s9 !== peg$FAILED) {
3831
4263
  peg$savedPos = s3;
3832
- s3 = peg$f43(s1, s7);
4264
+ s3 = peg$f51(s1, s7);
3833
4265
  } else {
3834
4266
  peg$currPos = s3;
3835
4267
  s3 = peg$FAILED;
@@ -3857,7 +4289,7 @@ function peg$parse(input, options) {
3857
4289
  s7 = peg$parseIdentifierName();
3858
4290
  if (s7 !== peg$FAILED) {
3859
4291
  peg$savedPos = s3;
3860
- s3 = peg$f44(s1, s7);
4292
+ s3 = peg$f52(s1, s7);
3861
4293
  } else {
3862
4294
  peg$currPos = s3;
3863
4295
  s3 = peg$FAILED;
@@ -3869,19 +4301,19 @@ function peg$parse(input, options) {
3869
4301
  if (s3 === peg$FAILED) {
3870
4302
  s3 = peg$currPos;
3871
4303
  s4 = peg$parse__();
3872
- if (input.substr(peg$currPos, 2) === peg$c41) {
3873
- s5 = peg$c41;
4304
+ if (input.substr(peg$currPos, 2) === peg$c45) {
4305
+ s5 = peg$c45;
3874
4306
  peg$currPos += 2;
3875
4307
  } else {
3876
4308
  s5 = peg$FAILED;
3877
- if (peg$silentFails === 0) { peg$fail(peg$e74); }
4309
+ if (peg$silentFails === 0) { peg$fail(peg$e79); }
3878
4310
  }
3879
4311
  if (s5 !== peg$FAILED) {
3880
4312
  s6 = peg$parse__();
3881
4313
  s7 = peg$parseIdentifierName();
3882
4314
  if (s7 !== peg$FAILED) {
3883
4315
  peg$savedPos = s3;
3884
- s3 = peg$f45(s1, s7);
4316
+ s3 = peg$f53(s1, s7);
3885
4317
  } else {
3886
4318
  peg$currPos = s3;
3887
4319
  s3 = peg$FAILED;
@@ -3890,6 +4322,56 @@ function peg$parse(input, options) {
3890
4322
  peg$currPos = s3;
3891
4323
  s3 = peg$FAILED;
3892
4324
  }
4325
+ if (s3 === peg$FAILED) {
4326
+ s3 = peg$currPos;
4327
+ s4 = peg$parse__();
4328
+ s5 = peg$parseTemplateLiteral();
4329
+ if (s5 !== peg$FAILED) {
4330
+ peg$savedPos = s3;
4331
+ s3 = peg$f54(s1, s5);
4332
+ } else {
4333
+ peg$currPos = s3;
4334
+ s3 = peg$FAILED;
4335
+ }
4336
+ if (s3 === peg$FAILED) {
4337
+ s3 = peg$currPos;
4338
+ if (input.charCodeAt(peg$currPos) === 33) {
4339
+ s4 = peg$c46;
4340
+ peg$currPos++;
4341
+ } else {
4342
+ s4 = peg$FAILED;
4343
+ if (peg$silentFails === 0) { peg$fail(peg$e80); }
4344
+ }
4345
+ if (s4 !== peg$FAILED) {
4346
+ s5 = peg$currPos;
4347
+ peg$silentFails++;
4348
+ if (input.charCodeAt(peg$currPos) === 61) {
4349
+ s6 = peg$c47;
4350
+ peg$currPos++;
4351
+ } else {
4352
+ s6 = peg$FAILED;
4353
+ if (peg$silentFails === 0) { peg$fail(peg$e81); }
4354
+ }
4355
+ peg$silentFails--;
4356
+ if (s6 === peg$FAILED) {
4357
+ s5 = undefined;
4358
+ } else {
4359
+ peg$currPos = s5;
4360
+ s5 = peg$FAILED;
4361
+ }
4362
+ if (s5 !== peg$FAILED) {
4363
+ peg$savedPos = s3;
4364
+ s3 = peg$f55(s1);
4365
+ } else {
4366
+ peg$currPos = s3;
4367
+ s3 = peg$FAILED;
4368
+ }
4369
+ } else {
4370
+ peg$currPos = s3;
4371
+ s3 = peg$FAILED;
4372
+ }
4373
+ }
4374
+ }
3893
4375
  }
3894
4376
  }
3895
4377
  while (s3 !== peg$FAILED) {
@@ -3897,11 +4379,11 @@ function peg$parse(input, options) {
3897
4379
  s3 = peg$currPos;
3898
4380
  s4 = peg$parse__();
3899
4381
  if (input.charCodeAt(peg$currPos) === 91) {
3900
- s5 = peg$c35;
4382
+ s5 = peg$c39;
3901
4383
  peg$currPos++;
3902
4384
  } else {
3903
4385
  s5 = peg$FAILED;
3904
- if (peg$silentFails === 0) { peg$fail(peg$e68); }
4386
+ if (peg$silentFails === 0) { peg$fail(peg$e73); }
3905
4387
  }
3906
4388
  if (s5 !== peg$FAILED) {
3907
4389
  s6 = peg$parse__();
@@ -3909,15 +4391,15 @@ function peg$parse(input, options) {
3909
4391
  if (s7 !== peg$FAILED) {
3910
4392
  s8 = peg$parse__();
3911
4393
  if (input.charCodeAt(peg$currPos) === 93) {
3912
- s9 = peg$c36;
4394
+ s9 = peg$c40;
3913
4395
  peg$currPos++;
3914
4396
  } else {
3915
4397
  s9 = peg$FAILED;
3916
- if (peg$silentFails === 0) { peg$fail(peg$e69); }
4398
+ if (peg$silentFails === 0) { peg$fail(peg$e74); }
3917
4399
  }
3918
4400
  if (s9 !== peg$FAILED) {
3919
4401
  peg$savedPos = s3;
3920
- s3 = peg$f43(s1, s7);
4402
+ s3 = peg$f51(s1, s7);
3921
4403
  } else {
3922
4404
  peg$currPos = s3;
3923
4405
  s3 = peg$FAILED;
@@ -3945,7 +4427,7 @@ function peg$parse(input, options) {
3945
4427
  s7 = peg$parseIdentifierName();
3946
4428
  if (s7 !== peg$FAILED) {
3947
4429
  peg$savedPos = s3;
3948
- s3 = peg$f44(s1, s7);
4430
+ s3 = peg$f52(s1, s7);
3949
4431
  } else {
3950
4432
  peg$currPos = s3;
3951
4433
  s3 = peg$FAILED;
@@ -3957,19 +4439,19 @@ function peg$parse(input, options) {
3957
4439
  if (s3 === peg$FAILED) {
3958
4440
  s3 = peg$currPos;
3959
4441
  s4 = peg$parse__();
3960
- if (input.substr(peg$currPos, 2) === peg$c41) {
3961
- s5 = peg$c41;
4442
+ if (input.substr(peg$currPos, 2) === peg$c45) {
4443
+ s5 = peg$c45;
3962
4444
  peg$currPos += 2;
3963
4445
  } else {
3964
4446
  s5 = peg$FAILED;
3965
- if (peg$silentFails === 0) { peg$fail(peg$e74); }
4447
+ if (peg$silentFails === 0) { peg$fail(peg$e79); }
3966
4448
  }
3967
4449
  if (s5 !== peg$FAILED) {
3968
4450
  s6 = peg$parse__();
3969
4451
  s7 = peg$parseIdentifierName();
3970
4452
  if (s7 !== peg$FAILED) {
3971
4453
  peg$savedPos = s3;
3972
- s3 = peg$f45(s1, s7);
4454
+ s3 = peg$f53(s1, s7);
3973
4455
  } else {
3974
4456
  peg$currPos = s3;
3975
4457
  s3 = peg$FAILED;
@@ -3978,11 +4460,61 @@ function peg$parse(input, options) {
3978
4460
  peg$currPos = s3;
3979
4461
  s3 = peg$FAILED;
3980
4462
  }
4463
+ if (s3 === peg$FAILED) {
4464
+ s3 = peg$currPos;
4465
+ s4 = peg$parse__();
4466
+ s5 = peg$parseTemplateLiteral();
4467
+ if (s5 !== peg$FAILED) {
4468
+ peg$savedPos = s3;
4469
+ s3 = peg$f54(s1, s5);
4470
+ } else {
4471
+ peg$currPos = s3;
4472
+ s3 = peg$FAILED;
4473
+ }
4474
+ if (s3 === peg$FAILED) {
4475
+ s3 = peg$currPos;
4476
+ if (input.charCodeAt(peg$currPos) === 33) {
4477
+ s4 = peg$c46;
4478
+ peg$currPos++;
4479
+ } else {
4480
+ s4 = peg$FAILED;
4481
+ if (peg$silentFails === 0) { peg$fail(peg$e80); }
4482
+ }
4483
+ if (s4 !== peg$FAILED) {
4484
+ s5 = peg$currPos;
4485
+ peg$silentFails++;
4486
+ if (input.charCodeAt(peg$currPos) === 61) {
4487
+ s6 = peg$c47;
4488
+ peg$currPos++;
4489
+ } else {
4490
+ s6 = peg$FAILED;
4491
+ if (peg$silentFails === 0) { peg$fail(peg$e81); }
4492
+ }
4493
+ peg$silentFails--;
4494
+ if (s6 === peg$FAILED) {
4495
+ s5 = undefined;
4496
+ } else {
4497
+ peg$currPos = s5;
4498
+ s5 = peg$FAILED;
4499
+ }
4500
+ if (s5 !== peg$FAILED) {
4501
+ peg$savedPos = s3;
4502
+ s3 = peg$f55(s1);
4503
+ } else {
4504
+ peg$currPos = s3;
4505
+ s3 = peg$FAILED;
4506
+ }
4507
+ } else {
4508
+ peg$currPos = s3;
4509
+ s3 = peg$FAILED;
4510
+ }
4511
+ }
4512
+ }
3981
4513
  }
3982
4514
  }
3983
4515
  }
3984
4516
  peg$savedPos = s0;
3985
- s0 = peg$f46(s1, s2);
4517
+ s0 = peg$f56(s1, s2);
3986
4518
  } else {
3987
4519
  peg$currPos = s0;
3988
4520
  s0 = peg$FAILED;
@@ -4002,7 +4534,7 @@ function peg$parse(input, options) {
4002
4534
  s4 = peg$parseArguments();
4003
4535
  if (s4 !== peg$FAILED) {
4004
4536
  peg$savedPos = s1;
4005
- s1 = peg$f47(s2, s4);
4537
+ s1 = peg$f57(s2, s4);
4006
4538
  } else {
4007
4539
  peg$currPos = s1;
4008
4540
  s1 = peg$FAILED;
@@ -4018,7 +4550,7 @@ function peg$parse(input, options) {
4018
4550
  s5 = peg$parseArguments();
4019
4551
  if (s5 !== peg$FAILED) {
4020
4552
  peg$savedPos = s3;
4021
- s3 = peg$f48(s1, s5);
4553
+ s3 = peg$f58(s1, s5);
4022
4554
  } else {
4023
4555
  peg$currPos = s3;
4024
4556
  s3 = peg$FAILED;
@@ -4027,11 +4559,11 @@ function peg$parse(input, options) {
4027
4559
  s3 = peg$currPos;
4028
4560
  s4 = peg$parse__();
4029
4561
  if (input.charCodeAt(peg$currPos) === 91) {
4030
- s5 = peg$c35;
4562
+ s5 = peg$c39;
4031
4563
  peg$currPos++;
4032
4564
  } else {
4033
4565
  s5 = peg$FAILED;
4034
- if (peg$silentFails === 0) { peg$fail(peg$e68); }
4566
+ if (peg$silentFails === 0) { peg$fail(peg$e73); }
4035
4567
  }
4036
4568
  if (s5 !== peg$FAILED) {
4037
4569
  s6 = peg$parse__();
@@ -4039,15 +4571,15 @@ function peg$parse(input, options) {
4039
4571
  if (s7 !== peg$FAILED) {
4040
4572
  s8 = peg$parse__();
4041
4573
  if (input.charCodeAt(peg$currPos) === 93) {
4042
- s9 = peg$c36;
4574
+ s9 = peg$c40;
4043
4575
  peg$currPos++;
4044
4576
  } else {
4045
4577
  s9 = peg$FAILED;
4046
- if (peg$silentFails === 0) { peg$fail(peg$e69); }
4578
+ if (peg$silentFails === 0) { peg$fail(peg$e74); }
4047
4579
  }
4048
4580
  if (s9 !== peg$FAILED) {
4049
4581
  peg$savedPos = s3;
4050
- s3 = peg$f49(s1, s7);
4582
+ s3 = peg$f59(s1, s7);
4051
4583
  } else {
4052
4584
  peg$currPos = s3;
4053
4585
  s3 = peg$FAILED;
@@ -4075,7 +4607,7 @@ function peg$parse(input, options) {
4075
4607
  s7 = peg$parseIdentifierName();
4076
4608
  if (s7 !== peg$FAILED) {
4077
4609
  peg$savedPos = s3;
4078
- s3 = peg$f50(s1, s7);
4610
+ s3 = peg$f60(s1, s7);
4079
4611
  } else {
4080
4612
  peg$currPos = s3;
4081
4613
  s3 = peg$FAILED;
@@ -4084,6 +4616,81 @@ function peg$parse(input, options) {
4084
4616
  peg$currPos = s3;
4085
4617
  s3 = peg$FAILED;
4086
4618
  }
4619
+ if (s3 === peg$FAILED) {
4620
+ s3 = peg$currPos;
4621
+ s4 = peg$parse__();
4622
+ if (input.substr(peg$currPos, 2) === peg$c45) {
4623
+ s5 = peg$c45;
4624
+ peg$currPos += 2;
4625
+ } else {
4626
+ s5 = peg$FAILED;
4627
+ if (peg$silentFails === 0) { peg$fail(peg$e79); }
4628
+ }
4629
+ if (s5 !== peg$FAILED) {
4630
+ s6 = peg$parse__();
4631
+ s7 = peg$parseIdentifierName();
4632
+ if (s7 !== peg$FAILED) {
4633
+ peg$savedPos = s3;
4634
+ s3 = peg$f61(s1, s7);
4635
+ } else {
4636
+ peg$currPos = s3;
4637
+ s3 = peg$FAILED;
4638
+ }
4639
+ } else {
4640
+ peg$currPos = s3;
4641
+ s3 = peg$FAILED;
4642
+ }
4643
+ if (s3 === peg$FAILED) {
4644
+ s3 = peg$currPos;
4645
+ s4 = peg$parse__();
4646
+ s5 = peg$parseTemplateLiteral();
4647
+ if (s5 !== peg$FAILED) {
4648
+ peg$savedPos = s3;
4649
+ s3 = peg$f62(s1, s5);
4650
+ } else {
4651
+ peg$currPos = s3;
4652
+ s3 = peg$FAILED;
4653
+ }
4654
+ if (s3 === peg$FAILED) {
4655
+ s3 = peg$currPos;
4656
+ if (input.charCodeAt(peg$currPos) === 33) {
4657
+ s4 = peg$c46;
4658
+ peg$currPos++;
4659
+ } else {
4660
+ s4 = peg$FAILED;
4661
+ if (peg$silentFails === 0) { peg$fail(peg$e80); }
4662
+ }
4663
+ if (s4 !== peg$FAILED) {
4664
+ s5 = peg$currPos;
4665
+ peg$silentFails++;
4666
+ if (input.charCodeAt(peg$currPos) === 61) {
4667
+ s6 = peg$c47;
4668
+ peg$currPos++;
4669
+ } else {
4670
+ s6 = peg$FAILED;
4671
+ if (peg$silentFails === 0) { peg$fail(peg$e81); }
4672
+ }
4673
+ peg$silentFails--;
4674
+ if (s6 === peg$FAILED) {
4675
+ s5 = undefined;
4676
+ } else {
4677
+ peg$currPos = s5;
4678
+ s5 = peg$FAILED;
4679
+ }
4680
+ if (s5 !== peg$FAILED) {
4681
+ peg$savedPos = s3;
4682
+ s3 = peg$f63(s1);
4683
+ } else {
4684
+ peg$currPos = s3;
4685
+ s3 = peg$FAILED;
4686
+ }
4687
+ } else {
4688
+ peg$currPos = s3;
4689
+ s3 = peg$FAILED;
4690
+ }
4691
+ }
4692
+ }
4693
+ }
4087
4694
  }
4088
4695
  }
4089
4696
  while (s3 !== peg$FAILED) {
@@ -4093,7 +4700,7 @@ function peg$parse(input, options) {
4093
4700
  s5 = peg$parseArguments();
4094
4701
  if (s5 !== peg$FAILED) {
4095
4702
  peg$savedPos = s3;
4096
- s3 = peg$f48(s1, s5);
4703
+ s3 = peg$f58(s1, s5);
4097
4704
  } else {
4098
4705
  peg$currPos = s3;
4099
4706
  s3 = peg$FAILED;
@@ -4102,11 +4709,11 @@ function peg$parse(input, options) {
4102
4709
  s3 = peg$currPos;
4103
4710
  s4 = peg$parse__();
4104
4711
  if (input.charCodeAt(peg$currPos) === 91) {
4105
- s5 = peg$c35;
4712
+ s5 = peg$c39;
4106
4713
  peg$currPos++;
4107
4714
  } else {
4108
4715
  s5 = peg$FAILED;
4109
- if (peg$silentFails === 0) { peg$fail(peg$e68); }
4716
+ if (peg$silentFails === 0) { peg$fail(peg$e73); }
4110
4717
  }
4111
4718
  if (s5 !== peg$FAILED) {
4112
4719
  s6 = peg$parse__();
@@ -4114,15 +4721,15 @@ function peg$parse(input, options) {
4114
4721
  if (s7 !== peg$FAILED) {
4115
4722
  s8 = peg$parse__();
4116
4723
  if (input.charCodeAt(peg$currPos) === 93) {
4117
- s9 = peg$c36;
4724
+ s9 = peg$c40;
4118
4725
  peg$currPos++;
4119
4726
  } else {
4120
4727
  s9 = peg$FAILED;
4121
- if (peg$silentFails === 0) { peg$fail(peg$e69); }
4728
+ if (peg$silentFails === 0) { peg$fail(peg$e74); }
4122
4729
  }
4123
4730
  if (s9 !== peg$FAILED) {
4124
4731
  peg$savedPos = s3;
4125
- s3 = peg$f49(s1, s7);
4732
+ s3 = peg$f59(s1, s7);
4126
4733
  } else {
4127
4734
  peg$currPos = s3;
4128
4735
  s3 = peg$FAILED;
@@ -4150,7 +4757,7 @@ function peg$parse(input, options) {
4150
4757
  s7 = peg$parseIdentifierName();
4151
4758
  if (s7 !== peg$FAILED) {
4152
4759
  peg$savedPos = s3;
4153
- s3 = peg$f50(s1, s7);
4760
+ s3 = peg$f60(s1, s7);
4154
4761
  } else {
4155
4762
  peg$currPos = s3;
4156
4763
  s3 = peg$FAILED;
@@ -4159,11 +4766,86 @@ function peg$parse(input, options) {
4159
4766
  peg$currPos = s3;
4160
4767
  s3 = peg$FAILED;
4161
4768
  }
4769
+ if (s3 === peg$FAILED) {
4770
+ s3 = peg$currPos;
4771
+ s4 = peg$parse__();
4772
+ if (input.substr(peg$currPos, 2) === peg$c45) {
4773
+ s5 = peg$c45;
4774
+ peg$currPos += 2;
4775
+ } else {
4776
+ s5 = peg$FAILED;
4777
+ if (peg$silentFails === 0) { peg$fail(peg$e79); }
4778
+ }
4779
+ if (s5 !== peg$FAILED) {
4780
+ s6 = peg$parse__();
4781
+ s7 = peg$parseIdentifierName();
4782
+ if (s7 !== peg$FAILED) {
4783
+ peg$savedPos = s3;
4784
+ s3 = peg$f61(s1, s7);
4785
+ } else {
4786
+ peg$currPos = s3;
4787
+ s3 = peg$FAILED;
4788
+ }
4789
+ } else {
4790
+ peg$currPos = s3;
4791
+ s3 = peg$FAILED;
4792
+ }
4793
+ if (s3 === peg$FAILED) {
4794
+ s3 = peg$currPos;
4795
+ s4 = peg$parse__();
4796
+ s5 = peg$parseTemplateLiteral();
4797
+ if (s5 !== peg$FAILED) {
4798
+ peg$savedPos = s3;
4799
+ s3 = peg$f62(s1, s5);
4800
+ } else {
4801
+ peg$currPos = s3;
4802
+ s3 = peg$FAILED;
4803
+ }
4804
+ if (s3 === peg$FAILED) {
4805
+ s3 = peg$currPos;
4806
+ if (input.charCodeAt(peg$currPos) === 33) {
4807
+ s4 = peg$c46;
4808
+ peg$currPos++;
4809
+ } else {
4810
+ s4 = peg$FAILED;
4811
+ if (peg$silentFails === 0) { peg$fail(peg$e80); }
4812
+ }
4813
+ if (s4 !== peg$FAILED) {
4814
+ s5 = peg$currPos;
4815
+ peg$silentFails++;
4816
+ if (input.charCodeAt(peg$currPos) === 61) {
4817
+ s6 = peg$c47;
4818
+ peg$currPos++;
4819
+ } else {
4820
+ s6 = peg$FAILED;
4821
+ if (peg$silentFails === 0) { peg$fail(peg$e81); }
4822
+ }
4823
+ peg$silentFails--;
4824
+ if (s6 === peg$FAILED) {
4825
+ s5 = undefined;
4826
+ } else {
4827
+ peg$currPos = s5;
4828
+ s5 = peg$FAILED;
4829
+ }
4830
+ if (s5 !== peg$FAILED) {
4831
+ peg$savedPos = s3;
4832
+ s3 = peg$f63(s1);
4833
+ } else {
4834
+ peg$currPos = s3;
4835
+ s3 = peg$FAILED;
4836
+ }
4837
+ } else {
4838
+ peg$currPos = s3;
4839
+ s3 = peg$FAILED;
4840
+ }
4841
+ }
4842
+ }
4843
+ }
4162
4844
  }
4163
4845
  }
4164
4846
  }
4165
4847
  peg$savedPos = s0;
4166
- s0 = peg$f51(s1, s2);
4848
+ s0 = peg$f64(s1, s2);
4167
4849
  } else {
4168
4850
  peg$currPos = s0;
4169
4851
  s0 = peg$FAILED;
@@ -4177,11 +4859,11 @@ function peg$parse(input, options) {
4177
4859
 
4178
4860
  s0 = peg$currPos;
4179
4861
  if (input.charCodeAt(peg$currPos) === 40) {
4180
- s1 = peg$c33;
4862
+ s1 = peg$c37;
4181
4863
  peg$currPos++;
4182
4864
  } else {
4183
4865
  s1 = peg$FAILED;
4184
- if (peg$silentFails === 0) { peg$fail(peg$e66); }
4866
+ if (peg$silentFails === 0) { peg$fail(peg$e71); }
4185
4867
  }
4186
4868
  if (s1 !== peg$FAILED) {
4187
4869
  s2 = peg$parse__();
@@ -4199,15 +4881,15 @@ function peg$parse(input, options) {
4199
4881
  s3 = null;
4200
4882
  }
4201
4883
  if (input.charCodeAt(peg$currPos) === 41) {
4202
- s4 = peg$c34;
4884
+ s4 = peg$c38;
4203
4885
  peg$currPos++;
4204
4886
  } else {
4205
4887
  s4 = peg$FAILED;
4206
- if (peg$silentFails === 0) { peg$fail(peg$e67); }
4888
+ if (peg$silentFails === 0) { peg$fail(peg$e72); }
4207
4889
  }
4208
4890
  if (s4 !== peg$FAILED) {
4209
4891
  peg$savedPos = s0;
4210
- s0 = peg$f52(s3);
4892
+ s0 = peg$f65(s3);
4211
4893
  } else {
4212
4894
  peg$currPos = s0;
4213
4895
  s0 = peg$FAILED;
@@ -4230,11 +4912,11 @@ function peg$parse(input, options) {
4230
4912
  s3 = peg$currPos;
4231
4913
  s4 = peg$parse__();
4232
4914
  if (input.charCodeAt(peg$currPos) === 44) {
4233
- s5 = peg$c37;
4915
+ s5 = peg$c41;
4234
4916
  peg$currPos++;
4235
4917
  } else {
4236
4918
  s5 = peg$FAILED;
4237
- if (peg$silentFails === 0) { peg$fail(peg$e70); }
4919
+ if (peg$silentFails === 0) { peg$fail(peg$e75); }
4238
4920
  }
4239
4921
  if (s5 !== peg$FAILED) {
4240
4922
  s6 = peg$parse__();
@@ -4255,11 +4937,11 @@ function peg$parse(input, options) {
4255
4937
  s3 = peg$currPos;
4256
4938
  s4 = peg$parse__();
4257
4939
  if (input.charCodeAt(peg$currPos) === 44) {
4258
- s5 = peg$c37;
4940
+ s5 = peg$c41;
4259
4941
  peg$currPos++;
4260
4942
  } else {
4261
4943
  s5 = peg$FAILED;
4262
- if (peg$silentFails === 0) { peg$fail(peg$e70); }
4944
+ if (peg$silentFails === 0) { peg$fail(peg$e75); }
4263
4945
  }
4264
4946
  if (s5 !== peg$FAILED) {
4265
4947
  s6 = peg$parse__();
@@ -4277,7 +4959,7 @@ function peg$parse(input, options) {
4277
4959
  }
4278
4960
  }
4279
4961
  peg$savedPos = s0;
4280
- s0 = peg$f53(s1, s2);
4962
+ s0 = peg$f66(s1, s2);
4281
4963
  } else {
4282
4964
  peg$currPos = s0;
4283
4965
  s0 = peg$FAILED;
@@ -4302,15 +4984,15 @@ function peg$parse(input, options) {
4302
4984
 
4303
4985
  s0 = peg$currPos;
4304
4986
  if (input.charCodeAt(peg$currPos) === 35) {
4305
- s1 = peg$c42;
4987
+ s1 = peg$c48;
4306
4988
  peg$currPos++;
4307
4989
  } else {
4308
4990
  s1 = peg$FAILED;
4309
- if (peg$silentFails === 0) { peg$fail(peg$e75); }
4991
+ if (peg$silentFails === 0) { peg$fail(peg$e82); }
4310
4992
  }
4311
4993
  if (s1 !== peg$FAILED) {
4312
4994
  peg$savedPos = s0;
4313
- s1 = peg$f54();
4995
+ s1 = peg$f67();
4314
4996
  }
4315
4997
  s0 = s1;
4316
4998
 
@@ -4373,7 +5055,7 @@ function peg$parse(input, options) {
4373
5055
  }
4374
5056
  }
4375
5057
  peg$savedPos = s0;
4376
- s0 = peg$f55(s1, s2);
5058
+ s0 = peg$f68(s1, s2);
4377
5059
  } else {
4378
5060
  peg$currPos = s0;
4379
5061
  s0 = peg$FAILED;
@@ -4386,11 +5068,11 @@ function peg$parse(input, options) {
4386
5068
  var s0;
4387
5069
 
4388
5070
  if (input.charCodeAt(peg$currPos) === 94) {
4389
- s0 = peg$c43;
5071
+ s0 = peg$c49;
4390
5072
  peg$currPos++;
4391
5073
  } else {
4392
5074
  s0 = peg$FAILED;
4393
- if (peg$silentFails === 0) { peg$fail(peg$e76); }
5075
+ if (peg$silentFails === 0) { peg$fail(peg$e83); }
4394
5076
  }
4395
5077
 
4396
5078
  return s0;
@@ -4408,7 +5090,7 @@ function peg$parse(input, options) {
4408
5090
  s3 = peg$parseUnaryExpression();
4409
5091
  if (s3 !== peg$FAILED) {
4410
5092
  peg$savedPos = s0;
4411
- s0 = peg$f56(s1, s3);
5093
+ s0 = peg$f69(s1, s3);
4412
5094
  } else {
4413
5095
  peg$currPos = s0;
4414
5096
  s0 = peg$FAILED;
@@ -4499,7 +5181,7 @@ function peg$parse(input, options) {
4499
5181
  }
4500
5182
  }
4501
5183
  peg$savedPos = s0;
4502
- s0 = peg$f57(s1, s2);
5184
+ s0 = peg$f70(s1, s2);
4503
5185
  } else {
4504
5186
  peg$currPos = s0;
4505
5187
  s0 = peg$FAILED;
@@ -4516,7 +5198,7 @@ function peg$parse(input, options) {
4516
5198
  peg$currPos++;
4517
5199
  } else {
4518
5200
  s0 = peg$FAILED;
4519
- if (peg$silentFails === 0) { peg$fail(peg$e77); }
5201
+ if (peg$silentFails === 0) { peg$fail(peg$e84); }
4520
5202
  }
4521
5203
  if (s0 === peg$FAILED) {
4522
5204
  s0 = peg$currPos;
@@ -4576,7 +5258,7 @@ function peg$parse(input, options) {
4576
5258
  }
4577
5259
  }
4578
5260
  peg$savedPos = s0;
4579
- s0 = peg$f58(s1, s2);
5261
+ s0 = peg$f71(s1, s2);
4580
5262
  } else {
4581
5263
  peg$currPos = s0;
4582
5264
  s0 = peg$FAILED;
@@ -4644,7 +5326,7 @@ function peg$parse(input, options) {
4644
5326
  }
4645
5327
  }
4646
5328
  peg$savedPos = s0;
4647
- s0 = peg$f59(s1, s2);
5329
+ s0 = peg$f72(s1, s2);
4648
5330
  } else {
4649
5331
  peg$currPos = s0;
4650
5332
  s0 = peg$FAILED;
@@ -4657,11 +5339,11 @@ function peg$parse(input, options) {
4657
5339
  var s0;
4658
5340
 
4659
5341
  if (input.charCodeAt(peg$currPos) === 38) {
4660
- s0 = peg$c44;
5342
+ s0 = peg$c50;
4661
5343
  peg$currPos++;
4662
5344
  } else {
4663
5345
  s0 = peg$FAILED;
4664
- if (peg$silentFails === 0) { peg$fail(peg$e78); }
5346
+ if (peg$silentFails === 0) { peg$fail(peg$e85); }
4665
5347
  }
4666
5348
 
4667
5349
  return s0;
@@ -4712,7 +5394,7 @@ function peg$parse(input, options) {
4712
5394
  }
4713
5395
  }
4714
5396
  peg$savedPos = s0;
4715
- s0 = peg$f60(s1, s2);
5397
+ s0 = peg$f73(s1, s2);
4716
5398
  } else {
4717
5399
  peg$currPos = s0;
4718
5400
  s0 = peg$FAILED;
@@ -4724,20 +5406,20 @@ function peg$parse(input, options) {
4724
5406
  function peg$parseRelationalOperator() {
4725
5407
  var s0, s1;
4726
5408
 
4727
- if (input.substr(peg$currPos, 2) === peg$c45) {
4728
- s0 = peg$c45;
5409
+ if (input.substr(peg$currPos, 2) === peg$c51) {
5410
+ s0 = peg$c51;
4729
5411
  peg$currPos += 2;
4730
5412
  } else {
4731
5413
  s0 = peg$FAILED;
4732
- if (peg$silentFails === 0) { peg$fail(peg$e79); }
5414
+ if (peg$silentFails === 0) { peg$fail(peg$e86); }
4733
5415
  }
4734
5416
  if (s0 === peg$FAILED) {
4735
- if (input.substr(peg$currPos, 2) === peg$c46) {
4736
- s0 = peg$c46;
5417
+ if (input.substr(peg$currPos, 2) === peg$c52) {
5418
+ s0 = peg$c52;
4737
5419
  peg$currPos += 2;
4738
5420
  } else {
4739
5421
  s0 = peg$FAILED;
4740
- if (peg$silentFails === 0) { peg$fail(peg$e80); }
5422
+ if (peg$silentFails === 0) { peg$fail(peg$e87); }
4741
5423
  }
4742
5424
  if (s0 === peg$FAILED) {
4743
5425
  s0 = input.charAt(peg$currPos);
@@ -4745,7 +5427,7 @@ function peg$parse(input, options) {
4745
5427
  peg$currPos++;
4746
5428
  } else {
4747
5429
  s0 = peg$FAILED;
4748
- if (peg$silentFails === 0) { peg$fail(peg$e81); }
5430
+ if (peg$silentFails === 0) { peg$fail(peg$e88); }
4749
5431
  }
4750
5432
  if (s0 === peg$FAILED) {
4751
5433
  s0 = peg$currPos;
@@ -4807,7 +5489,7 @@ function peg$parse(input, options) {
4807
5489
  }
4808
5490
  }
4809
5491
  peg$savedPos = s0;
4810
- s0 = peg$f61(s1, s2);
5492
+ s0 = peg$f74(s1, s2);
4811
5493
  } else {
4812
5494
  peg$currPos = s0;
4813
5495
  s0 = peg$FAILED;
@@ -4819,20 +5501,20 @@ function peg$parse(input, options) {
4819
5501
  function peg$parseEqualityOperator() {
4820
5502
  var s0;
4821
5503
 
4822
- if (input.substr(peg$currPos, 2) === peg$c47) {
4823
- s0 = peg$c47;
5504
+ if (input.substr(peg$currPos, 2) === peg$c53) {
5505
+ s0 = peg$c53;
4824
5506
  peg$currPos += 2;
4825
5507
  } else {
4826
5508
  s0 = peg$FAILED;
4827
- if (peg$silentFails === 0) { peg$fail(peg$e82); }
5509
+ if (peg$silentFails === 0) { peg$fail(peg$e89); }
4828
5510
  }
4829
5511
  if (s0 === peg$FAILED) {
4830
- if (input.substr(peg$currPos, 2) === peg$c48) {
4831
- s0 = peg$c48;
5512
+ if (input.substr(peg$currPos, 2) === peg$c54) {
5513
+ s0 = peg$c54;
4832
5514
  peg$currPos += 2;
4833
5515
  } else {
4834
5516
  s0 = peg$FAILED;
4835
- if (peg$silentFails === 0) { peg$fail(peg$e83); }
5517
+ if (peg$silentFails === 0) { peg$fail(peg$e90); }
4836
5518
  }
4837
5519
  }
4838
5520
 
@@ -4884,7 +5566,7 @@ function peg$parse(input, options) {
4884
5566
  }
4885
5567
  }
4886
5568
  peg$savedPos = s0;
4887
- s0 = peg$f62(s1, s2);
5569
+ s0 = peg$f75(s1, s2);
4888
5570
  } else {
4889
5571
  peg$currPos = s0;
4890
5572
  s0 = peg$FAILED;
@@ -4904,12 +5586,12 @@ function peg$parse(input, options) {
4904
5586
  s0 = s1;
4905
5587
  }
4906
5588
  if (s0 === peg$FAILED) {
4907
- if (input.substr(peg$currPos, 2) === peg$c49) {
4908
- s0 = peg$c49;
5589
+ if (input.substr(peg$currPos, 2) === peg$c55) {
5590
+ s0 = peg$c55;
4909
5591
  peg$currPos += 2;
4910
5592
  } else {
4911
5593
  s0 = peg$FAILED;
4912
- if (peg$silentFails === 0) { peg$fail(peg$e84); }
5594
+ if (peg$silentFails === 0) { peg$fail(peg$e91); }
4913
5595
  }
4914
5596
  }
4915
5597
 
@@ -4961,7 +5643,7 @@ function peg$parse(input, options) {
4961
5643
  }
4962
5644
  }
4963
5645
  peg$savedPos = s0;
4964
- s0 = peg$f63(s1, s2);
5646
+ s0 = peg$f76(s1, s2);
4965
5647
  } else {
4966
5648
  peg$currPos = s0;
4967
5649
  s0 = peg$FAILED;
@@ -4981,12 +5663,12 @@ function peg$parse(input, options) {
4981
5663
  s0 = s1;
4982
5664
  }
4983
5665
  if (s0 === peg$FAILED) {
4984
- if (input.substr(peg$currPos, 2) === peg$c50) {
4985
- s0 = peg$c50;
5666
+ if (input.substr(peg$currPos, 2) === peg$c56) {
5667
+ s0 = peg$c56;
4986
5668
  peg$currPos += 2;
4987
5669
  } else {
4988
5670
  s0 = peg$FAILED;
4989
- if (peg$silentFails === 0) { peg$fail(peg$e85); }
5671
+ if (peg$silentFails === 0) { peg$fail(peg$e92); }
4990
5672
  }
4991
5673
  }
4992
5674
 
@@ -5015,7 +5697,7 @@ function peg$parse(input, options) {
5015
5697
  s11 = peg$parseExpression();
5016
5698
  if (s11 !== peg$FAILED) {
5017
5699
  peg$savedPos = s0;
5018
- s0 = peg$f64(s3, s7, s11);
5700
+ s0 = peg$f77(s3, s7, s11);
5019
5701
  } else {
5020
5702
  peg$currPos = s0;
5021
5703
  s0 = peg$FAILED;
@@ -5054,7 +5736,7 @@ function peg$parse(input, options) {
5054
5736
  s7 = peg$parseExpression();
5055
5737
  if (s7 !== peg$FAILED) {
5056
5738
  peg$savedPos = s0;
5057
- s0 = peg$f65(s3, s7);
5739
+ s0 = peg$f78(s3, s7);
5058
5740
  } else {
5059
5741
  peg$currPos = s0;
5060
5742
  s0 = peg$FAILED;
@@ -5124,7 +5806,7 @@ function peg$parse(input, options) {
5124
5806
  }
5125
5807
  }
5126
5808
  peg$savedPos = s0;
5127
- s0 = peg$f66(s1, s2);
5809
+ s0 = peg$f79(s1, s2);
5128
5810
  } else {
5129
5811
  peg$currPos = s0;
5130
5812
  s0 = peg$FAILED;
@@ -5136,12 +5818,12 @@ function peg$parse(input, options) {
5136
5818
  function peg$parseNullishCoalescingOperator() {
5137
5819
  var s0;
5138
5820
 
5139
- if (input.substr(peg$currPos, 2) === peg$c51) {
5140
- s0 = peg$c51;
5821
+ if (input.substr(peg$currPos, 2) === peg$c57) {
5822
+ s0 = peg$c57;
5141
5823
  peg$currPos += 2;
5142
5824
  } else {
5143
5825
  s0 = peg$FAILED;
5144
- if (peg$silentFails === 0) { peg$fail(peg$e86); }
5826
+ if (peg$silentFails === 0) { peg$fail(peg$e93); }
5145
5827
  }
5146
5828
 
5147
5829
  return s0;
@@ -5162,7 +5844,7 @@ function peg$parse(input, options) {
5162
5844
  s7 = peg$parseNullishCoalescingExpression();
5163
5845
  if (s7 !== peg$FAILED) {
5164
5846
  peg$savedPos = s3;
5165
- s3 = peg$f67(s1, s5, s7);
5847
+ s3 = peg$f80(s1, s5, s7);
5166
5848
  } else {
5167
5849
  peg$currPos = s3;
5168
5850
  s3 = peg$FAILED;
@@ -5181,7 +5863,7 @@ function peg$parse(input, options) {
5181
5863
  s7 = peg$parseNullishCoalescingExpression();
5182
5864
  if (s7 !== peg$FAILED) {
5183
5865
  peg$savedPos = s3;
5184
- s3 = peg$f67(s1, s5, s7);
5866
+ s3 = peg$f80(s1, s5, s7);
5185
5867
  } else {
5186
5868
  peg$currPos = s3;
5187
5869
  s3 = peg$FAILED;
@@ -5192,7 +5874,7 @@ function peg$parse(input, options) {
5192
5874
  }
5193
5875
  }
5194
5876
  peg$savedPos = s0;
5195
- s0 = peg$f68(s1, s2);
5877
+ s0 = peg$f81(s1, s2);
5196
5878
  } else {
5197
5879
  peg$currPos = s0;
5198
5880
  s0 = peg$FAILED;
@@ -5204,28 +5886,28 @@ function peg$parse(input, options) {
5204
5886
  function peg$parsePipeOperator() {
5205
5887
  var s0;
5206
5888
 
5207
- if (input.substr(peg$currPos, 2) === peg$c52) {
5208
- s0 = peg$c52;
5889
+ if (input.substr(peg$currPos, 2) === peg$c58) {
5890
+ s0 = peg$c58;
5209
5891
  peg$currPos += 2;
5210
5892
  } else {
5211
5893
  s0 = peg$FAILED;
5212
- if (peg$silentFails === 0) { peg$fail(peg$e87); }
5894
+ if (peg$silentFails === 0) { peg$fail(peg$e94); }
5213
5895
  }
5214
5896
  if (s0 === peg$FAILED) {
5215
- if (input.substr(peg$currPos, 2) === peg$c53) {
5216
- s0 = peg$c53;
5897
+ if (input.substr(peg$currPos, 2) === peg$c59) {
5898
+ s0 = peg$c59;
5217
5899
  peg$currPos += 2;
5218
5900
  } else {
5219
5901
  s0 = peg$FAILED;
5220
- if (peg$silentFails === 0) { peg$fail(peg$e88); }
5902
+ if (peg$silentFails === 0) { peg$fail(peg$e95); }
5221
5903
  }
5222
5904
  if (s0 === peg$FAILED) {
5223
5905
  if (input.charCodeAt(peg$currPos) === 124) {
5224
- s0 = peg$c54;
5906
+ s0 = peg$c60;
5225
5907
  peg$currPos++;
5226
5908
  } else {
5227
5909
  s0 = peg$FAILED;
5228
- if (peg$silentFails === 0) { peg$fail(peg$e89); }
5910
+ if (peg$silentFails === 0) { peg$fail(peg$e96); }
5229
5911
  }
5230
5912
  }
5231
5913
  }
@@ -5238,15 +5920,15 @@ function peg$parse(input, options) {
5238
5920
 
5239
5921
  s0 = peg$currPos;
5240
5922
  if (input.charCodeAt(peg$currPos) === 37) {
5241
- s1 = peg$c55;
5923
+ s1 = peg$c61;
5242
5924
  peg$currPos++;
5243
5925
  } else {
5244
5926
  s1 = peg$FAILED;
5245
- if (peg$silentFails === 0) { peg$fail(peg$e90); }
5927
+ if (peg$silentFails === 0) { peg$fail(peg$e97); }
5246
5928
  }
5247
5929
  if (s1 !== peg$FAILED) {
5248
5930
  peg$savedPos = s0;
5249
- s1 = peg$f69();
5931
+ s1 = peg$f82();
5250
5932
  }
5251
5933
  s0 = s1;
5252
5934
 
@@ -5258,11 +5940,11 @@ function peg$parse(input, options) {
5258
5940
 
5259
5941
  s0 = peg$currPos;
5260
5942
  if (input.charCodeAt(peg$currPos) === 40) {
5261
- s1 = peg$c33;
5943
+ s1 = peg$c37;
5262
5944
  peg$currPos++;
5263
5945
  } else {
5264
5946
  s1 = peg$FAILED;
5265
- if (peg$silentFails === 0) { peg$fail(peg$e66); }
5947
+ if (peg$silentFails === 0) { peg$fail(peg$e71); }
5266
5948
  }
5267
5949
  if (s1 !== peg$FAILED) {
5268
5950
  s2 = peg$parse__();
@@ -5280,11 +5962,11 @@ function peg$parse(input, options) {
5280
5962
  s3 = null;
5281
5963
  }
5282
5964
  if (input.charCodeAt(peg$currPos) === 41) {
5283
- s4 = peg$c34;
5965
+ s4 = peg$c38;
5284
5966
  peg$currPos++;
5285
5967
  } else {
5286
5968
  s4 = peg$FAILED;
5287
- if (peg$silentFails === 0) { peg$fail(peg$e67); }
5969
+ if (peg$silentFails === 0) { peg$fail(peg$e72); }
5288
5970
  }
5289
5971
  if (s4 !== peg$FAILED) {
5290
5972
  s5 = peg$parse__();
@@ -5294,7 +5976,7 @@ function peg$parse(input, options) {
5294
5976
  s8 = peg$parseExpression();
5295
5977
  if (s8 !== peg$FAILED) {
5296
5978
  peg$savedPos = s0;
5297
- s0 = peg$f70(s3, s8);
5979
+ s0 = peg$f83(s3, s8);
5298
5980
  } else {
5299
5981
  peg$currPos = s0;
5300
5982
  s0 = peg$FAILED;
@@ -5323,7 +6005,7 @@ function peg$parse(input, options) {
5323
6005
  s6 = peg$parseExpression();
5324
6006
  if (s6 !== peg$FAILED) {
5325
6007
  peg$savedPos = s0;
5326
- s0 = peg$f71(s2, s6);
6008
+ s0 = peg$f84(s2, s6);
5327
6009
  } else {
5328
6010
  peg$currPos = s0;
5329
6011
  s0 = peg$FAILED;
@@ -5344,12 +6026,12 @@ function peg$parse(input, options) {
5344
6026
  function peg$parseLambdaArrow() {
5345
6027
  var s0;
5346
6028
 
5347
- if (input.substr(peg$currPos, 2) === peg$c56) {
5348
- s0 = peg$c56;
6029
+ if (input.substr(peg$currPos, 2) === peg$c62) {
6030
+ s0 = peg$c62;
5349
6031
  peg$currPos += 2;
5350
6032
  } else {
5351
6033
  s0 = peg$FAILED;
5352
- if (peg$silentFails === 0) { peg$fail(peg$e91); }
6034
+ if (peg$silentFails === 0) { peg$fail(peg$e98); }
5353
6035
  }
5354
6036
 
5355
6037
  return s0;
@@ -5365,11 +6047,11 @@ function peg$parse(input, options) {
5365
6047
  s3 = peg$currPos;
5366
6048
  s4 = peg$parse__();
5367
6049
  if (input.charCodeAt(peg$currPos) === 44) {
5368
- s5 = peg$c37;
6050
+ s5 = peg$c41;
5369
6051
  peg$currPos++;
5370
6052
  } else {
5371
6053
  s5 = peg$FAILED;
5372
- if (peg$silentFails === 0) { peg$fail(peg$e70); }
6054
+ if (peg$silentFails === 0) { peg$fail(peg$e75); }
5373
6055
  }
5374
6056
  if (s5 !== peg$FAILED) {
5375
6057
  s6 = peg$parse__();
@@ -5390,11 +6072,11 @@ function peg$parse(input, options) {
5390
6072
  s3 = peg$currPos;
5391
6073
  s4 = peg$parse__();
5392
6074
  if (input.charCodeAt(peg$currPos) === 44) {
5393
- s5 = peg$c37;
6075
+ s5 = peg$c41;
5394
6076
  peg$currPos++;
5395
6077
  } else {
5396
6078
  s5 = peg$FAILED;
5397
- if (peg$silentFails === 0) { peg$fail(peg$e70); }
6079
+ if (peg$silentFails === 0) { peg$fail(peg$e75); }
5398
6080
  }
5399
6081
  if (s5 !== peg$FAILED) {
5400
6082
  s6 = peg$parse__();
@@ -5412,7 +6094,7 @@ function peg$parse(input, options) {
5412
6094
  }
5413
6095
  }
5414
6096
  peg$savedPos = s0;
5415
- s0 = peg$f72(s1, s2);
6097
+ s0 = peg$f85(s1, s2);
5416
6098
  } else {
5417
6099
  peg$currPos = s0;
5418
6100
  s0 = peg$FAILED;
@@ -5432,18 +6114,18 @@ function peg$parse(input, options) {
5432
6114
  if (s3 !== peg$FAILED) {
5433
6115
  s4 = peg$parse__();
5434
6116
  if (input.charCodeAt(peg$currPos) === 44) {
5435
- s5 = peg$c37;
6117
+ s5 = peg$c41;
5436
6118
  peg$currPos++;
5437
6119
  } else {
5438
6120
  s5 = peg$FAILED;
5439
- if (peg$silentFails === 0) { peg$fail(peg$e70); }
6121
+ if (peg$silentFails === 0) { peg$fail(peg$e75); }
5440
6122
  }
5441
6123
  if (s5 !== peg$FAILED) {
5442
6124
  s6 = peg$parse__();
5443
6125
  s7 = peg$parseExpression();
5444
6126
  if (s7 !== peg$FAILED) {
5445
6127
  peg$savedPos = s0;
5446
- s0 = peg$f73(s3, s7);
6128
+ s0 = peg$f86(s3, s7);
5447
6129
  } else {
5448
6130
  peg$currPos = s0;
5449
6131
  s0 = peg$FAILED;
@@ -5474,11 +6156,11 @@ function peg$parse(input, options) {
5474
6156
  s3 = peg$currPos;
5475
6157
  s4 = peg$parse__();
5476
6158
  if (input.charCodeAt(peg$currPos) === 44) {
5477
- s5 = peg$c37;
6159
+ s5 = peg$c41;
5478
6160
  peg$currPos++;
5479
6161
  } else {
5480
6162
  s5 = peg$FAILED;
5481
- if (peg$silentFails === 0) { peg$fail(peg$e70); }
6163
+ if (peg$silentFails === 0) { peg$fail(peg$e75); }
5482
6164
  }
5483
6165
  if (s5 !== peg$FAILED) {
5484
6166
  s6 = peg$parse__();
@@ -5499,11 +6181,11 @@ function peg$parse(input, options) {
5499
6181
  s3 = peg$currPos;
5500
6182
  s4 = peg$parse__();
5501
6183
  if (input.charCodeAt(peg$currPos) === 44) {
5502
- s5 = peg$c37;
6184
+ s5 = peg$c41;
5503
6185
  peg$currPos++;
5504
6186
  } else {
5505
6187
  s5 = peg$FAILED;
5506
- if (peg$silentFails === 0) { peg$fail(peg$e70); }
6188
+ if (peg$silentFails === 0) { peg$fail(peg$e75); }
5507
6189
  }
5508
6190
  if (s5 !== peg$FAILED) {
5509
6191
  s6 = peg$parse__();
@@ -5521,7 +6203,7 @@ function peg$parse(input, options) {
5521
6203
  }
5522
6204
  }
5523
6205
  peg$savedPos = s0;
5524
- s0 = peg$f74(s1, s2);
6206
+ s0 = peg$f87(s1, s2);
5525
6207
  } else {
5526
6208
  peg$currPos = s0;
5527
6209
  s0 = peg$FAILED;
@@ -5548,7 +6230,7 @@ function peg$parse(input, options) {
5548
6230
  }
5549
6231
  if (s2 !== peg$FAILED) {
5550
6232
  peg$savedPos = s0;
5551
- s0 = peg$f75(s1, s2);
6233
+ s0 = peg$f88(s1, s2);
5552
6234
  } else {
5553
6235
  peg$currPos = s0;
5554
6236
  s0 = peg$FAILED;
@@ -5571,7 +6253,7 @@ function peg$parse(input, options) {
5571
6253
  s3 = peg$parseExpression();
5572
6254
  if (s3 !== peg$FAILED) {
5573
6255
  peg$savedPos = s0;
5574
- s0 = peg$f76(s3);
6256
+ s0 = peg$f89(s3);
5575
6257
  } else {
5576
6258
  peg$currPos = s0;
5577
6259
  s0 = peg$FAILED;
@@ -5589,21 +6271,21 @@ function peg$parse(input, options) {
5589
6271
 
5590
6272
  s0 = peg$currPos;
5591
6273
  if (input.charCodeAt(peg$currPos) === 61) {
5592
- s1 = peg$c57;
6274
+ s1 = peg$c47;
5593
6275
  peg$currPos++;
5594
6276
  } else {
5595
6277
  s1 = peg$FAILED;
5596
- if (peg$silentFails === 0) { peg$fail(peg$e92); }
6278
+ if (peg$silentFails === 0) { peg$fail(peg$e81); }
5597
6279
  }
5598
6280
  if (s1 !== peg$FAILED) {
5599
6281
  s2 = peg$currPos;
5600
6282
  peg$silentFails++;
5601
6283
  if (input.charCodeAt(peg$currPos) === 61) {
5602
- s3 = peg$c57;
6284
+ s3 = peg$c47;
5603
6285
  peg$currPos++;
5604
6286
  } else {
5605
6287
  s3 = peg$FAILED;
5606
- if (peg$silentFails === 0) { peg$fail(peg$e92); }
6288
+ if (peg$silentFails === 0) { peg$fail(peg$e81); }
5607
6289
  }
5608
6290
  peg$silentFails--;
5609
6291
  if (s3 === peg$FAILED) {
@@ -5652,7 +6334,7 @@ function peg$parse(input, options) {
5652
6334
  s2 = peg$parseEOS();
5653
6335
  if (s2 !== peg$FAILED) {
5654
6336
  peg$savedPos = s0;
5655
- s0 = peg$f77(s1);
6337
+ s0 = peg$f90(s1);
5656
6338
  } else {
5657
6339
  peg$currPos = s0;
5658
6340
  s0 = peg$FAILED;