@apple/tree-sitter-pkl 0.18.0 → 0.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.adoc CHANGED
@@ -1,7 +1,22 @@
1
1
  = Changelog
2
2
 
3
+ [[release-0.19.0]]
4
+ == 0.19.0 (2025-10-30)
5
+
6
+ === Additions
7
+
8
+ * Allow trailing commas in comma-separated syntax elements (https://github.com/apple/tree-sitter-pkl/pull/45[#45]).
9
+
10
+ [[release-0.18.1]]
11
+ == 0.18.1 (2025-04-07)
12
+
13
+ === Fixes
14
+
15
+ * Fix an issue where the project fails to be used as a Go library (https://github.com/apple/tree-sitter-pkl/pull/38[#38]).
16
+ * Fix an issue where qualified identifiers are parsed incorrectly in some cases (https://github.com/apple/tree-sitter-pkl/pull/39[#39]).
17
+
3
18
  [[release-0.18.0]]
4
- == 0.18.0 (2024-03-27)
19
+ == 0.18.0 (2025-03-27)
5
20
 
6
21
  This is a large change.
7
22
  It changes the parse tree to match other Pkl parsers, and also fixes all known parser issues.
@@ -67,8 +82,7 @@ It changes the parse tree to match other Pkl parsers, and also fixes all known p
67
82
 
68
83
  === Fixes
69
84
 
70
- * Fix parsing of parenthesized expressions in object
71
- elements
85
+ * Fix parsing of parenthesized expressions in object elements
72
86
  * Fix parsing of union types with default markers
73
87
  * Add missing `else` in when generators
74
88
  * Add missing module type
@@ -85,4 +99,4 @@ Thanks to all the contributors for this release!
85
99
  [[release-0.16.0]]
86
100
  == 0.16.0 (2024-02-02)
87
101
 
88
- Initial release
102
+ Initial release
package/CMakeLists.txt CHANGED
@@ -1,7 +1,7 @@
1
1
  cmake_minimum_required(VERSION 3.13)
2
2
 
3
3
  project(tree-sitter-pkl
4
- VERSION "0.18.0"
4
+ VERSION "0.19.0"
5
5
  DESCRIPTION "Parser for Pkl programming language"
6
6
  HOMEPAGE_URL "https://github.com/apple/tree-sitter-pkl"
7
7
  LANGUAGES C)
package/Cargo.lock CHANGED
@@ -1,36 +1,42 @@
1
1
  # This file is automatically @generated by Cargo.
2
2
  # It is not intended for manual editing.
3
- version = 4
3
+ version = 3
4
4
 
5
5
  [[package]]
6
6
  name = "aho-corasick"
7
- version = "1.1.3"
7
+ version = "1.1.2"
8
8
  source = "registry+https://github.com/rust-lang/crates.io-index"
9
- checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
9
+ checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
10
10
  dependencies = [
11
11
  "memchr",
12
12
  ]
13
13
 
14
14
  [[package]]
15
15
  name = "cc"
16
- version = "1.2.14"
16
+ version = "1.0.83"
17
17
  source = "registry+https://github.com/rust-lang/crates.io-index"
18
- checksum = "0c3d1b2e905a3a7b00a6141adb0e4c0bb941d11caf55349d863942a1cc44e3c9"
18
+ checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
19
19
  dependencies = [
20
- "shlex",
20
+ "libc",
21
21
  ]
22
22
 
23
+ [[package]]
24
+ name = "libc"
25
+ version = "0.2.152"
26
+ source = "registry+https://github.com/rust-lang/crates.io-index"
27
+ checksum = "13e3bf6590cbc649f4d1a3eefc9d5d6eb746f5200ffb04e5e142700b8faa56e7"
28
+
23
29
  [[package]]
24
30
  name = "memchr"
25
- version = "2.7.4"
31
+ version = "2.7.1"
26
32
  source = "registry+https://github.com/rust-lang/crates.io-index"
27
- checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3"
33
+ checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
28
34
 
29
35
  [[package]]
30
36
  name = "regex"
31
- version = "1.11.1"
37
+ version = "1.10.2"
32
38
  source = "registry+https://github.com/rust-lang/crates.io-index"
33
- checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191"
39
+ checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
34
40
  dependencies = [
35
41
  "aho-corasick",
36
42
  "memchr",
@@ -40,9 +46,9 @@ dependencies = [
40
46
 
41
47
  [[package]]
42
48
  name = "regex-automata"
43
- version = "0.4.9"
49
+ version = "0.4.3"
44
50
  source = "registry+https://github.com/rust-lang/crates.io-index"
45
- checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908"
51
+ checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
46
52
  dependencies = [
47
53
  "aho-corasick",
48
54
  "memchr",
@@ -51,15 +57,9 @@ dependencies = [
51
57
 
52
58
  [[package]]
53
59
  name = "regex-syntax"
54
- version = "0.8.5"
55
- source = "registry+https://github.com/rust-lang/crates.io-index"
56
- checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c"
57
-
58
- [[package]]
59
- name = "shlex"
60
- version = "1.3.0"
60
+ version = "0.8.2"
61
61
  source = "registry+https://github.com/rust-lang/crates.io-index"
62
- checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
62
+ checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
63
63
 
64
64
  [[package]]
65
65
  name = "tree-sitter"
@@ -73,7 +73,7 @@ dependencies = [
73
73
 
74
74
  [[package]]
75
75
  name = "tree-sitter-pkl"
76
- version = "0.18.0"
76
+ version = "0.19.0"
77
77
  dependencies = [
78
78
  "cc",
79
79
  "tree-sitter",
package/Cargo.toml CHANGED
@@ -1,7 +1,7 @@
1
1
  [package]
2
2
  name = "tree-sitter-pkl"
3
3
  description = "Pkl grammar for the tree-sitter parsing library"
4
- version = "0.18.0"
4
+ version = "0.19.0"
5
5
  keywords = ["incremental", "parsing", "pkl"]
6
6
  categories = ["parsing", "text-editors"]
7
7
  repository = "https://github.com/apple/tree-sitter-pkl"
package/MAINTAINERS.adoc CHANGED
@@ -8,4 +8,5 @@ See link:CONTRIBUTING.adoc[] for general contribution guidelines.
8
8
 
9
9
  * https://github.com/bioball[Daniel Chao]
10
10
  * https://github.com/stackoverflow[Islon Scherer]
11
+ * https://github.com/HT154[Jen Basch]
11
12
  * https://github.com/holzensp[Philip Hölzenspies]
package/Makefile CHANGED
@@ -4,7 +4,7 @@ endif
4
4
 
5
5
  LANGUAGE_NAME := tree-sitter-pkl
6
6
  HOMEPAGE_URL := https://github.com/apple/tree-sitter-pkl
7
- VERSION := 0.18.0
7
+ VERSION := 0.19.0
8
8
 
9
9
  # repository
10
10
  SRC_DIR := src
package/SECURITY.adoc CHANGED
@@ -4,7 +4,7 @@ For the protection of our community, the Pkl team does not disclose, discuss, or
4
4
 
5
5
  == Reporting a security vulnerability
6
6
 
7
- If you have discovered a security vulnerability within the Pkl Pantry project, please report it to us.
7
+ If you have discovered a security vulnerability within the Tree-sitter Pkl project, please report it to us.
8
8
  We welcome reports from everyone, including security researchers, developers, and users.
9
9
 
10
10
  Security vulnerabilities may be reported on the link:https://security.apple.com/submit[Report a vulnerability] form.
package/go.mod CHANGED
@@ -3,3 +3,5 @@ module github.com/apple/tree-sitter-pkl
3
3
  go 1.22
4
4
 
5
5
  require github.com/tree-sitter/go-tree-sitter v0.24.0
6
+
7
+ require github.com/mattn/go-pointer v0.0.1 // indirect
package/go.sum ADDED
@@ -0,0 +1,36 @@
1
+ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
2
+ github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
3
+ github.com/mattn/go-pointer v0.0.1 h1:n+XhsuGeVO6MEAp7xyEukFINEa+Quek5psIR/ylA6o0=
4
+ github.com/mattn/go-pointer v0.0.1/go.mod h1:2zXcozF6qYGgmsG+SeTZz3oAbFLdD3OWqnUbNvJZAlc=
5
+ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
6
+ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
7
+ github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
8
+ github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
9
+ github.com/tree-sitter/go-tree-sitter v0.24.0 h1:kRZb6aBNfcI/u0Qh8XEt3zjNVnmxTisDBN+kXK0xRYQ=
10
+ github.com/tree-sitter/go-tree-sitter v0.24.0/go.mod h1:x681iFVoLMEwOSIHA1chaLkXlroXEN7WY+VHGFaoDbk=
11
+ github.com/tree-sitter/tree-sitter-c v0.21.5-0.20240818205408-927da1f210eb h1:A8425heRM8mylnv4H58FPUiH+aYivyitre0PzxrfmWs=
12
+ github.com/tree-sitter/tree-sitter-c v0.21.5-0.20240818205408-927da1f210eb/go.mod h1:dOF6gtQiF9UwNh995T5OphYmtIypkjsp3ap7r9AN/iA=
13
+ github.com/tree-sitter/tree-sitter-cpp v0.22.4-0.20240818224355-b1a4e2b25148 h1:AfFPZwtwGN01BW1jDdqBVqscTwetvMpydqYZz57RSlc=
14
+ github.com/tree-sitter/tree-sitter-cpp v0.22.4-0.20240818224355-b1a4e2b25148/go.mod h1:Bh6U3viD57rFXRYIQ+kmiYtr+1Bx0AceypDLJJSyi9s=
15
+ github.com/tree-sitter/tree-sitter-embedded-template v0.21.1-0.20240819044651-ffbf64942c33 h1:TwqSV3qLp3tKSqirGLRHnjFk9Tc2oy57LIl+FQ4GjI4=
16
+ github.com/tree-sitter/tree-sitter-embedded-template v0.21.1-0.20240819044651-ffbf64942c33/go.mod h1:CvCKCt3v04Ufos1zZnNCelBDeCGRpPucaN8QczoUsN4=
17
+ github.com/tree-sitter/tree-sitter-go v0.21.3-0.20240818010209-8c0f0e7a6012 h1:Xvxck3tE5FW7F7bTS97iNM2ADMyCMJztVqn5HYKdJGo=
18
+ github.com/tree-sitter/tree-sitter-go v0.21.3-0.20240818010209-8c0f0e7a6012/go.mod h1:T40D0O1cPvUU/+AmiXVXy1cncYQT6wem4Z0g4SfAYvY=
19
+ github.com/tree-sitter/tree-sitter-html v0.20.5-0.20240818004741-d11201a263d0 h1:c46K6uh5Dz00zJeU9BfjXdb8I+E4RkUdfnWJpQADXFo=
20
+ github.com/tree-sitter/tree-sitter-html v0.20.5-0.20240818004741-d11201a263d0/go.mod h1:hcNt/kOJHcIcuMvouE7LJcYdeFUFbVpBJ6d4wmOA+tU=
21
+ github.com/tree-sitter/tree-sitter-java v0.21.1-0.20240824015150-576d8097e495 h1:jrt4qbJVEFs4H93/ITxygHc6u0TGqAkkate7TQ4wFSA=
22
+ github.com/tree-sitter/tree-sitter-java v0.21.1-0.20240824015150-576d8097e495/go.mod h1:oyaR7fLnRV0hT9z6qwE9GkaeTom/hTDwK3H2idcOJFc=
23
+ github.com/tree-sitter/tree-sitter-javascript v0.21.5-0.20240818005344-15887341e5b5 h1:om4X9AVg3asL8gxNJDcz4e/Wp+VpQj1PY3uJXKr6EOg=
24
+ github.com/tree-sitter/tree-sitter-javascript v0.21.5-0.20240818005344-15887341e5b5/go.mod h1:nNqgPoV/h9uYWk6kYEFdEAhNVOacpfpRW5SFmdaP4tU=
25
+ github.com/tree-sitter/tree-sitter-json v0.21.1-0.20240818005659-bdd69eb8c8a5 h1:pfV3G3k7NCKqKk8THBmyuh2zA33lgYHS3GVrzRR8ry4=
26
+ github.com/tree-sitter/tree-sitter-json v0.21.1-0.20240818005659-bdd69eb8c8a5/go.mod h1:GbMKRjLfk0H+PI7nLi1Sx5lHf5wCpLz9al8tQYSxpEk=
27
+ github.com/tree-sitter/tree-sitter-php v0.22.9-0.20240819002312-a552625b56c1 h1:ZXZMDwE+IhUtGug4Brv6NjJWUU3rfkZBKpemf6RY8/g=
28
+ github.com/tree-sitter/tree-sitter-php v0.22.9-0.20240819002312-a552625b56c1/go.mod h1:UKCLuYnJ312Mei+3cyTmGOHzn0YAnaPRECgJmHtzrqs=
29
+ github.com/tree-sitter/tree-sitter-python v0.21.1-0.20240818005537-55a9b8a4fbfb h1:EXEM82lFM7JjJb6qiKZXkpIDaCcbV2obNn82ghwj9lw=
30
+ github.com/tree-sitter/tree-sitter-python v0.21.1-0.20240818005537-55a9b8a4fbfb/go.mod h1:lXCF1nGG5Dr4J3BTS0ObN4xJCCICiSu/b+Xe/VqMV7g=
31
+ github.com/tree-sitter/tree-sitter-ruby v0.21.1-0.20240818211811-7dbc1e2d0e2d h1:fcYCvoXdcP1uRQYXqJHRy6Hec+uKScQdKVtMwK9JeCI=
32
+ github.com/tree-sitter/tree-sitter-ruby v0.21.1-0.20240818211811-7dbc1e2d0e2d/go.mod h1:T1nShQ4v5AJtozZ8YyAS4uzUtDAJj/iv4YfwXSbUHzg=
33
+ github.com/tree-sitter/tree-sitter-rust v0.21.3-0.20240818005432-2b43eafe6447 h1:o9alBu1J/WjrcTKEthYtXmdkDc5OVXD+PqlvnEZ0Lzc=
34
+ github.com/tree-sitter/tree-sitter-rust v0.21.3-0.20240818005432-2b43eafe6447/go.mod h1:1Oh95COkkTn6Ezp0vcMbvfhRP5gLeqqljR0BYnBzWvc=
35
+ gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
36
+ gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
package/grammar.js CHANGED
@@ -18,11 +18,17 @@
18
18
 
19
19
  /// <reference path="node_modules/tree-sitter-cli/dsl.d.ts" />
20
20
 
21
- /**
22
- * Operator precedences
23
- */
21
+ /** Precedences */
24
22
  const PREC = {
25
- ACCESS: 99,
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,
26
32
  NON_NULL: 21,
27
33
  NEG: 20,
28
34
  NOT: 19,
@@ -45,13 +51,6 @@ const PREC = {
45
51
  READ: -8,
46
52
  FUN: -11,
47
53
 
48
- DECLARED_TYPE: 30,
49
- CONSTRAINED_TYPE: 30,
50
- NULLABLE_TYPE: 29,
51
- UNION_DEFAULT_TYPE: 29,
52
- UNION_TYPE: 28,
53
- FUN_TYPE: 27,
54
-
55
54
  AMEND_EXPR: 1,
56
55
  OBJ_MEMBER: -2,
57
56
  };
@@ -148,6 +147,7 @@ module.exports = grammar({
148
147
 
149
148
  conflicts: $ => [
150
149
  [$.typedIdentifier, $.unqualifiedAccessExpr],
150
+ [$.qualifiedIdentifier]
151
151
  ],
152
152
 
153
153
  rules: {
@@ -389,7 +389,7 @@ module.exports = grammar({
389
389
 
390
390
  stringLiteralType: $ => $.stringConstant,
391
391
 
392
- declaredType: $ => prec.right(seq($.qualifiedIdentifier, optional($.typeArgumentList))),
392
+ declaredType: $ => prec.right(PREC.DECLARED_TYPE, seq($.qualifiedIdentifier, optional($.typeArgumentList))),
393
393
 
394
394
  parenthesizedType: $ => seq("(", $._type, ")"),
395
395
 
@@ -805,7 +805,7 @@ module.exports = grammar({
805
805
  logicalAndExpr: $ => prec.left(PREC.AND, seq($._expr, field('operator', "&&"), $._expr)),
806
806
 
807
807
  logicalOrExpr: $ => prec.left(PREC.OR, seq($._expr, field('operator', "||"), $._expr)),
808
-
808
+
809
809
  pipeExpr: $ => prec.left(PREC.PIPE, seq($._expr, field('operator', "|>"), $._expr)),
810
810
 
811
811
  typeTestExpr: $ => prec(PREC.IS, seq($._expr, field("operator", "is"), $._type)),
@@ -844,10 +844,10 @@ module.exports = grammar({
844
844
 
845
845
  functionLiteralExpr: $ => prec(PREC.FUN, seq($.parameterList, "->", $._expr)),
846
846
 
847
- qualifiedIdentifier: $ => prec.left(seq(
847
+ qualifiedIdentifier: $ => seq(
848
848
  $.identifier,
849
849
  repeat(seq(".", $.identifier)),
850
- )),
850
+ ),
851
851
 
852
852
  // TODO: adapt to pkl
853
853
  identifier: $ => {
@@ -877,7 +877,7 @@ module.exports = grammar({
877
877
  });
878
878
 
879
879
  function commaSep1 (rule) {
880
- return seq(rule, repeat(seq(',', rule)));
880
+ return seq(rule, repeat(seq(',', rule)), optional(','));
881
881
  }
882
882
 
883
883
  function commaSep (rule) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@apple/tree-sitter-pkl",
3
- "version": "0.18.0",
3
+ "version": "0.19.0",
4
4
  "description": "Pkl grammar for node-tree-sitter",
5
5
  "repository": {
6
6
  "type": "git",
package/pyproject.toml CHANGED
@@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta"
5
5
  [project]
6
6
  name = "tree-sitter-pkl"
7
7
  description = "Parser for Pkl programming language"
8
- version = "0.18.0"
8
+ version = "0.19.0"
9
9
  keywords = ["incremental", "parsing", "tree-sitter", "pkl"]
10
10
  classifiers = [
11
11
  "Intended Audience :: Developers",
package/src/grammar.json CHANGED
@@ -1055,6 +1055,18 @@
1055
1055
  }
1056
1056
  ]
1057
1057
  }
1058
+ },
1059
+ {
1060
+ "type": "CHOICE",
1061
+ "members": [
1062
+ {
1063
+ "type": "STRING",
1064
+ "value": ","
1065
+ },
1066
+ {
1067
+ "type": "BLANK"
1068
+ }
1069
+ ]
1058
1070
  }
1059
1071
  ]
1060
1072
  },
@@ -1147,7 +1159,7 @@
1147
1159
  },
1148
1160
  "declaredType": {
1149
1161
  "type": "PREC_RIGHT",
1150
- "value": 0,
1162
+ "value": 30,
1151
1163
  "content": {
1152
1164
  "type": "SEQ",
1153
1165
  "members": [
@@ -1245,6 +1257,18 @@
1245
1257
  }
1246
1258
  ]
1247
1259
  }
1260
+ },
1261
+ {
1262
+ "type": "CHOICE",
1263
+ "members": [
1264
+ {
1265
+ "type": "STRING",
1266
+ "value": ","
1267
+ },
1268
+ {
1269
+ "type": "BLANK"
1270
+ }
1271
+ ]
1248
1272
  }
1249
1273
  ]
1250
1274
  },
@@ -1328,6 +1352,18 @@
1328
1352
  }
1329
1353
  ]
1330
1354
  }
1355
+ },
1356
+ {
1357
+ "type": "CHOICE",
1358
+ "members": [
1359
+ {
1360
+ "type": "STRING",
1361
+ "value": ","
1362
+ },
1363
+ {
1364
+ "type": "BLANK"
1365
+ }
1366
+ ]
1331
1367
  }
1332
1368
  ]
1333
1369
  },
@@ -1380,6 +1416,18 @@
1380
1416
  }
1381
1417
  ]
1382
1418
  }
1419
+ },
1420
+ {
1421
+ "type": "CHOICE",
1422
+ "members": [
1423
+ {
1424
+ "type": "STRING",
1425
+ "value": ","
1426
+ },
1427
+ {
1428
+ "type": "BLANK"
1429
+ }
1430
+ ]
1383
1431
  }
1384
1432
  ]
1385
1433
  },
@@ -1418,6 +1466,18 @@
1418
1466
  }
1419
1467
  ]
1420
1468
  }
1469
+ },
1470
+ {
1471
+ "type": "CHOICE",
1472
+ "members": [
1473
+ {
1474
+ "type": "STRING",
1475
+ "value": ","
1476
+ },
1477
+ {
1478
+ "type": "BLANK"
1479
+ }
1480
+ ]
1421
1481
  }
1422
1482
  ]
1423
1483
  },
@@ -1489,6 +1549,18 @@
1489
1549
  }
1490
1550
  ]
1491
1551
  }
1552
+ },
1553
+ {
1554
+ "type": "CHOICE",
1555
+ "members": [
1556
+ {
1557
+ "type": "STRING",
1558
+ "value": ","
1559
+ },
1560
+ {
1561
+ "type": "BLANK"
1562
+ }
1563
+ ]
1492
1564
  }
1493
1565
  ]
1494
1566
  },
@@ -1578,6 +1650,18 @@
1578
1650
  }
1579
1651
  ]
1580
1652
  }
1653
+ },
1654
+ {
1655
+ "type": "CHOICE",
1656
+ "members": [
1657
+ {
1658
+ "type": "STRING",
1659
+ "value": ","
1660
+ },
1661
+ {
1662
+ "type": "BLANK"
1663
+ }
1664
+ ]
1581
1665
  }
1582
1666
  ]
1583
1667
  },
@@ -3237,7 +3321,7 @@
3237
3321
  },
3238
3322
  "subscriptExpr": {
3239
3323
  "type": "PREC_LEFT",
3240
- "value": 99,
3324
+ "value": 22,
3241
3325
  "content": {
3242
3326
  "type": "SEQ",
3243
3327
  "members": [
@@ -3880,7 +3964,7 @@
3880
3964
  },
3881
3965
  "superAccessExpr": {
3882
3966
  "type": "PREC_LEFT",
3883
- "value": 99,
3967
+ "value": 22,
3884
3968
  "content": {
3885
3969
  "type": "SEQ",
3886
3970
  "members": [
@@ -3913,7 +3997,7 @@
3913
3997
  },
3914
3998
  "superSubscriptExpr": {
3915
3999
  "type": "PREC_LEFT",
3916
- "value": 99,
4000
+ "value": 22,
3917
4001
  "content": {
3918
4002
  "type": "SEQ",
3919
4003
  "members": [
@@ -3943,7 +4027,7 @@
3943
4027
  },
3944
4028
  "qualifiedAccessExpr": {
3945
4029
  "type": "PREC_LEFT",
3946
- "value": 99,
4030
+ "value": 22,
3947
4031
  "content": {
3948
4032
  "type": "SEQ",
3949
4033
  "members": [
@@ -4014,33 +4098,29 @@
4014
4098
  }
4015
4099
  },
4016
4100
  "qualifiedIdentifier": {
4017
- "type": "PREC_LEFT",
4018
- "value": 0,
4019
- "content": {
4020
- "type": "SEQ",
4021
- "members": [
4022
- {
4023
- "type": "SYMBOL",
4024
- "name": "identifier"
4025
- },
4026
- {
4027
- "type": "REPEAT",
4028
- "content": {
4029
- "type": "SEQ",
4030
- "members": [
4031
- {
4032
- "type": "STRING",
4033
- "value": "."
4034
- },
4035
- {
4036
- "type": "SYMBOL",
4037
- "name": "identifier"
4038
- }
4039
- ]
4040
- }
4101
+ "type": "SEQ",
4102
+ "members": [
4103
+ {
4104
+ "type": "SYMBOL",
4105
+ "name": "identifier"
4106
+ },
4107
+ {
4108
+ "type": "REPEAT",
4109
+ "content": {
4110
+ "type": "SEQ",
4111
+ "members": [
4112
+ {
4113
+ "type": "STRING",
4114
+ "value": "."
4115
+ },
4116
+ {
4117
+ "type": "SYMBOL",
4118
+ "name": "identifier"
4119
+ }
4120
+ ]
4041
4121
  }
4042
- ]
4043
- }
4122
+ }
4123
+ ]
4044
4124
  },
4045
4125
  "identifier": {
4046
4126
  "type": "TOKEN",
@@ -4178,6 +4258,9 @@
4178
4258
  [
4179
4259
  "typedIdentifier",
4180
4260
  "unqualifiedAccessExpr"
4261
+ ],
4262
+ [
4263
+ "qualifiedIdentifier"
4181
4264
  ]
4182
4265
  ],
4183
4266
  "precedences": [],