@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 +18 -4
- package/CMakeLists.txt +1 -1
- package/Cargo.lock +21 -21
- package/Cargo.toml +1 -1
- package/MAINTAINERS.adoc +1 -0
- package/Makefile +1 -1
- package/SECURITY.adoc +1 -1
- package/go.mod +2 -0
- package/go.sum +36 -0
- package/grammar.js +16 -16
- package/package.json +1 -1
- package/pyproject.toml +1 -1
- package/src/grammar.json +114 -31
- package/src/parser.c +29116 -25595
- package/src/scanner.c +1 -1
- package/test/corpus/expr/typeTest.txt +11 -0
- package/test/corpus/object/objectBodyParams.txt +30 -7
- package/test/corpus/snippetTests/classes/class5.txt +131 -0
- package/test/corpus/snippetTests/classes/constraints15.txt +26 -0
- package/test/corpus/snippetTests/classes/functions5.txt +141 -0
- package/tree-sitter.json +4 -1
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 (
|
|
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
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 =
|
|
3
|
+
version = 3
|
|
4
4
|
|
|
5
5
|
[[package]]
|
|
6
6
|
name = "aho-corasick"
|
|
7
|
-
version = "1.1.
|
|
7
|
+
version = "1.1.2"
|
|
8
8
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
9
|
-
checksum = "
|
|
9
|
+
checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
|
|
10
10
|
dependencies = [
|
|
11
11
|
"memchr",
|
|
12
12
|
]
|
|
13
13
|
|
|
14
14
|
[[package]]
|
|
15
15
|
name = "cc"
|
|
16
|
-
version = "1.
|
|
16
|
+
version = "1.0.83"
|
|
17
17
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
18
|
-
checksum = "
|
|
18
|
+
checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
|
|
19
19
|
dependencies = [
|
|
20
|
-
"
|
|
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.
|
|
31
|
+
version = "2.7.1"
|
|
26
32
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
27
|
-
checksum = "
|
|
33
|
+
checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
|
|
28
34
|
|
|
29
35
|
[[package]]
|
|
30
36
|
name = "regex"
|
|
31
|
-
version = "1.
|
|
37
|
+
version = "1.10.2"
|
|
32
38
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
33
|
-
checksum = "
|
|
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.
|
|
49
|
+
version = "0.4.3"
|
|
44
50
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
45
|
-
checksum = "
|
|
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.
|
|
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 = "
|
|
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.
|
|
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.
|
|
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
package/Makefile
CHANGED
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
|
|
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
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
|
-
|
|
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: $ =>
|
|
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
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.
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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":
|
|
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": "
|
|
4018
|
-
"
|
|
4019
|
-
|
|
4020
|
-
|
|
4021
|
-
|
|
4022
|
-
|
|
4023
|
-
|
|
4024
|
-
|
|
4025
|
-
|
|
4026
|
-
|
|
4027
|
-
"
|
|
4028
|
-
|
|
4029
|
-
|
|
4030
|
-
|
|
4031
|
-
|
|
4032
|
-
|
|
4033
|
-
|
|
4034
|
-
|
|
4035
|
-
|
|
4036
|
-
|
|
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": [],
|