@apple/tree-sitter-pkl 0.17.0 → 0.18.1

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 (699) hide show
  1. package/.editorconfig +46 -0
  2. package/.gitattributes +50 -0
  3. package/CHANGELOG.adoc +56 -0
  4. package/CMakeLists.txt +66 -0
  5. package/Cargo.lock +21 -21
  6. package/Cargo.toml +1 -1
  7. package/Makefile +97 -0
  8. package/README.md +11 -13
  9. package/bindings/c/tree-sitter-pkl.pc.in +10 -0
  10. package/bindings/c/tree_sitter/tree-sitter-pkl.h +16 -0
  11. package/bindings/go/binding.go +15 -0
  12. package/bindings/go/binding_test.go +15 -0
  13. package/bindings/node/binding_test.js +9 -0
  14. package/bindings/node/index.d.ts +27 -0
  15. package/bindings/python/tests/test_binding.py +12 -0
  16. package/bindings/python/tree_sitter_pkl/__init__.py +42 -0
  17. package/bindings/python/tree_sitter_pkl/__init__.pyi +10 -0
  18. package/bindings/python/tree_sitter_pkl/binding.c +35 -0
  19. package/bindings/python/tree_sitter_pkl/py.typed +0 -0
  20. package/bindings/swift/TreeSitterPklTests/TreeSitterPklTests.swift +12 -0
  21. package/go.mod +7 -0
  22. package/go.sum +36 -0
  23. package/gradle.properties +5 -0
  24. package/gradlew +251 -0
  25. package/gradlew.bat +94 -0
  26. package/grammar.js +225 -195
  27. package/licenserc.toml +23 -0
  28. package/package.json +3 -2
  29. package/pyproject.toml +29 -0
  30. package/queries/highlights.scm +11 -16
  31. package/queries/injections.scm +1 -1
  32. package/queries/locals.scm +2 -2
  33. package/scripts/license-header.txt +13 -0
  34. package/setup.py +77 -0
  35. package/src/grammar.json +939 -883
  36. package/src/node-types.json +4392 -2028
  37. package/src/parser.c +30848 -34740
  38. package/src/scanner.c +43 -7
  39. package/src/tree_sitter/alloc.h +4 -4
  40. package/src/tree_sitter/array.h +2 -1
  41. package/src/tree_sitter/parser.h +29 -7
  42. package/test/corpus/basic/annotation.txt +28 -30
  43. package/test/corpus/basic/comments.txt +5 -5
  44. package/test/corpus/basic/shebangComment.txt +1 -1
  45. package/test/corpus/basic/types.txt +86 -131
  46. package/test/corpus/class/constModifier.txt +4 -5
  47. package/test/corpus/class/fixedModifier.txt +4 -5
  48. package/test/corpus/expr/binary.txt +75 -77
  49. package/test/corpus/expr/binary2.txt +18 -0
  50. package/test/corpus/expr/functionLiteral.txt +7 -8
  51. package/test/corpus/expr/if.txt +3 -3
  52. package/test/corpus/expr/import.txt +1 -1
  53. package/test/corpus/expr/let.txt +2 -2
  54. package/test/corpus/expr/new.txt +8 -10
  55. package/test/corpus/expr/qualifiedAccess.txt +34 -27
  56. package/test/corpus/expr/read.txt +8 -11
  57. package/test/corpus/expr/subscript.txt +48 -0
  58. package/test/corpus/expr/super.txt +27 -0
  59. package/test/corpus/expr/throw.txt +2 -3
  60. package/test/corpus/expr/trace.txt +2 -3
  61. package/test/corpus/expr/typeTest.txt +40 -0
  62. package/test/corpus/expr/unaryMinus.txt +22 -0
  63. package/test/corpus/module/moduleHeader1.txt +1 -1
  64. package/test/corpus/module/moduleHeader2.txt +1 -1
  65. package/test/corpus/module/moduleHeader3.error.txt +5 -5
  66. package/test/corpus/module/moduleHeader4.txt +1 -1
  67. package/test/corpus/number/underscores.txt +25 -25
  68. package/test/corpus/object/mixedEntriesAndElements.txt +52 -0
  69. package/test/corpus/object/objectAmendChain.txt +4 -4
  70. package/test/corpus/object/objectBodyParams.txt +21 -0
  71. package/test/corpus/object/objectElementWithTypeConstraint +30 -0
  72. package/test/corpus/object/objectElementsWithParens.txt +10 -10
  73. package/test/corpus/object/objectElementsWithTypeParams +65 -0
  74. package/test/corpus/object/objectGenerator.txt +8 -8
  75. package/test/corpus/object/objectMember.txt +27 -27
  76. package/test/corpus/object/objectMemberPredicate.txt +14 -14
  77. package/test/corpus/object/objectSpread.txt +8 -8
  78. package/test/corpus/object/objectWhenGenerator.txt +10 -10
  79. package/test/corpus/snippetTests/annotation/annotation1.txt +284 -0
  80. package/test/corpus/snippetTests/annotation/annotation2.txt +20 -0
  81. package/test/corpus/snippetTests/annotation/annotation3.txt +24 -0
  82. package/test/corpus/snippetTests/annotation/annotation4.txt +32 -0
  83. package/test/corpus/snippetTests/annotation/annotation5.txt +28 -0
  84. package/test/corpus/snippetTests/annotation/annotation6.txt +19 -0
  85. package/test/corpus/snippetTests/annotation/annotationIsNotExpression.txt +29 -0
  86. package/test/corpus/snippetTests/annotation/deprecated1.txt +385 -0
  87. package/test/corpus/snippetTests/annotation/deprecated2.txt +99 -0
  88. package/test/corpus/snippetTests/annotation/deprecated3.txt +155 -0
  89. package/test/corpus/snippetTests/annotation/deprecatedNoRepeatedWarnings.txt +58 -0
  90. package/test/corpus/snippetTests/annotation/deprecatedWithMessage1.txt +405 -0
  91. package/test/corpus/snippetTests/annotation/deprecatedWithMessage2.txt +104 -0
  92. package/test/corpus/snippetTests/annotation/deprecatedWithMessage3.txt +155 -0
  93. package/test/corpus/snippetTests/annotation/deprecationSuperMethod.txt +144 -0
  94. package/test/corpus/snippetTests/api/Resource.txt +128 -0
  95. package/test/corpus/snippetTests/api/analyze1.txt +176 -0
  96. package/test/corpus/snippetTests/api/any.txt +523 -0
  97. package/test/corpus/snippetTests/api/anyConverter.txt +161 -0
  98. package/test/corpus/snippetTests/api/baseModule.txt +170 -0
  99. package/test/corpus/snippetTests/api/dataSize.txt +1165 -0
  100. package/test/corpus/snippetTests/api/duration.txt +800 -0
  101. package/test/corpus/snippetTests/api/float.txt +1334 -0
  102. package/test/corpus/snippetTests/api/int.txt +1142 -0
  103. package/test/corpus/snippetTests/api/intseq.txt +1021 -0
  104. package/test/corpus/snippetTests/api/jsonParser1.txt +279 -0
  105. package/test/corpus/snippetTests/api/jsonParser2.txt +294 -0
  106. package/test/corpus/snippetTests/api/jsonParser3.txt +143 -0
  107. package/test/corpus/snippetTests/api/jsonParser4.txt +112 -0
  108. package/test/corpus/snippetTests/api/jsonParser5.txt +171 -0
  109. package/test/corpus/snippetTests/api/jsonRenderer1.json.txt +41 -0
  110. package/test/corpus/snippetTests/api/jsonRenderer2b.txt +300 -0
  111. package/test/corpus/snippetTests/api/jsonRenderer3.json.txt +334 -0
  112. package/test/corpus/snippetTests/api/jsonRenderer4.txt +388 -0
  113. package/test/corpus/snippetTests/api/jsonRenderer5.txt +388 -0
  114. package/test/corpus/snippetTests/api/jsonRenderer6.json.txt +163 -0
  115. package/test/corpus/snippetTests/api/jsonRenderer7.txt +53 -0
  116. package/test/corpus/snippetTests/api/jsonRenderer8.txt +30 -0
  117. package/test/corpus/snippetTests/api/jsonRendererEmptyComposites.txt +114 -0
  118. package/test/corpus/snippetTests/api/jsonnetRenderer3.jsonnet.txt +356 -0
  119. package/test/corpus/snippetTests/api/jsonnetRenderer4.txt +393 -0
  120. package/test/corpus/snippetTests/api/jsonnetRenderer5.txt +393 -0
  121. package/test/corpus/snippetTests/api/jsonnetRenderer6.jsonnet.txt +169 -0
  122. package/test/corpus/snippetTests/api/jsonnetRenderer7.txt +36 -0
  123. package/test/corpus/snippetTests/api/list.txt +4432 -0
  124. package/test/corpus/snippetTests/api/listNullable.txt +1513 -0
  125. package/test/corpus/snippetTests/api/map.txt +1144 -0
  126. package/test/corpus/snippetTests/api/mapping.txt +948 -0
  127. package/test/corpus/snippetTests/api/mathModule.txt +1426 -0
  128. package/test/corpus/snippetTests/api/module.txt +77 -0
  129. package/test/corpus/snippetTests/api/moduleOutput.txt +24 -0
  130. package/test/corpus/snippetTests/api/moduleOutput2.txt +25 -0
  131. package/test/corpus/snippetTests/api/pListRenderer1.plist.txt +41 -0
  132. package/test/corpus/snippetTests/api/pListRenderer3.plist.txt +348 -0
  133. package/test/corpus/snippetTests/api/pListRenderer4.txt +375 -0
  134. package/test/corpus/snippetTests/api/pListRenderer5.txt +424 -0
  135. package/test/corpus/snippetTests/api/pListRenderer6.plist.txt +163 -0
  136. package/test/corpus/snippetTests/api/pListRenderer7.txt +30 -0
  137. package/test/corpus/snippetTests/api/pair.txt +170 -0
  138. package/test/corpus/snippetTests/api/pcfRenderer1.txt +95 -0
  139. package/test/corpus/snippetTests/api/pcfRenderer2b.txt +301 -0
  140. package/test/corpus/snippetTests/api/pcfRenderer3.txt +350 -0
  141. package/test/corpus/snippetTests/api/pcfRenderer4.txt +391 -0
  142. package/test/corpus/snippetTests/api/pcfRenderer5.txt +460 -0
  143. package/test/corpus/snippetTests/api/pcfRenderer6.txt +118 -0
  144. package/test/corpus/snippetTests/api/pcfRenderer8.txt +16 -0
  145. package/test/corpus/snippetTests/api/platformModule.txt +147 -0
  146. package/test/corpus/snippetTests/api/plistRenderer2b.txt +300 -0
  147. package/test/corpus/snippetTests/api/propertiesRenderer1.properties.txt +41 -0
  148. package/test/corpus/snippetTests/api/propertiesRenderer10.properties.txt +24 -0
  149. package/test/corpus/snippetTests/api/propertiesRenderer11.txt +30 -0
  150. package/test/corpus/snippetTests/api/propertiesRenderer2b.txt +303 -0
  151. package/test/corpus/snippetTests/api/propertiesRenderer4.txt +484 -0
  152. package/test/corpus/snippetTests/api/propertiesRenderer5.txt +491 -0
  153. package/test/corpus/snippetTests/api/propertiesRenderer8.properties.txt +628 -0
  154. package/test/corpus/snippetTests/api/propertiesRenderer9.properties.txt +292 -0
  155. package/test/corpus/snippetTests/api/propertiesRendererBug66849708.properties.txt +106 -0
  156. package/test/corpus/snippetTests/api/protobuf2.txt +408 -0
  157. package/test/corpus/snippetTests/api/reflect1.txt +1686 -0
  158. package/test/corpus/snippetTests/api/reflect2.txt +480 -0
  159. package/test/corpus/snippetTests/api/reflect3.txt +193 -0
  160. package/test/corpus/snippetTests/api/reflectedDeclaration.txt +64 -0
  161. package/test/corpus/snippetTests/api/regex.txt +320 -0
  162. package/test/corpus/snippetTests/api/releaseModule.txt +262 -0
  163. package/test/corpus/snippetTests/api/renderDirective2.txt +374 -0
  164. package/test/corpus/snippetTests/api/semverModule.txt +2224 -0
  165. package/test/corpus/snippetTests/api/set.txt +3891 -0
  166. package/test/corpus/snippetTests/api/setNullable.txt +1113 -0
  167. package/test/corpus/snippetTests/api/typeAliases.txt +449 -0
  168. package/test/corpus/snippetTests/api/typeConverters.txt +211 -0
  169. package/test/corpus/snippetTests/api/xmlRenderer1.xml.txt +174 -0
  170. package/test/corpus/snippetTests/api/xmlRenderer2b.txt +306 -0
  171. package/test/corpus/snippetTests/api/xmlRenderer3.xml.txt +320 -0
  172. package/test/corpus/snippetTests/api/xmlRenderer4.txt +401 -0
  173. package/test/corpus/snippetTests/api/xmlRenderer5.txt +402 -0
  174. package/test/corpus/snippetTests/api/xmlRenderer6.xml.txt +169 -0
  175. package/test/corpus/snippetTests/api/xmlRenderer8.txt +36 -0
  176. package/test/corpus/snippetTests/api/xmlRendererCData.xml.txt +48 -0
  177. package/test/corpus/snippetTests/api/xmlRendererElement.xml.txt +103 -0
  178. package/test/corpus/snippetTests/api/xmlRendererHtml.xml.txt +212 -0
  179. package/test/corpus/snippetTests/api/xmlRendererInline.xml.txt +175 -0
  180. package/test/corpus/snippetTests/api/xmlRendererInline3.xml.txt +152 -0
  181. package/test/corpus/snippetTests/api/yamlParser1Yaml11.txt +22 -0
  182. package/test/corpus/snippetTests/api/yamlParser1Yaml12.txt +22 -0
  183. package/test/corpus/snippetTests/api/yamlParser2.txt +253 -0
  184. package/test/corpus/snippetTests/api/yamlParser3.txt +194 -0
  185. package/test/corpus/snippetTests/api/yamlParser4.txt +198 -0
  186. package/test/corpus/snippetTests/api/yamlParser5.txt +86 -0
  187. package/test/corpus/snippetTests/api/yamlParser6.txt +92 -0
  188. package/test/corpus/snippetTests/api/yamlRenderer1.yml.txt +41 -0
  189. package/test/corpus/snippetTests/api/yamlRenderer2b.txt +300 -0
  190. package/test/corpus/snippetTests/api/yamlRenderer3.yml.txt +342 -0
  191. package/test/corpus/snippetTests/api/yamlRenderer4.txt +441 -0
  192. package/test/corpus/snippetTests/api/yamlRenderer5.txt +441 -0
  193. package/test/corpus/snippetTests/api/yamlRenderer6.yml.txt +163 -0
  194. package/test/corpus/snippetTests/api/yamlRenderer7.txt +30 -0
  195. package/test/corpus/snippetTests/api/yamlRenderer8.yml.txt +142 -0
  196. package/test/corpus/snippetTests/api/yamlRendererBug66849708.yml.txt +106 -0
  197. package/test/corpus/snippetTests/api/yamlRendererEmpty.yml.txt +326 -0
  198. package/test/corpus/snippetTests/api/yamlRendererIndentationWidth2.yml.txt +227 -0
  199. package/test/corpus/snippetTests/api/yamlRendererIndentationWidth4.yml.txt +32 -0
  200. package/test/corpus/snippetTests/api/yamlRendererIndentationWidth5.yml.txt +32 -0
  201. package/test/corpus/snippetTests/api/yamlRendererStream1.txt +140 -0
  202. package/test/corpus/snippetTests/api/yamlRendererStringsYaml11.txt +22 -0
  203. package/test/corpus/snippetTests/api/yamlRendererStringsYaml12.txt +22 -0
  204. package/test/corpus/snippetTests/basic/amendsChains.txt +275 -0
  205. package/test/corpus/snippetTests/basic/as.txt +1468 -0
  206. package/test/corpus/snippetTests/basic/as2.txt +1077 -0
  207. package/test/corpus/snippetTests/basic/as3.txt +297 -0
  208. package/test/corpus/snippetTests/basic/baseModule.txt +11 -0
  209. package/test/corpus/snippetTests/basic/boolean.txt +430 -0
  210. package/test/corpus/snippetTests/basic/constModifier.txt +324 -0
  211. package/test/corpus/snippetTests/basic/constModifier2.txt +227 -0
  212. package/test/corpus/snippetTests/basic/constModifier3.txt +136 -0
  213. package/test/corpus/snippetTests/basic/constModifier4.txt +64 -0
  214. package/test/corpus/snippetTests/basic/constModifier5.txt +68 -0
  215. package/test/corpus/snippetTests/basic/dataSize.txt +658 -0
  216. package/test/corpus/snippetTests/basic/duration.txt +618 -0
  217. package/test/corpus/snippetTests/basic/exceptions.txt +18 -0
  218. package/test/corpus/snippetTests/basic/fixedProperty1.txt +62 -0
  219. package/test/corpus/snippetTests/basic/fixedProperty2.txt +33 -0
  220. package/test/corpus/snippetTests/basic/fixedProperty3.txt +31 -0
  221. package/test/corpus/snippetTests/basic/fixedProperty4.txt +15 -0
  222. package/test/corpus/snippetTests/basic/fixedProperty5.txt +20 -0
  223. package/test/corpus/snippetTests/basic/fixedProperty6.txt +15 -0
  224. package/test/corpus/snippetTests/basic/if.txt +83 -0
  225. package/test/corpus/snippetTests/basic/import1.txt +51 -0
  226. package/test/corpus/snippetTests/basic/import1b.txt +51 -0
  227. package/test/corpus/snippetTests/basic/import2.txt +34 -0
  228. package/test/corpus/snippetTests/basic/import3.txt +34 -0
  229. package/test/corpus/snippetTests/basic/imported.txt +19 -0
  230. package/test/corpus/snippetTests/basic/indexExpressions.txt +53 -0
  231. package/test/corpus/snippetTests/basic/intseq.txt +365 -0
  232. package/test/corpus/snippetTests/basic/is.txt +1504 -0
  233. package/test/corpus/snippetTests/basic/is2.txt +677 -0
  234. package/test/corpus/snippetTests/basic/let.txt +515 -0
  235. package/test/corpus/snippetTests/basic/letTyped.txt +293 -0
  236. package/test/corpus/snippetTests/basic/list.txt +252 -0
  237. package/test/corpus/snippetTests/basic/localMethodDynamicBinding.txt +187 -0
  238. package/test/corpus/snippetTests/basic/localMethodInAmendingModule.txt +216 -0
  239. package/test/corpus/snippetTests/basic/localMethodOverride1.txt +152 -0
  240. package/test/corpus/snippetTests/basic/localMethodOverride2.txt +173 -0
  241. package/test/corpus/snippetTests/basic/localMethodTyped.txt +564 -0
  242. package/test/corpus/snippetTests/basic/localMethodTyped2.txt +580 -0
  243. package/test/corpus/snippetTests/basic/localMethodTyped3.txt +218 -0
  244. package/test/corpus/snippetTests/basic/localMethodTyped4.txt +232 -0
  245. package/test/corpus/snippetTests/basic/localMethodTyped5.txt +211 -0
  246. package/test/corpus/snippetTests/basic/localMethodTyped6.txt +225 -0
  247. package/test/corpus/snippetTests/basic/localMethodUntyped.txt +488 -0
  248. package/test/corpus/snippetTests/basic/localModuleMemberOverride1.txt +227 -0
  249. package/test/corpus/snippetTests/basic/localModuleMemberOverride2.txt +202 -0
  250. package/test/corpus/snippetTests/basic/localProperty1.txt +33 -0
  251. package/test/corpus/snippetTests/basic/localProperty2.txt +77 -0
  252. package/test/corpus/snippetTests/basic/localPropertyAmendInAmendingModule.txt +25 -0
  253. package/test/corpus/snippetTests/basic/localPropertyInAmendingModule.txt +205 -0
  254. package/test/corpus/snippetTests/basic/localPropertyOverride1.txt +131 -0
  255. package/test/corpus/snippetTests/basic/localPropertyOverride2.txt +152 -0
  256. package/test/corpus/snippetTests/basic/localPropertyOverride3.txt +52 -0
  257. package/test/corpus/snippetTests/basic/localTypedClassMember.txt +277 -0
  258. package/test/corpus/snippetTests/basic/localTypedModuleMember.txt +265 -0
  259. package/test/corpus/snippetTests/basic/localTypedObjectMember.txt +268 -0
  260. package/test/corpus/snippetTests/basic/map.txt +398 -0
  261. package/test/corpus/snippetTests/basic/minPklVersion.txt +40 -0
  262. package/test/corpus/snippetTests/basic/moduleRef1.txt +108 -0
  263. package/test/corpus/snippetTests/basic/moduleRef2.txt +80 -0
  264. package/test/corpus/snippetTests/basic/moduleRef3.txt +112 -0
  265. package/test/corpus/snippetTests/basic/moduleRefLibrary.txt +33 -0
  266. package/test/corpus/snippetTests/basic/new.txt +1028 -0
  267. package/test/corpus/snippetTests/basic/newInAmendingModuleMethod.txt +116 -0
  268. package/test/corpus/snippetTests/basic/newInsideIf.txt +841 -0
  269. package/test/corpus/snippetTests/basic/newInsideLet.txt +869 -0
  270. package/test/corpus/snippetTests/basic/newType.txt +686 -0
  271. package/test/corpus/snippetTests/basic/nonNull.txt +131 -0
  272. package/test/corpus/snippetTests/basic/nullable.txt +239 -0
  273. package/test/corpus/snippetTests/basic/objectMember.txt +129 -0
  274. package/test/corpus/snippetTests/basic/objectMemberInvalid.txt +18 -0
  275. package/test/corpus/snippetTests/basic/objectMemberInvalid2.txt +18 -0
  276. package/test/corpus/snippetTests/basic/objectMemberInvalid3.txt +22 -0
  277. package/test/corpus/snippetTests/basic/parens.txt +59 -0
  278. package/test/corpus/snippetTests/basic/propertyDefaults.txt +126 -0
  279. package/test/corpus/snippetTests/basic/read.txt +250 -0
  280. package/test/corpus/snippetTests/basic/readGlob.txt +209 -0
  281. package/test/corpus/snippetTests/basic/semicolon.txt +18 -0
  282. package/test/corpus/snippetTests/basic/set.txt +340 -0
  283. package/test/corpus/snippetTests/basic/trace.txt +130 -0
  284. package/test/corpus/snippetTests/basic/typeResolution1.txt +31 -0
  285. package/test/corpus/snippetTests/basic/typeResolution2.txt +37 -0
  286. package/test/corpus/snippetTests/basic/typeResolution3.txt +63 -0
  287. package/test/corpus/snippetTests/basic/typeResolution4.txt +61 -0
  288. package/test/corpus/snippetTests/basic/underscore.txt +419 -0
  289. package/test/corpus/snippetTests/classes/class1.txt +54 -0
  290. package/test/corpus/snippetTests/classes/class2.txt +123 -0
  291. package/test/corpus/snippetTests/classes/class2a.txt +110 -0
  292. package/test/corpus/snippetTests/classes/class3.txt +65 -0
  293. package/test/corpus/snippetTests/classes/class4.txt +58 -0
  294. package/test/corpus/snippetTests/classes/constraints1.txt +141 -0
  295. package/test/corpus/snippetTests/classes/constraints11.txt +201 -0
  296. package/test/corpus/snippetTests/classes/constraints12.txt +204 -0
  297. package/test/corpus/snippetTests/classes/constraints13.txt +86 -0
  298. package/test/corpus/snippetTests/classes/constraints14.txt +39 -0
  299. package/test/corpus/snippetTests/classes/constraints2.txt +69 -0
  300. package/test/corpus/snippetTests/classes/constraints3.txt +97 -0
  301. package/test/corpus/snippetTests/classes/constraints4.txt +86 -0
  302. package/test/corpus/snippetTests/classes/constraints5.txt +71 -0
  303. package/test/corpus/snippetTests/classes/constraints6.txt +85 -0
  304. package/test/corpus/snippetTests/classes/constraints7.txt +148 -0
  305. package/test/corpus/snippetTests/classes/constraints8.txt +103 -0
  306. package/test/corpus/snippetTests/classes/constraints9.txt +92 -0
  307. package/test/corpus/snippetTests/classes/constraintsLambdaThis.txt +216 -0
  308. package/test/corpus/snippetTests/classes/equality.txt +123 -0
  309. package/test/corpus/snippetTests/classes/externalClass.txt +12 -0
  310. package/test/corpus/snippetTests/classes/externalFunction.txt +18 -0
  311. package/test/corpus/snippetTests/classes/externalProperty.txt +20 -0
  312. package/test/corpus/snippetTests/classes/functions1.txt +77 -0
  313. package/test/corpus/snippetTests/classes/functions2.txt +56 -0
  314. package/test/corpus/snippetTests/classes/functions3.txt +81 -0
  315. package/test/corpus/snippetTests/classes/functions4.txt +125 -0
  316. package/test/corpus/snippetTests/classes/inheritance1.txt +98 -0
  317. package/test/corpus/snippetTests/classes/inheritance2.txt +91 -0
  318. package/test/corpus/snippetTests/classes/invalidInstantiation1.txt +16 -0
  319. package/test/corpus/snippetTests/classes/invalidInstantiation2.txt +21 -0
  320. package/test/corpus/snippetTests/classes/lambdaConstraints1.txt +190 -0
  321. package/test/corpus/snippetTests/classes/listConstraints1.txt +312 -0
  322. package/test/corpus/snippetTests/classes/mapConstraints1.txt +495 -0
  323. package/test/corpus/snippetTests/classes/nullableTypes.txt +187 -0
  324. package/test/corpus/snippetTests/classes/setConstraints1.txt +312 -0
  325. package/test/corpus/snippetTests/classes/supercalls.txt +317 -0
  326. package/test/corpus/snippetTests/classes/unionTypes.txt +543 -0
  327. package/test/corpus/snippetTests/classes/unionTypesErrorAlias.txt +93 -0
  328. package/test/corpus/snippetTests/classes/unionTypesErrorDifferent1.txt +47 -0
  329. package/test/corpus/snippetTests/classes/unionTypesErrorDifferent2.txt +52 -0
  330. package/test/corpus/snippetTests/classes/unionTypesErrorMultipleAliases.txt +36 -0
  331. package/test/corpus/snippetTests/classes/unionTypesErrorNested.txt +99 -0
  332. package/test/corpus/snippetTests/classes/unionTypesErrorSimple.txt +42 -0
  333. package/test/corpus/snippetTests/classes/unionTypesErrorString1.txt +43 -0
  334. package/test/corpus/snippetTests/classes/unionTypesErrorString2.txt +85 -0
  335. package/test/corpus/snippetTests/classes/wrongType1.txt +34 -0
  336. package/test/corpus/snippetTests/classes/wrongType2.txt +47 -0
  337. package/test/corpus/snippetTests/classes/wrongType3.txt +71 -0
  338. package/test/corpus/snippetTests/classes/wrongType4.txt +77 -0
  339. package/test/corpus/snippetTests/classes/wrongType6.txt +43 -0
  340. package/test/corpus/snippetTests/errors/abstractOpenMember.txt +13 -0
  341. package/test/corpus/snippetTests/errors/analyzeImportsCannotFindModule.txt +41 -0
  342. package/test/corpus/snippetTests/errors/analyzeImportsInvalidGlob.txt +41 -0
  343. package/test/corpus/snippetTests/errors/analyzeInvalidHttpModule.txt +26 -0
  344. package/test/corpus/snippetTests/errors/analyzeInvalidModuleUri.txt +26 -0
  345. package/test/corpus/snippetTests/errors/analyzeRelativeModuleUri.txt +26 -0
  346. package/test/corpus/snippetTests/errors/anyConverterError.txt +56 -0
  347. package/test/corpus/snippetTests/errors/baseModule.txt +24 -0
  348. package/test/corpus/snippetTests/errors/cannotAmendFixedProperty1.txt +62 -0
  349. package/test/corpus/snippetTests/errors/cannotAmendFixedProperty2.txt +24 -0
  350. package/test/corpus/snippetTests/errors/cannotAssignFixedProperty1.txt +45 -0
  351. package/test/corpus/snippetTests/errors/cannotAssignFixedProperty2.txt +19 -0
  352. package/test/corpus/snippetTests/errors/cannotAssignFixedProperty3.txt +31 -0
  353. package/test/corpus/snippetTests/errors/cannotAssignToNothing.txt +15 -0
  354. package/test/corpus/snippetTests/errors/cannotChangeFixed1.txt +35 -0
  355. package/test/corpus/snippetTests/errors/cannotChangeFixed2.txt +35 -0
  356. package/test/corpus/snippetTests/errors/cannotFindMapKey.txt +39 -0
  357. package/test/corpus/snippetTests/errors/cannotFindStdLibModule.txt +20 -0
  358. package/test/corpus/snippetTests/errors/cannotInferParent2.txt +14 -0
  359. package/test/corpus/snippetTests/errors/cannotInferParent3.txt +48 -0
  360. package/test/corpus/snippetTests/errors/cannotInstantiateAbstractModule.txt +21 -0
  361. package/test/corpus/snippetTests/errors/cannotRenderMixin.txt +41 -0
  362. package/test/corpus/snippetTests/errors/classExtendsSelf.txt +27 -0
  363. package/test/corpus/snippetTests/errors/constraintDetails1.txt +80 -0
  364. package/test/corpus/snippetTests/errors/constraintDetails2.txt +77 -0
  365. package/test/corpus/snippetTests/errors/constraintDetails3.txt +87 -0
  366. package/test/corpus/snippetTests/errors/duplicateTypeParameter.txt +22 -0
  367. package/test/corpus/snippetTests/errors/extendExternalClass.txt +12 -0
  368. package/test/corpus/snippetTests/errors/extendTypeAlias.txt +33 -0
  369. package/test/corpus/snippetTests/errors/forGeneratorCannotGenerateMethods.txt +30 -0
  370. package/test/corpus/snippetTests/errors/forGeneratorCannotGenerateProperties.txt +28 -0
  371. package/test/corpus/snippetTests/errors/forGeneratorCannotIterateOverThisValue.txt +21 -0
  372. package/test/corpus/snippetTests/errors/forGeneratorCannotIterateOverTyped.txt +27 -0
  373. package/test/corpus/snippetTests/errors/forGeneratorDuplicateParams1.txt +38 -0
  374. package/test/corpus/snippetTests/errors/fullStackTraces.txt +64 -0
  375. package/test/corpus/snippetTests/errors/fullStackTraces2.txt +56 -0
  376. package/test/corpus/snippetTests/errors/functionNotFoundInClass.txt +35 -0
  377. package/test/corpus/snippetTests/errors/functionNotFoundInModule.txt +25 -0
  378. package/test/corpus/snippetTests/errors/functionNotFoundInScope.txt +38 -0
  379. package/test/corpus/snippetTests/errors/functionNotFoundMaybeLambda.txt +24 -0
  380. package/test/corpus/snippetTests/errors/functionNotFoundMaybeProperty.txt +18 -0
  381. package/test/corpus/snippetTests/errors/intrinsifiedTypeAlias1.txt +16 -0
  382. package/test/corpus/snippetTests/errors/intrinsifiedTypeAlias2.txt +16 -0
  383. package/test/corpus/snippetTests/errors/intrinsifiedTypeAlias3.txt +15 -0
  384. package/test/corpus/snippetTests/errors/intrinsifiedTypeAlias4.txt +15 -0
  385. package/test/corpus/snippetTests/errors/invalidClassMethodModifier.txt +29 -0
  386. package/test/corpus/snippetTests/errors/invalidClassModifier.txt +11 -0
  387. package/test/corpus/snippetTests/errors/invalidClassModifier2.txt +12 -0
  388. package/test/corpus/snippetTests/errors/invalidClassPropertyModifier.txt +31 -0
  389. package/test/corpus/snippetTests/errors/invalidGlobImport1.txt +19 -0
  390. package/test/corpus/snippetTests/errors/invalidGlobImport4.txt +19 -0
  391. package/test/corpus/snippetTests/errors/invalidGlobImport5.txt +20 -0
  392. package/test/corpus/snippetTests/errors/invalidGlobImport6.txt +14 -0
  393. package/test/corpus/snippetTests/errors/invalidGlobImport7.txt +21 -0
  394. package/test/corpus/snippetTests/errors/invalidGlobImport8.txt +22 -0
  395. package/test/corpus/snippetTests/errors/invalidGlobRead1.txt +14 -0
  396. package/test/corpus/snippetTests/errors/invalidGlobRead2.txt +14 -0
  397. package/test/corpus/snippetTests/errors/invalidGlobRead3.txt +14 -0
  398. package/test/corpus/snippetTests/errors/invalidImportBackslashSep.txt +14 -0
  399. package/test/corpus/snippetTests/errors/invalidImportUri.txt +19 -0
  400. package/test/corpus/snippetTests/errors/invalidMethodModifier.txt +14 -0
  401. package/test/corpus/snippetTests/errors/invalidModuleModifier.txt +20 -0
  402. package/test/corpus/snippetTests/errors/invalidObjectPropertyModifier.txt +17 -0
  403. package/test/corpus/snippetTests/errors/invalidOutput1.txt +17 -0
  404. package/test/corpus/snippetTests/errors/invalidOutput2.txt +22 -0
  405. package/test/corpus/snippetTests/errors/invalidOutput3.txt +12 -0
  406. package/test/corpus/snippetTests/errors/invalidPropertyModifier.txt +16 -0
  407. package/test/corpus/snippetTests/errors/invalidTripleDotSyntax1.txt +11 -0
  408. package/test/corpus/snippetTests/errors/invalidTripleDotSyntax2.txt +11 -0
  409. package/test/corpus/snippetTests/errors/invalidTypeAliasModifier.txt +14 -0
  410. package/test/corpus/snippetTests/errors/invalidTypeName1.txt +24 -0
  411. package/test/corpus/snippetTests/errors/invalidTypeName2.txt +31 -0
  412. package/test/corpus/snippetTests/errors/invalidTypeName3.txt +19 -0
  413. package/test/corpus/snippetTests/errors/invalidTypeName4.txt +24 -0
  414. package/test/corpus/snippetTests/errors/letExpressionError1.txt +24 -0
  415. package/test/corpus/snippetTests/errors/letExpressionError2.txt +27 -0
  416. package/test/corpus/snippetTests/errors/letExpressionErrorTyped.txt +27 -0
  417. package/test/corpus/snippetTests/errors/listingTypeCheckError1.txt +24 -0
  418. package/test/corpus/snippetTests/errors/listingTypeCheckError2.txt +30 -0
  419. package/test/corpus/snippetTests/errors/listingTypeCheckError3.txt +36 -0
  420. package/test/corpus/snippetTests/errors/listingTypeCheckError4.txt +43 -0
  421. package/test/corpus/snippetTests/errors/listingTypeCheckError5.txt +40 -0
  422. package/test/corpus/snippetTests/errors/listingTypeCheckError6.txt +58 -0
  423. package/test/corpus/snippetTests/errors/listingTypeCheckError7.txt +42 -0
  424. package/test/corpus/snippetTests/errors/listingTypeCheckError8.txt +84 -0
  425. package/test/corpus/snippetTests/errors/listingTypeCheckError9.txt +97 -0
  426. package/test/corpus/snippetTests/errors/localFixedMember.txt +19 -0
  427. package/test/corpus/snippetTests/errors/localFunctionWithTypeParameter.txt +18 -0
  428. package/test/corpus/snippetTests/errors/localHiddenMember.txt +17 -0
  429. package/test/corpus/snippetTests/errors/mappingTypeCheckError1.txt +29 -0
  430. package/test/corpus/snippetTests/errors/mappingTypeCheckError10.txt +49 -0
  431. package/test/corpus/snippetTests/errors/mappingTypeCheckError11.txt +106 -0
  432. package/test/corpus/snippetTests/errors/mappingTypeCheckError2.txt +30 -0
  433. package/test/corpus/snippetTests/errors/mappingTypeCheckError3.txt +30 -0
  434. package/test/corpus/snippetTests/errors/mappingTypeCheckError4.txt +36 -0
  435. package/test/corpus/snippetTests/errors/mappingTypeCheckError5.txt +41 -0
  436. package/test/corpus/snippetTests/errors/mappingTypeCheckError6.txt +75 -0
  437. package/test/corpus/snippetTests/errors/mappingTypeCheckError7.txt +45 -0
  438. package/test/corpus/snippetTests/errors/mappingTypeCheckError8.txt +33 -0
  439. package/test/corpus/snippetTests/errors/mappingTypeCheckError9.txt +69 -0
  440. package/test/corpus/snippetTests/errors/missingLocalPropertyValue1.txt +15 -0
  441. package/test/corpus/snippetTests/errors/missingLocalPropertyValue2.txt +22 -0
  442. package/test/corpus/snippetTests/errors/moduleAmendsSelf.txt +13 -0
  443. package/test/corpus/snippetTests/errors/moduleAmendsVersionCheck.txt +13 -0
  444. package/test/corpus/snippetTests/errors/moduleAmendsVersionCheck2.txt +22 -0
  445. package/test/corpus/snippetTests/errors/moduleExpected.txt +43 -0
  446. package/test/corpus/snippetTests/errors/moduleExtendsSelf.txt +20 -0
  447. package/test/corpus/snippetTests/errors/moduleExtendsVersionCheck.txt +13 -0
  448. package/test/corpus/snippetTests/errors/moduleExtendsVersionCheck2.txt +22 -0
  449. package/test/corpus/snippetTests/errors/moduleImportVersionCheck.txt +20 -0
  450. package/test/corpus/snippetTests/errors/moduleWithHighMinPklVersion.txt +29 -0
  451. package/test/corpus/snippetTests/errors/noDefault.txt +23 -0
  452. package/test/corpus/snippetTests/errors/noDefault2.txt +31 -0
  453. package/test/corpus/snippetTests/errors/objectCannotHaveElement.txt +72 -0
  454. package/test/corpus/snippetTests/errors/objectCannotHaveElement2.txt +98 -0
  455. package/test/corpus/snippetTests/errors/objectCannotHavePredicateMember.txt +25 -0
  456. package/test/corpus/snippetTests/errors/outOfRange1.txt +14 -0
  457. package/test/corpus/snippetTests/errors/outOfRange2.txt +17 -0
  458. package/test/corpus/snippetTests/errors/outOfRange3.txt +21 -0
  459. package/test/corpus/snippetTests/errors/propertyNotFound1.txt +32 -0
  460. package/test/corpus/snippetTests/errors/propertyNotFound2.txt +18 -0
  461. package/test/corpus/snippetTests/errors/refusingToLoadModule.txt +18 -0
  462. package/test/corpus/snippetTests/errors/spreadSyntaxCannotHaveElement.txt +38 -0
  463. package/test/corpus/snippetTests/errors/spreadSyntaxCannotHaveEntry.txt +34 -0
  464. package/test/corpus/snippetTests/errors/spreadSyntaxCannotHaveProperty.txt +34 -0
  465. package/test/corpus/snippetTests/errors/spreadSyntaxCannotIterateOverTyped.txt +44 -0
  466. package/test/corpus/snippetTests/errors/spreadSyntaxCannotSpreadListIntoMapping.txt +37 -0
  467. package/test/corpus/snippetTests/errors/spreadSyntaxDuplicateEntry1.txt +39 -0
  468. package/test/corpus/snippetTests/errors/spreadSyntaxDuplicateEntry2.txt +39 -0
  469. package/test/corpus/snippetTests/errors/spreadSyntaxDuplicateProperty1.txt +32 -0
  470. package/test/corpus/snippetTests/errors/spreadSyntaxDuplicateProperty2.txt +32 -0
  471. package/test/corpus/snippetTests/errors/spreadSyntaxNullValue.txt +20 -0
  472. package/test/corpus/snippetTests/errors/spreadSyntaxUnknownTypedProperty.txt +47 -0
  473. package/test/corpus/snippetTests/errors/stackTraceWithQuotedMemberName.txt +23 -0
  474. package/test/corpus/snippetTests/errors/supercalls.txt +18 -0
  475. package/test/corpus/snippetTests/errors/typeMismatchHelper.txt +19 -0
  476. package/test/corpus/snippetTests/errors/typeMismatchWithSameQualifiedClassName.txt +38 -0
  477. package/test/corpus/snippetTests/errors/typeMismatchWithSameQualifiedModuleName.txt +28 -0
  478. package/test/corpus/snippetTests/errors/undefinedOp1.txt +12 -0
  479. package/test/corpus/snippetTests/errors/undefinedOp2.txt +14 -0
  480. package/test/corpus/snippetTests/errors/undefinedOp3.txt +24 -0
  481. package/test/corpus/snippetTests/errors/undefinedProperty1.txt +28 -0
  482. package/test/corpus/snippetTests/errors/undefinedProperty2.txt +15 -0
  483. package/test/corpus/snippetTests/errors/undefinedProperty3.txt +95 -0
  484. package/test/corpus/snippetTests/errors/undefinedProperty4.txt +141 -0
  485. package/test/corpus/snippetTests/errors/undefinedProperty5.txt +160 -0
  486. package/test/corpus/snippetTests/errors/undefinedProperty6.txt +40 -0
  487. package/test/corpus/snippetTests/errors/undefinedProperty7.txt +35 -0
  488. package/test/corpus/snippetTests/errors/undefinedProperty8.txt +34 -0
  489. package/test/corpus/snippetTests/errors/underscoreLambda.txt +37 -0
  490. package/test/corpus/snippetTests/errors/underscoreLet.txt +17 -0
  491. package/test/corpus/snippetTests/errors/userDefinedTypeParameter1.txt +22 -0
  492. package/test/corpus/snippetTests/errors/userDefinedTypeParameter2.txt +32 -0
  493. package/test/corpus/snippetTests/errors/wrongForGeneratorType1.txt +35 -0
  494. package/test/corpus/snippetTests/errors/wrongForGeneratorType2.txt +37 -0
  495. package/test/corpus/snippetTests/errors/wrongNumberOfMapArguments.txt +16 -0
  496. package/test/corpus/snippetTests/generators/duplicateDefinition1.txt +23 -0
  497. package/test/corpus/snippetTests/generators/duplicateDefinition2.txt +30 -0
  498. package/test/corpus/snippetTests/generators/duplicateDefinition3.txt +26 -0
  499. package/test/corpus/snippetTests/generators/elementGenerators.txt +2628 -0
  500. package/test/corpus/snippetTests/generators/elementGeneratorsTyped.txt +1593 -0
  501. package/test/corpus/snippetTests/generators/entryGenerators.txt +3013 -0
  502. package/test/corpus/snippetTests/generators/entryGeneratorsTyped.txt +1858 -0
  503. package/test/corpus/snippetTests/generators/forGeneratorInMixins.txt +301 -0
  504. package/test/corpus/snippetTests/generators/forGeneratorLexicalScope.txt +199 -0
  505. package/test/corpus/snippetTests/generators/forGeneratorNestedReference.txt +277 -0
  506. package/test/corpus/snippetTests/generators/forGeneratorNestedReference2.txt +98 -0
  507. package/test/corpus/snippetTests/generators/forGeneratorVariableShadowing.txt +177 -0
  508. package/test/corpus/snippetTests/generators/generatorNoMembers.txt +157 -0
  509. package/test/corpus/snippetTests/generators/predicateMembersDynamicListing.txt +461 -0
  510. package/test/corpus/snippetTests/generators/predicateMembersDynamicMapping.txt +473 -0
  511. package/test/corpus/snippetTests/generators/predicateMembersListing.txt +463 -0
  512. package/test/corpus/snippetTests/generators/predicateMembersMapping.txt +474 -0
  513. package/test/corpus/snippetTests/generators/predicateMembersThis.txt +82 -0
  514. package/test/corpus/snippetTests/generators/propertyGenerators.txt +104 -0
  515. package/test/corpus/snippetTests/generators/spreadSyntaxDynamic.txt +411 -0
  516. package/test/corpus/snippetTests/generators/spreadSyntaxListing.txt +496 -0
  517. package/test/corpus/snippetTests/generators/spreadSyntaxMapping.txt +655 -0
  518. package/test/corpus/snippetTests/generators/spreadSyntaxNoSpace.txt +32 -0
  519. package/test/corpus/snippetTests/generators/spreadSyntaxNullable.txt +37 -0
  520. package/test/corpus/snippetTests/generators/spreadSyntaxTyped.txt +59 -0
  521. package/test/corpus/snippetTests/implementation/equality.txt +198 -0
  522. package/test/corpus/snippetTests/implementation/inequality.txt +198 -0
  523. package/test/corpus/snippetTests/internal/polymorphicCallSite.txt +499 -0
  524. package/test/corpus/snippetTests/lambdas/amendLambdaDef.txt +310 -0
  525. package/test/corpus/snippetTests/lambdas/amendLambdaExpr.txt +325 -0
  526. package/test/corpus/snippetTests/lambdas/amendLambdaExternalClassError.txt +45 -0
  527. package/test/corpus/snippetTests/lambdas/amendLambdaParameters.txt +155 -0
  528. package/test/corpus/snippetTests/lambdas/amendLambdaParametersTyped.txt +420 -0
  529. package/test/corpus/snippetTests/lambdas/amendLambdaThatReturnsAnotherLambda.txt +380 -0
  530. package/test/corpus/snippetTests/lambdas/amendLambdaTooFewArgsError.txt +60 -0
  531. package/test/corpus/snippetTests/lambdas/amendLambdaTooManyArgsError.txt +62 -0
  532. package/test/corpus/snippetTests/lambdas/equality.txt +62 -0
  533. package/test/corpus/snippetTests/lambdas/inequality.txt +62 -0
  534. package/test/corpus/snippetTests/lambdas/lambda1.txt +85 -0
  535. package/test/corpus/snippetTests/lambdas/lambda2.txt +78 -0
  536. package/test/corpus/snippetTests/lambdas/lambda3.txt +381 -0
  537. package/test/corpus/snippetTests/lambdas/lambda4.txt +147 -0
  538. package/test/corpus/snippetTests/lambdas/lambda5.txt +307 -0
  539. package/test/corpus/snippetTests/lambdas/lambdaStackTrace1.txt +35 -0
  540. package/test/corpus/snippetTests/lambdas/lambdaStackTrace2.txt +37 -0
  541. package/test/corpus/snippetTests/lambdas/lambdaStackTrace3.txt +33 -0
  542. package/test/corpus/snippetTests/lambdas/pipeOperator.txt +189 -0
  543. package/test/corpus/snippetTests/lambdas/tooManyLambdaParams.txt +27 -0
  544. package/test/corpus/snippetTests/lambdas/typedLambdas.txt +278 -0
  545. package/test/corpus/snippetTests/lambdas/wrongArgumentListLength.txt +37 -0
  546. package/test/corpus/snippetTests/listings/cacheStealing.txt +56 -0
  547. package/test/corpus/snippetTests/listings/cacheStealingTypeCheck.txt +27 -0
  548. package/test/corpus/snippetTests/listings/default.txt +133 -0
  549. package/test/corpus/snippetTests/listings/equality.txt +341 -0
  550. package/test/corpus/snippetTests/listings/hashCode.txt +438 -0
  551. package/test/corpus/snippetTests/listings/inequality.txt +173 -0
  552. package/test/corpus/snippetTests/listings/listing1.txt +360 -0
  553. package/test/corpus/snippetTests/listings/listing2.txt +755 -0
  554. package/test/corpus/snippetTests/listings/listing3.txt +490 -0
  555. package/test/corpus/snippetTests/listings/listing4.txt +156 -0
  556. package/test/corpus/snippetTests/listings/listing6.txt +208 -0
  557. package/test/corpus/snippetTests/listings/listing7.txt +71 -0
  558. package/test/corpus/snippetTests/listings/typeCheck.txt +2506 -0
  559. package/test/corpus/snippetTests/listings/wrongIndex.txt +121 -0
  560. package/test/corpus/snippetTests/listings/wrongParent.txt +253 -0
  561. package/test/corpus/snippetTests/listings2/default.txt +157 -0
  562. package/test/corpus/snippetTests/listings2/equality.txt +358 -0
  563. package/test/corpus/snippetTests/listings2/inequality.txt +227 -0
  564. package/test/corpus/snippetTests/listings2/listing1.txt +372 -0
  565. package/test/corpus/snippetTests/listings2/listing2.txt +904 -0
  566. package/test/corpus/snippetTests/listings2/listing3.txt +568 -0
  567. package/test/corpus/snippetTests/listings2/typeCheck.txt +336 -0
  568. package/test/corpus/snippetTests/listings2/wrongIndex.txt +151 -0
  569. package/test/corpus/snippetTests/listings2/wrongParent.txt +313 -0
  570. package/test/corpus/snippetTests/mappings/default.txt +174 -0
  571. package/test/corpus/snippetTests/mappings/duplicateComputedKey.txt +85 -0
  572. package/test/corpus/snippetTests/mappings/duplicateConstantKey.txt +32 -0
  573. package/test/corpus/snippetTests/mappings/equality.txt +383 -0
  574. package/test/corpus/snippetTests/mappings/hashCode.txt +461 -0
  575. package/test/corpus/snippetTests/mappings/inequality.txt +198 -0
  576. package/test/corpus/snippetTests/mappings/mapping1.txt +590 -0
  577. package/test/corpus/snippetTests/mappings/mapping2.txt +491 -0
  578. package/test/corpus/snippetTests/mappings/stringKeyNotFound.txt +50 -0
  579. package/test/corpus/snippetTests/mappings/typeCheck.txt +2877 -0
  580. package/test/corpus/snippetTests/mappings/wrongParent.txt +262 -0
  581. package/test/corpus/snippetTests/mappings2/default.txt +195 -0
  582. package/test/corpus/snippetTests/mappings2/duplicateComputedKey.txt +99 -0
  583. package/test/corpus/snippetTests/mappings2/duplicateConstantKey.txt +39 -0
  584. package/test/corpus/snippetTests/mappings2/equality.txt +416 -0
  585. package/test/corpus/snippetTests/mappings2/inequality.txt +268 -0
  586. package/test/corpus/snippetTests/mappings2/mapping1.txt +604 -0
  587. package/test/corpus/snippetTests/mappings2/mapping2.txt +595 -0
  588. package/test/corpus/snippetTests/mappings2/stringKeyNotFound.txt +57 -0
  589. package/test/corpus/snippetTests/mappings2/typeCheck.txt +582 -0
  590. package/test/corpus/snippetTests/mappings2/wrongParent.txt +334 -0
  591. package/test/corpus/snippetTests/methods/methodParameterConstraints1.txt +220 -0
  592. package/test/corpus/snippetTests/methods/methodParameterConstraints2.txt +382 -0
  593. package/test/corpus/snippetTests/methods/methodParameterTypes2.txt +734 -0
  594. package/test/corpus/snippetTests/methods/methodParameterTypes3.txt +196 -0
  595. package/test/corpus/snippetTests/modules/amendModule1.txt +36 -0
  596. package/test/corpus/snippetTests/modules/amendModule2.txt +28 -0
  597. package/test/corpus/snippetTests/modules/amendModule3.txt +24 -0
  598. package/test/corpus/snippetTests/modules/amendModule4.txt +35 -0
  599. package/test/corpus/snippetTests/modules/amendModule5.txt +68 -0
  600. package/test/corpus/snippetTests/modules/amendModule6.txt +13 -0
  601. package/test/corpus/snippetTests/modules/equality.txt +91 -0
  602. package/test/corpus/snippetTests/modules/extendModule1.txt +80 -0
  603. package/test/corpus/snippetTests/modules/externalFunction.txt +14 -0
  604. package/test/corpus/snippetTests/modules/externalProperty.txt +16 -0
  605. package/test/corpus/snippetTests/modules/filename with spaces 2.txt +14 -0
  606. package/test/corpus/snippetTests/modules/filename with spaces.txt +13 -0
  607. package/test/corpus/snippetTests/modules/functions.txt +264 -0
  608. package/test/corpus/snippetTests/modules/invalidAmend1.txt +18 -0
  609. package/test/corpus/snippetTests/modules/invalidAmend2.txt +19 -0
  610. package/test/corpus/snippetTests/modules/invalidAmend3.txt +23 -0
  611. package/test/corpus/snippetTests/modules/invalidAmend4.txt +21 -0
  612. package/test/corpus/snippetTests/modules/invalidAmend5.txt +17 -0
  613. package/test/corpus/snippetTests/modules/invalidAmend6.txt +22 -0
  614. package/test/corpus/snippetTests/modules/invalidExtend1.txt +18 -0
  615. package/test/corpus/snippetTests/modules/invalidExtend2.txt +13 -0
  616. package/test/corpus/snippetTests/modules/invalidExtend3.txt +13 -0
  617. package/test/corpus/snippetTests/modules/library.txt +77 -0
  618. package/test/corpus/snippetTests/modules/lists.txt +26 -0
  619. package/test/corpus/snippetTests/modules/objects.txt +22 -0
  620. package/test/corpus/snippetTests/modules/recursiveModule1.txt +51 -0
  621. package/test/corpus/snippetTests/modules/recursiveModule2.txt +26 -0
  622. package/test/corpus/snippetTests/modules/supercalls1.txt +43 -0
  623. package/test/corpus/snippetTests/modules/supercalls2.txt +76 -0
  624. package/test/corpus/snippetTests/modules/supercalls3.txt +142 -0
  625. package/test/corpus/snippetTests/modules/typedModuleMethods1.txt +229 -0
  626. package/test/corpus/snippetTests/modules/typedModuleProperties1.txt +106 -0
  627. package/test/corpus/snippetTests/modules/typedModuleProperties2.txt +16 -0
  628. package/test/corpus/snippetTests/modules/typedModuleProperties3.txt +20 -0
  629. package/test/corpus/snippetTests/modules//346/227/245/346/234/254/350/252/236.txt +45 -0
  630. package/test/corpus/snippetTests/modules//346/227/245/346/234/254/350/252/236_error.txt +14 -0
  631. package/test/corpus/snippetTests/objects/closure.txt +143 -0
  632. package/test/corpus/snippetTests/objects/configureObjectAssign.txt +78 -0
  633. package/test/corpus/snippetTests/objects/equality.txt +989 -0
  634. package/test/corpus/snippetTests/objects/hashCode.txt +566 -0
  635. package/test/corpus/snippetTests/objects/implicitReceiver1.txt +37 -0
  636. package/test/corpus/snippetTests/objects/implicitReceiver2.txt +33 -0
  637. package/test/corpus/snippetTests/objects/implicitReceiver3.txt +29 -0
  638. package/test/corpus/snippetTests/objects/implicitReceiver4.txt +25 -0
  639. package/test/corpus/snippetTests/objects/inequality.txt +777 -0
  640. package/test/corpus/snippetTests/objects/lateBinding1.txt +60 -0
  641. package/test/corpus/snippetTests/objects/lateBinding2.txt +60 -0
  642. package/test/corpus/snippetTests/objects/lateBinding3.txt +81 -0
  643. package/test/corpus/snippetTests/objects/lateBinding4.txt +77 -0
  644. package/test/corpus/snippetTests/objects/outer.txt +91 -0
  645. package/test/corpus/snippetTests/objects/outer2.txt +28 -0
  646. package/test/corpus/snippetTests/objects/super1.txt +67 -0
  647. package/test/corpus/snippetTests/objects/super2.txt +59 -0
  648. package/test/corpus/snippetTests/objects/super3.txt +59 -0
  649. package/test/corpus/snippetTests/objects/super4.txt +66 -0
  650. package/test/corpus/snippetTests/objects/super5.txt +69 -0
  651. package/test/corpus/snippetTests/objects/this1.txt +24 -0
  652. package/test/corpus/snippetTests/objects/this2.txt +71 -0
  653. package/test/corpus/snippetTests/packages/badImport1.error.txt +14 -0
  654. package/test/corpus/snippetTests/packages/badImport10.error.txt +14 -0
  655. package/test/corpus/snippetTests/packages/badImport11.error.txt +14 -0
  656. package/test/corpus/snippetTests/packages/badImport2.error.txt +14 -0
  657. package/test/corpus/snippetTests/packages/badImport3.error.txt +14 -0
  658. package/test/corpus/snippetTests/packages/badImport4.error.txt +14 -0
  659. package/test/corpus/snippetTests/packages/badImport6.error.txt +20 -0
  660. package/test/corpus/snippetTests/packages/badImport7.error.txt +14 -0
  661. package/test/corpus/snippetTests/packages/badImport8.error.txt +14 -0
  662. package/test/corpus/snippetTests/packages/badImport9.error.txt +14 -0
  663. package/test/corpus/snippetTests/packages/badRead1.error.txt +14 -0
  664. package/test/corpus/snippetTests/packages/badRead2.error.txt +14 -0
  665. package/test/corpus/snippetTests/packages/badRead3.error.txt +14 -0
  666. package/test/corpus/snippetTests/packages/badRead4.error.txt +14 -0
  667. package/test/corpus/snippetTests/packages/badRead8.error.txt +14 -0
  668. package/test/corpus/snippetTests/packages/badRead9.error.txt +14 -0
  669. package/test/corpus/snippetTests/packages/packages1.txt +103 -0
  670. package/test/corpus/snippetTests/packages/packages2.txt +104 -0
  671. package/test/corpus/snippetTests/packages/redirects.txt +54 -0
  672. package/test/corpus/snippetTests/types/ThisInTypeConstraint.txt +342 -0
  673. package/test/corpus/snippetTests/types/currentModuleType1.txt +343 -0
  674. package/test/corpus/snippetTests/types/currentModuleType2.txt +351 -0
  675. package/test/corpus/snippetTests/types/currentModuleType3.txt +18 -0
  676. package/test/corpus/snippetTests/types/cyclicTypeAlias1.txt +17 -0
  677. package/test/corpus/snippetTests/types/cyclicTypeAlias2.txt +42 -0
  678. package/test/corpus/snippetTests/types/modifiersForTypes.txt +68 -0
  679. package/test/corpus/snippetTests/types/moduleType.txt +58 -0
  680. package/test/corpus/snippetTests/types/nothingType.txt +29 -0
  681. package/test/corpus/snippetTests/types/nothingWithUnions.txt +31 -0
  682. package/test/corpus/snippetTests/types/typeAlias1.txt +925 -0
  683. package/test/corpus/snippetTests/types/typeAlias2.txt +361 -0
  684. package/test/corpus/snippetTests/types/typeAliasConstraint1.txt +79 -0
  685. package/test/corpus/snippetTests/types/typeAliasConstraint2.txt +77 -0
  686. package/test/corpus/snippetTests/types/typeAliasContext.txt +26 -0
  687. package/test/corpus/snippetTests/types/typeAliasUnion.txt +169 -0
  688. package/test/corpus/string/customStringDelimiters.txt +74 -74
  689. package/test/corpus/string/multiline.txt +4 -4
  690. package/test/corpus/string/multilineInterpolation.txt +21 -21
  691. package/test/corpus/string/multilineInterpolation2.txt +15 -0
  692. package/test/corpus/string/simple.txt +1 -1
  693. package/test/corpus/string/singleLineEscapes.txt +7 -7
  694. package/test/corpus/string/singleLineInterpolation.txt +28 -28
  695. package/test/corpus/string/stringWithTwoSlashes.txt +2 -2
  696. package/test/corpus/type/unionType.txt +34 -0
  697. package/test/corpus/type/unionTypeDefaults.txt +46 -0
  698. package/tree-sitter.json +44 -0
  699. package/test/corpus/string/missingDelimiter.txt +0 -28
package/grammar.js CHANGED
@@ -1,11 +1,13 @@
1
- /**
2
- * Copyright © 2024 Apple Inc. and the Pkl project authors. All rights reserved.
1
+ // noinspection JSUnusedLocalSymbols
2
+
3
+ /*
4
+ * Copyright © 2024-2025 Apple Inc. and the Pkl project authors. All rights reserved.
3
5
  *
4
6
  * Licensed under the Apache License, Version 2.0 (the "License");
5
7
  * you may not use this file except in compliance with the License.
6
8
  * You may obtain a copy of the License at
7
9
  *
8
- * https://www.apache.org/licenses/LICENSE-2.0
10
+ * https://www.apache.org/licenses/LICENSE-2.0
9
11
  *
10
12
  * Unless required by applicable law or agreed to in writing, software
11
13
  * distributed under the License is distributed on an "AS IS" BASIS,
@@ -13,12 +15,20 @@
13
15
  * See the License for the specific language governing permissions and
14
16
  * limitations under the License.
15
17
  */
18
+
16
19
  /// <reference path="node_modules/tree-sitter-cli/dsl.d.ts" />
17
20
 
18
- /**
19
- * Operator precedences
20
- */
21
+ /** Precedences */
21
22
  const PREC = {
23
+ QUALIFIED_IDENTIFIER: 31,
24
+ DECLARED_TYPE: 30,
25
+ CONSTRAINED_TYPE: 30,
26
+ NULLABLE_TYPE: 29,
27
+ UNION_DEFAULT_TYPE: 29,
28
+ UNION_TYPE: 28,
29
+ FUN_TYPE: 27,
30
+
31
+ ACCESS: 22,
22
32
  NON_NULL: 21,
23
33
  NEG: 20,
24
34
  NOT: 19,
@@ -27,7 +37,7 @@ const PREC = {
27
37
  ADD: 16,
28
38
  REL: 15,
29
39
  IS: 14,
30
- AS: 13,
40
+ AS: 14,
31
41
  EQ: 12,
32
42
  AND: 11,
33
43
  OR: 10,
@@ -39,18 +49,10 @@ const PREC = {
39
49
  THROW: -6,
40
50
  TRACE: -7,
41
51
  READ: -8,
42
- READ_OR_NULL: -9,
43
- READ_GLOB: -10,
44
52
  FUN: -11,
45
53
 
46
- NULLABLE_TYPE: 5,
47
- FUN_TYPE: -5,
48
- UNION_DEFAULT_TYPE: -6,
49
- UNION_TYPE: -7,
50
-
51
- VAR_OBJ_LITERAL: 2,
52
- OBJ_LITERAL: 1,
53
- OBJ_MEMBER: -1
54
+ AMEND_EXPR: 1,
55
+ OBJ_MEMBER: -2,
54
56
  };
55
57
 
56
58
  const decimalLiteral = seq(/\d/, /[\d_]*/);
@@ -58,6 +60,59 @@ const decimalLiteral = seq(/\d/, /[\d_]*/);
58
60
  module.exports = grammar({
59
61
  name: 'pkl',
60
62
 
63
+ reserved: {
64
+ global: $ => [
65
+ '_',
66
+ 'abstract',
67
+ 'amends',
68
+ 'as',
69
+ 'class',
70
+ 'const',
71
+ 'else',
72
+ 'extends',
73
+ 'external',
74
+ 'false',
75
+ 'fixed',
76
+ 'for',
77
+ 'function',
78
+ 'hidden',
79
+ 'if',
80
+ 'import',
81
+ 'import*',
82
+ 'in',
83
+ 'is',
84
+ 'let',
85
+ 'local',
86
+ 'module',
87
+ 'new',
88
+ 'nothing',
89
+ 'null',
90
+ 'open',
91
+ 'out',
92
+ 'outer',
93
+ 'read',
94
+ 'read*',
95
+ 'read?',
96
+ 'super',
97
+ 'this',
98
+ 'throw',
99
+ 'trace',
100
+ 'true',
101
+ 'typealias',
102
+ 'unknown',
103
+ 'when',
104
+
105
+ // TODO support reserved keywords
106
+ // 'protected',
107
+ // 'override',
108
+ // 'record',
109
+ // 'delete',
110
+ // 'case',
111
+ // 'switch',
112
+ // 'vararg',
113
+ ]
114
+ },
115
+
61
116
  externals: $ => [
62
117
  $._sl_string_chars,
63
118
  $._sl1_string_chars,
@@ -77,6 +132,8 @@ module.exports = grammar({
77
132
  $._open_subscript_bracket,
78
133
  // '(' without preceding newline or semicolon
79
134
  $._open_argument_paren,
135
+ // '-' without preceding newline or semicolon
136
+ $._binary_minus,
80
137
  ],
81
138
 
82
139
  extras: $ => [
@@ -89,14 +146,8 @@ module.exports = grammar({
89
146
  word: $ => $.identifier,
90
147
 
91
148
  conflicts: $ => [
92
- // these should be fixable in some other way (perhaps with prec)
93
- [$.variableExpr, $.typedIdentifier],
94
-
95
- // not sure what this one is about
96
- [$.objectElement, $._expr],
97
-
98
- [$.qualifiedIdentifier],
99
- [$.declaredType]
149
+ [$.typedIdentifier, $.unqualifiedAccessExpr],
150
+ [$.qualifiedIdentifier]
100
151
  ],
101
152
 
102
153
  rules: {
@@ -182,7 +233,7 @@ module.exports = grammar({
182
233
  $.identifier,
183
234
  optional($.typeParameterList),
184
235
  "=",
185
- $.type
236
+ $._type
186
237
  ),
187
238
 
188
239
  classProperty: $ => seq(
@@ -236,7 +287,7 @@ module.exports = grammar({
236
287
  $.objectMethod,
237
288
  $.objectEntry,
238
289
  $.objectElement,
239
- $.objectPredicate,
290
+ $.memberPredicate,
240
291
  $.forGenerator,
241
292
  $.whenGenerator,
242
293
  $.objectSpread,
@@ -267,9 +318,9 @@ module.exports = grammar({
267
318
  )
268
319
  ),
269
320
 
270
- objectElement: $ => choice($.variableExpr, $._expr2),
321
+ objectElement: $ => $._expr,
271
322
 
272
- objectPredicate: $ => seq(
323
+ memberPredicate: $ => seq(
273
324
  "[[",
274
325
  field("conditionExpr", $._expr),
275
326
  "]]",
@@ -282,10 +333,10 @@ module.exports = grammar({
282
333
  forGenerator: $ => seq(
283
334
  "for",
284
335
  "(",
285
- $.typedIdentifier,
336
+ $._parameter,
286
337
  optional(seq(
287
338
  ",",
288
- $.typedIdentifier
339
+ $._parameter
289
340
  )),
290
341
  "in",
291
342
  $._expr,
@@ -316,13 +367,13 @@ module.exports = grammar({
316
367
  ),
317
368
 
318
369
  objectBodyParameters: $ => seq(
319
- commaSep1($.typedIdentifier),
370
+ commaSep1($._parameter),
320
371
  "->"
321
372
  ),
322
373
 
323
- typeAnnotation: $ => seq(":", $.type),
374
+ typeAnnotation: $ => seq(":", $._type),
324
375
 
325
- type: $ => choice(
376
+ _type: $ => choice(
326
377
  alias("unknown", $.unknownType),
327
378
  alias("nothing", $.nothingType),
328
379
  alias("module", $.moduleType),
@@ -332,29 +383,37 @@ module.exports = grammar({
332
383
  $.nullableType,
333
384
  $.constrainedType,
334
385
  $.unionType,
335
- $.unionDefaultType,
386
+ $.defaultUnionType,
336
387
  $.functionLiteralType
337
388
  ),
338
389
 
339
390
  stringLiteralType: $ => $.stringConstant,
340
391
 
341
- declaredType: $ => seq($.qualifiedIdentifier, optional($.typeArgumentList)),
392
+ declaredType: $ => prec.right(PREC.DECLARED_TYPE, seq($.qualifiedIdentifier, optional($.typeArgumentList))),
342
393
 
343
- parenthesizedType: $ => seq("(", $.type, ")"),
394
+ parenthesizedType: $ => seq("(", $._type, ")"),
344
395
 
345
- nullableType: $ => prec(PREC.NULLABLE_TYPE, seq($.type, "?")),
396
+ nullableType: $ => prec(PREC.NULLABLE_TYPE, seq($._type, "?")),
346
397
 
347
- constrainedType: $ => seq($.type, "(", commaSep1($._expr), ")"),
398
+ constrainedType: $ => prec.right(
399
+ PREC.CONSTRAINED_TYPE,
400
+ seq(
401
+ $._type,
402
+ alias($._open_argument_paren, '('),
403
+ commaSep1($._expr),
404
+ ")"
405
+ )
406
+ ),
348
407
 
349
- unionType: $ => prec.left(PREC.UNION_TYPE, seq($.type, "|", $.type)),
408
+ unionType: $ => prec.left(PREC.UNION_TYPE, seq($._type, "|", $._type)),
350
409
 
351
- unionDefaultType: $ => prec(PREC.UNION_DEFAULT_TYPE, seq("*", $.type)),
410
+ defaultUnionType: $ => prec.left(PREC.UNION_DEFAULT_TYPE, seq("*", $._type)),
352
411
 
353
- functionLiteralType: $ => prec(PREC.FUN_TYPE, seq("(", commaSep($.type), ")", "->", $.type)),
412
+ functionLiteralType: $ => prec(PREC.FUN_TYPE, seq("(", commaSep($._type), ")", "->", $._type)),
354
413
 
355
414
  typeArgumentList: $ => seq(
356
415
  "<",
357
- commaSep1($.type),
416
+ commaSep1($._type),
358
417
  ">"
359
418
  ),
360
419
 
@@ -371,10 +430,16 @@ module.exports = grammar({
371
430
 
372
431
  parameterList: $ => seq(
373
432
  '(',
374
- commaSep($.typedIdentifier),
433
+ commaSep($._parameter),
375
434
  ')'
376
435
  ),
377
436
 
437
+ _parameter: $ => choice($.typedIdentifier, $.blankIdentifier),
438
+
439
+ typedIdentifier: $ => seq($.identifier, optional($.typeAnnotation)),
440
+
441
+ blankIdentifier: $ => "_",
442
+
378
443
  argumentList: $ => seq(
379
444
  alias($._open_argument_paren, '('),
380
445
  commaSep($._expr),
@@ -392,48 +457,45 @@ module.exports = grammar({
392
457
  ),
393
458
 
394
459
  _expr: $ => choice(
395
- $.variableExpr,
396
- $.variableObjectLiteral,
397
- $._expr2
398
- ),
399
-
400
- variableObjectLiteral: $ => prec(PREC.VAR_OBJ_LITERAL, seq(
401
- $.identifier,
402
- $.objectBody
403
- )),
404
-
405
- _expr2: $ => choice(
406
- $.parenthesizedExpr,
407
460
  $.thisExpr,
408
461
  $.outerExpr,
409
462
  $.moduleExpr,
410
- $.nullLiteral,
411
- $.trueLiteral,
412
- $.falseLiteral,
413
- $.intLiteral,
414
- $.floatLiteral,
415
- $.slStringLiteral,
416
- $.mlStringLiteral,
463
+ $.nullLiteralExpr,
464
+ $.trueLiteralExpr,
465
+ $.falseLiteralExpr,
466
+ $.intLiteralExpr,
467
+ $.floatLiteralExpr,
468
+ $.throwExpr,
469
+ $.traceExpr,
470
+ $.importExpr,
471
+ $.readExpr,
472
+ $.unqualifiedAccessExpr,
473
+ $.slStringLiteralExpr,
474
+ $.mlStringLiteralExpr,
417
475
  $.newExpr,
418
- $.objectLiteral,
419
- $.methodCallExpr,
420
- $.propertyCallExpr,
476
+ $.amendExpr,
477
+ $.superAccessExpr,
478
+ $.superSubscriptExpr,
479
+ $.qualifiedAccessExpr,
421
480
  $.subscriptExpr,
422
- $.unaryExpr,
423
- $.binaryExpr,
424
- $.binaryExprRightAssoc,
425
- $.isExpr,
426
- $.asExpr,
481
+ $.nonNullExpr,
482
+ $.unaryMinusExpr,
483
+ $.logicalNotExpr,
484
+ $.exponentiationExpr,
485
+ $.multiplicativeExpr,
486
+ $.additiveExpr,
487
+ $.comparisonExpr,
488
+ $.typeTestExpr,
489
+ $.typeCastExpr,
490
+ $.equalityExpr,
491
+ $.logicalAndExpr,
492
+ $.logicalOrExpr,
493
+ $.pipeExpr,
494
+ $.nullCoalesceExpr,
427
495
  $.ifExpr,
428
496
  $.letExpr,
429
- $.throwExpr,
430
- $.traceExpr,
431
- $.readExpr,
432
- $.readOrNullExpr,
433
- $.readGlobExpr,
434
- $.importExpr,
435
- $.importGlobExpr,
436
- $.functionLiteral
497
+ $.functionLiteralExpr,
498
+ $.parenthesizedExpr,
437
499
  ),
438
500
 
439
501
  parenthesizedExpr: $ => seq("(", $._expr, ")"),
@@ -444,15 +506,13 @@ module.exports = grammar({
444
506
 
445
507
  moduleExpr: $ => "module",
446
508
 
447
- variableExpr: $ => $.identifier,
509
+ nullLiteralExpr: $ => "null",
448
510
 
449
- nullLiteral: $ => "null",
511
+ trueLiteralExpr: $ => "true",
450
512
 
451
- trueLiteral: $ => "true",
513
+ falseLiteralExpr: $ => "false",
452
514
 
453
- falseLiteral: $ => "false",
454
-
455
- intLiteral: $ => {
515
+ intLiteralExpr: $ => {
456
516
  return token(choice(
457
517
  decimalLiteral,
458
518
  seq('0x', /[\da-fA-F]/, /[\da-fA-F_]*/),
@@ -461,7 +521,7 @@ module.exports = grammar({
461
521
  ))
462
522
  },
463
523
 
464
- floatLiteral: $ => {
524
+ floatLiteralExpr: $ => {
465
525
  const exponent = seq(choice('e', 'E'), optional(choice('+', '-')), decimalLiteral)
466
526
  return token(choice(
467
527
  seq(optional(decimalLiteral), '.', decimalLiteral, optional(exponent)),
@@ -488,13 +548,13 @@ module.exports = grammar({
488
548
  )
489
549
  ),
490
550
 
491
- slStringLiteral: $ => choice(
551
+ slStringLiteralExpr: $ => choice(
492
552
  seq(
493
553
  '"',
494
554
  repeat(choice(
495
555
  $.slStringLiteralPart,
496
556
  $.escapeSequence,
497
- $.interpolationExpr,
557
+ $.stringInterpolation,
498
558
  )),
499
559
  '"'
500
560
  ),
@@ -503,7 +563,7 @@ module.exports = grammar({
503
563
  repeat(choice(
504
564
  alias($.slStringLiteralPart1, $.slStringLiteralPart),
505
565
  alias($.escapeSequence1, $.escapeSequence),
506
- alias($.interpolationExpr1, $.interpolationExpr)
566
+ alias($.stringInterpolation1, $.stringInterpolation)
507
567
  )),
508
568
  '"#'
509
569
  ),
@@ -512,7 +572,7 @@ module.exports = grammar({
512
572
  repeat(choice(
513
573
  alias($.slStringLiteralPart2, $.slStringLiteralPart),
514
574
  alias($.escapeSequence2, $.escapeSequence),
515
- alias($.interpolationExpr2, $.interpolationExpr)
575
+ alias($.stringInterpolation2, $.stringInterpolation)
516
576
  )),
517
577
  '"##'
518
578
  ),
@@ -521,7 +581,7 @@ module.exports = grammar({
521
581
  repeat(choice(
522
582
  alias($.slStringLiteralPart3, $.slStringLiteralPart),
523
583
  alias($.escapeSequence3, $.escapeSequence),
524
- alias($.interpolationExpr3, $.interpolationExpr)
584
+ alias($.stringInterpolation3, $.stringInterpolation)
525
585
  )),
526
586
  '"###'
527
587
  ),
@@ -530,7 +590,7 @@ module.exports = grammar({
530
590
  repeat(choice(
531
591
  alias($.slStringLiteralPart4, $.slStringLiteralPart),
532
592
  alias($.escapeSequence4, $.escapeSequence),
533
- alias($.interpolationExpr4, $.interpolationExpr)
593
+ alias($.stringInterpolation4, $.stringInterpolation)
534
594
  )),
535
595
  '"####'
536
596
  ),
@@ -539,7 +599,7 @@ module.exports = grammar({
539
599
  repeat(choice(
540
600
  alias($.slStringLiteralPart5, $.slStringLiteralPart),
541
601
  alias($.escapeSequence5, $.escapeSequence),
542
- alias($.interpolationExpr5, $.interpolationExpr)
602
+ alias($.stringInterpolation5, $.stringInterpolation)
543
603
  )),
544
604
  '"#####'
545
605
  ),
@@ -548,7 +608,7 @@ module.exports = grammar({
548
608
  repeat(choice(
549
609
  alias($.slStringLiteralPart6, $.slStringLiteralPart),
550
610
  alias($.escapeSequence6, $.escapeSequence),
551
- alias($.interpolationExpr6, $.interpolationExpr)
611
+ alias($.stringInterpolation6, $.stringInterpolation)
552
612
  )),
553
613
  '"######'
554
614
  ),
@@ -568,13 +628,13 @@ module.exports = grammar({
568
628
 
569
629
  slStringLiteralPart6: $ => $._sl6_string_chars,
570
630
 
571
- mlStringLiteral: $ => choice(
631
+ mlStringLiteralExpr: $ => choice(
572
632
  seq(
573
633
  '"""',
574
634
  repeat(choice(
575
635
  $.mlStringLiteralPart,
576
636
  $.escapeSequence,
577
- $.interpolationExpr
637
+ $.stringInterpolation
578
638
  )),
579
639
  '"""'
580
640
  ),
@@ -583,7 +643,7 @@ module.exports = grammar({
583
643
  repeat(choice(
584
644
  alias($.mlStringLiteralPart1, $.mlStringLiteralPart),
585
645
  alias($.escapeSequence1, $.escapeSequence),
586
- alias($.interpolationExpr1, $.interpolationExpr)
646
+ alias($.stringInterpolation1, $.stringInterpolation)
587
647
  )),
588
648
  '"""#'
589
649
  ),
@@ -592,7 +652,7 @@ module.exports = grammar({
592
652
  repeat(choice(
593
653
  alias($.mlStringLiteralPart2, $.mlStringLiteralPart),
594
654
  alias($.escapeSequence2, $.escapeSequence),
595
- alias($.interpolationExpr2, $.interpolationExpr)
655
+ alias($.stringInterpolation2, $.stringInterpolation)
596
656
  )),
597
657
  '"""##'
598
658
  ),
@@ -601,7 +661,7 @@ module.exports = grammar({
601
661
  repeat(choice(
602
662
  alias($.mlStringLiteralPart3, $.mlStringLiteralPart),
603
663
  alias($.escapeSequence3, $.escapeSequence),
604
- alias($.interpolationExpr3, $.interpolationExpr)
664
+ alias($.stringInterpolation3, $.stringInterpolation)
605
665
  )),
606
666
  '"""###'
607
667
  ),
@@ -610,7 +670,7 @@ module.exports = grammar({
610
670
  repeat(choice(
611
671
  alias($.mlStringLiteralPart4, $.mlStringLiteralPart),
612
672
  alias($.escapeSequence4, $.escapeSequence),
613
- alias($.interpolationExpr4, $.interpolationExpr)
673
+ alias($.stringInterpolation4, $.stringInterpolation)
614
674
  )),
615
675
  '"""####'
616
676
  ),
@@ -619,7 +679,7 @@ module.exports = grammar({
619
679
  repeat(choice(
620
680
  alias($.mlStringLiteralPart5, $.mlStringLiteralPart),
621
681
  alias($.escapeSequence5, $.escapeSequence),
622
- alias($.interpolationExpr5, $.interpolationExpr)
682
+ alias($.stringInterpolation5, $.stringInterpolation)
623
683
  )),
624
684
  '"""#####'
625
685
  ),
@@ -628,7 +688,7 @@ module.exports = grammar({
628
688
  repeat(choice(
629
689
  alias($.mlStringLiteralPart6, $.mlStringLiteralPart),
630
690
  alias($.escapeSequence6, $.escapeSequence),
631
- alias($.interpolationExpr6, $.interpolationExpr)
691
+ alias($.stringInterpolation6, $.stringInterpolation)
632
692
  )),
633
693
  '"""######'
634
694
  ),
@@ -652,7 +712,7 @@ module.exports = grammar({
652
712
  '\\',
653
713
  choice(
654
714
  /[tnr\\"]/,
655
- /u\{[0-9a-fA-F]+\}/
715
+ /u\{[0-9a-fA-F]+}/
656
716
  )
657
717
  )),
658
718
 
@@ -660,7 +720,7 @@ module.exports = grammar({
660
720
  '\\#',
661
721
  choice(
662
722
  /[tnr\\"]/,
663
- /u\{[0-9a-fA-F]+\}/
723
+ /u\{[0-9a-fA-F]+}/
664
724
  )
665
725
  )),
666
726
 
@@ -668,7 +728,7 @@ module.exports = grammar({
668
728
  '\\##',
669
729
  choice(
670
730
  /[tnr\\"]/,
671
- /u\{[0-9a-fA-F]+\}/
731
+ /u\{[0-9a-fA-F]+}/
672
732
  )
673
733
  )),
674
734
 
@@ -676,7 +736,7 @@ module.exports = grammar({
676
736
  '\\###',
677
737
  choice(
678
738
  /[tnr\\"]/,
679
- /u\{[0-9a-fA-F]+\}/
739
+ /u\{[0-9a-fA-F]+}/
680
740
  )
681
741
  )),
682
742
 
@@ -684,7 +744,7 @@ module.exports = grammar({
684
744
  '\\####',
685
745
  choice(
686
746
  /[tnr\\"]/,
687
- /u\{[0-9a-fA-F]+\}/
747
+ /u\{[0-9a-fA-F]+}/
688
748
  )
689
749
  )),
690
750
 
@@ -692,7 +752,7 @@ module.exports = grammar({
692
752
  '\\#####',
693
753
  choice(
694
754
  /[tnr\\"]/,
695
- /u\{[0-9a-fA-F]+\}/
755
+ /u\{[0-9a-fA-F]+}/
696
756
  )
697
757
  )),
698
758
 
@@ -700,125 +760,95 @@ module.exports = grammar({
700
760
  '\\######',
701
761
  choice(
702
762
  /[tnr\\"]/,
703
- /u\{[0-9a-fA-F]+\}/
763
+ /u\{[0-9a-fA-F]+}/
704
764
  )
705
765
  )),
706
766
 
707
- interpolationExpr: $ => seq(token.immediate("\\("), $._expr, ")"),
767
+ stringInterpolation: $ => seq(token.immediate("\\("), $._expr, ")"),
708
768
 
709
- interpolationExpr1: $ => seq(token.immediate("\\#("), $._expr, ")"),
769
+ stringInterpolation1: $ => seq(token.immediate("\\#("), $._expr, ")"),
710
770
 
711
- interpolationExpr2: $ => seq(token.immediate("\\##("), $._expr, ")"),
771
+ stringInterpolation2: $ => seq(token.immediate("\\##("), $._expr, ")"),
712
772
 
713
- interpolationExpr3: $ => seq(token.immediate("\\###("), $._expr, ")"),
773
+ stringInterpolation3: $ => seq(token.immediate("\\###("), $._expr, ")"),
714
774
 
715
- interpolationExpr4: $ => seq(token.immediate("\\####("), $._expr, ")"),
775
+ stringInterpolation4: $ => seq(token.immediate("\\####("), $._expr, ")"),
716
776
 
717
- interpolationExpr5: $ => seq(token.immediate("\\#####("), $._expr, ")"),
777
+ stringInterpolation5: $ => seq(token.immediate("\\#####("), $._expr, ")"),
718
778
 
719
- interpolationExpr6: $ => seq(token.immediate("\\######("), $._expr, ")"),
779
+ stringInterpolation6: $ => seq(token.immediate("\\######("), $._expr, ")"),
720
780
 
721
- newExpr: $ => seq("new", optional($.type), $.objectBody),
781
+ newExpr: $ => seq("new", optional($._type), $.objectBody),
722
782
 
723
- objectLiteral: $ => prec(PREC.OBJ_LITERAL, seq($._expr2, $.objectBody)),
783
+ amendExpr: $ => prec(PREC.AMEND_EXPR, seq(field("parent", choice($.newExpr, $.amendExpr, $.parenthesizedExpr)), $.objectBody)),
724
784
 
725
- methodCallExpr: $ => seq(
726
- optional(
727
- seq(
728
- field("receiver", choice("super", $._expr)),
729
- choice(".", "?.")
730
- )
731
- ),
732
- $.identifier,
733
- $.argumentList
734
- ),
785
+ subscriptExpr: $ => prec.left(PREC.ACCESS, seq(field("receiver", $._expr), alias($._open_subscript_bracket, "["), $._expr, "]")),
735
786
 
736
- propertyCallExpr: $ => seq(
737
- field("receiver", choice("super", $._expr)),
738
- choice(".", "?."),
739
- // allow newline as a possible token because tree-sitter otherwise doesn't handle error recovery correctly.
740
- // E.g.
741
- // This gets parsed as a single class property, where `bar.baz { foo = bar }` is the property's value
742
- // ```
743
- // foo = bar.
744
- // baz { foo = bar }
745
- // ```
746
- //
747
- // This gets parsed as two class properties; `foo = bar.typealias` and `Baz = String`
748
- // ```
749
- // foo = bar.
750
- //
751
- // typealias Baz = String
752
- // ```
753
- choice($.identifier, field("err", "\n"))
754
- ),
755
-
756
- subscriptExpr: $ => seq(field("receiver", choice("super", $._expr)), alias($._open_subscript_bracket, "["), $._expr, "]"),
757
-
758
- unaryExpr: $ => choice(
759
- prec.left(PREC.NEG, seq($._expr, '!!')),
760
- prec.left(PREC.NEG, seq('-', $._expr)),
761
- prec.left(PREC.NOT, seq('!', $._expr)),
762
- ),
763
-
764
- binaryExprRightAssoc: $ => choice(...[
765
- ['**', PREC.EXP],
766
- ['??', PREC.COALESCE]
767
- ].map(([operator, precedence]) =>
768
- prec.right(precedence, seq($._expr, field('operator', operator), $._expr))
769
- )),
787
+ unaryMinusExpr: $ => prec.left(PREC.NEG, seq('-', $._expr)),
770
788
 
771
- binaryExpr: $ => choice(...[
772
- ['*', PREC.MUL],
773
- ['/', PREC.MUL],
774
- ['~/', PREC.MUL],
775
- ['%', PREC.MUL],
776
- ['+', PREC.ADD],
777
- ['-', PREC.ADD],
778
- ['<', PREC.REL],
779
- ['<=', PREC.REL],
780
- ['>=', PREC.REL],
781
- ['>', PREC.REL],
782
- ['==', PREC.EQ],
783
- ['!=', PREC.EQ],
784
- ['&&', PREC.AND],
785
- ['||', PREC.OR],
786
- ['|>', PREC.PIPE]
787
- ].map(([operator, precedence]) =>
788
- prec.left(precedence, seq($._expr, field('operator', operator), $._expr))
789
- )),
789
+ logicalNotExpr: $ => prec.left(PREC.NOT, seq('!', $._expr)),
790
+
791
+ nonNullExpr: $ => prec.left(PREC.NON_NULL, seq($._expr, "!!")),
792
+
793
+ nullCoalesceExpr: $ => prec.right(PREC.COALESCE, seq($._expr, field('operator', '??'), $._expr)),
794
+
795
+ exponentiationExpr: $ => prec.right(PREC.EXP, seq($._expr, field('operator', '**'), $._expr)),
796
+
797
+ multiplicativeExpr: $ => prec.left(PREC.MUL, seq($._expr, field('operator', choice("*", "/", "~/", "%")), $._expr)),
798
+
799
+ additiveExpr: $ => prec.left(PREC.ADD, seq($._expr, field('operator', choice("+", alias($._binary_minus, "-"))), $._expr)),
800
+
801
+ comparisonExpr: $ => prec.left(PREC.REL, seq($._expr, field('operator', choice("<", "<=", ">=", ">")), $._expr)),
790
802
 
791
- isExpr: $ => prec(PREC.IS, seq($._expr, "is", $.type)),
803
+ equalityExpr: $ => prec.left(PREC.EQ, seq($._expr, field('operator', choice("==", "!=")), $._expr)),
792
804
 
793
- asExpr: $ => prec(PREC.IS, seq($._expr, "as", $.type)),
805
+ logicalAndExpr: $ => prec.left(PREC.AND, seq($._expr, field('operator', "&&"), $._expr)),
806
+
807
+ logicalOrExpr: $ => prec.left(PREC.OR, seq($._expr, field('operator', "||"), $._expr)),
808
+
809
+ pipeExpr: $ => prec.left(PREC.PIPE, seq($._expr, field('operator', "|>"), $._expr)),
810
+
811
+ typeTestExpr: $ => prec(PREC.IS, seq($._expr, field("operator", "is"), $._type)),
812
+
813
+ typeCastExpr: $ => prec(PREC.AS, seq($._expr, field("operator", "as"), $._type)),
794
814
 
795
815
  ifExpr: $ => prec(PREC.IF, seq("if", "(", $._expr, ")", $._expr, "else", $._expr)),
796
816
 
797
- letExpr: $ => prec(PREC.LET, seq("let", "(", $.typedIdentifier, "=", $._expr, ")", $._expr)),
817
+ letExpr: $ => prec(PREC.LET, seq("let", "(", $._parameter, "=", $._expr, ")", $._expr)),
798
818
 
799
- throwExpr: $ => prec(PREC.THROW, seq("throw", $._expr)),
819
+ throwExpr: $ => prec(PREC.THROW, seq("throw", '(', $._expr, ')')),
800
820
 
801
- traceExpr: $ => prec(PREC.TRACE, seq("trace", $._expr)),
821
+ traceExpr: $ => prec(PREC.TRACE, seq("trace", '(', $._expr, ')')),
802
822
 
803
- readExpr: $ => prec(PREC.READ, seq("read", $._expr)),
823
+ readExpr: $ => prec(PREC.READ, seq(field("variant", choice("read", "read?", "read*")), '(', $._expr, ')')),
804
824
 
805
- readOrNullExpr: $ => prec(PREC.READ_OR_NULL, seq("read?", $._expr)),
825
+ importExpr: $ => seq(field("variant", choice("import", "import*")), seq('(', $.stringConstant, ')')),
806
826
 
807
- readGlobExpr: $ => prec(PREC.READ_GLOB, seq("read*", $._expr)),
827
+ unqualifiedAccessExpr: $ => seq($.identifier, optional($.argumentList)),
808
828
 
809
- importExpr: $ => seq("import", seq('(', $.stringConstant, ')')),
829
+ superAccessExpr: $ => prec.left(PREC.ACCESS, seq("super", ".", $.identifier, optional($.argumentList))),
810
830
 
811
- importGlobExpr: $ => seq("import*", seq('(', $.stringConstant, ')')),
831
+ superSubscriptExpr: $ => prec.left(PREC.ACCESS, seq("super", alias($._open_subscript_bracket, "["), $._expr, "]")),
812
832
 
813
- functionLiteral: $ => prec(PREC.FUN, seq($.parameterList, "->", $._expr)),
833
+ qualifiedAccessExpr: $ => prec.left(
834
+ PREC.ACCESS,
835
+ seq(
836
+ field("receiver", $._expr),
837
+ choice(".", "?."),
838
+ seq(
839
+ $.identifier,
840
+ optional($.argumentList)
841
+ ),
842
+ )
843
+ ),
844
+
845
+ functionLiteralExpr: $ => prec(PREC.FUN, seq($.parameterList, "->", $._expr)),
814
846
 
815
847
  qualifiedIdentifier: $ => seq(
816
848
  $.identifier,
817
849
  repeat(seq(".", $.identifier)),
818
850
  ),
819
851
 
820
- typedIdentifier: $ => seq($.identifier, optional($.typeAnnotation)),
821
-
822
852
  // TODO: adapt to pkl
823
853
  identifier: $ => {
824
854
  const alpha = /[^\s0-9:;`"'@#.,|^&<=>+\-*/\\%?!~()\[\]{}\uFEFF\u2060\u200B\u00A0]/
@@ -842,7 +872,7 @@ module.exports = grammar({
842
872
  '/*',
843
873
  /[^*]*\*+([^/*][^*]*\*+)*/,
844
874
  '/'
845
- ))
875
+ )),
846
876
  }
847
877
  });
848
878