@aster-cloud/aster-lang-ts 0.0.27 → 0.0.29

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 (171) hide show
  1. package/dist/peg/headers-parser.js +459 -233
  2. package/dist/scripts/aster.js +0 -0
  3. package/dist/scripts/emit-core.js +0 -0
  4. package/dist/scripts/generate-lexicons.d.ts +13 -0
  5. package/dist/scripts/generate-lexicons.d.ts.map +1 -0
  6. package/dist/scripts/generate-lexicons.js +152 -0
  7. package/dist/scripts/generate-lexicons.js.map +1 -0
  8. package/dist/scripts/generate-vocabularies.d.ts +13 -0
  9. package/dist/scripts/generate-vocabularies.d.ts.map +1 -0
  10. package/dist/scripts/generate-vocabularies.js +205 -0
  11. package/dist/scripts/generate-vocabularies.js.map +1 -0
  12. package/dist/scripts/golden.js +4 -4
  13. package/dist/scripts/golden.js.map +1 -1
  14. package/dist/scripts/perf-assert.js +2 -2
  15. package/dist/scripts/perf-assert.js.map +1 -1
  16. package/dist/scripts/perf-lsp.js +2 -2
  17. package/dist/scripts/perf-lsp.js.map +1 -1
  18. package/dist/scripts/scaffold.js +4 -4
  19. package/dist/scripts/verify-lexicon-sync.d.ts +14 -0
  20. package/dist/scripts/verify-lexicon-sync.d.ts.map +1 -0
  21. package/dist/scripts/verify-lexicon-sync.js +248 -0
  22. package/dist/scripts/verify-lexicon-sync.js.map +1 -0
  23. package/dist/src/browser.d.ts +2 -0
  24. package/dist/src/browser.d.ts.map +1 -1
  25. package/dist/src/browser.js +28 -7
  26. package/dist/src/browser.js.map +1 -1
  27. package/dist/src/cli/policy-converter.js +0 -0
  28. package/dist/src/config/lexicons/de-DE.d.ts +0 -9
  29. package/dist/src/config/lexicons/de-DE.d.ts.map +1 -1
  30. package/dist/src/config/lexicons/de-DE.js +27 -53
  31. package/dist/src/config/lexicons/de-DE.js.map +1 -1
  32. package/dist/src/config/lexicons/en-US.d.ts +0 -12
  33. package/dist/src/config/lexicons/en-US.d.ts.map +1 -1
  34. package/dist/src/config/lexicons/en-US.js +27 -50
  35. package/dist/src/config/lexicons/en-US.js.map +1 -1
  36. package/dist/src/config/lexicons/identifiers/domains/finance.loan.de-DE.d.ts +3 -0
  37. package/dist/src/config/lexicons/identifiers/domains/finance.loan.de-DE.d.ts.map +1 -0
  38. package/dist/src/config/lexicons/identifiers/domains/finance.loan.de-DE.js +310 -0
  39. package/dist/src/config/lexicons/identifiers/domains/finance.loan.de-DE.js.map +1 -0
  40. package/dist/src/config/lexicons/identifiers/domains/finance.loan.en-US.d.ts +3 -0
  41. package/dist/src/config/lexicons/identifiers/domains/finance.loan.en-US.d.ts.map +1 -0
  42. package/dist/src/config/lexicons/identifiers/domains/finance.loan.en-US.js +291 -0
  43. package/dist/src/config/lexicons/identifiers/domains/finance.loan.en-US.js.map +1 -0
  44. package/dist/src/config/lexicons/identifiers/domains/finance.loan.zh-CN.d.ts +1 -11
  45. package/dist/src/config/lexicons/identifiers/domains/finance.loan.zh-CN.d.ts.map +1 -1
  46. package/dist/src/config/lexicons/identifiers/domains/finance.loan.zh-CN.js +47 -33
  47. package/dist/src/config/lexicons/identifiers/domains/finance.loan.zh-CN.js.map +1 -1
  48. package/dist/src/config/lexicons/identifiers/domains/index.d.ts +7 -0
  49. package/dist/src/config/lexicons/identifiers/domains/index.d.ts.map +1 -0
  50. package/dist/src/config/lexicons/identifiers/domains/index.js +8 -0
  51. package/dist/src/config/lexicons/identifiers/domains/index.js.map +1 -0
  52. package/dist/src/config/lexicons/identifiers/domains/insurance.auto.de-DE.d.ts +3 -0
  53. package/dist/src/config/lexicons/identifiers/domains/insurance.auto.de-DE.d.ts.map +1 -0
  54. package/dist/src/config/lexicons/identifiers/domains/insurance.auto.de-DE.js +275 -0
  55. package/dist/src/config/lexicons/identifiers/domains/insurance.auto.de-DE.js.map +1 -0
  56. package/dist/src/config/lexicons/identifiers/domains/insurance.auto.en-US.d.ts +3 -0
  57. package/dist/src/config/lexicons/identifiers/domains/insurance.auto.en-US.d.ts.map +1 -0
  58. package/dist/src/config/lexicons/identifiers/domains/insurance.auto.en-US.js +261 -0
  59. package/dist/src/config/lexicons/identifiers/domains/insurance.auto.en-US.js.map +1 -0
  60. package/dist/src/config/lexicons/identifiers/domains/insurance.auto.zh-CN.d.ts +1 -23
  61. package/dist/src/config/lexicons/identifiers/domains/insurance.auto.zh-CN.d.ts.map +1 -1
  62. package/dist/src/config/lexicons/identifiers/domains/insurance.auto.zh-CN.js +81 -155
  63. package/dist/src/config/lexicons/identifiers/domains/insurance.auto.zh-CN.js.map +1 -1
  64. package/dist/src/config/lexicons/identifiers/examples/canonicalizer-integration.js +8 -8
  65. package/dist/src/config/lexicons/identifiers/examples/canonicalizer-integration.js.map +1 -1
  66. package/dist/src/config/lexicons/identifiers/index.d.ts +1 -2
  67. package/dist/src/config/lexicons/identifiers/index.d.ts.map +1 -1
  68. package/dist/src/config/lexicons/identifiers/index.js +2 -3
  69. package/dist/src/config/lexicons/identifiers/index.js.map +1 -1
  70. package/dist/src/config/lexicons/identifiers/registry.d.ts +2 -2
  71. package/dist/src/config/lexicons/identifiers/registry.d.ts.map +1 -1
  72. package/dist/src/config/lexicons/identifiers/registry.js +16 -3
  73. package/dist/src/config/lexicons/identifiers/registry.js.map +1 -1
  74. package/dist/src/config/lexicons/template.d.ts.map +1 -1
  75. package/dist/src/config/lexicons/template.js +18 -8
  76. package/dist/src/config/lexicons/template.js.map +1 -1
  77. package/dist/src/config/lexicons/types.d.ts +1 -1
  78. package/dist/src/config/lexicons/types.d.ts.map +1 -1
  79. package/dist/src/config/lexicons/zh-CN.d.ts +0 -18
  80. package/dist/src/config/lexicons/zh-CN.d.ts.map +1 -1
  81. package/dist/src/config/lexicons/zh-CN.js +26 -61
  82. package/dist/src/config/lexicons/zh-CN.js.map +1 -1
  83. package/dist/src/config/semantic.d.ts +9 -4
  84. package/dist/src/config/semantic.d.ts.map +1 -1
  85. package/dist/src/config/semantic.js +16 -5
  86. package/dist/src/config/semantic.js.map +1 -1
  87. package/dist/src/config/token-kind.d.ts +17 -5
  88. package/dist/src/config/token-kind.d.ts.map +1 -1
  89. package/dist/src/config/token-kind.js +23 -7
  90. package/dist/src/config/token-kind.js.map +1 -1
  91. package/dist/src/frontend/canonicalizer.d.ts +20 -2
  92. package/dist/src/frontend/canonicalizer.d.ts.map +1 -1
  93. package/dist/src/frontend/canonicalizer.js +58 -2
  94. package/dist/src/frontend/canonicalizer.js.map +1 -1
  95. package/dist/src/frontend/index.d.ts +1 -0
  96. package/dist/src/frontend/index.d.ts.map +1 -1
  97. package/dist/src/frontend/index.js.map +1 -1
  98. package/dist/src/frontend/keyword-translator.js +1 -1
  99. package/dist/src/frontend/keyword-translator.js.map +1 -1
  100. package/dist/src/lsp/codeaction.js +9 -9
  101. package/dist/src/lsp/codeaction.js.map +1 -1
  102. package/dist/src/lsp/completion.js +2 -2
  103. package/dist/src/lsp/completion.js.map +1 -1
  104. package/dist/src/lsp/module_cache.js +2 -2
  105. package/dist/src/lsp/module_cache.js.map +1 -1
  106. package/dist/src/lsp/server.js +0 -0
  107. package/dist/src/lsp/symbols.js +2 -2
  108. package/dist/src/lsp/symbols.js.map +1 -1
  109. package/dist/src/parser/decl-parser.d.ts +2 -2
  110. package/dist/src/parser/decl-parser.js +12 -12
  111. package/dist/src/parser/decl-parser.js.map +1 -1
  112. package/dist/src/parser/expr-stmt-parser.js +2 -2
  113. package/dist/src/parser/expr-stmt-parser.js.map +1 -1
  114. package/dist/src/parser.d.ts +1 -1
  115. package/dist/src/parser.js +1 -1
  116. package/dist/test/compiler/depends-on.test.js +2 -2
  117. package/dist/test/compiler/depends-on.test.js.map +1 -1
  118. package/dist/test/compiler/workflow-emitter-helpers.js +2 -2
  119. package/dist/test/compiler/workflow-emitter-helpers.js.map +1 -1
  120. package/dist/test/generators.js +18 -18
  121. package/dist/test/generators.js.map +1 -1
  122. package/dist/test/integration/lsp/lsp-completion.test.js +13 -13
  123. package/dist/test/integration/lsp/lsp-completion.test.js.map +1 -1
  124. package/dist/test/integration/lsp/lsp-diagnostics.test.js +7 -7
  125. package/dist/test/integration/lsp/lsp-diagnostics.test.js.map +1 -1
  126. package/dist/test/integration/lsp/lsp-file-watcher.test.js +8 -8
  127. package/dist/test/integration/lsp/lsp-file-watcher.test.js.map +1 -1
  128. package/dist/test/integration/lsp/lsp-modules.test.js +6 -6
  129. package/dist/test/integration/lsp/lsp-multi-rename.test.js +1 -1
  130. package/dist/test/integration/lsp/lsp-multi-rename.test.js.map +1 -1
  131. package/dist/test/integration/lsp/lsp-navigation.test.js +21 -21
  132. package/dist/test/integration/lsp/lsp-navigation.test.js.map +1 -1
  133. package/dist/test/integration/pipeline/pipeline.test.js +38 -38
  134. package/dist/test/integration/pipeline/pipeline.test.js.map +1 -1
  135. package/dist/test/property/lsp-props.test.js +2 -2
  136. package/dist/test/property/lsp-props.test.js.map +1 -1
  137. package/dist/test/property/property.test.js +25 -25
  138. package/dist/test/property/property.test.js.map +1 -1
  139. package/dist/test/type-checker/cross-module-packages.test.js +2 -1
  140. package/dist/test/type-checker/cross-module-packages.test.js.map +1 -1
  141. package/dist/test/unit/async/async-discipline.test.js +81 -81
  142. package/dist/test/unit/async/async-schedule.test.js +23 -23
  143. package/dist/test/unit/canonicalizer/canonicalizer.test.js +19 -13
  144. package/dist/test/unit/canonicalizer/canonicalizer.test.js.map +1 -1
  145. package/dist/test/unit/config/lexicons/zh-CN.test.js +44 -71
  146. package/dist/test/unit/config/lexicons/zh-CN.test.js.map +1 -1
  147. package/dist/test/unit/generator.test.js +3 -3
  148. package/dist/test/unit/generator.test.js.map +1 -1
  149. package/dist/test/unit/keyword-translator.test.js +55 -56
  150. package/dist/test/unit/keyword-translator.test.js.map +1 -1
  151. package/dist/test/unit/lexer/lexer.test.js +5 -5
  152. package/dist/test/unit/lexer/lexer.test.js.map +1 -1
  153. package/dist/test/unit/lowering/lowering.test.js +13 -13
  154. package/dist/test/unit/lsp/codeaction.test.js +9 -9
  155. package/dist/test/unit/lsp/codeaction.test.js.map +1 -1
  156. package/dist/test/unit/lsp/symbols.test.js +2 -2
  157. package/dist/test/unit/lsp/symbols.test.js.map +1 -1
  158. package/dist/test/unit/module-cache-packages.test.js +4 -4
  159. package/dist/test/unit/module-cache-packages.test.js.map +1 -1
  160. package/dist/test/unit/parser/parser.test.js +137 -137
  161. package/dist/test/unit/parser/parser.test.js.map +1 -1
  162. package/dist/test/unit/provenance-integration.test.js +16 -16
  163. package/dist/test/unit/provenance.test.js +5 -5
  164. package/dist/test/unit/provenance.test.js.map +1 -1
  165. package/dist/test/unit/typecheck/async-discipline-extended.test.js +4 -4
  166. package/dist/test/unit/typecheck/effects-and-capabilities.test.js +18 -18
  167. package/dist/test/unit/typecheck/type-inference.test.js +23 -23
  168. package/dist/test/unit/typecheck/typecheck-advanced.test.js +10 -10
  169. package/dist/test/unit/validator.test.js +14 -14
  170. package/dist/test/unit/validator.test.js.map +1 -1
  171. package/package.json +56 -38
@@ -164,110 +164,122 @@ function peg$parse(input, options) {
164
164
  };
165
165
  let peg$startRuleFunction = peg$parseStart;
166
166
 
167
- const peg$c0 = "this module is";
167
+ const peg$c0 = "module";
168
168
  const peg$c1 = ".";
169
- const peg$c2 = "use";
170
- const peg$c3 = "as";
171
- const peg$c4 = "define";
172
- const peg$c5 = "with";
173
- const peg$c6 = "one";
174
- const peg$c7 = "of";
175
- const peg$c8 = "to";
176
- const peg$c9 = ",";
177
- const peg$c10 = "produce";
178
- const peg$c11 = ":";
179
- const peg$c12 = "it";
180
- const peg$c13 = "performs";
181
- const peg$c14 = "io";
182
- const peg$c15 = "cpu";
183
- const peg$c16 = "and";
184
- const peg$c17 = "or";
185
- const peg$c18 = "maybe";
186
- const peg$c19 = "option";
187
- const peg$c20 = "result";
188
- const peg$c21 = "list";
189
- const peg$c22 = "map";
190
- const peg$c23 = "text";
191
- const peg$c24 = "int";
192
- const peg$c25 = "float";
193
- const peg$c26 = "bool";
169
+ const peg$c2 = "this module is";
170
+ const peg$c3 = "use";
171
+ const peg$c4 = "as";
172
+ const peg$c5 = "define";
173
+ const peg$c6 = "has";
174
+ const peg$c7 = "with";
175
+ const peg$c8 = "one";
176
+ const peg$c9 = "of";
177
+ const peg$c10 = "rule";
178
+ const peg$c11 = ",";
179
+ const peg$c12 = "produce";
180
+ const peg$c13 = "to";
181
+ const peg$c14 = "given";
182
+ const peg$c15 = ":";
183
+ const peg$c16 = "it";
184
+ const peg$c17 = "performs";
185
+ const peg$c18 = "io";
186
+ const peg$c19 = "cpu";
187
+ const peg$c20 = "and";
188
+ const peg$c21 = "or";
189
+ const peg$c22 = "maybe";
190
+ const peg$c23 = "option";
191
+ const peg$c24 = "result";
192
+ const peg$c25 = "list";
193
+ const peg$c26 = "map";
194
+ const peg$c27 = "text";
195
+ const peg$c28 = "int";
196
+ const peg$c29 = "float";
197
+ const peg$c30 = "bool";
194
198
 
195
199
  const peg$r0 = /^[.:]/;
196
- const peg$r1 = /^[A-Z]/;
197
- const peg$r2 = /^[A-Za-z0-9_]/;
198
- const peg$r3 = /^[a-z]/;
200
+ const peg$r1 = /^[A-Z\xC0-\xD6\xD8-\xDE\u0100-\u024F\u4E00-\u9FFF\u3400-\u4DBF]/;
201
+ const peg$r2 = /^[A-Za-z0-9_\xC0-\u024F\u4E00-\u9FFF\u3400-\u4DBF]/;
202
+ const peg$r3 = /^[a-z\xDF-\xF6\xF8-\xFF\u0100-\u024F\u4E00-\u9FFF\u3400-\u4DBF]/;
199
203
  const peg$r4 = /^[ \t]/;
200
204
 
201
- const peg$e0 = peg$literalExpectation("this module is", true);
205
+ const peg$e0 = peg$literalExpectation("Module", true);
202
206
  const peg$e1 = peg$literalExpectation(".", false);
203
- const peg$e2 = peg$literalExpectation("use", true);
204
- const peg$e3 = peg$literalExpectation("as", true);
205
- const peg$e4 = peg$literalExpectation("define", true);
206
- const peg$e5 = peg$literalExpectation("with", true);
207
- const peg$e6 = peg$literalExpectation("one", true);
208
- const peg$e7 = peg$literalExpectation("of", true);
209
- const peg$e8 = peg$literalExpectation("to", true);
210
- const peg$e9 = peg$literalExpectation(",", false);
211
- const peg$e10 = peg$literalExpectation("produce", true);
212
- const peg$e11 = peg$literalExpectation(":", false);
213
- const peg$e12 = peg$literalExpectation("it", true);
214
- const peg$e13 = peg$literalExpectation("performs", true);
215
- const peg$e14 = peg$classExpectation([".", ":"], false, false, false);
216
- const peg$e15 = peg$literalExpectation("io", true);
217
- const peg$e16 = peg$literalExpectation("cpu", true);
218
- const peg$e17 = peg$literalExpectation("and", true);
219
- const peg$e18 = peg$literalExpectation("or", true);
220
- const peg$e19 = peg$literalExpectation("maybe", true);
221
- const peg$e20 = peg$literalExpectation("option", true);
222
- const peg$e21 = peg$literalExpectation("result", true);
223
- const peg$e22 = peg$literalExpectation("list", true);
224
- const peg$e23 = peg$literalExpectation("map", true);
225
- const peg$e24 = peg$literalExpectation("text", true);
226
- const peg$e25 = peg$literalExpectation("int", true);
227
- const peg$e26 = peg$literalExpectation("float", true);
228
- const peg$e27 = peg$literalExpectation("bool", true);
229
- const peg$e28 = peg$classExpectation([["A", "Z"]], false, false, false);
230
- const peg$e29 = peg$classExpectation([["A", "Z"], ["a", "z"], ["0", "9"], "_"], false, false, false);
231
- const peg$e30 = peg$classExpectation([["a", "z"]], false, false, false);
232
- const peg$e31 = peg$classExpectation([" ", "\t"], false, false, false);
207
+ const peg$e2 = peg$literalExpectation("this module is", true);
208
+ const peg$e3 = peg$literalExpectation("use", true);
209
+ const peg$e4 = peg$literalExpectation("as", true);
210
+ const peg$e5 = peg$literalExpectation("define", true);
211
+ const peg$e6 = peg$literalExpectation("has", true);
212
+ const peg$e7 = peg$literalExpectation("with", true);
213
+ const peg$e8 = peg$literalExpectation("one", true);
214
+ const peg$e9 = peg$literalExpectation("of", true);
215
+ const peg$e10 = peg$literalExpectation("Rule", true);
216
+ const peg$e11 = peg$literalExpectation(",", false);
217
+ const peg$e12 = peg$literalExpectation("produce", true);
218
+ const peg$e13 = peg$literalExpectation("to", true);
219
+ const peg$e14 = peg$literalExpectation("given", true);
220
+ const peg$e15 = peg$literalExpectation(":", false);
221
+ const peg$e16 = peg$literalExpectation("it", true);
222
+ const peg$e17 = peg$literalExpectation("performs", true);
223
+ const peg$e18 = peg$classExpectation([".", ":"], false, false, false);
224
+ const peg$e19 = peg$literalExpectation("io", true);
225
+ const peg$e20 = peg$literalExpectation("cpu", true);
226
+ const peg$e21 = peg$literalExpectation("and", true);
227
+ const peg$e22 = peg$literalExpectation("or", true);
228
+ const peg$e23 = peg$literalExpectation("maybe", true);
229
+ const peg$e24 = peg$literalExpectation("option", true);
230
+ const peg$e25 = peg$literalExpectation("result", true);
231
+ const peg$e26 = peg$literalExpectation("list", true);
232
+ const peg$e27 = peg$literalExpectation("map", true);
233
+ const peg$e28 = peg$literalExpectation("text", true);
234
+ const peg$e29 = peg$literalExpectation("int", true);
235
+ const peg$e30 = peg$literalExpectation("float", true);
236
+ const peg$e31 = peg$literalExpectation("bool", true);
237
+ const peg$e32 = peg$classExpectation([["A", "Z"], ["\xC0", "\xD6"], ["\xD8", "\xDE"], ["\u0100", "\u024F"], ["\u4E00", "\u9FFF"], ["\u3400", "\u4DBF"]], false, false, false);
238
+ const peg$e33 = peg$classExpectation([["A", "Z"], ["a", "z"], ["0", "9"], "_", ["\xC0", "\u024F"], ["\u4E00", "\u9FFF"], ["\u3400", "\u4DBF"]], false, false, false);
239
+ const peg$e34 = peg$classExpectation([["a", "z"], ["\xDF", "\xF6"], ["\xF8", "\xFF"], ["\u0100", "\u024F"], ["\u4E00", "\u9FFF"], ["\u3400", "\u4DBF"]], false, false, false);
240
+ const peg$e35 = peg$classExpectation([" ", "\t"], false, false, false);
233
241
 
234
242
  function peg$f0(h) { return h; }
235
243
  function peg$f1(n) { return { kind: 'Module', name: n }; }
236
- function peg$f2(n, a) { return a; }
237
- function peg$f3(n) { return { kind: 'Import', name: n, asName: a ?? null }; }
238
- function peg$f4(t, fs) { return { kind: 'Data', name: t, fields: fs }; }
239
- function peg$f5(t, vs) { return { kind: 'Enum', name: t, variants: vs }; }
240
- function peg$f6(n, p, r, eff, end) { return { kind: 'FuncHeader', name: n, params: p ?? [], retType: r, effects: eff ?? [], bodyFollows: end === ':' }; }
241
- function peg$f7() { return ':'; }
242
- function peg$f8() { return '.'; }
243
- function peg$f9(es) { return es; }
244
- function peg$f10(e) { return [e]; }
245
- function peg$f11(e) { return [e]; }
246
- function peg$f12() { return 'io'; }
247
- function peg$f13() { return 'cpu'; }
248
- function peg$f14(ps) { return ps; }
249
- function peg$f15(ps) { return ps; }
250
- function peg$f16(a, b) { return b; }
251
- function peg$f17(a) { return [a].concat(b ?? []); }
252
- function peg$f18(n, t) { return { name: n, type: t }; }
253
- function peg$f19(a, b) { return b; }
254
- function peg$f20(a) { return [a].concat(b ?? []); }
255
- function peg$f21(n, t) { return { name: n, type: t }; }
256
- function peg$f22(a, b) { return b; }
257
- function peg$f23(a) { return [a].concat(b ?? []); }
258
- function peg$f24(t) { return { kind: 'Maybe', type: t }; }
259
- function peg$f25(t) { return { kind: 'Option', type: t }; }
260
- function peg$f26(ok, err) { return { kind: 'Result', ok: ok, err: err }; }
261
- function peg$f27(t) { return { kind: 'List', type: t }; }
262
- function peg$f28(k, v) { return { kind: 'Map', key: k, val: v }; }
263
- function peg$f29(t) { return t; }
264
- function peg$f30(t) { return text(t); }
265
- function peg$f31() { return text('Text'); }
266
- function peg$f32() { return text('Int'); }
267
- function peg$f33() { return text('Float'); }
268
- function peg$f34() { return text('Bool'); }
269
- function peg$f35(a, b) { return b; }
270
- function peg$f36(a) { return [a].concat(b ?? []).join('.'); }
244
+ function peg$f2(n) { return { kind: 'Module', name: n }; }
245
+ function peg$f3(n, a) { return a; }
246
+ function peg$f4(n, a) { return { kind: 'Import', name: n, asName: a ?? null }; }
247
+ function peg$f5(t, fs) { return { kind: 'Data', name: t, fields: fs }; }
248
+ function peg$f6(t, fs) { return { kind: 'Data', name: t, fields: fs }; }
249
+ function peg$f7(t, vs) { return { kind: 'Enum', name: t, variants: vs }; }
250
+ function peg$f8(n, p, r, eff, end) { return { kind: 'FuncHeader', name: n, params: p ?? [], retType: r, effects: eff ?? [], bodyFollows: end === ':' }; }
251
+ function peg$f9(n, p, r, eff, end) { return { kind: 'FuncHeader', name: n, params: p ?? [], retType: r, effects: eff ?? [], bodyFollows: end === ':' }; }
252
+ function peg$f10(ps) { return ps; }
253
+ function peg$f11() { return ':'; }
254
+ function peg$f12() { return '.'; }
255
+ function peg$f13(es) { return es; }
256
+ function peg$f14(e) { return [e]; }
257
+ function peg$f15(e) { return [e]; }
258
+ function peg$f16() { return 'io'; }
259
+ function peg$f17() { return 'cpu'; }
260
+ function peg$f18(ps) { return ps; }
261
+ function peg$f19(ps) { return ps; }
262
+ function peg$f20(a, b) { return b; }
263
+ function peg$f21(a) { return [a].concat(b ?? []); }
264
+ function peg$f22(n, t) { return { name: n, type: t }; }
265
+ function peg$f23(a, b) { return b; }
266
+ function peg$f24(a) { return [a].concat(b ?? []); }
267
+ function peg$f25(n, t) { return { name: n, type: t }; }
268
+ function peg$f26(a, b) { return b; }
269
+ function peg$f27(a) { return [a].concat(b ?? []); }
270
+ function peg$f28(t) { return { kind: 'Maybe', type: t }; }
271
+ function peg$f29(t) { return { kind: 'Option', type: t }; }
272
+ function peg$f30(ok, err) { return { kind: 'Result', ok: ok, err: err }; }
273
+ function peg$f31(t) { return { kind: 'List', type: t }; }
274
+ function peg$f32(k, v) { return { kind: 'Map', key: k, val: v }; }
275
+ function peg$f33(t) { return t; }
276
+ function peg$f34(t) { return text(t); }
277
+ function peg$f35() { return text('Text'); }
278
+ function peg$f36() { return text('Int'); }
279
+ function peg$f37() { return text('Float'); }
280
+ function peg$f38() { return text('Bool'); }
281
+ function peg$f39(a, b) { return b; }
282
+ function peg$f40(a) { return [a].concat(b ?? []).join('.'); }
271
283
  let peg$currPos = options.peg$currPos | 0;
272
284
  let peg$savedPos = peg$currPos;
273
285
  const peg$posDetailsCache = [{ line: 1, column: 1 }];
@@ -449,9 +461,15 @@ function peg$parse(input, options) {
449
461
  if (s2 === peg$FAILED) {
450
462
  s2 = peg$parseData();
451
463
  if (s2 === peg$FAILED) {
452
- s2 = peg$parseEnum();
464
+ s2 = peg$parseDataHas();
453
465
  if (s2 === peg$FAILED) {
454
- s2 = peg$parseFuncHeader();
466
+ s2 = peg$parseEnum();
467
+ if (s2 === peg$FAILED) {
468
+ s2 = peg$parseFuncHeader();
469
+ if (s2 === peg$FAILED) {
470
+ s2 = peg$parseFuncHeaderLegacy();
471
+ }
472
+ }
455
473
  }
456
474
  }
457
475
  }
@@ -472,9 +490,9 @@ function peg$parse(input, options) {
472
490
  let s0, s1, s2, s3, s4, s5;
473
491
 
474
492
  s0 = peg$currPos;
475
- s1 = input.substr(peg$currPos, 14);
493
+ s1 = input.substr(peg$currPos, 6);
476
494
  if (s1.toLowerCase() === peg$c0) {
477
- peg$currPos += (14);
495
+ peg$currPos += (6);
478
496
  } else {
479
497
  s1 = peg$FAILED;
480
498
  if (peg$silentFails === 0) { peg$fail(peg$e0); }
@@ -506,6 +524,43 @@ function peg$parse(input, options) {
506
524
  peg$currPos = s0;
507
525
  s0 = peg$FAILED;
508
526
  }
527
+ if (s0 === peg$FAILED) {
528
+ s0 = peg$currPos;
529
+ s1 = input.substr(peg$currPos, 14);
530
+ if (s1.toLowerCase() === peg$c2) {
531
+ peg$currPos += (14);
532
+ } else {
533
+ s1 = peg$FAILED;
534
+ if (peg$silentFails === 0) { peg$fail(peg$e2); }
535
+ }
536
+ if (s1 !== peg$FAILED) {
537
+ s2 = peg$parse_();
538
+ s3 = peg$parseDottedIdent();
539
+ if (s3 !== peg$FAILED) {
540
+ s4 = peg$parse_();
541
+ if (input.charCodeAt(peg$currPos) === 46) {
542
+ s5 = peg$c1;
543
+ peg$currPos++;
544
+ } else {
545
+ s5 = peg$FAILED;
546
+ if (peg$silentFails === 0) { peg$fail(peg$e1); }
547
+ }
548
+ if (s5 !== peg$FAILED) {
549
+ peg$savedPos = s0;
550
+ s0 = peg$f2(s3);
551
+ } else {
552
+ peg$currPos = s0;
553
+ s0 = peg$FAILED;
554
+ }
555
+ } else {
556
+ peg$currPos = s0;
557
+ s0 = peg$FAILED;
558
+ }
559
+ } else {
560
+ peg$currPos = s0;
561
+ s0 = peg$FAILED;
562
+ }
563
+ }
509
564
 
510
565
  return s0;
511
566
  }
@@ -515,11 +570,11 @@ function peg$parse(input, options) {
515
570
 
516
571
  s0 = peg$currPos;
517
572
  s1 = input.substr(peg$currPos, 3);
518
- if (s1.toLowerCase() === peg$c2) {
573
+ if (s1.toLowerCase() === peg$c3) {
519
574
  peg$currPos += (3);
520
575
  } else {
521
576
  s1 = peg$FAILED;
522
- if (peg$silentFails === 0) { peg$fail(peg$e2); }
577
+ if (peg$silentFails === 0) { peg$fail(peg$e3); }
523
578
  }
524
579
  if (s1 !== peg$FAILED) {
525
580
  s2 = peg$parse_();
@@ -528,18 +583,18 @@ function peg$parse(input, options) {
528
583
  s4 = peg$parse_();
529
584
  s5 = peg$currPos;
530
585
  s6 = input.substr(peg$currPos, 2);
531
- if (s6.toLowerCase() === peg$c3) {
586
+ if (s6.toLowerCase() === peg$c4) {
532
587
  peg$currPos += (2);
533
588
  } else {
534
589
  s6 = peg$FAILED;
535
- if (peg$silentFails === 0) { peg$fail(peg$e3); }
590
+ if (peg$silentFails === 0) { peg$fail(peg$e4); }
536
591
  }
537
592
  if (s6 !== peg$FAILED) {
538
593
  s7 = peg$parse_();
539
594
  s8 = peg$parseIdent();
540
595
  if (s8 !== peg$FAILED) {
541
596
  peg$savedPos = s5;
542
- s5 = peg$f2(s3, s8);
597
+ s5 = peg$f3(s3, s8);
543
598
  } else {
544
599
  peg$currPos = s5;
545
600
  s5 = peg$FAILED;
@@ -561,7 +616,69 @@ function peg$parse(input, options) {
561
616
  }
562
617
  if (s7 !== peg$FAILED) {
563
618
  peg$savedPos = s0;
564
- s0 = peg$f3(s3);
619
+ s0 = peg$f4(s3, s5);
620
+ } else {
621
+ peg$currPos = s0;
622
+ s0 = peg$FAILED;
623
+ }
624
+ } else {
625
+ peg$currPos = s0;
626
+ s0 = peg$FAILED;
627
+ }
628
+ } else {
629
+ peg$currPos = s0;
630
+ s0 = peg$FAILED;
631
+ }
632
+
633
+ return s0;
634
+ }
635
+
636
+ function peg$parseDataHas() {
637
+ let s0, s1, s2, s3, s4, s5, s6, s7, s8, s9;
638
+
639
+ s0 = peg$currPos;
640
+ s1 = input.substr(peg$currPos, 6);
641
+ if (s1.toLowerCase() === peg$c5) {
642
+ peg$currPos += (6);
643
+ } else {
644
+ s1 = peg$FAILED;
645
+ if (peg$silentFails === 0) { peg$fail(peg$e5); }
646
+ }
647
+ if (s1 !== peg$FAILED) {
648
+ s2 = peg$parse_();
649
+ s3 = peg$parseTypeIdent();
650
+ if (s3 !== peg$FAILED) {
651
+ s4 = peg$parse_();
652
+ s5 = input.substr(peg$currPos, 3);
653
+ if (s5.toLowerCase() === peg$c6) {
654
+ peg$currPos += (3);
655
+ } else {
656
+ s5 = peg$FAILED;
657
+ if (peg$silentFails === 0) { peg$fail(peg$e6); }
658
+ }
659
+ if (s5 !== peg$FAILED) {
660
+ s6 = peg$parse_();
661
+ s7 = peg$parseFieldList();
662
+ if (s7 !== peg$FAILED) {
663
+ s8 = peg$parse_();
664
+ if (input.charCodeAt(peg$currPos) === 46) {
665
+ s9 = peg$c1;
666
+ peg$currPos++;
667
+ } else {
668
+ s9 = peg$FAILED;
669
+ if (peg$silentFails === 0) { peg$fail(peg$e1); }
670
+ }
671
+ if (s9 !== peg$FAILED) {
672
+ peg$savedPos = s0;
673
+ s0 = peg$f5(s3, s7);
674
+ } else {
675
+ peg$currPos = s0;
676
+ s0 = peg$FAILED;
677
+ }
678
+ } else {
679
+ peg$currPos = s0;
680
+ s0 = peg$FAILED;
681
+ }
565
682
  } else {
566
683
  peg$currPos = s0;
567
684
  s0 = peg$FAILED;
@@ -583,11 +700,11 @@ function peg$parse(input, options) {
583
700
 
584
701
  s0 = peg$currPos;
585
702
  s1 = input.substr(peg$currPos, 6);
586
- if (s1.toLowerCase() === peg$c4) {
703
+ if (s1.toLowerCase() === peg$c5) {
587
704
  peg$currPos += (6);
588
705
  } else {
589
706
  s1 = peg$FAILED;
590
- if (peg$silentFails === 0) { peg$fail(peg$e4); }
707
+ if (peg$silentFails === 0) { peg$fail(peg$e5); }
591
708
  }
592
709
  if (s1 !== peg$FAILED) {
593
710
  s2 = peg$parse_();
@@ -595,11 +712,11 @@ function peg$parse(input, options) {
595
712
  if (s3 !== peg$FAILED) {
596
713
  s4 = peg$parse_();
597
714
  s5 = input.substr(peg$currPos, 4);
598
- if (s5.toLowerCase() === peg$c5) {
715
+ if (s5.toLowerCase() === peg$c7) {
599
716
  peg$currPos += (4);
600
717
  } else {
601
718
  s5 = peg$FAILED;
602
- if (peg$silentFails === 0) { peg$fail(peg$e5); }
719
+ if (peg$silentFails === 0) { peg$fail(peg$e7); }
603
720
  }
604
721
  if (s5 !== peg$FAILED) {
605
722
  s6 = peg$parse_();
@@ -615,7 +732,7 @@ function peg$parse(input, options) {
615
732
  }
616
733
  if (s9 !== peg$FAILED) {
617
734
  peg$savedPos = s0;
618
- s0 = peg$f4(s3, s7);
735
+ s0 = peg$f6(s3, s7);
619
736
  } else {
620
737
  peg$currPos = s0;
621
738
  s0 = peg$FAILED;
@@ -645,11 +762,11 @@ function peg$parse(input, options) {
645
762
 
646
763
  s0 = peg$currPos;
647
764
  s1 = input.substr(peg$currPos, 6);
648
- if (s1.toLowerCase() === peg$c4) {
765
+ if (s1.toLowerCase() === peg$c5) {
649
766
  peg$currPos += (6);
650
767
  } else {
651
768
  s1 = peg$FAILED;
652
- if (peg$silentFails === 0) { peg$fail(peg$e4); }
769
+ if (peg$silentFails === 0) { peg$fail(peg$e5); }
653
770
  }
654
771
  if (s1 !== peg$FAILED) {
655
772
  s2 = peg$parse_();
@@ -657,29 +774,29 @@ function peg$parse(input, options) {
657
774
  if (s3 !== peg$FAILED) {
658
775
  s4 = peg$parse_();
659
776
  s5 = input.substr(peg$currPos, 2);
660
- if (s5.toLowerCase() === peg$c3) {
777
+ if (s5.toLowerCase() === peg$c4) {
661
778
  peg$currPos += (2);
662
779
  } else {
663
780
  s5 = peg$FAILED;
664
- if (peg$silentFails === 0) { peg$fail(peg$e3); }
781
+ if (peg$silentFails === 0) { peg$fail(peg$e4); }
665
782
  }
666
783
  if (s5 !== peg$FAILED) {
667
784
  s6 = peg$parse_();
668
785
  s7 = input.substr(peg$currPos, 3);
669
- if (s7.toLowerCase() === peg$c6) {
786
+ if (s7.toLowerCase() === peg$c8) {
670
787
  peg$currPos += (3);
671
788
  } else {
672
789
  s7 = peg$FAILED;
673
- if (peg$silentFails === 0) { peg$fail(peg$e6); }
790
+ if (peg$silentFails === 0) { peg$fail(peg$e8); }
674
791
  }
675
792
  if (s7 !== peg$FAILED) {
676
793
  s8 = peg$parse_();
677
794
  s9 = input.substr(peg$currPos, 2);
678
- if (s9.toLowerCase() === peg$c7) {
795
+ if (s9.toLowerCase() === peg$c9) {
679
796
  peg$currPos += (2);
680
797
  } else {
681
798
  s9 = peg$FAILED;
682
- if (peg$silentFails === 0) { peg$fail(peg$e7); }
799
+ if (peg$silentFails === 0) { peg$fail(peg$e9); }
683
800
  }
684
801
  if (s9 !== peg$FAILED) {
685
802
  s10 = peg$parse_();
@@ -695,7 +812,7 @@ function peg$parse(input, options) {
695
812
  }
696
813
  if (s13 !== peg$FAILED) {
697
814
  peg$savedPos = s0;
698
- s0 = peg$f5(s3, s11);
815
+ s0 = peg$f7(s3, s11);
699
816
  } else {
700
817
  peg$currPos = s0;
701
818
  s0 = peg$FAILED;
@@ -731,13 +848,92 @@ function peg$parse(input, options) {
731
848
  function peg$parseFuncHeader() {
732
849
  let s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15;
733
850
 
851
+ s0 = peg$currPos;
852
+ s1 = input.substr(peg$currPos, 4);
853
+ if (s1.toLowerCase() === peg$c10) {
854
+ peg$currPos += (4);
855
+ } else {
856
+ s1 = peg$FAILED;
857
+ if (peg$silentFails === 0) { peg$fail(peg$e10); }
858
+ }
859
+ if (s1 !== peg$FAILED) {
860
+ s2 = peg$parse_();
861
+ s3 = peg$parseIdent();
862
+ if (s3 !== peg$FAILED) {
863
+ s4 = peg$parse_();
864
+ s5 = peg$parseGivenParamPart();
865
+ if (s5 === peg$FAILED) {
866
+ s5 = null;
867
+ }
868
+ s6 = peg$parse_();
869
+ if (input.charCodeAt(peg$currPos) === 44) {
870
+ s7 = peg$c11;
871
+ peg$currPos++;
872
+ } else {
873
+ s7 = peg$FAILED;
874
+ if (peg$silentFails === 0) { peg$fail(peg$e11); }
875
+ }
876
+ if (s7 !== peg$FAILED) {
877
+ s8 = peg$parse_();
878
+ s9 = input.substr(peg$currPos, 7);
879
+ if (s9.toLowerCase() === peg$c12) {
880
+ peg$currPos += (7);
881
+ } else {
882
+ s9 = peg$FAILED;
883
+ if (peg$silentFails === 0) { peg$fail(peg$e12); }
884
+ }
885
+ if (s9 !== peg$FAILED) {
886
+ s10 = peg$parse_();
887
+ s11 = peg$parseType();
888
+ if (s11 !== peg$FAILED) {
889
+ s12 = peg$parse_();
890
+ s13 = peg$parseEffectPart();
891
+ if (s13 === peg$FAILED) {
892
+ s13 = null;
893
+ }
894
+ s14 = peg$parse_();
895
+ s15 = peg$parseHeaderEnd();
896
+ if (s15 !== peg$FAILED) {
897
+ peg$savedPos = s0;
898
+ s0 = peg$f8(s3, s5, s11, s13, s15);
899
+ } else {
900
+ peg$currPos = s0;
901
+ s0 = peg$FAILED;
902
+ }
903
+ } else {
904
+ peg$currPos = s0;
905
+ s0 = peg$FAILED;
906
+ }
907
+ } else {
908
+ peg$currPos = s0;
909
+ s0 = peg$FAILED;
910
+ }
911
+ } else {
912
+ peg$currPos = s0;
913
+ s0 = peg$FAILED;
914
+ }
915
+ } else {
916
+ peg$currPos = s0;
917
+ s0 = peg$FAILED;
918
+ }
919
+ } else {
920
+ peg$currPos = s0;
921
+ s0 = peg$FAILED;
922
+ }
923
+
924
+ return s0;
925
+ }
926
+
927
+ function peg$parseFuncHeaderLegacy() {
928
+ let s0, s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11, s12, s13, s14, s15;
929
+
734
930
  s0 = peg$currPos;
735
931
  s1 = input.substr(peg$currPos, 2);
736
- if (s1.toLowerCase() === peg$c8) {
932
+ if (s1.toLowerCase() === peg$c13) {
737
933
  peg$currPos += (2);
738
934
  } else {
739
935
  s1 = peg$FAILED;
740
- if (peg$silentFails === 0) { peg$fail(peg$e8); }
936
+ if (peg$silentFails === 0) { peg$fail(peg$e13); }
741
937
  }
742
938
  if (s1 !== peg$FAILED) {
743
939
  s2 = peg$parse_();
@@ -750,20 +946,20 @@ function peg$parse(input, options) {
750
946
  }
751
947
  s6 = peg$parse_();
752
948
  if (input.charCodeAt(peg$currPos) === 44) {
753
- s7 = peg$c9;
949
+ s7 = peg$c11;
754
950
  peg$currPos++;
755
951
  } else {
756
952
  s7 = peg$FAILED;
757
- if (peg$silentFails === 0) { peg$fail(peg$e9); }
953
+ if (peg$silentFails === 0) { peg$fail(peg$e11); }
758
954
  }
759
955
  if (s7 !== peg$FAILED) {
760
956
  s8 = peg$parse_();
761
957
  s9 = input.substr(peg$currPos, 7);
762
- if (s9.toLowerCase() === peg$c10) {
958
+ if (s9.toLowerCase() === peg$c12) {
763
959
  peg$currPos += (7);
764
960
  } else {
765
961
  s9 = peg$FAILED;
766
- if (peg$silentFails === 0) { peg$fail(peg$e10); }
962
+ if (peg$silentFails === 0) { peg$fail(peg$e12); }
767
963
  }
768
964
  if (s9 !== peg$FAILED) {
769
965
  s10 = peg$parse_();
@@ -778,7 +974,7 @@ function peg$parse(input, options) {
778
974
  s15 = peg$parseHeaderEnd();
779
975
  if (s15 !== peg$FAILED) {
780
976
  peg$savedPos = s0;
781
- s0 = peg$f6(s3, s5, s11, s13, s15);
977
+ s0 = peg$f9(s3, s5, s11, s13, s15);
782
978
  } else {
783
979
  peg$currPos = s0;
784
980
  s0 = peg$FAILED;
@@ -807,20 +1003,50 @@ function peg$parse(input, options) {
807
1003
  return s0;
808
1004
  }
809
1005
 
1006
+ function peg$parseGivenParamPart() {
1007
+ let s0, s1, s2, s3, s4;
1008
+
1009
+ s0 = peg$currPos;
1010
+ s1 = peg$parse_();
1011
+ s2 = input.substr(peg$currPos, 5);
1012
+ if (s2.toLowerCase() === peg$c14) {
1013
+ peg$currPos += (5);
1014
+ } else {
1015
+ s2 = peg$FAILED;
1016
+ if (peg$silentFails === 0) { peg$fail(peg$e14); }
1017
+ }
1018
+ if (s2 !== peg$FAILED) {
1019
+ s3 = peg$parse_();
1020
+ s4 = peg$parseParamList();
1021
+ if (s4 !== peg$FAILED) {
1022
+ peg$savedPos = s0;
1023
+ s0 = peg$f10(s4);
1024
+ } else {
1025
+ peg$currPos = s0;
1026
+ s0 = peg$FAILED;
1027
+ }
1028
+ } else {
1029
+ peg$currPos = s0;
1030
+ s0 = peg$FAILED;
1031
+ }
1032
+
1033
+ return s0;
1034
+ }
1035
+
810
1036
  function peg$parseHeaderEnd() {
811
1037
  let s0, s1;
812
1038
 
813
1039
  s0 = peg$currPos;
814
1040
  if (input.charCodeAt(peg$currPos) === 58) {
815
- s1 = peg$c11;
1041
+ s1 = peg$c15;
816
1042
  peg$currPos++;
817
1043
  } else {
818
1044
  s1 = peg$FAILED;
819
- if (peg$silentFails === 0) { peg$fail(peg$e11); }
1045
+ if (peg$silentFails === 0) { peg$fail(peg$e15); }
820
1046
  }
821
1047
  if (s1 !== peg$FAILED) {
822
1048
  peg$savedPos = s0;
823
- s1 = peg$f7();
1049
+ s1 = peg$f11();
824
1050
  }
825
1051
  s0 = s1;
826
1052
  if (s0 === peg$FAILED) {
@@ -834,7 +1060,7 @@ function peg$parse(input, options) {
834
1060
  }
835
1061
  if (s1 !== peg$FAILED) {
836
1062
  peg$savedPos = s0;
837
- s1 = peg$f8();
1063
+ s1 = peg$f12();
838
1064
  }
839
1065
  s0 = s1;
840
1066
  }
@@ -849,11 +1075,11 @@ function peg$parse(input, options) {
849
1075
  s1 = peg$parse_();
850
1076
  s2 = peg$currPos;
851
1077
  s3 = input.substr(peg$currPos, 2);
852
- if (s3.toLowerCase() === peg$c12) {
1078
+ if (s3.toLowerCase() === peg$c16) {
853
1079
  peg$currPos += (2);
854
1080
  } else {
855
1081
  s3 = peg$FAILED;
856
- if (peg$silentFails === 0) { peg$fail(peg$e12); }
1082
+ if (peg$silentFails === 0) { peg$fail(peg$e16); }
857
1083
  }
858
1084
  if (s3 !== peg$FAILED) {
859
1085
  s4 = peg$parse_();
@@ -867,11 +1093,11 @@ function peg$parse(input, options) {
867
1093
  s2 = null;
868
1094
  }
869
1095
  s3 = input.substr(peg$currPos, 8);
870
- if (s3.toLowerCase() === peg$c13) {
1096
+ if (s3.toLowerCase() === peg$c17) {
871
1097
  peg$currPos += (8);
872
1098
  } else {
873
1099
  s3 = peg$FAILED;
874
- if (peg$silentFails === 0) { peg$fail(peg$e13); }
1100
+ if (peg$silentFails === 0) { peg$fail(peg$e17); }
875
1101
  }
876
1102
  if (s3 !== peg$FAILED) {
877
1103
  s4 = peg$parse_();
@@ -883,11 +1109,11 @@ function peg$parse(input, options) {
883
1109
  peg$currPos++;
884
1110
  } else {
885
1111
  s7 = peg$FAILED;
886
- if (peg$silentFails === 0) { peg$fail(peg$e14); }
1112
+ if (peg$silentFails === 0) { peg$fail(peg$e18); }
887
1113
  }
888
1114
  if (s7 !== peg$FAILED) {
889
1115
  peg$savedPos = s0;
890
- s0 = peg$f9(s5);
1116
+ s0 = peg$f13(s5);
891
1117
  } else {
892
1118
  peg$currPos = s0;
893
1119
  s0 = peg$FAILED;
@@ -914,11 +1140,11 @@ function peg$parse(input, options) {
914
1140
  s3 = peg$currPos;
915
1141
  s4 = peg$parse_();
916
1142
  if (input.charCodeAt(peg$currPos) === 44) {
917
- s5 = peg$c9;
1143
+ s5 = peg$c11;
918
1144
  peg$currPos++;
919
1145
  } else {
920
1146
  s5 = peg$FAILED;
921
- if (peg$silentFails === 0) { peg$fail(peg$e9); }
1147
+ if (peg$silentFails === 0) { peg$fail(peg$e11); }
922
1148
  }
923
1149
  if (s5 !== peg$FAILED) {
924
1150
  s6 = peg$parse_();
@@ -939,11 +1165,11 @@ function peg$parse(input, options) {
939
1165
  s3 = peg$currPos;
940
1166
  s4 = peg$parse_();
941
1167
  if (input.charCodeAt(peg$currPos) === 44) {
942
- s5 = peg$c9;
1168
+ s5 = peg$c11;
943
1169
  peg$currPos++;
944
1170
  } else {
945
1171
  s5 = peg$FAILED;
946
- if (peg$silentFails === 0) { peg$fail(peg$e9); }
1172
+ if (peg$silentFails === 0) { peg$fail(peg$e11); }
947
1173
  }
948
1174
  if (s5 !== peg$FAILED) {
949
1175
  s6 = peg$parse_();
@@ -961,7 +1187,7 @@ function peg$parse(input, options) {
961
1187
  }
962
1188
  }
963
1189
  peg$savedPos = s0;
964
- s0 = peg$f10(s1);
1190
+ s0 = peg$f14(s1);
965
1191
  } else {
966
1192
  peg$currPos = s0;
967
1193
  s0 = peg$FAILED;
@@ -995,7 +1221,7 @@ function peg$parse(input, options) {
995
1221
  }
996
1222
  }
997
1223
  peg$savedPos = s0;
998
- s0 = peg$f11(s1);
1224
+ s0 = peg$f15(s1);
999
1225
  } else {
1000
1226
  peg$currPos = s0;
1001
1227
  s0 = peg$FAILED;
@@ -1010,29 +1236,29 @@ function peg$parse(input, options) {
1010
1236
 
1011
1237
  s0 = peg$currPos;
1012
1238
  s1 = input.substr(peg$currPos, 2);
1013
- if (s1.toLowerCase() === peg$c14) {
1239
+ if (s1.toLowerCase() === peg$c18) {
1014
1240
  peg$currPos += (2);
1015
1241
  } else {
1016
1242
  s1 = peg$FAILED;
1017
- if (peg$silentFails === 0) { peg$fail(peg$e15); }
1243
+ if (peg$silentFails === 0) { peg$fail(peg$e19); }
1018
1244
  }
1019
1245
  if (s1 !== peg$FAILED) {
1020
1246
  peg$savedPos = s0;
1021
- s1 = peg$f12();
1247
+ s1 = peg$f16();
1022
1248
  }
1023
1249
  s0 = s1;
1024
1250
  if (s0 === peg$FAILED) {
1025
1251
  s0 = peg$currPos;
1026
1252
  s1 = input.substr(peg$currPos, 3);
1027
- if (s1.toLowerCase() === peg$c15) {
1253
+ if (s1.toLowerCase() === peg$c19) {
1028
1254
  peg$currPos += (3);
1029
1255
  } else {
1030
1256
  s1 = peg$FAILED;
1031
- if (peg$silentFails === 0) { peg$fail(peg$e16); }
1257
+ if (peg$silentFails === 0) { peg$fail(peg$e20); }
1032
1258
  }
1033
1259
  if (s1 !== peg$FAILED) {
1034
1260
  peg$savedPos = s0;
1035
- s1 = peg$f13();
1261
+ s1 = peg$f17();
1036
1262
  }
1037
1263
  s0 = s1;
1038
1264
  }
@@ -1046,18 +1272,18 @@ function peg$parse(input, options) {
1046
1272
  s0 = peg$currPos;
1047
1273
  s1 = peg$parse_();
1048
1274
  s2 = input.substr(peg$currPos, 4);
1049
- if (s2.toLowerCase() === peg$c5) {
1275
+ if (s2.toLowerCase() === peg$c7) {
1050
1276
  peg$currPos += (4);
1051
1277
  } else {
1052
1278
  s2 = peg$FAILED;
1053
- if (peg$silentFails === 0) { peg$fail(peg$e5); }
1279
+ if (peg$silentFails === 0) { peg$fail(peg$e7); }
1054
1280
  }
1055
1281
  if (s2 !== peg$FAILED) {
1056
1282
  s3 = peg$parse_();
1057
1283
  s4 = peg$parseParamList();
1058
1284
  if (s4 !== peg$FAILED) {
1059
1285
  peg$savedPos = s0;
1060
- s0 = peg$f14(s4);
1286
+ s0 = peg$f18(s4);
1061
1287
  } else {
1062
1288
  peg$currPos = s0;
1063
1289
  s0 = peg$FAILED;
@@ -1072,7 +1298,7 @@ function peg$parse(input, options) {
1072
1298
  s2 = peg$parseParamList();
1073
1299
  if (s2 !== peg$FAILED) {
1074
1300
  peg$savedPos = s0;
1075
- s0 = peg$f15(s2);
1301
+ s0 = peg$f19(s2);
1076
1302
  } else {
1077
1303
  peg$currPos = s0;
1078
1304
  s0 = peg$FAILED;
@@ -1092,18 +1318,18 @@ function peg$parse(input, options) {
1092
1318
  s3 = peg$currPos;
1093
1319
  s4 = peg$parse_();
1094
1320
  s5 = input.substr(peg$currPos, 3);
1095
- if (s5.toLowerCase() === peg$c16) {
1321
+ if (s5.toLowerCase() === peg$c20) {
1096
1322
  peg$currPos += (3);
1097
1323
  } else {
1098
1324
  s5 = peg$FAILED;
1099
- if (peg$silentFails === 0) { peg$fail(peg$e17); }
1325
+ if (peg$silentFails === 0) { peg$fail(peg$e21); }
1100
1326
  }
1101
1327
  if (s5 !== peg$FAILED) {
1102
1328
  s6 = peg$parse_();
1103
1329
  s7 = peg$parseParam();
1104
1330
  if (s7 !== peg$FAILED) {
1105
1331
  peg$savedPos = s3;
1106
- s3 = peg$f16(s1, s7);
1332
+ s3 = peg$f20(s1, s7);
1107
1333
  } else {
1108
1334
  peg$currPos = s3;
1109
1335
  s3 = peg$FAILED;
@@ -1117,18 +1343,18 @@ function peg$parse(input, options) {
1117
1343
  s3 = peg$currPos;
1118
1344
  s4 = peg$parse_();
1119
1345
  s5 = input.substr(peg$currPos, 3);
1120
- if (s5.toLowerCase() === peg$c16) {
1346
+ if (s5.toLowerCase() === peg$c20) {
1121
1347
  peg$currPos += (3);
1122
1348
  } else {
1123
1349
  s5 = peg$FAILED;
1124
- if (peg$silentFails === 0) { peg$fail(peg$e17); }
1350
+ if (peg$silentFails === 0) { peg$fail(peg$e21); }
1125
1351
  }
1126
1352
  if (s5 !== peg$FAILED) {
1127
1353
  s6 = peg$parse_();
1128
1354
  s7 = peg$parseParam();
1129
1355
  if (s7 !== peg$FAILED) {
1130
1356
  peg$savedPos = s3;
1131
- s3 = peg$f16(s1, s7);
1357
+ s3 = peg$f20(s1, s7);
1132
1358
  } else {
1133
1359
  peg$currPos = s3;
1134
1360
  s3 = peg$FAILED;
@@ -1139,7 +1365,7 @@ function peg$parse(input, options) {
1139
1365
  }
1140
1366
  }
1141
1367
  peg$savedPos = s0;
1142
- s0 = peg$f17(s1);
1368
+ s0 = peg$f21(s1);
1143
1369
  } else {
1144
1370
  peg$currPos = s0;
1145
1371
  s0 = peg$FAILED;
@@ -1156,18 +1382,18 @@ function peg$parse(input, options) {
1156
1382
  if (s1 !== peg$FAILED) {
1157
1383
  s2 = peg$parse_();
1158
1384
  if (input.charCodeAt(peg$currPos) === 58) {
1159
- s3 = peg$c11;
1385
+ s3 = peg$c15;
1160
1386
  peg$currPos++;
1161
1387
  } else {
1162
1388
  s3 = peg$FAILED;
1163
- if (peg$silentFails === 0) { peg$fail(peg$e11); }
1389
+ if (peg$silentFails === 0) { peg$fail(peg$e15); }
1164
1390
  }
1165
1391
  if (s3 !== peg$FAILED) {
1166
1392
  s4 = peg$parse_();
1167
1393
  s5 = peg$parseType();
1168
1394
  if (s5 !== peg$FAILED) {
1169
1395
  peg$savedPos = s0;
1170
- s0 = peg$f18(s1, s5);
1396
+ s0 = peg$f22(s1, s5);
1171
1397
  } else {
1172
1398
  peg$currPos = s0;
1173
1399
  s0 = peg$FAILED;
@@ -1194,18 +1420,18 @@ function peg$parse(input, options) {
1194
1420
  s3 = peg$currPos;
1195
1421
  s4 = peg$parse_();
1196
1422
  s5 = input.substr(peg$currPos, 3);
1197
- if (s5.toLowerCase() === peg$c16) {
1423
+ if (s5.toLowerCase() === peg$c20) {
1198
1424
  peg$currPos += (3);
1199
1425
  } else {
1200
1426
  s5 = peg$FAILED;
1201
- if (peg$silentFails === 0) { peg$fail(peg$e17); }
1427
+ if (peg$silentFails === 0) { peg$fail(peg$e21); }
1202
1428
  }
1203
1429
  if (s5 !== peg$FAILED) {
1204
1430
  s6 = peg$parse_();
1205
1431
  s7 = peg$parseField();
1206
1432
  if (s7 !== peg$FAILED) {
1207
1433
  peg$savedPos = s3;
1208
- s3 = peg$f19(s1, s7);
1434
+ s3 = peg$f23(s1, s7);
1209
1435
  } else {
1210
1436
  peg$currPos = s3;
1211
1437
  s3 = peg$FAILED;
@@ -1219,18 +1445,18 @@ function peg$parse(input, options) {
1219
1445
  s3 = peg$currPos;
1220
1446
  s4 = peg$parse_();
1221
1447
  s5 = input.substr(peg$currPos, 3);
1222
- if (s5.toLowerCase() === peg$c16) {
1448
+ if (s5.toLowerCase() === peg$c20) {
1223
1449
  peg$currPos += (3);
1224
1450
  } else {
1225
1451
  s5 = peg$FAILED;
1226
- if (peg$silentFails === 0) { peg$fail(peg$e17); }
1452
+ if (peg$silentFails === 0) { peg$fail(peg$e21); }
1227
1453
  }
1228
1454
  if (s5 !== peg$FAILED) {
1229
1455
  s6 = peg$parse_();
1230
1456
  s7 = peg$parseField();
1231
1457
  if (s7 !== peg$FAILED) {
1232
1458
  peg$savedPos = s3;
1233
- s3 = peg$f19(s1, s7);
1459
+ s3 = peg$f23(s1, s7);
1234
1460
  } else {
1235
1461
  peg$currPos = s3;
1236
1462
  s3 = peg$FAILED;
@@ -1241,7 +1467,7 @@ function peg$parse(input, options) {
1241
1467
  }
1242
1468
  }
1243
1469
  peg$savedPos = s0;
1244
- s0 = peg$f20(s1);
1470
+ s0 = peg$f24(s1);
1245
1471
  } else {
1246
1472
  peg$currPos = s0;
1247
1473
  s0 = peg$FAILED;
@@ -1258,18 +1484,18 @@ function peg$parse(input, options) {
1258
1484
  if (s1 !== peg$FAILED) {
1259
1485
  s2 = peg$parse_();
1260
1486
  if (input.charCodeAt(peg$currPos) === 58) {
1261
- s3 = peg$c11;
1487
+ s3 = peg$c15;
1262
1488
  peg$currPos++;
1263
1489
  } else {
1264
1490
  s3 = peg$FAILED;
1265
- if (peg$silentFails === 0) { peg$fail(peg$e11); }
1491
+ if (peg$silentFails === 0) { peg$fail(peg$e15); }
1266
1492
  }
1267
1493
  if (s3 !== peg$FAILED) {
1268
1494
  s4 = peg$parse_();
1269
1495
  s5 = peg$parseType();
1270
1496
  if (s5 !== peg$FAILED) {
1271
1497
  peg$savedPos = s0;
1272
- s0 = peg$f21(s1, s5);
1498
+ s0 = peg$f25(s1, s5);
1273
1499
  } else {
1274
1500
  peg$currPos = s0;
1275
1501
  s0 = peg$FAILED;
@@ -1296,19 +1522,19 @@ function peg$parse(input, options) {
1296
1522
  s3 = peg$currPos;
1297
1523
  s4 = peg$parse_();
1298
1524
  if (input.charCodeAt(peg$currPos) === 44) {
1299
- s5 = peg$c9;
1525
+ s5 = peg$c11;
1300
1526
  peg$currPos++;
1301
1527
  } else {
1302
1528
  s5 = peg$FAILED;
1303
- if (peg$silentFails === 0) { peg$fail(peg$e9); }
1529
+ if (peg$silentFails === 0) { peg$fail(peg$e11); }
1304
1530
  }
1305
1531
  if (s5 === peg$FAILED) {
1306
1532
  s5 = input.substr(peg$currPos, 2);
1307
- if (s5.toLowerCase() === peg$c17) {
1533
+ if (s5.toLowerCase() === peg$c21) {
1308
1534
  peg$currPos += (2);
1309
1535
  } else {
1310
1536
  s5 = peg$FAILED;
1311
- if (peg$silentFails === 0) { peg$fail(peg$e18); }
1537
+ if (peg$silentFails === 0) { peg$fail(peg$e22); }
1312
1538
  }
1313
1539
  }
1314
1540
  if (s5 !== peg$FAILED) {
@@ -1316,7 +1542,7 @@ function peg$parse(input, options) {
1316
1542
  s7 = peg$parseTypeIdent();
1317
1543
  if (s7 !== peg$FAILED) {
1318
1544
  peg$savedPos = s3;
1319
- s3 = peg$f22(s1, s7);
1545
+ s3 = peg$f26(s1, s7);
1320
1546
  } else {
1321
1547
  peg$currPos = s3;
1322
1548
  s3 = peg$FAILED;
@@ -1330,19 +1556,19 @@ function peg$parse(input, options) {
1330
1556
  s3 = peg$currPos;
1331
1557
  s4 = peg$parse_();
1332
1558
  if (input.charCodeAt(peg$currPos) === 44) {
1333
- s5 = peg$c9;
1559
+ s5 = peg$c11;
1334
1560
  peg$currPos++;
1335
1561
  } else {
1336
1562
  s5 = peg$FAILED;
1337
- if (peg$silentFails === 0) { peg$fail(peg$e9); }
1563
+ if (peg$silentFails === 0) { peg$fail(peg$e11); }
1338
1564
  }
1339
1565
  if (s5 === peg$FAILED) {
1340
1566
  s5 = input.substr(peg$currPos, 2);
1341
- if (s5.toLowerCase() === peg$c17) {
1567
+ if (s5.toLowerCase() === peg$c21) {
1342
1568
  peg$currPos += (2);
1343
1569
  } else {
1344
1570
  s5 = peg$FAILED;
1345
- if (peg$silentFails === 0) { peg$fail(peg$e18); }
1571
+ if (peg$silentFails === 0) { peg$fail(peg$e22); }
1346
1572
  }
1347
1573
  }
1348
1574
  if (s5 !== peg$FAILED) {
@@ -1350,7 +1576,7 @@ function peg$parse(input, options) {
1350
1576
  s7 = peg$parseTypeIdent();
1351
1577
  if (s7 !== peg$FAILED) {
1352
1578
  peg$savedPos = s3;
1353
- s3 = peg$f22(s1, s7);
1579
+ s3 = peg$f26(s1, s7);
1354
1580
  } else {
1355
1581
  peg$currPos = s3;
1356
1582
  s3 = peg$FAILED;
@@ -1361,7 +1587,7 @@ function peg$parse(input, options) {
1361
1587
  }
1362
1588
  }
1363
1589
  peg$savedPos = s0;
1364
- s0 = peg$f23(s1);
1590
+ s0 = peg$f27(s1);
1365
1591
  } else {
1366
1592
  peg$currPos = s0;
1367
1593
  s0 = peg$FAILED;
@@ -1375,18 +1601,18 @@ function peg$parse(input, options) {
1375
1601
 
1376
1602
  s0 = peg$currPos;
1377
1603
  s1 = input.substr(peg$currPos, 5);
1378
- if (s1.toLowerCase() === peg$c18) {
1604
+ if (s1.toLowerCase() === peg$c22) {
1379
1605
  peg$currPos += (5);
1380
1606
  } else {
1381
1607
  s1 = peg$FAILED;
1382
- if (peg$silentFails === 0) { peg$fail(peg$e19); }
1608
+ if (peg$silentFails === 0) { peg$fail(peg$e23); }
1383
1609
  }
1384
1610
  if (s1 !== peg$FAILED) {
1385
1611
  s2 = peg$parse_();
1386
1612
  s3 = peg$parseType();
1387
1613
  if (s3 !== peg$FAILED) {
1388
1614
  peg$savedPos = s0;
1389
- s0 = peg$f24(s3);
1615
+ s0 = peg$f28(s3);
1390
1616
  } else {
1391
1617
  peg$currPos = s0;
1392
1618
  s0 = peg$FAILED;
@@ -1398,27 +1624,27 @@ function peg$parse(input, options) {
1398
1624
  if (s0 === peg$FAILED) {
1399
1625
  s0 = peg$currPos;
1400
1626
  s1 = input.substr(peg$currPos, 6);
1401
- if (s1.toLowerCase() === peg$c19) {
1627
+ if (s1.toLowerCase() === peg$c23) {
1402
1628
  peg$currPos += (6);
1403
1629
  } else {
1404
1630
  s1 = peg$FAILED;
1405
- if (peg$silentFails === 0) { peg$fail(peg$e20); }
1631
+ if (peg$silentFails === 0) { peg$fail(peg$e24); }
1406
1632
  }
1407
1633
  if (s1 !== peg$FAILED) {
1408
1634
  s2 = peg$parse_();
1409
1635
  s3 = input.substr(peg$currPos, 2);
1410
- if (s3.toLowerCase() === peg$c7) {
1636
+ if (s3.toLowerCase() === peg$c9) {
1411
1637
  peg$currPos += (2);
1412
1638
  } else {
1413
1639
  s3 = peg$FAILED;
1414
- if (peg$silentFails === 0) { peg$fail(peg$e7); }
1640
+ if (peg$silentFails === 0) { peg$fail(peg$e9); }
1415
1641
  }
1416
1642
  if (s3 !== peg$FAILED) {
1417
1643
  s4 = peg$parse_();
1418
1644
  s5 = peg$parseType();
1419
1645
  if (s5 !== peg$FAILED) {
1420
1646
  peg$savedPos = s0;
1421
- s0 = peg$f25(s5);
1647
+ s0 = peg$f29(s5);
1422
1648
  } else {
1423
1649
  peg$currPos = s0;
1424
1650
  s0 = peg$FAILED;
@@ -1434,20 +1660,20 @@ function peg$parse(input, options) {
1434
1660
  if (s0 === peg$FAILED) {
1435
1661
  s0 = peg$currPos;
1436
1662
  s1 = input.substr(peg$currPos, 6);
1437
- if (s1.toLowerCase() === peg$c20) {
1663
+ if (s1.toLowerCase() === peg$c24) {
1438
1664
  peg$currPos += (6);
1439
1665
  } else {
1440
1666
  s1 = peg$FAILED;
1441
- if (peg$silentFails === 0) { peg$fail(peg$e21); }
1667
+ if (peg$silentFails === 0) { peg$fail(peg$e25); }
1442
1668
  }
1443
1669
  if (s1 !== peg$FAILED) {
1444
1670
  s2 = peg$parse_();
1445
1671
  s3 = input.substr(peg$currPos, 2);
1446
- if (s3.toLowerCase() === peg$c7) {
1672
+ if (s3.toLowerCase() === peg$c9) {
1447
1673
  peg$currPos += (2);
1448
1674
  } else {
1449
1675
  s3 = peg$FAILED;
1450
- if (peg$silentFails === 0) { peg$fail(peg$e7); }
1676
+ if (peg$silentFails === 0) { peg$fail(peg$e9); }
1451
1677
  }
1452
1678
  if (s3 !== peg$FAILED) {
1453
1679
  s4 = peg$parse_();
@@ -1455,18 +1681,18 @@ function peg$parse(input, options) {
1455
1681
  if (s5 !== peg$FAILED) {
1456
1682
  s6 = peg$parse_();
1457
1683
  s7 = input.substr(peg$currPos, 2);
1458
- if (s7.toLowerCase() === peg$c17) {
1684
+ if (s7.toLowerCase() === peg$c21) {
1459
1685
  peg$currPos += (2);
1460
1686
  } else {
1461
1687
  s7 = peg$FAILED;
1462
- if (peg$silentFails === 0) { peg$fail(peg$e18); }
1688
+ if (peg$silentFails === 0) { peg$fail(peg$e22); }
1463
1689
  }
1464
1690
  if (s7 !== peg$FAILED) {
1465
1691
  s8 = peg$parse_();
1466
1692
  s9 = peg$parseType();
1467
1693
  if (s9 !== peg$FAILED) {
1468
1694
  peg$savedPos = s0;
1469
- s0 = peg$f26(s5, s9);
1695
+ s0 = peg$f30(s5, s9);
1470
1696
  } else {
1471
1697
  peg$currPos = s0;
1472
1698
  s0 = peg$FAILED;
@@ -1490,27 +1716,27 @@ function peg$parse(input, options) {
1490
1716
  if (s0 === peg$FAILED) {
1491
1717
  s0 = peg$currPos;
1492
1718
  s1 = input.substr(peg$currPos, 4);
1493
- if (s1.toLowerCase() === peg$c21) {
1719
+ if (s1.toLowerCase() === peg$c25) {
1494
1720
  peg$currPos += (4);
1495
1721
  } else {
1496
1722
  s1 = peg$FAILED;
1497
- if (peg$silentFails === 0) { peg$fail(peg$e22); }
1723
+ if (peg$silentFails === 0) { peg$fail(peg$e26); }
1498
1724
  }
1499
1725
  if (s1 !== peg$FAILED) {
1500
1726
  s2 = peg$parse_();
1501
1727
  s3 = input.substr(peg$currPos, 2);
1502
- if (s3.toLowerCase() === peg$c7) {
1728
+ if (s3.toLowerCase() === peg$c9) {
1503
1729
  peg$currPos += (2);
1504
1730
  } else {
1505
1731
  s3 = peg$FAILED;
1506
- if (peg$silentFails === 0) { peg$fail(peg$e7); }
1732
+ if (peg$silentFails === 0) { peg$fail(peg$e9); }
1507
1733
  }
1508
1734
  if (s3 !== peg$FAILED) {
1509
1735
  s4 = peg$parse_();
1510
1736
  s5 = peg$parseType();
1511
1737
  if (s5 !== peg$FAILED) {
1512
1738
  peg$savedPos = s0;
1513
- s0 = peg$f27(s5);
1739
+ s0 = peg$f31(s5);
1514
1740
  } else {
1515
1741
  peg$currPos = s0;
1516
1742
  s0 = peg$FAILED;
@@ -1526,11 +1752,11 @@ function peg$parse(input, options) {
1526
1752
  if (s0 === peg$FAILED) {
1527
1753
  s0 = peg$currPos;
1528
1754
  s1 = input.substr(peg$currPos, 3);
1529
- if (s1.toLowerCase() === peg$c22) {
1755
+ if (s1.toLowerCase() === peg$c26) {
1530
1756
  peg$currPos += (3);
1531
1757
  } else {
1532
1758
  s1 = peg$FAILED;
1533
- if (peg$silentFails === 0) { peg$fail(peg$e23); }
1759
+ if (peg$silentFails === 0) { peg$fail(peg$e27); }
1534
1760
  }
1535
1761
  if (s1 !== peg$FAILED) {
1536
1762
  s2 = peg$parse_();
@@ -1538,18 +1764,18 @@ function peg$parse(input, options) {
1538
1764
  if (s3 !== peg$FAILED) {
1539
1765
  s4 = peg$parse_();
1540
1766
  s5 = input.substr(peg$currPos, 2);
1541
- if (s5.toLowerCase() === peg$c8) {
1767
+ if (s5.toLowerCase() === peg$c13) {
1542
1768
  peg$currPos += (2);
1543
1769
  } else {
1544
1770
  s5 = peg$FAILED;
1545
- if (peg$silentFails === 0) { peg$fail(peg$e8); }
1771
+ if (peg$silentFails === 0) { peg$fail(peg$e13); }
1546
1772
  }
1547
1773
  if (s5 !== peg$FAILED) {
1548
1774
  s6 = peg$parse_();
1549
1775
  s7 = peg$parseType();
1550
1776
  if (s7 !== peg$FAILED) {
1551
1777
  peg$savedPos = s0;
1552
- s0 = peg$f28(s3, s7);
1778
+ s0 = peg$f32(s3, s7);
1553
1779
  } else {
1554
1780
  peg$currPos = s0;
1555
1781
  s0 = peg$FAILED;
@@ -1571,7 +1797,7 @@ function peg$parse(input, options) {
1571
1797
  s1 = peg$parsePrimType();
1572
1798
  if (s1 !== peg$FAILED) {
1573
1799
  peg$savedPos = s0;
1574
- s1 = peg$f29(s1);
1800
+ s1 = peg$f33(s1);
1575
1801
  }
1576
1802
  s0 = s1;
1577
1803
  if (s0 === peg$FAILED) {
@@ -1579,7 +1805,7 @@ function peg$parse(input, options) {
1579
1805
  s1 = peg$parseTypeIdent();
1580
1806
  if (s1 !== peg$FAILED) {
1581
1807
  peg$savedPos = s0;
1582
- s1 = peg$f30(s1);
1808
+ s1 = peg$f34(s1);
1583
1809
  }
1584
1810
  s0 = s1;
1585
1811
  }
@@ -1597,57 +1823,57 @@ function peg$parse(input, options) {
1597
1823
 
1598
1824
  s0 = peg$currPos;
1599
1825
  s1 = input.substr(peg$currPos, 4);
1600
- if (s1.toLowerCase() === peg$c23) {
1826
+ if (s1.toLowerCase() === peg$c27) {
1601
1827
  peg$currPos += (4);
1602
1828
  } else {
1603
1829
  s1 = peg$FAILED;
1604
- if (peg$silentFails === 0) { peg$fail(peg$e24); }
1830
+ if (peg$silentFails === 0) { peg$fail(peg$e28); }
1605
1831
  }
1606
1832
  if (s1 !== peg$FAILED) {
1607
1833
  peg$savedPos = s0;
1608
- s1 = peg$f31();
1834
+ s1 = peg$f35();
1609
1835
  }
1610
1836
  s0 = s1;
1611
1837
  if (s0 === peg$FAILED) {
1612
1838
  s0 = peg$currPos;
1613
1839
  s1 = input.substr(peg$currPos, 3);
1614
- if (s1.toLowerCase() === peg$c24) {
1840
+ if (s1.toLowerCase() === peg$c28) {
1615
1841
  peg$currPos += (3);
1616
1842
  } else {
1617
1843
  s1 = peg$FAILED;
1618
- if (peg$silentFails === 0) { peg$fail(peg$e25); }
1844
+ if (peg$silentFails === 0) { peg$fail(peg$e29); }
1619
1845
  }
1620
1846
  if (s1 !== peg$FAILED) {
1621
1847
  peg$savedPos = s0;
1622
- s1 = peg$f32();
1848
+ s1 = peg$f36();
1623
1849
  }
1624
1850
  s0 = s1;
1625
1851
  if (s0 === peg$FAILED) {
1626
1852
  s0 = peg$currPos;
1627
1853
  s1 = input.substr(peg$currPos, 5);
1628
- if (s1.toLowerCase() === peg$c25) {
1854
+ if (s1.toLowerCase() === peg$c29) {
1629
1855
  peg$currPos += (5);
1630
1856
  } else {
1631
1857
  s1 = peg$FAILED;
1632
- if (peg$silentFails === 0) { peg$fail(peg$e26); }
1858
+ if (peg$silentFails === 0) { peg$fail(peg$e30); }
1633
1859
  }
1634
1860
  if (s1 !== peg$FAILED) {
1635
1861
  peg$savedPos = s0;
1636
- s1 = peg$f33();
1862
+ s1 = peg$f37();
1637
1863
  }
1638
1864
  s0 = s1;
1639
1865
  if (s0 === peg$FAILED) {
1640
1866
  s0 = peg$currPos;
1641
1867
  s1 = input.substr(peg$currPos, 4);
1642
- if (s1.toLowerCase() === peg$c26) {
1868
+ if (s1.toLowerCase() === peg$c30) {
1643
1869
  peg$currPos += (4);
1644
1870
  } else {
1645
1871
  s1 = peg$FAILED;
1646
- if (peg$silentFails === 0) { peg$fail(peg$e27); }
1872
+ if (peg$silentFails === 0) { peg$fail(peg$e31); }
1647
1873
  }
1648
1874
  if (s1 !== peg$FAILED) {
1649
1875
  peg$savedPos = s0;
1650
- s1 = peg$f34();
1876
+ s1 = peg$f38();
1651
1877
  }
1652
1878
  s0 = s1;
1653
1879
  }
@@ -1676,7 +1902,7 @@ function peg$parse(input, options) {
1676
1902
  s5 = peg$parseIdent();
1677
1903
  if (s5 !== peg$FAILED) {
1678
1904
  peg$savedPos = s3;
1679
- s3 = peg$f35(s1, s5);
1905
+ s3 = peg$f39(s1, s5);
1680
1906
  } else {
1681
1907
  peg$currPos = s3;
1682
1908
  s3 = peg$FAILED;
@@ -1699,7 +1925,7 @@ function peg$parse(input, options) {
1699
1925
  s5 = peg$parseIdent();
1700
1926
  if (s5 !== peg$FAILED) {
1701
1927
  peg$savedPos = s3;
1702
- s3 = peg$f35(s1, s5);
1928
+ s3 = peg$f39(s1, s5);
1703
1929
  } else {
1704
1930
  peg$currPos = s3;
1705
1931
  s3 = peg$FAILED;
@@ -1710,7 +1936,7 @@ function peg$parse(input, options) {
1710
1936
  }
1711
1937
  }
1712
1938
  peg$savedPos = s0;
1713
- s0 = peg$f36(s1);
1939
+ s0 = peg$f40(s1);
1714
1940
  } else {
1715
1941
  peg$currPos = s0;
1716
1942
  s0 = peg$FAILED;
@@ -1729,7 +1955,7 @@ function peg$parse(input, options) {
1729
1955
  peg$currPos++;
1730
1956
  } else {
1731
1957
  s2 = peg$FAILED;
1732
- if (peg$silentFails === 0) { peg$fail(peg$e28); }
1958
+ if (peg$silentFails === 0) { peg$fail(peg$e32); }
1733
1959
  }
1734
1960
  if (s2 !== peg$FAILED) {
1735
1961
  s3 = [];
@@ -1738,7 +1964,7 @@ function peg$parse(input, options) {
1738
1964
  peg$currPos++;
1739
1965
  } else {
1740
1966
  s4 = peg$FAILED;
1741
- if (peg$silentFails === 0) { peg$fail(peg$e29); }
1967
+ if (peg$silentFails === 0) { peg$fail(peg$e33); }
1742
1968
  }
1743
1969
  while (s4 !== peg$FAILED) {
1744
1970
  s3.push(s4);
@@ -1747,7 +1973,7 @@ function peg$parse(input, options) {
1747
1973
  peg$currPos++;
1748
1974
  } else {
1749
1975
  s4 = peg$FAILED;
1750
- if (peg$silentFails === 0) { peg$fail(peg$e29); }
1976
+ if (peg$silentFails === 0) { peg$fail(peg$e33); }
1751
1977
  }
1752
1978
  }
1753
1979
  s2 = [s2, s3];
@@ -1775,7 +2001,7 @@ function peg$parse(input, options) {
1775
2001
  peg$currPos++;
1776
2002
  } else {
1777
2003
  s2 = peg$FAILED;
1778
- if (peg$silentFails === 0) { peg$fail(peg$e30); }
2004
+ if (peg$silentFails === 0) { peg$fail(peg$e34); }
1779
2005
  }
1780
2006
  if (s2 !== peg$FAILED) {
1781
2007
  s3 = [];
@@ -1784,7 +2010,7 @@ function peg$parse(input, options) {
1784
2010
  peg$currPos++;
1785
2011
  } else {
1786
2012
  s4 = peg$FAILED;
1787
- if (peg$silentFails === 0) { peg$fail(peg$e29); }
2013
+ if (peg$silentFails === 0) { peg$fail(peg$e33); }
1788
2014
  }
1789
2015
  while (s4 !== peg$FAILED) {
1790
2016
  s3.push(s4);
@@ -1793,7 +2019,7 @@ function peg$parse(input, options) {
1793
2019
  peg$currPos++;
1794
2020
  } else {
1795
2021
  s4 = peg$FAILED;
1796
- if (peg$silentFails === 0) { peg$fail(peg$e29); }
2022
+ if (peg$silentFails === 0) { peg$fail(peg$e33); }
1797
2023
  }
1798
2024
  }
1799
2025
  s2 = [s2, s3];
@@ -1820,7 +2046,7 @@ function peg$parse(input, options) {
1820
2046
  peg$currPos++;
1821
2047
  } else {
1822
2048
  s1 = peg$FAILED;
1823
- if (peg$silentFails === 0) { peg$fail(peg$e31); }
2049
+ if (peg$silentFails === 0) { peg$fail(peg$e35); }
1824
2050
  }
1825
2051
  while (s1 !== peg$FAILED) {
1826
2052
  s0.push(s1);
@@ -1829,7 +2055,7 @@ function peg$parse(input, options) {
1829
2055
  peg$currPos++;
1830
2056
  } else {
1831
2057
  s1 = peg$FAILED;
1832
- if (peg$silentFails === 0) { peg$fail(peg$e31); }
2058
+ if (peg$silentFails === 0) { peg$fail(peg$e35); }
1833
2059
  }
1834
2060
  }
1835
2061