diff --git a/MODULE.bazel b/MODULE.bazel index d5c2c8784e2..16b4a4691f8 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -27,7 +27,7 @@ bazel_dep(name = "abseil-cpp", version = "20260107.1", repo_name = "absl") bazel_dep(name = "nlohmann_json", version = "3.11.3", repo_name = "json") bazel_dep(name = "fmt", version = "12.1.0-codeql.1") bazel_dep(name = "rules_kotlin", version = "2.2.2-codeql.1") -bazel_dep(name = "gazelle", version = "0.47.0") +bazel_dep(name = "gazelle", version = "0.50.0") bazel_dep(name = "rules_dotnet", version = "0.21.5-codeql.1") bazel_dep(name = "googletest", version = "1.17.0.bcr.2") bazel_dep(name = "rules_rust", version = "0.69.0") diff --git a/actions/ql/lib/CHANGELOG.md b/actions/ql/lib/CHANGELOG.md index 03201c9603a..e84ba38d180 100644 --- a/actions/ql/lib/CHANGELOG.md +++ b/actions/ql/lib/CHANGELOG.md @@ -1,3 +1,13 @@ +## 0.4.34 + +### Minor Analysis Improvements + +* Removed false positive injection sink models for the `context` input of `docker/build-push-action` and the `allowed-endpoints` input of `step-security/harden-runner`. + +## 0.4.33 + +No user-facing changes. + ## 0.4.32 No user-facing changes. diff --git a/actions/ql/lib/change-notes/released/0.4.33.md b/actions/ql/lib/change-notes/released/0.4.33.md new file mode 100644 index 00000000000..99c04e352df --- /dev/null +++ b/actions/ql/lib/change-notes/released/0.4.33.md @@ -0,0 +1,3 @@ +## 0.4.33 + +No user-facing changes. diff --git a/actions/ql/lib/change-notes/released/0.4.34.md b/actions/ql/lib/change-notes/released/0.4.34.md new file mode 100644 index 00000000000..23b06db4967 --- /dev/null +++ b/actions/ql/lib/change-notes/released/0.4.34.md @@ -0,0 +1,5 @@ +## 0.4.34 + +### Minor Analysis Improvements + +* Removed false positive injection sink models for the `context` input of `docker/build-push-action` and the `allowed-endpoints` input of `step-security/harden-runner`. diff --git a/actions/ql/lib/codeql-pack.release.yml b/actions/ql/lib/codeql-pack.release.yml index 3201cd9b063..69fb16e4c39 100644 --- a/actions/ql/lib/codeql-pack.release.yml +++ b/actions/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.4.32 +lastReleaseVersion: 0.4.34 diff --git a/actions/ql/lib/ext/manual/docker_build-push-action.model.yml b/actions/ql/lib/ext/manual/docker_build-push-action.model.yml deleted file mode 100644 index 116c231c30a..00000000000 --- a/actions/ql/lib/ext/manual/docker_build-push-action.model.yml +++ /dev/null @@ -1,6 +0,0 @@ -extensions: - - addsTo: - pack: codeql/actions-all - extensible: actionsSinkModel - data: - - ["docker/build-push-action", "*", "input.context", "code-injection", "manual"] \ No newline at end of file diff --git a/actions/ql/lib/ext/manual/step-security_harden-runner.model.yml b/actions/ql/lib/ext/manual/step-security_harden-runner.model.yml deleted file mode 100644 index 129c8beb020..00000000000 --- a/actions/ql/lib/ext/manual/step-security_harden-runner.model.yml +++ /dev/null @@ -1,6 +0,0 @@ -extensions: - - addsTo: - pack: codeql/actions-all - extensible: actionsSinkModel - data: - - ["step-security/harden-runner", "*", "input.allowed-endpoints", "command-injection", "manual"] diff --git a/actions/ql/lib/qlpack.yml b/actions/ql/lib/qlpack.yml index bc4a8ba134b..6e78fc546b3 100644 --- a/actions/ql/lib/qlpack.yml +++ b/actions/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/actions-all -version: 0.4.33-dev +version: 0.4.35-dev library: true warnOnImplicitThis: true dependencies: diff --git a/actions/ql/src/CHANGELOG.md b/actions/ql/src/CHANGELOG.md index e42a19a8168..96f8d266206 100644 --- a/actions/ql/src/CHANGELOG.md +++ b/actions/ql/src/CHANGELOG.md @@ -1,3 +1,17 @@ +## 0.6.26 + +### Major Analysis Improvements + +* Fixed alert messages in `actions/artifact-poisoning/critical` and `actions/artifact-poisoning/medium` as they previously included a redundant placeholder in the alert message that would on occasion contain a long block of yml that makes the alert difficult to understand. Also improved the wording to make it clearer that it is not the artifact that is being poisoned, but instead a potentially untrusted artifact that is consumed. Finally, changed the alert location to be the source, to align more with other queries reporting an artifact (e.g. zipslip) which is more useful. + +### Minor Analysis Improvements + +* The query `actions/missing-workflow-permissions` no longer produces false positive results on reusable workflows where all callers set permissions. + +## 0.6.25 + +No user-facing changes. + ## 0.6.24 No user-facing changes. @@ -159,7 +173,7 @@ No user-facing changes. * `actions/if-expression-always-true/critical` * `actions/if-expression-always-true/high` * `actions/unnecessary-use-of-advanced-config` - + * The following query has been moved from the `code-scanning` suite to the `security-extended` suite. Any existing alerts for this query will be closed automatically unless the analysis is configured to use the `security-extended` suite. diff --git a/actions/ql/src/Security/CWE-275/MissingActionsPermissions.ql b/actions/ql/src/Security/CWE-275/MissingActionsPermissions.ql index a8bd8a5f93d..00f601fd5da 100644 --- a/actions/ql/src/Security/CWE-275/MissingActionsPermissions.ql +++ b/actions/ql/src/Security/CWE-275/MissingActionsPermissions.ql @@ -26,10 +26,23 @@ string permissionsForJob(Job job) { "{" + concat(string permission | permission = jobNeedsPermission(job) | permission, ", ") + "}" } +predicate jobHasPermissions(Job job) { + exists(job.getPermissions()) + or + exists(job.getEnclosingWorkflow().getPermissions()) + or + // The workflow is reusable and cannot be triggered in any other way; check callers + exists(ReusableWorkflow r | r = job.getEnclosingWorkflow() | + not exists(Event e | e = r.getOn().getAnEvent() | e.getName() != "workflow_call") and + forall(Job caller | caller = job.getEnclosingWorkflow().(ReusableWorkflow).getACaller() | + jobHasPermissions(caller) + ) + ) +} + from Job job, string permissions where - not exists(job.getPermissions()) and - not exists(job.getEnclosingWorkflow().getPermissions()) and + not jobHasPermissions(job) and // exists a trigger event that is not a workflow_call exists(Event e | e = job.getATriggerEvent() and diff --git a/actions/ql/src/Security/CWE-829/ArtifactPoisoningCritical.ql b/actions/ql/src/Security/CWE-829/ArtifactPoisoningCritical.ql index 24ecb4b0339..be49de830c3 100644 --- a/actions/ql/src/Security/CWE-829/ArtifactPoisoningCritical.ql +++ b/actions/ql/src/Security/CWE-829/ArtifactPoisoningCritical.ql @@ -20,6 +20,6 @@ from ArtifactPoisoningFlow::PathNode source, ArtifactPoisoningFlow::PathNode sin where ArtifactPoisoningFlow::flowPath(source, sink) and event = getRelevantEventInPrivilegedContext(sink.getNode()) -select sink.getNode(), source, sink, - "Potential artifact poisoning in $@, which may be controlled by an external user ($@).", sink, - sink.getNode().toString(), event, event.getName() +select source.getNode(), source, sink, + "Potential artifact poisoning; the artifact being consumed has contents that may be controlled by an external user ($@).", + event, event.getName() diff --git a/actions/ql/src/Security/CWE-829/ArtifactPoisoningMedium.ql b/actions/ql/src/Security/CWE-829/ArtifactPoisoningMedium.ql index d2aff7da95f..49dc856e566 100644 --- a/actions/ql/src/Security/CWE-829/ArtifactPoisoningMedium.ql +++ b/actions/ql/src/Security/CWE-829/ArtifactPoisoningMedium.ql @@ -20,6 +20,5 @@ from ArtifactPoisoningFlow::PathNode source, ArtifactPoisoningFlow::PathNode sin where ArtifactPoisoningFlow::flowPath(source, sink) and inNonPrivilegedContext(sink.getNode().asExpr()) -select sink.getNode(), source, sink, - "Potential artifact poisoning in $@, which may be controlled by an external user.", sink, - sink.getNode().toString() +select source.getNode(), source, sink, + "Potential artifact poisoning; the artifact being consumed has contents that may be controlled by an external user." diff --git a/actions/ql/src/change-notes/released/0.6.25.md b/actions/ql/src/change-notes/released/0.6.25.md new file mode 100644 index 00000000000..b9d9e69c728 --- /dev/null +++ b/actions/ql/src/change-notes/released/0.6.25.md @@ -0,0 +1,3 @@ +## 0.6.25 + +No user-facing changes. diff --git a/actions/ql/src/change-notes/released/0.6.26.md b/actions/ql/src/change-notes/released/0.6.26.md new file mode 100644 index 00000000000..8bf43e63907 --- /dev/null +++ b/actions/ql/src/change-notes/released/0.6.26.md @@ -0,0 +1,9 @@ +## 0.6.26 + +### Major Analysis Improvements + +* Fixed alert messages in `actions/artifact-poisoning/critical` and `actions/artifact-poisoning/medium` as they previously included a redundant placeholder in the alert message that would on occasion contain a long block of yml that makes the alert difficult to understand. Also improved the wording to make it clearer that it is not the artifact that is being poisoned, but instead a potentially untrusted artifact that is consumed. Finally, changed the alert location to be the source, to align more with other queries reporting an artifact (e.g. zipslip) which is more useful. + +### Minor Analysis Improvements + +* The query `actions/missing-workflow-permissions` no longer produces false positive results on reusable workflows where all callers set permissions. diff --git a/actions/ql/src/codeql-pack.release.yml b/actions/ql/src/codeql-pack.release.yml index f4aa7271ace..e83bac0046e 100644 --- a/actions/ql/src/codeql-pack.release.yml +++ b/actions/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.6.24 +lastReleaseVersion: 0.6.26 diff --git a/actions/ql/src/qlpack.yml b/actions/ql/src/qlpack.yml index 3f76a5273f1..c815afc498c 100644 --- a/actions/ql/src/qlpack.yml +++ b/actions/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/actions-queries -version: 0.6.25-dev +version: 0.6.27-dev library: false warnOnImplicitThis: true groups: [actions, queries] diff --git a/actions/ql/test/query-tests/Security/CWE-275/.github/workflows/perms11.yml b/actions/ql/test/query-tests/Security/CWE-275/.github/workflows/perms11.yml new file mode 100644 index 00000000000..717cdabc302 --- /dev/null +++ b/actions/ql/test/query-tests/Security/CWE-275/.github/workflows/perms11.yml @@ -0,0 +1,9 @@ +on: + workflow_call: + +jobs: + build: + name: Build and test + runs-on: ubuntu-latest + steps: + - uses: actions/deploy-pages diff --git a/actions/ql/test/query-tests/Security/CWE-275/.github/workflows/perms12.yml b/actions/ql/test/query-tests/Security/CWE-275/.github/workflows/perms12.yml new file mode 100644 index 00000000000..25ac1f53248 --- /dev/null +++ b/actions/ql/test/query-tests/Security/CWE-275/.github/workflows/perms12.yml @@ -0,0 +1,11 @@ +on: + workflow_dispatch: + +permissions: + contents: read + id-token: write + pages: write + +jobs: + call-workflow: + uses: ./.github/workflows/perms11.yml diff --git a/actions/ql/test/query-tests/Security/CWE-829/ArtifactPoisoningCritical.expected b/actions/ql/test/query-tests/Security/CWE-829/ArtifactPoisoningCritical.expected index 2d29cd9b79b..3c5f6bf93e9 100644 --- a/actions/ql/test/query-tests/Security/CWE-829/ArtifactPoisoningCritical.expected +++ b/actions/ql/test/query-tests/Security/CWE-829/ArtifactPoisoningCritical.expected @@ -55,21 +55,21 @@ nodes | .github/workflows/test25.yml:39:14:40:45 | ./gradlew buildScanPublishPrevious\n | semmle.label | ./gradlew buildScanPublishPrevious\n | subpaths #select -| .github/workflows/artifactpoisoning11.yml:38:11:38:77 | ./sonarcloud-data/x.py build -j$(nproc) --compiler gcc --skip-build | .github/workflows/artifactpoisoning11.yml:13:9:32:6 | Uses Step | .github/workflows/artifactpoisoning11.yml:38:11:38:77 | ./sonarcloud-data/x.py build -j$(nproc) --compiler gcc --skip-build | Potential artifact poisoning in $@, which may be controlled by an external user ($@). | .github/workflows/artifactpoisoning11.yml:38:11:38:77 | ./sonarcloud-data/x.py build -j$(nproc) --compiler gcc --skip-build | ./sonarcloud-data/x.py build -j$(nproc) --compiler gcc --skip-build | .github/workflows/artifactpoisoning11.yml:4:3:4:14 | workflow_run | workflow_run | -| .github/workflows/artifactpoisoning12.yml:38:11:38:25 | python foo/x.py | .github/workflows/artifactpoisoning12.yml:13:9:32:6 | Uses Step | .github/workflows/artifactpoisoning12.yml:38:11:38:25 | python foo/x.py | Potential artifact poisoning in $@, which may be controlled by an external user ($@). | .github/workflows/artifactpoisoning12.yml:38:11:38:25 | python foo/x.py | python foo/x.py | .github/workflows/artifactpoisoning12.yml:4:3:4:14 | workflow_run | workflow_run | -| .github/workflows/artifactpoisoning21.yml:19:14:20:21 | sh foo/cmd\n | .github/workflows/artifactpoisoning21.yml:13:9:18:6 | Uses Step | .github/workflows/artifactpoisoning21.yml:19:14:20:21 | sh foo/cmd\n | Potential artifact poisoning in $@, which may be controlled by an external user ($@). | .github/workflows/artifactpoisoning21.yml:19:14:20:21 | sh foo/cmd\n | sh foo/cmd\n | .github/workflows/artifactpoisoning21.yml:4:3:4:14 | workflow_run | workflow_run | -| .github/workflows/artifactpoisoning22.yml:18:14:18:19 | sh cmd | .github/workflows/artifactpoisoning22.yml:13:9:17:6 | Uses Step | .github/workflows/artifactpoisoning22.yml:18:14:18:19 | sh cmd | Potential artifact poisoning in $@, which may be controlled by an external user ($@). | .github/workflows/artifactpoisoning22.yml:18:14:18:19 | sh cmd | sh cmd | .github/workflows/artifactpoisoning22.yml:4:3:4:14 | workflow_run | workflow_run | -| .github/workflows/artifactpoisoning31.yml:19:14:19:22 | ./foo/cmd | .github/workflows/artifactpoisoning31.yml:13:9:15:6 | Run Step | .github/workflows/artifactpoisoning31.yml:19:14:19:22 | ./foo/cmd | Potential artifact poisoning in $@, which may be controlled by an external user ($@). | .github/workflows/artifactpoisoning31.yml:19:14:19:22 | ./foo/cmd | ./foo/cmd | .github/workflows/artifactpoisoning31.yml:4:3:4:14 | workflow_run | workflow_run | -| .github/workflows/artifactpoisoning32.yml:17:14:18:20 | ./bar/cmd\n | .github/workflows/artifactpoisoning32.yml:13:9:16:6 | Run Step | .github/workflows/artifactpoisoning32.yml:17:14:18:20 | ./bar/cmd\n | Potential artifact poisoning in $@, which may be controlled by an external user ($@). | .github/workflows/artifactpoisoning32.yml:17:14:18:20 | ./bar/cmd\n | ./bar/cmd\n | .github/workflows/artifactpoisoning32.yml:4:3:4:14 | workflow_run | workflow_run | -| .github/workflows/artifactpoisoning33.yml:17:14:18:20 | ./bar/cmd\n | .github/workflows/artifactpoisoning33.yml:13:9:16:6 | Run Step | .github/workflows/artifactpoisoning33.yml:17:14:18:20 | ./bar/cmd\n | Potential artifact poisoning in $@, which may be controlled by an external user ($@). | .github/workflows/artifactpoisoning33.yml:17:14:18:20 | ./bar/cmd\n | ./bar/cmd\n | .github/workflows/artifactpoisoning33.yml:4:3:4:14 | workflow_run | workflow_run | -| .github/workflows/artifactpoisoning34.yml:20:14:22:23 | npm install\nnpm run lint\n | .github/workflows/artifactpoisoning34.yml:13:9:16:6 | Run Step | .github/workflows/artifactpoisoning34.yml:20:14:22:23 | npm install\nnpm run lint\n | Potential artifact poisoning in $@, which may be controlled by an external user ($@). | .github/workflows/artifactpoisoning34.yml:20:14:22:23 | npm install\nnpm run lint\n | npm install\nnpm run lint\n | .github/workflows/artifactpoisoning34.yml:4:3:4:14 | workflow_run | workflow_run | -| .github/workflows/artifactpoisoning41.yml:22:14:22:22 | ./foo/cmd | .github/workflows/artifactpoisoning41.yml:13:9:21:6 | Run Step | .github/workflows/artifactpoisoning41.yml:22:14:22:22 | ./foo/cmd | Potential artifact poisoning in $@, which may be controlled by an external user ($@). | .github/workflows/artifactpoisoning41.yml:22:14:22:22 | ./foo/cmd | ./foo/cmd | .github/workflows/artifactpoisoning41.yml:4:3:4:14 | workflow_run | workflow_run | -| .github/workflows/artifactpoisoning42.yml:22:14:22:18 | ./cmd | .github/workflows/artifactpoisoning42.yml:13:9:21:6 | Run Step | .github/workflows/artifactpoisoning42.yml:22:14:22:18 | ./cmd | Potential artifact poisoning in $@, which may be controlled by an external user ($@). | .github/workflows/artifactpoisoning42.yml:22:14:22:18 | ./cmd | ./cmd | .github/workflows/artifactpoisoning42.yml:4:3:4:14 | workflow_run | workflow_run | -| .github/workflows/artifactpoisoning71.yml:17:14:18:40 | sed -f config foo.md > bar.md\n | .github/workflows/artifactpoisoning71.yml:9:9:16:6 | Uses Step | .github/workflows/artifactpoisoning71.yml:17:14:18:40 | sed -f config foo.md > bar.md\n | Potential artifact poisoning in $@, which may be controlled by an external user ($@). | .github/workflows/artifactpoisoning71.yml:17:14:18:40 | sed -f config foo.md > bar.md\n | sed -f config foo.md > bar.md\n | .github/workflows/artifactpoisoning71.yml:4:5:4:16 | workflow_run | workflow_run | -| .github/workflows/artifactpoisoning81.yml:31:14:31:27 | python test.py | .github/workflows/artifactpoisoning81.yml:28:9:31:6 | Uses Step | .github/workflows/artifactpoisoning81.yml:31:14:31:27 | python test.py | Potential artifact poisoning in $@, which may be controlled by an external user ($@). | .github/workflows/artifactpoisoning81.yml:31:14:31:27 | python test.py | python test.py | .github/workflows/artifactpoisoning81.yml:3:5:3:23 | pull_request_target | pull_request_target | -| .github/workflows/artifactpoisoning92.yml:28:9:29:6 | Uses Step | .github/actions/download-artifact-2/action.yaml:6:7:25:4 | Uses Step | .github/workflows/artifactpoisoning92.yml:28:9:29:6 | Uses Step | Potential artifact poisoning in $@, which may be controlled by an external user ($@). | .github/workflows/artifactpoisoning92.yml:28:9:29:6 | Uses Step | Uses Step | .github/workflows/artifactpoisoning92.yml:3:3:3:14 | workflow_run | workflow_run | -| .github/workflows/artifactpoisoning92.yml:29:14:29:26 | make snapshot | .github/actions/download-artifact-2/action.yaml:6:7:25:4 | Uses Step | .github/workflows/artifactpoisoning92.yml:29:14:29:26 | make snapshot | Potential artifact poisoning in $@, which may be controlled by an external user ($@). | .github/workflows/artifactpoisoning92.yml:29:14:29:26 | make snapshot | make snapshot | .github/workflows/artifactpoisoning92.yml:3:3:3:14 | workflow_run | workflow_run | -| .github/workflows/artifactpoisoning96.yml:18:14:18:24 | npm install | .github/workflows/artifactpoisoning96.yml:13:9:18:6 | Uses Step | .github/workflows/artifactpoisoning96.yml:18:14:18:24 | npm install | Potential artifact poisoning in $@, which may be controlled by an external user ($@). | .github/workflows/artifactpoisoning96.yml:18:14:18:24 | npm install | npm install | .github/workflows/artifactpoisoning96.yml:2:3:2:14 | workflow_run | workflow_run | -| .github/workflows/artifactpoisoning101.yml:17:14:19:59 | PR_NUMBER=$(./get_pull_request_number.sh pr_number.txt)\necho "PR_NUMBER=$PR_NUMBER" >> $GITHUB_OUTPUT \n | .github/workflows/artifactpoisoning101.yml:10:9:16:6 | Uses Step | .github/workflows/artifactpoisoning101.yml:17:14:19:59 | PR_NUMBER=$(./get_pull_request_number.sh pr_number.txt)\necho "PR_NUMBER=$PR_NUMBER" >> $GITHUB_OUTPUT \n | Potential artifact poisoning in $@, which may be controlled by an external user ($@). | .github/workflows/artifactpoisoning101.yml:17:14:19:59 | PR_NUMBER=$(./get_pull_request_number.sh pr_number.txt)\necho "PR_NUMBER=$PR_NUMBER" >> $GITHUB_OUTPUT \n | PR_NUMBER=$(./get_pull_request_number.sh pr_number.txt)\necho "PR_NUMBER=$PR_NUMBER" >> $GITHUB_OUTPUT \n | .github/workflows/artifactpoisoning101.yml:4:3:4:21 | pull_request_target | pull_request_target | -| .github/workflows/test18.yml:36:15:40:58 | Uses Step | .github/workflows/test18.yml:12:15:33:12 | Uses Step | .github/workflows/test18.yml:36:15:40:58 | Uses Step | Potential artifact poisoning in $@, which may be controlled by an external user ($@). | .github/workflows/test18.yml:36:15:40:58 | Uses Step | Uses Step | .github/workflows/test18.yml:3:5:3:16 | workflow_run | workflow_run | -| .github/workflows/test25.yml:39:14:40:45 | ./gradlew buildScanPublishPrevious\n | .github/workflows/test25.yml:22:9:32:6 | Uses Step: downloadBuildScan | .github/workflows/test25.yml:39:14:40:45 | ./gradlew buildScanPublishPrevious\n | Potential artifact poisoning in $@, which may be controlled by an external user ($@). | .github/workflows/test25.yml:39:14:40:45 | ./gradlew buildScanPublishPrevious\n | ./gradlew buildScanPublishPrevious\n | .github/workflows/test25.yml:2:3:2:14 | workflow_run | workflow_run | +| .github/actions/download-artifact-2/action.yaml:6:7:25:4 | Uses Step | .github/actions/download-artifact-2/action.yaml:6:7:25:4 | Uses Step | .github/workflows/artifactpoisoning92.yml:28:9:29:6 | Uses Step | Potential artifact poisoning; the artifact being consumed has contents that may be controlled by an external user ($@). | .github/workflows/artifactpoisoning92.yml:3:3:3:14 | workflow_run | workflow_run | +| .github/actions/download-artifact-2/action.yaml:6:7:25:4 | Uses Step | .github/actions/download-artifact-2/action.yaml:6:7:25:4 | Uses Step | .github/workflows/artifactpoisoning92.yml:29:14:29:26 | make snapshot | Potential artifact poisoning; the artifact being consumed has contents that may be controlled by an external user ($@). | .github/workflows/artifactpoisoning92.yml:3:3:3:14 | workflow_run | workflow_run | +| .github/workflows/artifactpoisoning11.yml:13:9:32:6 | Uses Step | .github/workflows/artifactpoisoning11.yml:13:9:32:6 | Uses Step | .github/workflows/artifactpoisoning11.yml:38:11:38:77 | ./sonarcloud-data/x.py build -j$(nproc) --compiler gcc --skip-build | Potential artifact poisoning; the artifact being consumed has contents that may be controlled by an external user ($@). | .github/workflows/artifactpoisoning11.yml:4:3:4:14 | workflow_run | workflow_run | +| .github/workflows/artifactpoisoning12.yml:13:9:32:6 | Uses Step | .github/workflows/artifactpoisoning12.yml:13:9:32:6 | Uses Step | .github/workflows/artifactpoisoning12.yml:38:11:38:25 | python foo/x.py | Potential artifact poisoning; the artifact being consumed has contents that may be controlled by an external user ($@). | .github/workflows/artifactpoisoning12.yml:4:3:4:14 | workflow_run | workflow_run | +| .github/workflows/artifactpoisoning21.yml:13:9:18:6 | Uses Step | .github/workflows/artifactpoisoning21.yml:13:9:18:6 | Uses Step | .github/workflows/artifactpoisoning21.yml:19:14:20:21 | sh foo/cmd\n | Potential artifact poisoning; the artifact being consumed has contents that may be controlled by an external user ($@). | .github/workflows/artifactpoisoning21.yml:4:3:4:14 | workflow_run | workflow_run | +| .github/workflows/artifactpoisoning22.yml:13:9:17:6 | Uses Step | .github/workflows/artifactpoisoning22.yml:13:9:17:6 | Uses Step | .github/workflows/artifactpoisoning22.yml:18:14:18:19 | sh cmd | Potential artifact poisoning; the artifact being consumed has contents that may be controlled by an external user ($@). | .github/workflows/artifactpoisoning22.yml:4:3:4:14 | workflow_run | workflow_run | +| .github/workflows/artifactpoisoning31.yml:13:9:15:6 | Run Step | .github/workflows/artifactpoisoning31.yml:13:9:15:6 | Run Step | .github/workflows/artifactpoisoning31.yml:19:14:19:22 | ./foo/cmd | Potential artifact poisoning; the artifact being consumed has contents that may be controlled by an external user ($@). | .github/workflows/artifactpoisoning31.yml:4:3:4:14 | workflow_run | workflow_run | +| .github/workflows/artifactpoisoning32.yml:13:9:16:6 | Run Step | .github/workflows/artifactpoisoning32.yml:13:9:16:6 | Run Step | .github/workflows/artifactpoisoning32.yml:17:14:18:20 | ./bar/cmd\n | Potential artifact poisoning; the artifact being consumed has contents that may be controlled by an external user ($@). | .github/workflows/artifactpoisoning32.yml:4:3:4:14 | workflow_run | workflow_run | +| .github/workflows/artifactpoisoning33.yml:13:9:16:6 | Run Step | .github/workflows/artifactpoisoning33.yml:13:9:16:6 | Run Step | .github/workflows/artifactpoisoning33.yml:17:14:18:20 | ./bar/cmd\n | Potential artifact poisoning; the artifact being consumed has contents that may be controlled by an external user ($@). | .github/workflows/artifactpoisoning33.yml:4:3:4:14 | workflow_run | workflow_run | +| .github/workflows/artifactpoisoning34.yml:13:9:16:6 | Run Step | .github/workflows/artifactpoisoning34.yml:13:9:16:6 | Run Step | .github/workflows/artifactpoisoning34.yml:20:14:22:23 | npm install\nnpm run lint\n | Potential artifact poisoning; the artifact being consumed has contents that may be controlled by an external user ($@). | .github/workflows/artifactpoisoning34.yml:4:3:4:14 | workflow_run | workflow_run | +| .github/workflows/artifactpoisoning41.yml:13:9:21:6 | Run Step | .github/workflows/artifactpoisoning41.yml:13:9:21:6 | Run Step | .github/workflows/artifactpoisoning41.yml:22:14:22:22 | ./foo/cmd | Potential artifact poisoning; the artifact being consumed has contents that may be controlled by an external user ($@). | .github/workflows/artifactpoisoning41.yml:4:3:4:14 | workflow_run | workflow_run | +| .github/workflows/artifactpoisoning42.yml:13:9:21:6 | Run Step | .github/workflows/artifactpoisoning42.yml:13:9:21:6 | Run Step | .github/workflows/artifactpoisoning42.yml:22:14:22:18 | ./cmd | Potential artifact poisoning; the artifact being consumed has contents that may be controlled by an external user ($@). | .github/workflows/artifactpoisoning42.yml:4:3:4:14 | workflow_run | workflow_run | +| .github/workflows/artifactpoisoning71.yml:9:9:16:6 | Uses Step | .github/workflows/artifactpoisoning71.yml:9:9:16:6 | Uses Step | .github/workflows/artifactpoisoning71.yml:17:14:18:40 | sed -f config foo.md > bar.md\n | Potential artifact poisoning; the artifact being consumed has contents that may be controlled by an external user ($@). | .github/workflows/artifactpoisoning71.yml:4:5:4:16 | workflow_run | workflow_run | +| .github/workflows/artifactpoisoning81.yml:28:9:31:6 | Uses Step | .github/workflows/artifactpoisoning81.yml:28:9:31:6 | Uses Step | .github/workflows/artifactpoisoning81.yml:31:14:31:27 | python test.py | Potential artifact poisoning; the artifact being consumed has contents that may be controlled by an external user ($@). | .github/workflows/artifactpoisoning81.yml:3:5:3:23 | pull_request_target | pull_request_target | +| .github/workflows/artifactpoisoning96.yml:13:9:18:6 | Uses Step | .github/workflows/artifactpoisoning96.yml:13:9:18:6 | Uses Step | .github/workflows/artifactpoisoning96.yml:18:14:18:24 | npm install | Potential artifact poisoning; the artifact being consumed has contents that may be controlled by an external user ($@). | .github/workflows/artifactpoisoning96.yml:2:3:2:14 | workflow_run | workflow_run | +| .github/workflows/artifactpoisoning101.yml:10:9:16:6 | Uses Step | .github/workflows/artifactpoisoning101.yml:10:9:16:6 | Uses Step | .github/workflows/artifactpoisoning101.yml:17:14:19:59 | PR_NUMBER=$(./get_pull_request_number.sh pr_number.txt)\necho "PR_NUMBER=$PR_NUMBER" >> $GITHUB_OUTPUT \n | Potential artifact poisoning; the artifact being consumed has contents that may be controlled by an external user ($@). | .github/workflows/artifactpoisoning101.yml:4:3:4:21 | pull_request_target | pull_request_target | +| .github/workflows/test18.yml:12:15:33:12 | Uses Step | .github/workflows/test18.yml:12:15:33:12 | Uses Step | .github/workflows/test18.yml:36:15:40:58 | Uses Step | Potential artifact poisoning; the artifact being consumed has contents that may be controlled by an external user ($@). | .github/workflows/test18.yml:3:5:3:16 | workflow_run | workflow_run | +| .github/workflows/test25.yml:22:9:32:6 | Uses Step: downloadBuildScan | .github/workflows/test25.yml:22:9:32:6 | Uses Step: downloadBuildScan | .github/workflows/test25.yml:39:14:40:45 | ./gradlew buildScanPublishPrevious\n | Potential artifact poisoning; the artifact being consumed has contents that may be controlled by an external user ($@). | .github/workflows/test25.yml:2:3:2:14 | workflow_run | workflow_run | diff --git a/cpp/ql/integration-tests/query-suite/cpp-code-scanning.qls.expected b/cpp/ql/integration-tests/query-suite/cpp-code-scanning.qls.expected index 57d240fd795..d4b80599950 100644 --- a/cpp/ql/integration-tests/query-suite/cpp-code-scanning.qls.expected +++ b/cpp/ql/integration-tests/query-suite/cpp-code-scanning.qls.expected @@ -7,10 +7,12 @@ ql/cpp/ql/src/Diagnostics/ExtractedFiles.ql ql/cpp/ql/src/Diagnostics/ExtractionWarnings.ql ql/cpp/ql/src/Diagnostics/FailedExtractorInvocations.ql ql/cpp/ql/src/Likely Bugs/Arithmetic/BadAdditionOverflowCheck.ql +ql/cpp/ql/src/Likely Bugs/Arithmetic/IntMultToLong.ql ql/cpp/ql/src/Likely Bugs/Arithmetic/SignedOverflowCheck.ql ql/cpp/ql/src/Likely Bugs/Conversion/CastArrayPointerArithmetic.ql ql/cpp/ql/src/Likely Bugs/Format/SnprintfOverflow.ql ql/cpp/ql/src/Likely Bugs/Format/WrongNumberOfFormatArguments.ql +ql/cpp/ql/src/Likely Bugs/Format/WrongTypeFormatArguments.ql ql/cpp/ql/src/Likely Bugs/Memory Management/AllocaInLoop.ql ql/cpp/ql/src/Likely Bugs/Memory Management/PointerOverflow.ql ql/cpp/ql/src/Likely Bugs/Memory Management/ReturnStackAllocatedMemory.ql @@ -28,6 +30,7 @@ ql/cpp/ql/src/Security/CWE/CWE-120/VeryLikelyOverrunWrite.ql ql/cpp/ql/src/Security/CWE/CWE-131/NoSpaceForZeroTerminator.ql ql/cpp/ql/src/Security/CWE/CWE-134/UncontrolledFormatString.ql ql/cpp/ql/src/Security/CWE/CWE-190/ArithmeticUncontrolled.ql +ql/cpp/ql/src/Security/CWE/CWE-190/ComparisonWithWiderType.ql ql/cpp/ql/src/Security/CWE/CWE-191/UnsignedDifferenceExpressionComparedZero.ql ql/cpp/ql/src/Security/CWE/CWE-253/HResultBooleanConversion.ql ql/cpp/ql/src/Security/CWE/CWE-311/CleartextFileWrite.ql @@ -40,6 +43,7 @@ ql/cpp/ql/src/Security/CWE/CWE-367/TOCTOUFilesystemRace.ql ql/cpp/ql/src/Security/CWE/CWE-416/IteratorToExpiredContainer.ql ql/cpp/ql/src/Security/CWE/CWE-416/UseOfStringAfterLifetimeEnds.ql ql/cpp/ql/src/Security/CWE/CWE-416/UseOfUniquePointerAfterLifetimeEnds.ql +ql/cpp/ql/src/Security/CWE/CWE-468/SuspiciousAddWithSizeof.ql ql/cpp/ql/src/Security/CWE/CWE-497/ExposedSystemData.ql ql/cpp/ql/src/Security/CWE/CWE-611/XXE.ql ql/cpp/ql/src/Security/CWE/CWE-676/DangerousFunctionOverflow.ql diff --git a/cpp/ql/lib/CHANGELOG.md b/cpp/ql/lib/CHANGELOG.md index 686195e9211..2cd1bcede35 100644 --- a/cpp/ql/lib/CHANGELOG.md +++ b/cpp/ql/lib/CHANGELOG.md @@ -1,3 +1,34 @@ +## 10.0.0 + +### Breaking Changes + +* The deprecated `NonThrowingFunction` class has been removed, use `NonCppThrowingFunction` instead. +* The deprecated `ThrowingFunction` class has been removed, use `AlwaysSehThrowingFunction` instead. + +### New Features + +* Added a subclass `AutoconfConfigureTestFile` of `ConfigurationTestFile` that represents files created by GNU autoconf configure scripts to test the build configuration. + +## 9.0.0 + +### Breaking Changes + +* The `SourceModelCsv`, `SinkModelCsv`, and `SummaryModelCsv` classes and the associated CSV parsing infrastructure have been removed from `ExternalFlow.qll`. New models should be added as `.model.yml` files in the `ext/` directory. + +### New Features + +* Added a subclass `MesonPrivateTestFile` of `ConfigurationTestFile` that represents files created by Meson to test the build configuration. +* Added a class `ConstructorDirectFieldInit` to represent field initializations that occur in member initializer lists. +* Added a class `ConstructorDefaultFieldInit` to represent default field initializations. +* Added a class `DataFlow::IndirectParameterNode` to represent the indirection of a parameter as a dataflow node. +* Added a predicate `Node::asIndirectInstruction` which returns the `Instruction` that defines the indirect dataflow node, if any. +* Added a class `IndirectUninitializedNode` to represent the indirection of an uninitialized local variable as a dataflow node. + +### Minor Analysis Improvements + +* Added `HttpReceiveHttpRequest`, `HttpReceiveRequestEntityBody`, and `HttpReceiveClientCertificate` from Win32's `http.h` as remote flow sources. +* Added dataflow through members initialized via non-static data member initialization (NSDMI). + ## 8.0.3 No user-facing changes. diff --git a/cpp/ql/lib/change-notes/2026-03-20-add-indirect-uninitialized-node.md b/cpp/ql/lib/change-notes/2026-03-20-add-indirect-uninitialized-node.md deleted file mode 100644 index 07235e047d4..00000000000 --- a/cpp/ql/lib/change-notes/2026-03-20-add-indirect-uninitialized-node.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: feature ---- -* Added a class `IndirectUninitializedNode` to represent the indirection of an uninitialized local variable as a dataflow node. diff --git a/cpp/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md b/cpp/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md new file mode 100644 index 00000000000..30f0092a4e9 --- /dev/null +++ b/cpp/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md @@ -0,0 +1,4 @@ +--- +category: feature +--- +* Data flow barriers and barrier guards can now be added using data extensions. For more information see [Customizing library models for C and C++](https://codeql.github.com/docs/codeql-language-guides/customizing-library-models-for-cpp/). diff --git a/cpp/ql/lib/change-notes/2026-03-23-indirect-parameter-nodes-and-indirect-instructions.md b/cpp/ql/lib/change-notes/2026-03-23-indirect-parameter-nodes-and-indirect-instructions.md deleted file mode 100644 index c3bd4028ee9..00000000000 --- a/cpp/ql/lib/change-notes/2026-03-23-indirect-parameter-nodes-and-indirect-instructions.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -category: feature ---- -* Added a class `DataFlow::IndirectParameterNode` to represent the indirection of a parameter as a dataflow node. -* Added a predicate `Node::asIndirectInstruction` which returns the `Instruction` that defines the indirect dataflow node, if any. \ No newline at end of file diff --git a/cpp/ql/lib/change-notes/2026-03-24-field-init.md b/cpp/ql/lib/change-notes/2026-03-24-field-init.md deleted file mode 100644 index c11329a3d9f..00000000000 --- a/cpp/ql/lib/change-notes/2026-03-24-field-init.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -category: feature ---- -* Added a class `ConstructorDirectFieldInit` to represent field initializations that occur in member initializer lists. -* Added a class `ConstructorDefaultFieldInit` to represent default field initializations. diff --git a/cpp/ql/lib/change-notes/2026-03-26-convert-csv-models-to-yml.md b/cpp/ql/lib/change-notes/2026-03-26-convert-csv-models-to-yml.md deleted file mode 100644 index 41d77b518f1..00000000000 --- a/cpp/ql/lib/change-notes/2026-03-26-convert-csv-models-to-yml.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: breaking ---- -* The `SourceModelCsv`, `SinkModelCsv`, and `SummaryModelCsv` classes and the associated CSV parsing infrastructure have been removed from `ExternalFlow.qll`. New models should be added as `.model.yml` files in the `ext/` directory. diff --git a/cpp/ql/lib/change-notes/2026-03-30-nsdmi-dataflow.md b/cpp/ql/lib/change-notes/2026-03-30-nsdmi-dataflow.md deleted file mode 100644 index 8bf87900330..00000000000 --- a/cpp/ql/lib/change-notes/2026-03-30-nsdmi-dataflow.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Added dataflow through members initialized via non-static data member initialization (NSDMI). \ No newline at end of file diff --git a/cpp/ql/lib/change-notes/2026-03-31-http-flow-sources.md b/cpp/ql/lib/change-notes/2026-03-31-http-flow-sources.md deleted file mode 100644 index 54a0ad81036..00000000000 --- a/cpp/ql/lib/change-notes/2026-03-31-http-flow-sources.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Added `HttpReceiveHttpRequest`, `HttpReceiveRequestEntityBody`, and `HttpReceiveClientCertificate` from Win32's `http.h` as remote flow sources. \ No newline at end of file diff --git a/cpp/ql/lib/change-notes/2026-03-31-meson.md b/cpp/ql/lib/change-notes/2026-03-31-meson.md deleted file mode 100644 index c18de40b85d..00000000000 --- a/cpp/ql/lib/change-notes/2026-03-31-meson.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: feature ---- -* Added a subclass `MesonPrivateTestFile` of `ConfigurationTestFile` that represents files created by Meson to test the build configuration. diff --git a/cpp/ql/lib/change-notes/released/10.0.0.md b/cpp/ql/lib/change-notes/released/10.0.0.md new file mode 100644 index 00000000000..af591bd1a0a --- /dev/null +++ b/cpp/ql/lib/change-notes/released/10.0.0.md @@ -0,0 +1,10 @@ +## 10.0.0 + +### Breaking Changes + +* The deprecated `NonThrowingFunction` class has been removed, use `NonCppThrowingFunction` instead. +* The deprecated `ThrowingFunction` class has been removed, use `AlwaysSehThrowingFunction` instead. + +### New Features + +* Added a subclass `AutoconfConfigureTestFile` of `ConfigurationTestFile` that represents files created by GNU autoconf configure scripts to test the build configuration. diff --git a/cpp/ql/lib/change-notes/released/9.0.0.md b/cpp/ql/lib/change-notes/released/9.0.0.md new file mode 100644 index 00000000000..2f97209a02d --- /dev/null +++ b/cpp/ql/lib/change-notes/released/9.0.0.md @@ -0,0 +1,19 @@ +## 9.0.0 + +### Breaking Changes + +* The `SourceModelCsv`, `SinkModelCsv`, and `SummaryModelCsv` classes and the associated CSV parsing infrastructure have been removed from `ExternalFlow.qll`. New models should be added as `.model.yml` files in the `ext/` directory. + +### New Features + +* Added a subclass `MesonPrivateTestFile` of `ConfigurationTestFile` that represents files created by Meson to test the build configuration. +* Added a class `ConstructorDirectFieldInit` to represent field initializations that occur in member initializer lists. +* Added a class `ConstructorDefaultFieldInit` to represent default field initializations. +* Added a class `DataFlow::IndirectParameterNode` to represent the indirection of a parameter as a dataflow node. +* Added a predicate `Node::asIndirectInstruction` which returns the `Instruction` that defines the indirect dataflow node, if any. +* Added a class `IndirectUninitializedNode` to represent the indirection of an uninitialized local variable as a dataflow node. + +### Minor Analysis Improvements + +* Added `HttpReceiveHttpRequest`, `HttpReceiveRequestEntityBody`, and `HttpReceiveClientCertificate` from Win32's `http.h` as remote flow sources. +* Added dataflow through members initialized via non-static data member initialization (NSDMI). diff --git a/cpp/ql/lib/codeql-pack.release.yml b/cpp/ql/lib/codeql-pack.release.yml index 1be4ac8d0d3..28758256b94 100644 --- a/cpp/ql/lib/codeql-pack.release.yml +++ b/cpp/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 8.0.3 +lastReleaseVersion: 10.0.0 diff --git a/cpp/ql/lib/ext/allocation/Std.allocation.model.yml b/cpp/ql/lib/ext/allocation/Std.allocation.model.yml index 16b3d5bceba..227cc4176c0 100644 --- a/cpp/ql/lib/ext/allocation/Std.allocation.model.yml +++ b/cpp/ql/lib/ext/allocation/Std.allocation.model.yml @@ -12,4 +12,7 @@ extensions: - ["", "", False, "_malloca", "0", "", "", False] - ["", "", False, "calloc", "1", "0", "", True] - ["std", "", False, "calloc", "1", "0", "", True] - - ["bsl", "", False, "calloc", "1", "0", "", True] \ No newline at end of file + - ["bsl", "", False, "calloc", "1", "0", "", True] + - ["", "", False, "aligned_alloc", "1", "", "", True] + - ["std", "", False, "aligned_alloc", "1", "", "", True] + - ["bsl", "", False, "aligned_alloc", "1", "", "", True] diff --git a/cpp/ql/lib/qlpack.yml b/cpp/ql/lib/qlpack.yml index 802f3c3e4de..8a9d60a7fa9 100644 --- a/cpp/ql/lib/qlpack.yml +++ b/cpp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-all -version: 8.0.4-dev +version: 10.0.1-dev groups: cpp dbscheme: semmlecode.cpp.dbscheme extractor: cpp diff --git a/cpp/ql/lib/semmle/code/cpp/ConfigurationTestFile.qll b/cpp/ql/lib/semmle/code/cpp/ConfigurationTestFile.qll index b39c1009f07..ae90caa0e63 100644 --- a/cpp/ql/lib/semmle/code/cpp/ConfigurationTestFile.qll +++ b/cpp/ql/lib/semmle/code/cpp/ConfigurationTestFile.qll @@ -42,3 +42,10 @@ class MesonPrivateTestFile extends ConfigurationTestFile { ) } } + +/** + * A file created by a GNU autoconf configure script to test the system configuration. + */ +class AutoconfConfigureTestFile extends ConfigurationTestFile { + AutoconfConfigureTestFile() { this.getBaseName().regexpMatch("conftest[0-9]*\\.c(pp)?") } +} diff --git a/cpp/ql/lib/semmle/code/cpp/commons/Printf.qll b/cpp/ql/lib/semmle/code/cpp/commons/Printf.qll index d189dd36f87..624465761c2 100644 --- a/cpp/ql/lib/semmle/code/cpp/commons/Printf.qll +++ b/cpp/ql/lib/semmle/code/cpp/commons/Printf.qll @@ -459,6 +459,13 @@ class FormatLiteral extends Literal instanceof StringLiteral { */ int getConvSpecOffset(int n) { result = this.getFormat().indexOf("%", n, 0) } + /** + * Gets the nth conversion specifier string. + */ + private string getConvSpecString(int n) { + n >= 0 and result = "%" + this.getFormat().splitAt("%", n + 1) + } + /* * Each of these predicates gets a regular expressions to match each individual * parts of a conversion specifier. @@ -524,22 +531,20 @@ class FormatLiteral extends Literal instanceof StringLiteral { int n, string spec, string params, string flags, string width, string prec, string len, string conv ) { - exists(int offset, string fmt, string rst, string regexp | - offset = this.getConvSpecOffset(n) and - fmt = this.getFormat() and - rst = fmt.substring(offset, fmt.length()) and + exists(string convSpec, string regexp | + convSpec = this.getConvSpecString(n) and regexp = this.getConvSpecRegexp() and ( - spec = rst.regexpCapture(regexp, 1) and - params = rst.regexpCapture(regexp, 2) and - flags = rst.regexpCapture(regexp, 3) and - width = rst.regexpCapture(regexp, 4) and - prec = rst.regexpCapture(regexp, 5) and - len = rst.regexpCapture(regexp, 6) and - conv = rst.regexpCapture(regexp, 7) + spec = convSpec.regexpCapture(regexp, 1) and + params = convSpec.regexpCapture(regexp, 2) and + flags = convSpec.regexpCapture(regexp, 3) and + width = convSpec.regexpCapture(regexp, 4) and + prec = convSpec.regexpCapture(regexp, 5) and + len = convSpec.regexpCapture(regexp, 6) and + conv = convSpec.regexpCapture(regexp, 7) or - spec = rst.regexpCapture(regexp, 1) and - not exists(rst.regexpCapture(regexp, 2)) and + spec = convSpec.regexpCapture(regexp, 1) and + not exists(convSpec.regexpCapture(regexp, 2)) and params = "" and flags = "" and width = "" and @@ -554,12 +559,10 @@ class FormatLiteral extends Literal instanceof StringLiteral { * Gets the nth conversion specifier (including the initial `%`). */ string getConvSpec(int n) { - exists(int offset, string fmt, string rst, string regexp | - offset = this.getConvSpecOffset(n) and - fmt = this.getFormat() and - rst = fmt.substring(offset, fmt.length()) and + exists(string convSpec, string regexp | + convSpec = this.getConvSpecString(n) and regexp = this.getConvSpecRegexp() and - result = rst.regexpCapture(regexp, 1) + result = convSpec.regexpCapture(regexp, 1) ) } diff --git a/cpp/ql/lib/semmle/code/cpp/commons/Scanf.qll b/cpp/ql/lib/semmle/code/cpp/commons/Scanf.qll index f032ba4749e..98280a522cf 100644 --- a/cpp/ql/lib/semmle/code/cpp/commons/Scanf.qll +++ b/cpp/ql/lib/semmle/code/cpp/commons/Scanf.qll @@ -194,6 +194,13 @@ class ScanfFormatLiteral extends Expr { ) } + /** + * Gets the nth conversion specifier string. + */ + private string getConvSpecString(int n) { + n >= 0 and result = "%" + this.getFormat().splitAt("%", n + 1) + } + /** * Gets the regular expression to match each individual part of a conversion specifier. */ @@ -227,16 +234,14 @@ class ScanfFormatLiteral extends Expr { * specifier. */ predicate parseConvSpec(int n, string spec, string width, string len, string conv) { - exists(int offset, string fmt, string rst, string regexp | - offset = this.getConvSpecOffset(n) and - fmt = this.getFormat() and - rst = fmt.substring(offset, fmt.length()) and + exists(string convSpec, string regexp | + convSpec = this.getConvSpecString(n) and regexp = this.getConvSpecRegexp() and ( - spec = rst.regexpCapture(regexp, 1) and - width = rst.regexpCapture(regexp, 2) and - len = rst.regexpCapture(regexp, 3) and - conv = rst.regexpCapture(regexp, 4) + spec = convSpec.regexpCapture(regexp, 1) and + width = convSpec.regexpCapture(regexp, 2) and + len = convSpec.regexpCapture(regexp, 3) and + conv = convSpec.regexpCapture(regexp, 4) ) ) } diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll index 8b71f140b01..fb2108c2ac5 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll @@ -6,11 +6,15 @@ * * The extensible relations have the following columns: * - Sources: - * `namespace; type; subtypes; name; signature; ext; output; kind` + * `namespace; type; subtypes; name; signature; ext; output; kind; provenance` * - Sinks: - * `namespace; type; subtypes; name; signature; ext; input; kind` + * `namespace; type; subtypes; name; signature; ext; input; kind; provenance` * - Summaries: - * `namespace; type; subtypes; name; signature; ext; input; output; kind` + * `namespace; type; subtypes; name; signature; ext; input; output; kind; provenance` + * - Barriers: + * `namespace; type; subtypes; name; signature; ext; output; kind; provenance` + * - BarrierGuards: + * `namespace; type; subtypes; name; signature; ext; input; acceptingValue; kind; provenance` * * The interpretation of a row is similar to API-graphs with a left-to-right * reading. @@ -87,11 +91,23 @@ * value, and * - flow from the _second_ indirection of the 0th argument to the first * indirection of the return value, etc. - * 8. The `kind` column is a tag that can be referenced from QL to determine to + * 8. The `acceptingValue` column of barrier guard models specifies the condition + * under which the guard blocks flow. It can be one of "true" or "false". In + * the future "no-exception", "not-zero", "null", "not-null" may be supported. + * 9. The `kind` column is a tag that can be referenced from QL to determine to * which classes the interpreted elements should be added. For example, for * sources "remote" indicates a default remote flow source, and for summaries * "taint" indicates a default additional taint step and "value" indicates a * globally applicable value-preserving step. + * 10. The `provenance` column is a tag to indicate the origin and verification of a model. + * The format is {origin}-{verification} or just "manual" where the origin describes + * the origin of the model and verification describes how the model has been verified. + * Some examples are: + * - "df-generated": The model has been generated by the model generator tool. + * - "df-manual": The model has been generated by the model generator and verified by a human. + * - "manual": The model has been written by hand. + * This information is used in a heuristic for dataflow analysis to determine, if a + * model or source code should be used for determining flow. */ import cpp @@ -931,13 +947,13 @@ private module Cached { private predicate barrierGuardChecks(IRGuardCondition g, Expr e, boolean gv, TKindModelPair kmp) { exists( - SourceSinkInterpretationInput::InterpretNode n, Public::AcceptingValue acceptingvalue, + SourceSinkInterpretationInput::InterpretNode n, Public::AcceptingValue acceptingValue, string kind, string model | - isBarrierGuardNode(n, acceptingvalue, kind, model) and + isBarrierGuardNode(n, acceptingValue, kind, model) and n.asNode().asExpr() = e and kmp = TMkPair(kind, model) and - gv = convertAcceptingValue(acceptingvalue).asBooleanValue() and + gv = convertAcceptingValue(acceptingValue).asBooleanValue() and n.asNode().(Private::ArgumentNode).getCall().asCallInstruction() = g ) } @@ -954,14 +970,14 @@ private module Cached { ) { exists( SourceSinkInterpretationInput::InterpretNode interpretNode, - Public::AcceptingValue acceptingvalue, string kind, string model, int indirectionIndex, + Public::AcceptingValue acceptingValue, string kind, string model, int indirectionIndex, Private::ArgumentNode arg | - isBarrierGuardNode(interpretNode, acceptingvalue, kind, model) and + isBarrierGuardNode(interpretNode, acceptingValue, kind, model) and arg = interpretNode.asNode() and arg.asIndirectExpr(indirectionIndex) = e and kmp = MkKindModelPairIntPair(TMkPair(kind, model), indirectionIndex) and - gv = convertAcceptingValue(acceptingvalue).asBooleanValue() and + gv = convertAcceptingValue(acceptingValue).asBooleanValue() and arg.getCall().asCallInstruction() = g ) } diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/ExternalFlowExtensions.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/ExternalFlowExtensions.qll index 1a572c221d9..22c74c2aa71 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/ExternalFlowExtensions.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/ExternalFlowExtensions.qll @@ -33,7 +33,7 @@ extensible predicate barrierModel( */ extensible predicate barrierGuardModel( string namespace, string type, boolean subtypes, string name, string signature, string ext, - string input, string acceptingvalue, string kind, string provenance, QlBuiltins::ExtensionId madId + string input, string acceptingValue, string kind, string provenance, QlBuiltins::ExtensionId madId ); /** diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/FlowSummaryImpl.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/FlowSummaryImpl.qll index cce1b80e7fc..d91dc41febe 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/FlowSummaryImpl.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/FlowSummaryImpl.qll @@ -162,13 +162,13 @@ module SourceSinkInterpretationInput implements } predicate barrierGuardElement( - Element e, string input, Public::AcceptingValue acceptingvalue, string kind, + Element e, string input, Public::AcceptingValue acceptingValue, string kind, Public::Provenance provenance, string model ) { exists( string package, string type, boolean subtypes, string name, string signature, string ext | - barrierGuardModel(package, type, subtypes, name, signature, ext, input, acceptingvalue, kind, + barrierGuardModel(package, type, subtypes, name, signature, ext, input, acceptingValue, kind, provenance, model) and e = interpretElement(package, type, subtypes, name, signature, ext) ) diff --git a/cpp/ql/lib/semmle/code/cpp/models/interfaces/NonThrowing.qll b/cpp/ql/lib/semmle/code/cpp/models/interfaces/NonThrowing.qll index 85b9b66cd66..04826a487ca 100644 --- a/cpp/ql/lib/semmle/code/cpp/models/interfaces/NonThrowing.qll +++ b/cpp/ql/lib/semmle/code/cpp/models/interfaces/NonThrowing.qll @@ -11,10 +11,3 @@ import semmle.code.cpp.models.Models * The function may still raise a structured exception handling (SEH) exception. */ abstract class NonCppThrowingFunction extends Function { } - -/** - * A function that is guaranteed to never throw. - * - * DEPRECATED: use `NonCppThrowingFunction` instead. - */ -deprecated class NonThrowingFunction = NonCppThrowingFunction; diff --git a/cpp/ql/lib/semmle/code/cpp/models/interfaces/Throwing.qll b/cpp/ql/lib/semmle/code/cpp/models/interfaces/Throwing.qll index 111b9953395..a781bab07c3 100644 --- a/cpp/ql/lib/semmle/code/cpp/models/interfaces/Throwing.qll +++ b/cpp/ql/lib/semmle/code/cpp/models/interfaces/Throwing.qll @@ -10,19 +10,6 @@ import semmle.code.cpp.Function import semmle.code.cpp.models.Models import semmle.code.cpp.models.interfaces.FunctionInputsAndOutputs -/** - * A function that is known to raise an exception. - * - * DEPRECATED: use `AlwaysSehThrowingFunction` instead. - */ -abstract deprecated class ThrowingFunction extends Function { - /** - * Holds if this function may throw an exception during evaluation. - * If `unconditional` is `true` the function always throws an exception. - */ - abstract predicate mayThrowException(boolean unconditional); -} - /** * A function that unconditionally raises a structured exception handling (SEH) exception. */ diff --git a/cpp/ql/src/CHANGELOG.md b/cpp/ql/src/CHANGELOG.md index 126b1d9efa3..80b9ad0e475 100644 --- a/cpp/ql/src/CHANGELOG.md +++ b/cpp/ql/src/CHANGELOG.md @@ -1,3 +1,28 @@ +## 1.6.1 + +### Minor Analysis Improvements + +* Added `AllocationFunction` models for `aligned_alloc`, `std::aligned_alloc`, and `bsl::aligned_alloc`. +* The "Comparison of narrow type with wide type in loop condition" (`cpp/comparison-with-wider-type`) query has been upgraded to `high` precision. This query will now run in the default code scanning suite. +* The "Multiplication result converted to larger type" (`cpp/integer-multiplication-cast-to-long`) query has been upgraded to `high` precision. This query will now run in the default code scanning suite. +* The "Suspicious add with sizeof" (`cpp/suspicious-add-sizeof`) query has been upgraded to `high` precision. This query will now run in the default code scanning suite. +* The "Wrong type of arguments to formatting function" (`cpp/wrong-type-format-argument`) query has been upgraded to `high` precision. This query will now run in the default code scanning suite. +* The "Implicit function declaration" (`cpp/implicit-function-declaration`) query has been upgraded to `high` precision. However, for `build mode: none` databases, it no longer produces any results. The results in this mode were found to be very noisy and fundamentally imprecise. + +## 1.6.0 + +### Query Metadata Changes + +* The `@security-severity` metadata of `cpp/cgi-xss` has been increased from 6.1 (medium) to 7.8 (high). + +### Minor Analysis Improvements + +* The "Extraction warnings" (`cpp/diagnostics/extraction-warnings`) diagnostics query no longer yields `ExtractionRecoverableWarning`s for `build-mode: none` databases. The results were found to significantly increase the sizes of the produced SARIF files, making them unprocessable in some cases. +* Fixed an issue with the "Suspicious add with sizeof" (`cpp/suspicious-add-sizeof`) query causing false positive results in `build-mode: none` databases. +* Fixed an issue with the "Uncontrolled format string" (`cpp/tainted-format-string`) query involving certain kinds of formatting function implementations. +* Fixed an issue with the "Wrong type of arguments to formatting function" (`cpp/wrong-type-format-argument`) query causing false positive results in `build-mode: none` databases. +* Fixed an issue with the "Multiplication result converted to larger type" (`cpp/integer-multiplication-cast-to-long`) query causing false positive results in `build-mode: none` databases. + ## 1.5.15 No user-facing changes. @@ -341,7 +366,7 @@ No user-facing changes. ### Minor Analysis Improvements * The "non-constant format string" query (`cpp/non-constant-format`) has been updated to produce fewer false positives. -* Added dataflow models for the `gettext` function variants. +* Added dataflow models for the `gettext` function variants. ## 0.9.4 diff --git a/cpp/ql/src/Likely Bugs/Arithmetic/IntMultToLong.ql b/cpp/ql/src/Likely Bugs/Arithmetic/IntMultToLong.ql index 6747d177c80..b05bd637dc2 100644 --- a/cpp/ql/src/Likely Bugs/Arithmetic/IntMultToLong.ql +++ b/cpp/ql/src/Likely Bugs/Arithmetic/IntMultToLong.ql @@ -5,7 +5,7 @@ * @kind problem * @problem.severity warning * @security-severity 8.1 - * @precision medium + * @precision high * @id cpp/integer-multiplication-cast-to-long * @tags reliability * security diff --git a/cpp/ql/src/Likely Bugs/Format/WrongTypeFormatArguments.ql b/cpp/ql/src/Likely Bugs/Format/WrongTypeFormatArguments.ql index 7f0a4833cb5..5842b9474f7 100644 --- a/cpp/ql/src/Likely Bugs/Format/WrongTypeFormatArguments.ql +++ b/cpp/ql/src/Likely Bugs/Format/WrongTypeFormatArguments.ql @@ -5,7 +5,7 @@ * @kind problem * @problem.severity error * @security-severity 7.5 - * @precision medium + * @precision high * @id cpp/wrong-type-format-argument * @tags reliability * correctness diff --git a/cpp/ql/src/Likely Bugs/Underspecified Functions/ImplicitFunctionDeclaration.qhelp b/cpp/ql/src/Likely Bugs/Underspecified Functions/ImplicitFunctionDeclaration.qhelp index 6ff60d38341..90a98e1bf57 100644 --- a/cpp/ql/src/Likely Bugs/Underspecified Functions/ImplicitFunctionDeclaration.qhelp +++ b/cpp/ql/src/Likely Bugs/Underspecified Functions/ImplicitFunctionDeclaration.qhelp @@ -14,6 +14,9 @@ function may behave unpredictably.

This may indicate a misspelled function name, or that the required header containing the function declaration has not been included.

+

Note: This query is not compatible with build mode: none databases, and produces +no results on those databases.

+

Provide an explicit declaration of the function before invoking it.

@@ -26,4 +29,4 @@ the function declaration has not been included.

  • SEI CERT C Coding Standard: DCL31-C. Declare identifiers before using them
  • - \ No newline at end of file + diff --git a/cpp/ql/src/Likely Bugs/Underspecified Functions/ImplicitFunctionDeclaration.ql b/cpp/ql/src/Likely Bugs/Underspecified Functions/ImplicitFunctionDeclaration.ql index 6a55557cf70..00b29efbd0f 100644 --- a/cpp/ql/src/Likely Bugs/Underspecified Functions/ImplicitFunctionDeclaration.ql +++ b/cpp/ql/src/Likely Bugs/Underspecified Functions/ImplicitFunctionDeclaration.ql @@ -5,7 +5,7 @@ * may lead to unpredictable behavior. * @kind problem * @problem.severity warning - * @precision medium + * @precision high * @id cpp/implicit-function-declaration * @tags correctness * maintainability @@ -17,6 +17,11 @@ import TooFewArguments import TooManyArguments import semmle.code.cpp.commons.Exclusions +/* + * This query is not compatible with build mode: none databases, and produces + * no results on those databases. + */ + predicate locInfo(Locatable e, File file, int line, int col) { e.getFile() = file and e.getLocation().getStartLine() = line and @@ -39,6 +44,7 @@ predicate isCompiledAsC(File f) { from FunctionDeclarationEntry fdeIm, FunctionCall fc where isCompiledAsC(fdeIm.getFile()) and + not any(Compilation c).buildModeNone() and not isFromMacroDefinition(fc) and fdeIm.isImplicit() and sameLocation(fdeIm, fc) and diff --git a/cpp/ql/src/Likely Bugs/Underspecified Functions/MistypedFunctionArguments.qll b/cpp/ql/src/Likely Bugs/Underspecified Functions/MistypedFunctionArguments.qll index 2dced5d8d84..dbb457db505 100644 --- a/cpp/ql/src/Likely Bugs/Underspecified Functions/MistypedFunctionArguments.qll +++ b/cpp/ql/src/Likely Bugs/Underspecified Functions/MistypedFunctionArguments.qll @@ -79,9 +79,7 @@ private predicate hasZeroParamDecl(Function f) { // True if this file (or header) was compiled as a C file private predicate isCompiledAsC(File f) { - f.compiledAsC() - or - exists(File src | isCompiledAsC(src) | src.getAnIncludedFile() = f) + exists(File src | src.compiledAsC() | src.getAnIncludedFile*() = f) } predicate mistypedFunctionArguments(FunctionCall fc, Function f, Parameter p) { diff --git a/cpp/ql/src/Likely Bugs/Underspecified Functions/TooFewArguments.qll b/cpp/ql/src/Likely Bugs/Underspecified Functions/TooFewArguments.qll index 218a54b36c5..fd323513a49 100644 --- a/cpp/ql/src/Likely Bugs/Underspecified Functions/TooFewArguments.qll +++ b/cpp/ql/src/Likely Bugs/Underspecified Functions/TooFewArguments.qll @@ -28,9 +28,7 @@ private predicate hasZeroParamDecl(Function f) { /* Holds if this file (or header) was compiled as a C file. */ private predicate isCompiledAsC(File f) { - f.compiledAsC() - or - exists(File src | isCompiledAsC(src) | src.getAnIncludedFile() = f) + exists(File src | src.compiledAsC() | src.getAnIncludedFile*() = f) } /** Holds if `fc` is a call to `f` with too few arguments. */ diff --git a/cpp/ql/src/Likely Bugs/Underspecified Functions/TooManyArguments.qll b/cpp/ql/src/Likely Bugs/Underspecified Functions/TooManyArguments.qll index 7fba78b5550..ab2a98ae3a5 100644 --- a/cpp/ql/src/Likely Bugs/Underspecified Functions/TooManyArguments.qll +++ b/cpp/ql/src/Likely Bugs/Underspecified Functions/TooManyArguments.qll @@ -19,9 +19,7 @@ private predicate hasZeroParamDecl(Function f) { // True if this file (or header) was compiled as a C file private predicate isCompiledAsC(File f) { - f.compiledAsC() - or - exists(File src | isCompiledAsC(src) | src.getAnIncludedFile() = f) + exists(File src | src.compiledAsC() | src.getAnIncludedFile*() = f) } predicate tooManyArguments(FunctionCall fc, Function f) { diff --git a/cpp/ql/src/Security/CWE/CWE-190/ComparisonWithWiderType.ql b/cpp/ql/src/Security/CWE/CWE-190/ComparisonWithWiderType.ql index 3f330807304..7d9ef88adea 100644 --- a/cpp/ql/src/Security/CWE/CWE-190/ComparisonWithWiderType.ql +++ b/cpp/ql/src/Security/CWE/CWE-190/ComparisonWithWiderType.ql @@ -6,7 +6,7 @@ * @kind problem * @problem.severity warning * @security-severity 7.8 - * @precision medium + * @precision high * @tags reliability * security * external/cwe/cwe-190 diff --git a/cpp/ql/src/Security/CWE/CWE-468/SuspiciousAddWithSizeof.ql b/cpp/ql/src/Security/CWE/CWE-468/SuspiciousAddWithSizeof.ql index 343e96a00d3..d5a5cd8f665 100644 --- a/cpp/ql/src/Security/CWE/CWE-468/SuspiciousAddWithSizeof.ql +++ b/cpp/ql/src/Security/CWE/CWE-468/SuspiciousAddWithSizeof.ql @@ -6,7 +6,7 @@ * @kind problem * @problem.severity warning * @security-severity 8.8 - * @precision medium + * @precision high * @id cpp/suspicious-add-sizeof * @tags security * external/cwe/cwe-468 diff --git a/cpp/ql/src/change-notes/2026-03-11-integer-multiplication-cast-to-long.md b/cpp/ql/src/change-notes/2026-03-11-integer-multiplication-cast-to-long.md deleted file mode 100644 index 4d4a66c0a22..00000000000 --- a/cpp/ql/src/change-notes/2026-03-11-integer-multiplication-cast-to-long.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Fixed an issue with the "Multiplication result converted to larger type" (`cpp/integer-multiplication-cast-to-long`) query causing false positive results in `build-mode: none` databases. diff --git a/cpp/ql/src/change-notes/2026-03-13-adjust-xss-and-log-injection-severity.md b/cpp/ql/src/change-notes/2026-03-13-adjust-xss-and-log-injection-severity.md deleted file mode 100644 index 0810e9c49ba..00000000000 --- a/cpp/ql/src/change-notes/2026-03-13-adjust-xss-and-log-injection-severity.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: queryMetadata ---- -* The `@security-severity` metadata of `cpp/cgi-xss` has been increased from 6.1 (medium) to 7.8 (high). diff --git a/cpp/ql/src/change-notes/2026-03-16-wrong-type-format-argument.md b/cpp/ql/src/change-notes/2026-03-16-wrong-type-format-argument.md deleted file mode 100644 index 84aef7791fc..00000000000 --- a/cpp/ql/src/change-notes/2026-03-16-wrong-type-format-argument.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Fixed an issue with the "Wrong type of arguments to formatting function" (`cpp/wrong-type-format-argument`) query causing false positive results in `build-mode: none` databases. diff --git a/cpp/ql/src/change-notes/2026-03-19-suspicious-add-sizeof.md b/cpp/ql/src/change-notes/2026-03-19-suspicious-add-sizeof.md deleted file mode 100644 index 387e2d44b46..00000000000 --- a/cpp/ql/src/change-notes/2026-03-19-suspicious-add-sizeof.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Fixed an issue with the "Suspicious add with sizeof" (`cpp/suspicious-add-sizeof`) query causing false positive results in `build-mode: none` databases. diff --git a/cpp/ql/src/change-notes/2026-03-19-tainted-format-string.md b/cpp/ql/src/change-notes/2026-03-19-tainted-format-string.md deleted file mode 100644 index 6a1133917bf..00000000000 --- a/cpp/ql/src/change-notes/2026-03-19-tainted-format-string.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Fixed an issue with the "Uncontrolled format string" (`cpp/tainted-format-string`) query involving certain kinds of formatting function implementations. diff --git a/cpp/ql/src/change-notes/2026-03-30-warning-diagnostics.md b/cpp/ql/src/change-notes/2026-03-30-warning-diagnostics.md deleted file mode 100644 index 0db0d7c718d..00000000000 --- a/cpp/ql/src/change-notes/2026-03-30-warning-diagnostics.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* The "Extraction warnings" (`cpp/diagnostics/extraction-warnings`) diagnostics query no longer yields `ExtractionRecoverableWarning`s for `build-mode: none` databases. The results were found to significantly increase the sizes of the produced SARIF files, making them unprocessable in some cases. diff --git a/cpp/ql/src/change-notes/released/1.6.0.md b/cpp/ql/src/change-notes/released/1.6.0.md new file mode 100644 index 00000000000..3bbb9480660 --- /dev/null +++ b/cpp/ql/src/change-notes/released/1.6.0.md @@ -0,0 +1,13 @@ +## 1.6.0 + +### Query Metadata Changes + +* The `@security-severity` metadata of `cpp/cgi-xss` has been increased from 6.1 (medium) to 7.8 (high). + +### Minor Analysis Improvements + +* The "Extraction warnings" (`cpp/diagnostics/extraction-warnings`) diagnostics query no longer yields `ExtractionRecoverableWarning`s for `build-mode: none` databases. The results were found to significantly increase the sizes of the produced SARIF files, making them unprocessable in some cases. +* Fixed an issue with the "Suspicious add with sizeof" (`cpp/suspicious-add-sizeof`) query causing false positive results in `build-mode: none` databases. +* Fixed an issue with the "Uncontrolled format string" (`cpp/tainted-format-string`) query involving certain kinds of formatting function implementations. +* Fixed an issue with the "Wrong type of arguments to formatting function" (`cpp/wrong-type-format-argument`) query causing false positive results in `build-mode: none` databases. +* Fixed an issue with the "Multiplication result converted to larger type" (`cpp/integer-multiplication-cast-to-long`) query causing false positive results in `build-mode: none` databases. diff --git a/cpp/ql/src/change-notes/released/1.6.1.md b/cpp/ql/src/change-notes/released/1.6.1.md new file mode 100644 index 00000000000..83781b87c58 --- /dev/null +++ b/cpp/ql/src/change-notes/released/1.6.1.md @@ -0,0 +1,10 @@ +## 1.6.1 + +### Minor Analysis Improvements + +* Added `AllocationFunction` models for `aligned_alloc`, `std::aligned_alloc`, and `bsl::aligned_alloc`. +* The "Comparison of narrow type with wide type in loop condition" (`cpp/comparison-with-wider-type`) query has been upgraded to `high` precision. This query will now run in the default code scanning suite. +* The "Multiplication result converted to larger type" (`cpp/integer-multiplication-cast-to-long`) query has been upgraded to `high` precision. This query will now run in the default code scanning suite. +* The "Suspicious add with sizeof" (`cpp/suspicious-add-sizeof`) query has been upgraded to `high` precision. This query will now run in the default code scanning suite. +* The "Wrong type of arguments to formatting function" (`cpp/wrong-type-format-argument`) query has been upgraded to `high` precision. This query will now run in the default code scanning suite. +* The "Implicit function declaration" (`cpp/implicit-function-declaration`) query has been upgraded to `high` precision. However, for `build mode: none` databases, it no longer produces any results. The results in this mode were found to be very noisy and fundamentally imprecise. diff --git a/cpp/ql/src/codeql-pack.release.yml b/cpp/ql/src/codeql-pack.release.yml index b41e6e78a66..ef7a789e0cf 100644 --- a/cpp/ql/src/codeql-pack.release.yml +++ b/cpp/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.5.15 +lastReleaseVersion: 1.6.1 diff --git a/cpp/ql/src/qlpack.yml b/cpp/ql/src/qlpack.yml index 3160da2efb6..714167434c8 100644 --- a/cpp/ql/src/qlpack.yml +++ b/cpp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-queries -version: 1.5.16-dev +version: 1.6.2-dev groups: - cpp - queries diff --git a/cpp/ql/test/query-tests/Likely Bugs/Likely Typos/ExprHasNoEffect/autoconf/ExprHasNoEffect.expected b/cpp/ql/test/query-tests/Likely Bugs/Likely Typos/ExprHasNoEffect/autoconf/ExprHasNoEffect.expected new file mode 100644 index 00000000000..a87d2ddbd1b --- /dev/null +++ b/cpp/ql/test/query-tests/Likely Bugs/Likely Typos/ExprHasNoEffect/autoconf/ExprHasNoEffect.expected @@ -0,0 +1,2 @@ +| conftest.c.c:4:3:4:8 | call to strlen | This expression has no effect (because $@ has no external side effects). | conftest.h:3:8:3:13 | strlen | strlen | +| conftest_abc.c:4:3:4:8 | call to strlen | This expression has no effect (because $@ has no external side effects). | conftest.h:3:8:3:13 | strlen | strlen | diff --git a/cpp/ql/test/query-tests/Likely Bugs/Likely Typos/ExprHasNoEffect/autoconf/ExprHasNoEffect.qlref b/cpp/ql/test/query-tests/Likely Bugs/Likely Typos/ExprHasNoEffect/autoconf/ExprHasNoEffect.qlref new file mode 100644 index 00000000000..82a90f5413a --- /dev/null +++ b/cpp/ql/test/query-tests/Likely Bugs/Likely Typos/ExprHasNoEffect/autoconf/ExprHasNoEffect.qlref @@ -0,0 +1 @@ +Likely Bugs/Likely Typos/ExprHasNoEffect.ql diff --git a/cpp/ql/test/query-tests/Likely Bugs/Likely Typos/ExprHasNoEffect/autoconf/conftest.c b/cpp/ql/test/query-tests/Likely Bugs/Likely Typos/ExprHasNoEffect/autoconf/conftest.c new file mode 100644 index 00000000000..2e067f5c433 --- /dev/null +++ b/cpp/ql/test/query-tests/Likely Bugs/Likely Typos/ExprHasNoEffect/autoconf/conftest.c @@ -0,0 +1,6 @@ +#include "conftest.h" + +int main2() { + strlen(""); // GOOD: conftest files are ignored + return 0; +} diff --git a/cpp/ql/test/query-tests/Likely Bugs/Likely Typos/ExprHasNoEffect/autoconf/conftest.c.c b/cpp/ql/test/query-tests/Likely Bugs/Likely Typos/ExprHasNoEffect/autoconf/conftest.c.c new file mode 100644 index 00000000000..4ff7c225335 --- /dev/null +++ b/cpp/ql/test/query-tests/Likely Bugs/Likely Typos/ExprHasNoEffect/autoconf/conftest.c.c @@ -0,0 +1,6 @@ +#include "conftest.h" + +int main3() { + strlen(""); // BAD: not a `conftest` file, as `conftest` is not directly followed by the extension or a sequence of numbers. + return 0; +} diff --git a/cpp/ql/test/query-tests/Likely Bugs/Likely Typos/ExprHasNoEffect/autoconf/conftest.cpp b/cpp/ql/test/query-tests/Likely Bugs/Likely Typos/ExprHasNoEffect/autoconf/conftest.cpp new file mode 100644 index 00000000000..7b8edf64261 --- /dev/null +++ b/cpp/ql/test/query-tests/Likely Bugs/Likely Typos/ExprHasNoEffect/autoconf/conftest.cpp @@ -0,0 +1,6 @@ +#include "conftest.h" + +int main4() { + strlen(""); // GOOD: conftest files are ignored + return 0; +} diff --git a/cpp/ql/test/query-tests/Likely Bugs/Likely Typos/ExprHasNoEffect/autoconf/conftest.h b/cpp/ql/test/query-tests/Likely Bugs/Likely Typos/ExprHasNoEffect/autoconf/conftest.h new file mode 100644 index 00000000000..9cf6f7e0d9f --- /dev/null +++ b/cpp/ql/test/query-tests/Likely Bugs/Likely Typos/ExprHasNoEffect/autoconf/conftest.h @@ -0,0 +1,3 @@ +typedef long long size_t; + +size_t strlen(const char *s); diff --git a/cpp/ql/test/query-tests/Likely Bugs/Likely Typos/ExprHasNoEffect/autoconf/conftest123.c b/cpp/ql/test/query-tests/Likely Bugs/Likely Typos/ExprHasNoEffect/autoconf/conftest123.c new file mode 100644 index 00000000000..b227d53ad2a --- /dev/null +++ b/cpp/ql/test/query-tests/Likely Bugs/Likely Typos/ExprHasNoEffect/autoconf/conftest123.c @@ -0,0 +1,6 @@ +#include "conftest.h" + +int main5() { + strlen(""); // GOOD: conftest files are ignored + return 0; +} diff --git a/cpp/ql/test/query-tests/Likely Bugs/Likely Typos/ExprHasNoEffect/autoconf/conftest_abc.c b/cpp/ql/test/query-tests/Likely Bugs/Likely Typos/ExprHasNoEffect/autoconf/conftest_abc.c new file mode 100644 index 00000000000..88215d7434c --- /dev/null +++ b/cpp/ql/test/query-tests/Likely Bugs/Likely Typos/ExprHasNoEffect/autoconf/conftest_abc.c @@ -0,0 +1,6 @@ +#include "conftest.h" + +int main1() { + strlen(""); // BAD: not a `conftest` file, as `conftest` is not directly followed by the extension or a sequence of numbers. + return 0; +} diff --git a/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md b/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md index dfbc0f9f376..166a94bd88d 100644 --- a/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md +++ b/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md @@ -1,3 +1,11 @@ +## 1.7.65 + +No user-facing changes. + +## 1.7.64 + +No user-facing changes. + ## 1.7.63 No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.64.md b/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.64.md new file mode 100644 index 00000000000..47290bbbeb3 --- /dev/null +++ b/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.64.md @@ -0,0 +1,3 @@ +## 1.7.64 + +No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.65.md b/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.65.md new file mode 100644 index 00000000000..12bf5dad4b0 --- /dev/null +++ b/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.65.md @@ -0,0 +1,3 @@ +## 1.7.65 + +No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/lib/codeql-pack.release.yml b/csharp/ql/campaigns/Solorigate/lib/codeql-pack.release.yml index 3d19252da0b..bf581427d29 100644 --- a/csharp/ql/campaigns/Solorigate/lib/codeql-pack.release.yml +++ b/csharp/ql/campaigns/Solorigate/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.7.63 +lastReleaseVersion: 1.7.65 diff --git a/csharp/ql/campaigns/Solorigate/lib/qlpack.yml b/csharp/ql/campaigns/Solorigate/lib/qlpack.yml index 972746e9255..9d0e0ffd4f9 100644 --- a/csharp/ql/campaigns/Solorigate/lib/qlpack.yml +++ b/csharp/ql/campaigns/Solorigate/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-solorigate-all -version: 1.7.64-dev +version: 1.7.66-dev groups: - csharp - solorigate diff --git a/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md b/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md index dfbc0f9f376..166a94bd88d 100644 --- a/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md +++ b/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md @@ -1,3 +1,11 @@ +## 1.7.65 + +No user-facing changes. + +## 1.7.64 + +No user-facing changes. + ## 1.7.63 No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.64.md b/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.64.md new file mode 100644 index 00000000000..47290bbbeb3 --- /dev/null +++ b/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.64.md @@ -0,0 +1,3 @@ +## 1.7.64 + +No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.65.md b/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.65.md new file mode 100644 index 00000000000..12bf5dad4b0 --- /dev/null +++ b/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.65.md @@ -0,0 +1,3 @@ +## 1.7.65 + +No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/src/codeql-pack.release.yml b/csharp/ql/campaigns/Solorigate/src/codeql-pack.release.yml index 3d19252da0b..bf581427d29 100644 --- a/csharp/ql/campaigns/Solorigate/src/codeql-pack.release.yml +++ b/csharp/ql/campaigns/Solorigate/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.7.63 +lastReleaseVersion: 1.7.65 diff --git a/csharp/ql/campaigns/Solorigate/src/qlpack.yml b/csharp/ql/campaigns/Solorigate/src/qlpack.yml index 7a4e4fff627..f5203f4e443 100644 --- a/csharp/ql/campaigns/Solorigate/src/qlpack.yml +++ b/csharp/ql/campaigns/Solorigate/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-solorigate-queries -version: 1.7.64-dev +version: 1.7.66-dev groups: - csharp - solorigate diff --git a/csharp/ql/examples/snippets/integer_literal.ql b/csharp/ql/examples/snippets/integer_literal.ql index 4546c1d174b..36791fc8c37 100644 --- a/csharp/ql/examples/snippets/integer_literal.ql +++ b/csharp/ql/examples/snippets/integer_literal.ql @@ -9,5 +9,5 @@ import csharp from IntegerLiteral literal -where literal.getValue().toInt() = 0 +where literal.getIntValue() = 0 select literal diff --git a/csharp/ql/lib/CHANGELOG.md b/csharp/ql/lib/CHANGELOG.md index 7261891eed7..32cd8f33c65 100644 --- a/csharp/ql/lib/CHANGELOG.md +++ b/csharp/ql/lib/CHANGELOG.md @@ -1,3 +1,19 @@ +## 5.5.0 + +### Deprecated APIs + +* The predicates `get[L|R]Value` in the class `Assignment` have been deprecated. Use `get[Left|Right]Operand` instead. + +## 5.4.12 + +### Minor Analysis Improvements + +* The extractor no longer synthesizes expanded forms of compound assignments. This may have a small impact on the results of queries that explicitly or implicitly rely on the expanded form of compound assignments. +* The `cs/log-forging` query no longer treats arguments to extension methods with + source code on `ILogger` types as sinks. Instead, taint is tracked interprocedurally + through extension method bodies, reducing false positives when extension methods + sanitize input internally. + ## 5.4.11 No user-facing changes. diff --git a/csharp/ql/lib/Linq/Helpers.qll b/csharp/ql/lib/Linq/Helpers.qll index d490868f453..2a4d5c8c27a 100644 --- a/csharp/ql/lib/Linq/Helpers.qll +++ b/csharp/ql/lib/Linq/Helpers.qll @@ -77,7 +77,7 @@ predicate missedAllOpportunity(ForeachStmtGenericEnumerable fes) { // The then case of the if assigns false to something and breaks out of the loop. exists(Assignment a, BoolLiteral bl | a = is.getThen().getAChild*() and - bl = a.getRValue() and + bl = a.getRightOperand() and bl.toString() = "false" ) and is.getThen().getAChild*() instanceof BreakStmt @@ -121,15 +121,17 @@ predicate missedOfTypeOpportunity(ForeachStmtEnumerable fes, LocalVariableDeclSt /** * Holds if `foreach` statement `fes` can be converted to a `.Select()` call. * That is, the loop variable is accessed only in the first statement of the - * block, the access is not a cast, and the first statement is a - * local variable declaration statement `s`. + * block, the access is not a cast, the first statement is a + * local variable declaration statement `s`, and the initializer does not + * contain an `await` expression (since `Select` does not support async lambdas). */ predicate missedSelectOpportunity(ForeachStmtGenericEnumerable fes, LocalVariableDeclStmt s) { s = firstStmt(fes) and forex(VariableAccess va | va = fes.getVariable().getAnAccess() | va = s.getAVariableDeclExpr().getAChildExpr*() ) and - not s.getAVariableDeclExpr().getInitializer() instanceof Cast + not s.getAVariableDeclExpr().getInitializer() instanceof Cast and + not s.getAVariableDeclExpr().getInitializer().getAChildExpr*() instanceof AwaitExpr } /** diff --git a/csharp/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md b/csharp/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md new file mode 100644 index 00000000000..6408acc7dae --- /dev/null +++ b/csharp/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md @@ -0,0 +1,4 @@ +--- +category: feature +--- +* Data flow barriers and barrier guards can now be added using data extensions. For more information see [Customizing library models for C#](https://codeql.github.com/docs/codeql-language-guides/customizing-library-models-for-csharp/). diff --git a/csharp/ql/lib/change-notes/2026-03-26-expanded-assignments.md b/csharp/ql/lib/change-notes/2026-03-26-expanded-assignments.md deleted file mode 100644 index 159ab1ee3c6..00000000000 --- a/csharp/ql/lib/change-notes/2026-03-26-expanded-assignments.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* The extractor no longer synthesizes expanded forms of compound assignments. This may have a small impact on the results of queries that explicitly or implicitly rely on the expanded form of compound assignments. diff --git a/csharp/ql/lib/change-notes/2026-03-19-fix-log-forging-extension-methods.md b/csharp/ql/lib/change-notes/released/5.4.12.md similarity index 52% rename from csharp/ql/lib/change-notes/2026-03-19-fix-log-forging-extension-methods.md rename to csharp/ql/lib/change-notes/released/5.4.12.md index 65ce217b105..506fae5a15e 100644 --- a/csharp/ql/lib/change-notes/2026-03-19-fix-log-forging-extension-methods.md +++ b/csharp/ql/lib/change-notes/released/5.4.12.md @@ -1,6 +1,8 @@ ---- -category: minorAnalysis ---- +## 5.4.12 + +### Minor Analysis Improvements + +* The extractor no longer synthesizes expanded forms of compound assignments. This may have a small impact on the results of queries that explicitly or implicitly rely on the expanded form of compound assignments. * The `cs/log-forging` query no longer treats arguments to extension methods with source code on `ILogger` types as sinks. Instead, taint is tracked interprocedurally through extension method bodies, reducing false positives when extension methods diff --git a/csharp/ql/lib/change-notes/released/5.5.0.md b/csharp/ql/lib/change-notes/released/5.5.0.md new file mode 100644 index 00000000000..b497d8ea51b --- /dev/null +++ b/csharp/ql/lib/change-notes/released/5.5.0.md @@ -0,0 +1,5 @@ +## 5.5.0 + +### Deprecated APIs + +* The predicates `get[L|R]Value` in the class `Assignment` have been deprecated. Use `get[Left|Right]Operand` instead. diff --git a/csharp/ql/lib/codeql-pack.release.yml b/csharp/ql/lib/codeql-pack.release.yml index f742ee59b53..4b8cf9533c1 100644 --- a/csharp/ql/lib/codeql-pack.release.yml +++ b/csharp/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 5.4.11 +lastReleaseVersion: 5.5.0 diff --git a/csharp/ql/lib/definitions.qll b/csharp/ql/lib/definitions.qll index 4feaf20629c..d4f2540bbef 100644 --- a/csharp/ql/lib/definitions.qll +++ b/csharp/ql/lib/definitions.qll @@ -96,7 +96,7 @@ private class MethodUse extends Use, QualifiableExpr { private class AccessUse extends Access, Use { AccessUse() { not this.getTarget().(Parameter).getCallable() instanceof Accessor and - not this = any(LocalVariableDeclAndInitExpr d).getLValue() and + not this = any(LocalVariableDeclAndInitExpr d).getLeftOperand() and not this.isImplicit() and not this instanceof MethodAccess and // handled by `MethodUse` not this instanceof TypeAccess and // handled by `TypeMentionUse` diff --git a/csharp/ql/lib/qlpack.yml b/csharp/ql/lib/qlpack.yml index b45bd57ad56..7c906e033ad 100644 --- a/csharp/ql/lib/qlpack.yml +++ b/csharp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-all -version: 5.4.12-dev +version: 5.5.1-dev groups: csharp dbscheme: semmlecode.csharp.dbscheme extractor: csharp diff --git a/csharp/ql/lib/semmle/code/csharp/Assignable.qll b/csharp/ql/lib/semmle/code/csharp/Assignable.qll index a0e575218ad..7075626aa3b 100644 --- a/csharp/ql/lib/semmle/code/csharp/Assignable.qll +++ b/csharp/ql/lib/semmle/code/csharp/Assignable.qll @@ -235,7 +235,7 @@ private class RefArg extends AssignableAccess { module AssignableInternal { private predicate tupleAssignmentDefinition(AssignExpr ae, Expr leaf) { exists(TupleExpr te | - ae.getLValue() = te and + ae.getLeftOperand() = te and te.getAnArgument+() = leaf and // `leaf` is either an assignable access or a local variable declaration not leaf instanceof TupleExpr @@ -249,8 +249,8 @@ module AssignableInternal { */ private predicate tupleAssignmentPair(AssignExpr ae, Expr left, Expr right) { tupleAssignmentDefinition(ae, _) and - left = ae.getLValue() and - right = ae.getRValue() + left = ae.getLeftOperand() and + right = ae.getRightOperand() or exists(TupleExpr l, TupleExpr r, int i | tupleAssignmentPair(ae, l, r) | left = l.getArgument(i) and @@ -291,7 +291,7 @@ module AssignableInternal { cached newtype TAssignableDefinition = TAssignmentDefinition(Assignment a) { - not a.getLValue() instanceof TupleExpr and + not a.getLeftOperand() instanceof TupleExpr and not a instanceof AssignCallOperation and not a instanceof AssignCoalesceExpr } or @@ -358,7 +358,7 @@ module AssignableInternal { // Not defined by dispatch in order to avoid too conservative negative recursion error cached AssignableAccess getTargetAccess(AssignableDefinition def) { - def = TAssignmentDefinition(any(Assignment a | a.getLValue() = result)) + def = TAssignmentDefinition(any(Assignment a | a.getLeftOperand() = result)) or def = TTupleAssignmentDefinition(_, result) or @@ -381,8 +381,8 @@ module AssignableInternal { tupleAssignmentPair(ae, ac, result) ) or - exists(Assignment ass | ac = ass.getLValue() | - result = ass.getRValue() and + exists(Assignment ass | ac = ass.getLeftOperand() | + result = ass.getRightOperand() and not ass instanceof AssignOperation ) or @@ -527,7 +527,7 @@ module AssignableDefinitions { Assignment getAssignment() { result = a } override Expr getSource() { - result = a.getRValue() and + result = a.getRightOperand() and not a instanceof AddOrRemoveEventExpr } diff --git a/csharp/ql/lib/semmle/code/csharp/Conversion.qll b/csharp/ql/lib/semmle/code/csharp/Conversion.qll index ec7ef9cac95..e151944dc38 100644 --- a/csharp/ql/lib/semmle/code/csharp/Conversion.qll +++ b/csharp/ql/lib/semmle/code/csharp/Conversion.qll @@ -232,14 +232,9 @@ private module Identity { */ pragma[nomagic] private predicate convTypeArguments(Type fromTypeArgument, Type toTypeArgument, int i) { - exists(int j | - fromTypeArgument = getTypeArgumentRanked(_, _, i) and - toTypeArgument = getTypeArgumentRanked(_, _, j) and - i <= j and - j <= i - | - convIdentity(fromTypeArgument, toTypeArgument) - ) + fromTypeArgument = getTypeArgumentRanked(_, _, pragma[only_bind_into](i)) and + toTypeArgument = getTypeArgumentRanked(_, _, pragma[only_bind_into](i)) and + convIdentity(fromTypeArgument, toTypeArgument) } pragma[nomagic] @@ -718,7 +713,7 @@ private class SignedIntegralConstantExpr extends Expr { } private predicate convConstantIntExpr(SignedIntegralConstantExpr e, SimpleType toType) { - exists(int n | n = e.getValue().toInt() | + exists(int n | n = e.getIntValue() | toType = any(SByteType t | n in [t.minValue() .. t.maxValue()]) or toType = any(ByteType t | n in [t.minValue() .. t.maxValue()]) @@ -735,7 +730,7 @@ private predicate convConstantIntExpr(SignedIntegralConstantExpr e, SimpleType t private predicate convConstantLongExpr(SignedIntegralConstantExpr e) { e.getType() instanceof LongType and - e.getValue().toInt() >= 0 + e.getIntValue() >= 0 } /** 6.1.10: Implicit reference conversions involving type parameters. */ @@ -929,19 +924,16 @@ private module Variance { private predicate convTypeArguments( TypeArgument fromTypeArgument, TypeArgument toTypeArgument, int i, TVariance v ) { - exists(int j | - fromTypeArgument = getTypeArgumentRanked(_, _, i, _) and - toTypeArgument = getTypeArgumentRanked(_, _, j, _) and - i <= j and - j <= i - | + fromTypeArgument = getTypeArgumentRanked(_, _, pragma[only_bind_into](i), _) and + toTypeArgument = getTypeArgumentRanked(_, _, pragma[only_bind_into](i), _) and + ( convIdentity(fromTypeArgument, toTypeArgument) and v = TNone() or - convRefTypeTypeArgumentOut(fromTypeArgument, toTypeArgument, j) and + convRefTypeTypeArgumentOut(fromTypeArgument, toTypeArgument, i) and v = TOut() or - convRefTypeTypeArgumentIn(toTypeArgument, fromTypeArgument, j) and + convRefTypeTypeArgumentIn(toTypeArgument, fromTypeArgument, i) and v = TIn() ) } diff --git a/csharp/ql/lib/semmle/code/csharp/PrintAst.qll b/csharp/ql/lib/semmle/code/csharp/PrintAst.qll index 1ac96c85e78..1fab6b0f8c4 100644 --- a/csharp/ql/lib/semmle/code/csharp/PrintAst.qll +++ b/csharp/ql/lib/semmle/code/csharp/PrintAst.qll @@ -343,10 +343,10 @@ final class AssignmentNode extends ControlFlowElementNode { result.(TypeMentionNode).getTarget() = controlFlowElement or childIndex = 0 and - result.(ElementNode).getElement() = assignment.getLValue() + result.(ElementNode).getElement() = assignment.getLeftOperand() or childIndex = 1 and - result.(ElementNode).getElement() = assignment.getRValue() + result.(ElementNode).getElement() = assignment.getRightOperand() } } diff --git a/csharp/ql/lib/semmle/code/csharp/Property.qll b/csharp/ql/lib/semmle/code/csharp/Property.qll index bbd4fdd9d8e..c9a338d0359 100644 --- a/csharp/ql/lib/semmle/code/csharp/Property.qll +++ b/csharp/ql/lib/semmle/code/csharp/Property.qll @@ -535,8 +535,8 @@ class Setter extends Accessor, @setter { exists(AssignExpr assign | this.getStatementBody().getNumberOfStmts() = 1 and assign.getParent() = this.getStatementBody().getAChild() and - assign.getLValue() = result.getAnAccess() and - assign.getRValue() = accessToValue() + assign.getLeftOperand() = result.getAnAccess() and + assign.getRightOperand() = accessToValue() ) } diff --git a/csharp/ql/lib/semmle/code/csharp/commons/ComparisonTest.qll b/csharp/ql/lib/semmle/code/csharp/commons/ComparisonTest.qll index b4641560892..776e2e97c37 100644 --- a/csharp/ql/lib/semmle/code/csharp/commons/ComparisonTest.qll +++ b/csharp/ql/lib/semmle/code/csharp/commons/ComparisonTest.qll @@ -161,7 +161,7 @@ private newtype TComparisonTest = compare.getComparisonKind().isCompare() and outerKind = outer.getComparisonKind() and outer.getAnArgument() = compare.getExpr() and - i = outer.getAnArgument().getValue().toInt() + i = outer.getAnArgument().getIntValue() | outerKind.isEquality() and ( diff --git a/csharp/ql/lib/semmle/code/csharp/commons/Constants.qll b/csharp/ql/lib/semmle/code/csharp/commons/Constants.qll index 5025202eb21..a5f1bc43abe 100644 --- a/csharp/ql/lib/semmle/code/csharp/commons/Constants.qll +++ b/csharp/ql/lib/semmle/code/csharp/commons/Constants.qll @@ -32,13 +32,13 @@ private module ConstantComparisonOperation { private int maxValue(Expr expr) { if convertedType(expr) instanceof IntegralType and exists(expr.getValue()) - then result = expr.getValue().toInt() + then result = expr.getIntValue() else result = convertedType(expr).maxValue() } private int minValue(Expr expr) { if convertedType(expr) instanceof IntegralType and exists(expr.getValue()) - then result = expr.getValue().toInt() + then result = expr.getIntValue() else result = convertedType(expr).minValue() } diff --git a/csharp/ql/lib/semmle/code/csharp/commons/Strings.qll b/csharp/ql/lib/semmle/code/csharp/commons/Strings.qll index 678a1f92816..3fde913358b 100644 --- a/csharp/ql/lib/semmle/code/csharp/commons/Strings.qll +++ b/csharp/ql/lib/semmle/code/csharp/commons/Strings.qll @@ -29,7 +29,7 @@ class ImplicitToStringExpr extends Expr { m = p.getCallable() | m = any(SystemTextStringBuilderClass c).getAMethod() and - m.getName().regexpMatch("Append(Line)?") and + m.getName() = "Append" and not p.getType() instanceof ArrayType or p instanceof StringFormatItemParameter and diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll index 03a5aa7e2b7..66b591cfcd2 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/Guards.qll @@ -60,25 +60,16 @@ private module GuardsInput implements override boolean asBooleanValue() { boolConst(this, result) } } - private predicate intConst(Expr e, int i) { - e.getValue().toInt() = i and - ( - e.getType() instanceof Enum - or - e.getType() instanceof IntegralType - ) - } - private class IntegerConstant extends ConstantExpr { - IntegerConstant() { intConst(this, _) } + IntegerConstant() { exists(this.getIntValue()) } - override int asIntegerValue() { intConst(this, result) } + override int asIntegerValue() { result = this.getIntValue() } } private class EnumConst extends ConstantExpr { EnumConst() { this.getType() instanceof Enum and this.hasValue() } - override int asIntegerValue() { result = this.getValue().toInt() } + override int asIntegerValue() { result = this.getIntValue() } } private class StringConstant extends ConstantExpr instanceof StringLiteral { @@ -136,7 +127,7 @@ private module GuardsInput implements IdExpr() { this instanceof AssignExpr or this instanceof CastExpr } Expr getEqualChildExpr() { - result = this.(AssignExpr).getRValue() + result = this.(AssignExpr).getRightOperand() or result = this.(CastExpr).getExpr() } @@ -517,35 +508,35 @@ class EnumerableCollectionExpr extends Expr { | // x.Length == 0 ct.getComparisonKind().isEquality() and - ct.getAnArgument().getValue().toInt() = 0 and + ct.getAnArgument().getIntValue() = 0 and branch = isEmpty or // x.Length == k, k > 0 ct.getComparisonKind().isEquality() and - ct.getAnArgument().getValue().toInt() > 0 and + ct.getAnArgument().getIntValue() > 0 and branch = true and isEmpty = false or // x.Length != 0 ct.getComparisonKind().isInequality() and - ct.getAnArgument().getValue().toInt() = 0 and + ct.getAnArgument().getIntValue() = 0 and branch = isEmpty.booleanNot() or // x.Length != k, k != 0 ct.getComparisonKind().isInequality() and - ct.getAnArgument().getValue().toInt() != 0 and + ct.getAnArgument().getIntValue() != 0 and branch = false and isEmpty = false or // x.Length > k, k >= 0 ct.getComparisonKind().isLessThan() and - ct.getFirstArgument().getValue().toInt() >= 0 and + ct.getFirstArgument().getIntValue() >= 0 and branch = true and isEmpty = false or // x.Length >= k, k > 0 ct.getComparisonKind().isLessThanEquals() and - ct.getFirstArgument().getValue().toInt() > 0 and + ct.getFirstArgument().getIntValue() > 0 and branch = true and isEmpty = false ) @@ -836,7 +827,7 @@ module Internal { /** Holds if expression `e2` is a `null` value whenever `e1` is. */ predicate nullValueImpliedUnary(Expr e1, Expr e2) { - e1 = e2.(AssignExpr).getRValue() + e1 = e2.(AssignExpr).getRightOperand() or e1 = e2.(Cast).getExpr() or @@ -923,7 +914,7 @@ module Internal { /** Holds if expression `e2` is a non-`null` value whenever `e1` is. */ predicate nonNullValueImpliedUnary(Expr e1, Expr e2) { e1 = e2.(CastExpr).getExpr() or - e1 = e2.(AssignExpr).getRValue() or + e1 = e2.(AssignExpr).getRightOperand() or e1 = e2.(NullCoalescingOperation).getAnOperand() } diff --git a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImpl.qll b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImpl.qll index e29e92d26eb..dc2c7477a35 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImpl.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImpl.qll @@ -521,7 +521,7 @@ module Expressions { // ``` // need special treatment, because the accesses `[0]`, `[1]`, and `[2]` // have no qualifier. - this = any(MemberInitializer mi).getLValue() + this = any(MemberInitializer mi).getLeftOperand() ) and not exists(AssignableDefinitions::OutRefDefinition def | def.getTargetAccess() = this) } diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/Nullness.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/Nullness.qll index a82779eaa5d..3d690ee1ac4 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/Nullness.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/Nullness.qll @@ -31,7 +31,7 @@ private Expr maybeNullExpr(Expr reason) { or result instanceof AsExpr and reason = result or - result.(AssignExpr).getRValue() = maybeNullExpr(reason) + result.(AssignExpr).getRightOperand() = maybeNullExpr(reason) or result.(CastExpr).getExpr() = maybeNullExpr(reason) or diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImplSpecific.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImplSpecific.qll index af104d777b8..ab1e75b3d0f 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImplSpecific.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImplSpecific.qll @@ -29,4 +29,8 @@ module CsharpDataFlow implements InputSig { predicate neverSkipInPathGraph(Node n) { exists(n.(AssignableDefinitionNode).getDefinition().getTargetAccess()) } + + DataFlowType getSourceContextParameterNodeType(Node p) { + exists(p) and result.isSourceContextParameterType() + } } diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll index 109c27de67b..ae530b2d451 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll @@ -528,7 +528,7 @@ module LocalFlow { e2 = any(AssignExpr ae | ae.getParent() = any(ControlFlowElement cfe | not cfe instanceof ExprStmt) and - e1 = ae.getRValue() + e1 = ae.getRightOperand() ) or e1 = e2.(ObjectCreation).getInitializer() @@ -554,7 +554,7 @@ module LocalFlow { e2 = we ) or - exists(AssignExpr ae | ae.getLValue().(TupleExpr) = e2 and ae.getRValue() = e1) + exists(AssignExpr ae | ae.getLeftOperand().(TupleExpr) = e2 and ae.getRightOperand() = e1) or exists(ControlFlowElement cfe | cfe = e2.(TupleExpr).(PatternExpr).getPatternMatch() | cfe.(IsExpr).getExpr() = e1 @@ -795,7 +795,7 @@ private predicate fieldOrPropertyStore(ContentSet c, Expr src, Expr q, boolean p q = we and mi = we.getInitializer().getAMemberInitializer() and f = mi.getInitializedMember() and - src = mi.getRValue() and + src = mi.getRightOperand() and postUpdate = false ) or @@ -804,7 +804,7 @@ private predicate fieldOrPropertyStore(ContentSet c, Expr src, Expr q, boolean p mi = q.(ObjectInitializer).getAMemberInitializer() and q.getParent() instanceof ObjectCreation and f = mi.getInitializedMember() and - src = mi.getRValue() and + src = mi.getRightOperand() and postUpdate = false ) or @@ -879,8 +879,8 @@ private predicate arrayStore(Expr src, Expr a, boolean postUpdate) { // Member initializer, `new C { Array = { [i] = src } }` exists(MemberInitializer mi | mi = a.(ObjectInitializer).getAMemberInitializer() and - mi.getLValue() instanceof ArrayAccess and - mi.getRValue() = src and + mi.getLeftOperand() instanceof ArrayAccess and + mi.getRightOperand() = src and postUpdate = false ) } @@ -1179,7 +1179,8 @@ private module Cached { cached newtype TDataFlowType = TGvnDataFlowType(Gvn::GvnType t) or - TDelegateDataFlowType(Callable lambda) { lambdaCreationExpr(_, lambda) } + TDelegateDataFlowType(Callable lambda) { lambdaCreationExpr(_, lambda) } or + TSourceContextParameterType() } import Cached @@ -2394,6 +2395,8 @@ class DataFlowType extends TDataFlowType { Callable asDelegate() { this = TDelegateDataFlowType(result) } + predicate isSourceContextParameterType() { this = TSourceContextParameterType() } + /** * Gets an expression that creates a delegate of this type. * @@ -2412,6 +2415,9 @@ class DataFlowType extends TDataFlowType { result = this.asGvnType().toString() or result = this.asDelegate().toString() + or + this.isSourceContextParameterType() and + result = "" } } @@ -2469,6 +2475,11 @@ private predicate compatibleTypesDelegateLeft(DataFlowType dt1, DataFlowType dt2 ) } +pragma[nomagic] +private predicate compatibleTypesSourceContextParameterTypeLeft(DataFlowType dt1, DataFlowType dt2) { + dt1.isSourceContextParameterType() and not exists(dt2.asDelegate()) +} + /** * Holds if `t1` and `t2` are compatible, that is, whether data can flow from * a node of type `t1` to a node of type `t2`. @@ -2499,6 +2510,10 @@ predicate compatibleTypes(DataFlowType dt1, DataFlowType dt2) { compatibleTypesDelegateLeft(dt2, dt1) or dt1.asDelegate() = dt2.asDelegate() + or + compatibleTypesSourceContextParameterTypeLeft(dt1, dt2) + or + compatibleTypesSourceContextParameterTypeLeft(dt2, dt1) } pragma[nomagic] @@ -2511,6 +2526,8 @@ predicate typeStrongerThan(DataFlowType t1, DataFlowType t2) { uselessTypebound(t2) or compatibleTypesDelegateLeft(t1, t2) + or + compatibleTypesSourceContextParameterTypeLeft(t1, t2) } /** @@ -2582,7 +2599,7 @@ module PostUpdateNodes { call.getExpr() = init.(CollectionInitializer).getAnElementInitializer() or // E.g. `new Dictionary() { [0] = "a", [1] = "b" }` - call.getExpr() = init.(ObjectInitializer).getAMemberInitializer().getLValue() + call.getExpr() = init.(ObjectInitializer).getAMemberInitializer().getLeftOperand() ) } @@ -2795,7 +2812,7 @@ predicate additionalLambdaFlowStep(Node nodeFrom, Node nodeTo, boolean preserves preservesValue = true or exists(AddEventExpr aee | - nodeFrom.asExpr() = aee.getRValue() and + nodeFrom.asExpr() = aee.getRightOperand() and nodeTo.asExpr().(EventRead).getTarget() = aee.getTarget() and preservesValue = false ) diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlow.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlow.qll index 024e9cf119d..f8cec8c4d9f 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlow.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlow.qll @@ -4,13 +4,17 @@ * Provides classes and predicates for dealing with MaD flow models specified * in data extensions and CSV format. * - * The CSV specification has the following columns: + * The extensible relations have the following columns: * - Sources: * `namespace; type; subtypes; name; signature; ext; output; kind; provenance` * - Sinks: * `namespace; type; subtypes; name; signature; ext; input; kind; provenance` * - Summaries: * `namespace; type; subtypes; name; signature; ext; input; output; kind; provenance` + * - Barriers: + * `namespace; type; subtypes; name; signature; ext; output; kind; provenance` + * - BarrierGuards: + * `namespace; type; subtypes; name; signature; ext; input; acceptingValue; kind; provenance` * - Neutrals: * `namespace; type; name; signature; kind; provenance` * A neutral is used to indicate that a callable is neutral with respect to flow (no summary), source (is not a source) or sink (is not a sink). @@ -69,14 +73,17 @@ * - "Field[f]": Selects the contents of field `f`. * - "Property[p]": Selects the contents of property `p`. * - * 8. The `kind` column is a tag that can be referenced from QL to determine to + * 8. The `acceptingValue` column of barrier guard models specifies the condition + * under which the guard blocks flow. It can be one of "true" or "false". In + * the future "no-exception", "not-zero", "null", "not-null" may be supported. + * 9. The `kind` column is a tag that can be referenced from QL to determine to * which classes the interpreted elements should be added. For example, for * sources "remote" indicates a default remote flow source, and for summaries * "taint" indicates a default additional taint step and "value" indicates a * globally applicable value-preserving step. For neutrals the kind can be `summary`, * `source` or `sink` to indicate that the neutral is neutral with respect to * flow (no summary), source (is not a source) or sink (is not a sink). - * 9. The `provenance` column is a tag to indicate the origin and verification of a model. + * 10. The `provenance` column is a tag to indicate the origin and verification of a model. * The format is {origin}-{verification} or just "manual" where the origin describes * the origin of the model and verification describes how the model has been verified. * Some examples are: @@ -230,11 +237,11 @@ module ModelValidation { result = "Unrecognized provenance description \"" + provenance + "\" in " + pred + " model." ) or - exists(string acceptingvalue | - barrierGuardModel(_, _, _, _, _, _, _, acceptingvalue, _, _, _) and - invalidAcceptingValue(acceptingvalue) and + exists(string acceptingValue | + barrierGuardModel(_, _, _, _, _, _, _, acceptingValue, _, _, _) and + invalidAcceptingValue(acceptingValue) and result = - "Unrecognized accepting value description \"" + acceptingvalue + + "Unrecognized accepting value description \"" + acceptingValue + "\" in barrier guard model." ) } @@ -482,13 +489,13 @@ private module Cached { private predicate barrierGuardChecks(Guard g, Expr e, GuardValue gv, TKindModelPair kmp) { exists( - SourceSinkInterpretationInput::InterpretNode n, AcceptingValue acceptingvalue, string kind, + SourceSinkInterpretationInput::InterpretNode n, AcceptingValue acceptingValue, string kind, string model | - isBarrierGuardNode(n, acceptingvalue, kind, model) and + isBarrierGuardNode(n, acceptingValue, kind, model) and n.asNode().asExpr() = e and kmp = TMkPair(kind, model) and - gv = convertAcceptingValue(acceptingvalue) + gv = convertAcceptingValue(acceptingValue) | g.(Call).getAnArgument() = e or g.(QualifiableExpr).getQualifier() = e ) diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlowExtensions.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlowExtensions.qll index 3461f0a5186..cd438ece284 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlowExtensions.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlowExtensions.qll @@ -33,7 +33,7 @@ extensible predicate barrierModel( */ extensible predicate barrierGuardModel( string namespace, string type, boolean subtypes, string name, string signature, string ext, - string input, string acceptingvalue, string kind, string provenance, QlBuiltins::ExtensionId madId + string input, string acceptingValue, string kind, string provenance, QlBuiltins::ExtensionId madId ); /** diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/FlowSummaryImpl.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/FlowSummaryImpl.qll index ec6bbf81fee..a7ab18a6290 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/FlowSummaryImpl.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/FlowSummaryImpl.qll @@ -253,13 +253,13 @@ module SourceSinkInterpretationInput implements } predicate barrierGuardElement( - Element e, string input, Public::AcceptingValue acceptingvalue, string kind, + Element e, string input, Public::AcceptingValue acceptingValue, string kind, Public::Provenance provenance, string model ) { exists( string namespace, string type, boolean subtypes, string name, string signature, string ext | - barrierGuardModel(namespace, type, subtypes, name, signature, ext, input, acceptingvalue, + barrierGuardModel(namespace, type, subtypes, name, signature, ext, input, acceptingValue, kind, provenance, model) and e = interpretElement(namespace, type, subtypes, name, signature, ext, _) ) diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/SsaImpl.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/SsaImpl.qll index 2809f8187b9..83593a5df36 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/SsaImpl.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/SsaImpl.qll @@ -337,7 +337,7 @@ private module CallGraph { pred = succ.(DelegateCreation).getArgument() or exists(AddEventExpr ae | succ.(EventAccess).getTarget() = ae.getTarget() | - pred = ae.getRValue() + pred = ae.getRightOperand() ) } diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/ConstantUtils.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/ConstantUtils.qll index e3f5deb9898..bea31ed7f55 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/ConstantUtils.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/ConstantUtils.qll @@ -23,7 +23,7 @@ predicate systemArrayLengthAccess(PropertyAccess pa) { * - a read of the `Length` of an array with `val` lengths. */ private predicate constantIntegerExpr(ExprNode e, int val) { - e.getValue().toInt() = val + e.getExpr().getIntValue() = val or exists(ExprNode src | e = getAnExplicitDefinitionRead(src) and diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/RangeUtils.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/RangeUtils.qll index 46153f18dae..171f2d2f59e 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/RangeUtils.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/RangeUtils.qll @@ -21,7 +21,7 @@ private module Impl { /** Holds if SSA definition `def` equals `e + delta`. */ predicate ssaUpdateStep(ExplicitDefinition def, ExprNode e, int delta) { exists(ControlFlow::Node cfn | cfn = def.getControlFlowNode() | - e = cfn.(ExprNode::Assignment).getRValue() and + e = cfn.(ExprNode::Assignment).getRightOperand() and delta = 0 and not cfn instanceof ExprNode::AssignOperation or @@ -39,7 +39,7 @@ private module Impl { /** Holds if `e1 + delta` equals `e2`. */ predicate valueFlowStep(ExprNode e2, ExprNode e1, int delta) { - e2.(ExprNode::AssignExpr).getRValue() = e1 and delta = 0 + e2.(ExprNode::AssignExpr).getRightOperand() = e1 and delta = 0 or e2.(ExprNode::UnaryPlusExpr).getOperand() = e1 and delta = 0 or @@ -207,13 +207,13 @@ module ExprNode { override CS::Assignment e; /** Gets the left operand of this assignment. */ - ExprNode getLValue() { - result = unique(ExprNode res | hasChild(e, e.getLValue(), this, res) | res) + ExprNode getLeftOperand() { + result = unique(ExprNode res | hasChild(e, e.getLeftOperand(), this, res) | res) } /** Gets the right operand of this assignment. */ - ExprNode getRValue() { - result = unique(ExprNode res | hasChild(e, e.getRValue(), this, res) | res) + ExprNode getRightOperand() { + result = unique(ExprNode res | hasChild(e, e.getRightOperand(), this, res) | res) } } @@ -225,6 +225,10 @@ module ExprNode { /** A compound assignment operation. */ class AssignOperation extends Assignment, BinaryOperation { override CS::AssignOperation e; + + override ExprNode getLeftOperand() { result = Assignment.super.getLeftOperand() } + + override ExprNode getRightOperand() { result = Assignment.super.getRightOperand() } } /** A unary operation. */ diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/SignAnalysisSpecific.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/SignAnalysisSpecific.qll index d59d7958765..f64eceda134 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/SignAnalysisSpecific.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/SignAnalysisSpecific.qll @@ -168,7 +168,7 @@ private module Impl { /** Returned an expression that is assigned to `f`. */ ExprNode getAssignedValueToField(Field f) { result.getExpr() in [ - f.getAnAssignedValue(), any(AssignOperation a | a.getLValue() = f.getAnAccess()) + f.getAnAssignedValue(), any(AssignOperation a | a.getLeftOperand() = f.getAnAccess()) ] } @@ -231,7 +231,7 @@ private module Impl { /** Returns a sub expression of `e` for expression types where the sign depends on the child. */ ExprNode getASubExprWithSameSign(ExprNode e) { exists(Expr e_, Expr child | hasChild(e_, child, e, result) | - child = e_.(AssignExpr).getRValue() or + child = e_.(AssignExpr).getRightOperand() or child = e_.(UnaryPlusExpr).getOperand() or child = e_.(PostIncrExpr).getOperand() or child = e_.(PostDecrExpr).getOperand() or diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/SsaUtils.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/SsaUtils.qll index 89117d90ba7..cf4b44239e9 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/SsaUtils.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/rangeanalysis/SsaUtils.qll @@ -55,5 +55,5 @@ ExprNode ssaRead(Definition v, int delta) { or v.(ExplicitDefinition).getControlFlowNode().(ExprNode::Assignment) = result and delta = 0 or - result.(ExprNode::AssignExpr).getRValue() = ssaRead(v, delta) + result.(ExprNode::AssignExpr).getRightOperand() = ssaRead(v, delta) } diff --git a/csharp/ql/lib/semmle/code/csharp/dispatch/Dispatch.qll b/csharp/ql/lib/semmle/code/csharp/dispatch/Dispatch.qll index f7f6c7a50be..770fab65f54 100644 --- a/csharp/ql/lib/semmle/code/csharp/dispatch/Dispatch.qll +++ b/csharp/ql/lib/semmle/code/csharp/dispatch/Dispatch.qll @@ -1348,7 +1348,7 @@ private module Internal { any(DynamicMemberAccess dma | this = TDispatchDynamicEventAccess(_, dma, _)).getQualifier() } - override Expr getArgument(int i) { i = 0 and result = this.getCall().getRValue() } + override Expr getArgument(int i) { i = 0 and result = this.getCall().getRightOperand() } } /** A call to a constructor using dynamic types. */ diff --git a/csharp/ql/lib/semmle/code/csharp/exprs/Access.qll b/csharp/ql/lib/semmle/code/csharp/exprs/Access.qll index 84375bc7013..d9fb16f0974 100644 --- a/csharp/ql/lib/semmle/code/csharp/exprs/Access.qll +++ b/csharp/ql/lib/semmle/code/csharp/exprs/Access.qll @@ -112,7 +112,7 @@ class BaseAccess extends Access, @base_access_expr { class MemberAccess extends Access, QualifiableExpr, @member_access_expr { override predicate hasImplicitThisQualifier() { QualifiableExpr.super.hasImplicitThisQualifier() and - not exists(MemberInitializer mi | mi.getLValue() = this) + not exists(MemberInitializer mi | mi.getLeftOperand() = this) } override Member getQualifiedDeclaration() { result = this.getTarget() } diff --git a/csharp/ql/lib/semmle/code/csharp/exprs/Assignment.qll b/csharp/ql/lib/semmle/code/csharp/exprs/Assignment.qll index 467149011d2..8c7dd80da24 100644 --- a/csharp/ql/lib/semmle/code/csharp/exprs/Assignment.qll +++ b/csharp/ql/lib/semmle/code/csharp/exprs/Assignment.qll @@ -20,14 +20,22 @@ class Assignment extends BinaryOperation, @assign_expr { expr_parent(_, 1, this) } - /** Gets the left operand of this assignment. */ - Expr getLValue() { result = this.getLeftOperand() } + /** + * DEPRECATED: Use `getLeftOperand` instead. + * + * Gets the left operand of this assignment. + */ + deprecated Expr getLValue() { result = this.getLeftOperand() } - /** Gets the right operand of this assignment. */ - Expr getRValue() { result = this.getRightOperand() } + /** + * DEPRECATED: Use `getRightOperand` instead. + * + * Gets the right operand of this assignment. + */ + deprecated Expr getRValue() { result = this.getRightOperand() } /** Gets the variable being assigned to, if any. */ - Variable getTargetVariable() { result.getAnAccess() = this.getLValue() } + Variable getTargetVariable() { result.getAnAccess() = this.getLeftOperand() } override string getOperator() { none() } } @@ -40,7 +48,12 @@ class LocalVariableDeclAndInitExpr extends LocalVariableDeclExpr, Assignment { override LocalVariable getTargetVariable() { result = this.getVariable() } - override LocalVariableAccess getLValue() { result = Assignment.super.getLValue() } + /** + * DEPRECATED: Use `getLeftOperand` instead. + */ + deprecated override LocalVariableAccess getLValue() { result = this.getLeftOperand() } + + override LocalVariableAccess getLeftOperand() { result = Assignment.super.getLeftOperand() } override string toString() { result = LocalVariableDeclExpr.super.toString() + " = ..." } @@ -223,9 +236,12 @@ deprecated class AssignUnsighedRightShiftExpr = AssignUnsignedRightShiftExpr; */ class AddOrRemoveEventExpr extends AssignOperation, @assign_event_expr { /** Gets the event targeted by this event assignment. */ - Event getTarget() { result = this.getLValue().getTarget() } + Event getTarget() { result = this.getLeftOperand().getTarget() } - override EventAccess getLValue() { result = this.getChild(0) } + /** + * DEPRECATED: Use `getLeftOperand` instead. + */ + deprecated override EventAccess getLValue() { result = this.getLeftOperand() } override EventAccess getLeftOperand() { result = this.getChild(0) } } diff --git a/csharp/ql/lib/semmle/code/csharp/exprs/Call.qll b/csharp/ql/lib/semmle/code/csharp/exprs/Call.qll index 0d9e414a5c4..272a8e0caae 100644 --- a/csharp/ql/lib/semmle/code/csharp/exprs/Call.qll +++ b/csharp/ql/lib/semmle/code/csharp/exprs/Call.qll @@ -773,7 +773,7 @@ class EventCall extends AccessorCall, EventAccessExpr { override EventAccessor getTarget() { exists(Event e, AddOrRemoveEventExpr aoree | e = this.getEvent() and - aoree.getLValue() = this + aoree.getLeftOperand() = this | aoree instanceof AddEventExpr and result = e.getAddEventAccessor() or @@ -784,8 +784,8 @@ class EventCall extends AccessorCall, EventAccessExpr { override Expr getArgument(int i) { i = 0 and exists(AddOrRemoveEventExpr aoree | - aoree.getLValue() = this and - result = aoree.getRValue() + aoree.getLeftOperand() = this and + result = aoree.getRightOperand() ) } diff --git a/csharp/ql/lib/semmle/code/csharp/exprs/Creation.qll b/csharp/ql/lib/semmle/code/csharp/exprs/Creation.qll index 0e16e0da9c3..19ff9fac53b 100644 --- a/csharp/ql/lib/semmle/code/csharp/exprs/Creation.qll +++ b/csharp/ql/lib/semmle/code/csharp/exprs/Creation.qll @@ -95,7 +95,7 @@ class MemberInitializer extends AssignExpr { MemberInitializer() { this.getParent() instanceof ObjectInitializer } /** Gets the initialized member. */ - Member getInitializedMember() { result.getAnAccess() = this.getLValue() } + Member getInitializedMember() { result.getAnAccess() = this.getLeftOperand() } override string getAPrimaryQlClass() { result = "MemberInitializer" } } diff --git a/csharp/ql/lib/semmle/code/csharp/exprs/Expr.qll b/csharp/ql/lib/semmle/code/csharp/exprs/Expr.qll index 66764d06479..a26afb00490 100644 --- a/csharp/ql/lib/semmle/code/csharp/exprs/Expr.qll +++ b/csharp/ql/lib/semmle/code/csharp/exprs/Expr.qll @@ -57,6 +57,13 @@ class Expr extends ControlFlowElement, @expr { /** Gets the value of this expression, if any */ string getValue() { expr_value(this, result) } + /** Gets the integer value of this expression, if any. */ + cached + int getIntValue() { + result = this.getValue().toInt() and + (this.getType() instanceof IntegralType or this.getType() instanceof Enum) + } + /** Holds if this expression has a value. */ final predicate hasValue() { exists(this.getValue()) } @@ -1099,7 +1106,7 @@ class QualifiableExpr extends Expr, @qualifiable_expr { } private Expr getAnAssignOrForeachChild() { - result = any(AssignExpr e).getLValue() + result = any(AssignExpr e).getLeftOperand() or result = any(ForeachStmt fs).getVariableDeclTuple() or diff --git a/csharp/ql/lib/semmle/code/csharp/frameworks/Moq.qll b/csharp/ql/lib/semmle/code/csharp/frameworks/Moq.qll index 9ab9a026fd2..0beec9a84b2 100644 --- a/csharp/ql/lib/semmle/code/csharp/frameworks/Moq.qll +++ b/csharp/ql/lib/semmle/code/csharp/frameworks/Moq.qll @@ -41,6 +41,6 @@ class ReturnedByMockObject extends ObjectCreation { * Gets a value used to initialize a member of this object creation. */ Expr getAMemberInitializationValue() { - result = this.getInitializer().(ObjectInitializer).getAMemberInitializer().getRValue() + result = this.getInitializer().(ObjectInitializer).getAMemberInitializer().getRightOperand() } } diff --git a/csharp/ql/lib/semmle/code/csharp/frameworks/Sql.qll b/csharp/ql/lib/semmle/code/csharp/frameworks/Sql.qll index 6b1eb7b67fb..58d6d68bf0e 100644 --- a/csharp/ql/lib/semmle/code/csharp/frameworks/Sql.qll +++ b/csharp/ql/lib/semmle/code/csharp/frameworks/Sql.qll @@ -17,14 +17,14 @@ abstract class SqlExpr extends Expr { class CommandTextAssignmentSqlExpr extends SqlExpr, AssignExpr { CommandTextAssignmentSqlExpr() { exists(Property p, SystemDataIDbCommandInterface i, Property text | - p = this.getLValue().(PropertyAccess).getTarget() and + p = this.getLeftOperand().(PropertyAccess).getTarget() and text = i.getCommandTextProperty() | p.overridesOrImplementsOrEquals(text) ) } - override Expr getSql() { result = this.getRValue() } + override Expr getSql() { result = this.getRightOperand() } } /** A construction of an unknown `IDbCommand` object. */ diff --git a/csharp/ql/lib/semmle/code/csharp/frameworks/system/runtime/CompilerServices.qll b/csharp/ql/lib/semmle/code/csharp/frameworks/system/runtime/CompilerServices.qll index 2c0ba292b9c..aca2cb2cb1c 100644 --- a/csharp/ql/lib/semmle/code/csharp/frameworks/system/runtime/CompilerServices.qll +++ b/csharp/ql/lib/semmle/code/csharp/frameworks/system/runtime/CompilerServices.qll @@ -81,7 +81,7 @@ class SystemRuntimeCompilerServicesInlineArrayAttribute extends Attribute { /** * Gets the length of the inline array. */ - int getLength() { result = this.getConstructorArgument(0).getValue().toInt() } + int getLength() { result = this.getConstructorArgument(0).getIntValue() } } /** An attribute of type `System.Runtime.CompilerServices.OverloadResolutionPriority`. */ @@ -94,5 +94,5 @@ class SystemRuntimeCompilerServicesOverloadResolutionPriorityAttribute extends A /** * Gets the priority number. */ - int getPriority() { result = this.getConstructorArgument(0).getValue().toInt() } + int getPriority() { result = this.getConstructorArgument(0).getIntValue() } } diff --git a/csharp/ql/lib/semmle/code/csharp/security/auth/SecureCookies.qll b/csharp/ql/lib/semmle/code/csharp/security/auth/SecureCookies.qll index 56b6294949b..e7cb6d8e308 100644 --- a/csharp/ql/lib/semmle/code/csharp/security/auth/SecureCookies.qll +++ b/csharp/ql/lib/semmle/code/csharp/security/auth/SecureCookies.qll @@ -100,20 +100,20 @@ Expr getAValueForCookiePolicyProp(string prop) { Expr getAValueForProp(ObjectCreation create, Assignment a, string prop) { // values set in object init exists(MemberInitializer init, Expr src, PropertyAccess pa | - a.getLValue() = pa and + a.getLeftOperand() = pa and pa.getTarget().hasName(prop) and init = create.getInitializer().(ObjectInitializer).getAMemberInitializer() and - init.getLValue() = pa and - DataFlow::localExprFlow(src, init.getRValue()) and + init.getLeftOperand() = pa and + DataFlow::localExprFlow(src, init.getRightOperand()) and result = src ) or // values set on var that create is assigned to exists(Expr src, PropertyAccess pa | - a.getLValue() = pa and + a.getLeftOperand() = pa and pa.getTarget().hasName(prop) and DataFlow::localExprFlow(create, pa.getQualifier()) and - DataFlow::localExprFlow(src, a.getRValue()) and + DataFlow::localExprFlow(src, a.getRightOperand()) and result = src ) } @@ -138,15 +138,15 @@ private module OnAppendCookieTrackingConfig impl exists(PropertyWrite pw, Assignment delegateAssign, Callable c | pw.getProperty().getName() = "OnAppendCookie" and pw.getProperty().getDeclaringType() instanceof MicrosoftAspNetCoreBuilderCookiePolicyOptions and - delegateAssign.getLValue() = pw and + delegateAssign.getLeftOperand() = pw and ( exists(LambdaExpr lambda | - delegateAssign.getRValue() = lambda and + delegateAssign.getRightOperand() = lambda and lambda = c ) or exists(DelegateCreation delegate | - delegateAssign.getRValue() = delegate and + delegateAssign.getRightOperand() = delegate and delegate.getArgument().(CallableAccess).getTarget() = c ) ) and @@ -159,9 +159,9 @@ private module OnAppendCookieTrackingConfig impl exists(PropertyWrite pw, Assignment a | pw.getProperty().getDeclaringType() instanceof MicrosoftAspNetCoreHttpCookieOptions and pw.getProperty().getName() = getPropertyName() and - a.getLValue() = pw and + a.getLeftOperand() = pw and exists(Expr val | - DataFlow::localExprFlow(val, a.getRValue()) and + DataFlow::localExprFlow(val, a.getRightOperand()) and val.getValue() = "true" ) and sink.asExpr() = pw.getQualifier() diff --git a/csharp/ql/lib/semmle/code/csharp/security/dataflow/UnsafeDeserializationQuery.qll b/csharp/ql/lib/semmle/code/csharp/security/dataflow/UnsafeDeserializationQuery.qll index 5b2bd407a5c..3c8911ef807 100644 --- a/csharp/ql/lib/semmle/code/csharp/security/dataflow/UnsafeDeserializationQuery.qll +++ b/csharp/ql/lib/semmle/code/csharp/security/dataflow/UnsafeDeserializationQuery.qll @@ -126,16 +126,16 @@ private module TypeNameTrackingConfig implements DataFlow::ConfigSig { or node1.getType() instanceof TypeNameHandlingEnum and exists(PropertyWrite pw, Property p, Assignment a | - a.getLValue() = pw and + a.getLeftOperand() = pw and pw.getProperty() = p and p.getDeclaringType() instanceof JsonSerializerSettingsClass and p.hasName("TypeNameHandling") and ( - node1.asExpr() = a.getRValue() and + node1.asExpr() = a.getRightOperand() and node2.asExpr() = pw.getQualifier() or exists(ObjectInitializer oi | - node1.asExpr() = oi.getAMemberInitializer().getRValue() and + node1.asExpr() = oi.getAMemberInitializer().getRightOperand() and node2.asExpr() = oi ) ) diff --git a/csharp/ql/lib/semmle/code/csharp/security/xml/InsecureXMLQuery.qll b/csharp/ql/lib/semmle/code/csharp/security/xml/InsecureXMLQuery.qll index 1abeaf797b0..765dc2adf54 100644 --- a/csharp/ql/lib/semmle/code/csharp/security/xml/InsecureXMLQuery.qll +++ b/csharp/ql/lib/semmle/code/csharp/security/xml/InsecureXMLQuery.qll @@ -84,15 +84,15 @@ private Expr getAValueForProp(ObjectCreation create, string prop) { // values set in object init exists(MemberInitializer init | init = create.getInitializer().(ObjectInitializer).getAMemberInitializer() and - init.getLValue().(PropertyAccess).getTarget().hasName(prop) and - result = init.getRValue() + init.getLeftOperand().(PropertyAccess).getTarget().hasName(prop) and + result = init.getRightOperand() ) or // values set on var that create is assigned to exists(Assignment propAssign | - DataFlow::localExprFlow(create, propAssign.getLValue().(PropertyAccess).getQualifier()) and - propAssign.getLValue().(PropertyAccess).getTarget().hasName(prop) and - result = propAssign.getRValue() + DataFlow::localExprFlow(create, propAssign.getLeftOperand().(PropertyAccess).getQualifier()) and + propAssign.getLeftOperand().(PropertyAccess).getTarget().hasName(prop) and + result = propAssign.getRightOperand() ) } diff --git a/csharp/ql/src/CHANGELOG.md b/csharp/ql/src/CHANGELOG.md index 39bfe944d5d..cdab7134185 100644 --- a/csharp/ql/src/CHANGELOG.md +++ b/csharp/ql/src/CHANGELOG.md @@ -1,3 +1,23 @@ +## 1.7.1 + +### Minor Analysis Improvements + +* The query `cs/useless-tostring-call` has been updated to avoid false + positive results in calls to `StringBuilder.AppendLine` and calls of + the form `base.ToString()`. Moreover, the alert message has been + made more precise. + +## 1.7.0 + +### Query Metadata Changes + +* The `@security-severity` metadata of `cs/log-forging` has been reduced from 7.8 (high) to 6.1 (medium). +* The `@security-severity` metadata of `cs/web/xss` has been increased from 6.1 (medium) to 7.8 (high). + +### Major Analysis Improvements + +* The `cs/constant-condition` query has been simplified. The query no longer reports trivially constant conditions as they were found to generally be intentional. As a result, it should now produce fewer false positives. Additionally, the simplification means that it now reports all the results that `cs/constant-comparison` used to report, and as consequence, that query has been deleted. + ## 1.6.6 No user-facing changes. diff --git a/csharp/ql/src/Dead Code/NonAssignedFields.ql b/csharp/ql/src/Dead Code/NonAssignedFields.ql index 83aa889b77c..b9e86809749 100644 --- a/csharp/ql/src/Dead Code/NonAssignedFields.ql +++ b/csharp/ql/src/Dead Code/NonAssignedFields.ql @@ -84,9 +84,9 @@ where not f.getDeclaringType() instanceof Enum and not f.getType() instanceof Struct and not exists(Assignment ae, Field g | - ae.getLValue().(FieldAccess).getTarget() = g and + ae.getLeftOperand().(FieldAccess).getTarget() = g and g.getUnboundDeclaration() = f and - not ae.getRValue() instanceof NullLiteral + not ae.getRightOperand() instanceof NullLiteral ) and not exists(MethodCall mc, int i, Field g | exists(Parameter p | mc.getTarget().getParameter(i) = p | p.isOut() or p.isRef()) and @@ -101,7 +101,7 @@ where not init instanceof NullLiteral ) and not exists(AssignOperation ua, Field g | - ua.getLValue().(FieldAccess).getTarget() = g and + ua.getLeftOperand().(FieldAccess).getTarget() = g and g.getUnboundDeclaration() = f ) and not exists(MutatorOperation op | diff --git a/csharp/ql/src/Language Abuse/ForeachCapture.ql b/csharp/ql/src/Language Abuse/ForeachCapture.ql index 03f1f99a044..2ed24b42eba 100644 --- a/csharp/ql/src/Language Abuse/ForeachCapture.ql +++ b/csharp/ql/src/Language Abuse/ForeachCapture.ql @@ -60,16 +60,16 @@ module LambdaDataFlow { } Element getAssignmentTarget(Expr e) { - exists(Assignment a | a.getRValue() = e | - result = a.getLValue().(PropertyAccess).getTarget() or - result = a.getLValue().(FieldAccess).getTarget() or - result = a.getLValue().(LocalVariableAccess).getTarget() or - result = a.getLValue().(EventAccess).getTarget() + exists(Assignment a | a.getRightOperand() = e | + result = a.getLeftOperand().(PropertyAccess).getTarget() or + result = a.getLeftOperand().(FieldAccess).getTarget() or + result = a.getLeftOperand().(LocalVariableAccess).getTarget() or + result = a.getLeftOperand().(EventAccess).getTarget() ) or exists(AddEventExpr aee | - e = aee.getRValue() and - result = aee.getLValue().getTarget() + e = aee.getRightOperand() and + result = aee.getLeftOperand().getTarget() ) or result = getCollectionAssignmentTarget(e) @@ -97,8 +97,8 @@ Element getCollectionAssignmentTarget(Expr e) { // Store values using indexer exists(IndexerAccess ia, AssignExpr ae | ia.getQualifier() = result.(Variable).getAnAccess() and - ia = ae.getLValue() and - e = ae.getRValue() + ia = ae.getLeftOperand() and + e = ae.getRightOperand() ) } diff --git a/csharp/ql/src/Language Abuse/MissedTernaryOpportunity.ql b/csharp/ql/src/Language Abuse/MissedTernaryOpportunity.ql index bd7492b8583..01d6baa9573 100644 --- a/csharp/ql/src/Language Abuse/MissedTernaryOpportunity.ql +++ b/csharp/ql/src/Language Abuse/MissedTernaryOpportunity.ql @@ -15,7 +15,7 @@ import csharp import semmle.code.csharp.commons.StructuralComparison private Expr getAssignedExpr(Stmt stmt) { - result = stmt.stripSingletonBlocks().(ExprStmt).getExpr().(AssignExpr).getLValue() + result = stmt.stripSingletonBlocks().(ExprStmt).getExpr().(AssignExpr).getLeftOperand() } from IfStmt is, string what diff --git a/csharp/ql/src/Likely Bugs/BadCheckOdd.ql b/csharp/ql/src/Likely Bugs/BadCheckOdd.ql index 34ae4b632ae..72924f9103d 100644 --- a/csharp/ql/src/Likely Bugs/BadCheckOdd.ql +++ b/csharp/ql/src/Likely Bugs/BadCheckOdd.ql @@ -13,7 +13,7 @@ import csharp predicate isDefinitelyPositive(Expr e) { - e.getValue().toInt() >= 0 or + e.getIntValue() >= 0 or e.(PropertyAccess).getTarget().hasName("Length") or e.(MethodCall).getTarget().hasUndecoratedName("Count") } @@ -23,12 +23,12 @@ where t.getLeftOperand() = lhs and t.getRightOperand() = rhs and not isDefinitelyPositive(lhs.getLeftOperand().stripCasts()) and - lhs.getRightOperand().(IntegerLiteral).getValue() = "2" and + lhs.getRightOperand().(IntegerLiteral).getIntValue() = 2 and ( - t instanceof EQExpr and rhs.getValue() = "1" and parity = "oddness" + t instanceof EQExpr and rhs.getIntValue() = 1 and parity = "oddness" or - t instanceof NEExpr and rhs.getValue() = "1" and parity = "evenness" + t instanceof NEExpr and rhs.getIntValue() = 1 and parity = "evenness" or - t instanceof GTExpr and rhs.getValue() = "0" and parity = "oddness" + t instanceof GTExpr and rhs.getIntValue() = 0 and parity = "oddness" ) select t, "Possibly invalid test for " + parity + ". This will fail for negative numbers." diff --git a/csharp/ql/src/Likely Bugs/Collections/WriteOnlyContainer.ql b/csharp/ql/src/Likely Bugs/Collections/WriteOnlyContainer.ql index 5fcb140e679..046099213cc 100644 --- a/csharp/ql/src/Likely Bugs/Collections/WriteOnlyContainer.ql +++ b/csharp/ql/src/Likely Bugs/Collections/WriteOnlyContainer.ql @@ -23,9 +23,10 @@ where ) and forex(Access a | a = v.getAnAccess() | a = any(ModifierMethodCall m).getQualifier() or - a = any(AssignExpr ass | ass.getRValue() instanceof ObjectCreation).getLValue() or + a = any(AssignExpr ass | ass.getRightOperand() instanceof ObjectCreation).getLeftOperand() or a = - any(LocalVariableDeclAndInitExpr ass | ass.getRValue() instanceof ObjectCreation).getLValue() + any(LocalVariableDeclAndInitExpr ass | ass.getRightOperand() instanceof ObjectCreation) + .getLeftOperand() ) and not v = any(ForeachStmt fs).getVariable() and not v = any(BindingPatternExpr vpe).getVariableDeclExpr().getVariable() and diff --git a/csharp/ql/src/Likely Bugs/MishandlingJapaneseEra.ql b/csharp/ql/src/Likely Bugs/MishandlingJapaneseEra.ql index c8df36bf7bf..3e54a3a00db 100644 --- a/csharp/ql/src/Likely Bugs/MishandlingJapaneseEra.ql +++ b/csharp/ql/src/Likely Bugs/MishandlingJapaneseEra.ql @@ -27,8 +27,8 @@ predicate isExactEraStartDateCreation(ObjectCreation cr) { cr.getType().hasFullyQualifiedName("System", "DateTime") or cr.getType().hasFullyQualifiedName("System", "DateTimeOffset") ) and - isEraStart(cr.getArgument(0).getValue().toInt(), cr.getArgument(1).getValue().toInt(), - cr.getArgument(2).getValue().toInt()) + isEraStart(cr.getArgument(0).getIntValue(), cr.getArgument(1).getIntValue(), + cr.getArgument(2).getIntValue()) } predicate isDateFromJapaneseCalendarToDateTime(MethodCall mc) { @@ -44,7 +44,7 @@ predicate isDateFromJapaneseCalendarToDateTime(MethodCall mc) { mc.getNumberOfArguments() = 7 // implicitly current era or mc.getNumberOfArguments() = 8 and - mc.getArgument(7).getValue() = "0" + mc.getArgument(7).getIntValue() = 0 ) // explicitly current era } diff --git a/csharp/ql/src/Likely Bugs/PossibleLossOfPrecision.ql b/csharp/ql/src/Likely Bugs/PossibleLossOfPrecision.ql index 8b719bb92a5..1c41d24fb3c 100644 --- a/csharp/ql/src/Likely Bugs/PossibleLossOfPrecision.ql +++ b/csharp/ql/src/Likely Bugs/PossibleLossOfPrecision.ql @@ -40,8 +40,8 @@ predicate convertedToFloatOrDecimal(Expr e, Type t) { /** Holds if `div` is an exact integer division. */ predicate exactDivision(DivExpr div) { exists(int numerator, int denominator | - numerator = div.getNumerator().stripCasts().getValue().toInt() and - denominator = div.getDenominator().stripCasts().getValue().toInt() and + numerator = div.getNumerator().stripCasts().getIntValue() and + denominator = div.getDenominator().stripCasts().getIntValue() and numerator % denominator = 0 ) } diff --git a/csharp/ql/src/Likely Bugs/SelfAssignment.ql b/csharp/ql/src/Likely Bugs/SelfAssignment.ql index f01a1378242..6e51b87a779 100644 --- a/csharp/ql/src/Likely Bugs/SelfAssignment.ql +++ b/csharp/ql/src/Likely Bugs/SelfAssignment.ql @@ -19,7 +19,7 @@ private predicate candidate(AssignExpr ae) { not ae instanceof MemberInitializer and // Enum field initializers are never self assignments. `enum E { A = 42 }` not ae.getParent().(Field).getDeclaringType() instanceof Enum and - forall(Expr e | e = ae.getLValue().getAChildExpr*() | + forall(Expr e | e = ae.getLeftOperand().getAChildExpr*() | // Non-trivial property accesses may have side-effects, // so these are not considered e instanceof PropertyAccess implies e instanceof TrivialPropertyAccess @@ -28,7 +28,7 @@ private predicate candidate(AssignExpr ae) { private predicate selfAssignExpr(AssignExpr ae) { candidate(ae) and - sameGvn(ae.getLValue(), ae.getRValue()) + sameGvn(ae.getLeftOperand(), ae.getRightOperand()) } private Declaration getDeclaration(Expr e) { @@ -40,5 +40,5 @@ private Declaration getDeclaration(Expr e) { } from AssignExpr ae, Declaration target -where selfAssignExpr(ae) and target = getDeclaration(ae.getLValue()) +where selfAssignExpr(ae) and target = getDeclaration(ae.getLeftOperand()) select ae, "This assignment assigns $@ to itself.", target, target.getName() diff --git a/csharp/ql/src/Linq/BadMultipleIteration.ql b/csharp/ql/src/Linq/BadMultipleIteration.ql index 8146bbf167d..0f9e335e225 100644 --- a/csharp/ql/src/Linq/BadMultipleIteration.ql +++ b/csharp/ql/src/Linq/BadMultipleIteration.ql @@ -50,7 +50,7 @@ predicate potentiallyConsumingAccess(VariableAccess va) { Expr sequenceSource(IEnumerableSequence seq) { result = seq.getInitializer() or - exists(Assignment a | a.getLValue() = seq.getAnAccess() and result = a.getRValue()) + exists(Assignment a | a.getLeftOperand() = seq.getAnAccess() and result = a.getRightOperand()) } from IEnumerableSequence seq, VariableAccess va diff --git a/csharp/ql/src/Performance/StringConcatenationInLoop.ql b/csharp/ql/src/Performance/StringConcatenationInLoop.ql index 3b3228588a4..d27b99e7bdd 100644 --- a/csharp/ql/src/Performance/StringConcatenationInLoop.ql +++ b/csharp/ql/src/Performance/StringConcatenationInLoop.ql @@ -24,7 +24,7 @@ class StringCat extends AddExpr { */ predicate isSelfConcatAssignExpr(AssignExpr e, Variable v) { exists(VariableAccess use | - stringCatContains(e.getRValue(), use) and + stringCatContains(e.getRightOperand(), use) and use.getTarget() = e.getTargetVariable() and v = use.getTarget() ) @@ -41,7 +41,7 @@ predicate stringCatContains(StringCat expr, Expr child) { * where `v` is a simple variable (and not, for example, a property). */ predicate isConcatExpr(AssignAddExpr e, Variable v) { - e.getLValue().getType() instanceof StringType and + e.getLeftOperand().getType() instanceof StringType and v = e.getTargetVariable() } diff --git a/csharp/ql/src/Security Features/CWE-1004/CookieWithoutHttpOnly.ql b/csharp/ql/src/Security Features/CWE-1004/CookieWithoutHttpOnly.ql index dcc520540bb..f72de01b5db 100644 --- a/csharp/ql/src/Security Features/CWE-1004/CookieWithoutHttpOnly.ql +++ b/csharp/ql/src/Security Features/CWE-1004/CookieWithoutHttpOnly.ql @@ -27,8 +27,8 @@ predicate cookieAppendHttpOnlyByDefault() { predicate httpOnlyFalse(ObjectCreation oc) { exists(Assignment a | - getAValueForProp(oc, a, "HttpOnly") = a.getRValue() and - a.getRValue().getValue() = "false" + getAValueForProp(oc, a, "HttpOnly") = a.getRightOperand() and + a.getRightOperand().getValue() = "false" ) } @@ -100,8 +100,8 @@ predicate nonHttpOnlyCookieBuilderAssignment(Assignment a, Expr val) { MicrosoftAspNetCoreAuthenticationCookiesCookieAuthenticationOptions ) and pw.getProperty().getName() = "HttpOnly" and - a.getLValue() = pw and - DataFlow::localExprFlow(val, a.getRValue()) + a.getLeftOperand() = pw and + DataFlow::localExprFlow(val, a.getRightOperand()) ) } @@ -111,7 +111,7 @@ where nonHttpOnlyCookieCall(httpOnlySink) or exists(Assignment a | - httpOnlySink = a.getRValue() and + httpOnlySink = a.getRightOperand() and nonHttpOnlyCookieBuilderAssignment(a, _) ) ) diff --git a/csharp/ql/src/Security Features/CWE-327/InsecureSQLConnection.ql b/csharp/ql/src/Security Features/CWE-327/InsecureSQLConnection.ql index 330ad1c1c32..a1dd249faba 100644 --- a/csharp/ql/src/Security Features/CWE-327/InsecureSQLConnection.ql +++ b/csharp/ql/src/Security Features/CWE-327/InsecureSQLConnection.ql @@ -35,8 +35,8 @@ module InsecureSqlConnectionConfig implements DataFlow::ConfigSig { ) and not exists(MemberInitializer mi | mi = oc.getInitializer().(ObjectInitializer).getAMemberInitializer() and - mi.getLValue().(PropertyAccess).getTarget().getName() = "Encrypt" and - mi.getRValue().(BoolLiteral).getValue() = "true" + mi.getLeftOperand().(PropertyAccess).getTarget().getName() = "Encrypt" and + mi.getRightOperand().(BoolLiteral).getValue() = "true" ) ) } diff --git a/csharp/ql/src/Security Features/CWE-614/CookieWithoutSecure.ql b/csharp/ql/src/Security Features/CWE-614/CookieWithoutSecure.ql index ce1f75d627c..1149b4bcad2 100644 --- a/csharp/ql/src/Security Features/CWE-614/CookieWithoutSecure.ql +++ b/csharp/ql/src/Security Features/CWE-614/CookieWithoutSecure.ql @@ -31,8 +31,8 @@ predicate cookieAppendSecureByDefault() { predicate secureFalse(ObjectCreation oc) { exists(Assignment a | - getAValueForProp(oc, a, "Secure") = a.getRValue() and - a.getRValue().getValue() = "false" + getAValueForProp(oc, a, "Secure") = a.getRightOperand() and + a.getRightOperand().getValue() = "false" ) } @@ -96,8 +96,8 @@ predicate insecureSecurePolicyAssignment(Assignment a, Expr val) { MicrosoftAspNetCoreAuthenticationCookiesCookieAuthenticationOptions ) and pw.getProperty().getName() = "SecurePolicy" and - a.getLValue() = pw and - DataFlow::localExprFlow(val, a.getRValue()) and + a.getLeftOperand() = pw and + DataFlow::localExprFlow(val, a.getRightOperand()) and val.getValue() = "2" // None ) } @@ -107,7 +107,7 @@ where insecureCookieCall(secureSink) or exists(Assignment a | - secureSink = a.getRValue() and + secureSink = a.getRightOperand() and insecureSecurePolicyAssignment(a, _) ) select secureSink, "Cookie attribute 'Secure' is not set to true." diff --git a/csharp/ql/src/Security Features/CookieWithOverlyBroadDomain.ql b/csharp/ql/src/Security Features/CookieWithOverlyBroadDomain.ql index 9c6e6935186..59a6340104a 100644 --- a/csharp/ql/src/Security Features/CookieWithOverlyBroadDomain.ql +++ b/csharp/ql/src/Security Features/CookieWithOverlyBroadDomain.ql @@ -14,11 +14,11 @@ import csharp from Assignment a, PropertyAccess pa where - a.getLValue() = pa and + a.getLeftOperand() = pa and pa.getTarget().hasName("Domain") and pa.getTarget().getDeclaringType().hasFullyQualifiedName("System.Web", "HttpCookie") and ( - a.getRValue().getValue().regexpReplaceAll("[^.]", "").length() < 2 or - a.getRValue().getValue().matches(".%") + a.getRightOperand().getValue().regexpReplaceAll("[^.]", "").length() < 2 or + a.getRightOperand().getValue().matches(".%") ) select a, "Overly broad domain for cookie." diff --git a/csharp/ql/src/Security Features/CookieWithOverlyBroadPath.ql b/csharp/ql/src/Security Features/CookieWithOverlyBroadPath.ql index 6690cac47d2..d659f7c8dc5 100644 --- a/csharp/ql/src/Security Features/CookieWithOverlyBroadPath.ql +++ b/csharp/ql/src/Security Features/CookieWithOverlyBroadPath.ql @@ -14,8 +14,8 @@ import csharp from Assignment a, PropertyAccess pa where - a.getLValue() = pa and + a.getLeftOperand() = pa and pa.getTarget().hasName("Path") and pa.getTarget().getDeclaringType().hasFullyQualifiedName("System.Web", "HttpCookie") and - a.getRValue().getValue() = "/" + a.getRightOperand().getValue() = "/" select a, "Overly broad path for cookie." diff --git a/csharp/ql/src/Security Features/HeaderCheckingDisabled.ql b/csharp/ql/src/Security Features/HeaderCheckingDisabled.ql index 7a3a5fdc4f2..bc9bf289c2d 100644 --- a/csharp/ql/src/Security Features/HeaderCheckingDisabled.ql +++ b/csharp/ql/src/Security Features/HeaderCheckingDisabled.ql @@ -17,12 +17,12 @@ from Element l where // header checking is disabled programmatically in the code exists(Assignment a, PropertyAccess pa | - a.getLValue() = pa and + a.getLeftOperand() = pa and pa.getTarget().hasName("EnableHeaderChecking") and pa.getTarget() .getDeclaringType() .hasFullyQualifiedName("System.Web.Configuration", "HttpRuntimeSection") and - a.getRValue().getValue() = "false" and + a.getRightOperand().getValue() = "false" and a = l ) or diff --git a/csharp/ql/src/Security Features/InsecureRandomness.ql b/csharp/ql/src/Security Features/InsecureRandomness.ql index 8237afdff13..649969a2778 100644 --- a/csharp/ql/src/Security Features/InsecureRandomness.ql +++ b/csharp/ql/src/Security Features/InsecureRandomness.ql @@ -89,10 +89,10 @@ module Random { e = any(SensitiveLibraryParameter v).getAnAssignedArgument() or // Assignment operation, e.g. += or similar - exists(AssignOperation ao | ao.getRValue() = e | - ao.getLValue() = any(SensitiveVariable v).getAnAccess() or - ao.getLValue() = any(SensitiveProperty v).getAnAccess() or - ao.getLValue() = any(SensitiveLibraryParameter v).getAnAccess() + exists(AssignOperation ao | ao.getRightOperand() = e | + ao.getLeftOperand() = any(SensitiveVariable v).getAnAccess() or + ao.getLeftOperand() = any(SensitiveProperty v).getAnAccess() or + ao.getLeftOperand() = any(SensitiveLibraryParameter v).getAnAccess() ) ) } diff --git a/csharp/ql/src/Security Features/InsufficientKeySize.ql b/csharp/ql/src/Security Features/InsufficientKeySize.ql index 94ae6b9286f..98a7852fbaf 100644 --- a/csharp/ql/src/Security Features/InsufficientKeySize.ql +++ b/csharp/ql/src/Security Features/InsufficientKeySize.ql @@ -20,7 +20,7 @@ predicate incorrectUseOfRC2(Assignment e, string msg) { .getDeclaringType() .hasFullyQualifiedName("System.Security.Cryptography", "RC2CryptoServiceProvider") ) and - e.getRValue().getValue().toInt() < 128 and + e.getRightOperand().getIntValue() < 128 and msg = "Key size should be at least 128 bits for RC2 encryption." } @@ -28,7 +28,7 @@ predicate incorrectUseOfDsa(ObjectCreation e, string msg) { e.getTarget() .getDeclaringType() .hasFullyQualifiedName("System.Security.Cryptography", "DSACryptoServiceProvider") and - exists(Expr i | e.getArgument(0) = i and i.getValue().toInt() < 2048) and + exists(Expr i | e.getArgument(0) = i and i.getIntValue() < 2048) and msg = "Key size should be at least 2048 bits for DSA encryption." } @@ -36,7 +36,7 @@ predicate incorrectUseOfRsa(ObjectCreation e, string msg) { e.getTarget() .getDeclaringType() .hasFullyQualifiedName("System.Security.Cryptography", "RSACryptoServiceProvider") and - exists(Expr i | e.getArgument(0) = i and i.getValue().toInt() < 2048) and + exists(Expr i | e.getArgument(0) = i and i.getIntValue() < 2048) and msg = "Key size should be at least 2048 bits for RSA encryption." } diff --git a/csharp/ql/src/Security Features/PersistentCookie.ql b/csharp/ql/src/Security Features/PersistentCookie.ql index 7f9861213fc..edc97b464e5 100644 --- a/csharp/ql/src/Security Features/PersistentCookie.ql +++ b/csharp/ql/src/Security Features/PersistentCookie.ql @@ -52,8 +52,8 @@ class FutureDateExpr extends MethodCall { from Assignment a, PropertyAccess pa, FutureDateExpr fde where - a.getLValue() = pa and - a.getRValue() = fde and + a.getLeftOperand() = pa and + a.getRightOperand() = fde and pa.getTarget().hasName("Expires") and pa.getTarget().getDeclaringType().hasFullyQualifiedName("System.Web", "HttpCookie") and (fde.timeIsNotClear() or fde.getTimeInSecond() > 300) // 5 minutes max diff --git a/csharp/ql/src/Telemetry/DatabaseQuality.qll b/csharp/ql/src/Telemetry/DatabaseQuality.qll index ca2ab3e7e16..ad7ac682bf5 100644 --- a/csharp/ql/src/Telemetry/DatabaseQuality.qll +++ b/csharp/ql/src/Telemetry/DatabaseQuality.qll @@ -27,7 +27,7 @@ module CallTargetStats implements StatsSig { p = c.getProperty() and not p.getAnAccessor() instanceof Setter and assign = c.getParent() and - assign.getLValue() = c and + assign.getLeftOperand() = c and assign.getParent() instanceof Property ) } @@ -36,7 +36,7 @@ module CallTargetStats implements StatsSig { exists(Property p, AssignExpr assign | p = c.getProperty() and assign = c.getParent() and - assign.getLValue() = c and + assign.getLeftOperand() = c and assign.getParent() instanceof ObjectInitializer and assign.getParent().getParent() instanceof AnonymousObjectCreation ) @@ -46,8 +46,8 @@ module CallTargetStats implements StatsSig { exists(Property p, AssignExpr assign | p = c.getProperty() and assign = c.getParent() and - assign.getLValue() = c and - assign.getRValue() instanceof ObjectOrCollectionInitializer + assign.getLeftOperand() = c and + assign.getRightOperand() instanceof ObjectOrCollectionInitializer ) } diff --git a/csharp/ql/src/Useless code/RedundantToStringCall.ql b/csharp/ql/src/Useless code/RedundantToStringCall.ql index 55e7056e9a0..e29e071b4d9 100644 --- a/csharp/ql/src/Useless code/RedundantToStringCall.ql +++ b/csharp/ql/src/Useless code/RedundantToStringCall.ql @@ -18,5 +18,6 @@ import semmle.code.csharp.frameworks.System from MethodCall mc where mc instanceof ImplicitToStringExpr and - mc.getTarget() instanceof ToStringMethod -select mc, "Redundant call to 'ToString' on a String object." + mc.getTarget() instanceof ToStringMethod and + not mc.getQualifier() instanceof BaseAccess +select mc, "Redundant call to 'ToString'." diff --git a/csharp/ql/src/change-notes/2026-03-13-adjust-xss-and-log-injection-severity.md b/csharp/ql/src/change-notes/2026-03-13-adjust-xss-and-log-injection-severity.md deleted file mode 100644 index c317194bc25..00000000000 --- a/csharp/ql/src/change-notes/2026-03-13-adjust-xss-and-log-injection-severity.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -category: queryMetadata ---- -* The `@security-severity` metadata of `cs/log-forging` has been reduced from 7.8 (high) to 6.1 (medium). -* The `@security-severity` metadata of `cs/web/xss` has been increased from 6.1 (medium) to 7.8 (high). diff --git a/csharp/ql/src/change-notes/2026-03-31-constantcondition-simplify.md b/csharp/ql/src/change-notes/released/1.7.0.md similarity index 58% rename from csharp/ql/src/change-notes/2026-03-31-constantcondition-simplify.md rename to csharp/ql/src/change-notes/released/1.7.0.md index a1051d4c00f..906a13d68d0 100644 --- a/csharp/ql/src/change-notes/2026-03-31-constantcondition-simplify.md +++ b/csharp/ql/src/change-notes/released/1.7.0.md @@ -1,4 +1,10 @@ ---- -category: majorAnalysis ---- +## 1.7.0 + +### Query Metadata Changes + +* The `@security-severity` metadata of `cs/log-forging` has been reduced from 7.8 (high) to 6.1 (medium). +* The `@security-severity` metadata of `cs/web/xss` has been increased from 6.1 (medium) to 7.8 (high). + +### Major Analysis Improvements + * The `cs/constant-condition` query has been simplified. The query no longer reports trivially constant conditions as they were found to generally be intentional. As a result, it should now produce fewer false positives. Additionally, the simplification means that it now reports all the results that `cs/constant-comparison` used to report, and as consequence, that query has been deleted. diff --git a/csharp/ql/src/change-notes/released/1.7.1.md b/csharp/ql/src/change-notes/released/1.7.1.md new file mode 100644 index 00000000000..0b5df9629c6 --- /dev/null +++ b/csharp/ql/src/change-notes/released/1.7.1.md @@ -0,0 +1,8 @@ +## 1.7.1 + +### Minor Analysis Improvements + +* The query `cs/useless-tostring-call` has been updated to avoid false + positive results in calls to `StringBuilder.AppendLine` and calls of + the form `base.ToString()`. Moreover, the alert message has been + made more precise. diff --git a/csharp/ql/src/codeql-pack.release.yml b/csharp/ql/src/codeql-pack.release.yml index f8e54f30a67..7bdec0d85c7 100644 --- a/csharp/ql/src/codeql-pack.release.yml +++ b/csharp/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.6.6 +lastReleaseVersion: 1.7.1 diff --git a/csharp/ql/src/experimental/Security Features/CWE-759/HashWithoutSalt.ql b/csharp/ql/src/experimental/Security Features/CWE-759/HashWithoutSalt.ql index d43050c2deb..0dc8fc362d6 100644 --- a/csharp/ql/src/experimental/Security Features/CWE-759/HashWithoutSalt.ql +++ b/csharp/ql/src/experimental/Security Features/CWE-759/HashWithoutSalt.ql @@ -187,10 +187,10 @@ module HashWithoutSaltConfig implements DataFlow::ConfigSig { or // a salt or key is included in subclasses of `KeyedHashAlgorithm` exists(MethodCall mc, Assignment a, ObjectCreation oc | - a.getRValue() = oc and + a.getRightOperand() = oc and oc.getObjectType().getABaseType+() instanceof KeyedHashAlgorithm and mc.getTarget() instanceof HashMethod and - a.getLValue() = mc.getQualifier().(VariableAccess).getTarget().getAnAccess() and + a.getLeftOperand() = mc.getQualifier().(VariableAccess).getTarget().getAnAccess() and mc.getArgument(0) = node.asExpr() ) } diff --git a/csharp/ql/src/qlpack.yml b/csharp/ql/src/qlpack.yml index 728074e959d..25b04cf2dc6 100644 --- a/csharp/ql/src/qlpack.yml +++ b/csharp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-queries -version: 1.6.7-dev +version: 1.7.2-dev groups: - csharp - queries diff --git a/csharp/ql/test/library-tests/assignments/AssignOperation.ql b/csharp/ql/test/library-tests/assignments/AssignOperation.ql index 2ca3b11a831..2fa23ed0a9f 100644 --- a/csharp/ql/test/library-tests/assignments/AssignOperation.ql +++ b/csharp/ql/test/library-tests/assignments/AssignOperation.ql @@ -1,4 +1,4 @@ import csharp from AssignOperation ao -select ao, ao.getLValue(), ao.getRValue() +select ao, ao.getLeftOperand(), ao.getRightOperand() diff --git a/csharp/ql/test/library-tests/conversion/pointer/Pointer.ql b/csharp/ql/test/library-tests/conversion/pointer/Pointer.ql index 69e7db8c1cf..450ed9940a8 100644 --- a/csharp/ql/test/library-tests/conversion/pointer/Pointer.ql +++ b/csharp/ql/test/library-tests/conversion/pointer/Pointer.ql @@ -1,5 +1,5 @@ import csharp from Assignment a -select a.getLocation(), a.getLValue().getType().toString(), a.getRValue().getType().toString(), - a.getRValue().toString() +select a.getLocation(), a.getLeftOperand().getType().toString(), + a.getRightOperand().getType().toString(), a.getRightOperand().toString() diff --git a/csharp/ql/test/library-tests/csharp10/lambda.ql b/csharp/ql/test/library-tests/csharp10/lambda.ql index 3cfec302b52..55c7faac049 100644 --- a/csharp/ql/test/library-tests/csharp10/lambda.ql +++ b/csharp/ql/test/library-tests/csharp10/lambda.ql @@ -3,7 +3,7 @@ import csharp private predicate getLambda( LocalVariableDeclAndInitExpr e, string type, LocalVariable v, LambdaExpr lexp ) { - lexp = e.getRValue() and + lexp = e.getRightOperand() and v = e.getTargetVariable() and type = e.getType().toStringWithTypes() } diff --git a/csharp/ql/test/library-tests/csharp11/operators.ql b/csharp/ql/test/library-tests/csharp11/operators.ql index 607efac0c26..f1543e2d744 100644 --- a/csharp/ql/test/library-tests/csharp11/operators.ql +++ b/csharp/ql/test/library-tests/csharp11/operators.ql @@ -14,8 +14,8 @@ query predicate assignbitwise( AssignBitwiseOperation op, Expr left, Expr right, string name, string qlclass ) { op.getFile().getStem() = "Operators" and - left = op.getLValue() and - right = op.getRValue() and + left = op.getLeftOperand() and + right = op.getRightOperand() and name = op.getOperator() and qlclass = op.getAPrimaryQlClass() } diff --git a/csharp/ql/test/library-tests/csharp6/MemberInitializer.ql b/csharp/ql/test/library-tests/csharp6/MemberInitializer.ql index f3ef63fe225..1895792f07c 100644 --- a/csharp/ql/test/library-tests/csharp6/MemberInitializer.ql +++ b/csharp/ql/test/library-tests/csharp6/MemberInitializer.ql @@ -12,7 +12,7 @@ query predicate indexerCalls(IndexerCall indexer, int arg, Expr value) { query predicate elementAssignments( ElementWrite write, Assignment assignment, int index, Expr indexer ) { - write = assignment.getLValue() and indexer = write.getIndex(index) + write = assignment.getLeftOperand() and indexer = write.getIndex(index) } query predicate arrayQualifiers(ElementAccess access, Expr qualifier) { diff --git a/csharp/ql/test/library-tests/enums/Enums11.ql b/csharp/ql/test/library-tests/enums/Enums11.ql index 36b2c005a21..f6133517f7d 100644 --- a/csharp/ql/test/library-tests/enums/Enums11.ql +++ b/csharp/ql/test/library-tests/enums/Enums11.ql @@ -6,7 +6,7 @@ import csharp from Expr e where - exists(Assignment a | a.getRValue() = e | + exists(Assignment a | a.getRightOperand() = e | a.getParent().(Field).getDeclaringType() instanceof Enum ) select e, e.getValue() diff --git a/csharp/ql/test/library-tests/expressions/AddEventExpr1.ql b/csharp/ql/test/library-tests/expressions/AddEventExpr1.ql index 48f6b41e19d..e3c1530fb1a 100644 --- a/csharp/ql/test/library-tests/expressions/AddEventExpr1.ql +++ b/csharp/ql/test/library-tests/expressions/AddEventExpr1.ql @@ -9,5 +9,5 @@ where c.hasName("LoginDialog") and e.getEnclosingCallable() = c and e.getTarget().hasName("Click") and - e.getLValue().getQualifier().(FieldAccess).getTarget().hasName("OkButton") + e.getLeftOperand().getQualifier().(FieldAccess).getTarget().hasName("OkButton") select c, e diff --git a/csharp/ql/test/library-tests/expressions/AnonymousMethod1.ql b/csharp/ql/test/library-tests/expressions/AnonymousMethod1.ql index 2c8268e87e1..74e9d3cb1ff 100644 --- a/csharp/ql/test/library-tests/expressions/AnonymousMethod1.ql +++ b/csharp/ql/test/library-tests/expressions/AnonymousMethod1.ql @@ -6,7 +6,7 @@ import csharp from Assignment assign, AnonymousMethodExpr e where - assign.getLValue().(VariableAccess).getTarget().hasName("f7") and + assign.getLeftOperand().(VariableAccess).getTarget().hasName("f7") and e.getParent+() = assign and e.getNumberOfParameters() = 1 and e.getParameter(0).getType() instanceof IntType and diff --git a/csharp/ql/test/library-tests/expressions/AnonymousMethod2.ql b/csharp/ql/test/library-tests/expressions/AnonymousMethod2.ql index e9fbbf01a10..8f0390b0f82 100644 --- a/csharp/ql/test/library-tests/expressions/AnonymousMethod2.ql +++ b/csharp/ql/test/library-tests/expressions/AnonymousMethod2.ql @@ -6,7 +6,7 @@ import csharp from Assignment assign, AnonymousMethodExpr e, Parameter p, ParameterAccess pa where - assign.getLValue().(VariableAccess).getTarget().hasName("f7") and + assign.getLeftOperand().(VariableAccess).getTarget().hasName("f7") and e.getParent+() = assign and e.getNumberOfParameters() = 1 and p = e.getParameter(0) and diff --git a/csharp/ql/test/library-tests/expressions/AnonymousMethod3.ql b/csharp/ql/test/library-tests/expressions/AnonymousMethod3.ql index e4c2e9ae9ba..46d8907319d 100644 --- a/csharp/ql/test/library-tests/expressions/AnonymousMethod3.ql +++ b/csharp/ql/test/library-tests/expressions/AnonymousMethod3.ql @@ -6,7 +6,7 @@ import csharp from Assignment assign, AnonymousMethodExpr e where - assign.getLValue().(VariableAccess).getTarget().hasName("f7") and + assign.getLeftOperand().(VariableAccess).getTarget().hasName("f7") and e.getParent+() = assign and e.getNumberOfParameters() = 1 and e.getType().(DelegateType).getReturnType() instanceof IntType diff --git a/csharp/ql/test/library-tests/expressions/AnonymousMethod4.ql b/csharp/ql/test/library-tests/expressions/AnonymousMethod4.ql index 4d424b65b84..cca81c6b04e 100644 --- a/csharp/ql/test/library-tests/expressions/AnonymousMethod4.ql +++ b/csharp/ql/test/library-tests/expressions/AnonymousMethod4.ql @@ -6,7 +6,7 @@ import csharp from Assignment assign, AnonymousMethodExpr e where - assign.getLValue().(VariableAccess).getTarget().hasName("f8") and + assign.getLeftOperand().(VariableAccess).getTarget().hasName("f8") and e.getParent+() = assign and e.hasNoParameters() select e, e diff --git a/csharp/ql/test/library-tests/expressions/AnonymousMethod5.ql b/csharp/ql/test/library-tests/expressions/AnonymousMethod5.ql index cbc6ac82ca7..577d810dfad 100644 --- a/csharp/ql/test/library-tests/expressions/AnonymousMethod5.ql +++ b/csharp/ql/test/library-tests/expressions/AnonymousMethod5.ql @@ -6,7 +6,7 @@ import csharp from Assignment assign, AnonymousMethodExpr e, LocalVariableAccess va where - assign.getLValue().(VariableAccess).getTarget().hasName("f8") and + assign.getLeftOperand().(VariableAccess).getTarget().hasName("f8") and e.getParent+() = assign and e.hasNoParameters() and va.getEnclosingStmt().getParent+() = e.getBody() and diff --git a/csharp/ql/test/library-tests/expressions/AnonymousObjectCreation1.ql b/csharp/ql/test/library-tests/expressions/AnonymousObjectCreation1.ql index 74d8cd27a94..c717aa260e0 100644 --- a/csharp/ql/test/library-tests/expressions/AnonymousObjectCreation1.ql +++ b/csharp/ql/test/library-tests/expressions/AnonymousObjectCreation1.ql @@ -6,11 +6,11 @@ import csharp from Assignment assign, AnonymousObjectCreation o, Assignment a, Property p where - assign.getLValue().(VariableAccess).getTarget().hasName("list2") and + assign.getLeftOperand().(VariableAccess).getTarget().hasName("list2") and o.getParent+() = assign and o.getInitializer().getMemberInitializer(0) = a and - a.getRValue().getValue() = "2" and - p = a.getLValue().(PropertyAccess).getTarget() and + a.getRightOperand().getValue() = "2" and + p = a.getLeftOperand().(PropertyAccess).getTarget() and p.hasName("i") and p.getDeclaringType() = o.getObjectType() select o diff --git a/csharp/ql/test/library-tests/expressions/AnonymousObjectCreation2.ql b/csharp/ql/test/library-tests/expressions/AnonymousObjectCreation2.ql index 5f9e16564b4..d55bf89d606 100644 --- a/csharp/ql/test/library-tests/expressions/AnonymousObjectCreation2.ql +++ b/csharp/ql/test/library-tests/expressions/AnonymousObjectCreation2.ql @@ -6,11 +6,11 @@ import csharp from Assignment assign, AnonymousObjectCreation o, Assignment a, Property p where - assign.getLValue().(VariableAccess).getTarget().hasName("contacts2") and + assign.getLeftOperand().(VariableAccess).getTarget().hasName("contacts2") and o.getParent+() = assign and o.getInitializer().getMemberInitializer(0) = a and - a.getRValue().getValue() = "Chris Smith" and - p = a.getLValue().(PropertyAccess).getTarget() and + a.getRightOperand().getValue() = "Chris Smith" and + p = a.getLeftOperand().(PropertyAccess).getTarget() and p.hasName("Name") and p.getDeclaringType() = o.getObjectType() select o, p.getType().toString() diff --git a/csharp/ql/test/library-tests/expressions/AnonymousObjectCreation3.ql b/csharp/ql/test/library-tests/expressions/AnonymousObjectCreation3.ql index afa9ca0d3b2..6033bfed38a 100644 --- a/csharp/ql/test/library-tests/expressions/AnonymousObjectCreation3.ql +++ b/csharp/ql/test/library-tests/expressions/AnonymousObjectCreation3.ql @@ -6,11 +6,11 @@ import csharp from Assignment assign, AnonymousObjectCreation o, Assignment a, Property p where - assign.getLValue().(VariableAccess).getTarget().hasName("contacts2") and + assign.getLeftOperand().(VariableAccess).getTarget().hasName("contacts2") and o.getParent+() = assign and o.getInitializer().getMemberInitializer(1) = a and - a.getRValue() instanceof ArrayCreation and - p = a.getLValue().(PropertyAccess).getTarget() and + a.getRightOperand() instanceof ArrayCreation and + p = a.getLeftOperand().(PropertyAccess).getTarget() and p.hasName("PhoneNumbers") and p.getDeclaringType() = o.getObjectType() select o, p.getType().getName() diff --git a/csharp/ql/test/library-tests/expressions/AnonymousObjectCreation4.ql b/csharp/ql/test/library-tests/expressions/AnonymousObjectCreation4.ql index b6354d1f493..a52278839f2 100644 --- a/csharp/ql/test/library-tests/expressions/AnonymousObjectCreation4.ql +++ b/csharp/ql/test/library-tests/expressions/AnonymousObjectCreation4.ql @@ -8,7 +8,7 @@ from Assignment assign, AnonymousObjectCreation o, Assignment a, AnonymousObjectCreation p, Assignment b where - assign.getLValue().(VariableAccess).getTarget().hasName("contacts2") and + assign.getLeftOperand().(VariableAccess).getTarget().hasName("contacts2") and o.getParent+() = assign and o.getInitializer().getMemberInitializer(1) = a and p.getParent+() = assign and diff --git a/csharp/ql/test/library-tests/expressions/ArrayCreation1.ql b/csharp/ql/test/library-tests/expressions/ArrayCreation1.ql index fba7a403615..6f728347bff 100644 --- a/csharp/ql/test/library-tests/expressions/ArrayCreation1.ql +++ b/csharp/ql/test/library-tests/expressions/ArrayCreation1.ql @@ -6,8 +6,8 @@ import csharp from Assignment a, ArrayCreation e, ArrayInitializer i where - a.getLValue().(VariableAccess).getTarget().hasName("is1") and - e = a.getRValue() and + a.getLeftOperand().(VariableAccess).getTarget().hasName("is1") and + e = a.getRightOperand() and not e.isImplicitlyTyped() and i = e.getInitializer() and e.isImplicitlySized() and diff --git a/csharp/ql/test/library-tests/expressions/ArrayCreation10.ql b/csharp/ql/test/library-tests/expressions/ArrayCreation10.ql index d8a1df12867..951ca22c0c2 100644 --- a/csharp/ql/test/library-tests/expressions/ArrayCreation10.ql +++ b/csharp/ql/test/library-tests/expressions/ArrayCreation10.ql @@ -6,9 +6,9 @@ import csharp from Assignment a, ArrayCreation e, CastExpr cast where - a.getLValue().(VariableAccess).getTarget().hasName("os") and + a.getLeftOperand().(VariableAccess).getTarget().hasName("os") and e.getEnclosingCallable().hasName("MainElementAccess") and - e = a.getRValue() and + e = a.getRightOperand() and not e.isImplicitlyTyped() and e.isImplicitlySized() and e.getArrayType().getDimension() = 1 and diff --git a/csharp/ql/test/library-tests/expressions/ArrayCreation2.ql b/csharp/ql/test/library-tests/expressions/ArrayCreation2.ql index ae56d579839..88ce79bc91e 100644 --- a/csharp/ql/test/library-tests/expressions/ArrayCreation2.ql +++ b/csharp/ql/test/library-tests/expressions/ArrayCreation2.ql @@ -6,8 +6,8 @@ import csharp from Assignment a, ArrayCreation e, ArrayInitializer i where - a.getLValue().(VariableAccess).getTarget().hasName("is2") and - e = a.getRValue() and + a.getLeftOperand().(VariableAccess).getTarget().hasName("is2") and + e = a.getRightOperand() and not e.isImplicitlyTyped() and i = e.getInitializer() and e.getNumberOfLengthArguments() = 2 and diff --git a/csharp/ql/test/library-tests/expressions/ArrayCreation3.ql b/csharp/ql/test/library-tests/expressions/ArrayCreation3.ql index efe626dab08..0da55f86479 100644 --- a/csharp/ql/test/library-tests/expressions/ArrayCreation3.ql +++ b/csharp/ql/test/library-tests/expressions/ArrayCreation3.ql @@ -6,8 +6,8 @@ import csharp from Assignment a, ArrayCreation e where - a.getLValue().(VariableAccess).getTarget().hasName("is3") and - e = a.getRValue() and + a.getLeftOperand().(VariableAccess).getTarget().hasName("is3") and + e = a.getRightOperand() and not e.isImplicitlyTyped() and not e.hasInitializer() and e.getNumberOfLengthArguments() = 1 and diff --git a/csharp/ql/test/library-tests/expressions/ArrayCreation4.ql b/csharp/ql/test/library-tests/expressions/ArrayCreation4.ql index 2a0dd531283..b79ec3f7bd6 100644 --- a/csharp/ql/test/library-tests/expressions/ArrayCreation4.ql +++ b/csharp/ql/test/library-tests/expressions/ArrayCreation4.ql @@ -6,8 +6,8 @@ import csharp from Assignment a, ArrayCreation e where - a.getLValue().(VariableAccess).getTarget().hasName("is4") and - e = a.getRValue() and + a.getLeftOperand().(VariableAccess).getTarget().hasName("is4") and + e = a.getRightOperand() and not e.isImplicitlyTyped() and not e.hasInitializer() and e.getNumberOfLengthArguments() = 2 and diff --git a/csharp/ql/test/library-tests/expressions/ArrayCreation5.ql b/csharp/ql/test/library-tests/expressions/ArrayCreation5.ql index 04c29cafba8..88df5bef175 100644 --- a/csharp/ql/test/library-tests/expressions/ArrayCreation5.ql +++ b/csharp/ql/test/library-tests/expressions/ArrayCreation5.ql @@ -6,8 +6,8 @@ import csharp from Assignment a, ArrayCreation e, int i where - a.getLValue().(VariableAccess).getTarget().hasName("is5") and - e = a.getRValue() and + a.getLeftOperand().(VariableAccess).getTarget().hasName("is5") and + e = a.getRightOperand() and e.isImplicitlyTyped() and e.isImplicitlySized() and e.getArrayType().getDimension() = 1 and diff --git a/csharp/ql/test/library-tests/expressions/ArrayCreation6.ql b/csharp/ql/test/library-tests/expressions/ArrayCreation6.ql index 7ca6bbe9668..237900bbe7c 100644 --- a/csharp/ql/test/library-tests/expressions/ArrayCreation6.ql +++ b/csharp/ql/test/library-tests/expressions/ArrayCreation6.ql @@ -6,8 +6,8 @@ import csharp from Assignment a, ArrayCreation e where - a.getLValue().(VariableAccess).getTarget().hasName("is6") and - e = a.getRValue() and + a.getLeftOperand().(VariableAccess).getTarget().hasName("is6") and + e = a.getRightOperand() and e.isImplicitlyTyped() and e.isImplicitlySized() and e.getArrayType().getDimension() = 1 and diff --git a/csharp/ql/test/library-tests/expressions/ArrayCreation7.ql b/csharp/ql/test/library-tests/expressions/ArrayCreation7.ql index e34253a4f02..a466195a0b1 100644 --- a/csharp/ql/test/library-tests/expressions/ArrayCreation7.ql +++ b/csharp/ql/test/library-tests/expressions/ArrayCreation7.ql @@ -6,8 +6,8 @@ import csharp from Assignment a, ArrayCreation e where - a.getLValue().(VariableAccess).getTarget().hasName("is7") and - e = a.getRValue() and + a.getLeftOperand().(VariableAccess).getTarget().hasName("is7") and + e = a.getRightOperand() and e.isImplicitlyTyped() and e.isImplicitlySized() and e.getArrayType().getDimension() = 1 and diff --git a/csharp/ql/test/library-tests/expressions/ArrayCreation8.ql b/csharp/ql/test/library-tests/expressions/ArrayCreation8.ql index cc1fd366db1..8eb810247c0 100644 --- a/csharp/ql/test/library-tests/expressions/ArrayCreation8.ql +++ b/csharp/ql/test/library-tests/expressions/ArrayCreation8.ql @@ -6,8 +6,8 @@ import csharp from Assignment a, ArrayCreation e where - a.getLValue().(VariableAccess).getTarget().hasName("contacts2") and - e = a.getRValue() and + a.getLeftOperand().(VariableAccess).getTarget().hasName("contacts2") and + e = a.getRightOperand() and e.isImplicitlyTyped() and e.isImplicitlySized() and e.getArrayType().getDimension() = 1 and diff --git a/csharp/ql/test/library-tests/expressions/ArrayCreation9.ql b/csharp/ql/test/library-tests/expressions/ArrayCreation9.ql index fc4b561c170..55ba1d1edb1 100644 --- a/csharp/ql/test/library-tests/expressions/ArrayCreation9.ql +++ b/csharp/ql/test/library-tests/expressions/ArrayCreation9.ql @@ -6,8 +6,8 @@ import csharp from Assignment a, ArrayCreation e where - a.getLValue().(VariableAccess).getTarget().hasName("t") and - e = a.getRValue() and + a.getLeftOperand().(VariableAccess).getTarget().hasName("t") and + e = a.getRightOperand() and e.isImplicitlyTyped() and e.isImplicitlySized() and e.getArrayType().getDimension() = 1 and diff --git a/csharp/ql/test/library-tests/expressions/Lambda1.ql b/csharp/ql/test/library-tests/expressions/Lambda1.ql index f4787c584f3..4e4d17b9d24 100644 --- a/csharp/ql/test/library-tests/expressions/Lambda1.ql +++ b/csharp/ql/test/library-tests/expressions/Lambda1.ql @@ -6,7 +6,7 @@ import csharp from Assignment assign, LambdaExpr e where - assign.getLValue().(VariableAccess).getTarget().hasName("f1") and + assign.getLeftOperand().(VariableAccess).getTarget().hasName("f1") and e.getParent+() = assign and e.getNumberOfParameters() = 1 and e.getParameter(0).getType() instanceof ShortType and diff --git a/csharp/ql/test/library-tests/expressions/Lambda2.ql b/csharp/ql/test/library-tests/expressions/Lambda2.ql index 5fff4bd2cf6..ff5c06ec670 100644 --- a/csharp/ql/test/library-tests/expressions/Lambda2.ql +++ b/csharp/ql/test/library-tests/expressions/Lambda2.ql @@ -6,7 +6,7 @@ import csharp from Assignment assign, LambdaExpr e where - assign.getLValue().(VariableAccess).getTarget().hasName("f2") and + assign.getLeftOperand().(VariableAccess).getTarget().hasName("f2") and e.getParent+() = assign and e.getNumberOfParameters() = 1 and e.getParameter(0).getType() instanceof IntType and diff --git a/csharp/ql/test/library-tests/expressions/Lambda3.ql b/csharp/ql/test/library-tests/expressions/Lambda3.ql index 32aa919cd20..46d3a411b36 100644 --- a/csharp/ql/test/library-tests/expressions/Lambda3.ql +++ b/csharp/ql/test/library-tests/expressions/Lambda3.ql @@ -6,7 +6,7 @@ import csharp from Assignment assign, LambdaExpr e where - assign.getLValue().(VariableAccess).getTarget().hasName("f3") and + assign.getLeftOperand().(VariableAccess).getTarget().hasName("f3") and e.getParent+() = assign and e.getNumberOfParameters() = 1 and e.getParameter(0).getType() instanceof IntType and diff --git a/csharp/ql/test/library-tests/expressions/Lambda4.ql b/csharp/ql/test/library-tests/expressions/Lambda4.ql index ca7eb7a4207..69ac40ad932 100644 --- a/csharp/ql/test/library-tests/expressions/Lambda4.ql +++ b/csharp/ql/test/library-tests/expressions/Lambda4.ql @@ -6,7 +6,7 @@ import csharp from Assignment assign, LambdaExpr e where - assign.getLValue().(VariableAccess).getTarget().hasName("f4") and + assign.getLeftOperand().(VariableAccess).getTarget().hasName("f4") and e.getParent+() = assign and e.getNumberOfParameters() = 1 and e.getParameter(0).getType() instanceof IntType and diff --git a/csharp/ql/test/library-tests/expressions/Lambda5.ql b/csharp/ql/test/library-tests/expressions/Lambda5.ql index cc577aa85cb..3836ca4effd 100644 --- a/csharp/ql/test/library-tests/expressions/Lambda5.ql +++ b/csharp/ql/test/library-tests/expressions/Lambda5.ql @@ -6,7 +6,7 @@ import csharp from Assignment assign, LambdaExpr e where - assign.getLValue().(VariableAccess).getTarget().hasName("f5") and + assign.getLeftOperand().(VariableAccess).getTarget().hasName("f5") and e.getParent+() = assign and e.getNumberOfParameters() = 2 and e.getParameter(0).getType() instanceof IntType and diff --git a/csharp/ql/test/library-tests/expressions/Lambda6.ql b/csharp/ql/test/library-tests/expressions/Lambda6.ql index c584e4f6c09..4a6ee312834 100644 --- a/csharp/ql/test/library-tests/expressions/Lambda6.ql +++ b/csharp/ql/test/library-tests/expressions/Lambda6.ql @@ -6,7 +6,7 @@ import csharp from Assignment assign, LambdaExpr e where - assign.getLValue().(VariableAccess).getTarget().hasName("f6") and + assign.getLeftOperand().(VariableAccess).getTarget().hasName("f6") and e.getParent+() = assign and e.getNumberOfParameters() = 0 and e.getType().(DelegateType).hasName("Unit") and diff --git a/csharp/ql/test/library-tests/expressions/ObjectCreation10.ql b/csharp/ql/test/library-tests/expressions/ObjectCreation10.ql index abd4a9d6ec6..971654a95b3 100644 --- a/csharp/ql/test/library-tests/expressions/ObjectCreation10.ql +++ b/csharp/ql/test/library-tests/expressions/ObjectCreation10.ql @@ -6,7 +6,7 @@ import csharp from Assignment a, CollectionInitializer i where - a.getLValue().(VariableAccess).getTarget().hasName("list1") and + a.getLeftOperand().(VariableAccess).getTarget().hasName("list1") and i.getParent+() = a and i.getElementInitializer(0).getArgument(0) instanceof AssignExpr select i.getAChild+() diff --git a/csharp/ql/test/library-tests/expressions/ObjectCreation11.ql b/csharp/ql/test/library-tests/expressions/ObjectCreation11.ql index c874735c300..0265579ff67 100644 --- a/csharp/ql/test/library-tests/expressions/ObjectCreation11.ql +++ b/csharp/ql/test/library-tests/expressions/ObjectCreation11.ql @@ -6,7 +6,7 @@ import csharp from Assignment a, CollectionInitializer i, AnonymousObjectCreation o where - a.getLValue().(VariableAccess).getTarget().hasName("list2") and + a.getLeftOperand().(VariableAccess).getTarget().hasName("list2") and i.getParent+() = a and i.getElementInitializer(0).getArgument(0) = o select i, o diff --git a/csharp/ql/test/library-tests/expressions/ObjectCreation4.ql b/csharp/ql/test/library-tests/expressions/ObjectCreation4.ql index 5812397b11b..6ec3e2ec327 100644 --- a/csharp/ql/test/library-tests/expressions/ObjectCreation4.ql +++ b/csharp/ql/test/library-tests/expressions/ObjectCreation4.ql @@ -15,9 +15,9 @@ where cc.hasName("Point") and i = e.getInitializer() and a = i.getMemberInitializer(0) and - a.getLValue().(PropertyAccess).getTarget().hasName("X") and - a.getRValue().getValue() = "0" and + a.getLeftOperand().(PropertyAccess).getTarget().hasName("X") and + a.getRightOperand().getValue() = "0" and b = i.getMemberInitializer(1) and - b.getLValue().(PropertyAccess).getTarget().hasName("Y") and - b.getRValue().getValue() = "1" + b.getLeftOperand().(PropertyAccess).getTarget().hasName("Y") and + b.getRightOperand().getValue() = "1" select e, i, a, b diff --git a/csharp/ql/test/library-tests/expressions/ObjectCreation5.ql b/csharp/ql/test/library-tests/expressions/ObjectCreation5.ql index cf31f518ec7..e130da484d7 100644 --- a/csharp/ql/test/library-tests/expressions/ObjectCreation5.ql +++ b/csharp/ql/test/library-tests/expressions/ObjectCreation5.ql @@ -15,10 +15,10 @@ where cc.hasName("Point") and i = e.getInitializer() and a = i.getMemberInitializer(0) and - a.getLValue().(PropertyAccess).getTarget().hasName("X") and - a.getRValue().getValue() = "2" and + a.getLeftOperand().(PropertyAccess).getTarget().hasName("X") and + a.getRightOperand().getValue() = "2" and b = i.getMemberInitializer(1) and - b.getLValue().(PropertyAccess).getTarget().hasName("Y") and - b.getRValue().getValue() = "3" and + b.getLeftOperand().(PropertyAccess).getTarget().hasName("Y") and + b.getRightOperand().getValue() = "3" and i.getNumberOfMemberInitializers() = 2 select i, a, b diff --git a/csharp/ql/test/library-tests/expressions/ObjectCreation6.ql b/csharp/ql/test/library-tests/expressions/ObjectCreation6.ql index 11e771890ca..529607c8d4b 100644 --- a/csharp/ql/test/library-tests/expressions/ObjectCreation6.ql +++ b/csharp/ql/test/library-tests/expressions/ObjectCreation6.ql @@ -15,10 +15,10 @@ where cc.hasName("Rectangle") and i = e.getInitializer() and a = i.getMemberInitializer(0) and - a.getLValue().(PropertyAccess).getTarget().hasName("P1") and - a.getRValue() instanceof ObjectCreation and + a.getLeftOperand().(PropertyAccess).getTarget().hasName("P1") and + a.getRightOperand() instanceof ObjectCreation and b = i.getMemberInitializer(1) and - b.getLValue().(PropertyAccess).getTarget().hasName("P2") and - b.getRValue() instanceof ObjectCreation and + b.getLeftOperand().(PropertyAccess).getTarget().hasName("P2") and + b.getRightOperand() instanceof ObjectCreation and i.getNumberOfMemberInitializers() = 2 select i, a, b diff --git a/csharp/ql/test/library-tests/expressions/ObjectCreation7.ql b/csharp/ql/test/library-tests/expressions/ObjectCreation7.ql index ccb17515525..404011f1896 100644 --- a/csharp/ql/test/library-tests/expressions/ObjectCreation7.ql +++ b/csharp/ql/test/library-tests/expressions/ObjectCreation7.ql @@ -15,10 +15,10 @@ where cc.hasName("Rectangle2") and i = e.getInitializer() and a = i.getMemberInitializer(0) and - a.getLValue().(PropertyAccess).getTarget().hasName("P1") and - a.getRValue() instanceof ObjectInitializer and + a.getLeftOperand().(PropertyAccess).getTarget().hasName("P1") and + a.getRightOperand() instanceof ObjectInitializer and b = i.getMemberInitializer(1) and - b.getLValue().(PropertyAccess).getTarget().hasName("P2") and - b.getRValue() instanceof ObjectInitializer and + b.getLeftOperand().(PropertyAccess).getTarget().hasName("P2") and + b.getRightOperand() instanceof ObjectInitializer and i.getNumberOfMemberInitializers() = 2 select m, e diff --git a/csharp/ql/test/library-tests/expressions/RemoveEventExpr1.ql b/csharp/ql/test/library-tests/expressions/RemoveEventExpr1.ql index 95b223ed6f4..991fdd6e492 100644 --- a/csharp/ql/test/library-tests/expressions/RemoveEventExpr1.ql +++ b/csharp/ql/test/library-tests/expressions/RemoveEventExpr1.ql @@ -9,5 +9,5 @@ where c.hasName("LoginDialog") and e.getEnclosingCallable() = c and e.getTarget().hasName("Click") and - e.getLValue().getQualifier().(FieldAccess).getTarget().hasName("CancelButton") + e.getLeftOperand().getQualifier().(FieldAccess).getTarget().hasName("CancelButton") select c, e diff --git a/csharp/ql/test/query-tests/Linq/MissedSelectOpportunity/MissedSelectOpportunity.cs b/csharp/ql/test/query-tests/Linq/MissedSelectOpportunity/MissedSelectOpportunity.cs new file mode 100644 index 00000000000..9655a5a0fa9 --- /dev/null +++ b/csharp/ql/test/query-tests/Linq/MissedSelectOpportunity/MissedSelectOpportunity.cs @@ -0,0 +1,32 @@ +using System; +using System.Linq; +using System.Collections.Generic; +using System.Threading.Tasks; + +class MissedSelectOpportunity +{ + public void M1(List lst) + { + // BAD: Can be replaced with lst.Select(i => i * i) + foreach (int i in lst) + { + int j = i * i; + Console.WriteLine(j); + } // $ Alert + } + + public async Task M2(IEnumerable counters) + { + // GOOD: Cannot use Select because the initializer contains an await expression + foreach (var counter in counters) + { + var count = await counter.CountAsync(); + Console.WriteLine(count); + } + } + + public interface ICounter + { + Task CountAsync(); + } +} diff --git a/csharp/ql/test/query-tests/Linq/MissedSelectOpportunity/MissedSelectOpportunity.expected b/csharp/ql/test/query-tests/Linq/MissedSelectOpportunity/MissedSelectOpportunity.expected new file mode 100644 index 00000000000..bc6d464fa3b --- /dev/null +++ b/csharp/ql/test/query-tests/Linq/MissedSelectOpportunity/MissedSelectOpportunity.expected @@ -0,0 +1 @@ +| MissedSelectOpportunity.cs:11:9:15:9 | foreach (... ... in ...) ... | This foreach loop immediately $@ - consider mapping the sequence explicitly using '.Select(...)'. | MissedSelectOpportunity.cs:13:13:13:26 | ... ...; | maps its iteration variable to another variable | diff --git a/csharp/ql/test/query-tests/Linq/MissedSelectOpportunity/MissedSelectOpportunity.qlref b/csharp/ql/test/query-tests/Linq/MissedSelectOpportunity/MissedSelectOpportunity.qlref new file mode 100644 index 00000000000..722d8489680 --- /dev/null +++ b/csharp/ql/test/query-tests/Linq/MissedSelectOpportunity/MissedSelectOpportunity.qlref @@ -0,0 +1,2 @@ +query: Linq/MissedSelectOpportunity.ql +postprocess: utils/test/InlineExpectationsTestQuery.ql diff --git a/csharp/ql/test/query-tests/Linq/MissedSelectOpportunity/options b/csharp/ql/test/query-tests/Linq/MissedSelectOpportunity/options new file mode 100644 index 00000000000..75c39b4541b --- /dev/null +++ b/csharp/ql/test/query-tests/Linq/MissedSelectOpportunity/options @@ -0,0 +1,2 @@ +semmle-extractor-options: /nostdlib /noconfig +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj diff --git a/csharp/ql/test/query-tests/Useless Code/RedundantToStringCall/RedundantToStringCall.cs b/csharp/ql/test/query-tests/Useless Code/RedundantToStringCall/RedundantToStringCall.cs index 981b3600266..01c770d105b 100644 --- a/csharp/ql/test/query-tests/Useless Code/RedundantToStringCall/RedundantToStringCall.cs +++ b/csharp/ql/test/query-tests/Useless Code/RedundantToStringCall/RedundantToStringCall.cs @@ -1,16 +1,24 @@ using System; +using System.Text; class RedundantToString { public void M(object o) { - Console.WriteLine(o.ToString()); // BAD + Console.WriteLine(o.ToString()); // $ Alert Console.WriteLine(o); // GOOD - Console.WriteLine($"Hello: {o.ToString()}"); // BAD + Console.WriteLine($"Hello: {o.ToString()}"); // $ Alert Console.WriteLine($"Hello: {o}"); // GOOD - Console.WriteLine("Hello: " + o.ToString()); // BAD + Console.WriteLine("Hello: " + o.ToString()); // $ Alert Console.WriteLine("Hello: " + o); // GOOD + + var sb = new StringBuilder(); + sb.Append(o.ToString()); // $ Alert + sb.Append(o); // GOOD + sb.AppendLine(o.ToString()); // GOOD + + Console.WriteLine($"Hello: {base.ToString()}"); // GOOD } } diff --git a/csharp/ql/test/query-tests/Useless Code/RedundantToStringCall/RedundantToStringCall.expected b/csharp/ql/test/query-tests/Useless Code/RedundantToStringCall/RedundantToStringCall.expected index 28775378f04..b81421da571 100644 --- a/csharp/ql/test/query-tests/Useless Code/RedundantToStringCall/RedundantToStringCall.expected +++ b/csharp/ql/test/query-tests/Useless Code/RedundantToStringCall/RedundantToStringCall.expected @@ -1,4 +1,5 @@ -| RedundantToStringCall.cs:7:27:7:38 | call to method ToString | Redundant call to 'ToString' on a String object. | -| RedundantToStringCall.cs:10:37:10:48 | call to method ToString | Redundant call to 'ToString' on a String object. | -| RedundantToStringCall.cs:13:39:13:50 | call to method ToString | Redundant call to 'ToString' on a String object. | -| RedundantToStringCallBad.cs:7:45:7:56 | call to method ToString | Redundant call to 'ToString' on a String object. | +| RedundantToStringCall.cs:8:27:8:38 | call to method ToString | Redundant call to 'ToString'. | +| RedundantToStringCall.cs:11:37:11:48 | call to method ToString | Redundant call to 'ToString'. | +| RedundantToStringCall.cs:14:39:14:50 | call to method ToString | Redundant call to 'ToString'. | +| RedundantToStringCall.cs:18:19:18:30 | call to method ToString | Redundant call to 'ToString'. | +| RedundantToStringCallBad.cs:7:45:7:56 | call to method ToString | Redundant call to 'ToString'. | diff --git a/csharp/ql/test/query-tests/Useless Code/RedundantToStringCall/RedundantToStringCall.qlref b/csharp/ql/test/query-tests/Useless Code/RedundantToStringCall/RedundantToStringCall.qlref index c0ee8dd0ec7..86bf1476007 100644 --- a/csharp/ql/test/query-tests/Useless Code/RedundantToStringCall/RedundantToStringCall.qlref +++ b/csharp/ql/test/query-tests/Useless Code/RedundantToStringCall/RedundantToStringCall.qlref @@ -1 +1,3 @@ -Useless code/RedundantToStringCall.ql \ No newline at end of file +query: Useless code/RedundantToStringCall.ql +postprocess: + - utils/test/InlineExpectationsTestQuery.ql diff --git a/csharp/ql/test/query-tests/Useless Code/RedundantToStringCall/RedundantToStringCallBad.cs b/csharp/ql/test/query-tests/Useless Code/RedundantToStringCall/RedundantToStringCallBad.cs index d6d043f2376..ed5cd137a85 100644 --- a/csharp/ql/test/query-tests/Useless Code/RedundantToStringCall/RedundantToStringCallBad.cs +++ b/csharp/ql/test/query-tests/Useless Code/RedundantToStringCall/RedundantToStringCallBad.cs @@ -4,6 +4,6 @@ class Bad { static string Hello(object o) { - return string.Format("Hello, {0}!", o.ToString()); + return string.Format("Hello, {0}!", o.ToString()); // $ Alert } } diff --git a/csharp/ql/test/utils/modelgenerator/dataflow/Summaries.cs b/csharp/ql/test/utils/modelgenerator/dataflow/Summaries.cs index b59513504d9..4c85b397ac1 100644 --- a/csharp/ql/test/utils/modelgenerator/dataflow/Summaries.cs +++ b/csharp/ql/test/utils/modelgenerator/dataflow/Summaries.cs @@ -536,6 +536,12 @@ public class HigherOrderParameters { a(o); } + + private void CallApply() + { + // Test that this call to `Apply` does not interfere with the flow summaries generated for `Apply` + Apply(x => x, null); + } } public static class HigherOrderExtensionMethods diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-actions.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-actions.rst index 2bf452b5a90..0b78b37359f 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-actions.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-actions.rst @@ -24,26 +24,26 @@ The CodeQL library for GitHub Actions exposes the following extensible predicate Customizing data flow and taint tracking: -- **actionsSourceModel**\(action, version, output, kind, provenance) -- **actionsSinkModel**\(action, version, input, kind, provenance) -- **actionsSummaryModel**\(action, version, input, output, kind, provenance) +- ``actionsSourceModel(action, version, output, kind, provenance)`` +- ``actionsSinkModel(action, version, input, kind, provenance)`` +- ``actionsSummaryModel(action, version, input, output, kind, provenance)`` Customizing Actions-specific analysis: -- **argumentInjectionSinksDataModel**\(regexp, command_group, argument_group) -- **contextTriggerDataModel**\(trigger, context_prefix) -- **externallyTriggerableEventsDataModel**\(event) -- **immutableActionsDataModel**\(action) -- **poisonableActionsDataModel**\(action) -- **poisonableCommandsDataModel**\(regexp) -- **poisonableLocalScriptsDataModel**\(regexp, group) -- **repositoryDataModel**\(visibility, default_branch_name) -- **trustedActionsOwnerDataModel**\(owner) -- **untrustedEventPropertiesDataModel**\(property, kind) -- **untrustedGhCommandDataModel**\(cmd_regex, flag) -- **untrustedGitCommandDataModel**\(cmd_regex, flag) -- **vulnerableActionsDataModel**\(action, vulnerable_version, vulnerable_sha, fixed_version) -- **workflowDataModel**\(path, trigger, job, secrets_source, permissions, runner) +- ``argumentInjectionSinksDataModel(regexp, command_group, argument_group)`` +- ``contextTriggerDataModel(trigger, context_prefix)`` +- ``externallyTriggerableEventsDataModel(event)`` +- ``immutableActionsDataModel(action)`` +- ``poisonableActionsDataModel(action)`` +- ``poisonableCommandsDataModel(regexp)`` +- ``poisonableLocalScriptsDataModel(regexp, group)`` +- ``repositoryDataModel(visibility, default_branch_name)`` +- ``trustedActionsOwnerDataModel(owner)`` +- ``untrustedEventPropertiesDataModel(property, kind)`` +- ``untrustedGhCommandDataModel(cmd_regex, flag)`` +- ``untrustedGitCommandDataModel(cmd_regex, flag)`` +- ``vulnerableActionsDataModel(action, vulnerable_version, vulnerable_sha, fixed_version)`` +- ``workflowDataModel(path, trigger, job, secrets_source, permissions, runner)`` Examples of custom model definitions ------------------------------------ @@ -62,9 +62,9 @@ To allow any Action from the publisher ``octodemo``, such as ``octodemo/3rd-part .. code-block:: yaml extensions: - - addsTo: + - addsTo: pack: codeql/actions-all - extensible: trustedActionsOwnerDataModel + extensible: trustedActionsOwnerDataModel data: - ["octodemo"] diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-cpp.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-cpp.rst index 29e8be5a4ae..7ca61963227 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-cpp.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-cpp.rst @@ -58,6 +58,8 @@ The CodeQL library for CPP analysis exposes the following extensible predicates: - ``sourceModel(namespace, type, subtypes, name, signature, ext, output, kind, provenance)``. This is used to model sources of potentially tainted data. The ``kind`` of the sources defined using this predicate determine which threat model they are associated with. Different threat models can be used to customize the sources used in an analysis. For more information, see ":ref:`Threat models `." - ``sinkModel(namespace, type, subtypes, name, signature, ext, input, kind, provenance)``. This is used to model sinks where tainted data may be used in a way that makes the code vulnerable. - ``summaryModel(namespace, type, subtypes, name, signature, ext, input, output, kind, provenance)``. This is used to model flow through elements. +- ``barrierModel(namespace, type, subtypes, name, signature, ext, output, kind, provenance)``. This is used to model barriers, which are elements that stop the flow of taint. +- ``barrierGuardModel(namespace, type, subtypes, name, signature, ext, input, acceptingValue, kind, provenance)``. This is used to model barrier guards, which are elements that can stop the flow of taint depending on a conditional check. The extensible predicates are populated using the models defined in data extension files. @@ -75,7 +77,7 @@ This example shows how the CPP query pack models the return value from the ``rea boost::asio::read_until(socket, recv_buffer, '\0', error); -We need to add a tuple to the ``sourceModel``\(namespace, type, subtypes, name, signature, ext, output, kind, provenance) extensible predicate by updating a data extension file. +We need to add a tuple to the ``sourceModel(namespace, type, subtypes, name, signature, ext, output, kind, provenance)`` extensible predicate by updating a data extension file. .. code-block:: yaml @@ -86,12 +88,11 @@ We need to add a tuple to the ``sourceModel``\(namespace, type, subtypes, name, data: - ["boost::asio", "", False, "read_until", "", "", "Argument[*1]", "remote", "manual"] -Since we are adding a new source, we need to add a tuple to the ``sourceModel`` extensible predicate. The first five values identify the callable (in this case a free function) to be modeled as a source. - The first value ``"boost::asio"`` is the namespace name. -- The second value ``""`` is the name of the type (class) that contains the method. Because we're modelling a free function, the type is left blank. -- The third value ``False`` is a flag that indicates whether or not the sink also applies to all overrides of the method. For a free function, this should be ``False``. +- The second value ``""`` is the name of the type (class) that contains the method. Because we're modeling a free function, the type is left blank. +- The third value ``False`` is a flag that indicates whether or not the model also applies to all overrides of the method. For a free function, this should be ``False``. - The fourth value ``"read_until"`` is the function name. - The fifth value is the function input type signature, which can be used to narrow down between functions that have the same name. In this case, we want the model to include all functions in ``boost::asio`` called ``read_until``. @@ -111,7 +112,7 @@ This example shows how the CPP query pack models the second argument of the ``bo boost::asio::write(socket, send_buffer, error); -We need to add a tuple to the ``sinkModel``\(namespace, type, subtypes, name, signature, ext, input, kind, provenance) extensible predicate by updating a data extension file. +We need to add a tuple to the ``sinkModel(namespace, type, subtypes, name, signature, ext, input, kind, provenance)`` extensible predicate by updating a data extension file. .. code-block:: yaml @@ -122,12 +123,11 @@ We need to add a tuple to the ``sinkModel``\(namespace, type, subtypes, name, si data: - ["boost::asio", "", False, "write", "", "", "Argument[*1]", "remote-sink", "manual"] -Since we want to add a new sink, we need to add a tuple to the ``sinkModel`` extensible predicate. The first five values identify the callable (in this case a free function) to be modeled as a sink. - The first value ``"boost::asio"`` is the namespace name. -- The second value ``""`` is the name of the type (class) that contains the method. Because we're modelling a free function, the type is left blank. -- The third value ``False`` is a flag that indicates whether or not the sink also applies to all overrides of the method. For a free function, this should be ``False``. +- The second value ``""`` is the name of the type (class) that contains the method. Because we're modeling a free function, the type is left blank. +- The third value ``False`` is a flag that indicates whether or not the model also applies to all overrides of the method. For a free function, this should be ``False``. - The fourth value ``"write"`` is the function name. - The fifth value is the function input type signature, which can be used to narrow down between functions that have the same name. In this case, we want the model to include all functions in ``boost::asio`` called ``write``. @@ -147,7 +147,7 @@ This example shows how the CPP query pack models flow through a function for a s boost::asio::write(socket, boost::asio::buffer(send_str), error); -We need to add tuples to the ``summaryModel``\(namespace, type, subtypes, name, signature, ext, input, output, kind, provenance) extensible predicate by updating a data extension file: +We need to add tuples to the ``summaryModel(namespace, type, subtypes, name, signature, ext, input, output, kind, provenance)`` extensible predicate by updating a data extension file: .. code-block:: yaml @@ -158,13 +158,11 @@ We need to add tuples to the ``summaryModel``\(namespace, type, subtypes, name, data: - ["boost::asio", "", False, "buffer", "", "", "Argument[*0]", "ReturnValue", "taint", "manual"] -Since we are adding flow through a function, we need to add tuples to the ``summaryModel`` extensible predicate. - The first five values identify the callable (in this case free function) to be modeled as a summary. - The first value ``"boost::asio"`` is the namespace name. -- The second value ``""`` is the name of the type (class) that contains the method. Because we're modelling a free function, the type is left blank. -- The third value ``False`` is a flag that indicates whether or not the sink also applies to all overrides of the method. For a free function, this should be ``False``. +- The second value ``""`` is the name of the type (class) that contains the method. Because we're modeling a free function, the type is left blank. +- The third value ``False`` is a flag that indicates whether or not the model also applies to all overrides of the method. For a free function, this should be ``False``. - The fourth value ``"buffer"`` is the function name. - The fifth value is the function input type signature, which can be used to narrow down between functions that have the same name. In this case, we want the model to include all functions in ``boost::asio`` called ``buffer``. @@ -176,6 +174,86 @@ The remaining values are used to define the input and output specifications, the - The ninth value ``"taint"`` is the kind of the flow. ``taint`` means that taint is propagated through the call. - The tenth value ``"manual"`` is the provenance of the summary, which is used to identify the origin of the summary model. +Example: Taint barrier using the ``mysql_real_escape_string`` function +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +This example shows how the CPP query pack models the ``mysql_real_escape_string`` function as a barrier for SQL injection. +This function escapes special characters in a string for use in an SQL statement, which prevents SQL injection attacks. + +.. code-block:: cpp + + char *query = "SELECT * FROM users WHERE name = '%s'"; + char *name = get_untrusted_input(); + char *escaped_name = new char[2 * strlen(name) + 1]; + mysql_real_escape_string(mysql, escaped_name, name, strlen(name)); // The escaped_name is safe for SQL injection. + sprintf(query_buffer, query, escaped_name); + +We need to add a tuple to the ``barrierModel(namespace, type, subtypes, name, signature, ext, output, kind, provenance)`` extensible predicate by updating a data extension file. + +.. code-block:: yaml + + extensions: + - addsTo: + pack: codeql/cpp-all + extensible: barrierModel + data: + - ["", "", False, "mysql_real_escape_string", "", "", "Argument[*1]", "sql-injection", "manual"] + +The first five values identify the callable (in this case a free function) to be modeled as a barrier. + +- The first value ``""`` is the namespace name. +- The second value ``""`` is the name of the type (class) that contains the method. Because we're modeling a free function, the type is left blank. +- The third value ``False`` is a flag that indicates whether or not the model also applies to all overrides of the method. For a free function, this should be ``False``. +- The fourth value ``"mysql_real_escape_string"`` is the function name. +- The fifth value is the function input type signature, which can be used to narrow down between functions that have the same name. + +The sixth value should be left empty and is out of scope for this documentation. +The remaining values are used to define the output specification, the ``kind``, and the ``provenance`` (origin) of the barrier. + +- The seventh value ``"Argument[*1]"`` is the output specification, which means in this case that the barrier is the first indirection (or pointed-to value, ``*``) of the second argument (``Argument[1]``) passed to the function. +- The eighth value ``"sql-injection"`` is the kind of the barrier. The barrier kind is used to define the queries where the barrier is in scope. +- The ninth value ``"manual"`` is the provenance of the barrier, which is used to identify the origin of the barrier model. + +Example: Add a barrier guard +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +This example shows how to model a barrier guard that stops the flow of taint when a conditional check is performed on data. +A barrier guard model is used when a function returns a boolean that indicates whether the data is safe to use. +Consider a function called ``is_safe`` which returns ``true`` when the data is considered safe. + +.. code-block:: cpp + + if (is_safe(user_input)) { // The check guards the use, so the input is safe. + mysql_query(user_input); // This is safe. + } + +We need to add a tuple to the ``barrierGuardModel(namespace, type, subtypes, name, signature, ext, input, acceptingValue, kind, provenance)`` extensible predicate by updating a data extension file. + +.. code-block:: yaml + + extensions: + - addsTo: + pack: codeql/cpp-all + extensible: barrierGuardModel + data: + - ["", "", False, "is_safe", "", "", "Argument[*0]", "true", "sql-injection", "manual"] + +The first five values identify the callable (in this case a free function) to be modeled as a barrier guard. + +- The first value ``""`` is the namespace name. +- The second value ``""`` is the name of the type (class) that contains the method. Because we're modeling a free function, the type is left blank. +- The third value ``False`` is a flag that indicates whether or not the model guard also applies to all overrides of the method. For a free function, this should be ``False``. +- The fourth value ``"is_safe"`` is the function name. +- The fifth value is the function input type signature, which can be used to narrow down between functions that have the same name. + +The sixth value should be left empty and is out of scope for this documentation. +The remaining values are used to define the input specification, the ``accepting-value``, the ``kind``, and the ``provenance`` (origin) of the barrier guard. + +- The seventh value ``Argument[*0]`` is the input specification (the value being validated). In this case, the first indirection (or pointed-to value, ``*``) of the first argument (``Argument[0]``) passed to the function. +- The eighth value ``true`` is the accepting value of the barrier guard. This is the value that the conditional check must return for the barrier to apply. +- The ninth value ``sql-injection`` is the kind of the barrier guard. The barrier guard kind is used to define the queries where the barrier guard is in scope. +- The tenth value ``manual`` is the provenance of the barrier guard, which is used to identify the origin of the barrier guard. + .. _threat-models-cpp: Threat models diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-csharp.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-csharp.rst index 39b5ee30ee4..a4b0e26d1bc 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-csharp.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-csharp.rst @@ -58,6 +58,8 @@ The CodeQL library for C# analysis exposes the following extensible predicates: - ``sourceModel(namespace, type, subtypes, name, signature, ext, output, kind, provenance)``. This is used to model sources of potentially tainted data. The ``kind`` of the sources defined using this predicate determine which threat model they are associated with. Different threat models can be used to customize the sources used in an analysis. For more information, see ":ref:`Threat models `." - ``sinkModel(namespace, type, subtypes, name, signature, ext, input, kind, provenance)``. This is used to model sinks where tainted data may be used in a way that makes the code vulnerable. - ``summaryModel(namespace, type, subtypes, name, signature, ext, input, output, kind, provenance)``. This is used to model flow through elements. +- ``barrierModel(namespace, type, subtypes, name, signature, ext, output, kind, provenance)``. This is used to model barriers, which are elements that stop the flow of taint. +- ``barrierGuardModel(namespace, type, subtypes, name, signature, ext, input, acceptingValue, kind, provenance)``. This is used to model barrier guards, which are elements that can stop the flow of taint depending on a conditional check. - ``neutralModel(namespace, type, name, signature, kind, provenance)``. This is similar to a summary model but used to model the flow of values that have only a minor impact on the dataflow analysis. Manual neutral models (those with a provenance such as ``manual`` or ``ai-manual``) can be used to override generated summary models (those with a provenance such as ``df-generated``), so that the summary model will be ignored. Other than that, neutral models have no effect. The extensible predicates are populated using the models defined in data extension files. @@ -91,19 +93,18 @@ We need to add a tuple to the ``sinkModel``\(namespace, type, subtypes, name, si data: - ["System.Data.SqlClient", "SqlCommand", False, "SqlCommand", "(System.String,System.Data.SqlClient.SqlConnection)", "", "Argument[0]", "sql-injection", "manual"] -Since we want to add a new sink, we need to add a tuple to the ``sinkModel`` extensible predicate. The first five values identify the callable (in this case a method) to be modeled as a sink. - The first value ``System.Data.SqlClient`` is the namespace name. - The second value ``SqlCommand`` is the name of the class (type) that contains the method. -- The third value ``False`` is a flag that indicates whether or not the sink also applies to all overrides of the method. +- The third value ``False`` is a flag that indicates whether or not the model also applies to all overrides of the method. - The fourth value ``SqlCommand`` is the method name. Constructors are named after the class. - The fifth value ``(System.String,System.Data.SqlClient.SqlConnection)`` is the method input type signature. The type names must be fully qualified. The sixth value should be left empty and is out of scope for this documentation. -The remaining values are used to define the ``access path``, the ``kind``, and the ``provenance`` (origin) of the sink. +The remaining values are used to define the ``access-path``, the ``kind``, and the ``provenance`` (origin) of the sink. -- The seventh value ``Argument[0]`` is the ``access path`` to the first argument passed to the method, which means that this is the location of the sink. +- The seventh value ``Argument[0]`` is the ``access-path`` to the first argument passed to the method, which means that this is the location of the sink. - The eighth value ``sql-injection`` is the kind of the sink. The sink kind is used to define the queries where the sink is in scope. In this case - the SQL injection queries. - The ninth value ``manual`` is the provenance of the sink, which is used to identify the origin of the sink. @@ -119,7 +120,7 @@ This is the ``GetStream`` method in the ``TcpClient`` class, which is located in ... } -We need to add a tuple to the ``sourceModel``\(namespace, type, subtypes, name, signature, ext, output, kind, provenance) extensible predicate by updating a data extension file. +We need to add a tuple to the ``sourceModel(namespace, type, subtypes, name, signature, ext, output, kind, provenance)`` extensible predicate by updating a data extension file. .. code-block:: yaml @@ -130,18 +131,16 @@ We need to add a tuple to the ``sourceModel``\(namespace, type, subtypes, name, data: - ["System.Net.Sockets", "TcpClient", False, "GetStream", "()", "", "ReturnValue", "remote", "manual"] - -Since we are adding a new source, we need to add a tuple to the ``sourceModel`` extensible predicate. The first five values identify the callable (in this case a method) to be modeled as a source. - The first value ``System.Net.Sockets`` is the namespace name. - The second value ``TcpClient`` is the name of the class (type) that contains the source. -- The third value ``False`` is a flag that indicates whether or not the source also applies to all overrides of the method. +- The third value ``False`` is a flag that indicates whether or not the model also applies to all overrides of the method. - The fourth value ``GetStream`` is the method name. - The fifth value ``()`` is the method input type signature. The sixth value should be left empty and is out of scope for this documentation. -The remaining values are used to define the ``access path``, the ``kind``, and the ``provenance`` (origin) of the source. +The remaining values are used to define the ``access-path``, the ``kind``, and the ``provenance`` (origin) of the source. - The seventh value ``ReturnValue`` is the access path to the return of the method, which means that it is the return value that should be considered a source of tainted input. - The eighth value ``remote`` is the kind of the source. The source kind is used to define the threat model where the source is in scope. ``remote`` applies to many of the security related queries as it means a remote source of untrusted data. As an example the SQL injection query uses ``remote`` sources. For more information, see ":ref:`Threat models `." @@ -159,7 +158,7 @@ This pattern covers many of the cases where we need to summarize flow through a ... } -We need to add tuples to the ``summaryModel``\(namespace, type, subtypes, name, signature, ext, input, output, kind, provenance) extensible predicate by updating a data extension file: +We need to add tuples to the ``summaryModel(namespace, type, subtypes, name, signature, ext, input, output, kind, provenance)`` extensible predicate by updating a data extension file: .. code-block:: yaml @@ -171,7 +170,6 @@ We need to add tuples to the ``summaryModel``\(namespace, type, subtypes, name, - ["System", "String", False, "Concat", "(System.Object,System.Object)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["System", "String", False, "Concat", "(System.Object,System.Object)", "", "Argument[1]", "ReturnValue", "taint", "manual"] -Since we are adding flow through a method, we need to add tuples to the ``summaryModel`` extensible predicate. Each tuple defines flow from one argument to the return value. The first row defines flow from the first argument (``s1`` in the example) to the return value (``t`` in the example) and the second row defines flow from the second argument (``s2`` in the example) to the return value (``t`` in the example). @@ -180,12 +178,12 @@ These are the same for both of the rows above as we are adding two summaries for - The first value ``System`` is the namespace name. - The second value ``String`` is the class (type) name. -- The third value ``False`` is a flag that indicates whether or not the summary also applies to all overrides of the method. +- The third value ``False`` is a flag that indicates whether or not the model also applies to all overrides of the method. - The fourth value ``Concat`` is the method name. - The fifth value ``(System.Object,System.Object)`` is the method input type signature. The sixth value should be left empty and is out of scope for this documentation. -The remaining values are used to define the ``access path``, the ``kind``, and the ``provenance`` (origin) of the summary. +The remaining values are used to define the ``access-path``, the ``kind``, and the ``provenance`` (origin) of the summary. - The seventh value is the access path to the input (where data flows from). ``Argument[0]`` is the access path to the first argument (``s1`` in the example) and ``Argument[1]`` is the access path to the second argument (``s2`` in the example). - The eighth value ``ReturnValue`` is the access path to the output (where data flows to), in this case ``ReturnValue``, which means that the input flows to the return value. @@ -216,7 +214,7 @@ This example shows how the C# query pack models flow through a method for a simp ... } -We need to add a tuple to the ``summaryModel``\(namespace, type, subtypes, name, signature, ext, input, output, kind, provenance) extensible predicate by updating a data extension file: +We need to add a tuple to the ``summaryModel(namespace, type, subtypes, name, signature, ext, input, output, kind, provenance)`` extensible predicate by updating a data extension file: .. code-block:: yaml @@ -227,7 +225,6 @@ We need to add a tuple to the ``summaryModel``\(namespace, type, subtypes, name, data: - ["System", "String", False, "Trim", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] -Since we are adding flow through a method, we need to add tuples to the ``summaryModel`` extensible predicate. Each tuple defines flow from one argument to the return value. The first row defines flow from the qualifier of the method call (``s1`` in the example) to the return value (``t`` in the example). @@ -236,12 +233,12 @@ These are the same for both of the rows above as we are adding two summaries for - The first value ``System`` is the namespace name. - The second value ``String`` is the class (type) name. -- The third value ``False`` is a flag that indicates whether or not the summary also applies to all overrides of the method. +- The third value ``False`` is a flag that indicates whether or not the model also applies to all overrides of the method. - The fourth value ``Trim`` is the method name. - The fifth value ``()`` is the method input type signature. The sixth value should be left empty and is out of scope for this documentation. -The remaining values are used to define the ``access path``, the ``kind``, and the ``provenance`` (origin) of the summary. +The remaining values are used to define the ``access-path``, the ``kind``, and the ``provenance`` (origin) of the summary. - The seventh value is the access path to the input (where data flows from). ``Argument[this]`` is the access path to the qualifier (``s`` in the example). - The eighth value ``ReturnValue`` is the access path to the output (where data flows to), in this case ``ReturnValue``, which means that the input flows to the return value. @@ -260,7 +257,7 @@ Here we model flow through higher order methods and collection types, as well as ... } -We need to add tuples to the ``summaryModel``\(namespace, type, subtypes, name, signature, ext, input, output, kind, provenance) extensible predicate by updating a data extension file: +We need to add tuples to the ``summaryModel(namespace, type, subtypes, name, signature, ext, input, output, kind, provenance)`` extensible predicate by updating a data extension file: .. code-block:: yaml @@ -272,20 +269,18 @@ We need to add tuples to the ``summaryModel``\(namespace, type, subtypes, name, - ["System.Linq", "Enumerable", False, "Select", "(System.Collections.Generic.IEnumerable,System.Func)", "", "Argument[0].Element", "Argument[1].Parameter[0]", "value", "manual"] - ["System.Linq", "Enumerable", False, "Select", "(System.Collections.Generic.IEnumerable,System.Func)", "", "Argument[1].ReturnValue", "ReturnValue.Element", "value", "manual"] - -Since we are adding flow through a method, we need to add tuples to the ``summaryModel`` extensible predicate. Each tuple defines part of the flow that comprises the total flow through the ``Select`` method. The first five values identify the callable (in this case a method) to be modeled as a summary. These are the same for both of the rows above as we are adding two summaries for the same method. - The first value ``System.Linq`` is the namespace name. - The second value ``Enumerable`` is the class (type) name. -- The third value ``False`` is a flag that indicates whether or not the summary also applies to all overrides of the method. +- The third value ``False`` is a flag that indicates whether or not the model also applies to all overrides of the method. - The fourth value ``Select`` is the method name, along with the type parameters for the method. The names of the generic type parameters provided in the model must match the names of the generic type parameters in the method signature in the source code. - The fifth value ``(System.Collections.Generic.IEnumerable,System.Func)`` is the method input type signature. The generics in the signature must match the generics in the method signature in the source code. The sixth value should be left empty and is out of scope for this documentation. -The remaining values are used to define the ``access path``, the ``kind``, and the ``provenance`` (origin) of the summary definition. +The remaining values are used to define the ``access-path``, the ``kind``, and the ``provenance`` (origin) of the summary definition. - The seventh value is the access path to the ``input`` (where data flows from). - The eighth value is the access path to the ``output`` (where data flows to). @@ -307,6 +302,88 @@ For the remaining values for both rows: That is, the first row specifies that values can flow from the elements of the qualifier enumerable into the first argument of the function provided to ``Select``. The second row specifies that values can flow from the return value of the function to the elements of the enumerable returned from ``Select``. +Example: Add a barrier for the ``RawUrl`` property +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +This example shows how we can model a property as a barrier for a specific kind of query. +A barrier model is used to define that the flow of taint stops at the modeled element for the specified kind of query. +Here we model the getter of the ``RawUrl`` property of the ``HttpRequest`` class as a barrier for URL redirection queries. +The ``RawUrl`` property returns the raw URL of the current request, which is considered safe for URL redirects because it is the URL of the current request and cannot be manipulated by an attacker. + +.. code-block:: csharp + + public static void TaintBarrier(HttpRequest request) { + string url = request.RawUrl; // The return value of this property is considered safe for URL redirects. + Response.Redirect(url); // This is not a URL redirection vulnerability. + } + +We need to add a tuple to the ``barrierModel(namespace, type, subtypes, name, signature, ext, output, kind, provenance)`` extensible predicate by updating a data extension file. + +.. code-block:: yaml + + extensions: + - addsTo: + pack: codeql/csharp-all + extensible: barrierModel + data: + - ["System.Web", "HttpRequest", False, "get_RawUrl", "()", "", "ReturnValue", "url-redirection", "manual"] + +The first five values identify the callable (in this case the getter of a property) to be modeled as a barrier. + +- The first value ``System.Web`` is the namespace name. +- The second value ``HttpRequest`` is the class (type) name. +- The third value ``False`` is a flag that indicates whether or not the model also applies to all overrides of the method. +- The fourth value ``get_RawUrl`` is the method name. Getter and setter methods are named ``get_`` and ``set_`` respectively. +- The fifth value ``()`` is the method input type signature. + +The sixth value should be left empty and is out of scope for this documentation. +The remaining values are used to define the ``access-path``, the ``kind``, and the ``provenance`` (origin) of the barrier. + +- The seventh value ``ReturnValue`` is the access path to the return value of the property getter, which means that the return value is considered safe. +- The eighth value ``url-redirection`` is the kind of the barrier. The barrier kind is used to define the queries where the barrier is in scope. In this case - the URL redirection queries. +- The ninth value ``manual`` is the provenance of the barrier, which is used to identify the origin of the barrier. + +Example: Add a barrier guard for the ``IsAbsoluteUri`` property +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +This example shows how we can model a property as a barrier guard for a specific kind of query. +A barrier guard model is used to stop the flow of taint when a conditional check is performed on data. +Here we model the getter of the ``IsAbsoluteUri`` property of the ``Uri`` class as a barrier guard for URL redirection queries. +When the ``IsAbsoluteUri`` property returns ``false``, the URL is relative and therefore safe for URL redirects because it cannot redirect to an external site controlled by an attacker. + +.. code-block:: csharp + + public static void TaintBarrierGuard(Uri uri) { + if (!uri.IsAbsoluteUri) { // The check guards the redirect, so the URL is safe. + Response.Redirect(uri.ToString()); // This is not a URL redirection vulnerability. + } + } + +We need to add a tuple to the ``barrierGuardModel(namespace, type, subtypes, name, signature, ext, input, acceptingValue, kind, provenance)`` extensible predicate by updating a data extension file. + +.. code-block:: yaml + + extensions: + - addsTo: + pack: codeql/csharp-all + extensible: barrierGuardModel + data: + - ["System", "Uri", False, "get_IsAbsoluteUri", "()", "", "Argument[this]", "false", "url-redirection", "manual"] + +The first five values identify the callable (in this case the getter of a property) to be modeled as a barrier guard. + +- The first value ``System`` is the namespace name. +- The second value ``Uri`` is the class (type) name. +- The third value ``False`` is a flag that indicates whether or not the model guard also applies to all overrides of the method. +- The fourth value ``get_IsAbsoluteUri`` is the method name. Getter and setter methods are named ``get_`` and ``set_`` respectively. +- The fifth value ``()`` is the method input type signature. + +The sixth value should be left empty and is out of scope for this documentation. +The remaining values are used to define the ``access-path``, the ``accepting-value``, the ``kind``, and the ``provenance`` (origin) of the barrier guard. + +- The seventh value ``Argument[this]`` is the access path to the input whose flow is blocked. In this case, the qualifier of the property access (``uri`` in the example). +- The eighth value ``false`` is the accepting value of the barrier guard. This is the value that the conditional check must return for the barrier to apply. In this case, when ``IsAbsoluteUri`` is ``false``, the URL is relative and considered safe. +- The ninth value ``url-redirection`` is the kind of the barrier guard. The barrier guard kind is used to define the queries where the barrier guard is in scope. In this case - the URL redirection queries. +- The tenth value ``manual`` is the provenance of the barrier guard, which is used to identify the origin of the barrier guard. + Example: Add a ``neutral`` method ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This example shows how we can model a method as being neutral with respect to flow. We will also cover how to model a property by modeling the getter of the ``Now`` property of the ``DateTime`` class as neutral. @@ -319,7 +396,7 @@ A neutral model is used to define that there is no flow through a method. ... } -We need to add a tuple to the ``neutralModel``\(namespace, type, name, signature, kind, provenance) extensible predicate by updating a data extension file. +We need to add a tuple to the ``neutralModel(namespace, type, name, signature, kind, provenance)`` extensible predicate by updating a data extension file. .. code-block:: yaml @@ -330,8 +407,6 @@ We need to add a tuple to the ``neutralModel``\(namespace, type, name, signature data: - ["System", "DateTime", "get_Now", "()", "summary", "manual"] - -Since we are adding a neutral model, we need to add tuples to the ``neutralModel`` extensible predicate. The first four values identify the callable (in this case the getter of the ``Now`` property) to be modeled as a neutral, the fifth value is the kind, and the sixth value is the provenance (origin) of the neutral. - The first value ``System`` is the namespace name. diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-go.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-go.rst index c5b74ccd73a..2eb9446459f 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-go.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-go.rst @@ -58,6 +58,8 @@ The CodeQL library for Go analysis exposes the following extensible predicates: - ``sourceModel(package, type, subtypes, name, signature, ext, output, kind, provenance)``. This is used to model sources of potentially tainted data. The ``kind`` of the sources defined using this predicate determine which threat model they are associated with. Different threat models can be used to customize the sources used in an analysis. For more information, see ":ref:`Threat models `." - ``sinkModel(package, type, subtypes, name, signature, ext, input, kind, provenance)``. This is used to model sinks where tainted data may be used in a way that makes the code vulnerable. - ``summaryModel(package, type, subtypes, name, signature, ext, input, output, kind, provenance)``. This is used to model flow through elements. +- ``barrierModel(package, type, subtypes, name, signature, ext, output, kind, provenance)``. This is used to model barriers, which are elements that stop the flow of taint. +- ``barrierGuardModel(package, type, subtypes, name, signature, ext, input, acceptingValue, kind, provenance)``. This is used to model barrier guards, which are elements that can stop the flow of taint depending on a conditional check. - ``neutralModel(package, type, name, signature, kind, provenance)``. This is similar to a summary model but used to model the flow of values that have only a minor impact on the dataflow analysis. Manual neutral models (those with a provenance such as ``manual`` or ``ai-manual``) can be used to override generated summary models (those with a provenance such as ``df-generated``), so that the summary model will be ignored. Other than that, neutral models have no effect. The extensible predicates are populated using the models defined in data extension files. @@ -91,19 +93,18 @@ We need to add a tuple to the ``sinkModel``\(package, type, subtypes, name, sign data: - ["database/sql", "DB", True, "Prepare", "", "", "Argument[0]", "sql-injection", "manual"] -Since we want to add a new sink, we need to add a tuple to the ``sinkModel`` extensible predicate. The first five values identify the function (in this case a method) to be modeled as a sink. - The first value ``database/sql`` is the package name. - The second value ``DB`` is the name of the type that the method is associated with. -- The third value ``True`` is a flag that indicates whether or not the sink also applies to subtypes. This includes when the subtype embeds the given type, so that the method or field is promoted to be a method or field of the subtype. For interface methods it also includes types which implement the interface type. +- The third value ``True`` is a flag that indicates whether or not the model also applies to subtypes. This includes when the subtype embeds the given type, so that the method or field is promoted to be a method or field of the subtype. For interface methods it also includes types which implement the interface type. - The fourth value ``Prepare`` is the method name. - The fifth value ``""`` is the input type signature. For Go it should always be an empty string. It is needed for other languages where multiple functions may have the same name and they need to be distinguished by the number and types of the arguments. The sixth value should be left empty and is out of scope for this documentation. -The remaining values are used to define the ``access path``, the ``kind``, and the ``provenance`` (origin) of the sink. +The remaining values are used to define the ``access-path``, the ``kind``, and the ``provenance`` (origin) of the sink. -- The seventh value ``Argument[0]`` is the ``access path`` to the first argument passed to the method, which means that this is the location of the sink. +- The seventh value ``Argument[0]`` is the ``access-path`` to the first argument passed to the method, which means that this is the location of the sink. - The eighth value ``sql-injection`` is the kind of the sink. The sink kind is used to define the queries where the sink is in scope. In this case - the SQL injection queries. - The ninth value ``manual`` is the provenance of the sink, which is used to identify the origin of the sink. @@ -120,7 +121,7 @@ This is the ``FormValue`` method of the ``Request`` type which is located in the } -We need to add a tuple to the ``sourceModel``\(package, type, subtypes, name, signature, ext, output, kind, provenance) extensible predicate by updating a data extension file. +We need to add a tuple to the ``sourceModel(package, type, subtypes, name, signature, ext, output, kind, provenance)`` extensible predicate by updating a data extension file. .. code-block:: yaml @@ -131,18 +132,16 @@ We need to add a tuple to the ``sourceModel``\(package, type, subtypes, name, si data: - ["net/http", "Request", True, "FormValue", "", "", "ReturnValue", "remote", "manual"] - -Since we are adding a new source, we need to add a tuple to the ``sourceModel`` extensible predicate. The first five values identify the function to be modeled as a source. - The first value ``net/http`` is the package name. - The second value ``Request`` is the type name, since the function is a method of the ``Request`` type. -- The third value ``True`` is a flag that indicates whether or not the sink also applies to subtypes. This includes when the subtype embeds the given type, so that the method or field is promoted to be a method or field of the subtype. For interface methods it also includes types which implement the interface type. +- The third value ``True`` is a flag that indicates whether or not the model also applies to subtypes. This includes when the subtype embeds the given type, so that the method or field is promoted to be a method or field of the subtype. For interface methods it also includes types which implement the interface type. - The fourth value ``FormValue`` is the function name. - The fifth value ``""`` is the input type signature. For Go it should always be an empty string. It is needed for other languages where multiple functions may have the same name and they need to be distinguished by the number and types of the arguments. The sixth value should be left empty and is out of scope for this documentation. -The remaining values are used to define the ``access path``, the ``kind``, and the ``provenance`` (origin) of the source. +The remaining values are used to define the ``access-path``, the ``kind``, and the ``provenance`` (origin) of the source. - The seventh value ``ReturnValue`` is the access path to the return of the method, which means that it is the return value that should be considered a source of tainted input. - The eighth value ``remote`` is the kind of the source. The source kind is used to define the threat model where the source is in scope. ``remote`` applies to many of the security related queries as it means a remote source of untrusted data. As an example the SQL injection query uses ``remote`` sources. For more information, see ":ref:`Threat models `." @@ -162,7 +161,7 @@ This pattern covers many of the cases where we need to summarize flow through a ... } -We need to add a tuple to the ``summaryModel``\(package, type, subtypes, name, signature, ext, input, output, kind, provenance) extensible predicate by updating a data extension file: +We need to add a tuple to the ``summaryModel(package, type, subtypes, name, signature, ext, input, output, kind, provenance)`` extensible predicate by updating a data extension file: .. code-block:: yaml @@ -171,21 +170,20 @@ We need to add a tuple to the ``summaryModel``\(package, type, subtypes, name, s pack: codeql/go-all extensible: summaryModel data: - - ["slices", "", False, "Max", "", "", "Argument[0].ArrayElement", "ReturnValue", "value", "manual"] + - ["slices", "", False, "Max", "", "", "Argument[0].ArrayElement", "ReturnValue", "value", "manual"] -Since we are adding flow through a method, we need to add tuples to the ``summaryModel`` extensible predicate. The first row defines flow from the first argument (``a`` in the example) to the return value (``max`` in the example). The first five values identify the function to be modeled as a summary. - The first value ``slices`` is the package name. - The second value ``""`` is left blank, since the function is not a method of a type. -- The third value ``False`` is a flag that indicates whether or not the sink also applies to subtypes. This has no effect for non-method functions. +- The third value ``False`` is a flag that indicates whether or not the model also applies to subtypes. This has no effect for non-method functions. - The fourth value ``Max`` is the function name. - The fifth value ``""`` is the input type signature. For Go it should always be an empty string. It is needed for other languages where multiple functions may have the same name and they need to be distinguished by the number and types of the arguments. The sixth value should be left empty and is out of scope for this documentation. -The remaining values are used to define the ``access path``, the ``kind``, and the ``provenance`` (origin) of the summary. +The remaining values are used to define the ``access-path``, the ``kind``, and the ``provenance`` (origin) of the summary. - The seventh value is the access path to the input (where data flows from). ``Argument[0].ArrayElement`` is the access path to the array elements of the first argument (the elements of the slice in the example). - The eighth value ``ReturnValue`` is the access path to the output (where data flows to), in this case ``ReturnValue``, which means that the input flows to the return value. @@ -207,7 +205,7 @@ This pattern covers many of the cases where we need to summarize flow through a ... } -We need to add a tuple to the ``summaryModel``\(package, type, subtypes, name, signature, ext, input, output, kind, provenance) extensible predicate by updating a data extension file: +We need to add a tuple to the ``summaryModel(package, type, subtypes, name, signature, ext, input, output, kind, provenance)`` extensible predicate by updating a data extension file: .. code-block:: yaml @@ -218,19 +216,18 @@ We need to add a tuple to the ``summaryModel``\(package, type, subtypes, name, s data: - ["slices", "", False, "Concat", "", "", "Argument[0].ArrayElement.ArrayElement", "ReturnValue.ArrayElement", "value", "manual"] -Since we are adding flow through a method, we need to add tuples to the ``summaryModel`` extensible predicate. The first row defines flow from the arguments (``a`` and ``b`` in the example) to the return value (``c`` in the example). The first five values identify the function to be modeled as a summary. - The first value ``slices`` is the package name. - The second value ``""`` is left blank, since the function is not a method of a type. -- The third value ``False`` is a flag that indicates whether or not the sink also applies to subtypes. This has no effect for non-method functions. +- The third value ``False`` is a flag that indicates whether or not the model also applies to subtypes. This has no effect for non-method functions. - The fourth value ``Max`` is the function name. - The fifth value ``""`` is the input type signature. For Go it should always be an empty string. It is needed for other languages where multiple functions may have the same name and they need to be distinguished by the number and types of the arguments. The sixth value should be left empty and is out of scope for this documentation. -The remaining values are used to define the ``access path``, the ``kind``, and the ``provenance`` (origin) of the summary. +The remaining values are used to define the ``access-path``, the ``kind``, and the ``provenance`` (origin) of the summary. - The seventh value is the access path to the input (where data flows from). ``Argument[0].ArrayElement.ArrayElement`` is the access path to the array elements of the array elements of the first argument. Note that a variadic parameter of type `...T` is treated as if it has type `[]T` and arguments corresponding to the variadic parameter are accessed as elements of this slice. - The eighth value ``ReturnValue.ArrayElement`` is the access path to the output (where data flows to), in this case ``ReturnValue.ArrayElement``, which means that the input flows to the array elements of the return value. @@ -251,7 +248,7 @@ This pattern covers many of the cases where we need to summarize flow through a ... } -We need to add tuples to the ``summaryModel``\(package, type, subtypes, name, signature, ext, input, output, kind, provenance) extensible predicate by updating a data extension file: +We need to add tuples to the ``summaryModel(package, type, subtypes, name, signature, ext, input, output, kind, provenance)`` extensible predicate by updating a data extension file: .. code-block:: yaml @@ -263,7 +260,6 @@ We need to add tuples to the ``summaryModel``\(package, type, subtypes, name, si - ["strings", "", False, "Join", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["strings", "", False, "Join", "", "", "Argument[1]", "ReturnValue", "taint", "manual"] -Since we are adding flow through a method, we need to add tuples to the ``summaryModel`` extensible predicate. Each tuple defines flow from one argument to the return value. The first row defines flow from the first argument (``elems`` in the example) to the return value (``t`` in the example) and the second row defines flow from the second argument (``sep`` in the example) to the return value (``t`` in the example). @@ -272,12 +268,12 @@ These are the same for both of the rows above as we are adding two summaries for - The first value ``strings`` is the package name. - The second value ``""`` is left blank, since the function is not a method of a type. -- The third value ``False`` is a flag that indicates whether or not the sink also applies to subtypes. This has no effect for non-method functions. +- The third value ``False`` is a flag that indicates whether or not the model also applies to subtypes. This has no effect for non-method functions. - The fourth value ``Join`` is the function name. - The fifth value ``""`` is the input type signature. For Go it should always be an empty string. It is needed for other languages where multiple functions may have the same name and they need to be distinguished by the number and types of the arguments. The sixth value should be left empty and is out of scope for this documentation. -The remaining values are used to define the ``access path``, the ``kind``, and the ``provenance`` (origin) of the summary. +The remaining values are used to define the ``access-path``, the ``kind``, and the ``provenance`` (origin) of the summary. - The seventh value is the access path to the input (where data flows from). ``Argument[0]`` is the access path to the first argument (``elems`` in the example) and ``Argument[1]`` is the access path to the second argument (``sep`` in the example). - The eighth value ``ReturnValue`` is the access path to the output (where data flows to), in this case ``ReturnValue``, which means that the input flows to the return value. @@ -307,8 +303,8 @@ This example shows how the Go query pack models flow through a method for a simp host := u.Hostname() // There is taint flow from u to host. ... } - -We need to add a tuple to the ``summaryModel``\(package, type, subtypes, name, signature, ext, input, output, kind, provenance) extensible predicate by updating a data extension file: + +We need to add a tuple to the ``summaryModel(package, type, subtypes, name, signature, ext, input, output, kind, provenance)`` extensible predicate by updating a data extension file: .. code-block:: yaml @@ -319,7 +315,6 @@ We need to add a tuple to the ``summaryModel``\(package, type, subtypes, name, s data: - ["net/url", "URL", True, "Hostname", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] -Since we are adding flow through a method, we need to add tuples to the ``summaryModel`` extensible predicate. Each tuple defines flow from one argument to the return value. The first row defines flow from the qualifier of the method call (``u`` in the example) to the return value (``host`` in the example). @@ -327,18 +322,98 @@ The first five values identify the function (in this case a method) to be modele - The first value ``net/url`` is the package name. - The second value ``URL`` is the receiver type. -- The third value ``True`` is a flag that indicates whether or not the sink also applies to subtypes. This includes when the subtype embeds the given type, so that the method or field is promoted to be a method or field of the subtype. For interface methods it also includes types which implement the interface type. +- The third value ``True`` is a flag that indicates whether or not the model also applies to subtypes. This includes when the subtype embeds the given type, so that the method or field is promoted to be a method or field of the subtype. For interface methods it also includes types which implement the interface type. - The fourth value ``Hostname`` is the method name. - The fifth value ``""`` is the input type signature. For Go it should always be an empty string. It is needed for other languages where multiple functions may have the same name and they need to be distinguished by the number and types of the arguments. The sixth value should be left empty and is out of scope for this documentation. -The remaining values are used to define the ``access path``, the ``kind``, and the ``provenance`` (origin) of the summary. +The remaining values are used to define the ``access-path``, the ``kind``, and the ``provenance`` (origin) of the summary. - The seventh value is the access path to the input (where data flows from). ``Argument[receiver]`` is the access path to the receiver (``u`` in the example). - The eighth value ``ReturnValue`` is the access path to the output (where data flows to), in this case ``ReturnValue``, which means that the input flows to the return value. When there are multiple return values, use ``ReturnValue[i]`` to refer to the ``i`` th return value (starting from 0). - The ninth value ``taint`` is the kind of the flow. ``taint`` means that taint is propagated through the call. - The tenth value ``manual`` is the provenance of the summary, which is used to identify the origin of the summary. +Example: Add a barrier using the ``Htmlquote`` function +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +This example shows how the Go query pack models a barrier that stops the flow of taint. +The ``Htmlquote`` function from the `beego` framework HTML-escapes a string, which prevents HTML injection attacks. + +.. code-block:: go + + func Render(w http.ResponseWriter, r *http.Request) { + name := r.FormValue("name") + safe := beego.Htmlquote(name) // The return value of this function is safe to use in HTML. + ... + } + +We need to add a tuple to the ``barrierModel(package, type, subtypes, name, signature, ext, output, kind, provenance)`` extensible predicate by updating a data extension file. + +.. code-block:: yaml + + extensions: + - addsTo: + pack: codeql/go-all + extensible: barrierModel + data: + - ["group:beego", "", True, "Htmlquote", "", "", "ReturnValue", "html-injection", "manual"] + +The first five values identify the function to be modeled as a barrier. + +- The first value ``group:beego`` is the package group name. The ``group:`` prefix indicates that this is a package group, which is used to match multiple package paths that refer to the same package. +- The second value ``""`` is left blank since the function is not a method of a type. +- The third value ``True`` is a flag that indicates whether or not the model also applies to subtypes. This has no effect for non-method functions. +- The fourth value ``Htmlquote`` is the function name. +- The fifth value ``""`` is the input type signature. For Go it should always be an empty string. + +The sixth value should be left empty and is out of scope for this documentation. +The remaining values are used to define the ``access-path``, the ``kind``, and the ``provenance`` (origin) of the barrier. + +- The seventh value ``ReturnValue`` is the access path to the output of the barrier, which means that the return value is considered sanitized. +- The eighth value ``html-injection`` is the kind of the barrier. The barrier kind must match the kind used in the query where the barrier should take effect. In this case, it matches the ``html-injection`` sink kind used by XSS queries. +- The ninth value ``manual`` is the provenance of the barrier, which is used to identify the origin of the barrier. + +Example: Add a barrier guard +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +This example shows how to model a barrier guard that stops the flow of taint when a conditional check is performed on data. +A barrier guard model is used when a function returns a boolean that indicates whether the data is safe to use. +Consider a function called ``IsSafe`` which returns ``true`` when the data is considered safe for SQL injection. + +.. code-block:: go + + func Query(db *sql.DB, input string) { + if example.IsSafe(input) { // The check guards the query, so the input is safe. + db.Query(input) // This is not a SQL injection vulnerability. + } + } + +We need to add a tuple to the ``barrierGuardModel(package, type, subtypes, name, signature, ext, input, acceptingValue, kind, provenance)`` extensible predicate by updating a data extension file. + +.. code-block:: yaml + + extensions: + - addsTo: + pack: codeql/go-all + extensible: barrierGuardModel + data: + - ["example.com/example", "", False, "IsSafe", "", "", "Argument[0]", "true", "sql-injection", "manual"] + +The first five values identify the function to be modeled as a barrier guard. + +- The first value ``example.com/example`` is the package name. +- The second value ``""`` is left blank since the function is not a method of a type. +- The third value ``False`` is a flag that indicates whether or not the model guard also applies to subtypes. This has no effect for non-method functions. +- The fourth value ``IsSafe`` is the function name. +- The fifth value ``""`` is the input type signature. For Go it should always be an empty string. + +The sixth value should be left empty and is out of scope for this documentation. +The remaining values are used to define the ``access-path``, the ``accepting-value``, the ``kind``, and the ``provenance`` (origin) of the barrier guard. + +- The seventh value ``Argument[0]`` is the access path to the input whose flow is blocked. In this case, the first argument to the function (``input`` in the example). +- The eighth value ``true`` is the accepting value of the barrier guard. This is the value that the conditional check must return for the barrier to apply. In this case, when ``IsSafe`` returns ``true``, the input is considered safe. +- The ninth value ``sql-injection`` is the kind of the barrier guard. The barrier guard kind is used to define the queries where the barrier guard is in scope. In this case - the SQL injection queries. +- The tenth value ``manual`` is the provenance of the barrier guard, which is used to identify the origin of the barrier guard. + Example: Accessing the ``Body`` field of an HTTP request ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This example shows how we can model a field read as a source of tainted data. @@ -350,7 +425,7 @@ This example shows how we can model a field read as a source of tainted data. ... } -We need to add a tuple to the ``sourceModel``\(package, type, subtypes, name, signature, ext, output, kind, provenance) extensible predicate by updating a data extension file. +We need to add a tuple to the ``sourceModel(package, type, subtypes, name, signature, ext, output, kind, provenance)`` extensible predicate by updating a data extension file. .. code-block:: yaml @@ -361,17 +436,16 @@ We need to add a tuple to the ``sourceModel``\(package, type, subtypes, name, si data: - ["net/http", "Request", True, "Body", "", "", "", "remote", "manual"] -Since we are adding a new source, we need to add a tuple to the ``sourceModel`` extensible predicate. The first five values identify the field to be modeled as a source. - The first value ``net/http`` is the package name. - The second value ``Request`` is the name of the type that the field is associated with. -- The third value ``True`` is a flag that indicates whether or not the sink also applies to subtypes. For fields this means when the field is accessed as a promoted field in another type. +- The third value ``True`` is a flag that indicates whether or not the model also applies to subtypes. For fields this means when the field is accessed as a promoted field in another type. - The fourth value ``Body`` is the field name. - The fifth value ``""`` is the input type signature. For Go it should always be an empty string. It is needed for other languages where multiple functions may have the same name and they need to be distinguished by the number and types of the arguments. The sixth value should be left empty and is out of scope for this documentation. -The remaining values are used to define the ``access path``, the ``kind``, and the ``provenance`` (origin) of the source. +The remaining values are used to define the ``access-path``, the ``kind``, and the ``provenance`` (origin) of the source. - The seventh value ``""`` is left blank. Leaving the access path of a source model blank indicates that it is a field access. - The eighth value ``remote`` is the source kind. This indicates that the source is a remote source of untrusted data. @@ -387,7 +461,7 @@ Note that packages hosted at ``gopkg.in`` use a slightly different syntax: the m To write models that only apply to ``github.com/couchbase/gocb/v2``, it is sufficient to include the major version suffix (``/v2``) in the package column. To write models that only apply to ``github.com/couchbase/gocb``, you may prefix the package column with ``fixed-version:``. For example, here are two models for a method that has changed name from v1 to v2. .. code-block:: yaml - + extensions: - addsTo: pack: codeql/go-all diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-java-and-kotlin.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-java-and-kotlin.rst index 7f0a41b3040..203213b9425 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-java-and-kotlin.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-java-and-kotlin.rst @@ -63,6 +63,8 @@ The CodeQL library for Java and Kotlin analysis exposes the following extensible - ``sourceModel(package, type, subtypes, name, signature, ext, output, kind, provenance)``. This is used to model sources of potentially tainted data. The ``kind`` of the sources defined using this predicate determine which threat model they are associated with. Different threat models can be used to customize the sources used in an analysis. For more information, see ":ref:`Threat models `." - ``sinkModel(package, type, subtypes, name, signature, ext, input, kind, provenance)``. This is used to model sinks where tainted data maybe used in a way that makes the code vulnerable. - ``summaryModel(package, type, subtypes, name, signature, ext, input, output, kind, provenance)``. This is used to model flow through elements. +- ``barrierModel(namespace, type, subtypes, name, signature, ext, output, kind, provenance)``. This is used to model barriers, which are elements that stop the flow of taint. +- ``barrierGuardModel(namespace, type, subtypes, name, signature, ext, input, acceptingValue, kind, provenance)``. This is used to model barrier guards, which are elements that can stop the flow of taint depending on a conditional check. - ``neutralModel(package, type, name, signature, kind, provenance)``. This is similar to a summary model but used to model the flow of values that have only a minor impact on the dataflow analysis. Manual neutral models (those with a provenance such as ``manual`` or ``ai-manual``) override generated summary models (those with a provenance such as ``df-generated``) so that the summary will be ignored. Other than that, neutral models have a slight impact on the dataflow dispatch logic, which is out of scope for this documentation. The extensible predicates are populated using the models defined in data extension files. @@ -85,7 +87,7 @@ This is the ``execute`` method in the ``Statement`` class, which is located in t stmt.execute(query); // The argument to this method is a SQL injection sink. } -We need to add a tuple to the ``sinkModel``\(package, type, subtypes, name, signature, ext, input, kind, provenance) extensible predicate by updating a data extension file. +We need to add a tuple to the ``sinkModel(package, type, subtypes, name, signature, ext, input, kind, provenance)`` extensible predicate by updating a data extension file. .. code-block:: yaml @@ -96,20 +98,18 @@ We need to add a tuple to the ``sinkModel``\(package, type, subtypes, name, sign data: - ["java.sql", "Statement", True, "execute", "(String)", "", "Argument[0]", "sql-injection", "manual"] - -Since we want to add a new sink, we need to add a tuple to the ``sinkModel`` extensible predicate. The first five values identify the callable (in this case a method) to be modeled as a sink. - The first value ``java.sql`` is the package name. - The second value ``Statement`` is the name of the class (type) that contains the method. -- The third value ``True`` is a flag that indicates whether or not the sink also applies to all overrides of the method. +- The third value ``True`` is a flag that indicates whether or not the model also applies to all overrides of the method. - The fourth value ``execute`` is the method name. - The fifth value ``(String)`` is the method input type signature. The sixth value should be left empty and is out of scope for this documentation. -The remaining values are used to define the ``access path``, the ``kind``, and the ``provenance`` (origin) of the sink. +The remaining values are used to define the ``access-path``, the ``kind``, and the ``provenance`` (origin) of the sink. -- The seventh value ``Argument[0]`` is the ``access path`` to the first argument passed to the method, which means that this is the location of the sink. +- The seventh value ``Argument[0]`` is the ``access-path`` to the first argument passed to the method, which means that this is the location of the sink. - The eighth value ``sql-injection`` is the kind of the sink. The sink kind is used to define the queries where the sink is in scope. In this case - the SQL injection queries. - The ninth value ``manual`` is the provenance of the sink, which is used to identify the origin of the sink. @@ -125,7 +125,7 @@ This is the ``getInputStream`` method in the ``Socket`` class, which is located ... } -We need to add a tuple to the ``sourceModel``\(package, type, subtypes, name, signature, ext, output, kind, provenance) extensible predicate by updating a data extension file. +We need to add a tuple to the ``sourceModel(package, type, subtypes, name, signature, ext, output, kind, provenance)`` extensible predicate by updating a data extension file. .. code-block:: yaml @@ -136,18 +136,16 @@ We need to add a tuple to the ``sourceModel``\(package, type, subtypes, name, si data: - ["java.net", "Socket", False, "getInputStream", "()", "", "ReturnValue", "remote", "manual"] - -Since we are adding a new source, we need to add a tuple to the ``sourceModel`` extensible predicate. The first five values identify the callable (in this case a method) to be modeled as a source. - The first value ``java.net`` is the package name. - The second value ``Socket`` is the name of the class (type) that contains the source. -- The third value ``False`` is a flag that indicates whether or not the source also applies to all overrides of the method. +- The third value ``False`` is a flag that indicates whether or not the model also applies to all overrides of the method. - The fourth value ``getInputStream`` is the method name. - The fifth value ``()`` is the method input type signature. The sixth value should be left empty and is out of scope for this documentation. -The remaining values are used to define the ``access path``, the ``kind``, and the ``provenance`` (origin) of the source. +The remaining values are used to define the ``access-path``, the ``kind``, and the ``provenance`` (origin) of the source. - The seventh value ``ReturnValue`` is the access path to the return of the method, which means that it is the return value that should be considered a source of tainted input. - The eighth value ``remote`` is the kind of the source. The source kind is used to define the threat model where the source is in scope. ``remote`` applies to many of the security related queries as it means a remote source of untrusted data. As an example the SQL injection query uses ``remote`` sources. For more information, see ":ref:`Threat models `." @@ -165,7 +163,7 @@ This pattern covers many of the cases where we need to summarize flow through a ... } -We need to add tuples to the ``summaryModel``\(package, type, subtypes, name, signature, ext, input, output, kind, provenance) extensible predicate by updating a data extension file: +We need to add tuples to the ``summaryModel(package, type, subtypes, name, signature, ext, input, output, kind, provenance)`` extensible predicate by updating a data extension file: .. code-block:: yaml @@ -177,7 +175,6 @@ We need to add tuples to the ``summaryModel``\(package, type, subtypes, name, si - ["java.lang", "String", False, "concat", "(String)", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["java.lang", "String", False, "concat", "(String)", "", "Argument[0]", "ReturnValue", "taint", "manual"] -Since we are adding flow through a method, we need to add tuples to the ``summaryModel`` extensible predicate. Each tuple defines flow from one argument to the return value. The first row defines flow from the qualifier (``s1`` in the example) to the return value (``t`` in the example) and the second row defines flow from the first argument (``s2`` in the example) to the return value (``t`` in the example). @@ -186,12 +183,12 @@ These are the same for both of the rows above as we are adding two summaries for - The first value ``java.lang`` is the package name. - The second value ``String`` is the class (type) name. -- The third value ``False`` is a flag that indicates whether or not the summary also applies to all overrides of the method. +- The third value ``False`` is a flag that indicates whether or not the model also applies to all overrides of the method. - The fourth value ``concat`` is the method name. - The fifth value ``(String)`` is the method input type signature. The sixth value should be left empty and is out of scope for this documentation. -The remaining values are used to define the ``access path``, the ``kind``, and the ``provenance`` (origin) of the summary. +The remaining values are used to define the ``access-path``, the ``kind``, and the ``provenance`` (origin) of the summary. - The seventh value is the access path to the input (where data flows from). ``Argument[this]`` is the access path to the qualifier (``s1`` in the example) and ``Argument[0]`` is the access path to the first argument (``s2`` in the example). - The eighth value ``ReturnValue`` is the access path to the output (where data flows to), in this case ``ReturnValue``, which means that the input flows to the return value. @@ -210,7 +207,7 @@ Here we model flow through higher order methods and collection types. ... } -We need to add tuples to the ``summaryModel``\(package, type, subtypes, name, signature, ext, input, output, kind, provenance) extensible predicate by updating a data extension file: +We need to add tuples to the ``summaryModel(package, type, subtypes, name, signature, ext, input, output, kind, provenance)`` extensible predicate by updating a data extension file: .. code-block:: yaml @@ -222,20 +219,18 @@ We need to add tuples to the ``summaryModel``\(package, type, subtypes, name, si - ["java.util.stream", "Stream", True, "map", "(Function)", "", "Argument[this].Element", "Argument[0].Parameter[0]", "value", "manual"] - ["java.util.stream", "Stream", True, "map", "(Function)", "", "Argument[0].ReturnValue", "ReturnValue.Element", "value", "manual"] - -Since we are adding flow through a method, we need to add tuples to the ``summaryModel`` extensible predicate. Each tuple defines part of the flow that comprises the total flow through the ``map`` method. The first five values identify the callable (in this case a method) to be modeled as a summary. These are the same for both of the rows above as we are adding two summaries for the same method. - The first value ``java.util.stream`` is the package name. - The second value ``Stream`` is the class (type) name. -- The third value ``True`` is a flag that indicates whether or not the summary also applies to all overrides of the method. +- The third value ``True`` is a flag that indicates whether or not the model also applies to all overrides of the method. - The fourth value ``map`` is the method name. - The fifth value ``Function`` is the method input type signature. The sixth value should be left empty and is out of scope for this documentation. -The remaining values are used to define the ``access path``, the ``kind``, and the ``provenance`` (origin) of the summary definition. +The remaining values are used to define the ``access-path``, the ``kind``, and the ``provenance`` (origin) of the summary definition. - The seventh value is the access path to the ``input`` (where data flows from). - The eighth value is the access path to the ``output`` (where data flows to). @@ -257,6 +252,87 @@ For the remaining values for both rows: That is, the first row specifies that values can flow from the elements of the qualifier stream into the first argument of the function provided to ``map``. The second row specifies that values can flow from the return value of the function to the elements of the stream returned from ``map``. +Example: Taint barrier in the ``java.io`` package +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +This example shows how the Java query pack models the return value from the ``getName`` method as a barrier for path injection. +This is the ``getName`` method in the ``File`` class, which is located in the ``java.io`` package. The method returns only the final component of a path, which means that it protects against path injection vulnerabilities. + +.. code-block:: java + + public static void barrier(File file) { + String name = file.getName(); // The return value of this method is a barrier for path injection. + ... + } + +We need to add a tuple to the ``barrierModel(package, type, subtypes, name, signature, ext, output, kind, provenance)`` extensible predicate by updating a data extension file. + +.. code-block:: yaml + + extensions: + - addsTo: + pack: codeql/java-all + extensible: barrierModel + data: + - ["java.io", "File", True, "getName", "()", "", "ReturnValue", "path-injection", "manual"] + +The first five values identify the callable (in this case a method) to be modeled as a barrier. + +- The first value ``java.io`` is the package name. +- The second value ``File`` is the name of the class (type) that contains the method. +- The third value ``True`` is a flag that indicates whether or not the model also applies to all overrides of the method. +- The fourth value ``getName`` is the method name. +- The fifth value ``()`` is the method input type signature. + +The sixth value should be left empty and is out of scope for this documentation. +The remaining values are used to define the ``access-path``, the ``kind``, and the ``provenance`` (origin) of the barrier. + +- The seventh value ``ReturnValue`` is the access path to the return of the method, which means that it is the return value that should be considered a barrier. +- The eighth value ``path-injection`` is the kind of the barrier. The barrier kind is used to define the queries where the barrier is in scope. In this case - the path injection queries. +- The ninth value ``manual`` is the provenance of the barrier, which is used to identify the origin of the barrier. + +Example: Taint barrier guard in the ``java.net`` package +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +This example shows how the Java query pack models the ``isAbsolute`` method as a barrier guard for request forgery. +This is the ``isAbsolute`` method in the ``URI`` class, which is located in the ``java.net`` package. +A barrier guard model is used to stop the flow of taint when a conditional check is performed on data. +When the ``isAbsolute`` method returns ``false``, the URI is relative and therefore safe for request forgery because it cannot redirect to an external server controlled by an attacker. + +.. code-block:: java + + public static void barrierguard(URI uri) throws IOException { + if (!uri.isAbsolute()) { // The check guards the request, so the URI is safe. + URL url = uri.toURL(); + url.openConnection(); // This is not a request forgery vulnerability. + } + } + +We need to add a tuple to the ``barrierGuardModel(package, type, subtypes, name, signature, ext, input, acceptingValue, kind, provenance)`` extensible predicate by updating a data extension file. + +.. code-block:: yaml + + extensions: + - addsTo: + pack: codeql/java-all + extensible: barrierGuardModel + data: + - ["java.net", "URI", True, "isAbsolute", "()", "", "Argument[this]", "false", "request-forgery", "manual"] + +The first five values identify the callable (in this case a method) to be modeled as a barrier guard. + +- The first value ``java.net`` is the package name. +- The second value ``URI`` is the name of the class (type) that contains the method. +- The third value ``True`` is a flag that indicates whether or not the model guard also applies to all overrides of the method. +- The fourth value ``isAbsolute`` is the method name. +- The fifth value ``()`` is the method input type signature. + +The sixth value should be left empty and is out of scope for this documentation. +The remaining values are used to define the ``access-path``, the ``accepting-value``, the ``kind``, and the ``provenance`` (origin) of the barrier guard. + +- The seventh value ``Argument[this]`` is the access path to the input whose flow is blocked. In this case, the qualifier of the method call (``uri`` in the example). +- The eighth value ``false`` is the accepting value of the barrier guard. This is the value that the conditional check must return for the barrier to apply. In this case, when ``isAbsolute`` is ``false``, the URI is relative and considered safe. +- The ninth value ``request-forgery`` is the kind of the barrier guard. The barrier guard kind is used to define the queries where the barrier guard is in scope. In this case - the request forgery queries. +- The tenth value ``manual`` is the provenance of the barrier guard, which is used to identify the origin of the barrier guard. + Example: Add a ``neutral`` method ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This example shows how the Java query pack models the ``now`` method as being neutral with respect to flow. @@ -269,7 +345,7 @@ A neutral model is used to define that there is no flow through a method. ... } -We need to add a tuple to the ``neutralModel``\(package, type, name, signature, kind, provenance) extensible predicate by updating a data extension file. +We need to add a tuple to the ``neutralModel(package, type, name, signature, kind, provenance)`` extensible predicate by updating a data extension file. .. code-block:: yaml @@ -280,8 +356,6 @@ We need to add a tuple to the ``neutralModel``\(package, type, name, signature, data: - ["java.time", "Instant", "now", "()", "summary", "manual"] - -Since we are adding a neutral model, we need to add tuples to the ``neutralModel`` extensible predicate. The first four values identify the callable (in this case a method) to be modeled as a neutral, the fifth value is the kind, and the sixth value is the provenance (origin) of the neutral. - The first value ``java.time`` is the package name. diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-javascript.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-javascript.rst index b8f064c7574..a0702289cef 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-javascript.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-javascript.rst @@ -22,24 +22,27 @@ A data extension for JavaScript is a YAML file of the form: The CodeQL library for JavaScript exposes the following extensible predicates: -- **sourceModel**\(type, path, kind) -- **sinkModel**\(type, path, kind) -- **typeModel**\(type1, type2, path) -- **summaryModel**\(type, path, input, output, kind) +- ``sourceModel(type, path, kind)`` +- ``sinkModel(type, path, kind)`` +- ``typeModel(type1, type2, path)`` +- ``summaryModel(type, path, input, output, kind)`` +- ``barrierModel(type, path, kind)`` +- ``barrierGuardModel(type, path, acceptingValue, kind)`` We'll explain how to use these using a few examples, and provide some reference material at the end of this article. Example: Taint sink in the 'execa' package ------------------------------------------ -In this example, we'll show how to add the following argument, passed to **execa**, as a command-line injection sink: +In this example, we'll show how to add the following argument, passed to ``execa``, as a command-line injection sink: .. code-block:: js import { shell } from "execa"; shell(cmd); // <-- add 'cmd' as a taint sink -Note that this sink is already recognized by the CodeQL JS analysis, but for this example, you could use the following data extension: +Note that this sink is already recognized by the CodeQL JS analysis, but for this example, you could add a tuple to the +``sinkModel(type, path, kind)`` extensible predicate by updating a data extension file. .. code-block:: yaml @@ -50,21 +53,19 @@ Note that this sink is already recognized by the CodeQL JS analysis, but for thi data: - ["execa", "Member[shell].Argument[0]", "command-injection"] - -- Since we're adding a new sink, we add a tuple to the **sinkModel** extensible predicate. -- The first column, **"execa"**, identifies a set of values from which to begin the search for the sink. - The string **"execa"** means we start at the places where the codebase imports the NPM package **execa**. +- The first column, ``"execa"``, identifies a set of values from which to begin the search for the sink. + The string ``"execa"`` means we start at the places where the codebase imports the NPM package ``execa``. - The second column is an access path that is evaluated from left to right, starting at the values that were identified by the first column. - - **Member[shell]** selects accesses to the **shell** member of the **execa** package. - - **Argument[0]** selects the first argument to calls to that member. + - ``Member[shell]`` selects accesses to the ``shell`` member of the ``execa`` package. + - ``Argument[0]`` selects the first argument to calls to that member. -- **command-injection** indicates that this is considered a sink for the command injection query. +- ``command-injection`` indicates that this is considered a sink for the command injection query. Example: Taint sources from window 'message' events --------------------------------------------------- -In this example, we'll show how the **event.data** expression below could be marked as a remote flow source: +In this example, we'll show how the ``event.data`` expression below could be marked as a remote flow source: .. code-block:: js @@ -72,7 +73,8 @@ In this example, we'll show how the **event.data** expression below could be mar let data = event.data; // <-- add 'event.data' as a taint source }); -Note that this source is already known by the CodeQL JS analysis, but for this example, you could use the following data extension: +Note that this source is already recognized by the CodeQL JS analysis, but for this example, you could add a tuple to the +``sourceModel(type, path, kind)`` extensible predicate by updating a data extension file. .. code-block:: yaml @@ -87,21 +89,19 @@ Note that this source is already known by the CodeQL JS analysis, but for this e "remote", ] - -- Since we're adding a new taint source, we add a tuple to the **sourceModel** extensible predicate. -- The first column, **"global"**, begins the search at references to the global object (also known as **window** in browser contexts). This is a special JavaScript object that contains all global variables and methods. -- **Member[addEventListener]** selects accesses to the **addEventListener** member. -- **Argument[1]** selects the second argument of calls to that member (the argument containing the callback). -- **Parameter[0]** selects the first parameter of the callback (the parameter named **event**). -- **Member[data]** selects accesses to the **data** property of the event object. -- Finally, the kind **remote** indicates that this is considered a source of remote flow. +- The first column, ``"global"``, begins the search at references to the global object (also known as ``window`` in browser contexts). This is a special JavaScript object that contains all global variables and methods. +- ``Member[addEventListener]`` selects accesses to the ``addEventListener`` member. +- ``Argument[1]`` selects the second argument of calls to that member (the argument containing the callback). +- ``Parameter[0]`` selects the first parameter of the callback (the parameter named ``event``). +- ``Member[data]`` selects accesses to the ``data`` property of the event object. +- Finally, the kind ``remote`` indicates that this is considered a source of remote flow. In the next section, we'll show how to restrict the model to recognize events of a specific type. Continued example: Restricting the event type --------------------------------------------- -The model above treats all events as sources of remote flow, not just **message** events. +The model above treats all events as sources of remote flow, not just ``message`` events. For example, it would also pick up this irrelevant source: .. code-block:: js @@ -111,7 +111,7 @@ For example, it would also pick up this irrelevant source: }); -We can refine the model by adding the **WithStringArgument** component to restrict the set of calls being considered: +We can refine the model by adding the ``WithStringArgument`` component to restrict the set of calls being considered: .. code-block:: yaml @@ -126,7 +126,7 @@ We can refine the model by adding the **WithStringArgument** component to restri "remote", ] -The **WithStringArgument[0=message]** component here selects the subset of calls to **addEventListener** where the first argument is a string literal with the value **"message"**. +The ``WithStringArgument[0=message]`` component here selects the subset of calls to ``addEventListener`` where the first argument is a string literal with the value ``"message"``. Example: Using types to add MySQL injection sinks ------------------------------------------------- @@ -141,7 +141,7 @@ In this example, we'll show how to add the following SQL injection sink: connection.query(q); // <-- add 'q' as a SQL injection sink } -We can recognize this using the following extension: +We need to add a tuple to the ``sinkModel(type, path, kind)`` extensible predicate by updating a data extension file. .. code-block:: yaml @@ -152,14 +152,13 @@ We can recognize this using the following extension: data: - ["mysql.Connection", "Member[query].Argument[0]", "sql-injection"] +- The first column, ``"mysql.Connection"``, begins the search at any expression whose value is known to be an instance of + the ``Connection`` type from the ``mysql`` package. This will select the ``connection`` parameter above because of its type annotation. +- ``Member[query]`` selects the ``query`` member from the connection object. +- ``Argument[0]`` selects the first argument of a call to that member. +- ``sql-injection`` indicates that this is considered a sink for the SQL injection query. -- The first column, **"mysql.Connection"**, begins the search at any expression whose value is known to be an instance of - the **Connection** type from the **mysql** package. This will select the **connection** parameter above because of its type annotation. -- **Member[query]** selects the **query** member from the connection object. -- **Argument[0]** selects the first argument of a call to that member. -- **sql-injection** indicates that this is considered a sink for the SQL injection query. - -This works in this example because the **connection** parameter has a type annotation that matches what the model is looking for. +This works in this example because the ``connection`` parameter has a type annotation that matches what the model is looking for. Note that there is a significant difference between the following two rows: @@ -169,8 +168,8 @@ Note that there is a significant difference between the following two rows: - ["mysql.Connection", "", ...] - ["mysql", "Member[Connection]", ...] -The first row matches instances of **mysql.Connection**, which are objects that encapsulate a MySQL connection. -The second row would match something like **require('mysql').Connection**, which is not itself a connection object. +The first row matches instances of ``mysql.Connection``, which are objects that encapsulate a MySQL connection. +The second row would match something like ``require('mysql').Connection``, which is not itself a connection object. In the next section, we'll show how to generalize the model to handle the absence of type annotations. @@ -185,8 +184,9 @@ Suppose we want the model from above to detect the sink in this snippet: let connection = getConnection(); connection.query(q); // <-- add 'q' as a SQL injection sink -There is no type annotation on **connection**, and there is no indication of what **getConnection()** returns. -Using a **typeModel** tuple we can tell our model that this function returns an instance of **mysql.Connection**: +There is no type annotation on ``connection``, and there is no indication of what ``getConnection()`` returns. +By adding a tuple to the ``typeModel(type1, type2, path)`` extensible predicate we can tell our model that +this function returns an instance of ``mysql.Connection``: .. code-block:: yaml @@ -197,19 +197,17 @@ Using a **typeModel** tuple we can tell our model that this function returns an data: - ["mysql.Connection", "@example/db", "Member[getConnection].ReturnValue"] +- The first column, ``"mysql.Connection"``, names the type that we're adding a new definition for. +- The second column, ``"@example/db"``, begins the search at imports of the hypothetical NPM package ``@example/db``. +- ``Member[getConnection]`` selects references to the ``getConnection`` member from that package. +- ``ReturnValue`` selects the return value from a call to that member. -- Since we're providing type information, we add a tuple to the **typeModel** extensible predicate. -- The first column, **"mysql.Connection"**, names the type that we're adding a new definition for. -- The second column, **"@example/db"**, begins the search at imports of the hypothetical NPM package **@example/db**. -- **Member[getConnection]** selects references to the **getConnection** member from that package. -- **ReturnValue** selects the return value from a call to that member. - -The new model states that the return value of **getConnection()** has type **mysql.Connection**. +The new model states that the return value of ``getConnection()`` has type ``mysql.Connection``. Combining this with the sink model we added earlier, the sink in the example is detected by the model. The mechanism used here is how library models work for both TypeScript and plain JavaScript. -A good library model contains **typeModel** tuples to ensure it works even in codebases without type annotations. -For example, the **mysql** model that is included with the CodeQL JS analysis includes this type definition (among many others): +A good library model contains ``typeModel`` tuples to ensure it works even in codebases without type annotations. +For example, the ``mysql`` model that is included with the CodeQL JS analysis includes this type definition (among many others): .. code-block:: yaml @@ -228,7 +226,7 @@ In this example, we'll show how to add the following SQL injection sink using a conn.query(q, (err, rows) => {...}); // <-- add 'q' as a SQL injection sink }); -We can recognize this using a fuzzy model, as shown in the following extension: +We need to add a tuple for a fuzzy model to the ``sinkModel(type, path, kind)`` extensible predicate by updating a data extension file. .. code-block:: yaml @@ -239,13 +237,13 @@ We can recognize this using a fuzzy model, as shown in the following extension: data: - ["mysql", "Fuzzy.Member[query].Argument[0]", "sql-injection"] -- The first column, **"mysql"**, begins the search at places where the `mysql` package is imported. -- **Fuzzy** selects all objects that appear to originate from the `mysql` package, such as the `pool`, `conn`, `err`, and `rows` objects. -- **Member[query]** selects the **query** member from any of those objects. In this case, the only such member is `conn.query`. +- The first column, ``"mysql"``, begins the search at places where the `mysql` package is imported. +- ``Fuzzy`` selects all objects that appear to originate from the `mysql` package, such as the `pool`, `conn`, `err`, and `rows` objects. +- ``Member[query]`` selects the ``query`` member from any of those objects. In this case, the only such member is `conn.query`. In principle, this would also find expressions such as `pool.query` and `err.query`, but in practice such expressions are not likely to occur, because the `pool` and `err` objects do not have a member named `query`. -- **Argument[0]** selects the first argument of a call to the selected member, that is, the `q` argument to `conn.query`. -- **sql-injection** indicates that this is considered as a sink for the SQL injection query. +- ``Argument[0]`` selects the first argument of a call to the selected member, that is, the `q` argument to `conn.query`. +- ``sql-injection`` indicates that this is considered as a sink for the SQL injection query. For reference, a more detailed model might look like this, as described in the preceding examples: @@ -265,7 +263,7 @@ For reference, a more detailed model might look like this, as described in the p - ["mysql.Pool", "mysql", "Member[createPool].ReturnValue"] - ["mysql.Connection", "mysql.Pool", "Member[getConnection].Argument[0].Parameter[1]"] -The model using the **Fuzzy** component is simpler, at the cost of being approximate. +The model using the ``Fuzzy`` component is simpler, at the cost of being approximate. This technique is useful when modeling a large or complex library, where it is difficult to write a detailed model. Example: Adding flow through 'decodeURIComponent' @@ -277,7 +275,8 @@ In this example, we'll show how to add flow through calls to `decodeURIComponent let y = decodeURIComponent(x); // add taint flow from 'x' to 'y' -Note that this flow is already recognized by the CodeQL JS analysis, but for this example, you could use the following data extension: +Note that this flow is already recognized by the CodeQL JS analysis, but for this example, you could add a tuple to the +``summaryModel(type, path, input, output, kind)`` extensible predicate by updating a data extension file. .. code-block:: yaml @@ -294,28 +293,27 @@ Note that this flow is already recognized by the CodeQL JS analysis, but for thi "taint", ] - -- Since we're adding flow through a function call, we add a tuple to the **summaryModel** extensible predicate. -- The first column, **"global"**, begins the search for relevant calls at references to the global object. +- The first column, ``"global"``, begins the search for relevant calls at references to the global object. In JavaScript, global variables are properties of the global object, so this lets us access global variables or functions. -- The second column, **Member[decodeURIComponent]**, is a path leading to the function calls we wish to model. - In this case, we select references to the **decodeURIComponent** member from the global object, that is, - the global variable named **decodeURIComponent**. -- The third column, **Argument[0]**, indicates the input of the flow. In this case, the first argument to the function call. -- The fourth column, **ReturnValue**, indicates the output of the flow. In this case, the return value of the function call. -- The last column, **taint**, indicates the kind of flow to add. The value **taint** means the output is not necessarily equal +- The second column, ``Member[decodeURIComponent]``, is a path leading to the function calls we wish to model. + In this case, we select references to the ``decodeURIComponent`` member from the global object, that is, + the global variable named ``decodeURIComponent``. +- The third column, ``Argument[0]``, indicates the input of the flow. In this case, the first argument to the function call. +- The fourth column, ``ReturnValue``, indicates the output of the flow. In this case, the return value of the function call. +- The last column, ``taint``, indicates the kind of flow to add. The value ``taint`` means the output is not necessarily equal to the input, but was derived from the input in a taint-preserving way. Example: Adding flow through 'underscore.forEach' ------------------------------------------------- -In this example, we'll show how to add flow through calls to **forEach** from the **underscore** package: +In this example, we'll show how to add flow through calls to ``forEach`` from the ``underscore`` package: .. code-block:: js require('underscore').forEach([x, y], (v) => { ... }); // add value flow from 'x' and 'y' to 'v' -Note that this flow is already recognized by the CodeQL JS analysis, but for this example, you could use the following data extension: +Note that this flow is already recognized by the CodeQL JS analysis, but for this example, you could add a tuple to the +``summaryModel(type, path, input, output, kind)`` extensible predicate by updating a data extension file. .. code-block:: yaml @@ -332,21 +330,19 @@ Note that this flow is already recognized by the CodeQL JS analysis, but for thi "value", ] - -- Since we're adding flow through a function call, we add a tuple to the **summaryModel** extensible predicate. -- The first column, **"underscore"**, begins the search for relevant calls at places where the **underscore** package is imported. -- The second column, **Member[forEach]**, selects references to the **forEach** member from the **underscore** package. +- The first column, ``"underscore"``, begins the search for relevant calls at places where the ``underscore`` package is imported. +- The second column, ``Member[forEach]``, selects references to the ``forEach`` member from the ``underscore`` package. - The third column specifies the input of the flow: - - **Argument[0]** selects the first argument of **forEach**, which is the array being iterated over. - - **ArrayElement** selects the elements of that array (the expressions **x** and **y**). + - ``Argument[0]`` selects the first argument of ``forEach``, which is the array being iterated over. + - ``ArrayElement`` selects the elements of that array (the expressions ``x`` and ``y``). - The fourth column specifies the output of the flow: - - **Argument[1]** selects the second argument of **forEach** (the argument containing the callback function). - - **Parameter[0]** selects the first parameter of the callback function (the parameter named **v**). + - ``Argument[1]`` selects the second argument of ``forEach`` (the argument containing the callback function). + - ``Parameter[0]`` selects the first parameter of the callback function (the parameter named ``v``). -- The last column, **value**, indicates the kind of flow to add. The value **value** means the input value is unchanged as +- The last column, ``value``, indicates the kind of flow to add. The value ``value`` means the input value is unchanged as it flows to the output. @@ -367,7 +363,7 @@ on the incoming request objects: req.data; // <-- mark 'req.data' as a taint source }); -This can be achieved with the following data extension: +We need to add a tuple to the ``sourceModel(type, path, kind)`` extensible predicate by updating a data extension file. .. code-block:: yaml @@ -382,14 +378,66 @@ This can be achieved with the following data extension: "remote", ] -- Since we're adding a new taint source, we add a tuple to the **sourceModel** extensible predicate. -- The first column, **"@example/middleware"**, begins the search at imports of the hypothetical NPM package **@example/middleware**. -- **Member[injectData]** selects accesses to the **injectData** member. -- **ReturnValue** selects the return value of the call to **injectData**. -- **GuardedRouteHandler** interprets the current value as a middleware function and selects all route handlers guarded by that middleware. Since the current value is passd to **app.use()**, the callback subsequently passed to **app.get()** is seen as a guarded route handler. -- **Parameter[0]** selects the first parameter of the callback (the parameter named **req**). -- **Member[data]** selects accesses to the **data** property of the **req** object. -- Finally, the kind **remote** indicates that this is considered a source of remote flow. +- The first column, ``"@example/middleware"``, begins the search at imports of the hypothetical NPM package ``@example/middleware``. +- ``Member[injectData]`` selects accesses to the ``injectData`` member. +- ``ReturnValue`` selects the return value of the call to ``injectData``. +- ``GuardedRouteHandler`` interprets the current value as a middleware function and selects all route handlers guarded by that middleware. Since the current value is passd to ``app.use()``, the callback subsequently passed to ``app.get()`` is seen as a guarded route handler. +- ``Parameter[0]`` selects the first parameter of the callback (the parameter named ``req``). +- ``Member[data]`` selects accesses to the ``data`` property of the ``req`` object. +- Finally, the kind ``remote`` indicates that this is considered a source of remote flow. + +Example: Taint barrier using the 'encodeURIComponent' function +-------------------------------------------------------------- + +In this example, we'll show how to add the return value of ``encodeURIComponent`` as a barrier for XSS. + +.. code-block:: js + + let escaped = encodeURIComponent(input); // The return value of this method is safe for XSS. + document.body.innerHTML = escaped; + +We need to add a tuple to the ``barrierModel(type, path, kind)`` extensible predicate by updating a data extension file. + +.. code-block:: yaml + + extensions: + - addsTo: + pack: codeql/javascript-all + extensible: barrierModel + data: + - ["global", "Member[encodeURIComponent].ReturnValue", "html-injection"] + +- The first column, ``"global"``, begins the search for relevant calls at references to the global object. +- The second column, ``Member[encodeURIComponent].ReturnValue``, selects the return value of the ``encodeURIComponent`` function. +- The third column, ``"html-injection"``, is the kind of the barrier. + +Example: Add a barrier guard +---------------------------- + +This example shows how to model a barrier guard that stops the flow of taint when a conditional check is performed on data. +Consider a function called `isValid` which returns `true` when the data is considered safe. + +.. code-block:: js + + if (isValid(userInput)) { // The check guards the use, so the input is safe. + db.query(userInput); // This is safe. + } + +We need to add a tuple to the ``barrierGuardModel(type, path, acceptingValue, kind)`` extensible predicate by updating a data extension file. + +.. code-block:: yaml + + extensions: + - addsTo: + pack: codeql/javascript-all + extensible: barrierGuardModel + data: + - ["my-package", "Member[isValid].Argument[0]", "true", "sql-injection"] + +- The first column, ``"my-package"``, begins the search at imports of the hypothetical NPM package ``my-package``. +- The second column, ``Member[isValid].Argument[0]``, selects the first argument of the `isValid` function. This is the value being validated. +- The third column, ``"true"``, is the accepting value of the barrier guard. This is the value that the conditional check must return for the barrier to apply. +- The fourth column, ``"sql-injection"``, is the kind of the barrier guard. Reference material ------------------ @@ -404,9 +452,9 @@ sourceModel(type, path, kind) Adds a new taint source. Most taint-tracking queries will use the new source. -- **type**: Name of a type from which to evaluate **path**. -- **path**: Access path leading to the source. -- **kind**: Kind of source to add. See the section on source kinds for a list of supported kinds. +- ``type``: Name of a type from which to evaluate ``path``. +- ``path``: Access path leading to the source. +- ``kind``: Kind of source to add. See the section on source kinds for a list of supported kinds. Example: @@ -424,9 +472,9 @@ sinkModel(type, path, kind) Adds a new taint sink. Sinks are query-specific and will typically affect one or two queries. -- **type**: Name of a type from which to evaluate **path**. -- **path**: Access path leading to the sink. -- **kind**: Kind of sink to add. See the section on sink kinds for a list of supported kinds. +- ``type``: Name of a type from which to evaluate ``path``. +- ``path``: Access path leading to the sink. +- ``kind``: Kind of sink to add. See the section on sink kinds for a list of supported kinds. Example: @@ -444,11 +492,11 @@ summaryModel(type, path, input, output, kind) Adds flow through a function call. -- **type**: Name of a type from which to evaluate **path**. -- **path**: Access path leading to a function call. -- **input**: Path relative to the function call that leads to input of the flow. -- **output**: Path relative to the function call leading to the output of the flow. -- **kind**: Kind of summary to add. Can be **taint** for taint-propagating flow, or **value** for value-preserving flow. +- ``type``: Name of a type from which to evaluate ``path``. +- ``path``: Access path leading to a function call. +- ``input``: Path relative to the function call that leads to input of the flow. +- ``output``: Path relative to the function call leading to the output of the flow. +- ``kind``: Kind of summary to add. Can be ``taint`` for taint-propagating flow, or ``value`` for value-preserving flow. Example: @@ -472,9 +520,9 @@ typeModel(type1, type2, path) Adds a new definition of a type. -- **type1**: Name of the type to define. -- **type2**: Name of the type from which to evaluate **path**. -- **path**: Access path leading from **type2** to **type1**. +- ``type1``: Name of the type to define. +- ``type2``: Name of the type from which to evaluate ``path``. +- ``path``: Access path leading from ``type2`` to ``type1``. Example: @@ -496,56 +544,56 @@ Types A type is a string that identifies a set of values. In each of the extensible predicates mentioned in previous section, the first column is always the name of a type. -A type can be defined by adding **typeModel** tuples for that type. Additionally, the following built-in types are available: +A type can be defined by adding ``typeModel`` tuples for that type. Additionally, the following built-in types are available: -- The name of an NPM package matches imports of that package. For example, the type **express** matches the expression **require("express")**. If the package name includes dots, it must be surrounded by single quotes, such as in **'lodash.escape'**. -- The type **global** identifies the global object, also known as **window**. In JavaScript, global variables are properties of the global object, so global variables can be identified using this type. (This type also matches imports of the NPM package named **global**, which is a package that happens to export the global object.) -- A qualified type name of form **.** identifies expressions of type **** from ****. For example, **mysql.Connection** identifies expression of type **Connection** from the **mysql** package. Note that this only works if type annotations are present in the codebase, or if sufficient **typeModel** tuples have been provided for that type. +- The name of an NPM package matches imports of that package. For example, the type ``express`` matches the expression ``require("express")``. If the package name includes dots, it must be surrounded by single quotes, such as in ``'lodash.escape'``. +- The type ``global`` identifies the global object, also known as ``window``. In JavaScript, global variables are properties of the global object, so global variables can be identified using this type. (This type also matches imports of the NPM package named ``global``, which is a package that happens to export the global object.) +- A qualified type name of form ``.`` identifies expressions of type ```` from ````. For example, ``mysql.Connection`` identifies expression of type ``Connection`` from the ``mysql`` package. Note that this only works if type annotations are present in the codebase, or if sufficient ``typeModel`` tuples have been provided for that type. Access paths ------------ -The **path**, **input**, and **output** columns consist of a **.**-separated list of components, which is evaluated from left to right, with each step selecting a new set of values derived from the previous set of values. +The ``path``, ``input``, and ``output`` columns consist of a ``.``-separated list of components, which is evaluated from left to right, with each step selecting a new set of values derived from the previous set of values. The following components are supported: -- **Argument[**\ `number`\ **]** selects the argument at the given index. -- **Argument[this]** selects the receiver of a method call. -- **Parameter[**\ `number`\ **]** selects the parameter at the given index. -- **Parameter[this]** selects the **this** parameter of a function. -- **ReturnValue** selects the return value of a function or call. -- **Member[**\ `name`\ **]** selects the property with the given name. -- **AnyMember** selects any property regardless of name. -- **ArrayElement** selects an element of an array. -- **MapValue** selects a value of a map object. -- **Awaited** selects the value of a promise. -- **Instance** selects instances of a class, including instances of its subclasses. -- **Fuzzy** selects all values that are derived from the current value through a combination of the other operations described in this list. +- ``Argument[``\ `number`\ ``]`` selects the argument at the given index. +- ``Argument[this]`` selects the receiver of a method call. +- ``Parameter[``\ `number`\ ``]`` selects the parameter at the given index. +- ``Parameter[this]`` selects the ``this`` parameter of a function. +- ``ReturnValue`` selects the return value of a function or call. +- ``Member[``\ `name`\ ``]`` selects the property with the given name. +- ``AnyMember`` selects any property regardless of name. +- ``ArrayElement`` selects an element of an array. +- ``MapValue`` selects a value of a map object. +- ``Awaited`` selects the value of a promise. +- ``Instance`` selects instances of a class, including instances of its subclasses. +- ``Fuzzy`` selects all values that are derived from the current value through a combination of the other operations described in this list. For example, this can be used to find all values that appear to originate from a particular package. This can be useful for finding method calls from a known package, but where the receiver type is not known or is difficult to model. The following components are called "call site filters". They select a subset of the previously-selected calls, if the call fits certain criteria: -- **WithArity[**\ `number`\ **]** selects the subset of calls that have the given number of arguments. -- **WithStringArgument[**\ `number`\ **=**\ `value`\ **]** selects the subset of calls where the argument at the given index is a string literal with the given value. +- ``WithArity[``\ `number`\ ``]`` selects the subset of calls that have the given number of arguments. +- ``WithStringArgument[``\ `number`\ ``=``\ `value`\ ``]`` selects the subset of calls where the argument at the given index is a string literal with the given value. Components related to decorators: -- **DecoratedClass** selects a class that has the current value as a decorator. For example, **Member[Component].DecoratedClass** selects any class that is decorated with **@Component**. -- **DecoratedParameter** selects a parameter that is decorated by the current value. -- **DecoratedMember** selects a method, field, or accessor that is decorated by the current value. +- ``DecoratedClass`` selects a class that has the current value as a decorator. For example, ``Member[Component].DecoratedClass`` selects any class that is decorated with ``@Component``. +- ``DecoratedParameter`` selects a parameter that is decorated by the current value. +- ``DecoratedMember`` selects a method, field, or accessor that is decorated by the current value. Additionally there is a component related to middleware functions: -- **GuardedRouteHandler** interprets the current value as a middleware function, and selects any route handler function that comes after it in the routing hierarchy. - This can be used to model properties injected onto request and response objects, such as **req.db** after a middleware that injects a database connection. +- ``GuardedRouteHandler`` interprets the current value as a middleware function, and selects any route handler function that comes after it in the routing hierarchy. + This can be used to model properties injected onto request and response objects, such as ``req.db`` after a middleware that injects a database connection. Note that this currently over-approximates the set of route handlers but may be made more accurate in the future. Additional notes about the syntax of operands: -- Multiple operands may be given to a single component, as a shorthand for the union of the operands. For example, **Member[foo,bar]** matches the union of **Member[foo]** and **Member[bar]**. -- Numeric operands to **Argument**, **Parameter**, and **WithArity** may be given as an interval. For example, **Argument[0..2]** matches argument 0, 1, or 2. -- **Argument[N-1]** selects the last argument of a call, and **Parameter[N-1]** selects the last parameter of a function, with **N-2** being the second-to-last and so on. +- Multiple operands may be given to a single component, as a shorthand for the union of the operands. For example, ``Member[foo,bar]`` matches the union of ``Member[foo]`` and ``Member[bar]``. +- Numeric operands to ``Argument``, ``Parameter``, and ``WithArity`` may be given as an interval. For example, ``Argument[0..2]`` matches argument 0, 1, or 2. +- ``Argument[N-1]`` selects the last argument of a call, and ``Parameter[N-1]`` selects the last parameter of a function, with ``N-2`` being the second-to-last and so on. Kinds ----- @@ -553,14 +601,14 @@ Kinds Source kinds ~~~~~~~~~~~~ -- **remote**: A general source of remote flow. -- **browser**: A source in the browser environment that does not fit a more specific browser kind. -- **browser-url-query**: A source derived from the query parameters of the browser URL, such as ``location.search``. -- **browser-url-fragment**: A source derived from the fragment part of the browser URL, such as ``location.hash``. -- **browser-url-path**: A source derived from the pathname of the browser URL, such as ``location.pathname``. -- **browser-url**: A source derived from the browser URL, where the untrusted part is prefixed by trusted data such as the scheme and hostname. -- **browser-window-name**: A source derived from the window name, such as ``window.name``. -- **browser-message-event**: A source derived from cross-window message passing, such as ``event`` in ``window.onmessage = event => {...}``. +- ``remote``: A general source of remote flow. +- ``browser``: A source in the browser environment that does not fit a more specific browser kind. +- ``browser-url-query``: A source derived from the query parameters of the browser URL, such as ``location.search``. +- ``browser-url-fragment``: A source derived from the fragment part of the browser URL, such as ``location.hash``. +- ``browser-url-path``: A source derived from the pathname of the browser URL, such as ``location.pathname``. +- ``browser-url``: A source derived from the browser URL, where the untrusted part is prefixed by trusted data such as the scheme and hostname. +- ``browser-window-name``: A source derived from the window name, such as ``window.name``. +- ``browser-message-event``: A source derived from cross-window message passing, such as ``event`` in ``window.onmessage = event => {...}``. See also :ref:`Threat models `. @@ -569,22 +617,22 @@ Sink kinds Unlike sources, sinks tend to be highly query-specific, rarely affecting more than one or two queries. Not every query supports customizable sinks. If the following sinks are not suitable for your use case, you should add a new query. -- **code-injection**: A sink that can be used to inject code, such as in calls to **eval**. -- **command-injection**: A sink that can be used to inject shell commands, such as in calls to **child_process.spawn**. -- **path-injection**: A sink that can be used for path injection in a file system access, such as in calls to **fs.readFile**. -- **sql-injection**: A sink that can be used for SQL injection, such as in a MySQL **query** call. -- **nosql-injection**: A sink that can be used for NoSQL injection, such as in a MongoDB **findOne** call. -- **html-injection**: A sink that can be used for HTML injection, such as in a jQuery **$()** call. -- **request-forgery**: A sink that controls the URL of a request, such as in a **fetch** call. -- **url-redirection**: A sink that can be used to redirect the user to a malicious URL. -- **unsafe-deserialization**: A deserialization sink that can lead to code execution or other unsafe behaviour, such as an unsafe YAML parser. -- **log-injection**: A sink that can be used for log injection, such as in a **console.log** call. +- ``code-injection``: A sink that can be used to inject code, such as in calls to ``eval``. +- ``command-injection``: A sink that can be used to inject shell commands, such as in calls to ``child_process.spawn``. +- ``path-injection``: A sink that can be used for path injection in a file system access, such as in calls to ``fs.readFile``. +- ``sql-injection``: A sink that can be used for SQL injection, such as in a MySQL ``query`` call. +- ``nosql-injection``: A sink that can be used for NoSQL injection, such as in a MongoDB ``findOne`` call. +- ``html-injection``: A sink that can be used for HTML injection, such as in a jQuery ``$()`` call. +- ``request-forgery``: A sink that controls the URL of a request, such as in a ``fetch`` call. +- ``url-redirection``: A sink that can be used to redirect the user to a malicious URL. +- ``unsafe-deserialization``: A deserialization sink that can lead to code execution or other unsafe behaviour, such as an unsafe YAML parser. +- ``log-injection``: A sink that can be used for log injection, such as in a ``console.log`` call. Summary kinds ~~~~~~~~~~~~~ -- **taint**: A summary that propagates taint. This means the output is not necessarily equal to the input, but it was derived from the input in an unrestrictive way. An attacker who controls the input will have significant control over the output as well. -- **value**: A summary that preserves the value of the input or creates a copy of the input such that all of its object properties are preserved. +- ``taint``: A summary that propagates taint. This means the output is not necessarily equal to the input, but it was derived from the input in an unrestrictive way. An attacker who controls the input will have significant control over the output as well. +- ``value``: A summary that preserves the value of the input or creates a copy of the input such that all of its object properties are preserved. .. _threat-models-javascript: diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-python.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-python.rst index 30888f7b609..ee4565caff3 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-python.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-python.rst @@ -9,7 +9,7 @@ Python analysis can be customized by adding library models in data extension fil A data extension for Python is a YAML file of the form: -.. code-block:: yaml +.. code-block:: yaml extensions: - addsTo: @@ -22,24 +22,27 @@ A data extension for Python is a YAML file of the form: The CodeQL library for Python exposes the following extensible predicates: -- **sourceModel**\(type, path, kind) -- **sinkModel**\(type, path, kind) -- **typeModel**\(type1, type2, path) -- **summaryModel**\(type, path, input, output, kind) +- ``sourceModel(type, path, kind)`` +- ``sinkModel(type, path, kind)`` +- ``typeModel(type1, type2, path)`` +- ``summaryModel(type, path, input, output, kind)`` +- ``barrierModel(type, path, kind)`` +- ``barrierGuardModel(type, path, acceptingValue, kind)`` We'll explain how to use these using a few examples, and provide some reference material at the end of this article. Example: Taint sink in the 'fabric' package ------------------------------------------- -In this example, we'll show how to add the following argument, passed to **sudo** from the **fabric** package, as a command-line injection sink: +In this example, we'll show how to add the following argument, passed to ``sudo`` from the ``fabric`` package, as a command-line injection sink: .. code-block:: python from fabric.operations import sudo sudo(cmd) # <-- add 'cmd' as a taint sink -Note that this sink is already recognized by the CodeQL Python analysis, but for this example, you could use the following data extension: +Note that this sink is already recognized by the CodeQL Python analysis, but for this example, you could add a tuple to the +``sinkModel(type, path, kind)`` extensible predicate by updating a data extension file. .. code-block:: yaml @@ -50,22 +53,20 @@ Note that this sink is already recognized by the CodeQL Python analysis, but for data: - ["fabric", "Member[operations].Member[sudo].Argument[0]", "command-injection"] - -- Since we're adding a new sink, we add a tuple to the **sinkModel** extensible predicate. -- The first column, **"fabric"**, identifies a set of values from which to begin the search for the sink. - The string **"fabric"** means we start at the places where the codebase imports the package **fabric**. +- The first column, ``"fabric"``, identifies a set of values from which to begin the search for the sink. + The string ``"fabric"`` means we start at the places where the codebase imports the package ``fabric``. - The second column is an access path that is evaluated from left to right, starting at the values that were identified by the first column. - - **Member[operations]** selects accesses to the **operations** module. - - **Member[sudo]** selects accesses to the **sudo** function in the **operations** module. - - **Argument[0]** selects the first argument to calls to that function. + - ``Member[operations]`` selects accesses to the ``operations`` module. + - ``Member[sudo]`` selects accesses to the ``sudo`` function in the ``operations`` module. + - ``Argument[0]`` selects the first argument to calls to that function. -- **"command-injection"** indicates that this is considered a sink for the command injection query. +- ``"command-injection"`` indicates that this is considered a sink for the command injection query. Example: Taint sink in the 'invoke' package ------------------------------------------- -Often sinks are found as arguments to methods rather than functions. In this example, we'll show how to add the following argument, passed to **run** from the **invoke** package, as a command-line injection sink: +Often sinks are found as arguments to methods rather than functions. In this example, we'll show how to add the following argument, passed to ``run`` from the ``invoke`` package, as a command-line injection sink: .. code-block:: python @@ -73,7 +74,8 @@ Often sinks are found as arguments to methods rather than functions. In this exa c = invoke.Context() c.run(cmd) # <-- add 'cmd' as a taint sink -Note that this sink is already recognized by the CodeQL Python analysis, but for this example, you could use the following data extension: +Note that this sink is already recognized by the CodeQL Python analysis, but for this example, you could add a tuple to the +``sinkModel(type, path, kind)`` extensible predicate by updating a data extension file. .. code-block:: yaml @@ -84,17 +86,17 @@ Note that this sink is already recognized by the CodeQL Python analysis, but for data: - ["invoke", "Member[Context].Instance.Member[run].Argument[0]", "command-injection"] -- The first column, **"invoke"**, begins the search at places where the codebase imports the package **invoke**. +- The first column, ``"invoke"``, begins the search at places where the codebase imports the package ``invoke``. - The second column is an access path that is evaluated from left to right, starting at the values that were identified by the first column. - - **Member[Context]** selects accesses to the **Context** class. - - **Instance** selects instances of the **Context** class. - - **Member[run]** selects accesses to the **run** method in the **Context** class. - - **Argument[0]** selects the first argument to calls to that method. + - ``Member[Context]`` selects accesses to the ``Context`` class. + - ``Instance`` selects instances of the ``Context`` class. + - ``Member[run]`` selects accesses to the ``run`` method in the ``Context`` class. + - ``Argument[0]`` selects the first argument to calls to that method. -- **"command-injection"** indicates that this is considered a sink for the command injection query. +- ``"command-injection"`` indicates that this is considered a sink for the command injection query. -Note that the **Instance** component is used to select instances of a class, including instances of its subclasses. +Note that the ``Instance`` component is used to select instances of a class, including instances of its subclasses. Since methods on instances are common targets, we have a more compact syntax for selecting them. The first column, the type, is allowed to contain a dotted path ending in a class name. This will begin the search at instances of that class. Using this syntax, the previous example could be written as: @@ -110,7 +112,7 @@ This will begin the search at instances of that class. Using this syntax, the pr Continued example: Multiple ways to obtain a type ------------------------------------------------- -The invoke package provides multiple ways to obtain a **Context** instance. The following example shows how to add a new way to obtain a **Context** instance: +The invoke package provides multiple ways to obtain a ``Context`` instance. The following example shows how to add a new way to obtain a ``Context`` instance: .. code-block:: python @@ -118,8 +120,9 @@ The invoke package provides multiple ways to obtain a **Context** instance. The c = context.Context() c.run(cmd) # <-- add 'cmd' as a taint sink -Comparing to the previous Python snippet, the **Context** class is now found as **invoke.context.Context** instead of **invoke.Context**. -We could add a data extension similar to the previous one, but with the type **invoke.context.Context**. However, we can also use the **typeModel** extensible predicate to describe how to reach **invoke.Context** from **invoke.context.Context**: +Comparing to the previous Python snippet, the ``Context`` class is now found as ``invoke.context.Context`` instead of ``invoke.Context``. +We could add a data extension similar to the previous one, but with the type ``invoke.context.Context``. +However, we can also use the ``typeModel(type1, type2, path)`` extensible predicate to describe how to reach ``invoke.Context`` from ``invoke.context.Context``: .. code-block:: yaml @@ -130,9 +133,9 @@ We could add a data extension similar to the previous one, but with the type **i data: - ["invoke.Context", "invoke.context.Context", ""] -- The first column, **"invoke.Context"**, is the name of the type to reach. -- The second column, **"invoke.context.Context"**, is the name of the type from which to evaluate the path. -- The third column is just an empty string, indicating that any instance of **invoke.context.Context** is also an instance of **invoke.Context**. +- The first column, ``"invoke.Context"``, is the name of the type to reach. +- The second column, ``"invoke.context.Context"``, is the name of the type from which to evaluate the path. +- The third column is just an empty string, indicating that any instance of ``invoke.context.Context`` is also an instance of ``invoke.Context``. Combining this with the sink model we added earlier, the sink in the example is detected by the model. @@ -141,7 +144,7 @@ Example: Taint sources from Django 'upload_to' argument This example is a bit more advanced, involving both a callback function and a class constructor. The Django web framework allows you to specify a function that determines the path where uploaded files are stored (see the `Django documentation `_). -This function is passed as an argument to the **FileField** constructor. +This function is passed as an argument to the ``FileField`` constructor. The function is called with two arguments: the instance of the model and the filename of the uploaded file. This filename is what we want to mark as a taint source. An example use looks as follows: @@ -156,7 +159,8 @@ This filename is what we want to mark as a taint source. An example use looks as class MyModel(models.Model): upload = models.FileField(upload_to=user_directory_path) # <-- the 'upload_to' parameter defines our custom function -Note that this source is already known by the CodeQL Python analysis, but for this example, you could use the following data extension: +Note that this source is already recognized by the CodeQL Python analysis, but for this example, you could add a tuple to the +``sourceModel(type, path, kind)`` extensible predicate by updating a data extension file. .. code-block:: yaml @@ -171,18 +175,16 @@ Note that this source is already known by the CodeQL Python analysis, but for th "remote", ] - -- Since we're adding a new taint source, we add a tuple to the **sourceModel** extensible predicate. -- The first column, **"django.db.models.FileField!"**, is a dotted path to the **FileField** class from the **django.db.models** package. - The **!** at the end of the type name indicates that we are looking for the class itself rather than instances of this class. +- The first column, ``"django.db.models.FileField!"``, is a dotted path to the ``FileField`` class from the ``django.db.models`` package. + The ``!`` at the end of the type name indicates that we are looking for the class itself rather than instances of this class. - The second column is an access path that is evaluated from left to right, starting at the values that were identified by the first column. - - - **Call** selects calls to the class. That is, constructor calls. - - **Argument[0,upload_to:]** selects the first positional argument, or the named argument named **upload_to**. Note that the colon at the end of the argument name indicates that we are looking for a named argument. - - **Parameter[1]** selects the second parameter of the callback function, which is the parameter receiving the filename. -- Finally, the kind **"remote"** indicates that this is considered a source of remote flow. + - ``Call`` selects calls to the class. That is, constructor calls. + - ``Argument[0,upload_to:]`` selects the first positional argument, or the named argument named ``upload_to``. Note that the colon at the end of the argument name indicates that we are looking for a named argument. + - ``Parameter[1]`` selects the second parameter of the callback function, which is the parameter receiving the filename. + +- Finally, the kind ``"remote"`` indicates that this is considered a source of remote flow. Example: Adding flow through 're.compile' ---------------------------------------------- @@ -196,7 +198,8 @@ In this example, we'll show how to add flow through calls to ``re.compile``. let y = re.compile(pattern = x); // add value flow from 'x' to 'y.pattern' -Note that this flow is already recognized by the CodeQL Python analysis, but for this example, you could use the following data extension: +Note that this flow is already recognized by the CodeQL Python analysis, but for this example, you could add a tuple to the +``summaryModel(type, path, input, output, kind)`` extensible predicate by updating a data extension file. .. code-block:: yaml @@ -213,26 +216,25 @@ Note that this flow is already recognized by the CodeQL Python analysis, but for "value", ] - -- Since we're adding flow through a function call, we add a tuple to the **summaryModel** extensible predicate. -- The first column, **"re"**, begins the search for relevant calls at places where the **re** package is imported. -- The second column, **"Member[compile]"**, is a path leading to the function calls we wish to model. - In this case, we select references to the **compile** function from the ``re`` package. -- The third column, **"Argument[0,pattern:]"**, indicates the input of the flow. In this case, either the first argument to the function call or the argument named **pattern**. -- The fourth column, **"ReturnValue.Attribute[pattern]"**, indicates the output of the flow. In this case, the ``pattern`` attribute of the return value of the function call. -- The last column, **"value"**, indicates the kind of flow to add. The value **value** means the input value is unchanged as +- The first column, ``"re"``, begins the search for relevant calls at places where the ``re`` package is imported. +- The second column, ``"Member[compile]"``, is a path leading to the function calls we wish to model. + In this case, we select references to the ``compile`` function from the ``re`` package. +- The third column, ``"Argument[0,pattern:]"``, indicates the input of the flow. In this case, either the first argument to the function call or the argument named ``pattern``. +- The fourth column, ``"ReturnValue.Attribute[pattern]"``, indicates the output of the flow. In this case, the ``pattern`` attribute of the return value of the function call. +- The last column, ``"value"``, indicates the kind of flow to add. The value ``value`` means the input value is unchanged as it flows to the output. Example: Adding flow through 'sorted' ------------------------------------------------- -In this example, we'll show how to add flow through calls to the built-in function **sorted**: +In this example, we'll show how to add flow through calls to the built-in function ``sorted``: .. code-block:: python y = sorted(x) # add taint flow from 'x' to 'y' -Note that this flow is already recognized by the CodeQL Python analysis, but for this example, you could use the following data extension: +Note that this flow is already recognized by the CodeQL Python analysis, but for this example, you could add a tuple to the +``summaryModel(type, path, input, output, kind)`` extensible predicate by updating a data extension file. .. code-block:: yaml @@ -249,14 +251,12 @@ Note that this flow is already recognized by the CodeQL Python analysis, but for "taint", ] - -- Since we're adding flow through a function call, we add a tuple to the **summaryModel** extensible predicate. -- The first column, **"builtins"**, begins the search for relevant calls among references to the built-in names. - In Python, many built-in functions are available. Technically, most of these are part of the **builtins** package, but they can be accessed without an explicit import. When we write **builtins** in the first column, we will find both the implicit and explicit references to the built-in functions. -- The second column, **"Member[sorted]"**, selects references to the **sorted** function from the **builtins** package; that is, the built-in function **sorted**. -- The third column, **"Argument[0]"**, indicates the input of the flow. In this case, the first argument to the function call. -- The fourth column, **"ReturnValue"**, indicates the output of the flow. In this case, the return value of the function call. -- The last column, **"taint"**, indicates the kind of flow to add. The value **taint** means the output is not necessarily equal +- The first column, ``"builtins"``, begins the search for relevant calls among references to the built-in names. + In Python, many built-in functions are available. Technically, most of these are part of the ``builtins`` package, but they can be accessed without an explicit import. When we write ``builtins`` in the first column, we will find both the implicit and explicit references to the built-in functions. +- The second column, ``"Member[sorted]"``, selects references to the ``sorted`` function from the ``builtins`` package; that is, the built-in function ``sorted``. +- The third column, ``"Argument[0]"``, indicates the input of the flow. In this case, the first argument to the function call. +- The fourth column, ``"ReturnValue"``, indicates the output of the flow. In this case, the return value of the function call. +- The last column, ``"taint"``, indicates the kind of flow to add. The value ``taint`` means the output is not necessarily equal to the input, but was derived from the input in a taint-preserving way. We might also provide a summary stating that the elements of the input list are preserved in the output list: @@ -279,6 +279,64 @@ We might also provide a summary stating that the elements of the input list are The tracking of list elements is imprecise in that the analysis does not know where in the list the tracked value is found. So this summary simply states that if the value is found somewhere in the input list, it will also be found somewhere in the output list, unchanged. +Example: Taint barrier using the 'escape' function +-------------------------------------------------- + +In this example, we'll show how to add the return value of ``html.escape`` as a barrier for XSS. + +.. code-block:: python + + import html + escaped = html.escape(unknown) # The return value of this function is safe for XSS. + +We need to add a tuple to the ``barrierModel(type, path, kind)`` extensible predicate by updating a data extension file. + +.. code-block:: yaml + + extensions: + - addsTo: + pack: codeql/python-all + extensible: barrierModel + data: + - ["html", "Member[escape].ReturnValue", "html-injection"] + +- The first column, ``"html"``, begins the search at places where the ``html`` module is imported. +- The second column, ``Member[escape].ReturnValue``, selects the return value of the ``escape`` function from the ``html`` module. +- The third column, ``"html-injection"``, is the kind of the barrier. + +Example: Add a barrier guard +---------------------------- + +This example shows how to model a barrier guard that stops the flow of taint when a conditional check is performed on data. +A barrier guard model is used when a function returns a boolean that indicates whether the data is safe to use. +Consider the function ``url_has_allowed_host_and_scheme`` from the ``django.utils.http`` package which returns ``true`` when the URL is in a safe domain. + +.. code-block:: python + + if url_has_allowed_host_and_scheme(url, allowed_hosts=...): # The check guards the use of 'url', so it is safe. + redirect(url) # This is safe. + +We need to add a tuple to the ``barrierGuardModel(type, path, acceptingValue, kind)`` extensible predicate by updating a data extension file. + +.. code-block:: yaml + + extensions: + - addsTo: + pack: codeql/python-all + extensible: barrierGuardModel + data: + - [ + "django", + "Member[utils].Member[http].Member[url_has_allowed_host_and_scheme].Argument[0,url:]", + "true", + "url-redirection", + ] + +- The first column, ``"django"``, begins the search at places where the ``django`` package is imported. +- The second column, ``Member[utils].Member[http].Member[url_has_allowed_host_and_scheme].Argument[0,url:]``, selects the first argument (or the keyword argument ``url``) of the ``url_has_allowed_host_and_scheme`` function in the ``django.utils.http`` module. This is the value being validated. +- The third column, ``"true"``, is the accepting value of the barrier guard. This is the value that the conditional check must return for the barrier to apply. +- The fourth column, ``"url-redirection"``, is the kind of the barrier guard. The barrier guard kind is used to define the queries where the barrier guard is in scope. + Reference material ------------------ @@ -292,9 +350,9 @@ sourceModel(type, path, kind) Adds a new taint source. Most taint-tracking queries will use the new source. -- **type**: Name of a type from which to evaluate **path**. -- **path**: Access path leading to the source. -- **kind**: Kind of source to add. Currently only **remote** is used. +- ``type``: Name of a type from which to evaluate ``path``. +- ``path``: Access path leading to the source. +- ``kind``: Kind of source to add. Currently only ``remote`` is used. Example: @@ -312,9 +370,9 @@ sinkModel(type, path, kind) Adds a new taint sink. Sinks are query-specific and will typically affect one or two queries. -- **type**: Name of a type from which to evaluate **path**. -- **path**: Access path leading to the sink. -- **kind**: Kind of sink to add. See the section on sink kinds for a list of supported kinds. +- ``type``: Name of a type from which to evaluate ``path``. +- ``path``: Access path leading to the sink. +- ``kind``: Kind of sink to add. See the section on sink kinds for a list of supported kinds. Example: @@ -332,11 +390,11 @@ summaryModel(type, path, input, output, kind) Adds flow through a function call. -- **type**: Name of a type from which to evaluate **path**. -- **path**: Access path leading to a function call. -- **input**: Path relative to the function call that leads to input of the flow. -- **output**: Path relative to the function call leading to the output of the flow. -- **kind**: Kind of summary to add. Can be **taint** for taint-propagating flow, or **value** for value-preserving flow. +- ``type``: Name of a type from which to evaluate ``path``. +- ``path``: Access path leading to a function call. +- ``input``: Path relative to the function call that leads to input of the flow. +- ``output``: Path relative to the function call leading to the output of the flow. +- ``kind``: Kind of summary to add. Can be ``taint`` for taint-propagating flow, or ``value`` for value-preserving flow. Example: @@ -358,13 +416,13 @@ Example: typeModel(type1, type2, path) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -A description of how to reach **type1** from **type2**. -If this is the only way to reach **type1**, for instance if **type1** is a name we made up to represent the inner workings of a library, we think of this as a definition of **type1**. -In the context of instances, this describes how to obtain an instance of **type1** from an instance of **type2**. +A description of how to reach ``type1`` from ``type2``. +If this is the only way to reach ``type1``, for instance if ``type1`` is a name we made up to represent the inner workings of a library, we think of this as a definition of ``type1``. +In the context of instances, this describes how to obtain an instance of ``type1`` from an instance of ``type2``. -- **type1**: Name of the type to reach. -- **type2**: Name of the type from which to evaluate **path**. -- **path**: Access path leading from **type2** to **type1**. +- ``type1``: Name of the type to reach. +- ``type2``: Name of the type from which to evaluate ``path``. +- ``path``: Access path leading from ``type2`` to ``type1``. Example: @@ -386,40 +444,40 @@ Types A type is a string that identifies a set of values. In each of the extensible predicates mentioned in previous section, the first column is always the name of a type. -A type can be defined by adding **typeModel** tuples for that type. Additionally, the following built-in types are available: +A type can be defined by adding ``typeModel`` tuples for that type. Additionally, the following built-in types are available: -- The name of a package matches imports of that package. For example, the type **django** matches the expression **import django**. -- The type **builtins** identifies the builtins package. In Python, all built-in values are found in this package, so they can be identified using this type. -- A dotted path ending in a class name identifies instances of that class. If the suffix **!** is added, the type refers to the class itself. +- The name of a package matches imports of that package. For example, the type ``django`` matches the expression ``import django``. +- The type ``builtins`` identifies the builtins package. In Python, all built-in values are found in this package, so they can be identified using this type. +- A dotted path ending in a class name identifies instances of that class. If the suffix ``!`` is added, the type refers to the class itself. Access paths ------------ -The **path**, **input**, and **output** columns consist of a **.**-separated list of components, which is evaluated from left to right, with each step selecting a new set of values derived from the previous set of values. +The ``path``, ``input``, and ``output`` columns consist of a ``.``-separated list of components, which is evaluated from left to right, with each step selecting a new set of values derived from the previous set of values. The following components are supported: -- **Argument[**\ ``number``\ **]** selects the argument at the given index. -- **Argument[**\ ``name``:\ **]** selects the argument with the given name. -- **Argument[this]** selects the receiver of a method call. -- **Parameter[**\ ``number``\ **]** selects the parameter at the given index. -- **Parameter[**\ ``name``:\ **]** selects the named parameter with the given name. -- **Parameter[this]** selects the **this** parameter of a function. -- **ReturnValue** selects the return value of a function or call. -- **Member[**\ ``name``\ **]** selects the function/method/class/value with the given name. -- **Instance** selects instances of a class, including instances of its subclasses. -- **Attribute[**\ ``name``\ **]** selects the attribute with the given name. -- **ListElement** selects an element of a list. -- **SetElement** selects an element of a set. -- **TupleElement[**\ ``number``\ **]** selects the subscript at the given index. -- **DictionaryElement[**\ ``name``\ **]** selects the subscript at the given name. +- ``Argument[``\ ``number``\ ``]`` selects the argument at the given index. +- ``Argument[``\ ``name``:\ ``]`` selects the argument with the given name. +- ``Argument[this]`` selects the receiver of a method call. +- ``Parameter[``\ ``number``\ ``]`` selects the parameter at the given index. +- ``Parameter[``\ ``name``:\ ``]`` selects the named parameter with the given name. +- ``Parameter[this]`` selects the ``this`` parameter of a function. +- ``ReturnValue`` selects the return value of a function or call. +- ``Member[``\ ``name``\ ``]`` selects the function/method/class/value with the given name. +- ``Instance`` selects instances of a class, including instances of its subclasses. +- ``Attribute[``\ ``name``\ ``]`` selects the attribute with the given name. +- ``ListElement`` selects an element of a list. +- ``SetElement`` selects an element of a set. +- ``TupleElement[``\ ``number``\ ``]`` selects the subscript at the given index. +- ``DictionaryElement[``\ ``name``\ ``]`` selects the subscript at the given name. Additional notes about the syntax of operands: -- Multiple operands may be given to a single component, as a shorthand for the union of the operands. For example, **Member[foo,bar]** matches the union of **Member[foo]** and **Member[bar]**. -- Numeric operands to **Argument**, **Parameter**, and **WithArity** may be given as an interval. For example, **Argument[0..2]** matches argument 0, 1, or 2. -- **Argument[N-1]** selects the last argument of a call, and **Parameter[N-1]** selects the last parameter of a function, with **N-2** being the second-to-last and so on. +- Multiple operands may be given to a single component, as a shorthand for the union of the operands. For example, ``Member[foo,bar]`` matches the union of ``Member[foo]`` and ``Member[bar]``. +- Numeric operands to ``Argument``, ``Parameter``, and ``WithArity`` may be given as an interval. For example, ``Argument[0..2]`` matches argument 0, 1, or 2. +- ``Argument[N-1]`` selects the last argument of a call, and ``Parameter[N-1]`` selects the last parameter of a function, with ``N-2`` being the second-to-last and so on. Kinds ----- @@ -434,21 +492,21 @@ Sink kinds Unlike sources, sinks tend to be highly query-specific, rarely affecting more than one or two queries. Not every query supports customizable sinks. If the following sinks are not suitable for your use case, you should add a new query. -- **code-injection**: A sink that can be used to inject code, such as in calls to **exec**. -- **command-injection**: A sink that can be used to inject shell commands, such as in calls to **os.system**. -- **path-injection**: A sink that can be used for path injection in a file system access, such as in calls to **flask.send_from_directory**. -- **sql-injection**: A sink that can be used for SQL injection, such as in a MySQL **query** call. -- **html-injection**: A sink that can be used for HTML injection, such as a server response body. -- **js-injection**: A sink that can be used for JS injection, such as a server response body. -- **url-redirection**: A sink that can be used to redirect the user to a malicious URL. -- **unsafe-deserialization**: A deserialization sink that can lead to code execution or other unsafe behavior, such as an unsafe YAML parser. -- **log-injection**: A sink that can be used for log injection, such as in a **logging.info** call. +- ``code-injection``: A sink that can be used to inject code, such as in calls to ``exec``. +- ``command-injection``: A sink that can be used to inject shell commands, such as in calls to ``os.system``. +- ``path-injection``: A sink that can be used for path injection in a file system access, such as in calls to ``flask.send_from_directory``. +- ``sql-injection``: A sink that can be used for SQL injection, such as in a MySQL ``query`` call. +- ``html-injection``: A sink that can be used for HTML injection, such as a server response body. +- ``js-injection``: A sink that can be used for JS injection, such as a server response body. +- ``url-redirection``: A sink that can be used to redirect the user to a malicious URL. +- ``unsafe-deserialization``: A deserialization sink that can lead to code execution or other unsafe behavior, such as an unsafe YAML parser. +- ``log-injection``: A sink that can be used for log injection, such as in a ``logging.info`` call. Summary kinds ~~~~~~~~~~~~~ -- **taint**: A summary that propagates taint. This means the output is not necessarily equal to the input, but it was derived from the input in an unrestrictive way. An attacker who controls the input will have significant control over the output as well. -- **value**: A summary that preserves the value of the input or creates a copy of the input such that all of its object properties are preserved. +- ``taint``: A summary that propagates taint. This means the output is not necessarily equal to the input, but it was derived from the input in an unrestrictive way. An attacker who controls the input will have significant control over the output as well. +- ``value``: A summary that preserves the value of the input or creates a copy of the input such that all of its object properties are preserved. .. _threat-models-python: diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-ruby.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-ruby.rst index 23a6bd419f5..db041a52151 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-ruby.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-ruby.rst @@ -23,24 +23,27 @@ A data extension for Ruby is a YAML file of the form: The CodeQL library for Ruby exposes the following extensible predicates: -- **sourceModel**\(type, path, kind) -- **sinkModel**\(type, path, kind) -- **typeModel**\(type1, type2, path) -- **summaryModel**\(type, path, input, output, kind) +- ``sourceModel(type, path, kind)`` +- ``sinkModel(type, path, kind)`` +- ``typeModel(type1, type2, path)`` +- ``summaryModel(type, path, input, output, kind)`` +- ``barrierModel(type, path, kind)`` +- ``barrierGuardModel(type, path, acceptingValue, kind)`` We'll explain how to use these using a few examples, and provide some reference material at the end of this article. Example: Taint sink in the 'tty-command' gem -------------------------------------------- -In this example, we'll show how to add the following argument, passed to **tty-command**, as a command-line injection sink: +In this example, we'll show how to add the following argument, passed to ``tty-command``, as a command-line injection sink: .. code-block:: ruby tty = TTY::Command.new tty.run(cmd) # <-- add 'cmd' as a taint sink -For this example, you can use the following data extension: + +We need to add a tuple to the ``sinkModel(type, path, kind)`` extensible predicate by updating a data extension file. .. code-block:: yaml @@ -52,15 +55,14 @@ For this example, you can use the following data extension: - ["TTY::Command", "Method[run].Argument[0]", "command-injection"] -- Since we're adding a new sink, we add a tuple to the **sinkModel** extensible predicate. -- The first column, **"TTY::Command"**, identifies a set of values from which to begin the search for the sink. - The string **"TTY::Command""** means we start at the places where the codebase constructs instances of the class **TTY::Command**. +- The first column, ``"TTY::Command"``, identifies a set of values from which to begin the search for the sink. + The string ``"TTY::Command""`` means we start at the places where the codebase constructs instances of the class ``TTY::Command``. - The second column is an access path that is evaluated from left to right, starting at the values that were identified by the first column. - - **Method[run]** selects calls to the **run** method of the **TTY::Command** class. - - **Argument[0]** selects the first argument to calls to that member. + - ``Method[run]`` selects calls to the ``run`` method of the ``TTY::Command`` class. + - ``Argument[0]`` selects the first argument to calls to that member. -- **command-injection** indicates that this is considered a sink for the command injection query. +- ``command-injection`` indicates that this is considered a sink for the command injection query. Example: Taint sources from 'sinatra' block parameters ------------------------------------------------------ @@ -75,7 +77,7 @@ In this example, we'll show how the 'x' parameter below could be marked as a rem end end -For this example you could use the following data extension: +We need to add a tuple to the ``sourceModel(type, path, kind)`` extensible predicate by updating a data extension file. .. code-block:: yaml @@ -90,13 +92,12 @@ For this example you could use the following data extension: "remote", ] -- Since we're adding a new taint source, we add a tuple to the **sourceModel** extensible predicate. -- The first column, **"Sinatra::Base!"**, begins the search at references to the **Sinatra::Base** class. - The **!** suffix indicates that we want to search for references to the class itself, rather than instances of the class. -- **Method[get]** selects calls to the **get** method of the **Sinatra::Base** class. -- **Argument[block]** selects the block argument to the **get** method call. -- **Parameter[0]** selects the first parameter of the block argument (the parameter named **x**). -- Finally, the kind **remote** indicates that this is considered a source of remote flow. +- The first column, ``"Sinatra::Base!"``, begins the search at references to the ``Sinatra::Base`` class. + The ``!`` suffix indicates that we want to search for references to the class itself, rather than instances of the class. +- ``Method[get]`` selects calls to the ``get`` method of the ``Sinatra::Base`` class. +- ``Argument[block]`` selects the block argument to the ``get`` method call. +- ``Parameter[0]`` selects the first parameter of the block argument (the parameter named ``x``). +- Finally, the kind ``remote`` indicates that this is considered a source of remote flow. Example: Using types to add MySQL injection sinks ------------------------------------------------- @@ -110,7 +111,7 @@ In this example, we'll show how to add the following SQL injection sink: client.query(q) # <-- add 'q' as a SQL injection sink end -We can recognize this using the following extension: +We need to add a tuple to the ``sinkModel(type, path, kind)`` extensible predicate by updating a data extension file. .. code-block:: yaml @@ -121,16 +122,16 @@ We can recognize this using the following extension: data: - ["Mysql2::Client", "Method[query].Argument[0]", "sql-injection"] -- The first column, **"Mysql2::Client"**, begins the search at any instance of the **Mysql2::Client** class. -- **Method[query]** selects any call to the **query** method on that instance. -- **Argument[0]** selects the first argument to the method call. -- **sql-injection** indicates that this is considered a sink for the SQL injection query. +- The first column, ``"Mysql2::Client"``, begins the search at any instance of the ``Mysql2::Client`` class. +- ``Method[query]`` selects any call to the ``query`` method on that instance. +- ``Argument[0]`` selects the first argument to the method call. +- ``sql-injection`` indicates that this is considered a sink for the SQL injection query. Continued example: Using type models ------------------------------------ Consider this variation on the previous example, the mysql2 EventMachine API is used. -The client is obtained via a call to **Mysql2::EM::Client.new**. +The client is obtained via a call to ``Mysql2::EM::Client.new``. .. code-block:: ruby @@ -139,10 +140,10 @@ The client is obtained via a call to **Mysql2::EM::Client.new**. client.query(q) end -So far we have only one model for **Mysql2::Client**, but in the real world we -may have many models for the various methods available. Because **Mysql2::EM::Client** is a subclass of **Mysql2::Client**, it inherits all of the same methods. -Instead of updating all our models to include both classes, we can add a type -model to indicate that **Mysql2::EM::Client** is a subclass of **Mysql2::Client**: +So far we have only one model for ``Mysql2::Client``, but in the real world we +may have many models for the various methods available. Because ``Mysql2::EM::Client`` is a subclass of ``Mysql2::Client``, it inherits all of the same methods. +Instead of updating all our models to include both classes, we can add a tuple to the ``typeModel(type, subtype, ext)`` extensible predicate to indicate that +``Mysql2::EM::Client`` is a subclass of ``Mysql2::Client``: .. code-block:: yaml @@ -162,7 +163,7 @@ In this example, we'll show how to add flow through calls to 'URI.decode_uri_com y = URI.decode_uri_component(x); # add taint flow from 'x' to 'y' -We can model this using the following data extension: +We need to add a tuple to the ``summaryModel(type, path, input, output, kind)`` extensible predicate by updating a data extension file. .. code-block:: yaml @@ -179,28 +180,26 @@ We can model this using the following data extension: "taint", ] - -- Since we're adding flow through a method call, we add a tuple to the **summaryModel** extensible predicate. -- The first column, **"URI!"**, begins the search for relevant calls at references to the **URI** class. -- The **!** suffix indicates that we are looking for the class itself, rather than instances of the class. -- The second column, **Method[decode_uri_component]**, is a path leading to the method calls we wish to model. - In this case, we select references to the **decode_uri_component** method from the **URI** class. -- The third column, **Argument[0]**, indicates the input of the flow. In this case, the first argument to the method call. -- The fourth column, **ReturnValue**, indicates the output of the flow. In this case, the return value of the method call. -- The last column, **taint**, indicates the kind of flow to add. The value **taint** means the output is not necessarily equal +- The first column, ``"URI!"``, begins the search for relevant calls at references to the ``URI`` class. + The ``!`` suffix indicates that we are looking for the class itself, rather than instances of the class. +- The second column, ``Method[decode_uri_component]``, is a path leading to the method calls we wish to model. + In this case, we select references to the ``decode_uri_component`` method from the ``URI`` class. +- The third column, ``Argument[0]``, indicates the input of the flow. In this case, the first argument to the method call. +- The fourth column, ``ReturnValue``, indicates the output of the flow. In this case, the return value of the method call. +- The last column, ``taint``, indicates the kind of flow to add. The value ``taint`` means the output is not necessarily equal to the input, but was derived from the input in a taint-preserving way. Example: Adding flow through 'File#each' ---------------------------------------- -In this example, we'll show how to add flow through calls to **File#each** from the standard library, which iterates over the lines of a file: +In this example, we'll show how to add flow through calls to ``File#each`` from the standard library, which iterates over the lines of a file: .. code-block:: ruby f = File.new("example.txt") f.each { |line| ... } # add taint flow from `f` to `line` -We can model this using the following data extension: +We need to add a tuple to the ``summaryModel(type, path, input, output, kind)`` extensible predicate by updating a data extension file. .. code-block:: yaml @@ -217,18 +216,73 @@ We can model this using the following data extension: "taint", ] - -- Since we're adding flow through a method call, we add a tuple to the **summaryModel** extensible predicate. -- The first column, **"File"**, begins the search for relevant calls at places where the **File** class is used. -- The second column, **Method[each]**, selects references to the **each** method on the **File** class. -- The third column specifies the input of the flow. **Argument[self]** selects the **self** argument of **each**, which is the **File** instance being iterated over. +- The first column, ``"File"``, begins the search for relevant calls at places where the ``File`` class is used. +- The second column, ``Method[each]``, selects references to the ``each`` method on the ``File`` class. +- The third column specifies the input of the flow. ``Argument[self]`` selects the ``self`` argument of ``each``, which is the ``File`` instance being iterated over. - The fourth column specifies the output of the flow: - - **Argument[block]** selects the block argument of **each** (the block which is executed for each line in the file). - - **Parameter[0]** selects the first parameter of the block (the parameter named **line**). + - ``Argument[block]`` selects the block argument of ``each`` (the block which is executed for each line in the file). + - ``Parameter[0]`` selects the first parameter of the block (the parameter named ``line``). -- The last column, **taint**, indicates the kind of flow to add. +- The last column, ``taint``, indicates the kind of flow to add. + +Example: Taint barrier using the 'escape' method +------------------------------------------------ + +In this example, we'll show how to add the return value of ``Mysql2::Client#escape`` as a barrier for SQL injection. + +.. code-block:: ruby + + client = Mysql2::Client.new + escaped = client.escape(input) # The return value of this method is safe for SQL injection. + client.query("SELECT * FROM users WHERE name = '#{escaped}'") + +We need to add a tuple to the ``barrierModel(type, path, kind)`` extensible predicate by updating a data extension file. + +.. code-block:: yaml + + extensions: + - addsTo: + pack: codeql/ruby-all + extensible: barrierModel + data: + - ["Mysql2::Client!", "Method[escape].ReturnValue", "sql-injection"] + +- The first column, ``"Mysql2::Client!"``, begins the search for relevant calls at references to the ``Mysql2::Client`` class. + The ``!`` suffix indicates that we want to search for references to the class itself, rather than instances of the class. +- The second column, ``"Method[escape].ReturnValue"``, selects the return value of the ``escape`` method. +- The third column, ``"sql-injection"``, is the kind of the barrier. + +Example: Add a barrier guard +---------------------------- + +This example shows how to model a barrier guard that stops the flow of taint when a conditional check is performed on data. +Consider a validation method ``Validator.is_safe`` which returns ``true`` when the data is considered safe. + +.. code-block:: ruby + + if Validator.is_safe(user_input) + # The check guards the use, so the input is safe. + client.query("SELECT * FROM users WHERE name = '#{user_input}'") + end + +We need to add a tuple to the ``barrierGuardModel(type, path, acceptingValue, kind)`` extensible predicate by updating a data extension file. + +.. code-block:: yaml + + extensions: + - addsTo: + pack: codeql/ruby-all + extensible: barrierGuardModel + data: + - ["Validator!", "Method[is_safe].Argument[0]", "true", "sql-injection"] + +- The first column, ``"Validator!"``, begins the search at references to the ``Validator`` class. + The ``!`` suffix indicates that we want to search for references to the class itself, rather than instances of the class. +- The second column, ``"Method[is_safe].Argument[0]"``, selects the first argument of the ``is_safe`` method. This is the value being validated. +- The third column, ``"true"``, is the accepting value of the barrier guard. This is the value that the conditional check must return for the barrier to apply. +- The fourth column, ``"sql-injection"``, is the kind of the barrier guard. Reference material ------------------ @@ -243,9 +297,9 @@ sourceModel(type, path, kind) Adds a new taint source. Most taint-tracking queries will use the new source. -- **type**: Name of a type from which to evaluate **path**. -- **path**: Access path leading to the source. -- **kind**: Kind of source to add. Currently only **remote** is used. +- ``type``: Name of a type from which to evaluate ``path``. +- ``path``: Access path leading to the source. +- ``kind``: Kind of source to add. Currently only ``remote`` is used. Example: @@ -263,9 +317,9 @@ sinkModel(type, path, kind) Adds a new taint sink. Sinks are query-specific and will typically affect one or two queries. -- **type**: Name of a type from which to evaluate **path**. -- **path**: Access path leading to the sink. -- **kind**: Kind of sink to add. See the section on sink kinds for a list of supported kinds. +- ``type``: Name of a type from which to evaluate ``path``. +- ``path``: Access path leading to the sink. +- ``kind``: Kind of sink to add. See the section on sink kinds for a list of supported kinds. Example: @@ -283,11 +337,11 @@ summaryModel(type, path, input, output, kind) Adds flow through a method call. -- **type**: Name of a type from which to evaluate **path**. -- **path**: Access path leading to a method call. -- **input**: Path relative to the method call that leads to input of the flow. -- **output**: Path relative to the method call leading to the output of the flow. -- **kind**: Kind of summary to add. Can be **taint** for taint-propagating flow, or **value** for value-preserving flow. +- ``type``: Name of a type from which to evaluate ``path``. +- ``path``: Access path leading to a method call. +- ``input``: Path relative to the method call that leads to input of the flow. +- ``output``: Path relative to the method call leading to the output of the flow. +- ``kind``: Kind of summary to add. Can be ``taint`` for taint-propagating flow, or ``value`` for value-preserving flow. Example: @@ -311,9 +365,9 @@ typeModel(type1, type2, path) Adds a new definition of a type. -- **type1**: Name of the type to define. -- **type2**: Name of the type from which to evaluate **path**. -- **path**: Access path leading from **type2** to **type1**. +- ``type1``: Name of the type to define. +- ``type2``: Name of the type from which to evaluate ``path``. +- ``path``: Access path leading from ``type2`` to ``type1``. Example: @@ -335,44 +389,44 @@ Types A type is a string that identifies a set of values. In each of the extensible predicates mentioned in previous section, the first column is always the name of a type. -A type can be defined by adding **typeModel** tuples for that type. +A type can be defined by adding ``typeModel`` tuples for that type. Access paths ------------ -The **path**, **input**, and **output** columns consist of a **.**-separated list of components, which is evaluated from left to right, +The ``path``, ``input``, and ``output`` columns consist of a ``.``-separated list of components, which is evaluated from left to right, with each step selecting a new set of values derived from the previous set of values. The following components are supported: -- **Argument[**\ `number`\ **]** selects the argument at the given index. -- **Argument[**\ `string`:\ **]** selects the keyword argument with the given name. -- **Argument[self]** selects the receiver of a method call. -- **Argument[block]** selects the block argument. -- **Argument[any]** selects any argument, except self or block arguments. -- **Argument[any-named]** selects any keyword argument. -- **Argument[hash-splat]** selects a special argument representing all keyword arguments passed in the method call. -- **Parameter[**\ `number`\ **]** selects the argument at the given index. -- **Parameter[**\ `string`:\ **]** selects the keyword argument with the given name. -- **Parameter[self]** selects the **self** parameter of a method. -- **Parameter[block]** selects the block parameter. -- **Parameter[any]** selects any parameter, except self or block parameters. -- **Parameter[any-named]** selects any keyword parameter. -- **Parameter[hash-splat]** selects the hash splat parameter, often written as **\*\*kwargs**. -- **ReturnValue** selects the return value of a call. -- **Method[**\ `name`\ **]** selects a call to the method with the given name. -- **Element[any]** selects any element of an array or hash. -- **Element[**\ `number`\ **]** selects an array element at the given index. -- **Element[**\ `string`\ **]** selects a hash element at the given key. -- **Field[@**\ `string`\ **]** selects an instance variable with the given name. -- **Fuzzy** selects all values that are derived from the current value through a combination of the other operations described in this list. +- ``Argument[``\ `number`\ ``]`` selects the argument at the given index. +- ``Argument[``\ `string`:\ ``]`` selects the keyword argument with the given name. +- ``Argument[self]`` selects the receiver of a method call. +- ``Argument[block]`` selects the block argument. +- ``Argument[any]`` selects any argument, except self or block arguments. +- ``Argument[any-named]`` selects any keyword argument. +- ``Argument[hash-splat]`` selects a special argument representing all keyword arguments passed in the method call. +- ``Parameter[``\ `number`\ ``]`` selects the argument at the given index. +- ``Parameter[``\ `string`:\ ``]`` selects the keyword argument with the given name. +- ``Parameter[self]`` selects the ``self`` parameter of a method. +- ``Parameter[block]`` selects the block parameter. +- ``Parameter[any]`` selects any parameter, except self or block parameters. +- ``Parameter[any-named]`` selects any keyword parameter. +- ``Parameter[hash-splat]`` selects the hash splat parameter, often written as **\*\*kwargs**. +- ``ReturnValue`` selects the return value of a call. +- ``Method[``\ `name`\ ``]`` selects a call to the method with the given name. +- ``Element[any]`` selects any element of an array or hash. +- ``Element[``\ `number`\ ``]`` selects an array element at the given index. +- ``Element[``\ `string`\ ``]`` selects a hash element at the given key. +- ``Field[@``\ `string`\ ``]`` selects an instance variable with the given name. +- ``Fuzzy`` selects all values that are derived from the current value through a combination of the other operations described in this list. For example, this can be used to find all values that appear to originate from a particular class. This can be useful for finding method calls from a known class, but where the receiver type is not known or is difficult to model. Additional notes about the syntax of operands: -- Multiple operands may be given to a single component, as a shorthand for the union of the operands. For example, **Method[foo,bar]** matches the union of **Method[foo]** and **Method[bar]**. -- Numeric operands to **Argument**, **Parameter**, and **Element** may be given as a lower bound. For example, **Argument[1..]** matches all arguments except 0. +- Multiple operands may be given to a single component, as a shorthand for the union of the operands. For example, ``Method[foo,bar]`` matches the union of ``Method[foo]`` and ``Method[bar]``. +- Numeric operands to ``Argument``, ``Parameter``, and ``Element`` may be given as a lower bound. For example, ``Argument[1..]`` matches all arguments except 0. Kinds ----- @@ -380,7 +434,7 @@ Kinds Source kinds ~~~~~~~~~~~~ -- **remote**: A generic source of remote flow. Most taint-tracking queries will use such a source. Currently this is the only supported source kind. +- ``remote``: A generic source of remote flow. Most taint-tracking queries will use such a source. Currently this is the only supported source kind. Sink kinds ~~~~~~~~~~ @@ -388,15 +442,15 @@ Sink kinds Unlike sources, sinks tend to be highly query-specific, rarely affecting more than one or two queries. Not every query supports customizable sinks. If the following sinks are not suitable for your use case, you should add a new query. -- **code-injection**: A sink that can be used to inject code, such as in calls to **eval**. -- **command-injection**: A sink that can be used to inject shell commands, such as in calls to **Process.spawn**. -- **path-injection**: A sink that can be used for path injection in a file system access, such as in calls to **File.open**. -- **sql-injection**: A sink that can be used for SQL injection, such as in an ActiveRecord **where** call. -- **url-redirection**: A sink that can be used to redirect the user to a malicious URL. -- **log-injection**: A sink that can be used for log injection, such as in a **Rails.logger** call. +- ``code-injection``: A sink that can be used to inject code, such as in calls to ``eval``. +- ``command-injection``: A sink that can be used to inject shell commands, such as in calls to ``Process.spawn``. +- ``path-injection``: A sink that can be used for path injection in a file system access, such as in calls to ``File.open``. +- ``sql-injection``: A sink that can be used for SQL injection, such as in an ActiveRecord ``where`` call. +- ``url-redirection``: A sink that can be used to redirect the user to a malicious URL. +- ``log-injection``: A sink that can be used for log injection, such as in a ``Rails.logger`` call. Summary kinds ~~~~~~~~~~~~~ -- **taint**: A summary that propagates taint. This means the output is not necessarily equal to the input, but it was derived from the input in an unrestrictive way. An attacker who controls the input will have significant control over the output as well. -- **value**: A summary that preserves the value of the input or creates a copy of the input such that all of its object properties are preserved. +- ``taint``: A summary that propagates taint. This means the output is not necessarily equal to the input, but it was derived from the input in an unrestrictive way. An attacker who controls the input will have significant control over the output as well. +- ``value``: A summary that preserves the value of the input or creates a copy of the input such that all of its object properties are preserved. diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.25.2.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.25.2.rst new file mode 100644 index 00000000000..58c6a7245d2 --- /dev/null +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.25.2.rst @@ -0,0 +1,157 @@ +.. _codeql-cli-2.25.2: + +========================== +CodeQL 2.25.2 (2026-04-15) +========================== + +.. contents:: Contents + :depth: 2 + :local: + :backlinks: none + +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. + +Security Coverage +----------------- + +CodeQL 2.25.2 runs a total of 492 security queries when configured with the Default suite (covering 166 CWE). The Extended suite enables an additional 135 queries (covering 35 more CWE). 1 security query has been added with this release. + +CodeQL CLI +---------- + +Miscellaneous +~~~~~~~~~~~~~ + +* The build of Eclipse Temurin OpenJDK that is used to run the CodeQL CLI has been updated to version 21.0.10. + +Query Packs +----------- + +Major Analysis Improvements +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +C# +"" + +* The :code:`cs/constant-condition` query has been simplified. The query no longer reports trivially constant conditions as they were found to generally be intentional. As a result, it should now produce fewer false positives. Additionally, the simplification means that it now reports all the results that :code:`cs/constant-comparison` used to report, and as consequence, that query has been deleted. + +Python +"""""" + +* Several quality queries have been ported away from using the legacy points-to library. This may lead to changes in alerts. + +Minor Analysis Improvements +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +C/C++ +""""" + +* The "Extraction warnings" (:code:`cpp/diagnostics/extraction-warnings`) diagnostics query no longer yields :code:`ExtractionRecoverableWarning`\ s for :code:`build-mode: none` databases. The results were found to significantly increase the sizes of the produced SARIF files, making them unprocessable in some cases. +* Fixed an issue with the "Suspicious add with sizeof" (:code:`cpp/suspicious-add-sizeof`) query causing false positive results in :code:`build-mode: none` databases. +* Fixed an issue with the "Uncontrolled format string" (:code:`cpp/tainted-format-string`) query involving certain kinds of formatting function implementations. +* Fixed an issue with the "Wrong type of arguments to formatting function" (:code:`cpp/wrong-type-format-argument`) query causing false positive results in :code:`build-mode: none` databases. +* Fixed an issue with the "Multiplication result converted to larger type" (:code:`cpp/integer-multiplication-cast-to-long`) query causing false positive results in :code:`build-mode: none` databases. + +Query Metadata Changes +~~~~~~~~~~~~~~~~~~~~~~ + +C/C++ +""""" + +* The :code:`@security-severity` metadata of :code:`cpp/cgi-xss` has been increased from 6.1 (medium) to 7.8 (high). + +C# +"" + +* The :code:`@security-severity` metadata of :code:`cs/log-forging` has been reduced from 7.8 (high) to 6.1 (medium). +* The :code:`@security-severity` metadata of :code:`cs/web/xss` has been increased from 6.1 (medium) to 7.8 (high). + +Golang +"""""" + +* The :code:`@security-severity` metadata of :code:`go/log-injection` has been reduced from 7.8 (high) to 6.1 (medium). +* The :code:`@security-severity` metadata of :code:`go/html-template-escaping-bypass-xss`, :code:`go/reflected-xss` and :code:`go/stored-xss` has been increased from 6.1 (medium) to 7.8 (high). + +Java/Kotlin +""""""""""" + +* The :code:`@security-severity` metadata of :code:`java/log-injection` has been reduced from 7.8 (high) to 6.1 (medium). +* The :code:`@security-severity` metadata of :code:`java/android/webview-addjavascriptinterface`, :code:`java/android/websettings-javascript-enabled` and :code:`java/xss` has been increased from 6.1 (medium) to 7.8 (high). + +Python +"""""" + +* The :code:`@security-severity` metadata of :code:`py/log-injection` has been reduced from 7.8 (high) to 6.1 (medium). +* The :code:`@security-severity` metadata of :code:`py/jinja2/autoescape-false` and :code:`py/reflective-xss` has been increased from 6.1 (medium) to 7.8 (high). + +Ruby +"""" + +* The :code:`@security-severity` metadata of :code:`rb/log-injection` has been reduced from 7.8 (high) to 6.1 (medium). +* The :code:`@security-severity` metadata of :code:`rb/reflected-xss`, :code:`rb/stored-xss` and :code:`rb/html-constructed-from-input` has been increased from 6.1 (medium) to 7.8 (high). + +Swift +""""" + +* The :code:`@security-severity` metadata of :code:`swift/unsafe-webview-fetch` has been increased from 6.1 (medium) to 7.8 (high). + +Rust +"""" + +* The :code:`@security-severity` metadata of :code:`rust/log-injection` has been increased from 2.6 (low) to 6.1 (medium). +* The :code:`@security-severity` metadata of :code:`rust/xss` has been increased from 6.1 (medium) to 7.8 (high). + +Language Libraries +------------------ + +Bug Fixes +~~~~~~~~~ + +Python +"""""" + +* Fixed the resolution of relative imports such as :code:`from . import helper` inside namespace packages (directories without an :code:`__init__.py` file), which previously did not work correctly, leading to missing flow. + +Breaking Changes +~~~~~~~~~~~~~~~~ + +C/C++ +""""" + +* The :code:`SourceModelCsv`, :code:`SinkModelCsv`, and :code:`SummaryModelCsv` classes and the associated CSV parsing infrastructure have been removed from :code:`ExternalFlow.qll`. New models should be added as :code:`.model.yml` files in the :code:`ext/` directory. + +Minor Analysis Improvements +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +C/C++ +""""" + +* Added :code:`HttpReceiveHttpRequest`, :code:`HttpReceiveRequestEntityBody`, and :code:`HttpReceiveClientCertificate` from Win32's :code:`http.h` as remote flow sources. +* Added dataflow through members initialized via non-static data member initialization (NSDMI). + +C# +"" + +* The extractor no longer synthesizes expanded forms of compound assignments. This may have a small impact on the results of queries that explicitly or implicitly rely on the expanded form of compound assignments. +* The :code:`cs/log-forging` query no longer treats arguments to extension methods with source code on :code:`ILogger` types as sinks. Instead, taint is tracked interprocedurally through extension method bodies, reducing false positives when extension methods sanitize input internally. + +Java/Kotlin +""""""""""" + +* The :code:`java/tainted-arithmetic` query no longer flags arithmetic expressions that are used directly as an operand of a comparison in :code:`if`\ -condition bounds-checking patterns. For example, :code:`if (off + len > array.length)` is now recognized as a bounds check rather than a potentially vulnerable computation, reducing false positives. +* The :code:`java/potentially-weak-cryptographic-algorithm` query no longer flags Elliptic Curve algorithms (:code:`EC`, :code:`ECDSA`, :code:`ECDH`, :code:`EdDSA`, :code:`Ed25519`, :code:`Ed448`, :code:`XDH`, :code:`X25519`, :code:`X448`), HMAC-based algorithms (:code:`HMACSHA1`, :code:`HMACSHA256`, :code:`HMACSHA384`, :code:`HMACSHA512`), or PBKDF2 key derivation as potentially insecure. These are modern, secure algorithms recommended by NIST and other standards bodies. This will reduce the number of false positives for this query. +* The first argument of the method :code:`getInstance` of :code:`java.security.Signature` is now modeled as a sink for :code:`java/potentially-weak-cryptographic-algorithm`, :code:`java/weak-cryptographic-algorithm` and :code:`java/rsa-without-oaep`. This will increase the number of alerts for these queries. +* Kotlin versions up to 2.3.20 are now supported. + +New Features +~~~~~~~~~~~~ + +C/C++ +""""" + +* Added a subclass :code:`MesonPrivateTestFile` of :code:`ConfigurationTestFile` that represents files created by Meson to test the build configuration. +* Added a class :code:`ConstructorDirectFieldInit` to represent field initializations that occur in member initializer lists. +* Added a class :code:`ConstructorDefaultFieldInit` to represent default field initializations. +* Added a class :code:`DataFlow::IndirectParameterNode` to represent the indirection of a parameter as a dataflow node. +* Added a predicate :code:`Node::asIndirectInstruction` which returns the :code:`Instruction` that defines the indirect dataflow node, if any. +* Added a class :code:`IndirectUninitializedNode` to represent the indirection of an uninitialized local variable as a dataflow node. diff --git a/docs/codeql/codeql-overview/codeql-changelog/index.rst b/docs/codeql/codeql-overview/codeql-changelog/index.rst index fc3c5247328..32a8b4574bb 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/index.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/index.rst @@ -11,6 +11,7 @@ A list of queries for each suite and language `is available here { predicate uniqueNodeLocationExclude(DataFlow::Node n) { missingLocationExclude(n) } - predicate localFlowIsLocalExclude(DataFlow::Node n1, DataFlow::Node n2) { - n1 instanceof DataFlow::FunctionNode and simpleLocalFlowStep(n1, n2, _) - } - predicate argHasPostUpdateExclude(DataFlow::ArgumentNode n) { not DataFlow::insnHasPostUpdateNode(n.asInstruction()) } diff --git a/go/ql/lib/semmle/go/dataflow/internal/DataFlowPrivate.qll b/go/ql/lib/semmle/go/dataflow/internal/DataFlowPrivate.qll index 33149bf0057..2c5c64ace7d 100644 --- a/go/ql/lib/semmle/go/dataflow/internal/DataFlowPrivate.qll +++ b/go/ql/lib/semmle/go/dataflow/internal/DataFlowPrivate.qll @@ -95,10 +95,6 @@ predicate basicLocalFlowStep(Node nodeFrom, Node nodeTo) { nodeTo = instructionNode(succ) and nodeTo != nodeFrom ) - or - // GlobalFunctionNode -> use - nodeFrom = - any(GlobalFunctionNode fn | fn.getFunction() = nodeTo.asExpr().(FunctionName).getTarget()) } pragma[noinline] diff --git a/go/ql/lib/semmle/go/dataflow/internal/ExternalFlowExtensions.qll b/go/ql/lib/semmle/go/dataflow/internal/ExternalFlowExtensions.qll index 5d43cf674c1..ab2a241e14a 100644 --- a/go/ql/lib/semmle/go/dataflow/internal/ExternalFlowExtensions.qll +++ b/go/ql/lib/semmle/go/dataflow/internal/ExternalFlowExtensions.qll @@ -35,7 +35,7 @@ extensible predicate barrierModel( */ extensible predicate barrierGuardModel( string package, string type, boolean subtypes, string name, string signature, string ext, - string input, string acceptingvalue, string kind, string provenance, QlBuiltins::ExtensionId madId + string input, string acceptingValue, string kind, string provenance, QlBuiltins::ExtensionId madId ); /** diff --git a/go/ql/lib/semmle/go/dataflow/internal/FlowSummaryImpl.qll b/go/ql/lib/semmle/go/dataflow/internal/FlowSummaryImpl.qll index 240665bd492..ff727286c3b 100644 --- a/go/ql/lib/semmle/go/dataflow/internal/FlowSummaryImpl.qll +++ b/go/ql/lib/semmle/go/dataflow/internal/FlowSummaryImpl.qll @@ -174,13 +174,13 @@ module SourceSinkInterpretationInput implements } predicate barrierGuardElement( - Element e, string input, Public::AcceptingValue acceptingvalue, string kind, + Element e, string input, Public::AcceptingValue acceptingValue, string kind, Public::Provenance provenance, string model ) { exists( string package, string type, boolean subtypes, string name, string signature, string ext | - barrierGuardModel(package, type, subtypes, name, signature, ext, input, acceptingvalue, kind, + barrierGuardModel(package, type, subtypes, name, signature, ext, input, acceptingValue, kind, provenance, model) and e = interpretElement(package, type, subtypes, name, signature, ext) ) diff --git a/go/ql/lib/semmle/go/frameworks/stdlib/IoFs.qll b/go/ql/lib/semmle/go/frameworks/stdlib/IoFs.qll index b071e56cbb5..cfd8a8aee23 100644 --- a/go/ql/lib/semmle/go/frameworks/stdlib/IoFs.qll +++ b/go/ql/lib/semmle/go/frameworks/stdlib/IoFs.qll @@ -20,10 +20,13 @@ module IoFs { private class WalkDirStep extends TaintTracking::AdditionalTaintStep { override predicate step(DataFlow::Node pred, DataFlow::Node succ) { //signature: func WalkDir(fsys FS, root string, fn WalkDirFunc) error - exists(DataFlow::CallNode call, DataFlow::FunctionNode f | - call.getTarget().hasQualifiedName(packagePath(), "WalkDir") and - f.getASuccessor*() = call.getArgument(2) + exists(DataFlow::CallNode call, DataFlow::FunctionNode f, DataFlow::Node n | + n = f.(DataFlow::FuncLitNode) + or + n.asExpr().(FunctionName).getTarget() = f.(DataFlow::GlobalFunctionNode).getFunction() | + call.getTarget().hasQualifiedName(packagePath(), "WalkDir") and + n.getASuccessor*() = call.getArgument(2) and pred = call.getArgument(0) and succ = f.getParameter([0, 1]) ) diff --git a/go/ql/src/CHANGELOG.md b/go/ql/src/CHANGELOG.md index f6fcaa51ab3..971d478d56e 100644 --- a/go/ql/src/CHANGELOG.md +++ b/go/ql/src/CHANGELOG.md @@ -1,3 +1,14 @@ +## 1.6.1 + +No user-facing changes. + +## 1.6.0 + +### Query Metadata Changes + +* The `@security-severity` metadata of `go/log-injection` has been reduced from 7.8 (high) to 6.1 (medium). +* The `@security-severity` metadata of `go/html-template-escaping-bypass-xss`, `go/reflected-xss` and `go/stored-xss` has been increased from 6.1 (medium) to 7.8 (high). + ## 1.5.10 No user-facing changes. diff --git a/go/ql/src/change-notes/2026-03-13-adjust-xss-and-log-injection-severity.md b/go/ql/src/change-notes/released/1.6.0.md similarity index 87% rename from go/ql/src/change-notes/2026-03-13-adjust-xss-and-log-injection-severity.md rename to go/ql/src/change-notes/released/1.6.0.md index 45320bcd719..1e508254885 100644 --- a/go/ql/src/change-notes/2026-03-13-adjust-xss-and-log-injection-severity.md +++ b/go/ql/src/change-notes/released/1.6.0.md @@ -1,5 +1,6 @@ ---- -category: queryMetadata ---- +## 1.6.0 + +### Query Metadata Changes + * The `@security-severity` metadata of `go/log-injection` has been reduced from 7.8 (high) to 6.1 (medium). * The `@security-severity` metadata of `go/html-template-escaping-bypass-xss`, `go/reflected-xss` and `go/stored-xss` has been increased from 6.1 (medium) to 7.8 (high). diff --git a/go/ql/src/change-notes/released/1.6.1.md b/go/ql/src/change-notes/released/1.6.1.md new file mode 100644 index 00000000000..898f6201ed7 --- /dev/null +++ b/go/ql/src/change-notes/released/1.6.1.md @@ -0,0 +1,3 @@ +## 1.6.1 + +No user-facing changes. diff --git a/go/ql/src/codeql-pack.release.yml b/go/ql/src/codeql-pack.release.yml index fda54b31bff..ef7a789e0cf 100644 --- a/go/ql/src/codeql-pack.release.yml +++ b/go/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.5.10 +lastReleaseVersion: 1.6.1 diff --git a/go/ql/src/qlpack.yml b/go/ql/src/qlpack.yml index fd374637a9b..fa7e934382a 100644 --- a/go/ql/src/qlpack.yml +++ b/go/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-queries -version: 1.5.11-dev +version: 1.6.2-dev groups: - go - queries diff --git a/go/ql/test/library-tests/semmle/go/dataflow/FlowSteps/LocalFlowStep.expected b/go/ql/test/library-tests/semmle/go/dataflow/FlowSteps/LocalFlowStep.expected index fcbb78716a4..7fa8b681d7f 100644 --- a/go/ql/test/library-tests/semmle/go/dataflow/FlowSteps/LocalFlowStep.expected +++ b/go/ql/test/library-tests/semmle/go/dataflow/FlowSteps/LocalFlowStep.expected @@ -1,52 +1,3 @@ -| file://:0:0:0:0 | function Encode | url.go:51:14:51:21 | selection of Encode | -| file://:0:0:0:0 | function EscapedPath | url.go:28:14:28:26 | selection of EscapedPath | -| file://:0:0:0:0 | function Get | url.go:52:14:52:18 | selection of Get | -| file://:0:0:0:0 | function Hostname | url.go:29:14:29:23 | selection of Hostname | -| file://:0:0:0:0 | function JoinPath | url.go:57:16:57:27 | selection of JoinPath | -| file://:0:0:0:0 | function JoinPath | url.go:58:16:58:27 | selection of JoinPath | -| file://:0:0:0:0 | function JoinPath | url.go:60:15:60:28 | selection of JoinPath | -| file://:0:0:0:0 | function JoinPath | url.go:66:9:66:25 | selection of JoinPath | -| file://:0:0:0:0 | function MarshalBinary | url.go:30:11:30:25 | selection of MarshalBinary | -| file://:0:0:0:0 | function Parse | url.go:23:10:23:18 | selection of Parse | -| file://:0:0:0:0 | function Parse | url.go:32:9:32:15 | selection of Parse | -| file://:0:0:0:0 | function Parse | url.go:59:14:59:22 | selection of Parse | -| file://:0:0:0:0 | function Parse | url.go:65:17:65:25 | selection of Parse | -| file://:0:0:0:0 | function ParseQuery | url.go:50:10:50:23 | selection of ParseQuery | -| file://:0:0:0:0 | function ParseRequestURI | url.go:27:9:27:27 | selection of ParseRequestURI | -| file://:0:0:0:0 | function Password | url.go:43:11:43:21 | selection of Password | -| file://:0:0:0:0 | function PathEscape | url.go:12:31:12:44 | selection of PathEscape | -| file://:0:0:0:0 | function PathUnescape | url.go:12:14:12:29 | selection of PathUnescape | -| file://:0:0:0:0 | function Port | url.go:33:14:33:19 | selection of Port | -| file://:0:0:0:0 | function Println | url.go:28:2:28:12 | selection of Println | -| file://:0:0:0:0 | function Println | url.go:29:2:29:12 | selection of Println | -| file://:0:0:0:0 | function Println | url.go:31:2:31:12 | selection of Println | -| file://:0:0:0:0 | function Println | url.go:33:2:33:12 | selection of Println | -| file://:0:0:0:0 | function Println | url.go:34:2:34:12 | selection of Println | -| file://:0:0:0:0 | function Println | url.go:35:2:35:12 | selection of Println | -| file://:0:0:0:0 | function Println | url.go:44:2:44:12 | selection of Println | -| file://:0:0:0:0 | function Println | url.go:45:2:45:12 | selection of Println | -| file://:0:0:0:0 | function Println | url.go:51:2:51:12 | selection of Println | -| file://:0:0:0:0 | function Println | url.go:52:2:52:12 | selection of Println | -| file://:0:0:0:0 | function Query | url.go:34:14:34:20 | selection of Query | -| file://:0:0:0:0 | function QueryEscape | url.go:14:32:14:46 | selection of QueryEscape | -| file://:0:0:0:0 | function QueryUnescape | url.go:14:14:14:30 | selection of QueryUnescape | -| file://:0:0:0:0 | function Replace | strings.go:9:8:9:22 | selection of Replace | -| file://:0:0:0:0 | function ReplaceAll | strings.go:10:8:10:25 | selection of ReplaceAll | -| file://:0:0:0:0 | function RequestURI | url.go:35:14:35:25 | selection of RequestURI | -| file://:0:0:0:0 | function ResolveReference | url.go:36:6:36:23 | selection of ResolveReference | -| file://:0:0:0:0 | function Sprint | strings.go:11:9:11:18 | selection of Sprint | -| file://:0:0:0:0 | function Sprintf | strings.go:11:30:11:40 | selection of Sprintf | -| file://:0:0:0:0 | function Sprintln | strings.go:11:54:11:65 | selection of Sprintln | -| file://:0:0:0:0 | function User | url.go:41:8:41:15 | selection of User | -| file://:0:0:0:0 | function UserPassword | url.go:42:7:42:22 | selection of UserPassword | -| file://:0:0:0:0 | function Username | url.go:45:14:45:24 | selection of Username | -| file://:0:0:0:0 | function append | main.go:39:8:39:13 | append | -| file://:0:0:0:0 | function append | main.go:40:8:40:13 | append | -| file://:0:0:0:0 | function copy | main.go:42:2:42:5 | copy | -| file://:0:0:0:0 | function make | main.go:41:8:41:11 | make | -| file://:0:0:0:0 | function max | main.go:65:7:65:9 | max | -| file://:0:0:0:0 | function min | main.go:64:7:64:9 | min | -| main.go:3:6:3:10 | function test1 | main.go:34:2:34:6 | test1 | | main.go:3:12:3:12 | argument corresponding to x | main.go:3:12:3:12 | definition of x | | main.go:3:12:3:12 | definition of x | main.go:5:5:5:5 | x | | main.go:3:19:3:20 | argument corresponding to fn | main.go:3:19:3:20 | definition of fn | @@ -66,8 +17,6 @@ | main.go:10:12:10:12 | y | main.go:10:17:10:17 | y | | main.go:10:17:10:27 | ...>=... | main.go:10:7:10:27 | ...&&... | | main.go:11:14:11:14 | z | main.go:11:9:11:15 | type conversion | -| main.go:14:6:14:10 | function test2 | main.go:34:8:34:12 | test2 | -| main.go:14:6:14:10 | function test2 | main.go:34:19:34:23 | test2 | | main.go:15:9:15:9 | 0 | main.go:15:2:15:4 | definition of acc | | main.go:16:9:19:2 | capture variable acc | main.go:17:3:17:5 | acc | | main.go:17:3:17:7 | definition of acc | main.go:18:10:18:12 | acc | diff --git a/go/ql/test/library-tests/semmle/go/dataflow/PromotedFields/LocalFlowStep.expected b/go/ql/test/library-tests/semmle/go/dataflow/PromotedFields/LocalFlowStep.expected index 5908aa8d113..3767cd57b5d 100644 --- a/go/ql/test/library-tests/semmle/go/dataflow/PromotedFields/LocalFlowStep.expected +++ b/go/ql/test/library-tests/semmle/go/dataflow/PromotedFields/LocalFlowStep.expected @@ -1,83 +1,3 @@ -| main.go:3:6:3:11 | function source | main.go:23:31:23:36 | source | -| main.go:3:6:3:11 | function source | main.go:31:31:31:36 | source | -| main.go:3:6:3:11 | function source | main.go:40:30:40:35 | source | -| main.go:3:6:3:11 | function source | main.go:46:32:46:37 | source | -| main.go:3:6:3:11 | function source | main.go:54:17:54:22 | source | -| main.go:3:6:3:11 | function source | main.go:62:18:62:23 | source | -| main.go:3:6:3:11 | function source | main.go:72:17:72:22 | source | -| main.go:3:6:3:11 | function source | main.go:80:18:80:23 | source | -| main.go:3:6:3:11 | function source | main.go:91:16:91:21 | source | -| main.go:3:6:3:11 | function source | main.go:98:17:98:22 | source | -| main.go:3:6:3:11 | function source | main.go:107:22:107:27 | source | -| main.go:3:6:3:11 | function source | main.go:114:23:114:28 | source | -| main.go:3:6:3:11 | function source | main.go:123:23:123:28 | source | -| main.go:3:6:3:11 | function source | main.go:130:24:130:29 | source | -| main.go:3:6:3:11 | function source | main.go:139:29:139:34 | source | -| main.go:3:6:3:11 | function source | main.go:146:30:146:35 | source | -| main.go:7:6:7:9 | function sink | main.go:25:2:25:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:26:2:26:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:27:2:27:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:28:2:28:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:33:2:33:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:34:2:34:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:35:2:35:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:36:2:36:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:41:2:41:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:42:2:42:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:43:2:43:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:44:2:44:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:47:2:47:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:48:2:48:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:49:2:49:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:50:2:50:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:57:2:57:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:58:2:58:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:59:2:59:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:60:2:60:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:65:2:65:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:66:2:66:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:67:2:67:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:68:2:68:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:75:2:75:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:76:2:76:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:77:2:77:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:78:2:78:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:83:2:83:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:84:2:84:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:85:2:85:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:86:2:86:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:92:2:92:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:93:2:93:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:94:2:94:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:95:2:95:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:99:2:99:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:100:2:100:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:101:2:101:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:102:2:102:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:108:2:108:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:109:2:109:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:110:2:110:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:111:2:111:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:115:2:115:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:116:2:116:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:117:2:117:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:118:2:118:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:124:2:124:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:125:2:125:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:126:2:126:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:127:2:127:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:131:2:131:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:132:2:132:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:133:2:133:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:134:2:134:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:140:2:140:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:141:2:141:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:142:2:142:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:143:2:143:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:147:2:147:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:148:2:148:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:149:2:149:5 | sink | -| main.go:7:6:7:9 | function sink | main.go:150:2:150:5 | sink | | main.go:22:2:22:6 | definition of outer | main.go:25:7:25:11 | outer | | main.go:22:11:24:2 | struct literal | main.go:22:2:22:6 | definition of outer | | main.go:22:11:24:2 | struct literal [postupdate] | main.go:22:2:22:6 | definition of outer | diff --git a/java/ql/lib/CHANGELOG.md b/java/ql/lib/CHANGELOG.md index ecbffa5461c..2d34c791c92 100644 --- a/java/ql/lib/CHANGELOG.md +++ b/java/ql/lib/CHANGELOG.md @@ -1,3 +1,18 @@ +## 9.0.4 + +### Minor Analysis Improvements + +* The queries "Resolving XML external entity in user-controlled data" (`java/xxe`) and "Resolving XML external entity in user-controlled data from local source" (`java/xxe-local`) now recognize sinks in the Woodstox StAX library when `com.ctc.wstx.stax.WstxInputFactory` or `org.codehaus.stax2.XMLInputFactory2` are used directly. + +## 9.0.3 + +### Minor Analysis Improvements + +* The `java/tainted-arithmetic` query no longer flags arithmetic expressions that are used directly as an operand of a comparison in `if`-condition bounds-checking patterns. For example, `if (off + len > array.length)` is now recognized as a bounds check rather than a potentially vulnerable computation, reducing false positives. +* The `java/potentially-weak-cryptographic-algorithm` query no longer flags Elliptic Curve algorithms (`EC`, `ECDSA`, `ECDH`, `EdDSA`, `Ed25519`, `Ed448`, `XDH`, `X25519`, `X448`), HMAC-based algorithms (`HMACSHA1`, `HMACSHA256`, `HMACSHA384`, `HMACSHA512`), or PBKDF2 key derivation as potentially insecure. These are modern, secure algorithms recommended by NIST and other standards bodies. This will reduce the number of false positives for this query. +* The first argument of the method `getInstance` of `java.security.Signature` is now modeled as a sink for `java/potentially-weak-cryptographic-algorithm`, `java/weak-cryptographic-algorithm` and `java/rsa-without-oaep`. This will increase the number of alerts for these queries. +* Kotlin versions up to 2.3.20 are now supported. + ## 9.0.2 No user-facing changes. diff --git a/java/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md b/java/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md new file mode 100644 index 00000000000..f8bcbb1fcb2 --- /dev/null +++ b/java/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md @@ -0,0 +1,4 @@ +--- +category: feature +--- +* Data flow barriers and barrier guards can now be added using data extensions. For more information see [Customizing library models for Java and Kotlin](https://codeql.github.com/docs/codeql-language-guides/customizing-library-models-for-java-and-kotlin/). diff --git a/java/ql/lib/change-notes/2026-03-26-kotlin-2.3.20.md b/java/ql/lib/change-notes/2026-03-26-kotlin-2.3.20.md deleted file mode 100644 index b18cff45704..00000000000 --- a/java/ql/lib/change-notes/2026-03-26-kotlin-2.3.20.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Kotlin versions up to 2.3.20 are now supported. diff --git a/java/ql/lib/change-notes/2026-03-28-tainted-arithmetic-bounds-check.md b/java/ql/lib/change-notes/2026-03-28-tainted-arithmetic-bounds-check.md deleted file mode 100644 index 0688815c822..00000000000 --- a/java/ql/lib/change-notes/2026-03-28-tainted-arithmetic-bounds-check.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* The `java/tainted-arithmetic` query no longer flags arithmetic expressions that are used directly as an operand of a comparison in `if`-condition bounds-checking patterns. For example, `if (off + len > array.length)` is now recognized as a bounds check rather than a potentially vulnerable computation, reducing false positives. diff --git a/java/ql/lib/change-notes/2026-04-04-sensitive-log-fp-reduction.md b/java/ql/lib/change-notes/2026-04-04-sensitive-log-fp-reduction.md new file mode 100644 index 00000000000..15fc811360b --- /dev/null +++ b/java/ql/lib/change-notes/2026-04-04-sensitive-log-fp-reduction.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* The `java/sensitive-log` query now excludes additional common variable naming patterns that do not hold sensitive data, reducing false positives. This includes pagination/iteration tokens (`nextToken`, `pageToken`, `continuationToken`), token metadata (`tokenType`, `tokenEndpoint`, `tokenCount`), and secret metadata (`secretName`, `secretId`, `secretVersion`). diff --git a/java/ql/lib/change-notes/2026-04-18-partial-path-traversal-fix.md b/java/ql/lib/change-notes/2026-04-18-partial-path-traversal-fix.md new file mode 100644 index 00000000000..8c15a346552 --- /dev/null +++ b/java/ql/lib/change-notes/2026-04-18-partial-path-traversal-fix.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* The `java/partial-path-traversal` and `java/partial-path-traversal-from-remote` queries now correctly recognize file separator appends using `+=`. diff --git a/java/ql/lib/change-notes/2026-03-27-add-ec-to-secure-algorithms.md b/java/ql/lib/change-notes/released/9.0.3.md similarity index 63% rename from java/ql/lib/change-notes/2026-03-27-add-ec-to-secure-algorithms.md rename to java/ql/lib/change-notes/released/9.0.3.md index ee53bedd417..828b5867f8b 100644 --- a/java/ql/lib/change-notes/2026-03-27-add-ec-to-secure-algorithms.md +++ b/java/ql/lib/change-notes/released/9.0.3.md @@ -1,5 +1,8 @@ ---- -category: minorAnalysis ---- +## 9.0.3 + +### Minor Analysis Improvements + +* The `java/tainted-arithmetic` query no longer flags arithmetic expressions that are used directly as an operand of a comparison in `if`-condition bounds-checking patterns. For example, `if (off + len > array.length)` is now recognized as a bounds check rather than a potentially vulnerable computation, reducing false positives. * The `java/potentially-weak-cryptographic-algorithm` query no longer flags Elliptic Curve algorithms (`EC`, `ECDSA`, `ECDH`, `EdDSA`, `Ed25519`, `Ed448`, `XDH`, `X25519`, `X448`), HMAC-based algorithms (`HMACSHA1`, `HMACSHA256`, `HMACSHA384`, `HMACSHA512`), or PBKDF2 key derivation as potentially insecure. These are modern, secure algorithms recommended by NIST and other standards bodies. This will reduce the number of false positives for this query. * The first argument of the method `getInstance` of `java.security.Signature` is now modeled as a sink for `java/potentially-weak-cryptographic-algorithm`, `java/weak-cryptographic-algorithm` and `java/rsa-without-oaep`. This will increase the number of alerts for these queries. +* Kotlin versions up to 2.3.20 are now supported. diff --git a/java/ql/lib/change-notes/released/9.0.4.md b/java/ql/lib/change-notes/released/9.0.4.md new file mode 100644 index 00000000000..a5499634951 --- /dev/null +++ b/java/ql/lib/change-notes/released/9.0.4.md @@ -0,0 +1,5 @@ +## 9.0.4 + +### Minor Analysis Improvements + +* The queries "Resolving XML external entity in user-controlled data" (`java/xxe`) and "Resolving XML external entity in user-controlled data from local source" (`java/xxe-local`) now recognize sinks in the Woodstox StAX library when `com.ctc.wstx.stax.WstxInputFactory` or `org.codehaus.stax2.XMLInputFactory2` are used directly. diff --git a/java/ql/lib/codeql-pack.release.yml b/java/ql/lib/codeql-pack.release.yml index 533351acdc9..4bbe4f75b58 100644 --- a/java/ql/lib/codeql-pack.release.yml +++ b/java/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 9.0.2 +lastReleaseVersion: 9.0.4 diff --git a/java/ql/lib/qlpack.yml b/java/ql/lib/qlpack.yml index fc1d2c13281..efa1d011ea5 100644 --- a/java/ql/lib/qlpack.yml +++ b/java/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-all -version: 9.0.3-dev +version: 9.0.5-dev groups: java dbscheme: config/semmlecode.dbscheme extractor: java diff --git a/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll b/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll index 1536c81aa08..a6a9347ca03 100644 --- a/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll +++ b/java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll @@ -4,13 +4,17 @@ * Provides classes and predicates for dealing with flow models specified * in data extensions and CSV format. * - * The CSV specification has the following columns: + * The extensible relations have the following columns: * - Sources: * `package; type; subtypes; name; signature; ext; output; kind; provenance` * - Sinks: * `package; type; subtypes; name; signature; ext; input; kind; provenance` * - Summaries: * `package; type; subtypes; name; signature; ext; input; output; kind; provenance` + * - Barriers: + * `package; type; subtypes; name; signature; ext; output; kind; provenance` + * - BarrierGuards: + * `package; type; subtypes; name; signature; ext; input; acceptingValue; kind; provenance` * - Neutrals: * `package; type; name; signature; kind; provenance` * A neutral is used to indicate that a callable is neutral with respect to flow (no summary), source (is not a source) or sink (is not a sink). @@ -69,14 +73,17 @@ * in the given range. The range is inclusive at both ends. * - "ReturnValue": Selects the return value of a call to the selected element. * - "Element": Selects the collection elements of the selected element. - * 8. The `kind` column is a tag that can be referenced from QL to determine to + * 8. The `acceptingValue` column of barrier guard models specifies the condition + * under which the guard blocks flow. It can be one of "true" or "false". In + * the future "no-exception", "not-zero", "null", "not-null" may be supported. + * 9. The `kind` column is a tag that can be referenced from QL to determine to * which classes the interpreted elements should be added. For example, for * sources "remote" indicates a default remote flow source, and for summaries * "taint" indicates a default additional taint step and "value" indicates a * globally applicable value-preserving step. For neutrals the kind can be `summary`, * `source` or `sink` to indicate that the neutral is neutral with respect to * flow (no summary), source (is not a source) or sink (is not a sink). - * 9. The `provenance` column is a tag to indicate the origin and verification of a model. + * 10. The `provenance` column is a tag to indicate the origin and verification of a model. * The format is {origin}-{verification} or just "manual" where the origin describes * the origin of the model and verification describes how the model has been verified. * Some examples are: @@ -358,11 +365,11 @@ module ModelValidation { result = "Unrecognized provenance description \"" + provenance + "\" in " + pred + " model." ) or - exists(string acceptingvalue | - barrierGuardModel(_, _, _, _, _, _, _, acceptingvalue, _, _, _) and - invalidAcceptingValue(acceptingvalue) and + exists(string acceptingValue | + barrierGuardModel(_, _, _, _, _, _, _, acceptingValue, _, _, _) and + invalidAcceptingValue(acceptingValue) and result = - "Unrecognized accepting value description \"" + acceptingvalue + + "Unrecognized accepting value description \"" + acceptingValue + "\" in barrier guard model." ) } @@ -583,13 +590,13 @@ private module Cached { private predicate barrierGuardChecks(Guard g, Expr e, GuardValue gv, TKindModelPair kmp) { exists( - SourceSinkInterpretationInput::InterpretNode n, AcceptingValue acceptingvalue, string kind, + SourceSinkInterpretationInput::InterpretNode n, AcceptingValue acceptingValue, string kind, string model | - isBarrierGuardNode(n, acceptingvalue, kind, model) and + isBarrierGuardNode(n, acceptingValue, kind, model) and n.asNode().asExpr() = e and kmp = TMkPair(kind, model) and - gv = convertAcceptingValue(acceptingvalue) + gv = convertAcceptingValue(acceptingValue) | g.(Call).getAnArgument() = e or g.(MethodCall).getQualifier() = e ) diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/ExternalFlowExtensions.qll b/java/ql/lib/semmle/code/java/dataflow/internal/ExternalFlowExtensions.qll index be474ad4535..3c6b003876d 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/ExternalFlowExtensions.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/ExternalFlowExtensions.qll @@ -35,7 +35,7 @@ extensible predicate barrierModel( */ extensible predicate barrierGuardModel( string package, string type, boolean subtypes, string name, string signature, string ext, - string input, string acceptingvalue, string kind, string provenance, QlBuiltins::ExtensionId madId + string input, string acceptingValue, string kind, string provenance, QlBuiltins::ExtensionId madId ); /** diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/FlowSummaryImpl.qll b/java/ql/lib/semmle/code/java/dataflow/internal/FlowSummaryImpl.qll index 64fa30c7d91..453b7ccae11 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/FlowSummaryImpl.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/FlowSummaryImpl.qll @@ -282,7 +282,7 @@ module SourceSinkInterpretationInput implements } predicate barrierGuardElement( - Element e, string input, Public::AcceptingValue acceptingvalue, string kind, + Element e, string input, Public::AcceptingValue acceptingValue, string kind, Public::Provenance provenance, string model ) { exists( @@ -290,7 +290,7 @@ module SourceSinkInterpretationInput implements SourceOrSinkElement baseBarrier, string originalInput | barrierGuardModel(namespace, type, subtypes, name, signature, ext, originalInput, - acceptingvalue, kind, provenance, model) and + acceptingValue, kind, provenance, model) and baseBarrier = interpretElement(namespace, type, subtypes, name, signature, ext, _) and ( e = baseBarrier and input = originalInput diff --git a/java/ql/lib/semmle/code/java/security/PartialPathTraversal.qll b/java/ql/lib/semmle/code/java/security/PartialPathTraversal.qll index 63ffb62ef63..a7b0c50b082 100644 --- a/java/ql/lib/semmle/code/java/security/PartialPathTraversal.qll +++ b/java/ql/lib/semmle/code/java/security/PartialPathTraversal.qll @@ -40,8 +40,11 @@ private class CharacterLiteralFileSeparatorExpr extends FileSeparatorExpr, Chara CharacterLiteralFileSeparatorExpr() { this.getValue() = "/" or this.getValue() = "\\" } } -private class FileSeparatorAppend extends AddExpr { - FileSeparatorAppend() { this.getRightOperand() instanceof FileSeparatorExpr } +private class FileSeparatorAppend extends BinaryExpr { + FileSeparatorAppend() { + this.(AddExpr).getRightOperand() instanceof FileSeparatorExpr or + this.(AssignAddExpr).getRightOperand() instanceof FileSeparatorExpr + } } private predicate isSafe(Expr expr) { diff --git a/java/ql/lib/semmle/code/java/security/SensitiveActions.qll b/java/ql/lib/semmle/code/java/security/SensitiveActions.qll index 6733219a8d5..86ff96c1917 100644 --- a/java/ql/lib/semmle/code/java/security/SensitiveActions.qll +++ b/java/ql/lib/semmle/code/java/security/SensitiveActions.qll @@ -40,14 +40,26 @@ string getCommonSensitiveInfoRegex() { /** * Gets a regular expression for matching common names of variables that - * indicate the value being held does not contains sensitive information, + * indicate the value being held does not contain sensitive information, * but is a false positive for `getCommonSensitiveInfoRegex`. * * - "tokenizer" is often used for java.util.StringTokenizer. * - "tokenImage" appears in parser code generated by JavaCC. + * - Pagination/iteration tokens: "nextToken" (AWS SDK), "pageToken" (GCP), etc. + * - Token metadata: "tokenType" (OAuth), "tokenEndpoint" (OIDC), "tokenCount", etc. + * - Secret metadata: "secretName" (K8s/AWS), "secretId" (Azure), "secretVersion", etc. */ string getCommonSensitiveInfoFPRegex() { - result = "(?i).*(null|tokenizer).*" or result = "tokenImage" + result = + [ + "(?i).*(null|tokenizer).*", "tokenImage", + // Pagination/iteration tokens (e.g., AWS SDK pagination cursors, parser tokens) + "(?i).*(next|previous|current|page|continuation|cursor)tokens?.*", + // Token metadata/infrastructure (token followed by a non-value descriptor) + "(?i).*tokens?(type|kind|count|index|position|length|offset|endpoint|url|uri|bucket|rate|delimiter|separator|format|number|name|id|prefix|suffix|pattern|class|style).*", + // Secret metadata (secret followed by a non-value descriptor) + "(?i).*secrets?(name|id|version|ref|arn|path|type|label|description|manager|client|provider|store|factory|properties).*" + ] } /** An expression that might contain sensitive data. */ diff --git a/java/ql/lib/semmle/code/java/security/XmlParsers.qll b/java/ql/lib/semmle/code/java/security/XmlParsers.qll index bd1520034eb..602076996a7 100644 --- a/java/ql/lib/semmle/code/java/security/XmlParsers.qll +++ b/java/ql/lib/semmle/code/java/security/XmlParsers.qll @@ -179,12 +179,29 @@ class XmlInputFactory extends RefType { XmlInputFactory() { this.hasQualifiedName(javaxOrJakarta() + ".xml.stream", "XMLInputFactory") } } -/** A call to `XMLInputFactory.createXMLStreamReader`. */ +/** + * The class `com.ctc.wstx.stax.WstxInputFactory` or its abstract supertype + * `org.codehaus.stax2.XMLInputFactory2` from the Woodstox StAX library. + */ +class WstxInputFactory extends RefType { + WstxInputFactory() { + this.hasQualifiedName("com.ctc.wstx.stax", "WstxInputFactory") or + this.hasQualifiedName("org.codehaus.stax2", "XMLInputFactory2") + } +} + +/** + * A call to `XMLInputFactory.createXMLStreamReader` or the equivalent method on the + * Woodstox `WstxInputFactory`. + */ class XmlInputFactoryStreamReader extends XmlParserCall { XmlInputFactoryStreamReader() { exists(Method m | this.getMethod() = m and - m.getDeclaringType() instanceof XmlInputFactory and + ( + m.getDeclaringType() instanceof XmlInputFactory or + m.getDeclaringType() instanceof WstxInputFactory + ) and m.hasName("createXMLStreamReader") ) } @@ -212,7 +229,10 @@ class XmlInputFactoryEventReader extends XmlParserCall { XmlInputFactoryEventReader() { exists(Method m | this.getMethod() = m and - m.getDeclaringType() instanceof XmlInputFactory and + ( + m.getDeclaringType() instanceof XmlInputFactory or + m.getDeclaringType() instanceof WstxInputFactory + ) and m.hasName("createXMLEventReader") ) } @@ -235,7 +255,10 @@ class XmlInputFactoryConfig extends ParserConfig { XmlInputFactoryConfig() { exists(Method m | m = this.getMethod() and - m.getDeclaringType() instanceof XmlInputFactory and + ( + m.getDeclaringType() instanceof XmlInputFactory or + m.getDeclaringType() instanceof WstxInputFactory + ) and m.hasName("setProperty") ) } diff --git a/java/ql/src/CHANGELOG.md b/java/ql/src/CHANGELOG.md index 8d9ce4a75b4..1b5d2bdad8a 100644 --- a/java/ql/src/CHANGELOG.md +++ b/java/ql/src/CHANGELOG.md @@ -1,3 +1,14 @@ +## 1.11.1 + +No user-facing changes. + +## 1.11.0 + +### Query Metadata Changes + +* The `@security-severity` metadata of `java/log-injection` has been reduced from 7.8 (high) to 6.1 (medium). +* The `@security-severity` metadata of `java/android/webview-addjavascriptinterface`, `java/android/websettings-javascript-enabled` and `java/xss` has been increased from 6.1 (medium) to 7.8 (high). + ## 1.10.11 No user-facing changes. diff --git a/java/ql/src/change-notes/2026-03-13-adjust-xss-and-log-injection-severity.md b/java/ql/src/change-notes/released/1.11.0.md similarity index 88% rename from java/ql/src/change-notes/2026-03-13-adjust-xss-and-log-injection-severity.md rename to java/ql/src/change-notes/released/1.11.0.md index fa1288af16e..0be4b0481d6 100644 --- a/java/ql/src/change-notes/2026-03-13-adjust-xss-and-log-injection-severity.md +++ b/java/ql/src/change-notes/released/1.11.0.md @@ -1,5 +1,6 @@ ---- -category: queryMetadata ---- +## 1.11.0 + +### Query Metadata Changes + * The `@security-severity` metadata of `java/log-injection` has been reduced from 7.8 (high) to 6.1 (medium). * The `@security-severity` metadata of `java/android/webview-addjavascriptinterface`, `java/android/websettings-javascript-enabled` and `java/xss` has been increased from 6.1 (medium) to 7.8 (high). diff --git a/java/ql/src/change-notes/released/1.11.1.md b/java/ql/src/change-notes/released/1.11.1.md new file mode 100644 index 00000000000..f5047685223 --- /dev/null +++ b/java/ql/src/change-notes/released/1.11.1.md @@ -0,0 +1,3 @@ +## 1.11.1 + +No user-facing changes. diff --git a/java/ql/src/codeql-pack.release.yml b/java/ql/src/codeql-pack.release.yml index d267e07fb66..4ae123153bf 100644 --- a/java/ql/src/codeql-pack.release.yml +++ b/java/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.10.11 +lastReleaseVersion: 1.11.1 diff --git a/java/ql/src/qlpack.yml b/java/ql/src/qlpack.yml index 78372a6ec85..2f2233460ba 100644 --- a/java/ql/src/qlpack.yml +++ b/java/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-queries -version: 1.10.12-dev +version: 1.11.2-dev groups: - java - queries diff --git a/java/ql/test-kotlin1/library-tests/java-kotlin-collection-type-generic-methods/test.expected b/java/ql/test-kotlin1/library-tests/java-kotlin-collection-type-generic-methods/test.expected index a56980d10ac..a55e73e283f 100644 --- a/java/ql/test-kotlin1/library-tests/java-kotlin-collection-type-generic-methods/test.expected +++ b/java/ql/test-kotlin1/library-tests/java-kotlin-collection-type-generic-methods/test.expected @@ -196,6 +196,8 @@ methodWithDuplicate | List | listIterator | int | | List | of | E | | List | of | E[] | +| List | ofLazy | IntFunction | +| List | ofLazy | int | | List | remove | Object | | List | remove | int | | List | removeAll | Collection | @@ -222,6 +224,8 @@ methodWithDuplicate | List | listIterator | int | | List | of | E | | List | of | E[] | +| List | ofLazy | IntFunction | +| List | ofLazy | int | | List | remove | Object | | List | remove | int | | List | removeAll | Collection | @@ -248,6 +252,8 @@ methodWithDuplicate | List | listIterator | int | | List | of | E | | List | of | E[] | +| List | ofLazy | IntFunction | +| List | ofLazy | int | | List | remove | Object | | List | remove | int | | List | removeAll | Collection | @@ -280,6 +286,8 @@ methodWithDuplicate | Map | of | K | | Map | of | V | | Map | ofEntries | Entry[] | +| Map | ofLazy | Function | +| Map | ofLazy | Set | | Map | put | K | | Map | put | V | | Map | putAll | Map | @@ -310,6 +318,8 @@ methodWithDuplicate | Map | of | K | | Map | of | V | | Map | ofEntries | Entry[] | +| Map | ofLazy | Function | +| Map | ofLazy | Set | | Map | put | Identity | | Map | put | Object | | Map | putAll | Map | @@ -341,6 +351,8 @@ methodWithDuplicate | Map | of | K | | Map | of | V | | Map | ofEntries | Entry[] | +| Map | ofLazy | Function | +| Map | ofLazy | Set | | Map | put | K | | Map | put | V | | Map | putAll | Map | @@ -370,6 +382,8 @@ methodWithDuplicate | Map | of | K | | Map | of | V | | Map | ofEntries | Entry[] | +| Map | ofLazy | Function | +| Map | ofLazy | Set | | Map | put | Object | | Map | putAll | Map | | Map | putIfAbsent | Object | @@ -397,6 +411,8 @@ methodWithDuplicate | Map | of | K | | Map | of | V | | Map | ofEntries | Entry[] | +| Map | ofLazy | Function | +| Map | ofLazy | Set | | Map | put | String | | Map | putAll | Map | | Map | putIfAbsent | String | diff --git a/java/ql/test-kotlin2/library-tests/java-kotlin-collection-type-generic-methods/test.expected b/java/ql/test-kotlin2/library-tests/java-kotlin-collection-type-generic-methods/test.expected index 2495c1fc157..3237c89c8c7 100644 --- a/java/ql/test-kotlin2/library-tests/java-kotlin-collection-type-generic-methods/test.expected +++ b/java/ql/test-kotlin2/library-tests/java-kotlin-collection-type-generic-methods/test.expected @@ -191,6 +191,8 @@ methodWithDuplicate | List | listIterator | int | | List | of | E | | List | of | E[] | +| List | ofLazy | IntFunction | +| List | ofLazy | int | | List | remove | Object | | List | remove | int | | List | removeAll | Collection | @@ -216,6 +218,8 @@ methodWithDuplicate | List | listIterator | int | | List | of | E | | List | of | E[] | +| List | ofLazy | IntFunction | +| List | ofLazy | int | | List | remove | Object | | List | remove | int | | List | removeAll | Collection | @@ -242,6 +246,8 @@ methodWithDuplicate | List | listIterator | int | | List | of | E | | List | of | E[] | +| List | ofLazy | IntFunction | +| List | ofLazy | int | | List | remove | Object | | List | remove | int | | List | removeAll | Collection | @@ -274,6 +280,8 @@ methodWithDuplicate | Map | of | K | | Map | of | V | | Map | ofEntries | Entry[] | +| Map | ofLazy | Function | +| Map | ofLazy | Set | | Map | put | K | | Map | put | V | | Map | putAll | Map | @@ -303,6 +311,8 @@ methodWithDuplicate | Map | of | K | | Map | of | V | | Map | ofEntries | Entry[] | +| Map | ofLazy | Function | +| Map | ofLazy | Set | | Map | put | Identity | | Map | put | Object | | Map | putAll | Map | @@ -333,6 +343,8 @@ methodWithDuplicate | Map | of | K | | Map | of | V | | Map | ofEntries | Entry[] | +| Map | ofLazy | Function | +| Map | ofLazy | Set | | Map | put | K | | Map | put | V | | Map | putAll | Map | @@ -361,6 +373,8 @@ methodWithDuplicate | Map | of | K | | Map | of | V | | Map | ofEntries | Entry[] | +| Map | ofLazy | Function | +| Map | ofLazy | Set | | Map | put | Object | | Map | putAll | Map | | Map | putIfAbsent | Object | @@ -388,6 +402,8 @@ methodWithDuplicate | Map | of | K | | Map | of | V | | Map | ofEntries | Entry[] | +| Map | ofLazy | Function | +| Map | ofLazy | Set | | Map | put | String | | Map | putAll | Map | | Map | putIfAbsent | String | diff --git a/java/ql/test-kotlin2/library-tests/reflection/reflection.expected b/java/ql/test-kotlin2/library-tests/reflection/reflection.expected index b5de2b1adea..2c0bee11a9e 100644 --- a/java/ql/test-kotlin2/library-tests/reflection/reflection.expected +++ b/java/ql/test-kotlin2/library-tests/reflection/reflection.expected @@ -266,6 +266,7 @@ compGenerated | file:///AccessFlag$Location.class:0:0:0:0 | getEntries | Default property accessor | | file:///AccessFlag.class:0:0:0:0 | getEntries | Default property accessor | | file:///AccessMode.class:0:0:0:0 | getEntries | Default property accessor | +| file:///ByteOrder.class:0:0:0:0 | getEntries | Default property accessor | | file:///CharProgression.class:0:0:0:0 | forEach | Forwarder for a Kotlin class inheriting an interface default method | | file:///CharProgression.class:0:0:0:0 | spliterator | Forwarder for a Kotlin class inheriting an interface default method | | file:///CharRange.class:0:0:0:0 | forEach | Forwarder for a Kotlin class inheriting an interface default method | diff --git a/java/ql/test/library-tests/compact-source-files/CompactSourceAnalysis.expected b/java/ql/test/library-tests/compact-source-files/CompactSourceAnalysis.expected index 05db00aa26d..0e1dd647e41 100644 --- a/java/ql/test/library-tests/compact-source-files/CompactSourceAnalysis.expected +++ b/java/ql/test/library-tests/compact-source-files/CompactSourceAnalysis.expected @@ -1 +1 @@ -| Test.java:0:0:0:0 | Test | Test.java:1:1:1:1 | Test | Compact source file 'Test' contains implicit class 'Test' | +| Test.java:0:0:0:0 | Test | Test.java:1:1:29:1 | Test | Compact source file 'Test' contains implicit class 'Test' | diff --git a/java/ql/test/library-tests/compact-source-files/ImplicitClassDetection.expected b/java/ql/test/library-tests/compact-source-files/ImplicitClassDetection.expected index 61dcdd8a17f..9bfaaecbbcb 100644 --- a/java/ql/test/library-tests/compact-source-files/ImplicitClassDetection.expected +++ b/java/ql/test/library-tests/compact-source-files/ImplicitClassDetection.expected @@ -1,2 +1,2 @@ -| Test.java:1:1:1:1 | Test | implicit | +| Test.java:1:1:29:1 | Test | implicit | | Test.java:25:7:25:16 | NotCompact | not implicit | diff --git a/java/ql/test/library-tests/compact-source-files/MethodInCompactSource.expected b/java/ql/test/library-tests/compact-source-files/MethodInCompactSource.expected index 3c7b45f500e..d4b41c61441 100644 --- a/java/ql/test/library-tests/compact-source-files/MethodInCompactSource.expected +++ b/java/ql/test/library-tests/compact-source-files/MethodInCompactSource.expected @@ -1,5 +1,5 @@ -| Test.java:1:1:1:1 | | in compact source | -| Test.java:1:1:1:1 | | in compact source | +| Test.java:1:1:29:1 | | in compact source | +| Test.java:1:1:29:1 | | in compact source | | Test.java:5:6:5:9 | main | in compact source | | Test.java:11:6:11:16 | processData | in compact source | | Test.java:16:14:16:31 | updatePrivateField | in compact source | diff --git a/java/ql/test/library-tests/compact-source-files/options b/java/ql/test/library-tests/compact-source-files/options index db1dc01e53b..3d6e630aa73 100644 --- a/java/ql/test/library-tests/compact-source-files/options +++ b/java/ql/test/library-tests/compact-source-files/options @@ -1 +1 @@ -//semmle-extractor-options: --javac-args --release 25 --enable-preview +//semmle-extractor-options: --javac-args --release 25 diff --git a/java/ql/test/library-tests/dataflow/kdf/options b/java/ql/test/library-tests/dataflow/kdf/options index f4edc64c017..801b81e0752 100644 --- a/java/ql/test/library-tests/dataflow/kdf/options +++ b/java/ql/test/library-tests/dataflow/kdf/options @@ -1 +1 @@ -//semmle-extractor-options: --javac-args --enable-preview --release 25 \ No newline at end of file +//semmle-extractor-options: --javac-args --release 25 \ No newline at end of file diff --git a/java/ql/test/library-tests/dataflow/scoped-values/options b/java/ql/test/library-tests/dataflow/scoped-values/options index c793109355a..2d42b8d2cd8 100644 --- a/java/ql/test/library-tests/dataflow/scoped-values/options +++ b/java/ql/test/library-tests/dataflow/scoped-values/options @@ -1 +1 @@ -//semmle-extractor-options: --javac-args -source 25 -target 25 --enable-preview \ No newline at end of file +//semmle-extractor-options: --javac-args -source 25 -target 25 \ No newline at end of file diff --git a/java/ql/test/library-tests/errorexpr/Test.java b/java/ql/test/library-tests/errorexpr/Test.java index af314e5ced6..068690e7bb2 100644 --- a/java/ql/test/library-tests/errorexpr/Test.java +++ b/java/ql/test/library-tests/errorexpr/Test.java @@ -13,6 +13,5 @@ public class Test { } // Diagnostic Matches: Erroneous node in tree: (ERROR) -// Diagnostic Matches: In file Test.java:8:15 no end location for JCMethodInvocation : yield(x) // Diagnostic Matches: 1 errors during annotation processing // Diagnostic Matches: Unknown or erroneous type for expression of kind ErrorExpr diff --git a/java/ql/test/library-tests/flexible-constructors/options b/java/ql/test/library-tests/flexible-constructors/options index db1dc01e53b..3d6e630aa73 100644 --- a/java/ql/test/library-tests/flexible-constructors/options +++ b/java/ql/test/library-tests/flexible-constructors/options @@ -1 +1 @@ -//semmle-extractor-options: --javac-args --release 25 --enable-preview +//semmle-extractor-options: --javac-args --release 25 diff --git a/java/ql/test/library-tests/module-import-declarations/options b/java/ql/test/library-tests/module-import-declarations/options index b510fdce0df..801b81e0752 100644 --- a/java/ql/test/library-tests/module-import-declarations/options +++ b/java/ql/test/library-tests/module-import-declarations/options @@ -1 +1 @@ -//semmle-extractor-options: --javac-args --release 25 --enable-preview \ No newline at end of file +//semmle-extractor-options: --javac-args --release 25 \ No newline at end of file diff --git a/java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversal.qlref b/java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversal.qlref index 431556c90af..9d7e47fca70 100644 --- a/java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversal.qlref +++ b/java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversal.qlref @@ -1 +1,4 @@ -Security/CWE/CWE-023/PartialPathTraversal.ql \ No newline at end of file +query: Security/CWE/CWE-023/PartialPathTraversal.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql diff --git a/java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversalFromRemoteTest.expected b/java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversalFromRemoteTest.expected index f2af01542ee..156adced6b0 100644 --- a/java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversalFromRemoteTest.expected +++ b/java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversalFromRemoteTest.expected @@ -1,19 +1,19 @@ #select -| PartialPathTraversalTest.java:13:14:13:37 | getCanonicalPath(...) | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:13:14:13:37 | getCanonicalPath(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | user-supplied data | -| PartialPathTraversalTest.java:20:10:20:33 | getCanonicalPath(...) | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:20:10:20:33 | getCanonicalPath(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | user-supplied data | -| PartialPathTraversalTest.java:32:14:32:37 | getCanonicalPath(...) | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:32:14:32:37 | getCanonicalPath(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | user-supplied data | -| PartialPathTraversalTest.java:38:14:38:37 | getCanonicalPath(...) | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:38:14:38:37 | getCanonicalPath(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | user-supplied data | -| PartialPathTraversalTest.java:45:14:45:26 | canonicalPath | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:45:14:45:26 | canonicalPath | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | user-supplied data | -| PartialPathTraversalTest.java:52:14:52:26 | canonicalPath | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:52:14:52:26 | canonicalPath | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | user-supplied data | -| PartialPathTraversalTest.java:56:14:56:27 | canonicalPath2 | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:56:14:56:27 | canonicalPath2 | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | user-supplied data | -| PartialPathTraversalTest.java:64:14:64:26 | canonicalPath | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:64:14:64:26 | canonicalPath | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | user-supplied data | -| PartialPathTraversalTest.java:67:14:67:27 | canonicalPath2 | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:67:14:67:27 | canonicalPath2 | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | user-supplied data | -| PartialPathTraversalTest.java:97:14:97:37 | getCanonicalPath(...) | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:97:14:97:37 | getCanonicalPath(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | user-supplied data | -| PartialPathTraversalTest.java:105:14:105:37 | getCanonicalPath(...) | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:105:14:105:37 | getCanonicalPath(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | user-supplied data | -| PartialPathTraversalTest.java:108:14:108:37 | getCanonicalPath(...) | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:108:14:108:37 | getCanonicalPath(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | user-supplied data | -| PartialPathTraversalTest.java:176:14:176:37 | getCanonicalPath(...) | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:176:14:176:37 | getCanonicalPath(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | user-supplied data | -| PartialPathTraversalTest.java:194:18:194:47 | getCanonicalPath(...) | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:194:18:194:47 | getCanonicalPath(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | user-supplied data | -| PartialPathTraversalTest.java:212:14:212:26 | canonicalPath | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:212:14:212:26 | canonicalPath | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | user-supplied data | +| PartialPathTraversalTest.java:13:14:13:37 | getCanonicalPath(...) | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:13:14:13:37 | getCanonicalPath(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | user-supplied data | +| PartialPathTraversalTest.java:20:10:20:33 | getCanonicalPath(...) | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:20:10:20:33 | getCanonicalPath(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | user-supplied data | +| PartialPathTraversalTest.java:32:14:32:37 | getCanonicalPath(...) | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:32:14:32:37 | getCanonicalPath(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | user-supplied data | +| PartialPathTraversalTest.java:38:14:38:37 | getCanonicalPath(...) | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:38:14:38:37 | getCanonicalPath(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | user-supplied data | +| PartialPathTraversalTest.java:45:14:45:26 | canonicalPath | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:45:14:45:26 | canonicalPath | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | user-supplied data | +| PartialPathTraversalTest.java:52:14:52:26 | canonicalPath | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:52:14:52:26 | canonicalPath | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | user-supplied data | +| PartialPathTraversalTest.java:56:14:56:27 | canonicalPath2 | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:56:14:56:27 | canonicalPath2 | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | user-supplied data | +| PartialPathTraversalTest.java:64:14:64:26 | canonicalPath | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:64:14:64:26 | canonicalPath | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | user-supplied data | +| PartialPathTraversalTest.java:67:14:67:27 | canonicalPath2 | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:67:14:67:27 | canonicalPath2 | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | user-supplied data | +| PartialPathTraversalTest.java:97:14:97:37 | getCanonicalPath(...) | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:97:14:97:37 | getCanonicalPath(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | user-supplied data | +| PartialPathTraversalTest.java:105:14:105:37 | getCanonicalPath(...) | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:105:14:105:37 | getCanonicalPath(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | user-supplied data | +| PartialPathTraversalTest.java:108:14:108:37 | getCanonicalPath(...) | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:108:14:108:37 | getCanonicalPath(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | user-supplied data | +| PartialPathTraversalTest.java:176:14:176:37 | getCanonicalPath(...) | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:176:14:176:37 | getCanonicalPath(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | user-supplied data | +| PartialPathTraversalTest.java:194:18:194:47 | getCanonicalPath(...) | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:194:18:194:47 | getCanonicalPath(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | user-supplied data | +| PartialPathTraversalTest.java:212:14:212:26 | canonicalPath | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:212:14:212:26 | canonicalPath | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | user-supplied data | edges | PartialPathTraversalTest.java:13:14:13:18 | dir(...) : File | PartialPathTraversalTest.java:13:14:13:37 | getCanonicalPath(...) | provenance | MaD:6 | | PartialPathTraversalTest.java:20:10:20:14 | dir(...) : File | PartialPathTraversalTest.java:20:10:20:33 | getCanonicalPath(...) | provenance | MaD:6 | @@ -43,30 +43,30 @@ edges | PartialPathTraversalTest.java:194:18:194:28 | encodedFile : File | PartialPathTraversalTest.java:194:18:194:47 | getCanonicalPath(...) | provenance | MaD:6 | | PartialPathTraversalTest.java:211:46:211:50 | dir(...) : File | PartialPathTraversalTest.java:211:46:211:69 | getCanonicalPath(...) : String | provenance | MaD:6 | | PartialPathTraversalTest.java:211:46:211:69 | getCanonicalPath(...) : String | PartialPathTraversalTest.java:212:14:212:26 | canonicalPath | provenance | | -| PartialPathTraversalTest.java:252:45:252:117 | new BufferedReader(...) : BufferedReader | PartialPathTraversalTest.java:253:31:253:44 | filenameReader : BufferedReader | provenance | | -| PartialPathTraversalTest.java:252:64:252:116 | new InputStreamReader(...) : InputStreamReader | PartialPathTraversalTest.java:252:45:252:117 | new BufferedReader(...) : BufferedReader | provenance | MaD:2 | -| PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:252:64:252:116 | new InputStreamReader(...) : InputStreamReader | provenance | Src:MaD:1 MaD:7 | -| PartialPathTraversalTest.java:253:31:253:44 | filenameReader : BufferedReader | PartialPathTraversalTest.java:253:31:253:55 | readLine(...) : String | provenance | MaD:3 | -| PartialPathTraversalTest.java:253:31:253:55 | readLine(...) : String | PartialPathTraversalTest.java:254:29:254:36 | filename : String | provenance | | -| PartialPathTraversalTest.java:254:20:254:37 | new File(...) : File | PartialPathTraversalTest.java:13:14:13:18 | dir(...) : File | provenance | | -| PartialPathTraversalTest.java:254:20:254:37 | new File(...) : File | PartialPathTraversalTest.java:20:10:20:14 | dir(...) : File | provenance | | -| PartialPathTraversalTest.java:254:20:254:37 | new File(...) : File | PartialPathTraversalTest.java:32:14:32:18 | dir(...) : File | provenance | | -| PartialPathTraversalTest.java:254:20:254:37 | new File(...) : File | PartialPathTraversalTest.java:38:14:38:18 | dir(...) : File | provenance | | -| PartialPathTraversalTest.java:254:20:254:37 | new File(...) : File | PartialPathTraversalTest.java:44:32:44:36 | dir(...) : File | provenance | | -| PartialPathTraversalTest.java:254:20:254:37 | new File(...) : File | PartialPathTraversalTest.java:51:32:51:36 | dir(...) : File | provenance | | -| PartialPathTraversalTest.java:254:20:254:37 | new File(...) : File | PartialPathTraversalTest.java:55:33:55:37 | dir(...) : File | provenance | | -| PartialPathTraversalTest.java:254:20:254:37 | new File(...) : File | PartialPathTraversalTest.java:62:32:62:36 | dir(...) : File | provenance | | -| PartialPathTraversalTest.java:254:20:254:37 | new File(...) : File | PartialPathTraversalTest.java:63:33:63:37 | dir(...) : File | provenance | | -| PartialPathTraversalTest.java:254:20:254:37 | new File(...) : File | PartialPathTraversalTest.java:97:14:97:18 | dir(...) : File | provenance | | -| PartialPathTraversalTest.java:254:20:254:37 | new File(...) : File | PartialPathTraversalTest.java:105:14:105:18 | dir(...) : File | provenance | | -| PartialPathTraversalTest.java:254:20:254:37 | new File(...) : File | PartialPathTraversalTest.java:108:14:108:18 | dir(...) : File | provenance | | -| PartialPathTraversalTest.java:254:20:254:37 | new File(...) : File | PartialPathTraversalTest.java:176:14:176:18 | dir(...) : File | provenance | | -| PartialPathTraversalTest.java:254:20:254:37 | new File(...) : File | PartialPathTraversalTest.java:211:46:211:50 | dir(...) : File | provenance | | -| PartialPathTraversalTest.java:254:20:254:37 | new File(...) : File | PartialPathTraversalTest.java:261:16:261:20 | dir(...) : File | provenance | | -| PartialPathTraversalTest.java:254:29:254:36 | filename : String | PartialPathTraversalTest.java:254:20:254:37 | new File(...) : File | provenance | MaD:4 | -| PartialPathTraversalTest.java:261:16:261:20 | dir(...) : File | PartialPathTraversalTest.java:261:16:261:38 | getAbsolutePath(...) : String | provenance | MaD:5 | -| PartialPathTraversalTest.java:261:16:261:38 | getAbsolutePath(...) : String | PartialPathTraversalTest.java:261:16:261:60 | split(...) : String[] | provenance | MaD:10 | -| PartialPathTraversalTest.java:261:16:261:60 | split(...) : String[] | PartialPathTraversalTest.java:186:25:186:30 | path(...) : String[] | provenance | | +| PartialPathTraversalTest.java:260:45:260:117 | new BufferedReader(...) : BufferedReader | PartialPathTraversalTest.java:261:31:261:44 | filenameReader : BufferedReader | provenance | | +| PartialPathTraversalTest.java:260:64:260:116 | new InputStreamReader(...) : InputStreamReader | PartialPathTraversalTest.java:260:45:260:117 | new BufferedReader(...) : BufferedReader | provenance | MaD:2 | +| PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:260:64:260:116 | new InputStreamReader(...) : InputStreamReader | provenance | Src:MaD:1 MaD:7 | +| PartialPathTraversalTest.java:261:31:261:44 | filenameReader : BufferedReader | PartialPathTraversalTest.java:261:31:261:55 | readLine(...) : String | provenance | MaD:3 | +| PartialPathTraversalTest.java:261:31:261:55 | readLine(...) : String | PartialPathTraversalTest.java:262:29:262:36 | filename : String | provenance | | +| PartialPathTraversalTest.java:262:20:262:37 | new File(...) : File | PartialPathTraversalTest.java:13:14:13:18 | dir(...) : File | provenance | | +| PartialPathTraversalTest.java:262:20:262:37 | new File(...) : File | PartialPathTraversalTest.java:20:10:20:14 | dir(...) : File | provenance | | +| PartialPathTraversalTest.java:262:20:262:37 | new File(...) : File | PartialPathTraversalTest.java:32:14:32:18 | dir(...) : File | provenance | | +| PartialPathTraversalTest.java:262:20:262:37 | new File(...) : File | PartialPathTraversalTest.java:38:14:38:18 | dir(...) : File | provenance | | +| PartialPathTraversalTest.java:262:20:262:37 | new File(...) : File | PartialPathTraversalTest.java:44:32:44:36 | dir(...) : File | provenance | | +| PartialPathTraversalTest.java:262:20:262:37 | new File(...) : File | PartialPathTraversalTest.java:51:32:51:36 | dir(...) : File | provenance | | +| PartialPathTraversalTest.java:262:20:262:37 | new File(...) : File | PartialPathTraversalTest.java:55:33:55:37 | dir(...) : File | provenance | | +| PartialPathTraversalTest.java:262:20:262:37 | new File(...) : File | PartialPathTraversalTest.java:62:32:62:36 | dir(...) : File | provenance | | +| PartialPathTraversalTest.java:262:20:262:37 | new File(...) : File | PartialPathTraversalTest.java:63:33:63:37 | dir(...) : File | provenance | | +| PartialPathTraversalTest.java:262:20:262:37 | new File(...) : File | PartialPathTraversalTest.java:97:14:97:18 | dir(...) : File | provenance | | +| PartialPathTraversalTest.java:262:20:262:37 | new File(...) : File | PartialPathTraversalTest.java:105:14:105:18 | dir(...) : File | provenance | | +| PartialPathTraversalTest.java:262:20:262:37 | new File(...) : File | PartialPathTraversalTest.java:108:14:108:18 | dir(...) : File | provenance | | +| PartialPathTraversalTest.java:262:20:262:37 | new File(...) : File | PartialPathTraversalTest.java:176:14:176:18 | dir(...) : File | provenance | | +| PartialPathTraversalTest.java:262:20:262:37 | new File(...) : File | PartialPathTraversalTest.java:211:46:211:50 | dir(...) : File | provenance | | +| PartialPathTraversalTest.java:262:20:262:37 | new File(...) : File | PartialPathTraversalTest.java:269:16:269:20 | dir(...) : File | provenance | | +| PartialPathTraversalTest.java:262:29:262:36 | filename : String | PartialPathTraversalTest.java:262:20:262:37 | new File(...) : File | provenance | MaD:4 | +| PartialPathTraversalTest.java:269:16:269:20 | dir(...) : File | PartialPathTraversalTest.java:269:16:269:38 | getAbsolutePath(...) : String | provenance | MaD:5 | +| PartialPathTraversalTest.java:269:16:269:38 | getAbsolutePath(...) : String | PartialPathTraversalTest.java:269:16:269:60 | split(...) : String[] | provenance | MaD:10 | +| PartialPathTraversalTest.java:269:16:269:60 | split(...) : String[] | PartialPathTraversalTest.java:186:25:186:30 | path(...) : String[] | provenance | | models | 1 | Source: java.net; Socket; false; getInputStream; (); ; ReturnValue; remote; manual | | 2 | Summary: java.io; BufferedReader; false; BufferedReader; ; ; Argument[0]; Argument[this]; taint; manual | @@ -122,14 +122,14 @@ nodes | PartialPathTraversalTest.java:211:46:211:50 | dir(...) : File | semmle.label | dir(...) : File | | PartialPathTraversalTest.java:211:46:211:69 | getCanonicalPath(...) : String | semmle.label | getCanonicalPath(...) : String | | PartialPathTraversalTest.java:212:14:212:26 | canonicalPath | semmle.label | canonicalPath | -| PartialPathTraversalTest.java:252:45:252:117 | new BufferedReader(...) : BufferedReader | semmle.label | new BufferedReader(...) : BufferedReader | -| PartialPathTraversalTest.java:252:64:252:116 | new InputStreamReader(...) : InputStreamReader | semmle.label | new InputStreamReader(...) : InputStreamReader | -| PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | -| PartialPathTraversalTest.java:253:31:253:44 | filenameReader : BufferedReader | semmle.label | filenameReader : BufferedReader | -| PartialPathTraversalTest.java:253:31:253:55 | readLine(...) : String | semmle.label | readLine(...) : String | -| PartialPathTraversalTest.java:254:20:254:37 | new File(...) : File | semmle.label | new File(...) : File | -| PartialPathTraversalTest.java:254:29:254:36 | filename : String | semmle.label | filename : String | -| PartialPathTraversalTest.java:261:16:261:20 | dir(...) : File | semmle.label | dir(...) : File | -| PartialPathTraversalTest.java:261:16:261:38 | getAbsolutePath(...) : String | semmle.label | getAbsolutePath(...) : String | -| PartialPathTraversalTest.java:261:16:261:60 | split(...) : String[] | semmle.label | split(...) : String[] | +| PartialPathTraversalTest.java:260:45:260:117 | new BufferedReader(...) : BufferedReader | semmle.label | new BufferedReader(...) : BufferedReader | +| PartialPathTraversalTest.java:260:64:260:116 | new InputStreamReader(...) : InputStreamReader | semmle.label | new InputStreamReader(...) : InputStreamReader | +| PartialPathTraversalTest.java:260:86:260:106 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| PartialPathTraversalTest.java:261:31:261:44 | filenameReader : BufferedReader | semmle.label | filenameReader : BufferedReader | +| PartialPathTraversalTest.java:261:31:261:55 | readLine(...) : String | semmle.label | readLine(...) : String | +| PartialPathTraversalTest.java:262:20:262:37 | new File(...) : File | semmle.label | new File(...) : File | +| PartialPathTraversalTest.java:262:29:262:36 | filename : String | semmle.label | filename : String | +| PartialPathTraversalTest.java:269:16:269:20 | dir(...) : File | semmle.label | dir(...) : File | +| PartialPathTraversalTest.java:269:16:269:38 | getAbsolutePath(...) : String | semmle.label | getAbsolutePath(...) : String | +| PartialPathTraversalTest.java:269:16:269:60 | split(...) : String[] | semmle.label | split(...) : String[] | subpaths diff --git a/java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversalTest.java b/java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversalTest.java index b1986c1b669..42e70b2c53d 100644 --- a/java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversalTest.java +++ b/java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversalTest.java @@ -10,14 +10,14 @@ import java.net.Socket; public class PartialPathTraversalTest { public void esapiExample(File parent) throws IOException { - if (!dir().getCanonicalPath().startsWith(parent.getCanonicalPath())) { // $ Alert + if (!dir().getCanonicalPath().startsWith(parent.getCanonicalPath())) { // $ Alert[java/partial-path-traversal-from-remote] Alert[java/partial-path-traversal] throw new IOException("Invalid directory: " + dir().getCanonicalPath()); } } @SuppressWarnings("ResultOfMethodCallIgnored") void foo1(File parent) throws IOException { - (dir().getCanonicalPath()).startsWith((parent.getCanonicalPath())); // $ Alert + (dir().getCanonicalPath()).startsWith((parent.getCanonicalPath())); // $ Alert[java/partial-path-traversal-from-remote] Alert[java/partial-path-traversal] } void foo2(File parent) throws IOException { @@ -29,31 +29,31 @@ public class PartialPathTraversalTest { void foo3(File parent) throws IOException { String parentPath = parent.getCanonicalPath(); - if (!dir().getCanonicalPath().startsWith(parentPath)) { // $ Alert + if (!dir().getCanonicalPath().startsWith(parentPath)) { // $ Alert[java/partial-path-traversal-from-remote] Alert[java/partial-path-traversal] throw new IOException("Invalid directory: " + dir().getCanonicalPath()); } } void foo4() throws IOException { - if (!dir().getCanonicalPath().startsWith("/usr" + "/dir")) { // $ Alert + if (!dir().getCanonicalPath().startsWith("/usr" + "/dir")) { // $ Alert[java/partial-path-traversal-from-remote] Alert[java/partial-path-traversal] throw new IOException("Invalid directory: " + dir().getCanonicalPath()); } } void foo5(File parent) throws IOException { String canonicalPath = dir().getCanonicalPath(); - if (!canonicalPath.startsWith(parent.getCanonicalPath())) { // $ Alert + if (!canonicalPath.startsWith(parent.getCanonicalPath())) { // $ Alert[java/partial-path-traversal-from-remote] Alert[java/partial-path-traversal] throw new IOException("Invalid directory: " + dir().getCanonicalPath()); } } void foo6(File parent) throws IOException { String canonicalPath = dir().getCanonicalPath(); - if (!canonicalPath.startsWith(parent.getCanonicalPath())) { // $ Alert + if (!canonicalPath.startsWith(parent.getCanonicalPath())) { // $ Alert[java/partial-path-traversal-from-remote] Alert[java/partial-path-traversal] throw new IOException("Invalid directory: " + dir().getCanonicalPath()); } String canonicalPath2 = dir().getCanonicalPath(); - if (!canonicalPath2.startsWith(parent.getCanonicalPath())) { // $ Alert + if (!canonicalPath2.startsWith(parent.getCanonicalPath())) { // $ Alert[java/partial-path-traversal-from-remote] Alert[java/partial-path-traversal] throw new IOException("Invalid directory: " + dir().getCanonicalPath()); } } @@ -61,10 +61,10 @@ public class PartialPathTraversalTest { void foo7(File dir, File parent) throws IOException { String canonicalPath = dir().getCanonicalPath(); String canonicalPath2 = dir().getCanonicalPath(); - if (!canonicalPath.startsWith(parent.getCanonicalPath())) { // $ Alert + if (!canonicalPath.startsWith(parent.getCanonicalPath())) { // $ Alert[java/partial-path-traversal-from-remote] Alert[java/partial-path-traversal] throw new IOException("Invalid directory: " + dir().getCanonicalPath()); } - if (!canonicalPath2.startsWith(parent.getCanonicalPath())) { // $ Alert + if (!canonicalPath2.startsWith(parent.getCanonicalPath())) { // $ Alert[java/partial-path-traversal-from-remote] Alert[java/partial-path-traversal] throw new IOException("Invalid directory: " + dir().getCanonicalPath()); } } @@ -75,7 +75,7 @@ public class PartialPathTraversalTest { void foo8(File parent) throws IOException { String canonicalPath = getChild().getCanonicalPath(); - if (!canonicalPath.startsWith(parent.getCanonicalPath())) { + if (!canonicalPath.startsWith(parent.getCanonicalPath())) { // $ Alert[java/partial-path-traversal] throw new IOException("Invalid directory: " + getChild().getCanonicalPath()); } } @@ -94,7 +94,7 @@ public class PartialPathTraversalTest { void foo11(File parent) throws IOException { String parentCanonical = parent.getCanonicalPath(); - if (!dir().getCanonicalPath().startsWith(parentCanonical)) { // $ Alert + if (!dir().getCanonicalPath().startsWith(parentCanonical)) { // $ Alert[java/partial-path-traversal-from-remote] Alert[java/partial-path-traversal] throw new IOException("Invalid directory: " + dir().getCanonicalPath()); } } @@ -102,10 +102,10 @@ public class PartialPathTraversalTest { void foo12(File parent) throws IOException { String parentCanonical = parent.getCanonicalPath(); String parentCanonical2 = parent.getCanonicalPath(); - if (!dir().getCanonicalPath().startsWith(parentCanonical)) { // $ Alert + if (!dir().getCanonicalPath().startsWith(parentCanonical)) { // $ Alert[java/partial-path-traversal-from-remote] Alert[java/partial-path-traversal] throw new IOException("Invalid directory: " + dir().getCanonicalPath()); } - if (!dir().getCanonicalPath().startsWith(parentCanonical2)) { // $ Alert + if (!dir().getCanonicalPath().startsWith(parentCanonical2)) { // $ Alert[java/partial-path-traversal-from-remote] Alert[java/partial-path-traversal] throw new IOException("Invalid directory: " + dir().getCanonicalPath()); } } @@ -173,7 +173,7 @@ public class PartialPathTraversalTest { void foo19(File parent) throws IOException { String parentCanonical = parent.getCanonicalPath() + "/potato"; - if (!dir().getCanonicalPath().startsWith(parentCanonical)) { // $ Alert + if (!dir().getCanonicalPath().startsWith(parentCanonical)) { // $ Alert[java/partial-path-traversal-from-remote] Alert[java/partial-path-traversal] throw new IOException("Invalid directory: " + dir().getCanonicalPath()); } } @@ -191,7 +191,7 @@ public class PartialPathTraversalTest { String filePath = sb.toString(); File encodedFile = new File(filePath); try { - if (!encodedFile.getCanonicalPath().startsWith(cacheDir.getCanonicalPath())) { // $ Alert + if (!encodedFile.getCanonicalPath().startsWith(cacheDir.getCanonicalPath())) { // $ Alert[java/partial-path-traversal-from-remote] Alert[java/partial-path-traversal] return null; } return Files.newInputStream(encodedFile.toPath()); @@ -209,7 +209,7 @@ public class PartialPathTraversalTest { void foo22(File dir2, File parent, boolean conditional) throws IOException { String canonicalPath = conditional ? dir().getCanonicalPath() : dir2.getCanonicalPath(); - if (!canonicalPath.startsWith(parent.getCanonicalPath())) { // $ Alert + if (!canonicalPath.startsWith(parent.getCanonicalPath())) { // $ Alert[java/partial-path-traversal-from-remote] Alert[java/partial-path-traversal] throw new IOException("Invalid directory: " + dir().getCanonicalPath()); } } @@ -228,6 +228,14 @@ public class PartialPathTraversalTest { } } + void foo25(File parent) throws IOException { + String path = parent.getCanonicalPath(); + path += File.separator; + if (!dir().getCanonicalPath().startsWith(path)) { + throw new IOException("Invalid directory: " + dir().getCanonicalPath()); + } + } + public void doesNotFlagOptimalSafeVersion(File parent) throws IOException { if (!dir().toPath().normalize().startsWith(parent.toPath())) { // Safe throw new IOException("Path traversal attempt: " + dir().getCanonicalPath()); diff --git a/java/ql/test/query-tests/security/CWE-532/SensitiveLogInfo.expected b/java/ql/test/query-tests/security/CWE-532/SensitiveLogInfo.expected index 54f1e9f8a5a..4a5ed058b50 100644 --- a/java/ql/test/query-tests/security/CWE-532/SensitiveLogInfo.expected +++ b/java/ql/test/query-tests/security/CWE-532/SensitiveLogInfo.expected @@ -3,6 +3,14 @@ | Test.java:12:22:12:52 | ... + ... | Test.java:12:44:12:52 | authToken : String | Test.java:12:22:12:52 | ... + ... | This $@ is written to a log file. | Test.java:12:44:12:52 | authToken | potentially sensitive information | | Test.java:21:22:21:75 | ... + ... | Test.java:21:44:21:52 | authToken : String | Test.java:21:22:21:75 | ... + ... | This $@ is written to a log file. | Test.java:21:44:21:52 | authToken | potentially sensitive information | | Test.java:22:22:22:75 | ... + ... | Test.java:22:44:22:52 | authToken : String | Test.java:22:22:22:75 | ... + ... | This $@ is written to a log file. | Test.java:22:44:22:52 | authToken | potentially sensitive information | +| Test.java:66:21:66:43 | ... + ... | Test.java:66:33:66:43 | accessToken : String | Test.java:66:21:66:43 | ... + ... | This $@ is written to a log file. | Test.java:66:33:66:43 | accessToken | potentially sensitive information | +| Test.java:67:21:67:45 | ... + ... | Test.java:67:34:67:45 | clientSecret : String | Test.java:67:21:67:45 | ... + ... | This $@ is written to a log file. | Test.java:67:34:67:45 | clientSecret | potentially sensitive information | +| Test.java:68:21:68:42 | ... + ... | Test.java:68:34:68:42 | apiSecret : String | Test.java:68:21:68:42 | ... + ... | This $@ is written to a log file. | Test.java:68:34:68:42 | apiSecret | potentially sensitive information | +| Test.java:69:21:69:44 | ... + ... | Test.java:69:33:69:44 | sessionToken : String | Test.java:69:21:69:44 | ... + ... | This $@ is written to a log file. | Test.java:69:33:69:44 | sessionToken | potentially sensitive information | +| Test.java:70:21:70:43 | ... + ... | Test.java:70:33:70:43 | bearerToken : String | Test.java:70:21:70:43 | ... + ... | This $@ is written to a log file. | Test.java:70:33:70:43 | bearerToken | potentially sensitive information | +| Test.java:71:21:71:39 | ... + ... | Test.java:71:31:71:39 | secretKey : String | Test.java:71:21:71:39 | ... + ... | This $@ is written to a log file. | Test.java:71:31:71:39 | secretKey | potentially sensitive information | +| Test.java:72:21:72:44 | ... + ... | Test.java:72:33:72:44 | refreshToken : String | Test.java:72:21:72:44 | ... + ... | This $@ is written to a log file. | Test.java:72:33:72:44 | refreshToken | potentially sensitive information | +| Test.java:73:21:73:43 | ... + ... | Test.java:73:33:73:43 | secretValue : String | Test.java:73:21:73:43 | ... + ... | This $@ is written to a log file. | Test.java:73:33:73:43 | secretValue | potentially sensitive information | edges | Test.java:11:46:11:53 | password : String | Test.java:11:21:11:53 | ... + ... | provenance | Sink:MaD:2 | | Test.java:12:44:12:52 | authToken : String | Test.java:12:22:12:52 | ... + ... | provenance | Sink:MaD:1 | @@ -10,6 +18,14 @@ edges | Test.java:21:44:21:67 | substring(...) : String | Test.java:21:22:21:75 | ... + ... | provenance | Sink:MaD:1 | | Test.java:22:44:22:52 | authToken : String | Test.java:22:44:22:67 | substring(...) : String | provenance | MaD:3 | | Test.java:22:44:22:67 | substring(...) : String | Test.java:22:22:22:75 | ... + ... | provenance | Sink:MaD:1 | +| Test.java:66:33:66:43 | accessToken : String | Test.java:66:21:66:43 | ... + ... | provenance | Sink:MaD:2 | +| Test.java:67:34:67:45 | clientSecret : String | Test.java:67:21:67:45 | ... + ... | provenance | Sink:MaD:2 | +| Test.java:68:34:68:42 | apiSecret : String | Test.java:68:21:68:42 | ... + ... | provenance | Sink:MaD:2 | +| Test.java:69:33:69:44 | sessionToken : String | Test.java:69:21:69:44 | ... + ... | provenance | Sink:MaD:2 | +| Test.java:70:33:70:43 | bearerToken : String | Test.java:70:21:70:43 | ... + ... | provenance | Sink:MaD:2 | +| Test.java:71:31:71:39 | secretKey : String | Test.java:71:21:71:39 | ... + ... | provenance | Sink:MaD:2 | +| Test.java:72:33:72:44 | refreshToken : String | Test.java:72:21:72:44 | ... + ... | provenance | Sink:MaD:2 | +| Test.java:73:33:73:43 | secretValue : String | Test.java:73:21:73:43 | ... + ... | provenance | Sink:MaD:2 | models | 1 | Sink: org.apache.logging.log4j; Logger; true; error; (String); ; Argument[0]; log-injection; manual | | 2 | Sink: org.apache.logging.log4j; Logger; true; info; (String); ; Argument[0]; log-injection; manual | @@ -25,4 +41,20 @@ nodes | Test.java:22:22:22:75 | ... + ... | semmle.label | ... + ... | | Test.java:22:44:22:52 | authToken : String | semmle.label | authToken : String | | Test.java:22:44:22:67 | substring(...) : String | semmle.label | substring(...) : String | +| Test.java:66:21:66:43 | ... + ... | semmle.label | ... + ... | +| Test.java:66:33:66:43 | accessToken : String | semmle.label | accessToken : String | +| Test.java:67:21:67:45 | ... + ... | semmle.label | ... + ... | +| Test.java:67:34:67:45 | clientSecret : String | semmle.label | clientSecret : String | +| Test.java:68:21:68:42 | ... + ... | semmle.label | ... + ... | +| Test.java:68:34:68:42 | apiSecret : String | semmle.label | apiSecret : String | +| Test.java:69:21:69:44 | ... + ... | semmle.label | ... + ... | +| Test.java:69:33:69:44 | sessionToken : String | semmle.label | sessionToken : String | +| Test.java:70:21:70:43 | ... + ... | semmle.label | ... + ... | +| Test.java:70:33:70:43 | bearerToken : String | semmle.label | bearerToken : String | +| Test.java:71:21:71:39 | ... + ... | semmle.label | ... + ... | +| Test.java:71:31:71:39 | secretKey : String | semmle.label | secretKey : String | +| Test.java:72:21:72:44 | ... + ... | semmle.label | ... + ... | +| Test.java:72:33:72:44 | refreshToken : String | semmle.label | refreshToken : String | +| Test.java:73:21:73:43 | ... + ... | semmle.label | ... + ... | +| Test.java:73:33:73:43 | secretValue : String | semmle.label | secretValue : String | subpaths diff --git a/java/ql/test/query-tests/security/CWE-532/Test.java b/java/ql/test/query-tests/security/CWE-532/Test.java index 6521f7e2df7..5c9826ba2cc 100644 --- a/java/ql/test/query-tests/security/CWE-532/Test.java +++ b/java/ql/test/query-tests/security/CWE-532/Test.java @@ -21,4 +21,55 @@ class Test { logger.error("Auth failed for: " + authToken.substring(1,5) + "..."); // $ Alert logger.error("Auth failed for: " + authToken.substring(0,8) + "..."); // $ Alert } + + // Tests for false positive exclusions: variables with "token" or "secret" in the name + // that do not hold sensitive data. + void testFalsePositiveExclusions( + String nextToken, String pageToken, String continuationToken, String cursorToken, + String tokenType, String tokenEndpoint, String tokenCount, String tokenUrl, + String tokenIndex, String tokenLength, String tokenName, String tokenId, + String secretName, String secretId, String secretVersion, String secretArn, + String secretPath, String secretType, + String secretManager, String secretProperties + ) { + Logger logger = null; + // Pagination/iteration tokens (e.g., AWS SDK, GCP, Azure pagination cursors) + logger.info("cursor: " + nextToken); // Safe + logger.info("cursor: " + pageToken); // Safe + logger.info("cursor: " + continuationToken); // Safe + logger.info("cursor: " + cursorToken); // Safe + // Token metadata (e.g., OAuth token type, OIDC discovery endpoint) + logger.info("type: " + tokenType); // Safe + logger.info("endpoint: " + tokenEndpoint); // Safe + logger.info("count: " + tokenCount); // Safe + logger.info("url: " + tokenUrl); // Safe + logger.info("index: " + tokenIndex); // Safe + logger.info("length: " + tokenLength); // Safe + logger.info("name: " + tokenName); // Safe + logger.info("id: " + tokenId); // Safe + // Secret metadata (e.g., K8s secret name, AWS Secrets Manager identifiers) + logger.info("name: " + secretName); // Safe + logger.info("id: " + secretId); // Safe + logger.info("version: " + secretVersion); // Safe + logger.info("arn: " + secretArn); // Safe + logger.info("path: " + secretPath); // Safe + logger.info("type: " + secretType); // Safe + logger.info("manager: " + secretManager); // Safe + logger.info("properties: " + secretProperties); // Safe + } + + // These should still be flagged as sensitive + void testTruePositives(String accessToken, String clientSecret, String apiSecret, + String sessionToken, String bearerToken, String secretKey, + String refreshToken, String secretValue) { + Logger logger = null; + logger.info("token: " + accessToken); // $ Alert + logger.info("secret: " + clientSecret); // $ Alert + logger.info("secret: " + apiSecret); // $ Alert + logger.info("token: " + sessionToken); // $ Alert + logger.info("token: " + bearerToken); // $ Alert + logger.info("key: " + secretKey); // $ Alert + logger.info("token: " + refreshToken); // $ Alert + logger.info("value: " + secretValue); // $ Alert + } } diff --git a/java/ql/test/query-tests/security/CWE-611/WstxInputFactoryTests.java b/java/ql/test/query-tests/security/CWE-611/WstxInputFactoryTests.java new file mode 100644 index 00000000000..b64ec54f5b7 --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-611/WstxInputFactoryTests.java @@ -0,0 +1,44 @@ +import java.net.Socket; + +import javax.xml.stream.XMLInputFactory; + +import com.ctc.wstx.stax.WstxInputFactory; + +public class WstxInputFactoryTests { + + public void unconfiguredFactory(Socket sock) throws Exception { + WstxInputFactory factory = new WstxInputFactory(); + factory.createXMLStreamReader(sock.getInputStream()); // $ Alert + factory.createXMLEventReader(sock.getInputStream()); // $ Alert + } + + public void safeFactory(Socket sock) throws Exception { + WstxInputFactory factory = new WstxInputFactory(); + factory.setProperty(XMLInputFactory.SUPPORT_DTD, false); + factory.setProperty(XMLInputFactory.IS_SUPPORTING_EXTERNAL_ENTITIES, false); + factory.createXMLStreamReader(sock.getInputStream()); // safe + factory.createXMLEventReader(sock.getInputStream()); // safe + } + + public void safeFactoryStringProperties(Socket sock) throws Exception { + WstxInputFactory factory = new WstxInputFactory(); + factory.setProperty("javax.xml.stream.supportDTD", false); + factory.setProperty("javax.xml.stream.isSupportingExternalEntities", false); + factory.createXMLStreamReader(sock.getInputStream()); // safe + factory.createXMLEventReader(sock.getInputStream()); // safe + } + + public void misConfiguredFactory(Socket sock) throws Exception { + WstxInputFactory factory = new WstxInputFactory(); + factory.setProperty("javax.xml.stream.isSupportingExternalEntities", false); + factory.createXMLStreamReader(sock.getInputStream()); // $ Alert + factory.createXMLEventReader(sock.getInputStream()); // $ Alert + } + + public void misConfiguredFactory2(Socket sock) throws Exception { + WstxInputFactory factory = new WstxInputFactory(); + factory.setProperty(XMLInputFactory.SUPPORT_DTD, false); + factory.createXMLStreamReader(sock.getInputStream()); // $ Alert + factory.createXMLEventReader(sock.getInputStream()); // $ Alert + } +} diff --git a/java/ql/test/query-tests/security/CWE-611/XXE.expected b/java/ql/test/query-tests/security/CWE-611/XXE.expected index a1d0725321d..87e033c129a 100644 --- a/java/ql/test/query-tests/security/CWE-611/XXE.expected +++ b/java/ql/test/query-tests/security/CWE-611/XXE.expected @@ -89,6 +89,12 @@ | TransformerTests.java:141:21:141:73 | new SAXSource(...) | TransformerTests.java:141:51:141:71 | getInputStream(...) : InputStream | TransformerTests.java:141:21:141:73 | new SAXSource(...) | XML parsing depends on a $@ without guarding against external entity expansion. | TransformerTests.java:141:51:141:71 | getInputStream(...) | user-provided value | | UnmarshallerTests.java:29:18:29:38 | getInputStream(...) | UnmarshallerTests.java:29:18:29:38 | getInputStream(...) | UnmarshallerTests.java:29:18:29:38 | getInputStream(...) | XML parsing depends on a $@ without guarding against external entity expansion. | UnmarshallerTests.java:29:18:29:38 | getInputStream(...) | user-provided value | | ValidatorTests.java:22:28:22:33 | source | ValidatorTests.java:17:49:17:72 | getInputStream(...) : ServletInputStream | ValidatorTests.java:22:28:22:33 | source | XML parsing depends on a $@ without guarding against external entity expansion. | ValidatorTests.java:17:49:17:72 | getInputStream(...) | user-provided value | +| WstxInputFactoryTests.java:11:35:11:55 | getInputStream(...) | WstxInputFactoryTests.java:11:35:11:55 | getInputStream(...) | WstxInputFactoryTests.java:11:35:11:55 | getInputStream(...) | XML parsing depends on a $@ without guarding against external entity expansion. | WstxInputFactoryTests.java:11:35:11:55 | getInputStream(...) | user-provided value | +| WstxInputFactoryTests.java:12:34:12:54 | getInputStream(...) | WstxInputFactoryTests.java:12:34:12:54 | getInputStream(...) | WstxInputFactoryTests.java:12:34:12:54 | getInputStream(...) | XML parsing depends on a $@ without guarding against external entity expansion. | WstxInputFactoryTests.java:12:34:12:54 | getInputStream(...) | user-provided value | +| WstxInputFactoryTests.java:34:35:34:55 | getInputStream(...) | WstxInputFactoryTests.java:34:35:34:55 | getInputStream(...) | WstxInputFactoryTests.java:34:35:34:55 | getInputStream(...) | XML parsing depends on a $@ without guarding against external entity expansion. | WstxInputFactoryTests.java:34:35:34:55 | getInputStream(...) | user-provided value | +| WstxInputFactoryTests.java:35:34:35:54 | getInputStream(...) | WstxInputFactoryTests.java:35:34:35:54 | getInputStream(...) | WstxInputFactoryTests.java:35:34:35:54 | getInputStream(...) | XML parsing depends on a $@ without guarding against external entity expansion. | WstxInputFactoryTests.java:35:34:35:54 | getInputStream(...) | user-provided value | +| WstxInputFactoryTests.java:41:35:41:55 | getInputStream(...) | WstxInputFactoryTests.java:41:35:41:55 | getInputStream(...) | WstxInputFactoryTests.java:41:35:41:55 | getInputStream(...) | XML parsing depends on a $@ without guarding against external entity expansion. | WstxInputFactoryTests.java:41:35:41:55 | getInputStream(...) | user-provided value | +| WstxInputFactoryTests.java:42:34:42:54 | getInputStream(...) | WstxInputFactoryTests.java:42:34:42:54 | getInputStream(...) | WstxInputFactoryTests.java:42:34:42:54 | getInputStream(...) | XML parsing depends on a $@ without guarding against external entity expansion. | WstxInputFactoryTests.java:42:34:42:54 | getInputStream(...) | user-provided value | | XMLDecoderTests.java:18:9:18:18 | xmlDecoder | XMLDecoderTests.java:16:49:16:72 | getInputStream(...) : ServletInputStream | XMLDecoderTests.java:18:9:18:18 | xmlDecoder | XML parsing depends on a $@ without guarding against external entity expansion. | XMLDecoderTests.java:16:49:16:72 | getInputStream(...) | user-provided value | | XMLReaderTests.java:16:18:16:55 | new InputSource(...) | XMLReaderTests.java:16:34:16:54 | getInputStream(...) : InputStream | XMLReaderTests.java:16:18:16:55 | new InputSource(...) | XML parsing depends on a $@ without guarding against external entity expansion. | XMLReaderTests.java:16:34:16:54 | getInputStream(...) | user-provided value | | XMLReaderTests.java:56:18:56:55 | new InputSource(...) | XMLReaderTests.java:56:34:56:54 | getInputStream(...) : InputStream | XMLReaderTests.java:56:18:56:55 | new InputSource(...) | XML parsing depends on a $@ without guarding against external entity expansion. | XMLReaderTests.java:56:34:56:54 | getInputStream(...) | user-provided value | @@ -390,6 +396,12 @@ nodes | ValidatorTests.java:21:31:21:66 | new StreamSource(...) : StreamSource | semmle.label | new StreamSource(...) : StreamSource | | ValidatorTests.java:21:48:21:65 | servletInputStream : ServletInputStream | semmle.label | servletInputStream : ServletInputStream | | ValidatorTests.java:22:28:22:33 | source | semmle.label | source | +| WstxInputFactoryTests.java:11:35:11:55 | getInputStream(...) | semmle.label | getInputStream(...) | +| WstxInputFactoryTests.java:12:34:12:54 | getInputStream(...) | semmle.label | getInputStream(...) | +| WstxInputFactoryTests.java:34:35:34:55 | getInputStream(...) | semmle.label | getInputStream(...) | +| WstxInputFactoryTests.java:35:34:35:54 | getInputStream(...) | semmle.label | getInputStream(...) | +| WstxInputFactoryTests.java:41:35:41:55 | getInputStream(...) | semmle.label | getInputStream(...) | +| WstxInputFactoryTests.java:42:34:42:54 | getInputStream(...) | semmle.label | getInputStream(...) | | XMLDecoderTests.java:16:49:16:72 | getInputStream(...) : ServletInputStream | semmle.label | getInputStream(...) : ServletInputStream | | XMLDecoderTests.java:17:33:17:66 | new XMLDecoder(...) : XMLDecoder | semmle.label | new XMLDecoder(...) : XMLDecoder | | XMLDecoderTests.java:17:48:17:65 | servletInputStream : ServletInputStream | semmle.label | servletInputStream : ServletInputStream | diff --git a/java/ql/test/query-tests/security/CWE-611/options b/java/ql/test/query-tests/security/CWE-611/options index 1480b49d716..190e6b2af0c 100644 --- a/java/ql/test/query-tests/security/CWE-611/options +++ b/java/ql/test/query-tests/security/CWE-611/options @@ -1 +1 @@ -//semmle-extractor-options: --javac-args -cp ${testdir}/../../../stubs/jdom-1.1.3:${testdir}/../../../stubs/dom4j-2.1.1:${testdir}/../../../stubs/simple-xml-2.7.1:${testdir}/../../../stubs/jaxb-api-2.3.1:${testdir}/../../../stubs/jaxen-1.2.0:${testdir}/../../../stubs/apache-commons-digester3-3.2:${testdir}/../../../stubs/servlet-api-2.4/:${testdir}/../../../stubs/rundeck-api-java-client-13.2:${testdir}/../../../stubs/springframework-5.8.x/:${testdir}/../../../stubs/mdht-1.2.0/ +//semmle-extractor-options: --javac-args -cp ${testdir}/../../../stubs/jdom-1.1.3:${testdir}/../../../stubs/dom4j-2.1.1:${testdir}/../../../stubs/simple-xml-2.7.1:${testdir}/../../../stubs/jaxb-api-2.3.1:${testdir}/../../../stubs/jaxen-1.2.0:${testdir}/../../../stubs/apache-commons-digester3-3.2:${testdir}/../../../stubs/servlet-api-2.4/:${testdir}/../../../stubs/rundeck-api-java-client-13.2:${testdir}/../../../stubs/springframework-5.8.x/:${testdir}/../../../stubs/mdht-1.2.0/:${testdir}/../../../stubs/woodstox-core-6.4.0 diff --git a/java/ql/test/query-tests/security/CWE-676/semmle/tests/options b/java/ql/test/query-tests/security/CWE-676/semmle/tests/options new file mode 100644 index 00000000000..3d6e630aa73 --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-676/semmle/tests/options @@ -0,0 +1 @@ +//semmle-extractor-options: --javac-args --release 25 diff --git a/java/ql/test/stubs/woodstox-core-6.4.0/com/ctc/wstx/stax/WstxInputFactory.java b/java/ql/test/stubs/woodstox-core-6.4.0/com/ctc/wstx/stax/WstxInputFactory.java new file mode 100644 index 00000000000..979d76b6e20 --- /dev/null +++ b/java/ql/test/stubs/woodstox-core-6.4.0/com/ctc/wstx/stax/WstxInputFactory.java @@ -0,0 +1,49 @@ +// Generated automatically from com.ctc.wstx.stax.WstxInputFactory for testing purposes + +package com.ctc.wstx.stax; + +import java.io.InputStream; +import java.io.Reader; +import javax.xml.stream.EventFilter; +import javax.xml.stream.StreamFilter; +import javax.xml.stream.XMLEventReader; +import javax.xml.stream.XMLReporter; +import javax.xml.stream.XMLResolver; +import javax.xml.stream.XMLStreamException; +import javax.xml.stream.XMLStreamReader; +import javax.xml.stream.util.XMLEventAllocator; +import javax.xml.transform.Source; +import org.codehaus.stax2.XMLInputFactory2; + +public class WstxInputFactory extends XMLInputFactory2 { + public WstxInputFactory() {} + + public XMLStreamReader createXMLStreamReader(InputStream in) throws XMLStreamException { return null; } + public XMLStreamReader createXMLStreamReader(InputStream in, String enc) throws XMLStreamException { return null; } + public XMLStreamReader createXMLStreamReader(Reader r) throws XMLStreamException { return null; } + public XMLStreamReader createXMLStreamReader(Source src) throws XMLStreamException { return null; } + public XMLStreamReader createXMLStreamReader(String systemId, InputStream in) throws XMLStreamException { return null; } + public XMLStreamReader createXMLStreamReader(String systemId, Reader r) throws XMLStreamException { return null; } + + public XMLEventReader createXMLEventReader(InputStream in) throws XMLStreamException { return null; } + public XMLEventReader createXMLEventReader(InputStream in, String enc) throws XMLStreamException { return null; } + public XMLEventReader createXMLEventReader(Reader r) throws XMLStreamException { return null; } + public XMLEventReader createXMLEventReader(Source src) throws XMLStreamException { return null; } + public XMLEventReader createXMLEventReader(String systemId, InputStream in) throws XMLStreamException { return null; } + public XMLEventReader createXMLEventReader(String systemId, Reader r) throws XMLStreamException { return null; } + public XMLEventReader createXMLEventReader(XMLStreamReader sr) throws XMLStreamException { return null; } + + public XMLStreamReader createFilteredReader(XMLStreamReader reader, StreamFilter filter) { return null; } + public XMLEventReader createFilteredReader(XMLEventReader reader, EventFilter filter) { return null; } + + public void setProperty(String name, Object value) {} + public Object getProperty(String name) { return null; } + public boolean isPropertySupported(String name) { return false; } + + public XMLResolver getXMLResolver() { return null; } + public void setXMLResolver(XMLResolver r) {} + public XMLReporter getXMLReporter() { return null; } + public void setXMLReporter(XMLReporter r) {} + public XMLEventAllocator getEventAllocator() { return null; } + public void setEventAllocator(XMLEventAllocator a) {} +} diff --git a/java/ql/test/stubs/woodstox-core-6.4.0/org/codehaus/stax2/XMLInputFactory2.java b/java/ql/test/stubs/woodstox-core-6.4.0/org/codehaus/stax2/XMLInputFactory2.java new file mode 100644 index 00000000000..6b94d00d03a --- /dev/null +++ b/java/ql/test/stubs/woodstox-core-6.4.0/org/codehaus/stax2/XMLInputFactory2.java @@ -0,0 +1,9 @@ +// Generated automatically from org.codehaus.stax2.XMLInputFactory2 for testing purposes + +package org.codehaus.stax2; + +import javax.xml.stream.XMLInputFactory; + +public abstract class XMLInputFactory2 extends XMLInputFactory { + protected XMLInputFactory2() {} +} diff --git a/javascript/ql/lib/CHANGELOG.md b/javascript/ql/lib/CHANGELOG.md index 52d003921a0..77837f46c5e 100644 --- a/javascript/ql/lib/CHANGELOG.md +++ b/javascript/ql/lib/CHANGELOG.md @@ -1,3 +1,11 @@ +## 2.6.28 + +No user-facing changes. + +## 2.6.27 + +No user-facing changes. + ## 2.6.26 No user-facing changes. diff --git a/javascript/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md b/javascript/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md new file mode 100644 index 00000000000..d849f4c0c69 --- /dev/null +++ b/javascript/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md @@ -0,0 +1,4 @@ +--- +category: feature +--- +* Data flow barriers and barrier guards can now be added using data extensions. For more information see [Customizing library models for JavaScript](https://codeql.github.com/docs/codeql-language-guides/customizing-library-models-for-javascript/). diff --git a/javascript/ql/lib/change-notes/released/2.6.27.md b/javascript/ql/lib/change-notes/released/2.6.27.md new file mode 100644 index 00000000000..94482b5ebe6 --- /dev/null +++ b/javascript/ql/lib/change-notes/released/2.6.27.md @@ -0,0 +1,3 @@ +## 2.6.27 + +No user-facing changes. diff --git a/javascript/ql/lib/change-notes/released/2.6.28.md b/javascript/ql/lib/change-notes/released/2.6.28.md new file mode 100644 index 00000000000..9c30dddcc0a --- /dev/null +++ b/javascript/ql/lib/change-notes/released/2.6.28.md @@ -0,0 +1,3 @@ +## 2.6.28 + +No user-facing changes. diff --git a/javascript/ql/lib/codeql-pack.release.yml b/javascript/ql/lib/codeql-pack.release.yml index 679fedfb2ca..2456457874e 100644 --- a/javascript/ql/lib/codeql-pack.release.yml +++ b/javascript/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.6.26 +lastReleaseVersion: 2.6.28 diff --git a/javascript/ql/lib/qlpack.yml b/javascript/ql/lib/qlpack.yml index 06ba4c2b8c6..b62abbbe101 100644 --- a/javascript/ql/lib/qlpack.yml +++ b/javascript/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-all -version: 2.6.27-dev +version: 2.6.29-dev groups: javascript dbscheme: semmlecode.javascript.dbscheme extractor: javascript diff --git a/javascript/ql/lib/semmle/javascript/frameworks/data/internal/ApiGraphModels.qll b/javascript/ql/lib/semmle/javascript/frameworks/data/internal/ApiGraphModels.qll index 60fe40e716d..155fb4b7c78 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/data/internal/ApiGraphModels.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/data/internal/ApiGraphModels.qll @@ -10,6 +10,10 @@ * `type, path, kind` * - Summaries: * `type, path, input, output, kind` + * - Barriers: + * `type, path, kind` + * - BarrierGuards: + * `type, path, acceptingValue, kind` * - Types: * `type1, type2, path` * @@ -42,7 +46,8 @@ * 3. The `input` and `output` columns specify how data enters and leaves the element selected by the * first `(type, path)` tuple. Both strings are `.`-separated access paths * of the same syntax as the `path` column. - * 4. The `kind` column is a tag that can be referenced from QL to determine to + * 4. The `acceptingValue` column of barrier guard models specifies which branch of the guard is blocking flow. It can be "true" or "false". + * 5. The `kind` column is a tag that can be referenced from QL to determine to * which classes the interpreted elements should be added. For example, for * sources `"remote"` indicates a default remote flow source, and for summaries * `"taint"` indicates a default additional taint step and `"value"` indicates a @@ -355,11 +360,11 @@ private predicate barrierModel(string type, string path, string kind, string mod /** Holds if a barrier guard model exists for the given parameters. */ private predicate barrierGuardModel( - string type, string path, string branch, string kind, string model + string type, string path, string acceptingValue, string kind, string model ) { // No deprecation adapter for barrier models, they were not around back then. exists(QlBuiltins::ExtensionId madId | - Extensions::barrierGuardModel(type, path, branch, kind, madId) and + Extensions::barrierGuardModel(type, path, acceptingValue, kind, madId) and model = "MaD:" + madId.toString() ) } @@ -783,16 +788,16 @@ module ModelOutput { } /** - * Holds if a barrier model contributed `barrier` with the given `kind` for the given `branch`. + * Holds if a barrier model contributed `barrier` with the given `kind` for the given `acceptingValue`. */ cached - API::Node getABarrierGuardNode(string kind, boolean branch, string model) { - exists(string type, string path, string branch_str | - branch = true and branch_str = "true" + API::Node getABarrierGuardNode(string kind, boolean acceptingValue, string model) { + exists(string type, string path, string acceptingValue_str | + acceptingValue = true and acceptingValue_str = "true" or - branch = false and branch_str = "false" + acceptingValue = false and acceptingValue_str = "false" | - barrierGuardModel(type, path, branch_str, kind, model) and + barrierGuardModel(type, path, acceptingValue_str, kind, model) and result = getNodeFromPath(type, path) ) } @@ -856,12 +861,12 @@ module ModelOutput { API::Node getABarrierNode(string kind) { result = getABarrierNode(kind, _) } /** - * Holds if an external model contributed `barrier-guard` with the given `kind` and `branch`. + * Holds if an external model contributed `barrier-guard` with the given `kind` and `acceptingValue`. * * INTERNAL: Do not use. */ - API::Node getABarrierGuardNode(string kind, boolean branch) { - result = getABarrierGuardNode(kind, branch, _) + API::Node getABarrierGuardNode(string kind, boolean acceptingValue) { + result = getABarrierGuardNode(kind, acceptingValue, _) } /** diff --git a/javascript/ql/lib/semmle/javascript/frameworks/data/internal/ApiGraphModelsExtensions.qll b/javascript/ql/lib/semmle/javascript/frameworks/data/internal/ApiGraphModelsExtensions.qll index 2a644aabb95..8d8a4f5fd88 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/data/internal/ApiGraphModelsExtensions.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/data/internal/ApiGraphModelsExtensions.qll @@ -33,11 +33,11 @@ extensible predicate barrierModel( * of the given `kind` and `madId` is the data extension row number. * `path` is assumed to lead to a parameter of a call (possibly `self`), and * the call is guarding the parameter. - * `branch` is either `true` or `false`, indicating which branch of the guard - * is protecting the parameter. + * `acceptingValue` is either `true` or `false`, indicating which branch of + * the guard is protecting the parameter. */ extensible predicate barrierGuardModel( - string type, string path, string branch, string kind, QlBuiltins::ExtensionId madId + string type, string path, string acceptingValue, string kind, QlBuiltins::ExtensionId madId ); /** diff --git a/javascript/ql/lib/semmle/javascript/security/dataflow/MissingRateLimiting.qll b/javascript/ql/lib/semmle/javascript/security/dataflow/MissingRateLimiting.qll index 5f4ad1b3d73..8dd9c483144 100644 --- a/javascript/ql/lib/semmle/javascript/security/dataflow/MissingRateLimiting.qll +++ b/javascript/ql/lib/semmle/javascript/security/dataflow/MissingRateLimiting.qll @@ -191,3 +191,21 @@ class RouteHandlerLimitedByRateLimiterFlexible extends RateLimitingMiddleware in private class FastifyRateLimiter extends RateLimitingMiddleware { FastifyRateLimiter() { this = DataFlow::moduleImport("fastify-rate-limit") } } + +/** + * An options object with a `rateLimit` config passed to a Fastify shorthand route method, + * such as `fastify.post('/path', { config: { rateLimit: { ... } } }, handler)`. + */ +private class FastifyPerRouteRateLimit extends RateLimitingMiddleware { + FastifyPerRouteRateLimit() { + exists(Fastify::RouteSetup setup | + not setup.getMethodName() = ["route", "addHook"] and + setup.getNumArgument() >= 3 and + this.flowsTo(setup.getArgument(1)) + | + exists(this.getAPropertySource("config").getAPropertySource("rateLimit")) + or + exists(this.getAPropertySource("rateLimit")) + ) + } +} diff --git a/javascript/ql/src/CHANGELOG.md b/javascript/ql/src/CHANGELOG.md index 272799b3da3..9b122364ffa 100644 --- a/javascript/ql/src/CHANGELOG.md +++ b/javascript/ql/src/CHANGELOG.md @@ -1,3 +1,14 @@ +## 2.3.8 + +### Minor Analysis Improvements + +* The query `js/missing-rate-limiting` now takes Fastify per-route + rate limiting into account. + +## 2.3.7 + +No user-facing changes. + ## 2.3.6 No user-facing changes. diff --git a/javascript/ql/src/change-notes/released/2.3.7.md b/javascript/ql/src/change-notes/released/2.3.7.md new file mode 100644 index 00000000000..5be2835f398 --- /dev/null +++ b/javascript/ql/src/change-notes/released/2.3.7.md @@ -0,0 +1,3 @@ +## 2.3.7 + +No user-facing changes. diff --git a/javascript/ql/src/change-notes/released/2.3.8.md b/javascript/ql/src/change-notes/released/2.3.8.md new file mode 100644 index 00000000000..5ce5cbe2f24 --- /dev/null +++ b/javascript/ql/src/change-notes/released/2.3.8.md @@ -0,0 +1,6 @@ +## 2.3.8 + +### Minor Analysis Improvements + +* The query `js/missing-rate-limiting` now takes Fastify per-route + rate limiting into account. diff --git a/javascript/ql/src/codeql-pack.release.yml b/javascript/ql/src/codeql-pack.release.yml index 2c82422104b..c68b70cb8be 100644 --- a/javascript/ql/src/codeql-pack.release.yml +++ b/javascript/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.3.6 +lastReleaseVersion: 2.3.8 diff --git a/javascript/ql/src/qlpack.yml b/javascript/ql/src/qlpack.yml index c01152a2480..9081791d0e0 100644 --- a/javascript/ql/src/qlpack.yml +++ b/javascript/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-queries -version: 2.3.7-dev +version: 2.3.9-dev groups: - javascript - queries diff --git a/javascript/ql/test/query-tests/Security/CWE-770/MissingRateLimit/MissingRateLimiting.expected b/javascript/ql/test/query-tests/Security/CWE-770/MissingRateLimit/MissingRateLimiting.expected index 3d7bc2954eb..8d197d6e37f 100644 --- a/javascript/ql/test/query-tests/Security/CWE-770/MissingRateLimit/MissingRateLimiting.expected +++ b/javascript/ql/test/query-tests/Security/CWE-770/MissingRateLimit/MissingRateLimiting.expected @@ -9,3 +9,4 @@ | tst.js:64:25:64:63 | functio ... req); } | This route handler performs $@, but is not rate-limited. | tst.js:64:46:64:60 | verifyUser(req) | authorization | | tst.js:76:25:76:53 | catchAs ... ndler1) | This route handler performs $@, but is not rate-limited. | tst.js:14:40:14:46 | login() | authorization | | tst.js:88:24:88:40 | expensiveHandler1 | This route handler performs $@, but is not rate-limited. | tst.js:14:40:14:46 | login() | authorization | +| tst.js:112:28:112:44 | expensiveHandler1 | This route handler performs $@, but is not rate-limited. | tst.js:14:40:14:46 | login() | authorization | diff --git a/javascript/ql/test/query-tests/Security/CWE-770/MissingRateLimit/tst.js b/javascript/ql/test/query-tests/Security/CWE-770/MissingRateLimit/tst.js index 4f778afef68..5b4312bbbe0 100644 --- a/javascript/ql/test/query-tests/Security/CWE-770/MissingRateLimit/tst.js +++ b/javascript/ql/test/query-tests/Security/CWE-770/MissingRateLimit/tst.js @@ -88,3 +88,25 @@ const fastifyApp = require('fastify')(); fastifyApp.get('/foo', expensiveHandler1); // $ Alert fastifyApp.register(require('fastify-rate-limit')); fastifyApp.get('/bar', expensiveHandler1); + +// Fastify per-route rate limiting via config.rateLimit +const fastifyApp2 = require('fastify')(); +fastifyApp2.register(require('@fastify/rate-limit')); + +fastifyApp2.post('/login', { + config: { + rateLimit: { + max: 3, + timeWindow: '1 minute' + } + } +}, expensiveHandler1); // OK - has per-route rateLimit config + +fastifyApp2.post('/signup', { + rateLimit: { + max: 5, + timeWindow: '1 minute' + } +}, expensiveHandler1); // OK - has per-route rateLimit directly in options + +fastifyApp2.post('/other', expensiveHandler1); // $ Alert - no rate limiting diff --git a/misc/suite-helpers/CHANGELOG.md b/misc/suite-helpers/CHANGELOG.md index 1b5fe4c06da..897533f6450 100644 --- a/misc/suite-helpers/CHANGELOG.md +++ b/misc/suite-helpers/CHANGELOG.md @@ -1,3 +1,11 @@ +## 1.0.48 + +No user-facing changes. + +## 1.0.47 + +No user-facing changes. + ## 1.0.46 No user-facing changes. diff --git a/misc/suite-helpers/change-notes/released/1.0.47.md b/misc/suite-helpers/change-notes/released/1.0.47.md new file mode 100644 index 00000000000..0c12039c180 --- /dev/null +++ b/misc/suite-helpers/change-notes/released/1.0.47.md @@ -0,0 +1,3 @@ +## 1.0.47 + +No user-facing changes. diff --git a/misc/suite-helpers/change-notes/released/1.0.48.md b/misc/suite-helpers/change-notes/released/1.0.48.md new file mode 100644 index 00000000000..c484c6e8d6e --- /dev/null +++ b/misc/suite-helpers/change-notes/released/1.0.48.md @@ -0,0 +1,3 @@ +## 1.0.48 + +No user-facing changes. diff --git a/misc/suite-helpers/codeql-pack.release.yml b/misc/suite-helpers/codeql-pack.release.yml index 05205e6a59e..6db79f2c397 100644 --- a/misc/suite-helpers/codeql-pack.release.yml +++ b/misc/suite-helpers/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.46 +lastReleaseVersion: 1.0.48 diff --git a/misc/suite-helpers/qlpack.yml b/misc/suite-helpers/qlpack.yml index 3107188efcf..778284fbe9a 100644 --- a/misc/suite-helpers/qlpack.yml +++ b/misc/suite-helpers/qlpack.yml @@ -1,4 +1,4 @@ name: codeql/suite-helpers -version: 1.0.47-dev +version: 1.0.49-dev groups: shared warnOnImplicitThis: true diff --git a/python/downgrades/eb5fc917c79bb23ce2de4a022f3e566d57a91be9/old.dbscheme b/python/downgrades/eb5fc917c79bb23ce2de4a022f3e566d57a91be9/old.dbscheme new file mode 100644 index 00000000000..eb5fc917c79 --- /dev/null +++ b/python/downgrades/eb5fc917c79bb23ce2de4a022f3e566d57a91be9/old.dbscheme @@ -0,0 +1,1291 @@ +/* + * This dbscheme is auto-generated by 'semmle/dbscheme_gen.py'. + * Run "make dbscheme" in python/extractor/ to regenerate. + * WARNING: Any modifications to this file will be lost. + * Relations can be changed by modifying master.py or + * by adding rules to dbscheme.template + */ + +/* This is a dummy line to alter the dbscheme, so we can make a database upgrade + * without actually changing any of the dbscheme predicates. It contains a date + * to allow for such updates in the future as well. + * + * 2020-07-02 + * + * DO NOT remove this comment carelessly, since it can revert the dbscheme back to a + * previously seen state (matching a previously seen SHA), which would make the upgrade + * mechanism not work properly. + */ + +/*- DEPRECATED: External defects and metrics -*/ + +externalDefects( + unique int id : @externalDefect, + varchar(900) queryPath : string ref, + int location : @location ref, + varchar(900) message : string ref, + float severity : float ref +); + +externalMetrics( + unique int id : @externalMetric, + varchar(900) queryPath : string ref, + int location : @location ref, + float value : float ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Database metadata -*/ + +/** + * The CLI will automatically emit applicable tuples for this table, + * such as `databaseMetadata("isOverlay", "true")` when building an + * overlay database. + */ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + +/*- Overlay support -*/ + +/** + * The CLI will automatically emit tuples for each new/modified/deleted file + * when building an overlay database. + */ +overlayChangedFiles( + string path: string ref +); + +/*- DEPRECATED: Snapshot date -*/ + +snapshotDate(unique date snapshotDate : date ref); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- DEPRECATED: Duplicate code -*/ + +duplicateCode( + unique int id : @duplication, + string relativePath : string ref, + int equivClass : int ref +); + +similarCode( + unique int id : @similarity, + string relativePath : string ref, + int equivClass : int ref +); + +@duplication_or_similarity = @duplication | @similarity + +tokens( + int id : @duplication_or_similarity ref, + int offset : int ref, + int beginLine : int ref, + int beginColumn : int ref, + int endLine : int ref, + int endColumn : int ref +); + +/*- DEPRECATED: Version control data -*/ + +svnentries( + unique int id : @svnentry, + string revision : string ref, + string author : string ref, + date revisionDate : date ref, + int changeSize : int ref +) + +svnaffectedfiles( + int id : @svnentry ref, + int file : @file ref, + string action : string ref +) + +svnentrymsg( + unique int id : @svnentry ref, + string message : string ref +) + +svnchurn( + int commit : @svnentry ref, + int file : @file ref, + int addedLines : int ref, + int deletedLines : int ref +) + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; + +/*- YAML -*/ + +#keyset[parent, idx] +yaml (unique int id: @yaml_node, + int kind: int ref, + int parent: @yaml_node_parent ref, + int idx: int ref, + string tag: string ref, + string tostring: string ref); + +case @yaml_node.kind of + 0 = @yaml_scalar_node +| 1 = @yaml_mapping_node +| 2 = @yaml_sequence_node +| 3 = @yaml_alias_node +; + +@yaml_collection_node = @yaml_mapping_node | @yaml_sequence_node; + +@yaml_node_parent = @yaml_collection_node | @file; + +yaml_anchors (unique int node: @yaml_node ref, + string anchor: string ref); + +yaml_aliases (unique int alias: @yaml_alias_node ref, + string target: string ref); + +yaml_scalars (unique int scalar: @yaml_scalar_node ref, + int style: int ref, + string value: string ref); + +yaml_errors (unique int id: @yaml_error, + string message: string ref); + +yaml_locations(unique int locatable: @yaml_locatable ref, + int location: @location_default ref); + +@yaml_locatable = @yaml_node | @yaml_error; + +/*- Python dbscheme -*/ + +/* + * Line metrics + */ +py_codelines(int id : @py_scope ref, + int count : int ref); + +py_commentlines(int id : @py_scope ref, + int count : int ref); + +py_docstringlines(int id : @py_scope ref, + int count : int ref); + +py_alllines(int id : @py_scope ref, + int count : int ref); + +/**************************** + Python dbscheme +****************************/ + +@sourceline = @file | @py_Module | @xmllocatable; + +@location = @location_ast | @location_default ; + +locations_ast(unique int id: @location_ast, + int module: @py_Module ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref); + +file_contents(unique int file: @file ref, string contents: string ref); + +py_module_path(int module: @py_Module ref, int file: @container ref); + +variable(unique int id : @py_variable, + int scope : @py_scope ref, + varchar(1) name : string ref); + +py_line_lengths(unique int id : @py_line, + int file: @py_Module ref, + int line : int ref, + int length : int ref); + +py_extracted_version(int module : @py_Module ref, + varchar(1) version : string ref); + +/* AUTO GENERATED PART STARTS HERE */ + + +/* AnnAssign.location = 0, location */ +/* AnnAssign.value = 1, expr */ +/* AnnAssign.annotation = 2, expr */ +/* AnnAssign.target = 3, expr */ + +/* Assert.location = 0, location */ +/* Assert.test = 1, expr */ +/* Assert.msg = 2, expr */ + +/* Assign.location = 0, location */ +/* Assign.value = 1, expr */ +/* Assign.targets = 2, expr_list */ + +/* AssignExpr.location = 0, location */ +/* AssignExpr.parenthesised = 1, bool */ +/* AssignExpr.value = 2, expr */ +/* AssignExpr.target = 3, expr */ + +/* Attribute.location = 0, location */ +/* Attribute.parenthesised = 1, bool */ +/* Attribute.value = 2, expr */ +/* Attribute.attr = 3, str */ +/* Attribute.ctx = 4, expr_context */ + +/* AugAssign.location = 0, location */ +/* AugAssign.operation = 1, BinOp */ + +/* Await.location = 0, location */ +/* Await.parenthesised = 1, bool */ +/* Await.value = 2, expr */ + +/* BinaryExpr.location = 0, location */ +/* BinaryExpr.parenthesised = 1, bool */ +/* BinaryExpr.left = 2, expr */ +/* BinaryExpr.op = 3, operator */ +/* BinaryExpr.right = 4, expr */ +/* BinaryExpr = AugAssign */ + +/* BoolExpr.location = 0, location */ +/* BoolExpr.parenthesised = 1, bool */ +/* BoolExpr.op = 2, boolop */ +/* BoolExpr.values = 3, expr_list */ + +/* Break.location = 0, location */ + +/* Bytes.location = 0, location */ +/* Bytes.parenthesised = 1, bool */ +/* Bytes.s = 2, bytes */ +/* Bytes.prefix = 3, bytes */ +/* Bytes.implicitly_concatenated_parts = 4, StringPart_list */ + +/* Call.location = 0, location */ +/* Call.parenthesised = 1, bool */ +/* Call.func = 2, expr */ +/* Call.positional_args = 3, expr_list */ +/* Call.named_args = 4, dict_item_list */ + +/* Case.location = 0, location */ +/* Case.pattern = 1, pattern */ +/* Case.guard = 2, expr */ +/* Case.body = 3, stmt_list */ + +/* Class.name = 0, str */ +/* Class.body = 1, stmt_list */ +/* Class = ClassExpr */ + +/* ClassExpr.location = 0, location */ +/* ClassExpr.parenthesised = 1, bool */ +/* ClassExpr.name = 2, str */ +/* ClassExpr.bases = 3, expr_list */ +/* ClassExpr.keywords = 4, dict_item_list */ +/* ClassExpr.inner_scope = 5, Class */ +/* ClassExpr.type_parameters = 6, type_parameter_list */ + +/* Compare.location = 0, location */ +/* Compare.parenthesised = 1, bool */ +/* Compare.left = 2, expr */ +/* Compare.ops = 3, cmpop_list */ +/* Compare.comparators = 4, expr_list */ + +/* Continue.location = 0, location */ + +/* Delete.location = 0, location */ +/* Delete.targets = 1, expr_list */ + +/* Dict.location = 0, location */ +/* Dict.parenthesised = 1, bool */ +/* Dict.items = 2, dict_item_list */ + +/* DictComp.location = 0, location */ +/* DictComp.parenthesised = 1, bool */ +/* DictComp.function = 2, Function */ +/* DictComp.iterable = 3, expr */ + +/* DictUnpacking.location = 0, location */ +/* DictUnpacking.value = 1, expr */ + +/* Ellipsis.location = 0, location */ +/* Ellipsis.parenthesised = 1, bool */ + +/* ExceptGroupStmt.location = 0, location */ +/* ExceptGroupStmt.type = 1, expr */ +/* ExceptGroupStmt.name = 2, expr */ +/* ExceptGroupStmt.body = 3, stmt_list */ + +/* ExceptStmt.location = 0, location */ +/* ExceptStmt.type = 1, expr */ +/* ExceptStmt.name = 2, expr */ +/* ExceptStmt.body = 3, stmt_list */ + +/* Exec.location = 0, location */ +/* Exec.body = 1, expr */ +/* Exec.globals = 2, expr */ +/* Exec.locals = 3, expr */ + +/* ExprStmt.location = 0, location */ +/* ExprStmt.value = 1, expr */ + +/* Filter.location = 0, location */ +/* Filter.parenthesised = 1, bool */ +/* Filter.value = 2, expr */ +/* Filter.filter = 3, expr */ + +/* For.location = 0, location */ +/* For.target = 1, expr */ +/* For.iter = 2, expr */ +/* For.body = 3, stmt_list */ +/* For.orelse = 4, stmt_list */ +/* For.is_async = 5, bool */ + +/* FormattedValue.location = 0, location */ +/* FormattedValue.parenthesised = 1, bool */ +/* FormattedValue.value = 2, expr */ +/* FormattedValue.conversion = 3, str */ +/* FormattedValue.format_spec = 4, JoinedStr */ + +/* Function.name = 0, str */ +/* Function.args = 1, parameter_list */ +/* Function.vararg = 2, expr */ +/* Function.kwonlyargs = 3, expr_list */ +/* Function.kwarg = 4, expr */ +/* Function.body = 5, stmt_list */ +/* Function.is_async = 6, bool */ +/* Function.type_parameters = 7, type_parameter_list */ +/* Function = FunctionParent */ + +/* FunctionExpr.location = 0, location */ +/* FunctionExpr.parenthesised = 1, bool */ +/* FunctionExpr.name = 2, str */ +/* FunctionExpr.args = 3, arguments */ +/* FunctionExpr.returns = 4, expr */ +/* FunctionExpr.inner_scope = 5, Function */ + +/* GeneratorExp.location = 0, location */ +/* GeneratorExp.parenthesised = 1, bool */ +/* GeneratorExp.function = 2, Function */ +/* GeneratorExp.iterable = 3, expr */ + +/* Global.location = 0, location */ +/* Global.names = 1, str_list */ + +/* Guard.location = 0, location */ +/* Guard.parenthesised = 1, bool */ +/* Guard.test = 2, expr */ + +/* If.location = 0, location */ +/* If.test = 1, expr */ +/* If.body = 2, stmt_list */ +/* If.orelse = 3, stmt_list */ + +/* IfExp.location = 0, location */ +/* IfExp.parenthesised = 1, bool */ +/* IfExp.test = 2, expr */ +/* IfExp.body = 3, expr */ +/* IfExp.orelse = 4, expr */ + +/* Import.location = 0, location */ +/* Import.names = 1, alias_list */ +/* Import.is_lazy = 2, bool */ + +/* ImportExpr.location = 0, location */ +/* ImportExpr.parenthesised = 1, bool */ +/* ImportExpr.level = 2, int */ +/* ImportExpr.name = 3, str */ +/* ImportExpr.top = 4, bool */ + +/* ImportStar.location = 0, location */ +/* ImportStar.module = 1, expr */ +/* ImportStar.is_lazy = 2, bool */ + +/* ImportMember.location = 0, location */ +/* ImportMember.parenthesised = 1, bool */ +/* ImportMember.module = 2, expr */ +/* ImportMember.name = 3, str */ + +/* Fstring.location = 0, location */ +/* Fstring.parenthesised = 1, bool */ +/* Fstring.values = 2, expr_list */ +/* Fstring = FormattedValue */ + +/* JoinedTemplateString.location = 0, location */ +/* JoinedTemplateString.parenthesised = 1, bool */ +/* JoinedTemplateString.strings = 2, TemplateString_list */ + +/* KeyValuePair.location = 0, location */ +/* KeyValuePair.value = 1, expr */ +/* KeyValuePair.key = 2, expr */ + +/* Lambda.location = 0, location */ +/* Lambda.parenthesised = 1, bool */ +/* Lambda.args = 2, arguments */ +/* Lambda.inner_scope = 3, Function */ + +/* List.location = 0, location */ +/* List.parenthesised = 1, bool */ +/* List.elts = 2, expr_list */ +/* List.ctx = 3, expr_context */ + +/* ListComp.location = 0, location */ +/* ListComp.parenthesised = 1, bool */ +/* ListComp.function = 2, Function */ +/* ListComp.iterable = 3, expr */ +/* ListComp.generators = 4, comprehension_list */ +/* ListComp.elt = 5, expr */ + +/* MatchStmt.location = 0, location */ +/* MatchStmt.subject = 1, expr */ +/* MatchStmt.cases = 2, stmt_list */ + +/* MatchAsPattern.location = 0, location */ +/* MatchAsPattern.parenthesised = 1, bool */ +/* MatchAsPattern.pattern = 2, pattern */ +/* MatchAsPattern.alias = 3, expr */ + +/* MatchCapturePattern.location = 0, location */ +/* MatchCapturePattern.parenthesised = 1, bool */ +/* MatchCapturePattern.variable = 2, expr */ + +/* MatchClassPattern.location = 0, location */ +/* MatchClassPattern.parenthesised = 1, bool */ +/* MatchClassPattern.class = 2, expr */ +/* MatchClassPattern.class_name = 3, expr */ +/* MatchClassPattern.positional = 4, pattern_list */ +/* MatchClassPattern.keyword = 5, pattern_list */ + +/* MatchDoubleStarPattern.location = 0, location */ +/* MatchDoubleStarPattern.parenthesised = 1, bool */ +/* MatchDoubleStarPattern.target = 2, pattern */ + +/* MatchKeyValuePattern.location = 0, location */ +/* MatchKeyValuePattern.parenthesised = 1, bool */ +/* MatchKeyValuePattern.key = 2, pattern */ +/* MatchKeyValuePattern.value = 3, pattern */ + +/* MatchKeywordPattern.location = 0, location */ +/* MatchKeywordPattern.parenthesised = 1, bool */ +/* MatchKeywordPattern.attribute = 2, expr */ +/* MatchKeywordPattern.value = 3, pattern */ + +/* MatchLiteralPattern.location = 0, location */ +/* MatchLiteralPattern.parenthesised = 1, bool */ +/* MatchLiteralPattern.literal = 2, expr */ + +/* MatchMappingPattern.location = 0, location */ +/* MatchMappingPattern.parenthesised = 1, bool */ +/* MatchMappingPattern.mappings = 2, pattern_list */ + +/* MatchOrPattern.location = 0, location */ +/* MatchOrPattern.parenthesised = 1, bool */ +/* MatchOrPattern.patterns = 2, pattern_list */ + +/* MatchSequencePattern.location = 0, location */ +/* MatchSequencePattern.parenthesised = 1, bool */ +/* MatchSequencePattern.patterns = 2, pattern_list */ + +/* MatchStarPattern.location = 0, location */ +/* MatchStarPattern.parenthesised = 1, bool */ +/* MatchStarPattern.target = 2, pattern */ + +/* MatchValuePattern.location = 0, location */ +/* MatchValuePattern.parenthesised = 1, bool */ +/* MatchValuePattern.value = 2, expr */ + +/* MatchWildcardPattern.location = 0, location */ +/* MatchWildcardPattern.parenthesised = 1, bool */ + +/* Module.name = 0, str */ +/* Module.hash = 1, str */ +/* Module.body = 2, stmt_list */ +/* Module.kind = 3, str */ + +/* Name.location = 0, location */ +/* Name.parenthesised = 1, bool */ +/* Name.variable = 2, variable */ +/* Name.ctx = 3, expr_context */ +/* Name = ParameterList */ + +/* Nonlocal.location = 0, location */ +/* Nonlocal.names = 1, str_list */ + +/* Num.location = 0, location */ +/* Num.parenthesised = 1, bool */ +/* Num.n = 2, number */ +/* Num.text = 3, number */ + +/* ParamSpec.location = 0, location */ +/* ParamSpec.name = 1, expr */ +/* ParamSpec.default = 2, expr */ + +/* Pass.location = 0, location */ + +/* PlaceHolder.location = 0, location */ +/* PlaceHolder.parenthesised = 1, bool */ +/* PlaceHolder.variable = 2, variable */ +/* PlaceHolder.ctx = 3, expr_context */ + +/* Print.location = 0, location */ +/* Print.dest = 1, expr */ +/* Print.values = 2, expr_list */ +/* Print.nl = 3, bool */ + +/* Raise.location = 0, location */ +/* Raise.exc = 1, expr */ +/* Raise.cause = 2, expr */ +/* Raise.type = 3, expr */ +/* Raise.inst = 4, expr */ +/* Raise.tback = 5, expr */ + +/* Repr.location = 0, location */ +/* Repr.parenthesised = 1, bool */ +/* Repr.value = 2, expr */ + +/* Return.location = 0, location */ +/* Return.value = 1, expr */ + +/* Set.location = 0, location */ +/* Set.parenthesised = 1, bool */ +/* Set.elts = 2, expr_list */ + +/* SetComp.location = 0, location */ +/* SetComp.parenthesised = 1, bool */ +/* SetComp.function = 2, Function */ +/* SetComp.iterable = 3, expr */ + +/* Slice.location = 0, location */ +/* Slice.parenthesised = 1, bool */ +/* Slice.start = 2, expr */ +/* Slice.stop = 3, expr */ +/* Slice.step = 4, expr */ + +/* SpecialOperation.location = 0, location */ +/* SpecialOperation.parenthesised = 1, bool */ +/* SpecialOperation.name = 2, str */ +/* SpecialOperation.arguments = 3, expr_list */ + +/* Starred.location = 0, location */ +/* Starred.parenthesised = 1, bool */ +/* Starred.value = 2, expr */ +/* Starred.ctx = 3, expr_context */ + +/* Str.location = 0, location */ +/* Str.parenthesised = 1, bool */ +/* Str.s = 2, str */ +/* Str.prefix = 3, str */ +/* Str.implicitly_concatenated_parts = 4, StringPart_list */ + +/* StringPart.text = 0, str */ +/* StringPart.location = 1, location */ +/* StringPart = StringPartList */ +/* StringPartList = BytesOrStr */ + +/* Subscript.location = 0, location */ +/* Subscript.parenthesised = 1, bool */ +/* Subscript.value = 2, expr */ +/* Subscript.index = 3, expr */ +/* Subscript.ctx = 4, expr_context */ + +/* TemplateDottedNotation.location = 0, location */ +/* TemplateDottedNotation.parenthesised = 1, bool */ +/* TemplateDottedNotation.value = 2, expr */ +/* TemplateDottedNotation.attr = 3, str */ +/* TemplateDottedNotation.ctx = 4, expr_context */ + +/* TemplateString.location = 0, location */ +/* TemplateString.parenthesised = 1, bool */ +/* TemplateString.prefix = 2, str */ +/* TemplateString.values = 3, expr_list */ +/* TemplateString = TemplateStringList */ + +/* TemplateStringPart.location = 0, location */ +/* TemplateStringPart.parenthesised = 1, bool */ +/* TemplateStringPart.text = 2, str */ +/* TemplateStringList = JoinedTemplateString */ + +/* TemplateWrite.location = 0, location */ +/* TemplateWrite.value = 1, expr */ + +/* Try.location = 0, location */ +/* Try.body = 1, stmt_list */ +/* Try.orelse = 2, stmt_list */ +/* Try.handlers = 3, stmt_list */ +/* Try.finalbody = 4, stmt_list */ + +/* Tuple.location = 0, location */ +/* Tuple.parenthesised = 1, bool */ +/* Tuple.elts = 2, expr_list */ +/* Tuple.ctx = 3, expr_context */ +/* Tuple = ParameterList */ + +/* TypeAlias.location = 0, location */ +/* TypeAlias.name = 1, expr */ +/* TypeAlias.type_parameters = 2, type_parameter_list */ +/* TypeAlias.value = 3, expr */ + +/* TypeVar.location = 0, location */ +/* TypeVar.name = 1, expr */ +/* TypeVar.bound = 2, expr */ +/* TypeVar.default = 3, expr */ + +/* TypeVarTuple.location = 0, location */ +/* TypeVarTuple.name = 1, expr */ +/* TypeVarTuple.default = 2, expr */ + +/* UnaryExpr.location = 0, location */ +/* UnaryExpr.parenthesised = 1, bool */ +/* UnaryExpr.op = 2, unaryop */ +/* UnaryExpr.operand = 3, expr */ + +/* While.location = 0, location */ +/* While.test = 1, expr */ +/* While.body = 2, stmt_list */ +/* While.orelse = 3, stmt_list */ + +/* With.location = 0, location */ +/* With.context_expr = 1, expr */ +/* With.optional_vars = 2, expr */ +/* With.body = 3, stmt_list */ +/* With.is_async = 4, bool */ + +/* Yield.location = 0, location */ +/* Yield.parenthesised = 1, bool */ +/* Yield.value = 2, expr */ + +/* YieldFrom.location = 0, location */ +/* YieldFrom.parenthesised = 1, bool */ +/* YieldFrom.value = 2, expr */ + +/* Alias.value = 0, expr */ +/* Alias.asname = 1, expr */ +/* Alias = AliasList */ +/* AliasList = Import */ + +/* Arguments.kw_defaults = 0, expr_list */ +/* Arguments.defaults = 1, expr_list */ +/* Arguments.annotations = 2, expr_list */ +/* Arguments.varargannotation = 3, expr */ +/* Arguments.kwargannotation = 4, expr */ +/* Arguments.kw_annotations = 5, expr_list */ +/* Arguments = ArgumentsParent */ +/* boolean = BoolParent */ +/* Boolop = BoolExpr */ +/* string = Bytes */ +/* Cmpop = CmpopList */ +/* CmpopList = Compare */ + +/* Comprehension.location = 0, location */ +/* Comprehension.iter = 1, expr */ +/* Comprehension.target = 2, expr */ +/* Comprehension.ifs = 3, expr_list */ +/* Comprehension = ComprehensionList */ +/* ComprehensionList = ListComp */ +/* DictItem = DictItemList */ +/* DictItemList = DictItemListParent */ + +/* Expr.location = 0, location */ +/* Expr.parenthesised = 1, bool */ +/* Expr = ExprParent */ +/* ExprContext = ExprContextParent */ +/* ExprList = ExprListParent */ +/* int = ImportExpr */ + +/* Keyword.location = 0, location */ +/* Keyword.value = 1, expr */ +/* Keyword.arg = 2, str */ +/* Location = LocationParent */ +/* string = Num */ +/* Operator = BinaryExpr */ +/* ParameterList = Function */ + +/* Pattern.location = 0, location */ +/* Pattern.parenthesised = 1, bool */ +/* Pattern = PatternParent */ +/* PatternList = PatternListParent */ + +/* Stmt.location = 0, location */ +/* Stmt = StmtList */ +/* StmtList = StmtListParent */ +/* string = StrParent */ +/* StringList = StrListParent */ + +/* TypeParameter.location = 0, location */ +/* TypeParameter = TypeParameterList */ +/* TypeParameterList = TypeParameterListParent */ +/* Unaryop = UnaryExpr */ +/* Variable = VariableParent */ +py_Classes(unique int id : @py_Class, + unique int parent : @py_ClassExpr ref); + +py_Functions(unique int id : @py_Function, + unique int parent : @py_Function_parent ref); + +py_Modules(unique int id : @py_Module); + +py_StringParts(unique int id : @py_StringPart, + int parent : @py_StringPart_list ref, + int idx : int ref); + +py_StringPart_lists(unique int id : @py_StringPart_list, + unique int parent : @py_Bytes_or_Str ref); + +py_TemplateString_lists(unique int id : @py_TemplateString_list, + unique int parent : @py_JoinedTemplateString ref); + +py_aliases(unique int id : @py_alias, + int parent : @py_alias_list ref, + int idx : int ref); + +py_alias_lists(unique int id : @py_alias_list, + unique int parent : @py_Import ref); + +py_arguments(unique int id : @py_arguments, + unique int parent : @py_arguments_parent ref); + +py_bools(int parent : @py_bool_parent ref, + int idx : int ref); + +py_boolops(unique int id : @py_boolop, + int kind: int ref, + unique int parent : @py_BoolExpr ref); + +py_bytes(varchar(1) id : string ref, + int parent : @py_Bytes ref, + int idx : int ref); + +py_cmpops(unique int id : @py_cmpop, + int kind: int ref, + int parent : @py_cmpop_list ref, + int idx : int ref); + +py_cmpop_lists(unique int id : @py_cmpop_list, + unique int parent : @py_Compare ref); + +py_comprehensions(unique int id : @py_comprehension, + int parent : @py_comprehension_list ref, + int idx : int ref); + +py_comprehension_lists(unique int id : @py_comprehension_list, + unique int parent : @py_ListComp ref); + +py_dict_items(unique int id : @py_dict_item, + int kind: int ref, + int parent : @py_dict_item_list ref, + int idx : int ref); + +py_dict_item_lists(unique int id : @py_dict_item_list, + unique int parent : @py_dict_item_list_parent ref); + +py_exprs(unique int id : @py_expr, + int kind: int ref, + int parent : @py_expr_parent ref, + int idx : int ref); + +py_expr_contexts(unique int id : @py_expr_context, + int kind: int ref, + unique int parent : @py_expr_context_parent ref); + +py_expr_lists(unique int id : @py_expr_list, + int parent : @py_expr_list_parent ref, + int idx : int ref); + +py_ints(int id : int ref, + unique int parent : @py_ImportExpr ref); + +py_locations(unique int id : @location ref, + unique int parent : @py_location_parent ref); + +py_numbers(varchar(1) id : string ref, + int parent : @py_Num ref, + int idx : int ref); + +py_operators(unique int id : @py_operator, + int kind: int ref, + unique int parent : @py_BinaryExpr ref); + +py_parameter_lists(unique int id : @py_parameter_list, + unique int parent : @py_Function ref); + +py_patterns(unique int id : @py_pattern, + int kind: int ref, + int parent : @py_pattern_parent ref, + int idx : int ref); + +py_pattern_lists(unique int id : @py_pattern_list, + int parent : @py_pattern_list_parent ref, + int idx : int ref); + +py_stmts(unique int id : @py_stmt, + int kind: int ref, + int parent : @py_stmt_list ref, + int idx : int ref); + +py_stmt_lists(unique int id : @py_stmt_list, + int parent : @py_stmt_list_parent ref, + int idx : int ref); + +py_strs(varchar(1) id : string ref, + int parent : @py_str_parent ref, + int idx : int ref); + +py_str_lists(unique int id : @py_str_list, + unique int parent : @py_str_list_parent ref); + +py_type_parameters(unique int id : @py_type_parameter, + int kind: int ref, + int parent : @py_type_parameter_list ref, + int idx : int ref); + +py_type_parameter_lists(unique int id : @py_type_parameter_list, + unique int parent : @py_type_parameter_list_parent ref); + +py_unaryops(unique int id : @py_unaryop, + int kind: int ref, + unique int parent : @py_UnaryExpr ref); + +py_variables(int id : @py_variable ref, + unique int parent : @py_variable_parent ref); + +case @py_boolop.kind of + 0 = @py_And +| 1 = @py_Or; + +case @py_cmpop.kind of + 0 = @py_Eq +| 1 = @py_Gt +| 2 = @py_GtE +| 3 = @py_In +| 4 = @py_Is +| 5 = @py_IsNot +| 6 = @py_Lt +| 7 = @py_LtE +| 8 = @py_NotEq +| 9 = @py_NotIn; + +case @py_dict_item.kind of + 0 = @py_DictUnpacking +| 1 = @py_KeyValuePair +| 2 = @py_keyword; + +case @py_expr.kind of + 0 = @py_Attribute +| 1 = @py_BinaryExpr +| 2 = @py_BoolExpr +| 3 = @py_Bytes +| 4 = @py_Call +| 5 = @py_ClassExpr +| 6 = @py_Compare +| 7 = @py_Dict +| 8 = @py_DictComp +| 9 = @py_Ellipsis +| 10 = @py_FunctionExpr +| 11 = @py_GeneratorExp +| 12 = @py_IfExp +| 13 = @py_ImportExpr +| 14 = @py_ImportMember +| 15 = @py_Lambda +| 16 = @py_List +| 17 = @py_ListComp +| 18 = @py_Guard +| 19 = @py_Name +| 20 = @py_Num +| 21 = @py_Repr +| 22 = @py_Set +| 23 = @py_SetComp +| 24 = @py_Slice +| 25 = @py_Starred +| 26 = @py_Str +| 27 = @py_Subscript +| 28 = @py_Tuple +| 29 = @py_UnaryExpr +| 30 = @py_Yield +| 31 = @py_YieldFrom +| 32 = @py_TemplateDottedNotation +| 33 = @py_Filter +| 34 = @py_PlaceHolder +| 35 = @py_Await +| 36 = @py_Fstring +| 37 = @py_FormattedValue +| 38 = @py_AssignExpr +| 39 = @py_SpecialOperation +| 40 = @py_TemplateString +| 41 = @py_JoinedTemplateString +| 42 = @py_TemplateStringPart; + +case @py_expr_context.kind of + 0 = @py_AugLoad +| 1 = @py_AugStore +| 2 = @py_Del +| 3 = @py_Load +| 4 = @py_Param +| 5 = @py_Store; + +case @py_operator.kind of + 0 = @py_Add +| 1 = @py_BitAnd +| 2 = @py_BitOr +| 3 = @py_BitXor +| 4 = @py_Div +| 5 = @py_FloorDiv +| 6 = @py_LShift +| 7 = @py_Mod +| 8 = @py_Mult +| 9 = @py_Pow +| 10 = @py_RShift +| 11 = @py_Sub +| 12 = @py_MatMult; + +case @py_pattern.kind of + 0 = @py_MatchAsPattern +| 1 = @py_MatchOrPattern +| 2 = @py_MatchLiteralPattern +| 3 = @py_MatchCapturePattern +| 4 = @py_MatchWildcardPattern +| 5 = @py_MatchValuePattern +| 6 = @py_MatchSequencePattern +| 7 = @py_MatchStarPattern +| 8 = @py_MatchMappingPattern +| 9 = @py_MatchDoubleStarPattern +| 10 = @py_MatchKeyValuePattern +| 11 = @py_MatchClassPattern +| 12 = @py_MatchKeywordPattern; + +case @py_stmt.kind of + 0 = @py_Assert +| 1 = @py_Assign +| 2 = @py_AugAssign +| 3 = @py_Break +| 4 = @py_Continue +| 5 = @py_Delete +| 6 = @py_ExceptStmt +| 7 = @py_ExceptGroupStmt +| 8 = @py_Exec +| 9 = @py_Expr_stmt +| 10 = @py_For +| 11 = @py_Global +| 12 = @py_If +| 13 = @py_Import +| 14 = @py_ImportStar +| 15 = @py_MatchStmt +| 16 = @py_Case +| 17 = @py_Nonlocal +| 18 = @py_Pass +| 19 = @py_Print +| 20 = @py_Raise +| 21 = @py_Return +| 22 = @py_Try +| 23 = @py_While +| 24 = @py_With +| 25 = @py_TemplateWrite +| 26 = @py_AnnAssign +| 27 = @py_TypeAlias; + +case @py_type_parameter.kind of + 0 = @py_ParamSpec +| 1 = @py_TypeVar +| 2 = @py_TypeVarTuple; + +case @py_unaryop.kind of + 0 = @py_Invert +| 1 = @py_Not +| 2 = @py_UAdd +| 3 = @py_USub; + +@py_Bytes_or_Str = @py_Bytes | @py_Str; + +@py_Function_parent = @py_DictComp | @py_FunctionExpr | @py_GeneratorExp | @py_Lambda | @py_ListComp | @py_SetComp; + +@py_arguments_parent = @py_FunctionExpr | @py_Lambda; + +@py_ast_node = @py_Class | @py_Function | @py_Module | @py_StringPart | @py_comprehension | @py_dict_item | @py_expr | @py_pattern | @py_stmt | @py_type_parameter; + +@py_bool_parent = @py_For | @py_Function | @py_Import | @py_ImportStar | @py_Print | @py_With | @py_expr | @py_pattern; + +@py_dict_item_list_parent = @py_Call | @py_ClassExpr | @py_Dict; + +@py_expr_context_parent = @py_Attribute | @py_List | @py_Name | @py_PlaceHolder | @py_Starred | @py_Subscript | @py_TemplateDottedNotation | @py_Tuple; + +@py_expr_list_parent = @py_Assign | @py_BoolExpr | @py_Call | @py_ClassExpr | @py_Compare | @py_Delete | @py_Fstring | @py_Function | @py_List | @py_Print | @py_Set | @py_SpecialOperation | @py_TemplateString | @py_Tuple | @py_arguments | @py_comprehension; + +@py_expr_or_stmt = @py_expr | @py_stmt; + +@py_expr_parent = @py_AnnAssign | @py_Assert | @py_Assign | @py_AssignExpr | @py_Attribute | @py_AugAssign | @py_Await | @py_BinaryExpr | @py_Call | @py_Case | @py_Compare | @py_DictComp | @py_DictUnpacking | @py_ExceptGroupStmt | @py_ExceptStmt | @py_Exec | @py_Expr_stmt | @py_Filter | @py_For | @py_FormattedValue | @py_Function | @py_FunctionExpr | @py_GeneratorExp | @py_Guard | @py_If | @py_IfExp | @py_ImportMember | @py_ImportStar | @py_KeyValuePair | @py_ListComp | @py_MatchAsPattern | @py_MatchCapturePattern | @py_MatchClassPattern | @py_MatchKeywordPattern | @py_MatchLiteralPattern | @py_MatchStmt | @py_MatchValuePattern | @py_ParamSpec | @py_Print | @py_Raise | @py_Repr | @py_Return | @py_SetComp | @py_Slice | @py_Starred | @py_Subscript | @py_TemplateDottedNotation | @py_TemplateString_list | @py_TemplateWrite | @py_TypeAlias | @py_TypeVar | @py_TypeVarTuple | @py_UnaryExpr | @py_While | @py_With | @py_Yield | @py_YieldFrom | @py_alias | @py_arguments | @py_comprehension | @py_expr_list | @py_keyword | @py_parameter_list; + +@py_location_parent = @py_DictUnpacking | @py_KeyValuePair | @py_StringPart | @py_comprehension | @py_expr | @py_keyword | @py_pattern | @py_stmt | @py_type_parameter; + +@py_parameter = @py_Name | @py_Tuple; + +@py_pattern_list_parent = @py_MatchClassPattern | @py_MatchMappingPattern | @py_MatchOrPattern | @py_MatchSequencePattern; + +@py_pattern_parent = @py_Case | @py_MatchAsPattern | @py_MatchDoubleStarPattern | @py_MatchKeyValuePattern | @py_MatchKeywordPattern | @py_MatchStarPattern | @py_pattern_list; + +@py_scope = @py_Class | @py_Function | @py_Module; + +@py_stmt_list_parent = @py_Case | @py_Class | @py_ExceptGroupStmt | @py_ExceptStmt | @py_For | @py_Function | @py_If | @py_MatchStmt | @py_Module | @py_Try | @py_While | @py_With; + +@py_str_list_parent = @py_Global | @py_Nonlocal; + +@py_str_parent = @py_Attribute | @py_Class | @py_ClassExpr | @py_FormattedValue | @py_Function | @py_FunctionExpr | @py_ImportExpr | @py_ImportMember | @py_Module | @py_SpecialOperation | @py_Str | @py_StringPart | @py_TemplateDottedNotation | @py_TemplateString | @py_TemplateStringPart | @py_keyword | @py_str_list; + +@py_type_parameter_list_parent = @py_ClassExpr | @py_Function | @py_TypeAlias; + +@py_variable_parent = @py_Name | @py_PlaceHolder; + + +/* + * End of auto-generated part + */ + + + +/* Map relative names to absolute names for imports */ +py_absolute_names(int module : @py_Module ref, + varchar(1) relname : string ref, + varchar(1) absname : string ref); + +py_exports(int id : @py_Module ref, + varchar(1) name : string ref); + +/* Successor information */ +py_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_true_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_exception_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_false_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_flow_bb_node(unique int flownode : @py_flow_node, + int realnode : @py_ast_node ref, + int basicblock : @py_flow_node ref, + int index : int ref); + +py_scope_flow(int flow : @py_flow_node ref, + int scope : @py_scope ref, + int kind : int ref); + +py_idoms(unique int node : @py_flow_node ref, + int immediate_dominator : @py_flow_node ref); + +py_ssa_phi(int phi : @py_ssa_var ref, + int arg: @py_ssa_var ref); + +py_ssa_var(unique int id : @py_ssa_var, + int var : @py_variable ref); + +py_ssa_use(int node: @py_flow_node ref, + int var : @py_ssa_var ref); + +py_ssa_defn(unique int id : @py_ssa_var ref, + int node: @py_flow_node ref); + +@py_base_var = @py_variable | @py_ssa_var; + +py_scopes(unique int node : @py_expr_or_stmt ref, + int scope : @py_scope ref); + +py_scope_location(unique int id : @location ref, + unique int scope : @py_scope ref); + +py_flags_versioned(varchar(1) name : string ref, + varchar(1) value : string ref, + varchar(1) version : string ref); + +py_syntax_error_versioned(unique int id : @location ref, + varchar(1) message : string ref, + varchar(1) version : string ref); + +py_comments(unique int id : @py_comment, + varchar(1) text : string ref, + unique int location : @location ref); + +/* Type information support */ + +py_cobjects(unique int obj : @py_cobject); + +py_cobjecttypes(unique int obj : @py_cobject ref, + int typeof : @py_cobject ref); + +py_cobjectnames(unique int obj : @py_cobject ref, + varchar(1) name : string ref); + +/* Kind should be 0 for introspection, > 0 from source, as follows: + 1 from C extension source + */ +py_cobject_sources(int obj : @py_cobject ref, + int kind : int ref); + +py_cmembers_versioned(int object : @py_cobject ref, + varchar(1) name : string ref, + int member : @py_cobject ref, + varchar(1) version : string ref); + +py_citems(int object : @py_cobject ref, + int index : int ref, + int member : @py_cobject ref); + +ext_argtype(int funcid : @py_object ref, + int arg : int ref, + int typeid : @py_object ref); + +ext_rettype(int funcid : @py_object ref, + int typeid : @py_object ref); + +ext_proptype(int propid : @py_object ref, + int typeid : @py_object ref); + +ext_argreturn(int funcid : @py_object ref, + int arg : int ref); + +py_special_objects(unique int obj : @py_cobject ref, + unique varchar(1) name : string ref); + +py_decorated_object(int object : @py_object ref, + int level: int ref); + +@py_object = @py_cobject | @py_flow_node; + +@py_source_element = @py_ast_node | @container; + +/** The union of all Python database entities */ +@top = + @py_source_element | @py_object | @py_base_var | @location | @py_line | @py_comment | + @py_expr_parent | @py_expr_context | + @py_operator | @py_boolop | @py_cmpop | @py_unaryop | + @py_cmpop_list | @py_alias_list | @py_StringPart_list | @py_comprehension_list | @py_dict_item_list | @py_pattern_list | @py_stmt_list | @py_str_list | @py_type_parameter_list | + @externalDefect | @externalMetric | @externalDataElement | @duplication_or_similarity | @svnentry | + @xmllocatable | @yaml_locatable; diff --git a/python/downgrades/eb5fc917c79bb23ce2de4a022f3e566d57a91be9/py_bools.ql b/python/downgrades/eb5fc917c79bb23ce2de4a022f3e566d57a91be9/py_bools.ql new file mode 100644 index 00000000000..725f01b9767 --- /dev/null +++ b/python/downgrades/eb5fc917c79bb23ce2de4a022f3e566d57a91be9/py_bools.ql @@ -0,0 +1,12 @@ +class BoolParent extends @py_bool_parent { + string toString() { result = "BoolParent" } +} + +// Drop py_bools rows for Import and ImportStar parents, +// since the old schema does not include them in @py_bool_parent. +from BoolParent parent, int idx +where + py_bools(parent, idx) and + not parent instanceof @py_Import and + not parent instanceof @py_ImportStar +select parent, idx diff --git a/python/downgrades/eb5fc917c79bb23ce2de4a022f3e566d57a91be9/semmlecode.python.dbscheme b/python/downgrades/eb5fc917c79bb23ce2de4a022f3e566d57a91be9/semmlecode.python.dbscheme new file mode 100644 index 00000000000..279cbb08d38 --- /dev/null +++ b/python/downgrades/eb5fc917c79bb23ce2de4a022f3e566d57a91be9/semmlecode.python.dbscheme @@ -0,0 +1,1289 @@ +/* + * This dbscheme is auto-generated by 'semmle/dbscheme_gen.py'. + * Run "make dbscheme" in python/extractor/ to regenerate. + * WARNING: Any modifications to this file will be lost. + * Relations can be changed by modifying master.py or + * by adding rules to dbscheme.template + */ + +/* This is a dummy line to alter the dbscheme, so we can make a database upgrade + * without actually changing any of the dbscheme predicates. It contains a date + * to allow for such updates in the future as well. + * + * 2020-07-02 + * + * DO NOT remove this comment carelessly, since it can revert the dbscheme back to a + * previously seen state (matching a previously seen SHA), which would make the upgrade + * mechanism not work properly. + */ + +/*- DEPRECATED: External defects and metrics -*/ + +externalDefects( + unique int id : @externalDefect, + varchar(900) queryPath : string ref, + int location : @location ref, + varchar(900) message : string ref, + float severity : float ref +); + +externalMetrics( + unique int id : @externalMetric, + varchar(900) queryPath : string ref, + int location : @location ref, + float value : float ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Database metadata -*/ + +/** + * The CLI will automatically emit applicable tuples for this table, + * such as `databaseMetadata("isOverlay", "true")` when building an + * overlay database. + */ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + +/*- Overlay support -*/ + +/** + * The CLI will automatically emit tuples for each new/modified/deleted file + * when building an overlay database. + */ +overlayChangedFiles( + string path: string ref +); + +/*- DEPRECATED: Snapshot date -*/ + +snapshotDate(unique date snapshotDate : date ref); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- DEPRECATED: Duplicate code -*/ + +duplicateCode( + unique int id : @duplication, + string relativePath : string ref, + int equivClass : int ref +); + +similarCode( + unique int id : @similarity, + string relativePath : string ref, + int equivClass : int ref +); + +@duplication_or_similarity = @duplication | @similarity + +tokens( + int id : @duplication_or_similarity ref, + int offset : int ref, + int beginLine : int ref, + int beginColumn : int ref, + int endLine : int ref, + int endColumn : int ref +); + +/*- DEPRECATED: Version control data -*/ + +svnentries( + unique int id : @svnentry, + string revision : string ref, + string author : string ref, + date revisionDate : date ref, + int changeSize : int ref +) + +svnaffectedfiles( + int id : @svnentry ref, + int file : @file ref, + string action : string ref +) + +svnentrymsg( + unique int id : @svnentry ref, + string message : string ref +) + +svnchurn( + int commit : @svnentry ref, + int file : @file ref, + int addedLines : int ref, + int deletedLines : int ref +) + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; + +/*- YAML -*/ + +#keyset[parent, idx] +yaml (unique int id: @yaml_node, + int kind: int ref, + int parent: @yaml_node_parent ref, + int idx: int ref, + string tag: string ref, + string tostring: string ref); + +case @yaml_node.kind of + 0 = @yaml_scalar_node +| 1 = @yaml_mapping_node +| 2 = @yaml_sequence_node +| 3 = @yaml_alias_node +; + +@yaml_collection_node = @yaml_mapping_node | @yaml_sequence_node; + +@yaml_node_parent = @yaml_collection_node | @file; + +yaml_anchors (unique int node: @yaml_node ref, + string anchor: string ref); + +yaml_aliases (unique int alias: @yaml_alias_node ref, + string target: string ref); + +yaml_scalars (unique int scalar: @yaml_scalar_node ref, + int style: int ref, + string value: string ref); + +yaml_errors (unique int id: @yaml_error, + string message: string ref); + +yaml_locations(unique int locatable: @yaml_locatable ref, + int location: @location_default ref); + +@yaml_locatable = @yaml_node | @yaml_error; + +/*- Python dbscheme -*/ + +/* + * Line metrics + */ +py_codelines(int id : @py_scope ref, + int count : int ref); + +py_commentlines(int id : @py_scope ref, + int count : int ref); + +py_docstringlines(int id : @py_scope ref, + int count : int ref); + +py_alllines(int id : @py_scope ref, + int count : int ref); + +/**************************** + Python dbscheme +****************************/ + +@sourceline = @file | @py_Module | @xmllocatable; + +@location = @location_ast | @location_default ; + +locations_ast(unique int id: @location_ast, + int module: @py_Module ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref); + +file_contents(unique int file: @file ref, string contents: string ref); + +py_module_path(int module: @py_Module ref, int file: @container ref); + +variable(unique int id : @py_variable, + int scope : @py_scope ref, + varchar(1) name : string ref); + +py_line_lengths(unique int id : @py_line, + int file: @py_Module ref, + int line : int ref, + int length : int ref); + +py_extracted_version(int module : @py_Module ref, + varchar(1) version : string ref); + +/* AUTO GENERATED PART STARTS HERE */ + + +/* AnnAssign.location = 0, location */ +/* AnnAssign.value = 1, expr */ +/* AnnAssign.annotation = 2, expr */ +/* AnnAssign.target = 3, expr */ + +/* Assert.location = 0, location */ +/* Assert.test = 1, expr */ +/* Assert.msg = 2, expr */ + +/* Assign.location = 0, location */ +/* Assign.value = 1, expr */ +/* Assign.targets = 2, expr_list */ + +/* AssignExpr.location = 0, location */ +/* AssignExpr.parenthesised = 1, bool */ +/* AssignExpr.value = 2, expr */ +/* AssignExpr.target = 3, expr */ + +/* Attribute.location = 0, location */ +/* Attribute.parenthesised = 1, bool */ +/* Attribute.value = 2, expr */ +/* Attribute.attr = 3, str */ +/* Attribute.ctx = 4, expr_context */ + +/* AugAssign.location = 0, location */ +/* AugAssign.operation = 1, BinOp */ + +/* Await.location = 0, location */ +/* Await.parenthesised = 1, bool */ +/* Await.value = 2, expr */ + +/* BinaryExpr.location = 0, location */ +/* BinaryExpr.parenthesised = 1, bool */ +/* BinaryExpr.left = 2, expr */ +/* BinaryExpr.op = 3, operator */ +/* BinaryExpr.right = 4, expr */ +/* BinaryExpr = AugAssign */ + +/* BoolExpr.location = 0, location */ +/* BoolExpr.parenthesised = 1, bool */ +/* BoolExpr.op = 2, boolop */ +/* BoolExpr.values = 3, expr_list */ + +/* Break.location = 0, location */ + +/* Bytes.location = 0, location */ +/* Bytes.parenthesised = 1, bool */ +/* Bytes.s = 2, bytes */ +/* Bytes.prefix = 3, bytes */ +/* Bytes.implicitly_concatenated_parts = 4, StringPart_list */ + +/* Call.location = 0, location */ +/* Call.parenthesised = 1, bool */ +/* Call.func = 2, expr */ +/* Call.positional_args = 3, expr_list */ +/* Call.named_args = 4, dict_item_list */ + +/* Case.location = 0, location */ +/* Case.pattern = 1, pattern */ +/* Case.guard = 2, expr */ +/* Case.body = 3, stmt_list */ + +/* Class.name = 0, str */ +/* Class.body = 1, stmt_list */ +/* Class = ClassExpr */ + +/* ClassExpr.location = 0, location */ +/* ClassExpr.parenthesised = 1, bool */ +/* ClassExpr.name = 2, str */ +/* ClassExpr.bases = 3, expr_list */ +/* ClassExpr.keywords = 4, dict_item_list */ +/* ClassExpr.inner_scope = 5, Class */ +/* ClassExpr.type_parameters = 6, type_parameter_list */ + +/* Compare.location = 0, location */ +/* Compare.parenthesised = 1, bool */ +/* Compare.left = 2, expr */ +/* Compare.ops = 3, cmpop_list */ +/* Compare.comparators = 4, expr_list */ + +/* Continue.location = 0, location */ + +/* Delete.location = 0, location */ +/* Delete.targets = 1, expr_list */ + +/* Dict.location = 0, location */ +/* Dict.parenthesised = 1, bool */ +/* Dict.items = 2, dict_item_list */ + +/* DictComp.location = 0, location */ +/* DictComp.parenthesised = 1, bool */ +/* DictComp.function = 2, Function */ +/* DictComp.iterable = 3, expr */ + +/* DictUnpacking.location = 0, location */ +/* DictUnpacking.value = 1, expr */ + +/* Ellipsis.location = 0, location */ +/* Ellipsis.parenthesised = 1, bool */ + +/* ExceptGroupStmt.location = 0, location */ +/* ExceptGroupStmt.type = 1, expr */ +/* ExceptGroupStmt.name = 2, expr */ +/* ExceptGroupStmt.body = 3, stmt_list */ + +/* ExceptStmt.location = 0, location */ +/* ExceptStmt.type = 1, expr */ +/* ExceptStmt.name = 2, expr */ +/* ExceptStmt.body = 3, stmt_list */ + +/* Exec.location = 0, location */ +/* Exec.body = 1, expr */ +/* Exec.globals = 2, expr */ +/* Exec.locals = 3, expr */ + +/* ExprStmt.location = 0, location */ +/* ExprStmt.value = 1, expr */ + +/* Filter.location = 0, location */ +/* Filter.parenthesised = 1, bool */ +/* Filter.value = 2, expr */ +/* Filter.filter = 3, expr */ + +/* For.location = 0, location */ +/* For.target = 1, expr */ +/* For.iter = 2, expr */ +/* For.body = 3, stmt_list */ +/* For.orelse = 4, stmt_list */ +/* For.is_async = 5, bool */ + +/* FormattedValue.location = 0, location */ +/* FormattedValue.parenthesised = 1, bool */ +/* FormattedValue.value = 2, expr */ +/* FormattedValue.conversion = 3, str */ +/* FormattedValue.format_spec = 4, JoinedStr */ + +/* Function.name = 0, str */ +/* Function.args = 1, parameter_list */ +/* Function.vararg = 2, expr */ +/* Function.kwonlyargs = 3, expr_list */ +/* Function.kwarg = 4, expr */ +/* Function.body = 5, stmt_list */ +/* Function.is_async = 6, bool */ +/* Function.type_parameters = 7, type_parameter_list */ +/* Function = FunctionParent */ + +/* FunctionExpr.location = 0, location */ +/* FunctionExpr.parenthesised = 1, bool */ +/* FunctionExpr.name = 2, str */ +/* FunctionExpr.args = 3, arguments */ +/* FunctionExpr.returns = 4, expr */ +/* FunctionExpr.inner_scope = 5, Function */ + +/* GeneratorExp.location = 0, location */ +/* GeneratorExp.parenthesised = 1, bool */ +/* GeneratorExp.function = 2, Function */ +/* GeneratorExp.iterable = 3, expr */ + +/* Global.location = 0, location */ +/* Global.names = 1, str_list */ + +/* Guard.location = 0, location */ +/* Guard.parenthesised = 1, bool */ +/* Guard.test = 2, expr */ + +/* If.location = 0, location */ +/* If.test = 1, expr */ +/* If.body = 2, stmt_list */ +/* If.orelse = 3, stmt_list */ + +/* IfExp.location = 0, location */ +/* IfExp.parenthesised = 1, bool */ +/* IfExp.test = 2, expr */ +/* IfExp.body = 3, expr */ +/* IfExp.orelse = 4, expr */ + +/* Import.location = 0, location */ +/* Import.names = 1, alias_list */ + +/* ImportExpr.location = 0, location */ +/* ImportExpr.parenthesised = 1, bool */ +/* ImportExpr.level = 2, int */ +/* ImportExpr.name = 3, str */ +/* ImportExpr.top = 4, bool */ + +/* ImportStar.location = 0, location */ +/* ImportStar.module = 1, expr */ + +/* ImportMember.location = 0, location */ +/* ImportMember.parenthesised = 1, bool */ +/* ImportMember.module = 2, expr */ +/* ImportMember.name = 3, str */ + +/* Fstring.location = 0, location */ +/* Fstring.parenthesised = 1, bool */ +/* Fstring.values = 2, expr_list */ +/* Fstring = FormattedValue */ + +/* JoinedTemplateString.location = 0, location */ +/* JoinedTemplateString.parenthesised = 1, bool */ +/* JoinedTemplateString.strings = 2, TemplateString_list */ + +/* KeyValuePair.location = 0, location */ +/* KeyValuePair.value = 1, expr */ +/* KeyValuePair.key = 2, expr */ + +/* Lambda.location = 0, location */ +/* Lambda.parenthesised = 1, bool */ +/* Lambda.args = 2, arguments */ +/* Lambda.inner_scope = 3, Function */ + +/* List.location = 0, location */ +/* List.parenthesised = 1, bool */ +/* List.elts = 2, expr_list */ +/* List.ctx = 3, expr_context */ + +/* ListComp.location = 0, location */ +/* ListComp.parenthesised = 1, bool */ +/* ListComp.function = 2, Function */ +/* ListComp.iterable = 3, expr */ +/* ListComp.generators = 4, comprehension_list */ +/* ListComp.elt = 5, expr */ + +/* MatchStmt.location = 0, location */ +/* MatchStmt.subject = 1, expr */ +/* MatchStmt.cases = 2, stmt_list */ + +/* MatchAsPattern.location = 0, location */ +/* MatchAsPattern.parenthesised = 1, bool */ +/* MatchAsPattern.pattern = 2, pattern */ +/* MatchAsPattern.alias = 3, expr */ + +/* MatchCapturePattern.location = 0, location */ +/* MatchCapturePattern.parenthesised = 1, bool */ +/* MatchCapturePattern.variable = 2, expr */ + +/* MatchClassPattern.location = 0, location */ +/* MatchClassPattern.parenthesised = 1, bool */ +/* MatchClassPattern.class = 2, expr */ +/* MatchClassPattern.class_name = 3, expr */ +/* MatchClassPattern.positional = 4, pattern_list */ +/* MatchClassPattern.keyword = 5, pattern_list */ + +/* MatchDoubleStarPattern.location = 0, location */ +/* MatchDoubleStarPattern.parenthesised = 1, bool */ +/* MatchDoubleStarPattern.target = 2, pattern */ + +/* MatchKeyValuePattern.location = 0, location */ +/* MatchKeyValuePattern.parenthesised = 1, bool */ +/* MatchKeyValuePattern.key = 2, pattern */ +/* MatchKeyValuePattern.value = 3, pattern */ + +/* MatchKeywordPattern.location = 0, location */ +/* MatchKeywordPattern.parenthesised = 1, bool */ +/* MatchKeywordPattern.attribute = 2, expr */ +/* MatchKeywordPattern.value = 3, pattern */ + +/* MatchLiteralPattern.location = 0, location */ +/* MatchLiteralPattern.parenthesised = 1, bool */ +/* MatchLiteralPattern.literal = 2, expr */ + +/* MatchMappingPattern.location = 0, location */ +/* MatchMappingPattern.parenthesised = 1, bool */ +/* MatchMappingPattern.mappings = 2, pattern_list */ + +/* MatchOrPattern.location = 0, location */ +/* MatchOrPattern.parenthesised = 1, bool */ +/* MatchOrPattern.patterns = 2, pattern_list */ + +/* MatchSequencePattern.location = 0, location */ +/* MatchSequencePattern.parenthesised = 1, bool */ +/* MatchSequencePattern.patterns = 2, pattern_list */ + +/* MatchStarPattern.location = 0, location */ +/* MatchStarPattern.parenthesised = 1, bool */ +/* MatchStarPattern.target = 2, pattern */ + +/* MatchValuePattern.location = 0, location */ +/* MatchValuePattern.parenthesised = 1, bool */ +/* MatchValuePattern.value = 2, expr */ + +/* MatchWildcardPattern.location = 0, location */ +/* MatchWildcardPattern.parenthesised = 1, bool */ + +/* Module.name = 0, str */ +/* Module.hash = 1, str */ +/* Module.body = 2, stmt_list */ +/* Module.kind = 3, str */ + +/* Name.location = 0, location */ +/* Name.parenthesised = 1, bool */ +/* Name.variable = 2, variable */ +/* Name.ctx = 3, expr_context */ +/* Name = ParameterList */ + +/* Nonlocal.location = 0, location */ +/* Nonlocal.names = 1, str_list */ + +/* Num.location = 0, location */ +/* Num.parenthesised = 1, bool */ +/* Num.n = 2, number */ +/* Num.text = 3, number */ + +/* ParamSpec.location = 0, location */ +/* ParamSpec.name = 1, expr */ +/* ParamSpec.default = 2, expr */ + +/* Pass.location = 0, location */ + +/* PlaceHolder.location = 0, location */ +/* PlaceHolder.parenthesised = 1, bool */ +/* PlaceHolder.variable = 2, variable */ +/* PlaceHolder.ctx = 3, expr_context */ + +/* Print.location = 0, location */ +/* Print.dest = 1, expr */ +/* Print.values = 2, expr_list */ +/* Print.nl = 3, bool */ + +/* Raise.location = 0, location */ +/* Raise.exc = 1, expr */ +/* Raise.cause = 2, expr */ +/* Raise.type = 3, expr */ +/* Raise.inst = 4, expr */ +/* Raise.tback = 5, expr */ + +/* Repr.location = 0, location */ +/* Repr.parenthesised = 1, bool */ +/* Repr.value = 2, expr */ + +/* Return.location = 0, location */ +/* Return.value = 1, expr */ + +/* Set.location = 0, location */ +/* Set.parenthesised = 1, bool */ +/* Set.elts = 2, expr_list */ + +/* SetComp.location = 0, location */ +/* SetComp.parenthesised = 1, bool */ +/* SetComp.function = 2, Function */ +/* SetComp.iterable = 3, expr */ + +/* Slice.location = 0, location */ +/* Slice.parenthesised = 1, bool */ +/* Slice.start = 2, expr */ +/* Slice.stop = 3, expr */ +/* Slice.step = 4, expr */ + +/* SpecialOperation.location = 0, location */ +/* SpecialOperation.parenthesised = 1, bool */ +/* SpecialOperation.name = 2, str */ +/* SpecialOperation.arguments = 3, expr_list */ + +/* Starred.location = 0, location */ +/* Starred.parenthesised = 1, bool */ +/* Starred.value = 2, expr */ +/* Starred.ctx = 3, expr_context */ + +/* Str.location = 0, location */ +/* Str.parenthesised = 1, bool */ +/* Str.s = 2, str */ +/* Str.prefix = 3, str */ +/* Str.implicitly_concatenated_parts = 4, StringPart_list */ + +/* StringPart.text = 0, str */ +/* StringPart.location = 1, location */ +/* StringPart = StringPartList */ +/* StringPartList = BytesOrStr */ + +/* Subscript.location = 0, location */ +/* Subscript.parenthesised = 1, bool */ +/* Subscript.value = 2, expr */ +/* Subscript.index = 3, expr */ +/* Subscript.ctx = 4, expr_context */ + +/* TemplateDottedNotation.location = 0, location */ +/* TemplateDottedNotation.parenthesised = 1, bool */ +/* TemplateDottedNotation.value = 2, expr */ +/* TemplateDottedNotation.attr = 3, str */ +/* TemplateDottedNotation.ctx = 4, expr_context */ + +/* TemplateString.location = 0, location */ +/* TemplateString.parenthesised = 1, bool */ +/* TemplateString.prefix = 2, str */ +/* TemplateString.values = 3, expr_list */ +/* TemplateString = TemplateStringList */ + +/* TemplateStringPart.location = 0, location */ +/* TemplateStringPart.parenthesised = 1, bool */ +/* TemplateStringPart.text = 2, str */ +/* TemplateStringList = JoinedTemplateString */ + +/* TemplateWrite.location = 0, location */ +/* TemplateWrite.value = 1, expr */ + +/* Try.location = 0, location */ +/* Try.body = 1, stmt_list */ +/* Try.orelse = 2, stmt_list */ +/* Try.handlers = 3, stmt_list */ +/* Try.finalbody = 4, stmt_list */ + +/* Tuple.location = 0, location */ +/* Tuple.parenthesised = 1, bool */ +/* Tuple.elts = 2, expr_list */ +/* Tuple.ctx = 3, expr_context */ +/* Tuple = ParameterList */ + +/* TypeAlias.location = 0, location */ +/* TypeAlias.name = 1, expr */ +/* TypeAlias.type_parameters = 2, type_parameter_list */ +/* TypeAlias.value = 3, expr */ + +/* TypeVar.location = 0, location */ +/* TypeVar.name = 1, expr */ +/* TypeVar.bound = 2, expr */ +/* TypeVar.default = 3, expr */ + +/* TypeVarTuple.location = 0, location */ +/* TypeVarTuple.name = 1, expr */ +/* TypeVarTuple.default = 2, expr */ + +/* UnaryExpr.location = 0, location */ +/* UnaryExpr.parenthesised = 1, bool */ +/* UnaryExpr.op = 2, unaryop */ +/* UnaryExpr.operand = 3, expr */ + +/* While.location = 0, location */ +/* While.test = 1, expr */ +/* While.body = 2, stmt_list */ +/* While.orelse = 3, stmt_list */ + +/* With.location = 0, location */ +/* With.context_expr = 1, expr */ +/* With.optional_vars = 2, expr */ +/* With.body = 3, stmt_list */ +/* With.is_async = 4, bool */ + +/* Yield.location = 0, location */ +/* Yield.parenthesised = 1, bool */ +/* Yield.value = 2, expr */ + +/* YieldFrom.location = 0, location */ +/* YieldFrom.parenthesised = 1, bool */ +/* YieldFrom.value = 2, expr */ + +/* Alias.value = 0, expr */ +/* Alias.asname = 1, expr */ +/* Alias = AliasList */ +/* AliasList = Import */ + +/* Arguments.kw_defaults = 0, expr_list */ +/* Arguments.defaults = 1, expr_list */ +/* Arguments.annotations = 2, expr_list */ +/* Arguments.varargannotation = 3, expr */ +/* Arguments.kwargannotation = 4, expr */ +/* Arguments.kw_annotations = 5, expr_list */ +/* Arguments = ArgumentsParent */ +/* boolean = BoolParent */ +/* Boolop = BoolExpr */ +/* string = Bytes */ +/* Cmpop = CmpopList */ +/* CmpopList = Compare */ + +/* Comprehension.location = 0, location */ +/* Comprehension.iter = 1, expr */ +/* Comprehension.target = 2, expr */ +/* Comprehension.ifs = 3, expr_list */ +/* Comprehension = ComprehensionList */ +/* ComprehensionList = ListComp */ +/* DictItem = DictItemList */ +/* DictItemList = DictItemListParent */ + +/* Expr.location = 0, location */ +/* Expr.parenthesised = 1, bool */ +/* Expr = ExprParent */ +/* ExprContext = ExprContextParent */ +/* ExprList = ExprListParent */ +/* int = ImportExpr */ + +/* Keyword.location = 0, location */ +/* Keyword.value = 1, expr */ +/* Keyword.arg = 2, str */ +/* Location = LocationParent */ +/* string = Num */ +/* Operator = BinaryExpr */ +/* ParameterList = Function */ + +/* Pattern.location = 0, location */ +/* Pattern.parenthesised = 1, bool */ +/* Pattern = PatternParent */ +/* PatternList = PatternListParent */ + +/* Stmt.location = 0, location */ +/* Stmt = StmtList */ +/* StmtList = StmtListParent */ +/* string = StrParent */ +/* StringList = StrListParent */ + +/* TypeParameter.location = 0, location */ +/* TypeParameter = TypeParameterList */ +/* TypeParameterList = TypeParameterListParent */ +/* Unaryop = UnaryExpr */ +/* Variable = VariableParent */ +py_Classes(unique int id : @py_Class, + unique int parent : @py_ClassExpr ref); + +py_Functions(unique int id : @py_Function, + unique int parent : @py_Function_parent ref); + +py_Modules(unique int id : @py_Module); + +py_StringParts(unique int id : @py_StringPart, + int parent : @py_StringPart_list ref, + int idx : int ref); + +py_StringPart_lists(unique int id : @py_StringPart_list, + unique int parent : @py_Bytes_or_Str ref); + +py_TemplateString_lists(unique int id : @py_TemplateString_list, + unique int parent : @py_JoinedTemplateString ref); + +py_aliases(unique int id : @py_alias, + int parent : @py_alias_list ref, + int idx : int ref); + +py_alias_lists(unique int id : @py_alias_list, + unique int parent : @py_Import ref); + +py_arguments(unique int id : @py_arguments, + unique int parent : @py_arguments_parent ref); + +py_bools(int parent : @py_bool_parent ref, + int idx : int ref); + +py_boolops(unique int id : @py_boolop, + int kind: int ref, + unique int parent : @py_BoolExpr ref); + +py_bytes(varchar(1) id : string ref, + int parent : @py_Bytes ref, + int idx : int ref); + +py_cmpops(unique int id : @py_cmpop, + int kind: int ref, + int parent : @py_cmpop_list ref, + int idx : int ref); + +py_cmpop_lists(unique int id : @py_cmpop_list, + unique int parent : @py_Compare ref); + +py_comprehensions(unique int id : @py_comprehension, + int parent : @py_comprehension_list ref, + int idx : int ref); + +py_comprehension_lists(unique int id : @py_comprehension_list, + unique int parent : @py_ListComp ref); + +py_dict_items(unique int id : @py_dict_item, + int kind: int ref, + int parent : @py_dict_item_list ref, + int idx : int ref); + +py_dict_item_lists(unique int id : @py_dict_item_list, + unique int parent : @py_dict_item_list_parent ref); + +py_exprs(unique int id : @py_expr, + int kind: int ref, + int parent : @py_expr_parent ref, + int idx : int ref); + +py_expr_contexts(unique int id : @py_expr_context, + int kind: int ref, + unique int parent : @py_expr_context_parent ref); + +py_expr_lists(unique int id : @py_expr_list, + int parent : @py_expr_list_parent ref, + int idx : int ref); + +py_ints(int id : int ref, + unique int parent : @py_ImportExpr ref); + +py_locations(unique int id : @location ref, + unique int parent : @py_location_parent ref); + +py_numbers(varchar(1) id : string ref, + int parent : @py_Num ref, + int idx : int ref); + +py_operators(unique int id : @py_operator, + int kind: int ref, + unique int parent : @py_BinaryExpr ref); + +py_parameter_lists(unique int id : @py_parameter_list, + unique int parent : @py_Function ref); + +py_patterns(unique int id : @py_pattern, + int kind: int ref, + int parent : @py_pattern_parent ref, + int idx : int ref); + +py_pattern_lists(unique int id : @py_pattern_list, + int parent : @py_pattern_list_parent ref, + int idx : int ref); + +py_stmts(unique int id : @py_stmt, + int kind: int ref, + int parent : @py_stmt_list ref, + int idx : int ref); + +py_stmt_lists(unique int id : @py_stmt_list, + int parent : @py_stmt_list_parent ref, + int idx : int ref); + +py_strs(varchar(1) id : string ref, + int parent : @py_str_parent ref, + int idx : int ref); + +py_str_lists(unique int id : @py_str_list, + unique int parent : @py_str_list_parent ref); + +py_type_parameters(unique int id : @py_type_parameter, + int kind: int ref, + int parent : @py_type_parameter_list ref, + int idx : int ref); + +py_type_parameter_lists(unique int id : @py_type_parameter_list, + unique int parent : @py_type_parameter_list_parent ref); + +py_unaryops(unique int id : @py_unaryop, + int kind: int ref, + unique int parent : @py_UnaryExpr ref); + +py_variables(int id : @py_variable ref, + unique int parent : @py_variable_parent ref); + +case @py_boolop.kind of + 0 = @py_And +| 1 = @py_Or; + +case @py_cmpop.kind of + 0 = @py_Eq +| 1 = @py_Gt +| 2 = @py_GtE +| 3 = @py_In +| 4 = @py_Is +| 5 = @py_IsNot +| 6 = @py_Lt +| 7 = @py_LtE +| 8 = @py_NotEq +| 9 = @py_NotIn; + +case @py_dict_item.kind of + 0 = @py_DictUnpacking +| 1 = @py_KeyValuePair +| 2 = @py_keyword; + +case @py_expr.kind of + 0 = @py_Attribute +| 1 = @py_BinaryExpr +| 2 = @py_BoolExpr +| 3 = @py_Bytes +| 4 = @py_Call +| 5 = @py_ClassExpr +| 6 = @py_Compare +| 7 = @py_Dict +| 8 = @py_DictComp +| 9 = @py_Ellipsis +| 10 = @py_FunctionExpr +| 11 = @py_GeneratorExp +| 12 = @py_IfExp +| 13 = @py_ImportExpr +| 14 = @py_ImportMember +| 15 = @py_Lambda +| 16 = @py_List +| 17 = @py_ListComp +| 18 = @py_Guard +| 19 = @py_Name +| 20 = @py_Num +| 21 = @py_Repr +| 22 = @py_Set +| 23 = @py_SetComp +| 24 = @py_Slice +| 25 = @py_Starred +| 26 = @py_Str +| 27 = @py_Subscript +| 28 = @py_Tuple +| 29 = @py_UnaryExpr +| 30 = @py_Yield +| 31 = @py_YieldFrom +| 32 = @py_TemplateDottedNotation +| 33 = @py_Filter +| 34 = @py_PlaceHolder +| 35 = @py_Await +| 36 = @py_Fstring +| 37 = @py_FormattedValue +| 38 = @py_AssignExpr +| 39 = @py_SpecialOperation +| 40 = @py_TemplateString +| 41 = @py_JoinedTemplateString +| 42 = @py_TemplateStringPart; + +case @py_expr_context.kind of + 0 = @py_AugLoad +| 1 = @py_AugStore +| 2 = @py_Del +| 3 = @py_Load +| 4 = @py_Param +| 5 = @py_Store; + +case @py_operator.kind of + 0 = @py_Add +| 1 = @py_BitAnd +| 2 = @py_BitOr +| 3 = @py_BitXor +| 4 = @py_Div +| 5 = @py_FloorDiv +| 6 = @py_LShift +| 7 = @py_Mod +| 8 = @py_Mult +| 9 = @py_Pow +| 10 = @py_RShift +| 11 = @py_Sub +| 12 = @py_MatMult; + +case @py_pattern.kind of + 0 = @py_MatchAsPattern +| 1 = @py_MatchOrPattern +| 2 = @py_MatchLiteralPattern +| 3 = @py_MatchCapturePattern +| 4 = @py_MatchWildcardPattern +| 5 = @py_MatchValuePattern +| 6 = @py_MatchSequencePattern +| 7 = @py_MatchStarPattern +| 8 = @py_MatchMappingPattern +| 9 = @py_MatchDoubleStarPattern +| 10 = @py_MatchKeyValuePattern +| 11 = @py_MatchClassPattern +| 12 = @py_MatchKeywordPattern; + +case @py_stmt.kind of + 0 = @py_Assert +| 1 = @py_Assign +| 2 = @py_AugAssign +| 3 = @py_Break +| 4 = @py_Continue +| 5 = @py_Delete +| 6 = @py_ExceptStmt +| 7 = @py_ExceptGroupStmt +| 8 = @py_Exec +| 9 = @py_Expr_stmt +| 10 = @py_For +| 11 = @py_Global +| 12 = @py_If +| 13 = @py_Import +| 14 = @py_ImportStar +| 15 = @py_MatchStmt +| 16 = @py_Case +| 17 = @py_Nonlocal +| 18 = @py_Pass +| 19 = @py_Print +| 20 = @py_Raise +| 21 = @py_Return +| 22 = @py_Try +| 23 = @py_While +| 24 = @py_With +| 25 = @py_TemplateWrite +| 26 = @py_AnnAssign +| 27 = @py_TypeAlias; + +case @py_type_parameter.kind of + 0 = @py_ParamSpec +| 1 = @py_TypeVar +| 2 = @py_TypeVarTuple; + +case @py_unaryop.kind of + 0 = @py_Invert +| 1 = @py_Not +| 2 = @py_UAdd +| 3 = @py_USub; + +@py_Bytes_or_Str = @py_Bytes | @py_Str; + +@py_Function_parent = @py_DictComp | @py_FunctionExpr | @py_GeneratorExp | @py_Lambda | @py_ListComp | @py_SetComp; + +@py_arguments_parent = @py_FunctionExpr | @py_Lambda; + +@py_ast_node = @py_Class | @py_Function | @py_Module | @py_StringPart | @py_comprehension | @py_dict_item | @py_expr | @py_pattern | @py_stmt | @py_type_parameter; + +@py_bool_parent = @py_For | @py_Function | @py_Print | @py_With | @py_expr | @py_pattern; + +@py_dict_item_list_parent = @py_Call | @py_ClassExpr | @py_Dict; + +@py_expr_context_parent = @py_Attribute | @py_List | @py_Name | @py_PlaceHolder | @py_Starred | @py_Subscript | @py_TemplateDottedNotation | @py_Tuple; + +@py_expr_list_parent = @py_Assign | @py_BoolExpr | @py_Call | @py_ClassExpr | @py_Compare | @py_Delete | @py_Fstring | @py_Function | @py_List | @py_Print | @py_Set | @py_SpecialOperation | @py_TemplateString | @py_Tuple | @py_arguments | @py_comprehension; + +@py_expr_or_stmt = @py_expr | @py_stmt; + +@py_expr_parent = @py_AnnAssign | @py_Assert | @py_Assign | @py_AssignExpr | @py_Attribute | @py_AugAssign | @py_Await | @py_BinaryExpr | @py_Call | @py_Case | @py_Compare | @py_DictComp | @py_DictUnpacking | @py_ExceptGroupStmt | @py_ExceptStmt | @py_Exec | @py_Expr_stmt | @py_Filter | @py_For | @py_FormattedValue | @py_Function | @py_FunctionExpr | @py_GeneratorExp | @py_Guard | @py_If | @py_IfExp | @py_ImportMember | @py_ImportStar | @py_KeyValuePair | @py_ListComp | @py_MatchAsPattern | @py_MatchCapturePattern | @py_MatchClassPattern | @py_MatchKeywordPattern | @py_MatchLiteralPattern | @py_MatchStmt | @py_MatchValuePattern | @py_ParamSpec | @py_Print | @py_Raise | @py_Repr | @py_Return | @py_SetComp | @py_Slice | @py_Starred | @py_Subscript | @py_TemplateDottedNotation | @py_TemplateString_list | @py_TemplateWrite | @py_TypeAlias | @py_TypeVar | @py_TypeVarTuple | @py_UnaryExpr | @py_While | @py_With | @py_Yield | @py_YieldFrom | @py_alias | @py_arguments | @py_comprehension | @py_expr_list | @py_keyword | @py_parameter_list; + +@py_location_parent = @py_DictUnpacking | @py_KeyValuePair | @py_StringPart | @py_comprehension | @py_expr | @py_keyword | @py_pattern | @py_stmt | @py_type_parameter; + +@py_parameter = @py_Name | @py_Tuple; + +@py_pattern_list_parent = @py_MatchClassPattern | @py_MatchMappingPattern | @py_MatchOrPattern | @py_MatchSequencePattern; + +@py_pattern_parent = @py_Case | @py_MatchAsPattern | @py_MatchDoubleStarPattern | @py_MatchKeyValuePattern | @py_MatchKeywordPattern | @py_MatchStarPattern | @py_pattern_list; + +@py_scope = @py_Class | @py_Function | @py_Module; + +@py_stmt_list_parent = @py_Case | @py_Class | @py_ExceptGroupStmt | @py_ExceptStmt | @py_For | @py_Function | @py_If | @py_MatchStmt | @py_Module | @py_Try | @py_While | @py_With; + +@py_str_list_parent = @py_Global | @py_Nonlocal; + +@py_str_parent = @py_Attribute | @py_Class | @py_ClassExpr | @py_FormattedValue | @py_Function | @py_FunctionExpr | @py_ImportExpr | @py_ImportMember | @py_Module | @py_SpecialOperation | @py_Str | @py_StringPart | @py_TemplateDottedNotation | @py_TemplateString | @py_TemplateStringPart | @py_keyword | @py_str_list; + +@py_type_parameter_list_parent = @py_ClassExpr | @py_Function | @py_TypeAlias; + +@py_variable_parent = @py_Name | @py_PlaceHolder; + + +/* + * End of auto-generated part + */ + + + +/* Map relative names to absolute names for imports */ +py_absolute_names(int module : @py_Module ref, + varchar(1) relname : string ref, + varchar(1) absname : string ref); + +py_exports(int id : @py_Module ref, + varchar(1) name : string ref); + +/* Successor information */ +py_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_true_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_exception_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_false_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_flow_bb_node(unique int flownode : @py_flow_node, + int realnode : @py_ast_node ref, + int basicblock : @py_flow_node ref, + int index : int ref); + +py_scope_flow(int flow : @py_flow_node ref, + int scope : @py_scope ref, + int kind : int ref); + +py_idoms(unique int node : @py_flow_node ref, + int immediate_dominator : @py_flow_node ref); + +py_ssa_phi(int phi : @py_ssa_var ref, + int arg: @py_ssa_var ref); + +py_ssa_var(unique int id : @py_ssa_var, + int var : @py_variable ref); + +py_ssa_use(int node: @py_flow_node ref, + int var : @py_ssa_var ref); + +py_ssa_defn(unique int id : @py_ssa_var ref, + int node: @py_flow_node ref); + +@py_base_var = @py_variable | @py_ssa_var; + +py_scopes(unique int node : @py_expr_or_stmt ref, + int scope : @py_scope ref); + +py_scope_location(unique int id : @location ref, + unique int scope : @py_scope ref); + +py_flags_versioned(varchar(1) name : string ref, + varchar(1) value : string ref, + varchar(1) version : string ref); + +py_syntax_error_versioned(unique int id : @location ref, + varchar(1) message : string ref, + varchar(1) version : string ref); + +py_comments(unique int id : @py_comment, + varchar(1) text : string ref, + unique int location : @location ref); + +/* Type information support */ + +py_cobjects(unique int obj : @py_cobject); + +py_cobjecttypes(unique int obj : @py_cobject ref, + int typeof : @py_cobject ref); + +py_cobjectnames(unique int obj : @py_cobject ref, + varchar(1) name : string ref); + +/* Kind should be 0 for introspection, > 0 from source, as follows: + 1 from C extension source + */ +py_cobject_sources(int obj : @py_cobject ref, + int kind : int ref); + +py_cmembers_versioned(int object : @py_cobject ref, + varchar(1) name : string ref, + int member : @py_cobject ref, + varchar(1) version : string ref); + +py_citems(int object : @py_cobject ref, + int index : int ref, + int member : @py_cobject ref); + +ext_argtype(int funcid : @py_object ref, + int arg : int ref, + int typeid : @py_object ref); + +ext_rettype(int funcid : @py_object ref, + int typeid : @py_object ref); + +ext_proptype(int propid : @py_object ref, + int typeid : @py_object ref); + +ext_argreturn(int funcid : @py_object ref, + int arg : int ref); + +py_special_objects(unique int obj : @py_cobject ref, + unique varchar(1) name : string ref); + +py_decorated_object(int object : @py_object ref, + int level: int ref); + +@py_object = @py_cobject | @py_flow_node; + +@py_source_element = @py_ast_node | @container; + +/** The union of all Python database entities */ +@top = + @py_source_element | @py_object | @py_base_var | @location | @py_line | @py_comment | + @py_expr_parent | @py_expr_context | + @py_operator | @py_boolop | @py_cmpop | @py_unaryop | + @py_cmpop_list | @py_alias_list | @py_StringPart_list | @py_comprehension_list | @py_dict_item_list | @py_pattern_list | @py_stmt_list | @py_str_list | @py_type_parameter_list | + @externalDefect | @externalMetric | @externalDataElement | @duplication_or_similarity | @svnentry | + @xmllocatable | @yaml_locatable; diff --git a/python/downgrades/eb5fc917c79bb23ce2de4a022f3e566d57a91be9/upgrade.properties b/python/downgrades/eb5fc917c79bb23ce2de4a022f3e566d57a91be9/upgrade.properties new file mode 100644 index 00000000000..4b9f991c51a --- /dev/null +++ b/python/downgrades/eb5fc917c79bb23ce2de4a022f3e566d57a91be9/upgrade.properties @@ -0,0 +1,3 @@ +description: Remove is_lazy field from Import and ImportStar (downgrade PEP 810 lazy imports) +compatibility: backwards +py_bools.rel: run py_bools.qlo diff --git a/python/extractor/semmle/python/ast.py b/python/extractor/semmle/python/ast.py index 1efe5cd1d19..93ab146cb6f 100644 --- a/python/extractor/semmle/python/ast.py +++ b/python/extractor/semmle/python/ast.py @@ -845,17 +845,19 @@ class If(stmt): class Import(stmt): - __slots__ = "names", + __slots__ = "is_lazy", "names", - def __init__(self, names): + def __init__(self, names, is_lazy=False): self.names = names + self.is_lazy = is_lazy class ImportFrom(stmt): - __slots__ = "module", + __slots__ = "is_lazy", "module", - def __init__(self, module): + def __init__(self, module, is_lazy=False): self.module = module + self.is_lazy = is_lazy class Nonlocal(stmt): diff --git a/python/extractor/semmle/python/master.py b/python/extractor/semmle/python/master.py index 2c17de4e14c..adb8d5c8a0d 100755 --- a/python/extractor/semmle/python/master.py +++ b/python/extractor/semmle/python/master.py @@ -334,9 +334,11 @@ IfExp.field('body', expr, 'if-true expression') IfExp.field('orelse', expr, 'if-false expression') Import.field('names', alias_list, 'alias list') +Import.field('is_lazy', bool_, 'lazy') ImportFrom.set_name('ImportStar') ImportFrom.field('module', expr) +ImportFrom.field('is_lazy', bool_, 'lazy') ImportMember.field('module', expr) ImportMember.field('name', string) diff --git a/python/extractor/semmle/python/parser/ast.py b/python/extractor/semmle/python/parser/ast.py index 85d87108e35..e1843131554 100644 --- a/python/extractor/semmle/python/parser/ast.py +++ b/python/extractor/semmle/python/parser/ast.py @@ -1432,7 +1432,7 @@ def rewrite_comp(node): elt = node.elt del node.elt else: - elt = ast.Tuple([node.value, node.key], LOAD) + elt = ast.Tuple([node.key, node.value], LOAD) elt.lineno = node.key.lineno elt.col_offset = node.key.col_offset elt._end = node.value._end diff --git a/python/extractor/semmle/python/parser/dump_ast.py b/python/extractor/semmle/python/parser/dump_ast.py index 23e1a973dfc..802bed8fac2 100644 --- a/python/extractor/semmle/python/parser/dump_ast.py +++ b/python/extractor/semmle/python/parser/dump_ast.py @@ -72,8 +72,8 @@ class AstDumper(object): # just not print it in that case. if field == "parenthesised" and value is None: continue - # Likewise, the default value for `is_async` is `False`, so we don't need to print it. - if field == "is_async" and value is False: + # Likewise, the default value for `is_async` and `is_lazy` is `False`, so we don't need to print it. + if field in ("is_async", "is_lazy") and value is False: continue output.write("{} {}:".format(indent,field)) if isinstance(value, list): diff --git a/python/extractor/semmle/python/parser/tsg_parser.py b/python/extractor/semmle/python/parser/tsg_parser.py index 6ee8286c4c7..356faf249ed 100644 --- a/python/extractor/semmle/python/parser/tsg_parser.py +++ b/python/extractor/semmle/python/parser/tsg_parser.py @@ -291,7 +291,7 @@ def create_placeholder_args(cls): if cls in (ast.Raise, ast.Ellipsis): return {} fields = ast_fields[cls] - args = {field: None for field in fields if field != "is_async"} + args = {field: None for field in fields if field not in ("is_async", "is_lazy")} for field in list_fields.get(cls, ()): args[field] = [] if cls in (ast.GeneratorExp, ast.ListComp, ast.SetComp, ast.DictComp): diff --git a/python/extractor/semmle/query_gen.py b/python/extractor/semmle/query_gen.py index b3fc2442e8a..e7f9d280ad1 100644 --- a/python/extractor/semmle/query_gen.py +++ b/python/extractor/semmle/query_gen.py @@ -211,6 +211,8 @@ HEADER = '''/** * WARNING: Any modifications to this file will be lost. * Relations can be changed by modifying master.py. */ +overlay[local] +module; ''' def main(): diff --git a/python/extractor/tests/parser/lazy_imports_new.expected b/python/extractor/tests/parser/lazy_imports_new.expected new file mode 100644 index 00000000000..ae881c2c1b3 --- /dev/null +++ b/python/extractor/tests/parser/lazy_imports_new.expected @@ -0,0 +1,284 @@ +Module: [2, 0] - [35, 0] + body: [ + Import: [2, 0] - [2, 13] + is_lazy: True + names: [ + alias: [2, 12] - [2, 13] + value: + ImportExpr: [2, 12] - [2, 13] + level: 0 + name: 'a' + top: True + asname: + Name: [2, 12] - [2, 13] + variable: Variable('a', None) + ctx: Store + ] + Import: [4, 0] - [4, 18] + is_lazy: True + names: [ + alias: [4, 12] - [4, 14] + value: + ImportExpr: [4, 12] - [4, 14] + level: 0 + name: 'b1' + top: True + asname: + Name: [4, 12] - [4, 14] + variable: Variable('b1', None) + ctx: Store + alias: [4, 16] - [4, 18] + value: + ImportExpr: [4, 16] - [4, 18] + level: 0 + name: 'b2' + top: True + asname: + Name: [4, 16] - [4, 18] + variable: Variable('b2', None) + ctx: Store + ] + Import: [6, 0] - [6, 20] + is_lazy: True + names: [ + alias: [6, 12] - [6, 20] + value: + ImportExpr: [6, 12] - [6, 20] + level: 0 + name: 'c1.c2.c3' + top: True + asname: + Name: [6, 12] - [6, 20] + variable: Variable('c1', None) + ctx: Store + ] + Import: [8, 0] - [8, 23] + is_lazy: True + names: [ + alias: [8, 12] - [8, 23] + value: + ImportExpr: [8, 12] - [8, 17] + level: 0 + name: 'd1.d2' + top: False + asname: + Name: [8, 21] - [8, 23] + variable: Variable('d3', None) + ctx: Store + ] + Import: [10, 0] - [10, 20] + is_lazy: True + names: [ + alias: [10, 19] - [10, 20] + value: + ImportMember: [10, 19] - [10, 20] + module: + ImportExpr: [10, 10] - [10, 11] + level: 0 + name: 'e' + top: False + name: 'f' + asname: + Name: [10, 19] - [10, 20] + variable: Variable('f', None) + ctx: Store + ] + Import: [12, 0] - [12, 29] + is_lazy: True + names: [ + alias: [12, 23] - [12, 25] + value: + ImportMember: [12, 23] - [12, 25] + module: + ImportExpr: [12, 10] - [12, 15] + level: 0 + name: 'g1.g2' + top: False + name: 'h1' + asname: + Name: [12, 23] - [12, 25] + variable: Variable('h1', None) + ctx: Store + alias: [12, 27] - [12, 29] + value: + ImportMember: [12, 27] - [12, 29] + module: + ImportExpr: [12, 10] - [12, 15] + level: 0 + name: 'g1.g2' + top: False + name: 'h2' + asname: + Name: [12, 27] - [12, 29] + variable: Variable('h2', None) + ctx: Store + ] + Import: [14, 0] - [14, 32] + is_lazy: True + names: [ + alias: [14, 20] - [14, 28] + value: + ImportMember: [14, 20] - [14, 28] + module: + ImportExpr: [14, 10] - [14, 12] + level: 0 + name: 'i1' + top: False + name: 'j1' + asname: + Name: [14, 26] - [14, 28] + variable: Variable('j2', None) + ctx: Store + alias: [14, 30] - [14, 32] + value: + ImportMember: [14, 30] - [14, 32] + module: + ImportExpr: [14, 10] - [14, 12] + level: 0 + name: 'i1' + top: False + name: 'j3' + asname: + Name: [14, 30] - [14, 32] + variable: Variable('j3', None) + ctx: Store + ] + Import: [16, 0] - [16, 37] + is_lazy: True + names: [ + alias: [16, 25] - [16, 33] + value: + ImportMember: [16, 25] - [16, 33] + module: + ImportExpr: [16, 10] - [16, 17] + level: 2 + name: 'k1.k2' + top: False + name: 'l1' + asname: + Name: [16, 31] - [16, 33] + variable: Variable('l2', None) + ctx: Store + alias: [16, 35] - [16, 37] + value: + ImportMember: [16, 35] - [16, 37] + module: + ImportExpr: [16, 10] - [16, 17] + level: 2 + name: 'k1.k2' + top: False + name: 'l3' + asname: + Name: [16, 35] - [16, 37] + variable: Variable('l3', None) + ctx: Store + ] + Import: [18, 0] - [18, 20] + is_lazy: True + names: [ + alias: [18, 19] - [18, 20] + value: + ImportMember: [18, 19] - [18, 20] + module: + ImportExpr: [18, 10] - [18, 11] + level: 1 + name: None + top: False + name: 'm' + asname: + Name: [18, 19] - [18, 20] + variable: Variable('m', None) + ctx: Store + ] + Import: [20, 0] - [20, 22] + is_lazy: True + names: [ + alias: [20, 21] - [20, 22] + value: + ImportMember: [20, 21] - [20, 22] + module: + ImportExpr: [20, 10] - [20, 13] + level: 3 + name: None + top: False + name: 'n' + asname: + Name: [20, 21] - [20, 22] + variable: Variable('n', None) + ctx: Store + ] + ImportFrom: [22, 0] - [22, 20] + is_lazy: True + module: + ImportExpr: [22, 10] - [22, 11] + level: 0 + name: 'o' + top: False + Assign: [26, 0] - [26, 8] + targets: [ + Name: [26, 0] - [26, 4] + variable: Variable('lazy', None) + ctx: Store + ] + value: + Num: [26, 7] - [26, 8] + n: 1 + text: '1' + Assign: [28, 0] - [28, 11] + targets: [ + Subscript: [28, 0] - [28, 7] + value: + Name: [28, 0] - [28, 4] + variable: Variable('lazy', None) + ctx: Load + index: + Num: [28, 5] - [28, 6] + n: 2 + text: '2' + ctx: Store + ] + value: + Num: [28, 10] - [28, 11] + n: 3 + text: '3' + Assign: [30, 0] - [30, 12] + targets: [ + Attribute: [30, 0] - [30, 8] + value: + Name: [30, 0] - [30, 4] + variable: Variable('lazy', None) + ctx: Load + attr: 'foo' + ctx: Store + ] + value: + Num: [30, 11] - [30, 12] + n: 4 + text: '4' + Expr: [32, 0] - [32, 6] + value: + Call: [32, 0] - [32, 6] + func: + Name: [32, 0] - [32, 4] + variable: Variable('lazy', None) + ctx: Load + positional_args: [] + named_args: [] + AnnAssign: [34, 0] - [34, 14] + value: None + annotation: + Name: [34, 10] - [34, 14] + variable: Variable('case', None) + ctx: Load + target: + Subscript: [34, 0] - [34, 7] + value: + Name: [34, 0] - [34, 4] + variable: Variable('lazy', None) + ctx: Load + index: + Num: [34, 5] - [34, 6] + n: 5 + text: '5' + ctx: Store + ] diff --git a/python/extractor/tests/parser/lazy_imports_new.py b/python/extractor/tests/parser/lazy_imports_new.py new file mode 100644 index 00000000000..13d01eaa6c4 --- /dev/null +++ b/python/extractor/tests/parser/lazy_imports_new.py @@ -0,0 +1,34 @@ +# Basic lazy imports (PEP 810) +lazy import a + +lazy import b1, b2 + +lazy import c1.c2.c3 + +lazy import d1.d2 as d3 + +lazy from e import f + +lazy from g1.g2 import h1, h2 + +lazy from i1 import j1 as j2, j3 + +lazy from ..k1.k2 import l1 as l2, l3 + +lazy from . import m + +lazy from ... import n + +lazy from o import * + + +# `lazy` used as a regular identifier (soft keyword behavior) +lazy = 1 + +lazy[2] = 3 + +lazy.foo = 4 + +lazy() + +lazy[5] : case diff --git a/python/extractor/tests/parser/unpacking_in_comprehensions_new.expected b/python/extractor/tests/parser/unpacking_in_comprehensions_new.expected new file mode 100644 index 00000000000..a95d0bc2505 --- /dev/null +++ b/python/extractor/tests/parser/unpacking_in_comprehensions_new.expected @@ -0,0 +1,285 @@ +Module: [4, 0] - [20, 0] + body: [ + Expr: [4, 0] - [4, 15] + value: + ListComp: [4, 0] - [4, 15] + elt: None + generators: None + function: + Function: [4, 0] - [4, 15] + name: 'listcomp' + type_parameters: [] + args: [ + Name: [4, 0] - [4, 15] + variable: Variable('.0', None) + ctx: Param + ] + vararg: None + kwonlyargs: None + kwarg: None + body: [ + For: [4, 0] - [4, 15] + target: + Name: [4, 8] - [4, 9] + variable: Variable('x', None) + ctx: Store + iter: + Name: [4, 0] - [4, 15] + variable: Variable('.0', None) + ctx: Load + body: [ + Expr: [4, 1] - [4, 3] + value: + YieldFrom: [4, 1] - [4, 3] + value: + Name: [4, 2] - [4, 3] + variable: Variable('x', None) + ctx: Load + ] + orelse: None + ] + iterable: + Name: [4, 13] - [4, 14] + variable: Variable('y', None) + ctx: Load + Expr: [7, 0] - [7, 15] + value: + SetComp: [7, 0] - [7, 15] + elt: None + generators: None + function: + Function: [7, 0] - [7, 15] + name: 'setcomp' + type_parameters: [] + args: [ + Name: [7, 0] - [7, 15] + variable: Variable('.0', None) + ctx: Param + ] + vararg: None + kwonlyargs: None + kwarg: None + body: [ + For: [7, 0] - [7, 15] + target: + Name: [7, 8] - [7, 9] + variable: Variable('x', None) + ctx: Store + iter: + Name: [7, 0] - [7, 15] + variable: Variable('.0', None) + ctx: Load + body: [ + Expr: [7, 1] - [7, 3] + value: + YieldFrom: [7, 1] - [7, 3] + value: + Name: [7, 2] - [7, 3] + variable: Variable('x', None) + ctx: Load + ] + orelse: None + ] + iterable: + Name: [7, 13] - [7, 14] + variable: Variable('y', None) + ctx: Load + Expr: [10, 0] - [10, 20] + value: + DictComp: [10, 0] - [10, 20] + key: None + value: None + generators: None + function: + Function: [10, 0] - [10, 20] + name: 'dictcomp' + type_parameters: [] + args: [ + Name: [10, 0] - [10, 20] + variable: Variable('.0', None) + ctx: Param + ] + vararg: None + kwonlyargs: None + kwarg: None + body: [ + For: [10, 0] - [10, 20] + target: + Name: [10, 9] - [10, 10] + variable: Variable('d', None) + ctx: Store + iter: + Name: [10, 0] - [10, 20] + variable: Variable('.0', None) + ctx: Load + body: [ + Expr: [10, 1] - [10, 4] + value: + YieldFrom: [10, 1] - [10, 4] + value: + Call: [10, 3] - [10, 4] + func: + Attribute: [10, 3] - [10, 4] + value: + Name: [10, 3] - [10, 4] + variable: Variable('d', None) + ctx: Load + attr: 'items' + ctx: Load + positional_args: [] + named_args: [] + ] + orelse: None + ] + iterable: + Name: [10, 14] - [10, 19] + variable: Variable('dicts', None) + ctx: Load + Expr: [13, 0] - [13, 15] + value: + GeneratorExp: [13, 1] - [13, 14] + elt: None + generators: None + function: + Function: [13, 1] - [13, 14] + name: 'genexpr' + type_parameters: [] + args: [ + Name: [13, 1] - [13, 14] + variable: Variable('.0', None) + ctx: Param + ] + vararg: None + kwonlyargs: None + kwarg: None + body: [ + For: [13, 1] - [13, 14] + target: + Name: [13, 8] - [13, 9] + variable: Variable('x', None) + ctx: Store + iter: + Name: [13, 1] - [13, 14] + variable: Variable('.0', None) + ctx: Load + body: [ + Expr: [13, 1] - [13, 3] + value: + YieldFrom: [13, 1] - [13, 3] + value: + Name: [13, 2] - [13, 3] + variable: Variable('x', None) + ctx: Load + ] + orelse: None + ] + iterable: + Name: [13, 13] - [13, 14] + variable: Variable('y', None) + ctx: Load + parenthesised: True + Expr: [16, 0] - [16, 20] + value: + ListComp: [16, 0] - [16, 20] + elt: None + generators: None + function: + Function: [16, 0] - [16, 20] + name: 'listcomp' + type_parameters: [] + args: [ + Name: [16, 0] - [16, 20] + variable: Variable('.0', None) + ctx: Param + ] + vararg: None + kwonlyargs: None + kwarg: None + body: [ + For: [16, 0] - [16, 20] + target: + Name: [16, 8] - [16, 9] + variable: Variable('x', None) + ctx: Store + iter: + Name: [16, 0] - [16, 20] + variable: Variable('.0', None) + ctx: Load + body: [ + If: [16, 18] - [16, 19] + test: + Name: [16, 18] - [16, 19] + variable: Variable('x', None) + ctx: Load + body: [ + Expr: [16, 1] - [16, 3] + value: + YieldFrom: [16, 1] - [16, 3] + value: + Name: [16, 2] - [16, 3] + variable: Variable('x', None) + ctx: Load + ] + orelse: None + ] + orelse: None + ] + iterable: + Name: [16, 13] - [16, 14] + variable: Variable('y', None) + ctx: Load + Expr: [19, 0] - [19, 26] + value: + ListComp: [19, 0] - [19, 26] + elt: None + generators: None + function: + Function: [19, 0] - [19, 26] + name: 'listcomp' + type_parameters: [] + args: [ + Name: [19, 0] - [19, 26] + variable: Variable('.0', None) + ctx: Param + ] + vararg: None + kwonlyargs: None + kwarg: None + body: [ + For: [19, 0] - [19, 26] + target: + Name: [19, 8] - [19, 9] + variable: Variable('y', None) + ctx: Store + iter: + Name: [19, 0] - [19, 26] + variable: Variable('.0', None) + ctx: Load + body: [ + For: [19, 0] - [19, 26] + target: + Name: [19, 19] - [19, 20] + variable: Variable('x', None) + ctx: Store + iter: + Name: [19, 24] - [19, 25] + variable: Variable('y', None) + ctx: Load + body: [ + Expr: [19, 1] - [19, 3] + value: + YieldFrom: [19, 1] - [19, 3] + value: + Name: [19, 2] - [19, 3] + variable: Variable('x', None) + ctx: Load + ] + orelse: None + ] + orelse: None + ] + iterable: + Name: [19, 13] - [19, 14] + variable: Variable('z', None) + ctx: Load + ] diff --git a/python/extractor/tests/parser/unpacking_in_comprehensions_new.py b/python/extractor/tests/parser/unpacking_in_comprehensions_new.py new file mode 100644 index 00000000000..024e0fe1cea --- /dev/null +++ b/python/extractor/tests/parser/unpacking_in_comprehensions_new.py @@ -0,0 +1,19 @@ +# PEP 798: Unpacking in comprehensions + +# Star unpacking in list comprehension +[*x for x in y] + +# Star unpacking in set comprehension +{*x for x in y} + +# Double-star unpacking in dict comprehension +{**d for d in dicts} + +# Star unpacking in generator expression +(*x for x in y) + +# With conditions +[*x for x in y if x] + +# Multiple for clauses +[*x for y in z for x in y] diff --git a/python/extractor/tsg-python/python.tsg b/python/extractor/tsg-python/python.tsg index dd11814753d..c832f7e6321 100644 --- a/python/extractor/tsg-python/python.tsg +++ b/python/extractor/tsg-python/python.tsg @@ -403,7 +403,7 @@ ;;; GeneratorExp -(generator_expression . "(" . (comment)* . (expression) @start [(for_in_clause) (if_clause)] @end . (comment)* . ")" .) @generatorexp +(generator_expression . "(" . (comment)* . [(expression) (list_splat)] @start [(for_in_clause) (if_clause)] @end . (comment)* . ")" .) @generatorexp { attr (@generatorexp.node) _location_start = (location-start @start) attr (@generatorexp.node) _location_end = (location-end @end) @@ -415,13 +415,13 @@ attr (@if.node) _location_end = (location-end @expr) } -(generator_expression . "(" . (comment)* . (expression) @start (for_in_clause) @child [(for_in_clause) (if_clause)] @end . (comment)* . ")" .) @_genexpr +(generator_expression . "(" . (comment)* . [(expression) (list_splat)] @start (for_in_clause) @child [(for_in_clause) (if_clause)] @end . (comment)* . ")" .) @_genexpr { attr (@child.node) _location_start = (location-start @start) attr (@child.node) _location_end = (location-end @end) } -(generator_expression . "(" . (comment)* . (expression) @start (for_in_clause) @end . (comment)* . ")" .) @_genexpr +(generator_expression . "(" . (comment)* . [(expression) (list_splat)] @start (for_in_clause) @end . (comment)* . ")" .) @_genexpr { attr (@end.node) _location_start = (location-start @start) attr (@end.node) _location_end = (location-end @end) @@ -795,12 +795,7 @@ ;;;;;; DictComp (`{a: b for c in d if e}`) ; See GeneratorExp for details. -(dictionary_comprehension - body: (pair - key: (_) @_key - value: (_) @_value - ) -) @genexpr +(dictionary_comprehension) @genexpr { ; Synthesize the `genexpr` function let @genexpr.fun = (ast-node @genexpr "Function") @@ -862,7 +857,7 @@ ; information for the entire generator expression (yes, it is a wide parameter!) and so we must recreate the logic for ; setting this location information correctly. -(generator_expression . "(" . (comment)* . (expression) @start [(for_in_clause) (if_clause)] @end . (comment)* . ")" .) @genexpr +(generator_expression . "(" . (comment)* . [(expression) (list_splat)] @start [(for_in_clause) (if_clause)] @end . (comment)* . ")" .) @genexpr { ; Synthesize the `genexpr` function let @genexpr.fun = (ast-node @genexpr "Function") @@ -1034,12 +1029,25 @@ ; For everything except dictionary comprehensions, the innermost expression is just the `body` of the ; comprehension. [ - (generator_expression body: (_) @body) @genexpr - (list_comprehension body: (_) @body) @genexpr - (set_comprehension body: (_) @body) @genexpr + (generator_expression body: (expression) @body) @genexpr + (list_comprehension body: (expression) @body) @genexpr + (set_comprehension body: (expression) @body) @genexpr ] { let @genexpr.result = @body.node + let @genexpr.yield_kind = "Yield" +} + +; For starred comprehensions (PEP 798), the result is the inner expression (not the Starred +; wrapper), and we use `yield from` instead of `yield` to represent the unpacking semantics. +[ + (generator_expression body: (list_splat (expression) @inner) @_body) @genexpr + (list_comprehension body: (list_splat (expression) @inner) @_body) @genexpr + (set_comprehension body: (list_splat (expression) @inner) @_body) @genexpr +] +{ + let @genexpr.result = @inner.node + let @genexpr.yield_kind = "YieldFrom" } ; For dict comprehensions, we build an explicit tuple using the key and value pair. @@ -1052,13 +1060,31 @@ { let tuple = (ast-node @body "Tuple") edge tuple -> @key.node - attr (tuple -> @key.node) elts = 1 + attr (tuple -> @key.node) elts = 0 edge tuple -> @value.node - attr (tuple -> @value.node) elts = 0 - ; TODO verify that it is correct to use a `(value, key)` tuple, and not a `(key, value)` tuple above. - ; That is what the current parser does... + attr (tuple -> @value.node) elts = 1 attr (tuple) ctx = "load" let @genexpr.result = tuple + let @genexpr.yield_kind = "Yield" +} + +; For dict comprehensions with unpacking (PEP 798), `{**d for d in dicts}` desugars to +; `yield from d.items()` to produce (key, value) tuples consistent with the regular dict comp model. +(dictionary_comprehension + body: (dictionary_splat (expression) @inner) @_body +) @genexpr +{ + ; Synthesize `d.items()`: Attribute(value=d, attr='items') then Call(func=attr) + let attr = (ast-node @inner "Attribute") + attr (attr) value = @inner.node + attr (attr) attr = "items" + attr (attr) ctx = "load" + + let call = (ast-node @inner "Call") + attr (call) func = attr + + let @genexpr.result = call + let @genexpr.yield_kind = "YieldFrom" } ; For the final clause, we need to hook it up with the rest of the expression. @@ -1094,7 +1120,7 @@ let last = (get-last-element @last_candidates) let expr = (ast-node @body "Expr") - let yield = (ast-node @body "Yield") + let yield = (ast-node @body @genexpr.yield_kind) let @genexpr.expr = expr let @genexpr.yield = yield @@ -1777,6 +1803,13 @@ attr (@importfrom.importexpr) level = level } +; Set is_lazy for lazy import statements (PEP 810) +[ + (import_statement is_lazy: _) + (import_from_statement is_lazy: _) +] @lazy_import +{ attr (@lazy_import.node) is_lazy = #true } + ;;;;;; End of Import (`from ... import ...`) ;;;;;; Raise (`raise ...`) diff --git a/python/extractor/tsg-python/tsp/grammar.js b/python/extractor/tsg-python/tsp/grammar.js index c53a67da126..8f4dd8d7cf6 100644 --- a/python/extractor/tsg-python/tsp/grammar.js +++ b/python/extractor/tsg-python/tsp/grammar.js @@ -109,6 +109,7 @@ module.exports = grammar({ ), import_statement: $ => seq( + optional(field('is_lazy', 'lazy')), 'import', $._import_list ), @@ -131,6 +132,7 @@ module.exports = grammar({ ), import_from_statement: $ => seq( + optional(field('is_lazy', 'lazy')), 'from', field('module_name', choice( $.relative_import, @@ -1029,28 +1031,28 @@ module.exports = grammar({ list_comprehension: $ => seq( '[', - field('body', $.expression), + field('body', choice($.expression, $.list_splat)), $._comprehension_clauses, ']' ), dictionary_comprehension: $ => seq( '{', - field('body', $.pair), + field('body', choice($.pair, $.dictionary_splat)), $._comprehension_clauses, '}' ), set_comprehension: $ => seq( '{', - field('body', $.expression), + field('body', choice($.expression, $.list_splat)), $._comprehension_clauses, '}' ), generator_expression: $ => seq( '(', - field('body', $.expression), + field('body', choice($.expression, $.list_splat)), $._comprehension_clauses, ')' ), @@ -1228,6 +1230,7 @@ module.exports = grammar({ 'await', 'match', 'type', + 'lazy', ), $.identifier )), diff --git a/python/extractor/tsg-python/tsp/src/grammar.json b/python/extractor/tsg-python/tsp/src/grammar.json index fbe1f17b949..8fb9763034e 100644 --- a/python/extractor/tsg-python/tsp/src/grammar.json +++ b/python/extractor/tsg-python/tsp/src/grammar.json @@ -144,6 +144,22 @@ "import_statement": { "type": "SEQ", "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "is_lazy", + "content": { + "type": "STRING", + "value": "lazy" + } + }, + { + "type": "BLANK" + } + ] + }, { "type": "STRING", "value": "import" @@ -232,6 +248,22 @@ "import_from_statement": { "type": "SEQ", "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "is_lazy", + "content": { + "type": "STRING", + "value": "lazy" + } + }, + { + "type": "BLANK" + } + ] + }, { "type": "STRING", "value": "from" @@ -5614,8 +5646,17 @@ "type": "FIELD", "name": "body", "content": { - "type": "SYMBOL", - "name": "expression" + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "expression" + }, + { + "type": "SYMBOL", + "name": "list_splat" + } + ] } }, { @@ -5639,8 +5680,17 @@ "type": "FIELD", "name": "body", "content": { - "type": "SYMBOL", - "name": "pair" + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "pair" + }, + { + "type": "SYMBOL", + "name": "dictionary_splat" + } + ] } }, { @@ -5664,8 +5714,17 @@ "type": "FIELD", "name": "body", "content": { - "type": "SYMBOL", - "name": "expression" + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "expression" + }, + { + "type": "SYMBOL", + "name": "list_splat" + } + ] } }, { @@ -5689,8 +5748,17 @@ "type": "FIELD", "name": "body", "content": { - "type": "SYMBOL", - "name": "expression" + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "expression" + }, + { + "type": "SYMBOL", + "name": "list_splat" + } + ] } }, { @@ -6721,6 +6789,10 @@ { "type": "STRING", "value": "type" + }, + { + "type": "STRING", + "value": "lazy" } ] }, diff --git a/python/extractor/tsg-python/tsp/src/node-types.json b/python/extractor/tsg-python/tsp/src/node-types.json index 609952bd5e5..6579591c652 100644 --- a/python/extractor/tsg-python/tsp/src/node-types.json +++ b/python/extractor/tsg-python/tsp/src/node-types.json @@ -1162,6 +1162,10 @@ "multiple": false, "required": true, "types": [ + { + "type": "dictionary_splat", + "named": true + }, { "type": "pair", "named": true @@ -1702,6 +1706,10 @@ { "type": "expression", "named": true + }, + { + "type": "list_splat", + "named": true } ] } @@ -1811,6 +1819,16 @@ "type": "import_from_statement", "named": true, "fields": { + "is_lazy": { + "multiple": false, + "required": false, + "types": [ + { + "type": "lazy", + "named": false + } + ] + }, "module_name": { "multiple": false, "required": true, @@ -1860,6 +1878,16 @@ "type": "import_statement", "named": true, "fields": { + "is_lazy": { + "multiple": false, + "required": false, + "types": [ + { + "type": "lazy", + "named": false + } + ] + }, "name": { "multiple": true, "required": true, @@ -2059,6 +2087,10 @@ { "type": "expression", "named": true + }, + { + "type": "list_splat", + "named": true } ] } @@ -3159,6 +3191,10 @@ { "type": "expression", "named": true + }, + { + "type": "list_splat", + "named": true } ] } @@ -4154,6 +4190,10 @@ "type": "lambda", "named": false }, + { + "type": "lazy", + "named": false + }, { "type": "match", "named": false diff --git a/python/extractor/tsg-python/tsp/src/parser.c b/python/extractor/tsg-python/tsp/src/parser.c index 74a0d1440fb..16db1b93d97 100644 --- a/python/extractor/tsg-python/tsp/src/parser.c +++ b/python/extractor/tsg-python/tsp/src/parser.c @@ -7,317 +7,319 @@ #endif #define LANGUAGE_VERSION 14 -#define STATE_COUNT 1723 -#define LARGE_STATE_COUNT 156 -#define SYMBOL_COUNT 291 +#define STATE_COUNT 1755 +#define LARGE_STATE_COUNT 157 +#define SYMBOL_COUNT 292 #define ALIAS_COUNT 3 -#define TOKEN_COUNT 109 +#define TOKEN_COUNT 110 #define EXTERNAL_TOKEN_COUNT 7 -#define FIELD_COUNT 54 +#define FIELD_COUNT 55 #define MAX_ALIAS_SEQUENCE_LENGTH 10 #define MAX_RESERVED_WORD_SET_SIZE 0 -#define PRODUCTION_ID_COUNT 166 +#define PRODUCTION_ID_COUNT 170 #define SUPERTYPE_COUNT 0 enum ts_symbol_identifiers { sym_identifier = 1, - anon_sym_import = 2, - anon_sym_DOT = 3, - anon_sym_from = 4, - anon_sym___future__ = 5, - anon_sym_LPAREN = 6, - anon_sym_RPAREN = 7, - anon_sym_COMMA = 8, - anon_sym_as = 9, - anon_sym_STAR = 10, - anon_sym_print = 11, - anon_sym_GT_GT = 12, - anon_sym_assert = 13, - anon_sym_COLON_EQ = 14, - anon_sym_return = 15, - anon_sym_del = 16, - anon_sym_raise = 17, - anon_sym_pass = 18, - anon_sym_break = 19, - anon_sym_continue = 20, - anon_sym_if = 21, - anon_sym_COLON = 22, - anon_sym_elif = 23, - anon_sym_else = 24, - anon_sym_async = 25, - anon_sym_for = 26, - anon_sym_in = 27, - anon_sym_while = 28, - anon_sym_try = 29, - anon_sym_except = 30, - anon_sym_finally = 31, - anon_sym_with = 32, - anon_sym_match = 33, - anon_sym_case = 34, - anon_sym_PIPE = 35, - anon_sym_DASH = 36, - anon_sym_PLUS = 37, - sym_match_wildcard_pattern = 38, - anon_sym_LBRACK = 39, - anon_sym_RBRACK = 40, - anon_sym_LBRACE = 41, - anon_sym_RBRACE = 42, - anon_sym_STAR_STAR = 43, - anon_sym_EQ = 44, - anon_sym_def = 45, - anon_sym_DASH_GT = 46, - anon_sym_global = 47, - anon_sym_nonlocal = 48, - anon_sym_exec = 49, - anon_sym_type = 50, - anon_sym_class = 51, - anon_sym_AT = 52, - anon_sym_not = 53, - anon_sym_and = 54, - anon_sym_or = 55, - anon_sym_SLASH = 56, - anon_sym_PERCENT = 57, - anon_sym_SLASH_SLASH = 58, - anon_sym_AMP = 59, - anon_sym_CARET = 60, - anon_sym_LT_LT = 61, - anon_sym_TILDE = 62, - anon_sym_LT = 63, - anon_sym_LT_EQ = 64, - anon_sym_EQ_EQ = 65, - anon_sym_BANG_EQ = 66, - anon_sym_GT_EQ = 67, - anon_sym_GT = 68, - anon_sym_LT_GT = 69, - anon_sym_is = 70, - anon_sym_lambda = 71, - anon_sym_PLUS_EQ = 72, - anon_sym_DASH_EQ = 73, - anon_sym_STAR_EQ = 74, - anon_sym_SLASH_EQ = 75, - anon_sym_AT_EQ = 76, - anon_sym_SLASH_SLASH_EQ = 77, - anon_sym_PERCENT_EQ = 78, - anon_sym_STAR_STAR_EQ = 79, - anon_sym_GT_GT_EQ = 80, - anon_sym_LT_LT_EQ = 81, - anon_sym_AMP_EQ = 82, - anon_sym_CARET_EQ = 83, - anon_sym_PIPE_EQ = 84, - anon_sym_yield = 85, - sym_ellipsis = 86, - anon_sym_LBRACE2 = 87, - sym__escape_interpolation = 88, - sym_escape_sequence = 89, - anon_sym_BSLASH = 90, - anon_sym_COLON2 = 91, - aux_sym_format_specifier_token1 = 92, - sym_type_conversion = 93, - sym_integer = 94, - sym_float = 95, - anon_sym_await = 96, - sym_true = 97, - sym_false = 98, - sym_none = 99, - sym_comment = 100, - anon_sym_SEMI = 101, - sym__newline = 102, - sym__indent = 103, - sym__dedent = 104, - sym__string_start = 105, - sym__string_content = 106, - sym__string_end = 107, - sym__template_string_start = 108, - sym_module = 109, - sym__statement = 110, - sym__simple_statements = 111, - sym_import_statement = 112, - sym_import_prefix = 113, - sym_relative_import = 114, - sym_future_import_statement = 115, - sym_import_from_statement = 116, - sym__import_list = 117, - sym_aliased_import = 118, - sym_wildcard_import = 119, - sym_print_statement = 120, - sym_chevron = 121, - sym_assert_statement = 122, - sym_expression_statement = 123, - sym_named_expression = 124, - sym_return_statement = 125, - sym_delete_statement = 126, - sym_raise_statement = 127, - sym_pass_statement = 128, - sym_break_statement = 129, - sym_continue_statement = 130, - sym_if_statement = 131, - sym_elif_clause = 132, - sym_else_clause = 133, - sym_for_statement = 134, - sym_while_statement = 135, - sym_try_statement = 136, - sym_exception_list = 137, - sym_except_clause = 138, - sym_except_group_clause = 139, - sym_finally_clause = 140, - sym_with_statement = 141, - sym_with_clause = 142, - sym_with_item = 143, - sym_match_statement = 144, - sym_cases = 145, - sym_case_block = 146, - sym__match_patterns = 147, - sym_open_sequence_match_pattern = 148, - sym__match_pattern = 149, - sym_match_as_pattern = 150, - sym__match_or_pattern = 151, - sym_match_or_pattern = 152, - sym__closed_pattern = 153, - sym_match_literal_pattern = 154, - sym_match_capture_pattern = 155, - sym_match_value_pattern = 156, - sym_match_group_pattern = 157, - sym_match_sequence_pattern = 158, - sym__match_maybe_star_pattern = 159, - sym_match_star_pattern = 160, - sym_match_mapping_pattern = 161, - sym_match_double_star_pattern = 162, - sym_match_key_value_pattern = 163, - sym_match_class_pattern = 164, - sym_pattern_class_name = 165, - sym_match_positional_pattern = 166, - sym_match_keyword_pattern = 167, - sym_guard = 168, - sym_function_definition = 169, - sym_parameters = 170, - sym_lambda_parameters = 171, - sym_list_splat = 172, - sym_dictionary_splat = 173, - sym_global_statement = 174, - sym_nonlocal_statement = 175, - sym_exec_statement = 176, - sym_type_alias_statement = 177, - sym_class_definition = 178, - sym_type_parameters = 179, - sym__type_bound = 180, - sym_typevar_parameter = 181, - sym_typevartuple_parameter = 182, - sym_paramspec_parameter = 183, - sym__type_parameter = 184, - sym__type_param_default = 185, - sym_parenthesized_list_splat = 186, - sym_argument_list = 187, - sym_decorated_definition = 188, - sym_decorator = 189, - sym_block = 190, - sym_expression_list = 191, - sym_dotted_name = 192, - sym__parameters = 193, - sym__patterns = 194, - sym_parameter = 195, - sym_pattern = 196, - sym_tuple_pattern = 197, - sym_list_pattern = 198, - sym_default_parameter = 199, - sym_typed_default_parameter = 200, - sym_list_splat_pattern = 201, - sym_dictionary_splat_pattern = 202, - sym__expression_within_for_in_clause = 203, - sym_expression = 204, - sym_primary_expression = 205, - sym_not_operator = 206, - sym_boolean_operator = 207, - sym_binary_operator = 208, - sym_unary_operator = 209, - sym_comparison_operator = 210, - sym_lambda = 211, - sym_lambda_within_for_in_clause = 212, - sym_assignment = 213, - sym_augmented_assignment = 214, - sym_pattern_list = 215, - sym__right_hand_side = 216, - sym_yield = 217, - sym_attribute = 218, - sym__index_expression = 219, - sym_index_expression_list = 220, - sym_subscript = 221, - sym_slice = 222, - sym_call = 223, - sym_typed_parameter = 224, - sym_type = 225, - sym_keyword_argument = 226, - sym_list = 227, - sym_set = 228, - sym_tuple = 229, - sym_dictionary = 230, - sym_pair = 231, - sym_list_comprehension = 232, - sym_dictionary_comprehension = 233, - sym_set_comprehension = 234, - sym_generator_expression = 235, - sym__comprehension_clauses = 236, - sym_parenthesized_expression = 237, - sym__collection_elements = 238, - sym_for_in_clause = 239, - sym_if_clause = 240, - sym_conditional_expression = 241, - sym_concatenated_string = 242, - sym_string = 243, - sym_concatenated_template_string = 244, - sym_template_string = 245, - sym_string_content = 246, - sym_interpolation = 247, - sym__f_expression = 248, - sym__not_escape_sequence = 249, - sym_format_specifier = 250, - sym_await = 251, - sym_positional_separator = 252, - sym_keyword_separator = 253, - sym__semicolon = 254, - aux_sym_module_repeat1 = 255, - aux_sym__simple_statements_repeat1 = 256, - aux_sym_import_prefix_repeat1 = 257, - aux_sym__import_list_repeat1 = 258, - aux_sym_print_statement_repeat1 = 259, - aux_sym_assert_statement_repeat1 = 260, - aux_sym_if_statement_repeat1 = 261, - aux_sym_try_statement_repeat1 = 262, - aux_sym_try_statement_repeat2 = 263, - aux_sym_exception_list_repeat1 = 264, - aux_sym_with_clause_repeat1 = 265, - aux_sym_cases_repeat1 = 266, - aux_sym_open_sequence_match_pattern_repeat1 = 267, - aux_sym_match_or_pattern_repeat1 = 268, - aux_sym_match_value_pattern_repeat1 = 269, - aux_sym_match_mapping_pattern_repeat1 = 270, - aux_sym_match_class_pattern_repeat1 = 271, - aux_sym_match_class_pattern_repeat2 = 272, - aux_sym_global_statement_repeat1 = 273, - aux_sym_type_parameters_repeat1 = 274, - aux_sym_argument_list_repeat1 = 275, - aux_sym_decorated_definition_repeat1 = 276, - aux_sym_expression_list_repeat1 = 277, - aux_sym__parameters_repeat1 = 278, - aux_sym__patterns_repeat1 = 279, - aux_sym_comparison_operator_repeat1 = 280, - aux_sym_index_expression_list_repeat1 = 281, - aux_sym_dictionary_repeat1 = 282, - aux_sym__comprehension_clauses_repeat1 = 283, - aux_sym__collection_elements_repeat1 = 284, - aux_sym_for_in_clause_repeat1 = 285, - aux_sym_concatenated_string_repeat1 = 286, - aux_sym_string_repeat1 = 287, - aux_sym_concatenated_template_string_repeat1 = 288, - aux_sym_string_content_repeat1 = 289, - aux_sym_format_specifier_repeat1 = 290, - alias_sym_format_expression = 291, - anon_alias_sym_isnot = 292, - anon_alias_sym_notin = 293, + anon_sym_lazy = 2, + anon_sym_import = 3, + anon_sym_DOT = 4, + anon_sym_from = 5, + anon_sym___future__ = 6, + anon_sym_LPAREN = 7, + anon_sym_RPAREN = 8, + anon_sym_COMMA = 9, + anon_sym_as = 10, + anon_sym_STAR = 11, + anon_sym_print = 12, + anon_sym_GT_GT = 13, + anon_sym_assert = 14, + anon_sym_COLON_EQ = 15, + anon_sym_return = 16, + anon_sym_del = 17, + anon_sym_raise = 18, + anon_sym_pass = 19, + anon_sym_break = 20, + anon_sym_continue = 21, + anon_sym_if = 22, + anon_sym_COLON = 23, + anon_sym_elif = 24, + anon_sym_else = 25, + anon_sym_async = 26, + anon_sym_for = 27, + anon_sym_in = 28, + anon_sym_while = 29, + anon_sym_try = 30, + anon_sym_except = 31, + anon_sym_finally = 32, + anon_sym_with = 33, + anon_sym_match = 34, + anon_sym_case = 35, + anon_sym_PIPE = 36, + anon_sym_DASH = 37, + anon_sym_PLUS = 38, + sym_match_wildcard_pattern = 39, + anon_sym_LBRACK = 40, + anon_sym_RBRACK = 41, + anon_sym_LBRACE = 42, + anon_sym_RBRACE = 43, + anon_sym_STAR_STAR = 44, + anon_sym_EQ = 45, + anon_sym_def = 46, + anon_sym_DASH_GT = 47, + anon_sym_global = 48, + anon_sym_nonlocal = 49, + anon_sym_exec = 50, + anon_sym_type = 51, + anon_sym_class = 52, + anon_sym_AT = 53, + anon_sym_not = 54, + anon_sym_and = 55, + anon_sym_or = 56, + anon_sym_SLASH = 57, + anon_sym_PERCENT = 58, + anon_sym_SLASH_SLASH = 59, + anon_sym_AMP = 60, + anon_sym_CARET = 61, + anon_sym_LT_LT = 62, + anon_sym_TILDE = 63, + anon_sym_LT = 64, + anon_sym_LT_EQ = 65, + anon_sym_EQ_EQ = 66, + anon_sym_BANG_EQ = 67, + anon_sym_GT_EQ = 68, + anon_sym_GT = 69, + anon_sym_LT_GT = 70, + anon_sym_is = 71, + anon_sym_lambda = 72, + anon_sym_PLUS_EQ = 73, + anon_sym_DASH_EQ = 74, + anon_sym_STAR_EQ = 75, + anon_sym_SLASH_EQ = 76, + anon_sym_AT_EQ = 77, + anon_sym_SLASH_SLASH_EQ = 78, + anon_sym_PERCENT_EQ = 79, + anon_sym_STAR_STAR_EQ = 80, + anon_sym_GT_GT_EQ = 81, + anon_sym_LT_LT_EQ = 82, + anon_sym_AMP_EQ = 83, + anon_sym_CARET_EQ = 84, + anon_sym_PIPE_EQ = 85, + anon_sym_yield = 86, + sym_ellipsis = 87, + anon_sym_LBRACE2 = 88, + sym__escape_interpolation = 89, + sym_escape_sequence = 90, + anon_sym_BSLASH = 91, + anon_sym_COLON2 = 92, + aux_sym_format_specifier_token1 = 93, + sym_type_conversion = 94, + sym_integer = 95, + sym_float = 96, + anon_sym_await = 97, + sym_true = 98, + sym_false = 99, + sym_none = 100, + sym_comment = 101, + anon_sym_SEMI = 102, + sym__newline = 103, + sym__indent = 104, + sym__dedent = 105, + sym__string_start = 106, + sym__string_content = 107, + sym__string_end = 108, + sym__template_string_start = 109, + sym_module = 110, + sym__statement = 111, + sym__simple_statements = 112, + sym_import_statement = 113, + sym_import_prefix = 114, + sym_relative_import = 115, + sym_future_import_statement = 116, + sym_import_from_statement = 117, + sym__import_list = 118, + sym_aliased_import = 119, + sym_wildcard_import = 120, + sym_print_statement = 121, + sym_chevron = 122, + sym_assert_statement = 123, + sym_expression_statement = 124, + sym_named_expression = 125, + sym_return_statement = 126, + sym_delete_statement = 127, + sym_raise_statement = 128, + sym_pass_statement = 129, + sym_break_statement = 130, + sym_continue_statement = 131, + sym_if_statement = 132, + sym_elif_clause = 133, + sym_else_clause = 134, + sym_for_statement = 135, + sym_while_statement = 136, + sym_try_statement = 137, + sym_exception_list = 138, + sym_except_clause = 139, + sym_except_group_clause = 140, + sym_finally_clause = 141, + sym_with_statement = 142, + sym_with_clause = 143, + sym_with_item = 144, + sym_match_statement = 145, + sym_cases = 146, + sym_case_block = 147, + sym__match_patterns = 148, + sym_open_sequence_match_pattern = 149, + sym__match_pattern = 150, + sym_match_as_pattern = 151, + sym__match_or_pattern = 152, + sym_match_or_pattern = 153, + sym__closed_pattern = 154, + sym_match_literal_pattern = 155, + sym_match_capture_pattern = 156, + sym_match_value_pattern = 157, + sym_match_group_pattern = 158, + sym_match_sequence_pattern = 159, + sym__match_maybe_star_pattern = 160, + sym_match_star_pattern = 161, + sym_match_mapping_pattern = 162, + sym_match_double_star_pattern = 163, + sym_match_key_value_pattern = 164, + sym_match_class_pattern = 165, + sym_pattern_class_name = 166, + sym_match_positional_pattern = 167, + sym_match_keyword_pattern = 168, + sym_guard = 169, + sym_function_definition = 170, + sym_parameters = 171, + sym_lambda_parameters = 172, + sym_list_splat = 173, + sym_dictionary_splat = 174, + sym_global_statement = 175, + sym_nonlocal_statement = 176, + sym_exec_statement = 177, + sym_type_alias_statement = 178, + sym_class_definition = 179, + sym_type_parameters = 180, + sym__type_bound = 181, + sym_typevar_parameter = 182, + sym_typevartuple_parameter = 183, + sym_paramspec_parameter = 184, + sym__type_parameter = 185, + sym__type_param_default = 186, + sym_parenthesized_list_splat = 187, + sym_argument_list = 188, + sym_decorated_definition = 189, + sym_decorator = 190, + sym_block = 191, + sym_expression_list = 192, + sym_dotted_name = 193, + sym__parameters = 194, + sym__patterns = 195, + sym_parameter = 196, + sym_pattern = 197, + sym_tuple_pattern = 198, + sym_list_pattern = 199, + sym_default_parameter = 200, + sym_typed_default_parameter = 201, + sym_list_splat_pattern = 202, + sym_dictionary_splat_pattern = 203, + sym__expression_within_for_in_clause = 204, + sym_expression = 205, + sym_primary_expression = 206, + sym_not_operator = 207, + sym_boolean_operator = 208, + sym_binary_operator = 209, + sym_unary_operator = 210, + sym_comparison_operator = 211, + sym_lambda = 212, + sym_lambda_within_for_in_clause = 213, + sym_assignment = 214, + sym_augmented_assignment = 215, + sym_pattern_list = 216, + sym__right_hand_side = 217, + sym_yield = 218, + sym_attribute = 219, + sym__index_expression = 220, + sym_index_expression_list = 221, + sym_subscript = 222, + sym_slice = 223, + sym_call = 224, + sym_typed_parameter = 225, + sym_type = 226, + sym_keyword_argument = 227, + sym_list = 228, + sym_set = 229, + sym_tuple = 230, + sym_dictionary = 231, + sym_pair = 232, + sym_list_comprehension = 233, + sym_dictionary_comprehension = 234, + sym_set_comprehension = 235, + sym_generator_expression = 236, + sym__comprehension_clauses = 237, + sym_parenthesized_expression = 238, + sym__collection_elements = 239, + sym_for_in_clause = 240, + sym_if_clause = 241, + sym_conditional_expression = 242, + sym_concatenated_string = 243, + sym_string = 244, + sym_concatenated_template_string = 245, + sym_template_string = 246, + sym_string_content = 247, + sym_interpolation = 248, + sym__f_expression = 249, + sym__not_escape_sequence = 250, + sym_format_specifier = 251, + sym_await = 252, + sym_positional_separator = 253, + sym_keyword_separator = 254, + sym__semicolon = 255, + aux_sym_module_repeat1 = 256, + aux_sym__simple_statements_repeat1 = 257, + aux_sym_import_prefix_repeat1 = 258, + aux_sym__import_list_repeat1 = 259, + aux_sym_print_statement_repeat1 = 260, + aux_sym_assert_statement_repeat1 = 261, + aux_sym_if_statement_repeat1 = 262, + aux_sym_try_statement_repeat1 = 263, + aux_sym_try_statement_repeat2 = 264, + aux_sym_exception_list_repeat1 = 265, + aux_sym_with_clause_repeat1 = 266, + aux_sym_cases_repeat1 = 267, + aux_sym_open_sequence_match_pattern_repeat1 = 268, + aux_sym_match_or_pattern_repeat1 = 269, + aux_sym_match_value_pattern_repeat1 = 270, + aux_sym_match_mapping_pattern_repeat1 = 271, + aux_sym_match_class_pattern_repeat1 = 272, + aux_sym_match_class_pattern_repeat2 = 273, + aux_sym_global_statement_repeat1 = 274, + aux_sym_type_parameters_repeat1 = 275, + aux_sym_argument_list_repeat1 = 276, + aux_sym_decorated_definition_repeat1 = 277, + aux_sym_expression_list_repeat1 = 278, + aux_sym__parameters_repeat1 = 279, + aux_sym__patterns_repeat1 = 280, + aux_sym_comparison_operator_repeat1 = 281, + aux_sym_index_expression_list_repeat1 = 282, + aux_sym_dictionary_repeat1 = 283, + aux_sym__comprehension_clauses_repeat1 = 284, + aux_sym__collection_elements_repeat1 = 285, + aux_sym_for_in_clause_repeat1 = 286, + aux_sym_concatenated_string_repeat1 = 287, + aux_sym_string_repeat1 = 288, + aux_sym_concatenated_template_string_repeat1 = 289, + aux_sym_string_content_repeat1 = 290, + aux_sym_format_specifier_repeat1 = 291, + alias_sym_format_expression = 292, + anon_alias_sym_isnot = 293, + anon_alias_sym_notin = 294, }; static const char * const ts_symbol_names[] = { [ts_builtin_sym_end] = "end", [sym_identifier] = "identifier", + [anon_sym_lazy] = "lazy", [anon_sym_import] = "import", [anon_sym_DOT] = ".", [anon_sym_from] = "from", @@ -615,6 +617,7 @@ static const char * const ts_symbol_names[] = { static const TSSymbol ts_symbol_map[] = { [ts_builtin_sym_end] = ts_builtin_sym_end, [sym_identifier] = sym_identifier, + [anon_sym_lazy] = anon_sym_lazy, [anon_sym_import] = anon_sym_import, [anon_sym_DOT] = anon_sym_DOT, [anon_sym_from] = anon_sym_from, @@ -918,6 +921,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { .visible = true, .named = true, }, + [anon_sym_lazy] = { + .visible = true, + .named = false, + }, [anon_sym_import] = { .visible = true, .named = false, @@ -2116,37 +2123,38 @@ enum ts_field_identifiers { field_imaginary = 21, field_inner = 22, field_interpolation = 23, - field_key = 24, - field_kwarg = 25, - field_left = 26, - field_module_name = 27, - field_name = 28, - field_object = 29, - field_operator = 30, - field_operators = 31, - field_parameters = 32, - field_pattern = 33, - field_prefix = 34, - field_prefix_operator = 35, - field_real = 36, - field_return_type = 37, - field_right = 38, - field_start = 39, - field_step = 40, - field_stop = 41, - field_string_content = 42, - field_subject = 43, - field_subscript = 44, - field_suffix = 45, - field_superclasses = 46, - field_target = 47, - field_test = 48, - field_trailing_comma = 49, - field_type = 50, - field_type_parameter = 51, - field_type_parameters = 52, - field_value = 53, - field_vararg = 54, + field_is_lazy = 24, + field_key = 25, + field_kwarg = 26, + field_left = 27, + field_module_name = 28, + field_name = 29, + field_object = 30, + field_operator = 31, + field_operators = 32, + field_parameters = 33, + field_pattern = 34, + field_prefix = 35, + field_prefix_operator = 36, + field_real = 37, + field_return_type = 38, + field_right = 39, + field_start = 40, + field_step = 41, + field_stop = 42, + field_string_content = 43, + field_subject = 44, + field_subscript = 45, + field_suffix = 46, + field_superclasses = 47, + field_target = 48, + field_test = 49, + field_trailing_comma = 50, + field_type = 51, + field_type_parameter = 52, + field_type_parameters = 53, + field_value = 54, + field_vararg = 55, }; static const char * const ts_field_names[] = { @@ -2174,6 +2182,7 @@ static const char * const ts_field_names[] = { [field_imaginary] = "imaginary", [field_inner] = "inner", [field_interpolation] = "interpolation", + [field_is_lazy] = "is_lazy", [field_key] = "key", [field_kwarg] = "kwarg", [field_left] = "left", @@ -2229,147 +2238,151 @@ static const TSMapSlice ts_field_map_slices[PRODUCTION_ID_COUNT] = { [20] = {.index = 21, .length = 4}, [21] = {.index = 25, .length = 4}, [22] = {.index = 29, .length = 2}, - [23] = {.index = 31, .length = 1}, - [24] = {.index = 32, .length = 2}, - [25] = {.index = 34, .length = 2}, - [26] = {.index = 36, .length = 1}, - [27] = {.index = 37, .length = 2}, - [28] = {.index = 39, .length = 1}, - [29] = {.index = 40, .length = 2}, - [30] = {.index = 42, .length = 1}, - [31] = {.index = 43, .length = 1}, - [32] = {.index = 44, .length = 1}, - [33] = {.index = 45, .length = 1}, - [34] = {.index = 45, .length = 1}, - [35] = {.index = 37, .length = 2}, - [36] = {.index = 46, .length = 2}, + [23] = {.index = 31, .length = 2}, + [24] = {.index = 33, .length = 2}, + [25] = {.index = 35, .length = 1}, + [26] = {.index = 36, .length = 2}, + [27] = {.index = 38, .length = 2}, + [28] = {.index = 40, .length = 1}, + [29] = {.index = 41, .length = 1}, + [30] = {.index = 42, .length = 2}, + [31] = {.index = 44, .length = 1}, + [32] = {.index = 45, .length = 1}, + [33] = {.index = 46, .length = 1}, + [34] = {.index = 47, .length = 1}, + [35] = {.index = 47, .length = 1}, + [36] = {.index = 31, .length = 2}, [37] = {.index = 48, .length = 2}, [38] = {.index = 50, .length = 2}, - [39] = {.index = 52, .length = 3}, - [40] = {.index = 55, .length = 2}, - [41] = {.index = 57, .length = 1}, - [42] = {.index = 58, .length = 2}, - [43] = {.index = 60, .length = 1}, - [44] = {.index = 61, .length = 2}, + [39] = {.index = 52, .length = 2}, + [40] = {.index = 54, .length = 3}, + [41] = {.index = 57, .length = 2}, + [42] = {.index = 59, .length = 1}, + [43] = {.index = 60, .length = 2}, + [44] = {.index = 62, .length = 1}, [45] = {.index = 63, .length = 2}, - [46] = {.index = 65, .length = 1}, - [47] = {.index = 66, .length = 2}, - [48] = {.index = 68, .length = 1}, - [50] = {.index = 69, .length = 3}, - [51] = {.index = 72, .length = 1}, - [52] = {.index = 73, .length = 2}, - [53] = {.index = 75, .length = 1}, - [54] = {.index = 76, .length = 2}, + [46] = {.index = 65, .length = 2}, + [47] = {.index = 67, .length = 1}, + [48] = {.index = 68, .length = 2}, + [49] = {.index = 70, .length = 1}, + [51] = {.index = 71, .length = 1}, + [52] = {.index = 72, .length = 3}, + [53] = {.index = 75, .length = 2}, + [54] = {.index = 77, .length = 1}, [55] = {.index = 78, .length = 2}, - [56] = {.index = 44, .length = 1}, - [57] = {.index = 80, .length = 1}, - [58] = {.index = 81, .length = 2}, + [56] = {.index = 80, .length = 2}, + [57] = {.index = 46, .length = 1}, + [58] = {.index = 82, .length = 1}, [59] = {.index = 83, .length = 2}, - [60] = {.index = 83, .length = 2}, + [60] = {.index = 85, .length = 2}, [61] = {.index = 85, .length = 2}, [62] = {.index = 87, .length = 2}, [63] = {.index = 89, .length = 2}, [64] = {.index = 91, .length = 2}, - [65] = {.index = 93, .length = 1}, - [66] = {.index = 94, .length = 2}, - [67] = {.index = 43, .length = 1}, - [68] = {.index = 96, .length = 1}, - [69] = {.index = 97, .length = 1}, - [70] = {.index = 98, .length = 2}, + [65] = {.index = 93, .length = 2}, + [66] = {.index = 95, .length = 1}, + [67] = {.index = 96, .length = 2}, + [68] = {.index = 45, .length = 1}, + [69] = {.index = 98, .length = 1}, + [70] = {.index = 99, .length = 1}, [71] = {.index = 100, .length = 2}, - [72] = {.index = 100, .length = 2}, - [74] = {.index = 102, .length = 1}, - [75] = {.index = 103, .length = 3}, - [76] = {.index = 106, .length = 3}, - [77] = {.index = 109, .length = 3}, - [78] = {.index = 112, .length = 1}, + [72] = {.index = 102, .length = 2}, + [73] = {.index = 102, .length = 2}, + [75] = {.index = 104, .length = 3}, + [76] = {.index = 107, .length = 2}, + [77] = {.index = 109, .length = 1}, + [78] = {.index = 110, .length = 3}, [79] = {.index = 113, .length = 3}, [80] = {.index = 116, .length = 3}, - [81] = {.index = 119, .length = 2}, - [82] = {.index = 121, .length = 2}, - [83] = {.index = 123, .length = 1}, - [84] = {.index = 124, .length = 2}, - [85] = {.index = 126, .length = 2}, - [86] = {.index = 128, .length = 1}, - [87] = {.index = 129, .length = 3}, - [88] = {.index = 132, .length = 3}, - [89] = {.index = 135, .length = 3}, - [90] = {.index = 138, .length = 3}, - [91] = {.index = 141, .length = 3}, - [92] = {.index = 144, .length = 3}, - [93] = {.index = 85, .length = 2}, - [94] = {.index = 147, .length = 1}, - [95] = {.index = 148, .length = 2}, - [96] = {.index = 150, .length = 1}, - [97] = {.index = 151, .length = 2}, - [98] = {.index = 153, .length = 2}, - [99] = {.index = 155, .length = 4}, - [100] = {.index = 159, .length = 2}, - [101] = {.index = 161, .length = 4}, - [102] = {.index = 165, .length = 4}, - [103] = {.index = 169, .length = 2}, - [104] = {.index = 171, .length = 3}, - [105] = {.index = 174, .length = 3}, - [106] = {.index = 177, .length = 4}, - [107] = {.index = 181, .length = 2}, - [108] = {.index = 183, .length = 2}, - [109] = {.index = 185, .length = 1}, - [110] = {.index = 186, .length = 1}, - [111] = {.index = 187, .length = 3}, - [112] = {.index = 190, .length = 2}, - [113] = {.index = 192, .length = 2}, - [114] = {.index = 194, .length = 4}, - [115] = {.index = 198, .length = 4}, - [116] = {.index = 202, .length = 4}, - [117] = {.index = 206, .length = 4}, - [118] = {.index = 210, .length = 4}, - [119] = {.index = 214, .length = 3}, - [120] = {.index = 217, .length = 2}, - [121] = {.index = 219, .length = 2}, - [122] = {.index = 221, .length = 2}, - [123] = {.index = 223, .length = 3}, - [124] = {.index = 226, .length = 5}, - [125] = {.index = 231, .length = 3}, - [126] = {.index = 234, .length = 4}, - [127] = {.index = 238, .length = 4}, - [128] = {.index = 242, .length = 4}, - [129] = {.index = 246, .length = 4}, - [130] = {.index = 250, .length = 2}, - [131] = {.index = 252, .length = 1}, - [132] = {.index = 253, .length = 3}, - [133] = {.index = 256, .length = 1}, - [134] = {.index = 257, .length = 2}, - [135] = {.index = 259, .length = 2}, - [136] = {.index = 261, .length = 1}, - [137] = {.index = 262, .length = 4}, - [138] = {.index = 266, .length = 5}, - [139] = {.index = 271, .length = 5}, - [140] = {.index = 276, .length = 3}, - [141] = {.index = 279, .length = 3}, - [142] = {.index = 282, .length = 4}, - [143] = {.index = 286, .length = 4}, - [144] = {.index = 290, .length = 4}, - [145] = {.index = 294, .length = 5}, - [146] = {.index = 299, .length = 5}, - [147] = {.index = 304, .length = 2}, - [148] = {.index = 306, .length = 3}, - [149] = {.index = 309, .length = 4}, - [150] = {.index = 313, .length = 3}, - [151] = {.index = 316, .length = 3}, - [152] = {.index = 319, .length = 5}, - [153] = {.index = 324, .length = 5}, - [154] = {.index = 329, .length = 5}, - [155] = {.index = 334, .length = 5}, - [156] = {.index = 339, .length = 5}, - [157] = {.index = 344, .length = 3}, - [158] = {.index = 347, .length = 3}, - [159] = {.index = 350, .length = 4}, - [160] = {.index = 354, .length = 2}, - [161] = {.index = 356, .length = 6}, - [162] = {.index = 362, .length = 6}, - [163] = {.index = 368, .length = 3}, - [164] = {.index = 371, .length = 4}, - [165] = {.index = 375, .length = 4}, + [81] = {.index = 119, .length = 1}, + [82] = {.index = 120, .length = 3}, + [83] = {.index = 123, .length = 3}, + [84] = {.index = 126, .length = 2}, + [85] = {.index = 128, .length = 2}, + [86] = {.index = 130, .length = 1}, + [87] = {.index = 131, .length = 2}, + [88] = {.index = 133, .length = 2}, + [89] = {.index = 135, .length = 1}, + [90] = {.index = 136, .length = 3}, + [91] = {.index = 139, .length = 3}, + [92] = {.index = 142, .length = 3}, + [93] = {.index = 145, .length = 3}, + [94] = {.index = 148, .length = 3}, + [95] = {.index = 151, .length = 3}, + [96] = {.index = 87, .length = 2}, + [97] = {.index = 154, .length = 1}, + [98] = {.index = 155, .length = 2}, + [99] = {.index = 157, .length = 1}, + [100] = {.index = 158, .length = 2}, + [101] = {.index = 160, .length = 2}, + [102] = {.index = 162, .length = 4}, + [103] = {.index = 166, .length = 2}, + [104] = {.index = 168, .length = 4}, + [105] = {.index = 172, .length = 4}, + [106] = {.index = 176, .length = 2}, + [107] = {.index = 178, .length = 3}, + [108] = {.index = 181, .length = 3}, + [109] = {.index = 184, .length = 4}, + [110] = {.index = 188, .length = 2}, + [111] = {.index = 190, .length = 2}, + [112] = {.index = 192, .length = 1}, + [113] = {.index = 193, .length = 1}, + [114] = {.index = 194, .length = 3}, + [115] = {.index = 197, .length = 2}, + [116] = {.index = 199, .length = 2}, + [117] = {.index = 201, .length = 4}, + [118] = {.index = 205, .length = 4}, + [119] = {.index = 209, .length = 4}, + [120] = {.index = 213, .length = 4}, + [121] = {.index = 217, .length = 4}, + [122] = {.index = 221, .length = 3}, + [123] = {.index = 224, .length = 2}, + [124] = {.index = 226, .length = 2}, + [125] = {.index = 228, .length = 3}, + [126] = {.index = 231, .length = 2}, + [127] = {.index = 233, .length = 3}, + [128] = {.index = 236, .length = 5}, + [129] = {.index = 241, .length = 3}, + [130] = {.index = 244, .length = 4}, + [131] = {.index = 248, .length = 4}, + [132] = {.index = 252, .length = 4}, + [133] = {.index = 256, .length = 4}, + [134] = {.index = 260, .length = 2}, + [135] = {.index = 262, .length = 1}, + [136] = {.index = 263, .length = 3}, + [137] = {.index = 266, .length = 1}, + [138] = {.index = 267, .length = 2}, + [139] = {.index = 269, .length = 2}, + [140] = {.index = 271, .length = 1}, + [141] = {.index = 272, .length = 4}, + [142] = {.index = 276, .length = 5}, + [143] = {.index = 281, .length = 5}, + [144] = {.index = 286, .length = 3}, + [145] = {.index = 289, .length = 3}, + [146] = {.index = 292, .length = 4}, + [147] = {.index = 296, .length = 4}, + [148] = {.index = 300, .length = 4}, + [149] = {.index = 304, .length = 5}, + [150] = {.index = 309, .length = 5}, + [151] = {.index = 314, .length = 2}, + [152] = {.index = 316, .length = 3}, + [153] = {.index = 319, .length = 4}, + [154] = {.index = 323, .length = 3}, + [155] = {.index = 326, .length = 3}, + [156] = {.index = 329, .length = 5}, + [157] = {.index = 334, .length = 5}, + [158] = {.index = 339, .length = 5}, + [159] = {.index = 344, .length = 5}, + [160] = {.index = 349, .length = 5}, + [161] = {.index = 354, .length = 3}, + [162] = {.index = 357, .length = 3}, + [163] = {.index = 360, .length = 4}, + [164] = {.index = 364, .length = 2}, + [165] = {.index = 366, .length = 6}, + [166] = {.index = 372, .length = 6}, + [167] = {.index = 378, .length = 3}, + [168] = {.index = 381, .length = 4}, + [169] = {.index = 385, .length = 4}, }; static const TSFieldMapEntry ts_field_map_entries[] = { @@ -2422,486 +2435,500 @@ static const TSFieldMapEntry ts_field_map_entries[] = { {field_string_content, 0, .inherited = true}, {field_string_content, 1, .inherited = true}, [29] = - {field_name, 0}, - {field_name, 1, .inherited = true}, + {field_is_lazy, 0}, + {field_name, 2, .inherited = true}, [31] = - {field_name, 1}, - [32] = - {field_element, 0}, - {field_trailing_comma, 1}, - [34] = - {field_element, 1, .inherited = true}, - {field_trailing_comma, 1, .inherited = true}, - [36] = - {field_inner, 1}, - [37] = {field_name, 0}, {field_value, 2}, - [39] = - {field_argument, 2, .inherited = true}, + [33] = + {field_name, 0}, + {field_name, 1, .inherited = true}, + [35] = + {field_name, 1}, + [36] = + {field_element, 0}, + {field_trailing_comma, 1}, + [38] = + {field_element, 1, .inherited = true}, + {field_trailing_comma, 1, .inherited = true}, [40] = - {field_argument, 1}, + {field_inner, 1}, + [41] = {field_argument, 2, .inherited = true}, [42] = - {field_cause, 2}, - [43] = - {field_element, 1}, + {field_argument, 1}, + {field_argument, 2, .inherited = true}, [44] = - {field_body, 2}, + {field_cause, 2}, [45] = - {field_kwarg, 1}, + {field_element, 1}, [46] = + {field_body, 2}, + [47] = + {field_kwarg, 1}, + [48] = {field_element, 0, .inherited = true}, {field_element, 1, .inherited = true}, - [48] = - {field_left, 0}, - {field_type, 2}, [50] = {field_left, 0}, - {field_right, 2}, + {field_type, 2}, [52] = + {field_left, 0}, + {field_right, 2}, + [54] = {field_left, 0}, {field_operator, 1}, {field_right, 2}, - [55] = + [57] = {field_attribute, 2}, {field_object, 0}, - [57] = + [59] = {field_operators, 0}, - [58] = + [60] = {field_operators, 0, .inherited = true}, {field_operators, 1, .inherited = true}, - [60] = + [62] = {field_expression, 1}, - [61] = + [63] = {field_name, 0, .inherited = true}, {field_name, 1, .inherited = true}, - [63] = + [65] = {field_alias, 2}, {field_name, 0}, - [65] = - {field_name, 3, .inherited = true}, - [66] = - {field_module_name, 1}, + [67] = {field_name, 3, .inherited = true}, [68] = {field_module_name, 1}, - [69] = + {field_name, 3, .inherited = true}, + [70] = + {field_module_name, 1}, + [71] = + {field_body, 1}, + [72] = {field_element, 0}, {field_element, 1, .inherited = true}, {field_trailing_comma, 2}, - [72] = - {field_body, 1}, - [73] = + [75] = {field_argument, 0, .inherited = true}, {field_argument, 1, .inherited = true}, - [75] = + [77] = {field_cause, 3}, - [76] = + [78] = {field_condition, 1}, {field_consequence, 3}, - [78] = - {field_body, 3}, - {field_condition, 1}, [80] = {field_body, 3}, - [81] = + {field_condition, 1}, + [82] = + {field_body, 3}, + [83] = {field_alias, 2}, {field_value, 0}, - [83] = + [85] = {field_cases, 3}, {field_subject, 1}, - [85] = + [87] = {field_element, 1}, {field_element, 2, .inherited = true}, - [87] = + [89] = {field_key, 0}, {field_value, 2}, - [89] = + [91] = {field_name, 1}, {field_value, 3}, - [91] = + [93] = {field_body, 3}, {field_name, 1}, - [93] = + [95] = {field_type, 2}, - [94] = + [96] = {field_body, 3}, {field_parameters, 1}, - [96] = - {field_stop, 1}, - [97] = - {field_start, 0}, [98] = + {field_stop, 1}, + [99] = + {field_start, 0}, + [100] = {field_subscript, 2}, {field_value, 0}, - [100] = + [102] = {field_operators, 0}, {field_operators, 1}, - [102] = + [104] = + {field_is_lazy, 0}, + {field_module_name, 2}, + {field_name, 4, .inherited = true}, + [107] = + {field_is_lazy, 0}, + {field_module_name, 2}, + [109] = {field_alternative, 0}, - [103] = + [110] = {field_alternative, 4}, {field_condition, 1}, {field_consequence, 3}, - [106] = + [113] = {field_alternative, 4, .inherited = true}, {field_condition, 1}, {field_consequence, 3}, - [109] = + [116] = {field_condition, 1}, {field_consequence, 3}, {field_consequence, 4}, - [112] = + [119] = {field_body, 4}, - [113] = + [120] = {field_alternative, 4}, {field_body, 3}, {field_condition, 1}, - [116] = + [123] = {field_body, 3}, {field_body, 4}, {field_condition, 1}, - [119] = + [126] = {field_body, 2}, {field_body, 3}, - [121] = + [128] = {field_body, 3}, {field_body, 4}, - [123] = + [130] = {field_real, 0}, - [124] = + [131] = {field_bound, 1, .inherited = true}, {field_name, 0}, - [126] = + [133] = {field_default, 1, .inherited = true}, {field_name, 0}, - [128] = + [135] = {field_type_parameter, 1}, - [129] = + [136] = {field_body, 4}, {field_name, 1}, {field_parameters, 2}, - [132] = + [139] = {field_name, 1}, {field_type_parameters, 2}, {field_value, 4}, - [135] = + [142] = {field_body, 3}, {field_body, 4}, {field_name, 1}, - [138] = + [145] = {field_body, 4}, {field_name, 1}, {field_type_parameters, 2}, - [141] = + [148] = {field_body, 4}, {field_name, 1}, {field_superclasses, 2}, - [144] = + [151] = {field_left, 0}, {field_right, 4}, {field_type, 2}, - [147] = + [154] = {field_step, 2}, - [148] = + [155] = {field_start, 0}, {field_stop, 2}, - [150] = + [157] = {field_name, 4, .inherited = true}, - [151] = + [158] = {field_module_name, 1}, {field_name, 4, .inherited = true}, - [153] = + [160] = {field_left, 1}, {field_right, 3}, - [155] = + [162] = {field_alternative, 4, .inherited = true}, {field_alternative, 5}, {field_condition, 1}, {field_consequence, 3}, - [159] = + [166] = {field_alternative, 0, .inherited = true}, {field_alternative, 1, .inherited = true}, - [161] = + [168] = {field_alternative, 5}, {field_condition, 1}, {field_consequence, 3}, {field_consequence, 4}, - [165] = + [172] = {field_alternative, 5, .inherited = true}, {field_condition, 1}, {field_consequence, 3}, {field_consequence, 4}, - [169] = + [176] = {field_body, 4}, {field_body, 5}, - [171] = + [178] = {field_body, 5}, {field_name, 2}, {field_parameters, 3}, - [174] = + [181] = {field_body, 5}, {field_left, 1}, {field_right, 3}, - [177] = + [184] = {field_alternative, 5}, {field_body, 3}, {field_body, 4}, {field_condition, 1}, - [181] = + [188] = {field_prefix_operator, 0}, {field_real, 1}, - [183] = + [190] = {field_default, 2, .inherited = true}, {field_name, 1}, - [185] = + [192] = {field_bound, 1}, - [186] = + [193] = {field_default, 1}, - [187] = + [194] = {field_bound, 1, .inherited = true}, {field_default, 2, .inherited = true}, {field_name, 0}, - [190] = + [197] = {field_type_parameter, 1}, {field_type_parameter, 2, .inherited = true}, - [192] = + [199] = {field_type_parameter, 0, .inherited = true}, {field_type_parameter, 1, .inherited = true}, - [194] = + [201] = {field_body, 4}, {field_body, 5}, {field_name, 1}, {field_parameters, 2}, - [198] = + [205] = {field_body, 5}, {field_name, 1}, {field_parameters, 3}, {field_type_parameters, 2}, - [202] = + [209] = {field_body, 4}, {field_body, 5}, {field_name, 1}, {field_type_parameters, 2}, - [206] = + [213] = {field_body, 5}, {field_name, 1}, {field_superclasses, 3}, {field_type_parameters, 2}, - [210] = + [217] = {field_body, 4}, {field_body, 5}, {field_name, 1}, {field_superclasses, 2}, - [214] = + [221] = {field_name, 0}, {field_type, 2}, {field_value, 4}, - [217] = + [224] = {field_step, 3}, {field_stop, 1}, - [219] = + [226] = {field_start, 0}, {field_step, 3}, - [221] = + [228] = + {field_is_lazy, 0}, + {field_module_name, 2}, + {field_name, 5, .inherited = true}, + [231] = {field_left, 2}, {field_right, 4}, - [223] = + [233] = {field_left, 1}, {field_right, 3}, {field_right, 4}, - [226] = + [236] = {field_alternative, 5, .inherited = true}, {field_alternative, 6}, {field_condition, 1}, {field_consequence, 3}, {field_consequence, 4}, - [231] = + [241] = {field_body, 6}, {field_left, 2}, {field_right, 4}, - [234] = + [244] = {field_body, 5}, {field_body, 6}, {field_name, 2}, {field_parameters, 3}, - [238] = + [248] = {field_body, 6}, {field_name, 2}, {field_parameters, 4}, {field_type_parameters, 3}, - [242] = + [252] = {field_alternative, 6}, {field_body, 5}, {field_left, 1}, {field_right, 3}, - [246] = + [256] = {field_body, 5}, {field_body, 6}, {field_left, 1}, {field_right, 3}, - [250] = + [260] = {field_body, 3}, {field_type, 1}, - [252] = + [262] = {field_content, 1}, - [253] = + [263] = {field_imaginary, 2}, {field_operator, 1}, {field_real, 0}, - [256] = + [266] = {field_test, 1}, - [257] = + [267] = {field_body, 3}, {field_pattern, 1}, - [259] = + [269] = {field_alias, 2}, {field_pattern, 0}, - [261] = + [271] = {field_class, 0}, - [262] = + [272] = {field_body, 6}, {field_name, 1}, {field_parameters, 2}, {field_return_type, 4}, - [266] = + [276] = {field_body, 5}, {field_body, 6}, {field_name, 1}, {field_parameters, 3}, {field_type_parameters, 2}, - [271] = + [281] = {field_body, 5}, {field_body, 6}, {field_name, 1}, {field_superclasses, 3}, {field_type_parameters, 2}, - [276] = + [286] = {field_start, 0}, {field_step, 4}, {field_stop, 2}, - [279] = + [289] = {field_left, 2}, {field_right, 4}, {field_right, 5}, - [282] = + [292] = {field_alternative, 7}, {field_body, 6}, {field_left, 2}, {field_right, 4}, - [286] = + [296] = {field_body, 6}, {field_body, 7}, {field_left, 2}, {field_right, 4}, - [290] = + [300] = {field_body, 7}, {field_name, 2}, {field_parameters, 3}, {field_return_type, 5}, - [294] = + [304] = {field_body, 6}, {field_body, 7}, {field_name, 2}, {field_parameters, 4}, {field_type_parameters, 3}, - [299] = + [309] = {field_alternative, 7}, {field_body, 5}, {field_body, 6}, {field_left, 1}, {field_right, 3}, - [304] = + [314] = {field_body, 4}, {field_type, 2}, - [306] = + [316] = {field_body, 3}, {field_body, 4}, {field_type, 1}, - [309] = + [319] = {field_imaginary, 3}, {field_operator, 2}, {field_prefix_operator, 0}, {field_real, 1}, - [313] = + [323] = {field_body, 3}, {field_body, 4}, {field_pattern, 1}, - [316] = + [326] = {field_body, 4}, {field_guard, 2}, {field_pattern, 1}, - [319] = + [329] = {field_body, 6}, {field_body, 7}, {field_name, 1}, {field_parameters, 2}, {field_return_type, 4}, - [324] = + [334] = {field_body, 7}, {field_name, 1}, {field_parameters, 3}, {field_return_type, 5}, {field_type_parameters, 2}, - [329] = + [339] = {field_alternative, 8}, {field_body, 6}, {field_body, 7}, {field_left, 2}, {field_right, 4}, - [334] = + [344] = {field_body, 7}, {field_body, 8}, {field_name, 2}, {field_parameters, 3}, {field_return_type, 5}, - [339] = + [349] = {field_body, 8}, {field_name, 2}, {field_parameters, 4}, {field_return_type, 6}, {field_type_parameters, 3}, - [344] = + [354] = {field_body, 4}, {field_body, 5}, {field_type, 2}, - [347] = + [357] = {field_alias, 3}, {field_body, 5}, {field_type, 1}, - [350] = + [360] = {field_body, 4}, {field_body, 5}, {field_guard, 2}, {field_pattern, 1}, - [354] = + [364] = {field_attribute, 0}, {field_value, 2}, - [356] = + [366] = {field_body, 7}, {field_body, 8}, {field_name, 1}, {field_parameters, 3}, {field_return_type, 5}, {field_type_parameters, 2}, - [362] = + [372] = {field_body, 8}, {field_body, 9}, {field_name, 2}, {field_parameters, 4}, {field_return_type, 6}, {field_type_parameters, 3}, - [368] = + [378] = {field_alias, 4}, {field_body, 6}, {field_type, 2}, - [371] = + [381] = {field_alias, 3}, {field_body, 5}, {field_body, 6}, {field_type, 1}, - [375] = + [385] = {field_alias, 4}, {field_body, 6}, {field_body, 7}, @@ -2916,126 +2943,126 @@ static const TSSymbol ts_alias_sequences[PRODUCTION_ID_COUNT][MAX_ALIAS_SEQUENCE [8] = { [1] = sym_identifier, }, - [27] = { + [23] = { [0] = sym_identifier, }, - [33] = { + [34] = { [1] = sym_identifier, }, - [49] = { + [50] = { [1] = sym_parenthesized_expression, }, - [54] = { - [3] = sym_block, - }, [55] = { [3] = sym_block, }, [56] = { - [2] = sym_block, + [3] = sym_block, }, [57] = { + [2] = sym_block, + }, + [58] = { [3] = sym_block, }, - [59] = { + [60] = { [1] = sym_tuple, }, - [64] = { + [65] = { [3] = sym_block, }, - [67] = { + [68] = { [1] = sym_parenthesized_expression, }, - [71] = { + [72] = { [0] = anon_alias_sym_notin, [1] = anon_alias_sym_notin, }, - [72] = { + [73] = { [0] = anon_alias_sym_isnot, [1] = anon_alias_sym_isnot, }, - [73] = { + [74] = { [0] = alias_sym_format_expression, }, - [75] = { - [3] = sym_block, - }, - [76] = { - [3] = sym_block, - }, [78] = { - [4] = sym_block, + [3] = sym_block, }, [79] = { [3] = sym_block, }, - [87] = { + [81] = { [4] = sym_block, }, + [82] = { + [3] = sym_block, + }, [90] = { [4] = sym_block, }, - [91] = { + [93] = { [4] = sym_block, }, - [93] = { + [94] = { + [4] = sym_block, + }, + [96] = { [1] = sym_parenthesized_expression, }, - [99] = { + [102] = { [3] = sym_block, }, - [104] = { + [107] = { [5] = sym_block, }, - [105] = { + [108] = { [5] = sym_block, }, - [115] = { + [118] = { [5] = sym_block, }, - [117] = { + [120] = { [5] = sym_block, }, - [125] = { + [129] = { [6] = sym_block, }, - [127] = { + [131] = { [6] = sym_block, }, - [128] = { + [132] = { [5] = sym_block, }, - [130] = { - [3] = sym_block, - }, [134] = { [3] = sym_block, }, - [137] = { + [138] = { + [3] = sym_block, + }, + [141] = { [6] = sym_block, }, - [142] = { + [146] = { [6] = sym_block, }, - [144] = { + [148] = { [7] = sym_block, }, - [147] = { - [4] = sym_block, - }, [151] = { [4] = sym_block, }, - [153] = { + [155] = { + [4] = sym_block, + }, + [157] = { [7] = sym_block, }, - [156] = { + [160] = { [8] = sym_block, }, - [158] = { + [162] = { [5] = sym_block, }, - [163] = { + [167] = { [6] = sym_block, }, }; @@ -3061,8 +3088,8 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [1] = 1, [2] = 2, [3] = 3, - [4] = 2, - [5] = 5, + [4] = 4, + [5] = 2, [6] = 6, [7] = 7, [8] = 8, @@ -3088,41 +3115,41 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [28] = 28, [29] = 29, [30] = 30, - [31] = 3, - [32] = 5, + [31] = 31, + [32] = 4, [33] = 6, - [34] = 7, - [35] = 8, - [36] = 9, - [37] = 10, - [38] = 11, - [39] = 12, - [40] = 13, - [41] = 14, - [42] = 15, - [43] = 16, - [44] = 17, - [45] = 18, - [46] = 19, - [47] = 20, - [48] = 21, - [49] = 22, - [50] = 23, - [51] = 24, - [52] = 25, - [53] = 26, - [54] = 27, - [55] = 28, - [56] = 56, - [57] = 29, - [58] = 30, - [59] = 56, + [34] = 8, + [35] = 9, + [36] = 10, + [37] = 11, + [38] = 12, + [39] = 13, + [40] = 14, + [41] = 15, + [42] = 16, + [43] = 17, + [44] = 18, + [45] = 19, + [46] = 20, + [47] = 21, + [48] = 22, + [49] = 23, + [50] = 24, + [51] = 25, + [52] = 26, + [53] = 27, + [54] = 28, + [55] = 29, + [56] = 30, + [57] = 31, + [58] = 3, + [59] = 7, [60] = 60, - [61] = 61, + [61] = 60, [62] = 62, - [63] = 61, - [64] = 60, - [65] = 61, + [63] = 60, + [64] = 64, + [65] = 62, [66] = 66, [67] = 66, [68] = 68, @@ -3134,7 +3161,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [74] = 74, [75] = 75, [76] = 76, - [77] = 77, + [77] = 75, [78] = 78, [79] = 79, [80] = 80, @@ -3142,210 +3169,210 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [82] = 82, [83] = 83, [84] = 84, - [85] = 71, - [86] = 72, + [85] = 85, + [86] = 86, [87] = 87, - [88] = 74, - [89] = 75, - [90] = 80, - [91] = 82, - [92] = 92, - [93] = 83, - [94] = 94, - [95] = 87, - [96] = 84, - [97] = 94, - [98] = 98, - [99] = 76, + [88] = 88, + [89] = 89, + [90] = 69, + [91] = 74, + [92] = 70, + [93] = 76, + [94] = 68, + [95] = 95, + [96] = 81, + [97] = 71, + [98] = 87, + [99] = 79, [100] = 100, - [101] = 100, - [102] = 102, - [103] = 77, - [104] = 104, - [105] = 105, - [106] = 102, + [101] = 95, + [102] = 80, + [103] = 103, + [104] = 100, + [105] = 103, + [106] = 106, [107] = 107, - [108] = 104, - [109] = 105, + [108] = 107, + [109] = 82, [110] = 110, - [111] = 78, - [112] = 112, - [113] = 79, - [114] = 107, + [111] = 110, + [112] = 83, + [113] = 113, + [114] = 84, [115] = 115, - [116] = 116, - [117] = 110, - [118] = 92, - [119] = 70, - [120] = 112, - [121] = 81, + [116] = 113, + [117] = 85, + [118] = 115, + [119] = 119, + [120] = 72, + [121] = 86, [122] = 73, - [123] = 115, - [124] = 69, - [125] = 116, - [126] = 98, + [123] = 106, + [124] = 119, + [125] = 88, + [126] = 89, [127] = 127, [128] = 128, - [129] = 128, + [129] = 127, [130] = 127, [131] = 128, - [132] = 127, + [132] = 128, [133] = 133, [134] = 134, [135] = 135, [136] = 136, [137] = 137, [138] = 136, - [139] = 139, + [139] = 136, [140] = 136, - [141] = 136, - [142] = 142, - [143] = 137, - [144] = 136, - [145] = 137, - [146] = 146, - [147] = 136, - [148] = 134, - [149] = 137, + [141] = 141, + [142] = 137, + [143] = 143, + [144] = 144, + [145] = 136, + [146] = 136, + [147] = 137, + [148] = 135, + [149] = 134, [150] = 137, - [151] = 146, + [151] = 137, [152] = 137, - [153] = 153, + [153] = 144, [154] = 154, [155] = 155, [156] = 156, [157] = 157, - [158] = 158, + [158] = 157, [159] = 159, - [160] = 157, + [160] = 159, [161] = 161, - [162] = 159, - [163] = 157, + [162] = 162, + [163] = 159, [164] = 164, - [165] = 164, - [166] = 164, - [167] = 164, - [168] = 168, - [169] = 168, - [170] = 170, + [165] = 165, + [166] = 165, + [167] = 165, + [168] = 165, + [169] = 169, + [170] = 169, [171] = 171, [172] = 172, [173] = 173, - [174] = 168, + [174] = 173, [175] = 175, [176] = 176, [177] = 177, - [178] = 170, - [179] = 171, - [180] = 172, - [181] = 173, - [182] = 176, + [178] = 178, + [179] = 169, + [180] = 180, + [181] = 178, + [182] = 182, [183] = 183, [184] = 184, - [185] = 185, - [186] = 186, - [187] = 176, - [188] = 176, - [189] = 189, + [185] = 171, + [186] = 178, + [187] = 172, + [188] = 178, + [189] = 184, [190] = 190, - [191] = 170, + [191] = 191, [192] = 192, - [193] = 172, + [193] = 193, [194] = 194, - [195] = 195, - [196] = 196, - [197] = 197, + [195] = 193, + [196] = 194, + [197] = 173, [198] = 198, - [199] = 199, + [199] = 191, [200] = 200, - [201] = 189, - [202] = 195, - [203] = 196, - [204] = 204, - [205] = 205, - [206] = 194, - [207] = 197, - [208] = 194, - [209] = 198, - [210] = 199, - [211] = 199, - [212] = 195, - [213] = 196, - [214] = 198, - [215] = 189, - [216] = 200, - [217] = 217, - [218] = 194, - [219] = 197, - [220] = 171, - [221] = 195, - [222] = 196, - [223] = 198, - [224] = 189, - [225] = 200, + [201] = 201, + [202] = 202, + [203] = 172, + [204] = 198, + [205] = 191, + [206] = 200, + [207] = 201, + [208] = 208, + [209] = 209, + [210] = 208, + [211] = 171, + [212] = 208, + [213] = 192, + [214] = 214, + [215] = 192, + [216] = 193, + [217] = 194, + [218] = 198, + [219] = 191, + [220] = 200, + [221] = 201, + [222] = 209, + [223] = 208, + [224] = 224, + [225] = 193, [226] = 194, - [227] = 197, - [228] = 200, - [229] = 194, - [230] = 197, - [231] = 197, - [232] = 232, + [227] = 198, + [228] = 228, + [229] = 200, + [230] = 201, + [231] = 209, + [232] = 208, [233] = 233, - [234] = 234, - [235] = 235, - [236] = 236, - [237] = 237, - [238] = 232, - [239] = 239, - [240] = 232, - [241] = 232, - [242] = 242, + [234] = 209, + [235] = 208, + [236] = 209, + [237] = 209, + [238] = 238, + [239] = 238, + [240] = 240, + [241] = 238, + [242] = 238, [243] = 243, [244] = 244, [245] = 245, [246] = 246, - [247] = 246, - [248] = 243, + [247] = 247, + [248] = 248, [249] = 249, [250] = 250, - [251] = 250, + [251] = 248, [252] = 252, - [253] = 253, - [254] = 249, - [255] = 252, - [256] = 252, - [257] = 253, - [258] = 249, - [259] = 252, - [260] = 253, - [261] = 249, - [262] = 253, - [263] = 250, - [264] = 264, + [253] = 249, + [254] = 254, + [255] = 254, + [256] = 254, + [257] = 257, + [258] = 258, + [259] = 257, + [260] = 258, + [261] = 257, + [262] = 258, + [263] = 257, + [264] = 258, [265] = 265, [266] = 266, [267] = 267, - [268] = 266, + [268] = 268, [269] = 269, [270] = 270, - [271] = 265, - [272] = 272, + [271] = 271, + [272] = 266, [273] = 273, [274] = 274, [275] = 275, [276] = 276, - [277] = 277, + [277] = 270, [278] = 278, - [279] = 275, - [280] = 267, - [281] = 273, - [282] = 282, - [283] = 283, - [284] = 278, - [285] = 276, - [286] = 270, - [287] = 283, - [288] = 288, + [279] = 279, + [280] = 280, + [281] = 275, + [282] = 267, + [283] = 278, + [284] = 284, + [285] = 284, + [286] = 280, + [287] = 274, + [288] = 271, [289] = 289, [290] = 290, [291] = 291, @@ -3361,167 +3388,167 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [301] = 301, [302] = 302, [303] = 303, - [304] = 288, - [305] = 305, - [306] = 306, + [304] = 292, + [305] = 295, + [306] = 290, [307] = 307, [308] = 308, [309] = 309, - [310] = 305, - [311] = 295, + [310] = 310, + [311] = 311, [312] = 312, [313] = 313, [314] = 314, [315] = 315, - [316] = 316, + [316] = 312, [317] = 317, - [318] = 313, - [319] = 312, + [318] = 318, + [319] = 319, [320] = 320, [321] = 321, [322] = 322, [323] = 323, - [324] = 324, - [325] = 320, - [326] = 321, - [327] = 322, - [328] = 328, - [329] = 329, - [330] = 328, - [331] = 329, - [332] = 314, - [333] = 316, - [334] = 334, - [335] = 317, - [336] = 334, - [337] = 323, - [338] = 324, + [324] = 314, + [325] = 311, + [326] = 326, + [327] = 321, + [328] = 318, + [329] = 322, + [330] = 326, + [331] = 315, + [332] = 320, + [333] = 333, + [334] = 333, + [335] = 323, + [336] = 336, + [337] = 319, + [338] = 338, [339] = 339, [340] = 340, [341] = 341, [342] = 342, - [343] = 340, + [343] = 343, [344] = 344, [345] = 345, [346] = 346, [347] = 347, - [348] = 345, + [348] = 348, [349] = 349, [350] = 350, - [351] = 351, + [351] = 346, [352] = 352, [353] = 353, [354] = 354, [355] = 355, [356] = 356, - [357] = 356, - [358] = 358, - [359] = 341, + [357] = 342, + [358] = 338, + [359] = 339, [360] = 360, [361] = 361, [362] = 362, [363] = 363, [364] = 364, - [365] = 365, - [366] = 356, - [367] = 367, - [368] = 361, - [369] = 351, - [370] = 341, - [371] = 344, + [365] = 353, + [366] = 354, + [367] = 346, + [368] = 342, + [369] = 355, + [370] = 346, + [371] = 349, [372] = 372, - [373] = 373, - [374] = 353, - [375] = 362, - [376] = 360, - [377] = 377, - [378] = 378, - [379] = 361, - [380] = 380, - [381] = 364, - [382] = 351, - [383] = 383, - [384] = 384, - [385] = 385, - [386] = 353, - [387] = 360, - [388] = 344, - [389] = 344, - [390] = 378, - [391] = 340, - [392] = 356, - [393] = 361, - [394] = 364, - [395] = 351, - [396] = 353, - [397] = 397, - [398] = 360, - [399] = 354, - [400] = 344, - [401] = 340, - [402] = 402, - [403] = 340, - [404] = 350, - [405] = 356, - [406] = 406, + [373] = 353, + [374] = 374, + [375] = 355, + [376] = 338, + [377] = 339, + [378] = 360, + [379] = 342, + [380] = 353, + [381] = 360, + [382] = 338, + [383] = 339, + [384] = 360, + [385] = 342, + [386] = 386, + [387] = 387, + [388] = 349, + [389] = 372, + [390] = 349, + [391] = 372, + [392] = 350, + [393] = 393, + [394] = 394, + [395] = 374, + [396] = 372, + [397] = 374, + [398] = 398, + [399] = 372, + [400] = 400, + [401] = 343, + [402] = 398, + [403] = 403, + [404] = 404, + [405] = 405, + [406] = 346, [407] = 407, - [408] = 356, - [409] = 361, - [410] = 364, - [411] = 351, - [412] = 353, - [413] = 360, - [414] = 344, - [415] = 361, - [416] = 340, - [417] = 350, - [418] = 362, - [419] = 350, - [420] = 364, - [421] = 350, - [422] = 350, - [423] = 385, - [424] = 407, + [408] = 346, + [409] = 374, + [410] = 353, + [411] = 355, + [412] = 338, + [413] = 339, + [414] = 360, + [415] = 342, + [416] = 372, + [417] = 417, + [418] = 403, + [419] = 353, + [420] = 403, + [421] = 354, + [422] = 403, + [423] = 403, + [424] = 345, [425] = 425, - [426] = 351, - [427] = 353, - [428] = 360, - [429] = 380, - [430] = 430, - [431] = 378, - [432] = 432, - [433] = 402, - [434] = 397, - [435] = 364, - [436] = 436, - [437] = 437, - [438] = 438, + [426] = 355, + [427] = 425, + [428] = 339, + [429] = 429, + [430] = 360, + [431] = 394, + [432] = 403, + [433] = 338, + [434] = 434, + [435] = 405, + [436] = 348, + [437] = 347, + [438] = 355, [439] = 439, [440] = 440, [441] = 441, [442] = 442, [443] = 443, - [444] = 436, - [445] = 442, + [444] = 444, + [445] = 444, [446] = 446, [447] = 447, - [448] = 446, - [449] = 447, + [448] = 448, + [449] = 448, [450] = 450, - [451] = 440, + [451] = 439, [452] = 452, - [453] = 452, - [454] = 437, - [455] = 441, - [456] = 438, - [457] = 443, - [458] = 458, - [459] = 439, - [460] = 450, - [461] = 461, - [462] = 462, - [463] = 463, - [464] = 464, + [453] = 453, + [454] = 447, + [455] = 455, + [456] = 441, + [457] = 457, + [458] = 457, + [459] = 455, + [460] = 442, + [461] = 440, + [462] = 443, + [463] = 446, + [464] = 450, [465] = 465, [466] = 466, [467] = 467, @@ -3529,48 +3556,48 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [469] = 469, [470] = 470, [471] = 471, - [472] = 470, - [473] = 463, + [472] = 472, + [473] = 473, [474] = 474, - [475] = 294, - [476] = 466, - [477] = 477, + [475] = 475, + [476] = 476, + [477] = 475, [478] = 478, - [479] = 468, + [479] = 473, [480] = 480, [481] = 480, - [482] = 482, - [483] = 307, - [484] = 469, - [485] = 485, - [486] = 471, - [487] = 487, - [488] = 464, - [489] = 485, - [490] = 477, - [491] = 482, - [492] = 492, + [482] = 474, + [483] = 483, + [484] = 476, + [485] = 483, + [486] = 486, + [487] = 467, + [488] = 468, + [489] = 472, + [490] = 486, + [491] = 478, + [492] = 317, [493] = 493, [494] = 494, [495] = 495, [496] = 496, - [497] = 497, - [498] = 492, + [497] = 493, + [498] = 498, [499] = 499, [500] = 500, [501] = 501, [502] = 502, - [503] = 495, + [503] = 313, [504] = 496, - [505] = 499, - [506] = 500, - [507] = 501, - [508] = 493, - [509] = 509, + [505] = 498, + [506] = 506, + [507] = 507, + [508] = 507, + [509] = 506, [510] = 510, - [511] = 511, - [512] = 511, - [513] = 513, + [511] = 500, + [512] = 502, + [513] = 501, [514] = 514, [515] = 515, [516] = 516, @@ -3597,7 +3624,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [537] = 537, [538] = 538, [539] = 539, - [540] = 540, + [540] = 533, [541] = 541, [542] = 542, [543] = 543, @@ -3606,163 +3633,163 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [546] = 546, [547] = 547, [548] = 548, - [549] = 549, + [549] = 529, [550] = 550, - [551] = 551, - [552] = 521, + [551] = 531, + [552] = 538, [553] = 553, [554] = 554, - [555] = 555, + [555] = 544, [556] = 556, - [557] = 557, - [558] = 514, + [557] = 554, + [558] = 545, [559] = 559, [560] = 560, - [561] = 534, - [562] = 535, - [563] = 540, - [564] = 541, - [565] = 547, - [566] = 550, - [567] = 567, - [568] = 568, - [569] = 569, - [570] = 570, - [571] = 571, - [572] = 515, - [573] = 516, - [574] = 517, - [575] = 518, - [576] = 519, - [577] = 520, - [578] = 522, - [579] = 523, - [580] = 524, - [581] = 567, - [582] = 525, - [583] = 526, - [584] = 527, - [585] = 528, - [586] = 529, - [587] = 530, - [588] = 560, - [589] = 531, - [590] = 532, - [591] = 533, - [592] = 536, - [593] = 537, - [594] = 538, - [595] = 539, - [596] = 568, - [597] = 569, - [598] = 542, - [599] = 543, - [600] = 544, - [601] = 545, - [602] = 546, - [603] = 548, - [604] = 549, - [605] = 570, - [606] = 571, - [607] = 553, - [608] = 554, - [609] = 555, - [610] = 556, - [611] = 557, - [612] = 612, - [613] = 559, + [561] = 519, + [562] = 539, + [563] = 520, + [564] = 556, + [565] = 521, + [566] = 566, + [567] = 525, + [568] = 526, + [569] = 530, + [570] = 532, + [571] = 535, + [572] = 537, + [573] = 541, + [574] = 543, + [575] = 547, + [576] = 548, + [577] = 550, + [578] = 566, + [579] = 579, + [580] = 580, + [581] = 581, + [582] = 579, + [583] = 583, + [584] = 584, + [585] = 585, + [586] = 586, + [587] = 587, + [588] = 528, + [589] = 589, + [590] = 536, + [591] = 542, + [592] = 553, + [593] = 546, + [594] = 580, + [595] = 595, + [596] = 596, + [597] = 516, + [598] = 517, + [599] = 518, + [600] = 581, + [601] = 586, + [602] = 522, + [603] = 523, + [604] = 559, + [605] = 534, + [606] = 595, + [607] = 596, + [608] = 514, + [609] = 583, + [610] = 584, + [611] = 611, + [612] = 587, + [613] = 585, [614] = 614, - [615] = 615, - [616] = 616, + [615] = 560, + [616] = 611, [617] = 617, - [618] = 615, + [618] = 618, [619] = 619, [620] = 620, - [621] = 621, - [622] = 615, - [623] = 615, - [624] = 624, - [625] = 615, - [626] = 615, + [621] = 620, + [622] = 620, + [623] = 620, + [624] = 620, + [625] = 620, + [626] = 626, [627] = 627, [628] = 628, [629] = 629, - [630] = 630, - [631] = 627, + [630] = 629, + [631] = 631, [632] = 632, [633] = 633, [634] = 634, - [635] = 628, - [636] = 629, - [637] = 628, - [638] = 629, - [639] = 630, + [635] = 626, + [636] = 626, + [637] = 637, + [638] = 638, + [639] = 639, [640] = 640, - [641] = 641, - [642] = 642, - [643] = 633, - [644] = 634, - [645] = 632, - [646] = 628, - [647] = 629, - [648] = 630, - [649] = 640, - [650] = 634, - [651] = 642, + [641] = 634, + [642] = 628, + [643] = 628, + [644] = 644, + [645] = 644, + [646] = 629, + [647] = 633, + [648] = 648, + [649] = 634, + [650] = 637, + [651] = 648, [652] = 633, - [653] = 634, + [653] = 626, [654] = 640, - [655] = 627, - [656] = 632, - [657] = 657, - [658] = 627, - [659] = 632, - [660] = 641, - [661] = 630, - [662] = 662, - [663] = 628, - [664] = 629, - [665] = 630, - [666] = 640, - [667] = 641, - [668] = 642, - [669] = 633, - [670] = 634, - [671] = 642, - [672] = 640, - [673] = 627, - [674] = 632, - [675] = 657, - [676] = 657, - [677] = 657, - [678] = 678, - [679] = 657, - [680] = 641, - [681] = 628, - [682] = 629, - [683] = 630, + [655] = 631, + [656] = 629, + [657] = 644, + [658] = 648, + [659] = 638, + [660] = 638, + [661] = 644, + [662] = 634, + [663] = 637, + [664] = 631, + [665] = 629, + [666] = 626, + [667] = 638, + [668] = 631, + [669] = 648, + [670] = 648, + [671] = 633, + [672] = 634, + [673] = 628, + [674] = 644, + [675] = 633, + [676] = 634, + [677] = 637, + [678] = 640, + [679] = 640, + [680] = 631, + [681] = 629, + [682] = 626, + [683] = 638, [684] = 640, - [685] = 641, - [686] = 642, + [685] = 685, + [686] = 648, [687] = 633, - [688] = 634, - [689] = 633, - [690] = 627, - [691] = 632, - [692] = 657, - [693] = 642, - [694] = 641, - [695] = 695, - [696] = 696, - [697] = 697, + [688] = 628, + [689] = 631, + [690] = 690, + [691] = 638, + [692] = 628, + [693] = 693, + [694] = 694, + [695] = 637, + [696] = 637, + [697] = 644, [698] = 698, - [699] = 699, + [699] = 640, [700] = 700, [701] = 701, [702] = 702, [703] = 703, [704] = 704, - [705] = 705, + [705] = 704, [706] = 706, [707] = 707, [708] = 708, @@ -3782,7 +3809,7 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [722] = 722, [723] = 723, [724] = 724, - [725] = 719, + [725] = 725, [726] = 726, [727] = 727, [728] = 728, @@ -3797,509 +3824,509 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [737] = 737, [738] = 738, [739] = 739, - [740] = 734, + [740] = 740, [741] = 741, - [742] = 742, + [742] = 739, [743] = 743, - [744] = 616, - [745] = 617, - [746] = 619, - [747] = 620, + [744] = 744, + [745] = 745, + [746] = 746, + [747] = 747, [748] = 748, - [749] = 749, - [750] = 736, - [751] = 737, - [752] = 738, - [753] = 739, - [754] = 741, - [755] = 742, - [756] = 743, - [757] = 748, - [758] = 749, - [759] = 759, - [760] = 735, - [761] = 759, - [762] = 620, - [763] = 624, - [764] = 713, - [765] = 616, - [766] = 719, - [767] = 621, - [768] = 624, - [769] = 616, - [770] = 617, - [771] = 619, - [772] = 719, - [773] = 773, + [749] = 690, + [750] = 693, + [751] = 751, + [752] = 752, + [753] = 685, + [754] = 627, + [755] = 751, + [756] = 752, + [757] = 757, + [758] = 743, + [759] = 744, + [760] = 745, + [761] = 746, + [762] = 740, + [763] = 741, + [764] = 757, + [765] = 748, + [766] = 747, + [767] = 736, + [768] = 685, + [769] = 627, + [770] = 690, + [771] = 693, + [772] = 698, + [773] = 704, [774] = 774, - [775] = 619, - [776] = 620, - [777] = 712, - [778] = 617, - [779] = 719, - [780] = 773, - [781] = 774, - [782] = 621, - [783] = 734, - [784] = 759, - [785] = 735, - [786] = 736, - [787] = 737, - [788] = 738, - [789] = 739, - [790] = 735, - [791] = 741, - [792] = 742, - [793] = 743, - [794] = 621, - [795] = 624, - [796] = 736, - [797] = 748, - [798] = 749, - [799] = 737, - [800] = 738, + [775] = 704, + [776] = 685, + [777] = 627, + [778] = 778, + [779] = 694, + [780] = 704, + [781] = 694, + [782] = 698, + [783] = 737, + [784] = 690, + [785] = 693, + [786] = 778, + [787] = 774, + [788] = 741, + [789] = 704, + [790] = 694, + [791] = 698, + [792] = 702, + [793] = 701, + [794] = 703, + [795] = 700, + [796] = 751, + [797] = 752, + [798] = 757, + [799] = 747, + [800] = 740, [801] = 739, - [802] = 734, - [803] = 759, - [804] = 742, - [805] = 743, - [806] = 695, - [807] = 696, - [808] = 697, - [809] = 698, - [810] = 735, - [811] = 759, - [812] = 736, - [813] = 737, - [814] = 738, - [815] = 739, - [816] = 734, + [802] = 743, + [803] = 744, + [804] = 748, + [805] = 747, + [806] = 745, + [807] = 746, + [808] = 747, + [809] = 752, + [810] = 757, + [811] = 739, + [812] = 743, + [813] = 744, + [814] = 745, + [815] = 746, + [816] = 740, [817] = 741, - [818] = 742, - [819] = 743, - [820] = 748, - [821] = 749, - [822] = 719, - [823] = 748, - [824] = 749, - [825] = 741, - [826] = 773, - [827] = 696, - [828] = 736, - [829] = 737, - [830] = 698, - [831] = 738, - [832] = 739, - [833] = 734, - [834] = 509, - [835] = 741, - [836] = 742, - [837] = 743, - [838] = 502, - [839] = 839, - [840] = 773, - [841] = 697, - [842] = 774, - [843] = 748, - [844] = 749, - [845] = 759, - [846] = 846, - [847] = 695, - [848] = 735, - [849] = 494, - [850] = 695, - [851] = 698, - [852] = 852, - [853] = 774, - [854] = 854, + [818] = 748, + [819] = 751, + [820] = 752, + [821] = 757, + [822] = 739, + [823] = 743, + [824] = 744, + [825] = 745, + [826] = 746, + [827] = 740, + [828] = 741, + [829] = 748, + [830] = 751, + [831] = 778, + [832] = 778, + [833] = 748, + [834] = 701, + [835] = 774, + [836] = 774, + [837] = 778, + [838] = 515, + [839] = 747, + [840] = 700, + [841] = 841, + [842] = 614, + [843] = 702, + [844] = 751, + [845] = 752, + [846] = 702, + [847] = 701, + [848] = 703, + [849] = 617, + [850] = 494, + [851] = 524, + [852] = 703, + [853] = 700, + [854] = 774, [855] = 855, - [856] = 856, - [857] = 513, - [858] = 462, - [859] = 696, - [860] = 860, - [861] = 697, - [862] = 856, - [863] = 773, - [864] = 465, - [865] = 774, - [866] = 720, - [867] = 716, - [868] = 710, - [869] = 705, - [870] = 712, - [871] = 713, - [872] = 706, - [873] = 707, - [874] = 708, - [875] = 709, - [876] = 294, - [877] = 699, - [878] = 732, - [879] = 721, + [856] = 757, + [857] = 857, + [858] = 858, + [859] = 618, + [860] = 470, + [861] = 861, + [862] = 739, + [863] = 743, + [864] = 744, + [865] = 745, + [866] = 746, + [867] = 740, + [868] = 741, + [869] = 869, + [870] = 869, + [871] = 871, + [872] = 499, + [873] = 734, + [874] = 723, + [875] = 724, + [876] = 313, + [877] = 723, + [878] = 707, + [879] = 725, [880] = 726, [881] = 727, [882] = 728, [883] = 729, [884] = 730, [885] = 731, - [886] = 706, - [887] = 722, - [888] = 700, - [889] = 702, - [890] = 307, - [891] = 705, - [892] = 717, - [893] = 714, - [894] = 716, - [895] = 718, - [896] = 732, - [897] = 711, - [898] = 701, - [899] = 703, - [900] = 704, - [901] = 710, - [902] = 708, - [903] = 718, - [904] = 733, - [905] = 712, - [906] = 733, - [907] = 721, - [908] = 724, - [909] = 714, - [910] = 726, - [911] = 773, - [912] = 774, - [913] = 727, - [914] = 701, - [915] = 494, - [916] = 703, - [917] = 704, - [918] = 713, - [919] = 502, - [920] = 728, - [921] = 729, - [922] = 730, - [923] = 731, - [924] = 724, - [925] = 513, - [926] = 723, - [927] = 927, - [928] = 928, - [929] = 722, - [930] = 700, - [931] = 699, - [932] = 932, - [933] = 933, + [886] = 732, + [887] = 733, + [888] = 734, + [889] = 735, + [890] = 709, + [891] = 710, + [892] = 736, + [893] = 737, + [894] = 711, + [895] = 708, + [896] = 896, + [897] = 897, + [898] = 725, + [899] = 712, + [900] = 716, + [901] = 713, + [902] = 714, + [903] = 726, + [904] = 727, + [905] = 728, + [906] = 317, + [907] = 778, + [908] = 729, + [909] = 730, + [910] = 731, + [911] = 706, + [912] = 715, + [913] = 774, + [914] = 515, + [915] = 736, + [916] = 737, + [917] = 614, + [918] = 706, + [919] = 715, + [920] = 719, + [921] = 709, + [922] = 710, + [923] = 707, + [924] = 524, + [925] = 708, + [926] = 738, + [927] = 713, + [928] = 721, + [929] = 724, + [930] = 722, + [931] = 931, + [932] = 711, + [933] = 716, [934] = 934, [935] = 935, - [936] = 702, - [937] = 707, - [938] = 723, - [939] = 715, - [940] = 717, - [941] = 720, - [942] = 715, - [943] = 711, - [944] = 709, - [945] = 706, - [946] = 710, - [947] = 294, + [936] = 714, + [937] = 717, + [938] = 718, + [939] = 939, + [940] = 719, + [941] = 732, + [942] = 733, + [943] = 718, + [944] = 738, + [945] = 735, + [946] = 721, + [947] = 717, [948] = 722, - [949] = 699, - [950] = 702, - [951] = 307, - [952] = 715, - [953] = 724, - [954] = 717, - [955] = 714, - [956] = 716, - [957] = 718, - [958] = 720, - [959] = 732, - [960] = 711, - [961] = 701, - [962] = 703, - [963] = 723, - [964] = 964, - [965] = 704, - [966] = 707, - [967] = 721, - [968] = 708, - [969] = 705, - [970] = 726, - [971] = 727, - [972] = 839, - [973] = 852, - [974] = 728, - [975] = 709, - [976] = 729, - [977] = 733, - [978] = 730, - [979] = 979, - [980] = 980, - [981] = 731, + [949] = 720, + [950] = 720, + [951] = 712, + [952] = 722, + [953] = 708, + [954] = 709, + [955] = 710, + [956] = 711, + [957] = 712, + [958] = 713, + [959] = 317, + [960] = 715, + [961] = 716, + [962] = 717, + [963] = 718, + [964] = 719, + [965] = 738, + [966] = 721, + [967] = 723, + [968] = 724, + [969] = 313, + [970] = 725, + [971] = 726, + [972] = 727, + [973] = 728, + [974] = 729, + [975] = 730, + [976] = 731, + [977] = 732, + [978] = 733, + [979] = 734, + [980] = 735, + [981] = 981, [982] = 982, - [983] = 700, - [984] = 984, - [985] = 985, - [986] = 986, + [983] = 983, + [984] = 858, + [985] = 720, + [986] = 857, [987] = 987, - [988] = 988, - [989] = 989, - [990] = 989, + [988] = 706, + [989] = 707, + [990] = 714, [991] = 991, - [992] = 991, + [992] = 992, [993] = 993, [994] = 994, - [995] = 989, + [995] = 995, [996] = 996, - [997] = 991, - [998] = 998, - [999] = 999, + [997] = 997, + [998] = 997, + [999] = 996, [1000] = 1000, - [1001] = 1001, - [1002] = 991, - [1003] = 989, - [1004] = 1004, + [1001] = 996, + [1002] = 1002, + [1003] = 996, + [1004] = 997, [1005] = 1005, - [1006] = 991, - [1007] = 989, - [1008] = 1008, - [1009] = 991, + [1006] = 1006, + [1007] = 1007, + [1008] = 997, + [1009] = 1009, [1010] = 1010, - [1011] = 989, + [1011] = 1011, [1012] = 1012, [1013] = 1013, - [1014] = 1014, - [1015] = 1014, - [1016] = 1014, - [1017] = 1014, - [1018] = 1014, - [1019] = 1019, - [1020] = 1014, + [1014] = 997, + [1015] = 996, + [1016] = 997, + [1017] = 1017, + [1018] = 1018, + [1019] = 996, + [1020] = 1020, [1021] = 1021, [1022] = 1022, - [1023] = 1023, - [1024] = 1024, - [1025] = 1025, - [1026] = 1025, - [1027] = 1023, + [1023] = 1021, + [1024] = 1021, + [1025] = 1021, + [1026] = 1021, + [1027] = 1021, [1028] = 1028, - [1029] = 1028, + [1029] = 1029, [1030] = 1030, [1031] = 1031, - [1032] = 1032, + [1032] = 1031, [1033] = 1033, - [1034] = 1034, + [1034] = 1033, [1035] = 1035, - [1036] = 1036, + [1036] = 1035, [1037] = 1037, [1038] = 1038, [1039] = 1039, [1040] = 1040, [1041] = 1041, [1042] = 1042, - [1043] = 1033, - [1044] = 1035, - [1045] = 1037, - [1046] = 1034, - [1047] = 1033, - [1048] = 1036, - [1049] = 1049, - [1050] = 1035, - [1051] = 1037, + [1043] = 1043, + [1044] = 1044, + [1045] = 1045, + [1046] = 1046, + [1047] = 1041, + [1048] = 1048, + [1049] = 1044, + [1050] = 1040, + [1051] = 1046, [1052] = 1052, - [1053] = 1033, - [1054] = 1036, - [1055] = 1035, - [1056] = 1037, - [1057] = 1033, - [1058] = 1036, - [1059] = 1035, - [1060] = 1034, - [1061] = 1034, - [1062] = 1062, - [1063] = 1063, + [1053] = 1053, + [1054] = 1044, + [1055] = 1040, + [1056] = 1052, + [1057] = 1046, + [1058] = 1052, + [1059] = 1044, + [1060] = 1044, + [1061] = 1040, + [1062] = 1046, + [1063] = 1041, [1064] = 1064, - [1065] = 1065, - [1066] = 1066, - [1067] = 1067, - [1068] = 1063, - [1069] = 1065, + [1065] = 1046, + [1066] = 1052, + [1067] = 1041, + [1068] = 1068, + [1069] = 1069, [1070] = 1070, [1071] = 1071, [1072] = 1072, - [1073] = 1066, + [1073] = 1073, [1074] = 1070, - [1075] = 1067, - [1076] = 1067, + [1075] = 1075, + [1076] = 1072, [1077] = 1077, [1078] = 1078, - [1079] = 1066, - [1080] = 1067, + [1079] = 1079, + [1080] = 1080, [1081] = 1081, - [1082] = 1064, - [1083] = 1081, - [1084] = 1066, - [1085] = 1071, - [1086] = 1081, - [1087] = 1077, - [1088] = 1081, - [1089] = 1062, - [1090] = 1090, - [1091] = 1091, - [1092] = 1092, - [1093] = 1093, - [1094] = 1094, - [1095] = 1095, - [1096] = 1096, + [1082] = 1082, + [1083] = 1071, + [1084] = 1070, + [1085] = 1077, + [1086] = 1070, + [1087] = 1075, + [1088] = 1073, + [1089] = 1082, + [1090] = 1080, + [1091] = 1081, + [1092] = 1080, + [1093] = 1075, + [1094] = 1075, + [1095] = 1080, + [1096] = 1069, [1097] = 1097, [1098] = 1098, [1099] = 1099, [1100] = 1100, [1101] = 1101, - [1102] = 1071, - [1103] = 1064, - [1104] = 1062, - [1105] = 1063, - [1106] = 1065, - [1107] = 1070, - [1108] = 1071, - [1109] = 1071, + [1102] = 1102, + [1103] = 1103, + [1104] = 1104, + [1105] = 1105, + [1106] = 1106, + [1107] = 1107, + [1108] = 1108, + [1109] = 1098, [1110] = 1110, [1111] = 1111, - [1112] = 1096, + [1112] = 1071, [1113] = 1113, [1114] = 1114, - [1115] = 1115, + [1115] = 1073, [1116] = 1116, [1117] = 1117, - [1118] = 1113, + [1118] = 1077, [1119] = 1119, [1120] = 1120, - [1121] = 1063, + [1121] = 1072, [1122] = 1122, - [1123] = 1065, + [1123] = 1081, [1124] = 1124, [1125] = 1125, - [1126] = 1126, + [1126] = 1037, [1127] = 1127, [1128] = 1128, - [1129] = 1031, + [1129] = 1038, [1130] = 1130, - [1131] = 1131, + [1131] = 1037, [1132] = 1132, [1133] = 1133, [1134] = 1134, - [1135] = 1030, + [1135] = 1135, [1136] = 1136, [1137] = 1137, [1138] = 1138, - [1139] = 1139, + [1139] = 1098, [1140] = 1140, - [1141] = 1096, + [1141] = 1141, [1142] = 1142, [1143] = 1143, - [1144] = 1070, - [1145] = 1077, + [1144] = 1120, + [1145] = 1038, [1146] = 1146, - [1147] = 1147, - [1148] = 1093, - [1149] = 1077, - [1150] = 1064, - [1151] = 1062, - [1152] = 1063, - [1153] = 1065, - [1154] = 1154, - [1155] = 1155, - [1156] = 1064, - [1157] = 1070, - [1158] = 1031, - [1159] = 1159, + [1147] = 1069, + [1148] = 1148, + [1149] = 1149, + [1150] = 1150, + [1151] = 1151, + [1152] = 1081, + [1153] = 1081, + [1154] = 1077, + [1155] = 1073, + [1156] = 1069, + [1157] = 1071, + [1158] = 1158, + [1159] = 1098, [1160] = 1160, - [1161] = 1161, - [1162] = 1162, - [1163] = 1062, - [1164] = 1117, - [1165] = 1077, - [1166] = 1125, - [1167] = 1167, - [1168] = 1030, - [1169] = 1169, - [1170] = 1170, + [1161] = 1082, + [1162] = 1077, + [1163] = 1082, + [1164] = 1073, + [1165] = 1069, + [1166] = 1072, + [1167] = 1071, + [1168] = 1082, + [1169] = 1125, + [1170] = 1072, [1171] = 1171, - [1172] = 1172, + [1172] = 1146, [1173] = 1173, [1174] = 1174, - [1175] = 1175, - [1176] = 1031, + [1175] = 1107, + [1176] = 1176, [1177] = 1177, [1178] = 1178, [1179] = 1179, [1180] = 1180, - [1181] = 1173, - [1182] = 1182, + [1181] = 1181, + [1182] = 1077, [1183] = 1183, [1184] = 1184, [1185] = 1185, [1186] = 1186, - [1187] = 1171, - [1188] = 1077, - [1189] = 1183, - [1190] = 1170, - [1191] = 1125, - [1192] = 1064, - [1193] = 1062, - [1194] = 1063, - [1195] = 1065, - [1196] = 1196, - [1197] = 1197, - [1198] = 1170, - [1199] = 1117, + [1187] = 1187, + [1188] = 1082, + [1189] = 1073, + [1190] = 1069, + [1191] = 1191, + [1192] = 1192, + [1193] = 1193, + [1194] = 1184, + [1195] = 1195, + [1196] = 1186, + [1197] = 1072, + [1198] = 1037, + [1199] = 1199, [1200] = 1200, - [1201] = 1201, - [1202] = 1093, + [1201] = 1071, + [1202] = 1202, [1203] = 1203, [1204] = 1204, - [1205] = 1186, - [1206] = 1206, - [1207] = 1204, - [1208] = 1070, - [1209] = 1071, - [1210] = 1030, - [1211] = 1211, - [1212] = 1170, + [1205] = 1205, + [1206] = 1203, + [1207] = 1184, + [1208] = 1177, + [1209] = 1193, + [1210] = 1107, + [1211] = 1186, + [1212] = 1186, [1213] = 1213, - [1214] = 1214, - [1215] = 1215, - [1216] = 1216, - [1217] = 1217, - [1218] = 1218, - [1219] = 1216, - [1220] = 1220, - [1221] = 1221, - [1222] = 1221, + [1214] = 1081, + [1215] = 1195, + [1216] = 1183, + [1217] = 1202, + [1218] = 1204, + [1219] = 1120, + [1220] = 1125, + [1221] = 1199, + [1222] = 1222, [1223] = 1223, [1224] = 1224, [1225] = 1225, - [1226] = 1226, - [1227] = 1227, - [1228] = 1228, - [1229] = 1229, - [1230] = 1230, + [1226] = 1202, + [1227] = 1204, + [1228] = 1203, + [1229] = 1202, + [1230] = 1204, [1231] = 1231, - [1232] = 1215, - [1233] = 1233, - [1234] = 1032, + [1232] = 1203, + [1233] = 1038, + [1234] = 1234, [1235] = 1235, - [1236] = 1236, - [1237] = 1235, - [1238] = 1238, + [1236] = 1184, + [1237] = 1237, + [1238] = 1125, [1239] = 1239, - [1240] = 1236, - [1241] = 1233, - [1242] = 1242, + [1240] = 1240, + [1241] = 1241, + [1242] = 1039, [1243] = 1243, [1244] = 1244, [1245] = 1245, @@ -4307,75 +4334,75 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [1247] = 1247, [1248] = 1248, [1249] = 1249, - [1250] = 1172, - [1251] = 1229, + [1250] = 1250, + [1251] = 1245, [1252] = 1252, [1253] = 1253, - [1254] = 1230, + [1254] = 1254, [1255] = 1255, [1256] = 1256, [1257] = 1257, - [1258] = 1183, + [1258] = 1258, [1259] = 1259, - [1260] = 1215, + [1260] = 1260, [1261] = 1261, - [1262] = 1262, + [1262] = 1256, [1263] = 1263, [1264] = 1264, - [1265] = 1265, + [1265] = 1253, [1266] = 1266, [1267] = 1267, [1268] = 1268, [1269] = 1269, - [1270] = 1270, - [1271] = 1271, + [1270] = 1249, + [1271] = 1231, [1272] = 1272, - [1273] = 1267, - [1274] = 1274, + [1273] = 1272, + [1274] = 1243, [1275] = 1275, [1276] = 1276, - [1277] = 1277, - [1278] = 1229, - [1279] = 1279, - [1280] = 1221, - [1281] = 1256, - [1282] = 1214, + [1277] = 1276, + [1278] = 1278, + [1279] = 1250, + [1280] = 1280, + [1281] = 1281, + [1282] = 1282, [1283] = 1283, [1284] = 1284, [1285] = 1285, - [1286] = 1286, - [1287] = 1265, - [1288] = 1288, - [1289] = 1049, + [1286] = 1272, + [1287] = 1287, + [1288] = 1243, + [1289] = 1289, [1290] = 1290, [1291] = 1291, - [1292] = 1292, - [1293] = 1293, + [1292] = 1224, + [1293] = 1053, [1294] = 1294, [1295] = 1295, - [1296] = 1296, + [1296] = 1289, [1297] = 1297, [1298] = 1298, - [1299] = 1299, + [1299] = 1249, [1300] = 1300, - [1301] = 1301, + [1301] = 1291, [1302] = 1302, [1303] = 1303, [1304] = 1304, - [1305] = 1298, + [1305] = 1305, [1306] = 1306, - [1307] = 1297, + [1307] = 1307, [1308] = 1308, [1309] = 1309, - [1310] = 1302, + [1310] = 1310, [1311] = 1311, [1312] = 1312, [1313] = 1313, - [1314] = 1314, + [1314] = 1285, [1315] = 1315, - [1316] = 1316, - [1317] = 1039, - [1318] = 1040, + [1316] = 1199, + [1317] = 1317, + [1318] = 1318, [1319] = 1319, [1320] = 1320, [1321] = 1321, @@ -4385,94 +4412,94 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [1325] = 1325, [1326] = 1326, [1327] = 1327, - [1328] = 1271, - [1329] = 1275, - [1330] = 1290, + [1328] = 1328, + [1329] = 1329, + [1330] = 1330, [1331] = 1331, [1332] = 1332, - [1333] = 1303, + [1333] = 1333, [1334] = 1334, - [1335] = 1297, + [1335] = 1335, [1336] = 1336, - [1337] = 1337, - [1338] = 1338, - [1339] = 1297, - [1340] = 1340, + [1337] = 1300, + [1338] = 1304, + [1339] = 1339, + [1340] = 1324, [1341] = 1341, [1342] = 1342, - [1343] = 1303, + [1343] = 1343, [1344] = 1344, - [1345] = 1297, - [1346] = 1322, - [1347] = 1334, - [1348] = 1332, + [1345] = 1345, + [1346] = 1345, + [1347] = 1347, + [1348] = 1348, [1349] = 1349, - [1350] = 1295, - [1351] = 1351, - [1352] = 1349, - [1353] = 1353, + [1350] = 1350, + [1351] = 1328, + [1352] = 1352, + [1353] = 1347, [1354] = 1354, [1355] = 1355, - [1356] = 1356, + [1356] = 1330, [1357] = 1357, - [1358] = 1267, + [1358] = 1358, [1359] = 1359, [1360] = 1360, - [1361] = 1351, - [1362] = 1362, - [1363] = 1304, + [1361] = 1347, + [1362] = 1290, + [1363] = 1363, [1364] = 1364, - [1365] = 1365, - [1366] = 1297, - [1367] = 1255, + [1365] = 1347, + [1366] = 1366, + [1367] = 1347, [1368] = 1368, - [1369] = 1301, - [1370] = 1323, - [1371] = 1371, + [1369] = 1068, + [1370] = 1370, + [1371] = 1359, [1372] = 1372, - [1373] = 1332, + [1373] = 1043, [1374] = 1374, - [1375] = 1375, - [1376] = 1376, - [1377] = 1377, - [1378] = 1378, + [1375] = 1334, + [1376] = 1350, + [1377] = 1363, + [1378] = 1331, [1379] = 1379, - [1380] = 1223, + [1380] = 1380, [1381] = 1381, - [1382] = 1306, + [1382] = 1382, [1383] = 1383, - [1384] = 1309, + [1384] = 1302, [1385] = 1385, - [1386] = 1386, - [1387] = 1387, + [1386] = 1370, + [1387] = 1347, [1388] = 1388, [1389] = 1389, [1390] = 1390, [1391] = 1391, [1392] = 1392, - [1393] = 1393, + [1393] = 1291, [1394] = 1394, - [1395] = 1368, + [1395] = 1395, [1396] = 1396, - [1397] = 1387, - [1398] = 1388, - [1399] = 1399, - [1400] = 1383, + [1397] = 1397, + [1398] = 1396, + [1399] = 1328, + [1400] = 1400, [1401] = 1401, - [1402] = 1402, - [1403] = 1403, - [1404] = 697, + [1402] = 1345, + [1403] = 1397, + [1404] = 1404, [1405] = 1405, [1406] = 1406, - [1407] = 1377, - [1408] = 1389, + [1407] = 1407, + [1408] = 1408, [1409] = 1409, - [1410] = 1403, - [1411] = 1387, - [1412] = 1388, + [1410] = 1410, + [1411] = 1411, + [1412] = 1412, [1413] = 1413, - [1414] = 1377, - [1415] = 1415, + [1414] = 1335, + [1415] = 1336, [1416] = 1416, [1417] = 1417, [1418] = 1418, @@ -4480,306 +4507,338 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [1420] = 1420, [1421] = 1421, [1422] = 1422, - [1423] = 1383, + [1423] = 1423, [1424] = 1424, - [1425] = 1403, - [1426] = 1389, - [1427] = 1409, - [1428] = 1385, - [1429] = 1387, - [1430] = 1388, - [1431] = 1431, - [1432] = 1377, - [1433] = 1409, + [1425] = 1425, + [1426] = 1426, + [1427] = 1427, + [1428] = 1428, + [1429] = 1429, + [1430] = 1430, + [1431] = 1281, + [1432] = 1432, + [1433] = 1433, [1434] = 1434, - [1435] = 1415, - [1436] = 1417, - [1437] = 1418, - [1438] = 1438, + [1435] = 1435, + [1436] = 1436, + [1437] = 1437, + [1438] = 1329, [1439] = 1439, - [1440] = 1440, + [1440] = 1339, [1441] = 1441, [1442] = 1442, [1443] = 1443, [1444] = 1444, - [1445] = 1445, + [1445] = 1406, [1446] = 1446, - [1447] = 1447, - [1448] = 1415, + [1447] = 1432, + [1448] = 1448, [1449] = 1449, - [1450] = 1417, - [1451] = 1418, + [1450] = 1449, + [1451] = 1451, [1452] = 1452, [1453] = 1453, [1454] = 1454, - [1455] = 1253, - [1456] = 1390, - [1457] = 1457, - [1458] = 1419, - [1459] = 1459, + [1455] = 1455, + [1456] = 1412, + [1457] = 1413, + [1458] = 1434, + [1459] = 1441, [1460] = 1460, - [1461] = 1461, - [1462] = 1415, - [1463] = 1308, - [1464] = 1464, + [1461] = 1432, + [1462] = 1462, + [1463] = 1259, + [1464] = 1432, [1465] = 1465, - [1466] = 1466, - [1467] = 1467, - [1468] = 1468, - [1469] = 1469, - [1470] = 695, - [1471] = 1376, - [1472] = 1472, - [1473] = 1473, + [1466] = 1449, + [1467] = 1327, + [1468] = 1452, + [1469] = 1453, + [1470] = 1454, + [1471] = 1471, + [1472] = 1412, + [1473] = 1413, [1474] = 1474, - [1475] = 1475, - [1476] = 1476, + [1475] = 1434, + [1476] = 1441, [1477] = 1477, [1478] = 1478, - [1479] = 1342, + [1479] = 1449, [1480] = 1480, - [1481] = 1417, - [1482] = 1218, - [1483] = 1418, + [1481] = 1481, + [1482] = 1452, + [1483] = 1481, [1484] = 1484, - [1485] = 1389, - [1486] = 1486, - [1487] = 1353, - [1488] = 1359, - [1489] = 1383, - [1490] = 1403, - [1491] = 1409, + [1485] = 702, + [1486] = 1452, + [1487] = 1487, + [1488] = 1488, + [1489] = 1489, + [1490] = 1453, + [1491] = 1491, [1492] = 1492, - [1493] = 1453, - [1494] = 1457, - [1495] = 1495, - [1496] = 1496, - [1497] = 1497, + [1493] = 1493, + [1494] = 1494, + [1495] = 1407, + [1496] = 1452, + [1497] = 1453, [1498] = 1498, - [1499] = 1460, + [1499] = 1499, [1500] = 1500, - [1501] = 1501, - [1502] = 1217, - [1503] = 1503, - [1504] = 1496, - [1505] = 1473, - [1506] = 1443, + [1501] = 1454, + [1502] = 1435, + [1503] = 1465, + [1504] = 1504, + [1505] = 1505, + [1506] = 1506, [1507] = 1507, - [1508] = 1508, - [1509] = 1509, + [1508] = 1260, + [1509] = 703, [1510] = 1510, [1511] = 1511, [1512] = 1512, [1513] = 1513, [1514] = 1514, - [1515] = 313, - [1516] = 1516, - [1517] = 1517, - [1518] = 1518, - [1519] = 1519, - [1520] = 1442, - [1521] = 320, + [1515] = 1515, + [1516] = 1383, + [1517] = 1275, + [1518] = 1454, + [1519] = 1487, + [1520] = 1491, + [1521] = 1412, [1522] = 1522, - [1523] = 1523, + [1523] = 1413, [1524] = 1524, - [1525] = 1525, - [1526] = 1526, - [1527] = 1527, + [1525] = 1434, + [1526] = 1441, + [1527] = 1492, [1528] = 1528, - [1529] = 1529, - [1530] = 1530, - [1531] = 1531, + [1529] = 1358, + [1530] = 1515, + [1531] = 1405, [1532] = 1532, - [1533] = 1533, + [1533] = 333, [1534] = 1534, [1535] = 1535, - [1536] = 314, - [1537] = 1196, - [1538] = 317, + [1536] = 1536, + [1537] = 1537, + [1538] = 1538, [1539] = 1539, - [1540] = 1486, + [1540] = 1540, [1541] = 1541, - [1542] = 1542, - [1543] = 1511, + [1542] = 1442, + [1543] = 1543, [1544] = 1544, - [1545] = 1421, - [1546] = 1513, + [1545] = 1545, + [1546] = 1546, [1547] = 1547, - [1548] = 1548, - [1549] = 1510, + [1548] = 1538, + [1549] = 1549, [1550] = 1550, [1551] = 1551, - [1552] = 1548, + [1552] = 1552, [1553] = 1553, - [1554] = 1541, + [1554] = 1554, [1555] = 1555, [1556] = 1556, [1557] = 1557, [1558] = 1558, [1559] = 1559, - [1560] = 1560, + [1560] = 1546, [1561] = 1561, [1562] = 1562, [1563] = 1563, - [1564] = 1564, - [1565] = 1550, + [1564] = 1551, + [1565] = 1565, [1566] = 1566, - [1567] = 1510, + [1567] = 1567, [1568] = 1568, - [1569] = 1569, + [1569] = 1237, [1570] = 1570, [1571] = 1571, [1572] = 1572, [1573] = 1573, [1574] = 1574, [1575] = 1575, - [1576] = 1557, + [1576] = 1544, [1577] = 1577, - [1578] = 1512, + [1578] = 1578, [1579] = 1579, - [1580] = 334, + [1580] = 1580, [1581] = 1581, - [1582] = 1539, - [1583] = 1583, + [1582] = 318, + [1583] = 311, [1584] = 1584, [1585] = 1585, - [1586] = 1584, + [1586] = 1586, [1587] = 1587, - [1588] = 1588, + [1588] = 1573, [1589] = 1589, - [1590] = 1590, + [1590] = 1573, [1591] = 1591, [1592] = 1592, [1593] = 1593, - [1594] = 1594, + [1594] = 1547, [1595] = 1595, [1596] = 1596, - [1597] = 1597, - [1598] = 1598, - [1599] = 1599, - [1600] = 1600, + [1597] = 1572, + [1598] = 312, + [1599] = 1574, + [1600] = 1428, [1601] = 1601, - [1602] = 1600, + [1602] = 1602, [1603] = 1603, - [1604] = 1593, + [1604] = 1604, [1605] = 1605, - [1606] = 1588, - [1607] = 1589, + [1606] = 1507, + [1607] = 326, [1608] = 1608, [1609] = 1609, [1610] = 1610, [1611] = 1611, - [1612] = 1612, - [1613] = 1592, + [1612] = 1541, + [1613] = 1613, [1614] = 1614, - [1615] = 1591, + [1615] = 1615, [1616] = 1616, - [1617] = 1617, - [1618] = 1617, + [1617] = 1616, + [1618] = 1618, [1619] = 1619, [1620] = 1620, [1621] = 1621, [1622] = 1622, [1623] = 1623, - [1624] = 1614, - [1625] = 1610, - [1626] = 1591, + [1624] = 1624, + [1625] = 1625, + [1626] = 1626, [1627] = 1627, - [1628] = 1628, + [1628] = 1618, [1629] = 1629, [1630] = 1630, [1631] = 1631, - [1632] = 1605, - [1633] = 1594, - [1634] = 1612, - [1635] = 1584, + [1632] = 1632, + [1633] = 1633, + [1634] = 1634, + [1635] = 1635, [1636] = 1636, - [1637] = 1603, + [1637] = 1635, [1638] = 1638, - [1639] = 1583, - [1640] = 1640, + [1639] = 1639, + [1640] = 1615, [1641] = 1641, - [1642] = 1616, + [1642] = 1642, [1643] = 1643, - [1644] = 1644, - [1645] = 1627, - [1646] = 1609, + [1644] = 1630, + [1645] = 1636, + [1646] = 1646, [1647] = 1647, [1648] = 1648, - [1649] = 1627, - [1650] = 1631, - [1651] = 1605, - [1652] = 1587, + [1649] = 1643, + [1650] = 1650, + [1651] = 1651, + [1652] = 1652, [1653] = 1653, [1654] = 1654, - [1655] = 1655, - [1656] = 1594, + [1655] = 1654, + [1656] = 1621, [1657] = 1657, - [1658] = 1658, + [1658] = 1657, [1659] = 1659, - [1660] = 1653, - [1661] = 1661, + [1660] = 1614, + [1661] = 1647, [1662] = 1662, - [1663] = 1663, + [1663] = 1634, [1664] = 1664, - [1665] = 1596, - [1666] = 1608, - [1667] = 1667, - [1668] = 1593, - [1669] = 1653, - [1670] = 1597, - [1671] = 1612, - [1672] = 1672, - [1673] = 1593, - [1674] = 1612, - [1675] = 1591, - [1676] = 1590, - [1677] = 1614, - [1678] = 1596, - [1679] = 1594, - [1680] = 1680, - [1681] = 1636, + [1665] = 1665, + [1666] = 1624, + [1667] = 1639, + [1668] = 1631, + [1669] = 1657, + [1670] = 1670, + [1671] = 1671, + [1672] = 1619, + [1673] = 1618, + [1674] = 1674, + [1675] = 1675, + [1676] = 1676, + [1677] = 1651, + [1678] = 1678, + [1679] = 1679, + [1680] = 1665, + [1681] = 1631, [1682] = 1682, - [1683] = 1596, - [1684] = 1684, - [1685] = 1685, - [1686] = 1592, - [1687] = 1600, - [1688] = 1688, - [1689] = 1621, - [1690] = 1593, - [1691] = 1629, - [1692] = 1641, - [1693] = 1653, - [1694] = 1584, - [1695] = 1605, + [1683] = 1683, + [1684] = 1615, + [1685] = 1664, + [1686] = 1654, + [1687] = 1629, + [1688] = 1624, + [1689] = 1689, + [1690] = 1690, + [1691] = 1639, + [1692] = 1657, + [1693] = 1632, + [1694] = 1614, + [1695] = 1676, [1696] = 1696, - [1697] = 1622, - [1698] = 1667, - [1699] = 1644, - [1700] = 1612, - [1701] = 1701, - [1702] = 1702, - [1703] = 1703, - [1704] = 1611, - [1705] = 1600, - [1706] = 1592, + [1697] = 1639, + [1698] = 1619, + [1699] = 1699, + [1700] = 1664, + [1701] = 1626, + [1702] = 1619, + [1703] = 1631, + [1704] = 1704, + [1705] = 1705, + [1706] = 1706, [1707] = 1707, - [1708] = 1614, + [1708] = 1708, [1709] = 1709, - [1710] = 1601, - [1711] = 1593, - [1712] = 1688, - [1713] = 1619, - [1714] = 1599, - [1715] = 1627, - [1716] = 1661, - [1717] = 1685, - [1718] = 1631, - [1719] = 1672, - [1720] = 1612, - [1721] = 1631, - [1722] = 1722, + [1710] = 1619, + [1711] = 1618, + [1712] = 1712, + [1713] = 1675, + [1714] = 1665, + [1715] = 1648, + [1716] = 1613, + [1717] = 1676, + [1718] = 1718, + [1719] = 1622, + [1720] = 1683, + [1721] = 1654, + [1722] = 1675, + [1723] = 1659, + [1724] = 1665, + [1725] = 1725, + [1726] = 1726, + [1727] = 1624, + [1728] = 1676, + [1729] = 1639, + [1730] = 1619, + [1731] = 1731, + [1732] = 1639, + [1733] = 1664, + [1734] = 1641, + [1735] = 1614, + [1736] = 1736, + [1737] = 1615, + [1738] = 1738, + [1739] = 1736, + [1740] = 1740, + [1741] = 1646, + [1742] = 1742, + [1743] = 1743, + [1744] = 1744, + [1745] = 1699, + [1746] = 1705, + [1747] = 1642, + [1748] = 1748, + [1749] = 1740, + [1750] = 1748, + [1751] = 1718, + [1752] = 1752, + [1753] = 1725, + [1754] = 1675, }; static const TSCharacterRange sym_identifier_character_set_1[] = { @@ -6043,79 +6102,80 @@ static bool ts_lex_keywords(TSLexer *lexer, TSStateId state) { END_STATE(); case 46: if (lookahead == 'm') ADVANCE(82); + if (lookahead == 'z') ADVANCE(83); END_STATE(); case 47: - if (lookahead == 't') ADVANCE(83); + if (lookahead == 't') ADVANCE(84); END_STATE(); case 48: - if (lookahead == 'n') ADVANCE(84); - if (lookahead == 't') ADVANCE(85); + if (lookahead == 'n') ADVANCE(85); + if (lookahead == 't') ADVANCE(86); END_STATE(); case 49: ACCEPT_TOKEN(anon_sym_or); END_STATE(); case 50: - if (lookahead == 's') ADVANCE(86); + if (lookahead == 's') ADVANCE(87); END_STATE(); case 51: - if (lookahead == 'i') ADVANCE(87); - END_STATE(); - case 52: if (lookahead == 'i') ADVANCE(88); END_STATE(); + case 52: + if (lookahead == 'i') ADVANCE(89); + END_STATE(); case 53: - if (lookahead == 't') ADVANCE(89); + if (lookahead == 't') ADVANCE(90); END_STATE(); case 54: - if (lookahead == 'y') ADVANCE(90); + if (lookahead == 'y') ADVANCE(91); END_STATE(); case 55: - if (lookahead == 'p') ADVANCE(91); + if (lookahead == 'p') ADVANCE(92); END_STATE(); case 56: - if (lookahead == 'i') ADVANCE(92); + if (lookahead == 'i') ADVANCE(93); END_STATE(); case 57: - if (lookahead == 't') ADVANCE(93); + if (lookahead == 't') ADVANCE(94); END_STATE(); case 58: - if (lookahead == 'e') ADVANCE(94); + if (lookahead == 'e') ADVANCE(95); END_STATE(); case 59: - if (lookahead == 's') ADVANCE(95); + if (lookahead == 's') ADVANCE(96); END_STATE(); case 60: - if (lookahead == 'e') ADVANCE(96); - END_STATE(); - case 61: if (lookahead == 'e') ADVANCE(97); END_STATE(); + case 61: + if (lookahead == 'e') ADVANCE(98); + END_STATE(); case 62: - if (lookahead == 'u') ADVANCE(98); + if (lookahead == 'u') ADVANCE(99); END_STATE(); case 63: ACCEPT_TOKEN(anon_sym_and); END_STATE(); case 64: - if (lookahead == 'e') ADVANCE(99); + if (lookahead == 'e') ADVANCE(100); END_STATE(); case 65: - if (lookahead == 'n') ADVANCE(100); + if (lookahead == 'n') ADVANCE(101); END_STATE(); case 66: - if (lookahead == 'i') ADVANCE(101); + if (lookahead == 'i') ADVANCE(102); END_STATE(); case 67: - if (lookahead == 'a') ADVANCE(102); + if (lookahead == 'a') ADVANCE(103); END_STATE(); case 68: - if (lookahead == 'e') ADVANCE(103); + if (lookahead == 'e') ADVANCE(104); END_STATE(); case 69: - if (lookahead == 's') ADVANCE(104); + if (lookahead == 's') ADVANCE(105); END_STATE(); case 70: - if (lookahead == 't') ADVANCE(105); + if (lookahead == 't') ADVANCE(106); END_STATE(); case 71: ACCEPT_TOKEN(anon_sym_def); @@ -6124,276 +6184,282 @@ static bool ts_lex_keywords(TSLexer *lexer, TSStateId state) { ACCEPT_TOKEN(anon_sym_del); END_STATE(); case 73: - if (lookahead == 'f') ADVANCE(106); + if (lookahead == 'f') ADVANCE(107); END_STATE(); case 74: - if (lookahead == 'e') ADVANCE(107); - END_STATE(); - case 75: if (lookahead == 'e') ADVANCE(108); END_STATE(); + case 75: + if (lookahead == 'e') ADVANCE(109); + END_STATE(); case 76: - if (lookahead == 'c') ADVANCE(109); + if (lookahead == 'c') ADVANCE(110); END_STATE(); case 77: - if (lookahead == 'a') ADVANCE(110); + if (lookahead == 'a') ADVANCE(111); END_STATE(); case 78: ACCEPT_TOKEN(anon_sym_for); END_STATE(); case 79: - if (lookahead == 'm') ADVANCE(111); + if (lookahead == 'm') ADVANCE(112); END_STATE(); case 80: - if (lookahead == 'b') ADVANCE(112); + if (lookahead == 'b') ADVANCE(113); END_STATE(); case 81: - if (lookahead == 'o') ADVANCE(113); + if (lookahead == 'o') ADVANCE(114); END_STATE(); case 82: - if (lookahead == 'b') ADVANCE(114); + if (lookahead == 'b') ADVANCE(115); END_STATE(); case 83: - if (lookahead == 'c') ADVANCE(115); + if (lookahead == 'y') ADVANCE(116); END_STATE(); case 84: - if (lookahead == 'l') ADVANCE(116); + if (lookahead == 'c') ADVANCE(117); END_STATE(); case 85: - ACCEPT_TOKEN(anon_sym_not); + if (lookahead == 'l') ADVANCE(118); END_STATE(); case 86: - if (lookahead == 's') ADVANCE(117); + ACCEPT_TOKEN(anon_sym_not); END_STATE(); case 87: - if (lookahead == 'n') ADVANCE(118); - END_STATE(); - case 88: if (lookahead == 's') ADVANCE(119); END_STATE(); + case 88: + if (lookahead == 'n') ADVANCE(120); + END_STATE(); case 89: - if (lookahead == 'u') ADVANCE(120); + if (lookahead == 's') ADVANCE(121); END_STATE(); case 90: - ACCEPT_TOKEN(anon_sym_try); + if (lookahead == 'u') ADVANCE(122); END_STATE(); case 91: - if (lookahead == 'e') ADVANCE(121); + ACCEPT_TOKEN(anon_sym_try); END_STATE(); case 92: - if (lookahead == 'l') ADVANCE(122); + if (lookahead == 'e') ADVANCE(123); END_STATE(); case 93: - if (lookahead == 'h') ADVANCE(123); - END_STATE(); - case 94: if (lookahead == 'l') ADVANCE(124); END_STATE(); + case 94: + if (lookahead == 'h') ADVANCE(125); + END_STATE(); case 95: - if (lookahead == 'e') ADVANCE(125); + if (lookahead == 'l') ADVANCE(126); END_STATE(); case 96: - ACCEPT_TOKEN(sym_none); + if (lookahead == 'e') ADVANCE(127); END_STATE(); case 97: - ACCEPT_TOKEN(sym_true); + ACCEPT_TOKEN(sym_none); END_STATE(); case 98: - if (lookahead == 't') ADVANCE(126); + ACCEPT_TOKEN(sym_true); END_STATE(); case 99: - if (lookahead == 'r') ADVANCE(127); + if (lookahead == 't') ADVANCE(128); END_STATE(); case 100: - if (lookahead == 'c') ADVANCE(128); + if (lookahead == 'r') ADVANCE(129); END_STATE(); case 101: - if (lookahead == 't') ADVANCE(129); + if (lookahead == 'c') ADVANCE(130); END_STATE(); case 102: - if (lookahead == 'k') ADVANCE(130); + if (lookahead == 't') ADVANCE(131); END_STATE(); case 103: - ACCEPT_TOKEN(anon_sym_case); + if (lookahead == 'k') ADVANCE(132); END_STATE(); case 104: - if (lookahead == 's') ADVANCE(131); + ACCEPT_TOKEN(anon_sym_case); END_STATE(); case 105: - if (lookahead == 'i') ADVANCE(132); + if (lookahead == 's') ADVANCE(133); END_STATE(); case 106: - ACCEPT_TOKEN(anon_sym_elif); + if (lookahead == 'i') ADVANCE(134); END_STATE(); case 107: - ACCEPT_TOKEN(anon_sym_else); + ACCEPT_TOKEN(anon_sym_elif); END_STATE(); case 108: - if (lookahead == 'p') ADVANCE(133); + ACCEPT_TOKEN(anon_sym_else); END_STATE(); case 109: - ACCEPT_TOKEN(anon_sym_exec); + if (lookahead == 'p') ADVANCE(135); END_STATE(); case 110: - if (lookahead == 'l') ADVANCE(134); + ACCEPT_TOKEN(anon_sym_exec); END_STATE(); case 111: - ACCEPT_TOKEN(anon_sym_from); + if (lookahead == 'l') ADVANCE(136); END_STATE(); case 112: - if (lookahead == 'a') ADVANCE(135); + ACCEPT_TOKEN(anon_sym_from); END_STATE(); case 113: - if (lookahead == 'r') ADVANCE(136); + if (lookahead == 'a') ADVANCE(137); END_STATE(); case 114: - if (lookahead == 'd') ADVANCE(137); + if (lookahead == 'r') ADVANCE(138); END_STATE(); case 115: - if (lookahead == 'h') ADVANCE(138); + if (lookahead == 'd') ADVANCE(139); END_STATE(); case 116: - if (lookahead == 'o') ADVANCE(139); + ACCEPT_TOKEN(anon_sym_lazy); END_STATE(); case 117: - ACCEPT_TOKEN(anon_sym_pass); + if (lookahead == 'h') ADVANCE(140); END_STATE(); case 118: - if (lookahead == 't') ADVANCE(140); + if (lookahead == 'o') ADVANCE(141); END_STATE(); case 119: - if (lookahead == 'e') ADVANCE(141); + ACCEPT_TOKEN(anon_sym_pass); END_STATE(); case 120: - if (lookahead == 'r') ADVANCE(142); + if (lookahead == 't') ADVANCE(142); END_STATE(); case 121: - ACCEPT_TOKEN(anon_sym_type); - END_STATE(); - case 122: if (lookahead == 'e') ADVANCE(143); END_STATE(); + case 122: + if (lookahead == 'r') ADVANCE(144); + END_STATE(); case 123: - ACCEPT_TOKEN(anon_sym_with); + ACCEPT_TOKEN(anon_sym_type); END_STATE(); case 124: - if (lookahead == 'd') ADVANCE(144); + if (lookahead == 'e') ADVANCE(145); END_STATE(); case 125: - ACCEPT_TOKEN(sym_false); + ACCEPT_TOKEN(anon_sym_with); END_STATE(); case 126: - if (lookahead == 'u') ADVANCE(145); + if (lookahead == 'd') ADVANCE(146); END_STATE(); case 127: - if (lookahead == 't') ADVANCE(146); + ACCEPT_TOKEN(sym_false); END_STATE(); case 128: - ACCEPT_TOKEN(anon_sym_async); + if (lookahead == 'u') ADVANCE(147); END_STATE(); case 129: - ACCEPT_TOKEN(anon_sym_await); - END_STATE(); - case 130: - ACCEPT_TOKEN(anon_sym_break); - END_STATE(); - case 131: - ACCEPT_TOKEN(anon_sym_class); - END_STATE(); - case 132: - if (lookahead == 'n') ADVANCE(147); - END_STATE(); - case 133: if (lookahead == 't') ADVANCE(148); END_STATE(); + case 130: + ACCEPT_TOKEN(anon_sym_async); + END_STATE(); + case 131: + ACCEPT_TOKEN(anon_sym_await); + END_STATE(); + case 132: + ACCEPT_TOKEN(anon_sym_break); + END_STATE(); + case 133: + ACCEPT_TOKEN(anon_sym_class); + END_STATE(); case 134: - if (lookahead == 'l') ADVANCE(149); + if (lookahead == 'n') ADVANCE(149); END_STATE(); case 135: - if (lookahead == 'l') ADVANCE(150); + if (lookahead == 't') ADVANCE(150); END_STATE(); case 136: - if (lookahead == 't') ADVANCE(151); + if (lookahead == 'l') ADVANCE(151); END_STATE(); case 137: - if (lookahead == 'a') ADVANCE(152); + if (lookahead == 'l') ADVANCE(152); END_STATE(); case 138: - ACCEPT_TOKEN(anon_sym_match); + if (lookahead == 't') ADVANCE(153); END_STATE(); case 139: - if (lookahead == 'c') ADVANCE(153); + if (lookahead == 'a') ADVANCE(154); END_STATE(); case 140: - ACCEPT_TOKEN(anon_sym_print); + ACCEPT_TOKEN(anon_sym_match); END_STATE(); case 141: - ACCEPT_TOKEN(anon_sym_raise); + if (lookahead == 'c') ADVANCE(155); END_STATE(); case 142: - if (lookahead == 'n') ADVANCE(154); + ACCEPT_TOKEN(anon_sym_print); END_STATE(); case 143: - ACCEPT_TOKEN(anon_sym_while); + ACCEPT_TOKEN(anon_sym_raise); END_STATE(); case 144: - ACCEPT_TOKEN(anon_sym_yield); + if (lookahead == 'n') ADVANCE(156); END_STATE(); case 145: - if (lookahead == 'r') ADVANCE(155); + ACCEPT_TOKEN(anon_sym_while); END_STATE(); case 146: - ACCEPT_TOKEN(anon_sym_assert); + ACCEPT_TOKEN(anon_sym_yield); END_STATE(); case 147: - if (lookahead == 'u') ADVANCE(156); + if (lookahead == 'r') ADVANCE(157); END_STATE(); case 148: - ACCEPT_TOKEN(anon_sym_except); + ACCEPT_TOKEN(anon_sym_assert); END_STATE(); case 149: - if (lookahead == 'y') ADVANCE(157); + if (lookahead == 'u') ADVANCE(158); END_STATE(); case 150: - ACCEPT_TOKEN(anon_sym_global); + ACCEPT_TOKEN(anon_sym_except); END_STATE(); case 151: - ACCEPT_TOKEN(anon_sym_import); + if (lookahead == 'y') ADVANCE(159); END_STATE(); case 152: - ACCEPT_TOKEN(anon_sym_lambda); + ACCEPT_TOKEN(anon_sym_global); END_STATE(); case 153: - if (lookahead == 'a') ADVANCE(158); + ACCEPT_TOKEN(anon_sym_import); END_STATE(); case 154: - ACCEPT_TOKEN(anon_sym_return); + ACCEPT_TOKEN(anon_sym_lambda); END_STATE(); case 155: - if (lookahead == 'e') ADVANCE(159); + if (lookahead == 'a') ADVANCE(160); END_STATE(); case 156: - if (lookahead == 'e') ADVANCE(160); + ACCEPT_TOKEN(anon_sym_return); END_STATE(); case 157: - ACCEPT_TOKEN(anon_sym_finally); + if (lookahead == 'e') ADVANCE(161); END_STATE(); case 158: - if (lookahead == 'l') ADVANCE(161); + if (lookahead == 'e') ADVANCE(162); END_STATE(); case 159: - if (lookahead == '_') ADVANCE(162); + ACCEPT_TOKEN(anon_sym_finally); END_STATE(); case 160: - ACCEPT_TOKEN(anon_sym_continue); + if (lookahead == 'l') ADVANCE(163); END_STATE(); case 161: - ACCEPT_TOKEN(anon_sym_nonlocal); + if (lookahead == '_') ADVANCE(164); END_STATE(); case 162: - if (lookahead == '_') ADVANCE(163); + ACCEPT_TOKEN(anon_sym_continue); END_STATE(); case 163: + ACCEPT_TOKEN(anon_sym_nonlocal); + END_STATE(); + case 164: + if (lookahead == '_') ADVANCE(165); + END_STATE(); + case 165: ACCEPT_TOKEN(anon_sym___future__); END_STATE(); default: @@ -6462,15 +6528,15 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [57] = {.lex_state = 51, .external_lex_state = 3}, [58] = {.lex_state = 51, .external_lex_state = 3}, [59] = {.lex_state = 51, .external_lex_state = 3}, - [60] = {.lex_state = 51, .external_lex_state = 2}, + [60] = {.lex_state = 51, .external_lex_state = 3}, [61] = {.lex_state = 51, .external_lex_state = 3}, - [62] = {.lex_state = 51, .external_lex_state = 2}, + [62] = {.lex_state = 51, .external_lex_state = 3}, [63] = {.lex_state = 51, .external_lex_state = 3}, - [64] = {.lex_state = 51, .external_lex_state = 3}, - [65] = {.lex_state = 51, .external_lex_state = 3}, + [64] = {.lex_state = 51, .external_lex_state = 2}, + [65] = {.lex_state = 51, .external_lex_state = 2}, [66] = {.lex_state = 51, .external_lex_state = 4}, [67] = {.lex_state = 51, .external_lex_state = 4}, - [68] = {.lex_state = 51, .external_lex_state = 4}, + [68] = {.lex_state = 51, .external_lex_state = 5}, [69] = {.lex_state = 51, .external_lex_state = 5}, [70] = {.lex_state = 51, .external_lex_state = 5}, [71] = {.lex_state = 51, .external_lex_state = 5}, @@ -6480,7 +6546,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [75] = {.lex_state = 51, .external_lex_state = 5}, [76] = {.lex_state = 51, .external_lex_state = 5}, [77] = {.lex_state = 51, .external_lex_state = 5}, - [78] = {.lex_state = 51, .external_lex_state = 5}, + [78] = {.lex_state = 51, .external_lex_state = 4}, [79] = {.lex_state = 51, .external_lex_state = 5}, [80] = {.lex_state = 51, .external_lex_state = 5}, [81] = {.lex_state = 51, .external_lex_state = 5}, @@ -6541,18 +6607,18 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [136] = {.lex_state = 51, .external_lex_state = 2}, [137] = {.lex_state = 51, .external_lex_state = 2}, [138] = {.lex_state = 51, .external_lex_state = 2}, - [139] = {.lex_state = 51, .external_lex_state = 2}, + [139] = {.lex_state = 14, .external_lex_state = 2}, [140] = {.lex_state = 51, .external_lex_state = 4}, - [141] = {.lex_state = 14, .external_lex_state = 2}, + [141] = {.lex_state = 51, .external_lex_state = 2}, [142] = {.lex_state = 51, .external_lex_state = 2}, [143] = {.lex_state = 51, .external_lex_state = 2}, [144] = {.lex_state = 51, .external_lex_state = 2}, - [145] = {.lex_state = 14, .external_lex_state = 2}, + [145] = {.lex_state = 51, .external_lex_state = 2}, [146] = {.lex_state = 51, .external_lex_state = 2}, - [147] = {.lex_state = 51, .external_lex_state = 2}, + [147] = {.lex_state = 14, .external_lex_state = 2}, [148] = {.lex_state = 51, .external_lex_state = 2}, - [149] = {.lex_state = 51, .external_lex_state = 4}, - [150] = {.lex_state = 51, .external_lex_state = 2}, + [149] = {.lex_state = 51, .external_lex_state = 2}, + [150] = {.lex_state = 51, .external_lex_state = 4}, [151] = {.lex_state = 51, .external_lex_state = 2}, [152] = {.lex_state = 51, .external_lex_state = 2}, [153] = {.lex_state = 51, .external_lex_state = 2}, @@ -6576,36 +6642,36 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [171] = {.lex_state = 51, .external_lex_state = 2}, [172] = {.lex_state = 51, .external_lex_state = 2}, [173] = {.lex_state = 51, .external_lex_state = 2}, - [174] = {.lex_state = 51, .external_lex_state = 4}, + [174] = {.lex_state = 14, .external_lex_state = 2}, [175] = {.lex_state = 51, .external_lex_state = 2}, [176] = {.lex_state = 51, .external_lex_state = 2}, [177] = {.lex_state = 51, .external_lex_state = 2}, - [178] = {.lex_state = 14, .external_lex_state = 2}, - [179] = {.lex_state = 14, .external_lex_state = 2}, - [180] = {.lex_state = 14, .external_lex_state = 2}, + [178] = {.lex_state = 51, .external_lex_state = 2}, + [179] = {.lex_state = 51, .external_lex_state = 4}, + [180] = {.lex_state = 51, .external_lex_state = 2}, [181] = {.lex_state = 51, .external_lex_state = 2}, - [182] = {.lex_state = 51, .external_lex_state = 2}, + [182] = {.lex_state = 51, .external_lex_state = 4}, [183] = {.lex_state = 51, .external_lex_state = 2}, - [184] = {.lex_state = 51, .external_lex_state = 4}, - [185] = {.lex_state = 51, .external_lex_state = 2}, + [184] = {.lex_state = 51, .external_lex_state = 2}, + [185] = {.lex_state = 14, .external_lex_state = 2}, [186] = {.lex_state = 51, .external_lex_state = 2}, - [187] = {.lex_state = 51, .external_lex_state = 2}, + [187] = {.lex_state = 14, .external_lex_state = 2}, [188] = {.lex_state = 51, .external_lex_state = 2}, [189] = {.lex_state = 51, .external_lex_state = 2}, [190] = {.lex_state = 51, .external_lex_state = 2}, - [191] = {.lex_state = 51, .external_lex_state = 4}, + [191] = {.lex_state = 51, .external_lex_state = 2}, [192] = {.lex_state = 51, .external_lex_state = 2}, - [193] = {.lex_state = 51, .external_lex_state = 4}, + [193] = {.lex_state = 51, .external_lex_state = 2}, [194] = {.lex_state = 51, .external_lex_state = 2}, [195] = {.lex_state = 51, .external_lex_state = 2}, [196] = {.lex_state = 51, .external_lex_state = 2}, - [197] = {.lex_state = 51, .external_lex_state = 2}, + [197] = {.lex_state = 51, .external_lex_state = 4}, [198] = {.lex_state = 51, .external_lex_state = 2}, [199] = {.lex_state = 51, .external_lex_state = 2}, [200] = {.lex_state = 51, .external_lex_state = 2}, [201] = {.lex_state = 51, .external_lex_state = 2}, [202] = {.lex_state = 51, .external_lex_state = 2}, - [203] = {.lex_state = 51, .external_lex_state = 2}, + [203] = {.lex_state = 51, .external_lex_state = 4}, [204] = {.lex_state = 51, .external_lex_state = 2}, [205] = {.lex_state = 51, .external_lex_state = 2}, [206] = {.lex_state = 51, .external_lex_state = 2}, @@ -6613,16 +6679,16 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [208] = {.lex_state = 51, .external_lex_state = 2}, [209] = {.lex_state = 51, .external_lex_state = 2}, [210] = {.lex_state = 51, .external_lex_state = 2}, - [211] = {.lex_state = 51, .external_lex_state = 2}, + [211] = {.lex_state = 51, .external_lex_state = 4}, [212] = {.lex_state = 51, .external_lex_state = 2}, [213] = {.lex_state = 51, .external_lex_state = 2}, [214] = {.lex_state = 51, .external_lex_state = 2}, [215] = {.lex_state = 51, .external_lex_state = 2}, [216] = {.lex_state = 51, .external_lex_state = 2}, - [217] = {.lex_state = 51, .external_lex_state = 4}, + [217] = {.lex_state = 51, .external_lex_state = 2}, [218] = {.lex_state = 51, .external_lex_state = 2}, [219] = {.lex_state = 51, .external_lex_state = 2}, - [220] = {.lex_state = 51, .external_lex_state = 4}, + [220] = {.lex_state = 51, .external_lex_state = 2}, [221] = {.lex_state = 51, .external_lex_state = 2}, [222] = {.lex_state = 51, .external_lex_state = 2}, [223] = {.lex_state = 51, .external_lex_state = 2}, @@ -6635,7 +6701,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [230] = {.lex_state = 51, .external_lex_state = 2}, [231] = {.lex_state = 51, .external_lex_state = 2}, [232] = {.lex_state = 51, .external_lex_state = 2}, - [233] = {.lex_state = 51, .external_lex_state = 2}, + [233] = {.lex_state = 51, .external_lex_state = 4}, [234] = {.lex_state = 51, .external_lex_state = 2}, [235] = {.lex_state = 51, .external_lex_state = 2}, [236] = {.lex_state = 51, .external_lex_state = 2}, @@ -6677,11 +6743,11 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [272] = {.lex_state = 51, .external_lex_state = 2}, [273] = {.lex_state = 51, .external_lex_state = 2}, [274] = {.lex_state = 51, .external_lex_state = 2}, - [275] = {.lex_state = 51, .external_lex_state = 2}, + [275] = {.lex_state = 51, .external_lex_state = 3}, [276] = {.lex_state = 51, .external_lex_state = 2}, [277] = {.lex_state = 51, .external_lex_state = 2}, [278] = {.lex_state = 51, .external_lex_state = 2}, - [279] = {.lex_state = 51, .external_lex_state = 3}, + [279] = {.lex_state = 51, .external_lex_state = 2}, [280] = {.lex_state = 51, .external_lex_state = 2}, [281] = {.lex_state = 51, .external_lex_state = 2}, [282] = {.lex_state = 51, .external_lex_state = 2}, @@ -6691,45 +6757,45 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [286] = {.lex_state = 51, .external_lex_state = 2}, [287] = {.lex_state = 51, .external_lex_state = 2}, [288] = {.lex_state = 51, .external_lex_state = 2}, - [289] = {.lex_state = 51, .external_lex_state = 4}, - [290] = {.lex_state = 51, .external_lex_state = 4}, + [289] = {.lex_state = 51, .external_lex_state = 2}, + [290] = {.lex_state = 51, .external_lex_state = 2}, [291] = {.lex_state = 51, .external_lex_state = 4}, [292] = {.lex_state = 51, .external_lex_state = 2}, [293] = {.lex_state = 51, .external_lex_state = 2}, - [294] = {.lex_state = 16}, + [294] = {.lex_state = 51, .external_lex_state = 2}, [295] = {.lex_state = 51, .external_lex_state = 2}, - [296] = {.lex_state = 51, .external_lex_state = 2}, + [296] = {.lex_state = 51, .external_lex_state = 4}, [297] = {.lex_state = 51, .external_lex_state = 2}, [298] = {.lex_state = 51, .external_lex_state = 2}, [299] = {.lex_state = 51, .external_lex_state = 2}, [300] = {.lex_state = 51, .external_lex_state = 4}, - [301] = {.lex_state = 51, .external_lex_state = 2}, + [301] = {.lex_state = 51, .external_lex_state = 4}, [302] = {.lex_state = 51, .external_lex_state = 2}, [303] = {.lex_state = 51, .external_lex_state = 2}, [304] = {.lex_state = 51, .external_lex_state = 2}, [305] = {.lex_state = 51, .external_lex_state = 2}, [306] = {.lex_state = 51, .external_lex_state = 2}, - [307] = {.lex_state = 16}, + [307] = {.lex_state = 51, .external_lex_state = 2}, [308] = {.lex_state = 51, .external_lex_state = 2}, [309] = {.lex_state = 51, .external_lex_state = 2}, [310] = {.lex_state = 51, .external_lex_state = 2}, [311] = {.lex_state = 51, .external_lex_state = 2}, [312] = {.lex_state = 51, .external_lex_state = 2}, - [313] = {.lex_state = 51, .external_lex_state = 3}, - [314] = {.lex_state = 51, .external_lex_state = 3}, + [313] = {.lex_state = 16}, + [314] = {.lex_state = 51, .external_lex_state = 2}, [315] = {.lex_state = 51, .external_lex_state = 2}, - [316] = {.lex_state = 51, .external_lex_state = 2}, - [317] = {.lex_state = 51, .external_lex_state = 2}, - [318] = {.lex_state = 51, .external_lex_state = 2}, - [319] = {.lex_state = 51, .external_lex_state = 3}, + [316] = {.lex_state = 51, .external_lex_state = 3}, + [317] = {.lex_state = 16}, + [318] = {.lex_state = 51, .external_lex_state = 3}, + [319] = {.lex_state = 51, .external_lex_state = 2}, [320] = {.lex_state = 51, .external_lex_state = 3}, - [321] = {.lex_state = 51, .external_lex_state = 2}, - [322] = {.lex_state = 51, .external_lex_state = 2}, + [321] = {.lex_state = 51, .external_lex_state = 3}, + [322] = {.lex_state = 51, .external_lex_state = 3}, [323] = {.lex_state = 51, .external_lex_state = 2}, - [324] = {.lex_state = 16, .external_lex_state = 6}, - [325] = {.lex_state = 51, .external_lex_state = 2}, - [326] = {.lex_state = 51, .external_lex_state = 3}, - [327] = {.lex_state = 51, .external_lex_state = 3}, + [324] = {.lex_state = 51, .external_lex_state = 3}, + [325] = {.lex_state = 51, .external_lex_state = 3}, + [326] = {.lex_state = 51, .external_lex_state = 2}, + [327] = {.lex_state = 51, .external_lex_state = 2}, [328] = {.lex_state = 51, .external_lex_state = 2}, [329] = {.lex_state = 51, .external_lex_state = 2}, [330] = {.lex_state = 51, .external_lex_state = 3}, @@ -6737,10 +6803,10 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [332] = {.lex_state = 51, .external_lex_state = 2}, [333] = {.lex_state = 51, .external_lex_state = 3}, [334] = {.lex_state = 51, .external_lex_state = 2}, - [335] = {.lex_state = 51, .external_lex_state = 3}, - [336] = {.lex_state = 51, .external_lex_state = 3}, - [337] = {.lex_state = 51, .external_lex_state = 2}, - [338] = {.lex_state = 16, .external_lex_state = 6}, + [335] = {.lex_state = 51, .external_lex_state = 2}, + [336] = {.lex_state = 51, .external_lex_state = 2}, + [337] = {.lex_state = 51, .external_lex_state = 3}, + [338] = {.lex_state = 51, .external_lex_state = 2}, [339] = {.lex_state = 51, .external_lex_state = 2}, [340] = {.lex_state = 51, .external_lex_state = 2}, [341] = {.lex_state = 51, .external_lex_state = 2}, @@ -6749,10 +6815,10 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [344] = {.lex_state = 51, .external_lex_state = 2}, [345] = {.lex_state = 51, .external_lex_state = 2}, [346] = {.lex_state = 51, .external_lex_state = 2}, - [347] = {.lex_state = 51, .external_lex_state = 2}, + [347] = {.lex_state = 16, .external_lex_state = 6}, [348] = {.lex_state = 51, .external_lex_state = 2}, [349] = {.lex_state = 51, .external_lex_state = 2}, - [350] = {.lex_state = 51, .external_lex_state = 2}, + [350] = {.lex_state = 51, .external_lex_state = 3}, [351] = {.lex_state = 51, .external_lex_state = 2}, [352] = {.lex_state = 51, .external_lex_state = 2}, [353] = {.lex_state = 51, .external_lex_state = 2}, @@ -6769,7 +6835,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [364] = {.lex_state = 51, .external_lex_state = 2}, [365] = {.lex_state = 51, .external_lex_state = 2}, [366] = {.lex_state = 51, .external_lex_state = 2}, - [367] = {.lex_state = 16, .external_lex_state = 7}, + [367] = {.lex_state = 51, .external_lex_state = 2}, [368] = {.lex_state = 51, .external_lex_state = 2}, [369] = {.lex_state = 51, .external_lex_state = 2}, [370] = {.lex_state = 51, .external_lex_state = 2}, @@ -6801,7 +6867,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [396] = {.lex_state = 51, .external_lex_state = 2}, [397] = {.lex_state = 51, .external_lex_state = 2}, [398] = {.lex_state = 51, .external_lex_state = 2}, - [399] = {.lex_state = 51, .external_lex_state = 3}, + [399] = {.lex_state = 51, .external_lex_state = 2}, [400] = {.lex_state = 51, .external_lex_state = 2}, [401] = {.lex_state = 51, .external_lex_state = 2}, [402] = {.lex_state = 51, .external_lex_state = 2}, @@ -6839,85 +6905,85 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [434] = {.lex_state = 51, .external_lex_state = 2}, [435] = {.lex_state = 51, .external_lex_state = 2}, [436] = {.lex_state = 51, .external_lex_state = 2}, - [437] = {.lex_state = 51, .external_lex_state = 3}, - [438] = {.lex_state = 51, .external_lex_state = 3}, + [437] = {.lex_state = 16, .external_lex_state = 6}, + [438] = {.lex_state = 51, .external_lex_state = 2}, [439] = {.lex_state = 51, .external_lex_state = 3}, [440] = {.lex_state = 51, .external_lex_state = 3}, - [441] = {.lex_state = 51, .external_lex_state = 3}, + [441] = {.lex_state = 51, .external_lex_state = 2}, [442] = {.lex_state = 51, .external_lex_state = 2}, - [443] = {.lex_state = 51, .external_lex_state = 3}, + [443] = {.lex_state = 51, .external_lex_state = 2}, [444] = {.lex_state = 51, .external_lex_state = 3}, - [445] = {.lex_state = 51, .external_lex_state = 3}, - [446] = {.lex_state = 51, .external_lex_state = 3}, - [447] = {.lex_state = 51, .external_lex_state = 3}, - [448] = {.lex_state = 51, .external_lex_state = 2}, + [445] = {.lex_state = 51, .external_lex_state = 2}, + [446] = {.lex_state = 51, .external_lex_state = 2}, + [447] = {.lex_state = 51, .external_lex_state = 2}, + [448] = {.lex_state = 51, .external_lex_state = 3}, [449] = {.lex_state = 51, .external_lex_state = 2}, [450] = {.lex_state = 51, .external_lex_state = 2}, [451] = {.lex_state = 51, .external_lex_state = 2}, - [452] = {.lex_state = 51, .external_lex_state = 3}, - [453] = {.lex_state = 51, .external_lex_state = 2}, - [454] = {.lex_state = 51, .external_lex_state = 2}, + [452] = {.lex_state = 16, .external_lex_state = 7}, + [453] = {.lex_state = 16, .external_lex_state = 6}, + [454] = {.lex_state = 51, .external_lex_state = 3}, [455] = {.lex_state = 51, .external_lex_state = 2}, - [456] = {.lex_state = 51, .external_lex_state = 2}, + [456] = {.lex_state = 51, .external_lex_state = 3}, [457] = {.lex_state = 51, .external_lex_state = 2}, - [458] = {.lex_state = 16, .external_lex_state = 6}, - [459] = {.lex_state = 51, .external_lex_state = 2}, + [458] = {.lex_state = 51, .external_lex_state = 3}, + [459] = {.lex_state = 51, .external_lex_state = 3}, [460] = {.lex_state = 51, .external_lex_state = 3}, [461] = {.lex_state = 51, .external_lex_state = 2}, - [462] = {.lex_state = 16, .external_lex_state = 6}, - [463] = {.lex_state = 51, .external_lex_state = 2}, - [464] = {.lex_state = 51, .external_lex_state = 2}, - [465] = {.lex_state = 16, .external_lex_state = 6}, - [466] = {.lex_state = 51, .external_lex_state = 3}, + [462] = {.lex_state = 51, .external_lex_state = 3}, + [463] = {.lex_state = 51, .external_lex_state = 3}, + [464] = {.lex_state = 51, .external_lex_state = 3}, + [465] = {.lex_state = 51, .external_lex_state = 2}, + [466] = {.lex_state = 51, .external_lex_state = 2}, [467] = {.lex_state = 51, .external_lex_state = 2}, [468] = {.lex_state = 51, .external_lex_state = 2}, - [469] = {.lex_state = 51, .external_lex_state = 3}, - [470] = {.lex_state = 51, .external_lex_state = 3}, + [469] = {.lex_state = 16, .external_lex_state = 6}, + [470] = {.lex_state = 16}, [471] = {.lex_state = 51, .external_lex_state = 2}, [472] = {.lex_state = 51, .external_lex_state = 2}, - [473] = {.lex_state = 51, .external_lex_state = 3}, - [474] = {.lex_state = 16}, - [475] = {.lex_state = 16, .external_lex_state = 6}, + [473] = {.lex_state = 51, .external_lex_state = 2}, + [474] = {.lex_state = 51, .external_lex_state = 2}, + [475] = {.lex_state = 51, .external_lex_state = 2}, [476] = {.lex_state = 51, .external_lex_state = 2}, [477] = {.lex_state = 51, .external_lex_state = 3}, [478] = {.lex_state = 51, .external_lex_state = 2}, [479] = {.lex_state = 51, .external_lex_state = 3}, [480] = {.lex_state = 51, .external_lex_state = 3}, [481] = {.lex_state = 51, .external_lex_state = 2}, - [482] = {.lex_state = 51, .external_lex_state = 2}, - [483] = {.lex_state = 16, .external_lex_state = 6}, - [484] = {.lex_state = 51, .external_lex_state = 2}, - [485] = {.lex_state = 51, .external_lex_state = 2}, + [482] = {.lex_state = 51, .external_lex_state = 3}, + [483] = {.lex_state = 51, .external_lex_state = 2}, + [484] = {.lex_state = 51, .external_lex_state = 3}, + [485] = {.lex_state = 51, .external_lex_state = 3}, [486] = {.lex_state = 51, .external_lex_state = 3}, - [487] = {.lex_state = 16}, + [487] = {.lex_state = 51, .external_lex_state = 3}, [488] = {.lex_state = 51, .external_lex_state = 3}, [489] = {.lex_state = 51, .external_lex_state = 3}, [490] = {.lex_state = 51, .external_lex_state = 2}, [491] = {.lex_state = 51, .external_lex_state = 3}, - [492] = {.lex_state = 51, .external_lex_state = 3}, + [492] = {.lex_state = 16, .external_lex_state = 6}, [493] = {.lex_state = 51, .external_lex_state = 2}, [494] = {.lex_state = 16, .external_lex_state = 6}, [495] = {.lex_state = 51, .external_lex_state = 2}, [496] = {.lex_state = 51, .external_lex_state = 2}, - [497] = {.lex_state = 51, .external_lex_state = 2}, + [497] = {.lex_state = 51, .external_lex_state = 3}, [498] = {.lex_state = 51, .external_lex_state = 2}, - [499] = {.lex_state = 51, .external_lex_state = 2}, - [500] = {.lex_state = 51, .external_lex_state = 2}, + [499] = {.lex_state = 16, .external_lex_state = 6}, + [500] = {.lex_state = 51, .external_lex_state = 3}, [501] = {.lex_state = 51, .external_lex_state = 2}, - [502] = {.lex_state = 16, .external_lex_state = 6}, - [503] = {.lex_state = 51, .external_lex_state = 3}, + [502] = {.lex_state = 51, .external_lex_state = 3}, + [503] = {.lex_state = 16, .external_lex_state = 6}, [504] = {.lex_state = 51, .external_lex_state = 3}, [505] = {.lex_state = 51, .external_lex_state = 3}, - [506] = {.lex_state = 51, .external_lex_state = 3}, + [506] = {.lex_state = 51, .external_lex_state = 2}, [507] = {.lex_state = 51, .external_lex_state = 3}, [508] = {.lex_state = 51, .external_lex_state = 2}, - [509] = {.lex_state = 16}, + [509] = {.lex_state = 51, .external_lex_state = 2}, [510] = {.lex_state = 51, .external_lex_state = 2}, [511] = {.lex_state = 51, .external_lex_state = 2}, [512] = {.lex_state = 51, .external_lex_state = 2}, - [513] = {.lex_state = 16, .external_lex_state = 6}, - [514] = {.lex_state = 51, .external_lex_state = 2}, - [515] = {.lex_state = 51, .external_lex_state = 2}, + [513] = {.lex_state = 51, .external_lex_state = 2}, + [514] = {.lex_state = 51, .external_lex_state = 3}, + [515] = {.lex_state = 16, .external_lex_state = 6}, [516] = {.lex_state = 51, .external_lex_state = 2}, [517] = {.lex_state = 51, .external_lex_state = 2}, [518] = {.lex_state = 51, .external_lex_state = 2}, @@ -6926,7 +6992,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [521] = {.lex_state = 51, .external_lex_state = 2}, [522] = {.lex_state = 51, .external_lex_state = 2}, [523] = {.lex_state = 51, .external_lex_state = 2}, - [524] = {.lex_state = 51, .external_lex_state = 2}, + [524] = {.lex_state = 16, .external_lex_state = 6}, [525] = {.lex_state = 51, .external_lex_state = 2}, [526] = {.lex_state = 51, .external_lex_state = 2}, [527] = {.lex_state = 51, .external_lex_state = 2}, @@ -6936,39 +7002,39 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [531] = {.lex_state = 51, .external_lex_state = 2}, [532] = {.lex_state = 51, .external_lex_state = 2}, [533] = {.lex_state = 51, .external_lex_state = 2}, - [534] = {.lex_state = 51, .external_lex_state = 2}, + [534] = {.lex_state = 51, .external_lex_state = 3}, [535] = {.lex_state = 51, .external_lex_state = 2}, [536] = {.lex_state = 51, .external_lex_state = 2}, [537] = {.lex_state = 51, .external_lex_state = 2}, [538] = {.lex_state = 51, .external_lex_state = 2}, [539] = {.lex_state = 51, .external_lex_state = 2}, - [540] = {.lex_state = 51, .external_lex_state = 2}, + [540] = {.lex_state = 51, .external_lex_state = 3}, [541] = {.lex_state = 51, .external_lex_state = 2}, [542] = {.lex_state = 51, .external_lex_state = 2}, [543] = {.lex_state = 51, .external_lex_state = 2}, - [544] = {.lex_state = 51, .external_lex_state = 2}, - [545] = {.lex_state = 51, .external_lex_state = 2}, - [546] = {.lex_state = 51, .external_lex_state = 2}, + [544] = {.lex_state = 51, .external_lex_state = 3}, + [545] = {.lex_state = 51, .external_lex_state = 3}, + [546] = {.lex_state = 51, .external_lex_state = 3}, [547] = {.lex_state = 51, .external_lex_state = 2}, [548] = {.lex_state = 51, .external_lex_state = 2}, - [549] = {.lex_state = 51, .external_lex_state = 2}, + [549] = {.lex_state = 51, .external_lex_state = 3}, [550] = {.lex_state = 51, .external_lex_state = 2}, - [551] = {.lex_state = 51, .external_lex_state = 2}, + [551] = {.lex_state = 51, .external_lex_state = 3}, [552] = {.lex_state = 51, .external_lex_state = 3}, - [553] = {.lex_state = 51, .external_lex_state = 3}, + [553] = {.lex_state = 51, .external_lex_state = 2}, [554] = {.lex_state = 51, .external_lex_state = 3}, - [555] = {.lex_state = 51, .external_lex_state = 3}, + [555] = {.lex_state = 51, .external_lex_state = 2}, [556] = {.lex_state = 51, .external_lex_state = 3}, - [557] = {.lex_state = 51, .external_lex_state = 3}, - [558] = {.lex_state = 51, .external_lex_state = 3}, + [557] = {.lex_state = 51, .external_lex_state = 2}, + [558] = {.lex_state = 51, .external_lex_state = 2}, [559] = {.lex_state = 51, .external_lex_state = 3}, [560] = {.lex_state = 51, .external_lex_state = 3}, [561] = {.lex_state = 51, .external_lex_state = 3}, [562] = {.lex_state = 51, .external_lex_state = 3}, [563] = {.lex_state = 51, .external_lex_state = 3}, - [564] = {.lex_state = 51, .external_lex_state = 3}, + [564] = {.lex_state = 51, .external_lex_state = 2}, [565] = {.lex_state = 51, .external_lex_state = 3}, - [566] = {.lex_state = 51, .external_lex_state = 3}, + [566] = {.lex_state = 51, .external_lex_state = 2}, [567] = {.lex_state = 51, .external_lex_state = 3}, [568] = {.lex_state = 51, .external_lex_state = 3}, [569] = {.lex_state = 51, .external_lex_state = 3}, @@ -6983,30 +7049,30 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [578] = {.lex_state = 51, .external_lex_state = 3}, [579] = {.lex_state = 51, .external_lex_state = 3}, [580] = {.lex_state = 51, .external_lex_state = 3}, - [581] = {.lex_state = 51, .external_lex_state = 2}, - [582] = {.lex_state = 51, .external_lex_state = 3}, + [581] = {.lex_state = 51, .external_lex_state = 3}, + [582] = {.lex_state = 51, .external_lex_state = 2}, [583] = {.lex_state = 51, .external_lex_state = 3}, [584] = {.lex_state = 51, .external_lex_state = 3}, [585] = {.lex_state = 51, .external_lex_state = 3}, [586] = {.lex_state = 51, .external_lex_state = 3}, [587] = {.lex_state = 51, .external_lex_state = 3}, - [588] = {.lex_state = 51, .external_lex_state = 2}, - [589] = {.lex_state = 51, .external_lex_state = 3}, + [588] = {.lex_state = 51, .external_lex_state = 3}, + [589] = {.lex_state = 51, .external_lex_state = 2}, [590] = {.lex_state = 51, .external_lex_state = 3}, [591] = {.lex_state = 51, .external_lex_state = 3}, [592] = {.lex_state = 51, .external_lex_state = 3}, - [593] = {.lex_state = 51, .external_lex_state = 3}, - [594] = {.lex_state = 51, .external_lex_state = 3}, + [593] = {.lex_state = 51, .external_lex_state = 2}, + [594] = {.lex_state = 51, .external_lex_state = 2}, [595] = {.lex_state = 51, .external_lex_state = 3}, - [596] = {.lex_state = 51, .external_lex_state = 2}, - [597] = {.lex_state = 51, .external_lex_state = 2}, + [596] = {.lex_state = 51, .external_lex_state = 3}, + [597] = {.lex_state = 51, .external_lex_state = 3}, [598] = {.lex_state = 51, .external_lex_state = 3}, [599] = {.lex_state = 51, .external_lex_state = 3}, - [600] = {.lex_state = 51, .external_lex_state = 3}, - [601] = {.lex_state = 51, .external_lex_state = 3}, + [600] = {.lex_state = 51, .external_lex_state = 2}, + [601] = {.lex_state = 51, .external_lex_state = 2}, [602] = {.lex_state = 51, .external_lex_state = 3}, [603] = {.lex_state = 51, .external_lex_state = 3}, - [604] = {.lex_state = 51, .external_lex_state = 3}, + [604] = {.lex_state = 51, .external_lex_state = 2}, [605] = {.lex_state = 51, .external_lex_state = 2}, [606] = {.lex_state = 51, .external_lex_state = 2}, [607] = {.lex_state = 51, .external_lex_state = 2}, @@ -7016,20 +7082,20 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [611] = {.lex_state = 51, .external_lex_state = 2}, [612] = {.lex_state = 51, .external_lex_state = 2}, [613] = {.lex_state = 51, .external_lex_state = 2}, - [614] = {.lex_state = 51, .external_lex_state = 2}, + [614] = {.lex_state = 16, .external_lex_state = 6}, [615] = {.lex_state = 51, .external_lex_state = 2}, - [616] = {.lex_state = 16, .external_lex_state = 8}, - [617] = {.lex_state = 16, .external_lex_state = 9}, - [618] = {.lex_state = 51, .external_lex_state = 2}, - [619] = {.lex_state = 16, .external_lex_state = 8}, - [620] = {.lex_state = 16, .external_lex_state = 9}, - [621] = {.lex_state = 16, .external_lex_state = 8}, + [616] = {.lex_state = 51, .external_lex_state = 3}, + [617] = {.lex_state = 16}, + [618] = {.lex_state = 16}, + [619] = {.lex_state = 51, .external_lex_state = 2}, + [620] = {.lex_state = 51, .external_lex_state = 2}, + [621] = {.lex_state = 51, .external_lex_state = 2}, [622] = {.lex_state = 51, .external_lex_state = 2}, [623] = {.lex_state = 51, .external_lex_state = 2}, - [624] = {.lex_state = 16, .external_lex_state = 9}, + [624] = {.lex_state = 51, .external_lex_state = 2}, [625] = {.lex_state = 51, .external_lex_state = 2}, [626] = {.lex_state = 51, .external_lex_state = 2}, - [627] = {.lex_state = 51, .external_lex_state = 2}, + [627] = {.lex_state = 16, .external_lex_state = 8}, [628] = {.lex_state = 51, .external_lex_state = 2}, [629] = {.lex_state = 51, .external_lex_state = 2}, [630] = {.lex_state = 51, .external_lex_state = 2}, @@ -7087,25 +7153,25 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [682] = {.lex_state = 51, .external_lex_state = 2}, [683] = {.lex_state = 51, .external_lex_state = 2}, [684] = {.lex_state = 51, .external_lex_state = 2}, - [685] = {.lex_state = 51, .external_lex_state = 2}, + [685] = {.lex_state = 16, .external_lex_state = 9}, [686] = {.lex_state = 51, .external_lex_state = 2}, [687] = {.lex_state = 51, .external_lex_state = 2}, [688] = {.lex_state = 51, .external_lex_state = 2}, [689] = {.lex_state = 51, .external_lex_state = 2}, - [690] = {.lex_state = 51, .external_lex_state = 2}, + [690] = {.lex_state = 16, .external_lex_state = 9}, [691] = {.lex_state = 51, .external_lex_state = 2}, [692] = {.lex_state = 51, .external_lex_state = 2}, - [693] = {.lex_state = 51, .external_lex_state = 2}, - [694] = {.lex_state = 51, .external_lex_state = 2}, - [695] = {.lex_state = 16, .external_lex_state = 8}, - [696] = {.lex_state = 16, .external_lex_state = 9}, - [697] = {.lex_state = 16, .external_lex_state = 8}, - [698] = {.lex_state = 16, .external_lex_state = 9}, - [699] = {.lex_state = 16}, - [700] = {.lex_state = 16}, - [701] = {.lex_state = 16}, - [702] = {.lex_state = 16}, - [703] = {.lex_state = 16}, + [693] = {.lex_state = 16, .external_lex_state = 8}, + [694] = {.lex_state = 16, .external_lex_state = 9}, + [695] = {.lex_state = 51, .external_lex_state = 2}, + [696] = {.lex_state = 51, .external_lex_state = 2}, + [697] = {.lex_state = 51, .external_lex_state = 2}, + [698] = {.lex_state = 16, .external_lex_state = 8}, + [699] = {.lex_state = 51, .external_lex_state = 2}, + [700] = {.lex_state = 16, .external_lex_state = 8}, + [701] = {.lex_state = 16, .external_lex_state = 8}, + [702] = {.lex_state = 16, .external_lex_state = 9}, + [703] = {.lex_state = 16, .external_lex_state = 9}, [704] = {.lex_state = 16}, [705] = {.lex_state = 16}, [706] = {.lex_state = 16}, @@ -7114,8 +7180,8 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [709] = {.lex_state = 16}, [710] = {.lex_state = 16}, [711] = {.lex_state = 16}, - [712] = {.lex_state = 15}, - [713] = {.lex_state = 15}, + [712] = {.lex_state = 16}, + [713] = {.lex_state = 16}, [714] = {.lex_state = 16}, [715] = {.lex_state = 16}, [716] = {.lex_state = 16}, @@ -7138,25 +7204,25 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [733] = {.lex_state = 16}, [734] = {.lex_state = 16}, [735] = {.lex_state = 16}, - [736] = {.lex_state = 16}, - [737] = {.lex_state = 16}, + [736] = {.lex_state = 15}, + [737] = {.lex_state = 15}, [738] = {.lex_state = 16}, [739] = {.lex_state = 16}, [740] = {.lex_state = 16}, [741] = {.lex_state = 16}, [742] = {.lex_state = 16}, [743] = {.lex_state = 16}, - [744] = {.lex_state = 16, .external_lex_state = 8}, - [745] = {.lex_state = 16, .external_lex_state = 9}, - [746] = {.lex_state = 16, .external_lex_state = 8}, - [747] = {.lex_state = 16, .external_lex_state = 9}, + [744] = {.lex_state = 16}, + [745] = {.lex_state = 16}, + [746] = {.lex_state = 16}, + [747] = {.lex_state = 16}, [748] = {.lex_state = 16}, - [749] = {.lex_state = 16}, - [750] = {.lex_state = 16}, + [749] = {.lex_state = 16, .external_lex_state = 9}, + [750] = {.lex_state = 16, .external_lex_state = 8}, [751] = {.lex_state = 16}, [752] = {.lex_state = 16}, - [753] = {.lex_state = 16}, - [754] = {.lex_state = 16}, + [753] = {.lex_state = 16, .external_lex_state = 9}, + [754] = {.lex_state = 16, .external_lex_state = 8}, [755] = {.lex_state = 16}, [756] = {.lex_state = 16}, [757] = {.lex_state = 16}, @@ -7164,123 +7230,123 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [759] = {.lex_state = 16}, [760] = {.lex_state = 16}, [761] = {.lex_state = 16}, - [762] = {.lex_state = 15, .external_lex_state = 9}, - [763] = {.lex_state = 16, .external_lex_state = 10}, + [762] = {.lex_state = 16}, + [763] = {.lex_state = 16}, [764] = {.lex_state = 16}, - [765] = {.lex_state = 16, .external_lex_state = 7}, - [766] = {.lex_state = 15}, - [767] = {.lex_state = 15, .external_lex_state = 8}, + [765] = {.lex_state = 16}, + [766] = {.lex_state = 16}, + [767] = {.lex_state = 16}, [768] = {.lex_state = 15, .external_lex_state = 9}, [769] = {.lex_state = 15, .external_lex_state = 8}, - [770] = {.lex_state = 15, .external_lex_state = 9}, - [771] = {.lex_state = 15, .external_lex_state = 8}, - [772] = {.lex_state = 16}, - [773] = {.lex_state = 16}, + [770] = {.lex_state = 16, .external_lex_state = 7}, + [771] = {.lex_state = 16, .external_lex_state = 10}, + [772] = {.lex_state = 16, .external_lex_state = 10}, + [773] = {.lex_state = 16, .external_lex_state = 6}, [774] = {.lex_state = 16}, - [775] = {.lex_state = 16, .external_lex_state = 7}, - [776] = {.lex_state = 16, .external_lex_state = 10}, - [777] = {.lex_state = 16}, - [778] = {.lex_state = 16, .external_lex_state = 10}, - [779] = {.lex_state = 16, .external_lex_state = 6}, - [780] = {.lex_state = 16}, - [781] = {.lex_state = 16}, - [782] = {.lex_state = 16, .external_lex_state = 7}, - [783] = {.lex_state = 15}, - [784] = {.lex_state = 15}, - [785] = {.lex_state = 15}, - [786] = {.lex_state = 15}, - [787] = {.lex_state = 15}, - [788] = {.lex_state = 15}, - [789] = {.lex_state = 15}, - [790] = {.lex_state = 16}, - [791] = {.lex_state = 15}, - [792] = {.lex_state = 15}, - [793] = {.lex_state = 15}, - [794] = {.lex_state = 16, .external_lex_state = 8}, - [795] = {.lex_state = 16, .external_lex_state = 9}, + [775] = {.lex_state = 16}, + [776] = {.lex_state = 16, .external_lex_state = 7}, + [777] = {.lex_state = 16, .external_lex_state = 10}, + [778] = {.lex_state = 16}, + [779] = {.lex_state = 16, .external_lex_state = 7}, + [780] = {.lex_state = 15}, + [781] = {.lex_state = 15, .external_lex_state = 9}, + [782] = {.lex_state = 15, .external_lex_state = 8}, + [783] = {.lex_state = 16}, + [784] = {.lex_state = 15, .external_lex_state = 9}, + [785] = {.lex_state = 15, .external_lex_state = 8}, + [786] = {.lex_state = 16}, + [787] = {.lex_state = 16}, + [788] = {.lex_state = 16, .external_lex_state = 6}, + [789] = {.lex_state = 16}, + [790] = {.lex_state = 16, .external_lex_state = 9}, + [791] = {.lex_state = 16, .external_lex_state = 8}, + [792] = {.lex_state = 16, .external_lex_state = 9}, + [793] = {.lex_state = 16, .external_lex_state = 8}, + [794] = {.lex_state = 16, .external_lex_state = 9}, + [795] = {.lex_state = 16, .external_lex_state = 8}, [796] = {.lex_state = 16, .external_lex_state = 6}, - [797] = {.lex_state = 15}, - [798] = {.lex_state = 15}, + [797] = {.lex_state = 16, .external_lex_state = 6}, + [798] = {.lex_state = 16, .external_lex_state = 6}, [799] = {.lex_state = 16, .external_lex_state = 6}, [800] = {.lex_state = 16, .external_lex_state = 6}, [801] = {.lex_state = 16, .external_lex_state = 6}, [802] = {.lex_state = 16, .external_lex_state = 6}, - [803] = {.lex_state = 16}, - [804] = {.lex_state = 16, .external_lex_state = 6}, - [805] = {.lex_state = 16, .external_lex_state = 6}, - [806] = {.lex_state = 16, .external_lex_state = 8}, - [807] = {.lex_state = 16, .external_lex_state = 9}, - [808] = {.lex_state = 16, .external_lex_state = 8}, - [809] = {.lex_state = 16, .external_lex_state = 9}, - [810] = {.lex_state = 16, .external_lex_state = 6}, - [811] = {.lex_state = 16, .external_lex_state = 6}, - [812] = {.lex_state = 16}, - [813] = {.lex_state = 16}, - [814] = {.lex_state = 16}, - [815] = {.lex_state = 16}, - [816] = {.lex_state = 16}, - [817] = {.lex_state = 16}, - [818] = {.lex_state = 16}, + [803] = {.lex_state = 16, .external_lex_state = 6}, + [804] = {.lex_state = 15}, + [805] = {.lex_state = 15}, + [806] = {.lex_state = 16, .external_lex_state = 6}, + [807] = {.lex_state = 16, .external_lex_state = 6}, + [808] = {.lex_state = 16}, + [809] = {.lex_state = 15}, + [810] = {.lex_state = 15}, + [811] = {.lex_state = 15}, + [812] = {.lex_state = 15}, + [813] = {.lex_state = 15}, + [814] = {.lex_state = 15}, + [815] = {.lex_state = 15}, + [816] = {.lex_state = 15}, + [817] = {.lex_state = 15}, + [818] = {.lex_state = 16, .external_lex_state = 6}, [819] = {.lex_state = 16}, [820] = {.lex_state = 16}, [821] = {.lex_state = 16}, [822] = {.lex_state = 16}, - [823] = {.lex_state = 16, .external_lex_state = 6}, - [824] = {.lex_state = 16, .external_lex_state = 6}, - [825] = {.lex_state = 16, .external_lex_state = 6}, - [826] = {.lex_state = 16, .external_lex_state = 6}, - [827] = {.lex_state = 16, .external_lex_state = 10}, + [823] = {.lex_state = 16}, + [824] = {.lex_state = 16}, + [825] = {.lex_state = 16}, + [826] = {.lex_state = 16}, + [827] = {.lex_state = 16}, [828] = {.lex_state = 16}, [829] = {.lex_state = 16}, - [830] = {.lex_state = 16, .external_lex_state = 10}, - [831] = {.lex_state = 16}, - [832] = {.lex_state = 16}, + [830] = {.lex_state = 15}, + [831] = {.lex_state = 16, .external_lex_state = 6}, + [832] = {.lex_state = 15}, [833] = {.lex_state = 16}, - [834] = {.lex_state = 16}, - [835] = {.lex_state = 16}, - [836] = {.lex_state = 16}, + [834] = {.lex_state = 15, .external_lex_state = 8}, + [835] = {.lex_state = 16, .external_lex_state = 6}, + [836] = {.lex_state = 15}, [837] = {.lex_state = 16}, [838] = {.lex_state = 16}, [839] = {.lex_state = 16}, - [840] = {.lex_state = 15}, - [841] = {.lex_state = 15, .external_lex_state = 8}, + [840] = {.lex_state = 15, .external_lex_state = 8}, + [841] = {.lex_state = 51, .external_lex_state = 2}, [842] = {.lex_state = 16}, - [843] = {.lex_state = 16}, + [843] = {.lex_state = 16, .external_lex_state = 7}, [844] = {.lex_state = 16}, [845] = {.lex_state = 16}, - [846] = {.lex_state = 51, .external_lex_state = 2}, - [847] = {.lex_state = 16, .external_lex_state = 7}, - [848] = {.lex_state = 16}, + [846] = {.lex_state = 15, .external_lex_state = 9}, + [847] = {.lex_state = 16, .external_lex_state = 10}, + [848] = {.lex_state = 15, .external_lex_state = 9}, [849] = {.lex_state = 16}, - [850] = {.lex_state = 15, .external_lex_state = 8}, - [851] = {.lex_state = 15, .external_lex_state = 9}, - [852] = {.lex_state = 16}, - [853] = {.lex_state = 16, .external_lex_state = 6}, - [854] = {.lex_state = 51, .external_lex_state = 2}, + [850] = {.lex_state = 16}, + [851] = {.lex_state = 16}, + [852] = {.lex_state = 16, .external_lex_state = 7}, + [853] = {.lex_state = 16, .external_lex_state = 10}, + [854] = {.lex_state = 16}, [855] = {.lex_state = 16}, - [856] = {.lex_state = 51, .external_lex_state = 2}, + [856] = {.lex_state = 16}, [857] = {.lex_state = 16}, [858] = {.lex_state = 16}, - [859] = {.lex_state = 15, .external_lex_state = 9}, + [859] = {.lex_state = 16}, [860] = {.lex_state = 16}, - [861] = {.lex_state = 16, .external_lex_state = 7}, - [862] = {.lex_state = 51, .external_lex_state = 2}, + [861] = {.lex_state = 51, .external_lex_state = 2}, + [862] = {.lex_state = 16}, [863] = {.lex_state = 16}, [864] = {.lex_state = 16}, - [865] = {.lex_state = 15}, - [866] = {.lex_state = 15}, - [867] = {.lex_state = 16, .external_lex_state = 6}, - [868] = {.lex_state = 15}, - [869] = {.lex_state = 15}, - [870] = {.lex_state = 16}, + [865] = {.lex_state = 16}, + [866] = {.lex_state = 16}, + [867] = {.lex_state = 16}, + [868] = {.lex_state = 16}, + [869] = {.lex_state = 51, .external_lex_state = 2}, + [870] = {.lex_state = 51, .external_lex_state = 2}, [871] = {.lex_state = 16}, - [872] = {.lex_state = 15}, - [873] = {.lex_state = 15}, + [872] = {.lex_state = 16}, + [873] = {.lex_state = 16, .external_lex_state = 6}, [874] = {.lex_state = 15}, [875] = {.lex_state = 15}, [876] = {.lex_state = 15}, - [877] = {.lex_state = 15}, - [878] = {.lex_state = 16, .external_lex_state = 6}, + [877] = {.lex_state = 16, .external_lex_state = 6}, + [878] = {.lex_state = 15}, [879] = {.lex_state = 15}, [880] = {.lex_state = 15}, [881] = {.lex_state = 15}, @@ -7288,72 +7354,72 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [883] = {.lex_state = 15}, [884] = {.lex_state = 15}, [885] = {.lex_state = 15}, - [886] = {.lex_state = 16, .external_lex_state = 6}, + [886] = {.lex_state = 15}, [887] = {.lex_state = 15}, [888] = {.lex_state = 15}, [889] = {.lex_state = 15}, [890] = {.lex_state = 15}, - [891] = {.lex_state = 16, .external_lex_state = 6}, - [892] = {.lex_state = 15}, - [893] = {.lex_state = 15}, + [891] = {.lex_state = 15}, + [892] = {.lex_state = 16}, + [893] = {.lex_state = 16}, [894] = {.lex_state = 15}, - [895] = {.lex_state = 15}, - [896] = {.lex_state = 15}, - [897] = {.lex_state = 15}, - [898] = {.lex_state = 15}, + [895] = {.lex_state = 16, .external_lex_state = 6}, + [896] = {.lex_state = 51, .external_lex_state = 2}, + [897] = {.lex_state = 51, .external_lex_state = 2}, + [898] = {.lex_state = 16, .external_lex_state = 6}, [899] = {.lex_state = 15}, - [900] = {.lex_state = 15}, - [901] = {.lex_state = 16, .external_lex_state = 6}, - [902] = {.lex_state = 16, .external_lex_state = 6}, + [900] = {.lex_state = 16, .external_lex_state = 6}, + [901] = {.lex_state = 15}, + [902] = {.lex_state = 15}, [903] = {.lex_state = 16, .external_lex_state = 6}, [904] = {.lex_state = 16, .external_lex_state = 6}, [905] = {.lex_state = 16, .external_lex_state = 6}, [906] = {.lex_state = 15}, - [907] = {.lex_state = 16, .external_lex_state = 6}, + [907] = {.lex_state = 16}, [908] = {.lex_state = 16, .external_lex_state = 6}, [909] = {.lex_state = 16, .external_lex_state = 6}, [910] = {.lex_state = 16, .external_lex_state = 6}, - [911] = {.lex_state = 16}, - [912] = {.lex_state = 16}, - [913] = {.lex_state = 16, .external_lex_state = 6}, - [914] = {.lex_state = 16, .external_lex_state = 6}, - [915] = {.lex_state = 16}, + [911] = {.lex_state = 16, .external_lex_state = 6}, + [912] = {.lex_state = 15}, + [913] = {.lex_state = 16}, + [914] = {.lex_state = 16}, + [915] = {.lex_state = 16, .external_lex_state = 6}, [916] = {.lex_state = 16, .external_lex_state = 6}, - [917] = {.lex_state = 16, .external_lex_state = 6}, - [918] = {.lex_state = 16, .external_lex_state = 6}, - [919] = {.lex_state = 16}, + [917] = {.lex_state = 16}, + [918] = {.lex_state = 15}, + [919] = {.lex_state = 16, .external_lex_state = 6}, [920] = {.lex_state = 16, .external_lex_state = 6}, [921] = {.lex_state = 16, .external_lex_state = 6}, [922] = {.lex_state = 16, .external_lex_state = 6}, [923] = {.lex_state = 16, .external_lex_state = 6}, - [924] = {.lex_state = 15}, - [925] = {.lex_state = 16}, + [924] = {.lex_state = 16}, + [925] = {.lex_state = 15}, [926] = {.lex_state = 16, .external_lex_state = 6}, - [927] = {.lex_state = 51, .external_lex_state = 2}, - [928] = {.lex_state = 51, .external_lex_state = 2}, + [927] = {.lex_state = 16, .external_lex_state = 6}, + [928] = {.lex_state = 16, .external_lex_state = 6}, [929] = {.lex_state = 16, .external_lex_state = 6}, [930] = {.lex_state = 16, .external_lex_state = 6}, - [931] = {.lex_state = 16, .external_lex_state = 6}, - [932] = {.lex_state = 51, .external_lex_state = 2}, - [933] = {.lex_state = 51, .external_lex_state = 2}, + [931] = {.lex_state = 51, .external_lex_state = 2}, + [932] = {.lex_state = 16, .external_lex_state = 6}, + [933] = {.lex_state = 15}, [934] = {.lex_state = 51, .external_lex_state = 2}, [935] = {.lex_state = 51, .external_lex_state = 2}, [936] = {.lex_state = 16, .external_lex_state = 6}, - [937] = {.lex_state = 16, .external_lex_state = 6}, + [937] = {.lex_state = 15}, [938] = {.lex_state = 15}, - [939] = {.lex_state = 15}, - [940] = {.lex_state = 16, .external_lex_state = 6}, + [939] = {.lex_state = 51, .external_lex_state = 2}, + [940] = {.lex_state = 15}, [941] = {.lex_state = 16, .external_lex_state = 6}, [942] = {.lex_state = 16, .external_lex_state = 6}, [943] = {.lex_state = 16, .external_lex_state = 6}, - [944] = {.lex_state = 16, .external_lex_state = 6}, - [945] = {.lex_state = 16}, - [946] = {.lex_state = 16}, - [947] = {.lex_state = 16}, - [948] = {.lex_state = 16}, - [949] = {.lex_state = 16}, - [950] = {.lex_state = 16}, - [951] = {.lex_state = 16}, + [944] = {.lex_state = 15}, + [945] = {.lex_state = 16, .external_lex_state = 6}, + [946] = {.lex_state = 15}, + [947] = {.lex_state = 16, .external_lex_state = 6}, + [948] = {.lex_state = 15}, + [949] = {.lex_state = 15}, + [950] = {.lex_state = 16, .external_lex_state = 6}, + [951] = {.lex_state = 16, .external_lex_state = 6}, [952] = {.lex_state = 16}, [953] = {.lex_state = 16}, [954] = {.lex_state = 16}, @@ -7366,7 +7432,7 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [961] = {.lex_state = 16}, [962] = {.lex_state = 16}, [963] = {.lex_state = 16}, - [964] = {.lex_state = 51, .external_lex_state = 2}, + [964] = {.lex_state = 16}, [965] = {.lex_state = 16}, [966] = {.lex_state = 16}, [967] = {.lex_state = 16}, @@ -7381,680 +7447,680 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [976] = {.lex_state = 16}, [977] = {.lex_state = 16}, [978] = {.lex_state = 16}, - [979] = {.lex_state = 51, .external_lex_state = 2}, - [980] = {.lex_state = 51, .external_lex_state = 2}, - [981] = {.lex_state = 16}, + [979] = {.lex_state = 16}, + [980] = {.lex_state = 16}, + [981] = {.lex_state = 51, .external_lex_state = 2}, [982] = {.lex_state = 51, .external_lex_state = 2}, - [983] = {.lex_state = 16}, - [984] = {.lex_state = 51, .external_lex_state = 2}, - [985] = {.lex_state = 51, .external_lex_state = 2}, - [986] = {.lex_state = 51, .external_lex_state = 2}, + [983] = {.lex_state = 51, .external_lex_state = 2}, + [984] = {.lex_state = 16}, + [985] = {.lex_state = 16}, + [986] = {.lex_state = 16}, [987] = {.lex_state = 51, .external_lex_state = 2}, - [988] = {.lex_state = 51, .external_lex_state = 2}, - [989] = {.lex_state = 51}, - [990] = {.lex_state = 0}, - [991] = {.lex_state = 51}, - [992] = {.lex_state = 0}, - [993] = {.lex_state = 51}, + [988] = {.lex_state = 16}, + [989] = {.lex_state = 16}, + [990] = {.lex_state = 16}, + [991] = {.lex_state = 51, .external_lex_state = 2}, + [992] = {.lex_state = 51, .external_lex_state = 2}, + [993] = {.lex_state = 51, .external_lex_state = 2}, [994] = {.lex_state = 51, .external_lex_state = 2}, - [995] = {.lex_state = 14}, - [996] = {.lex_state = 51, .external_lex_state = 2}, + [995] = {.lex_state = 51, .external_lex_state = 2}, + [996] = {.lex_state = 0}, [997] = {.lex_state = 51}, - [998] = {.lex_state = 51}, + [998] = {.lex_state = 0}, [999] = {.lex_state = 51}, - [1000] = {.lex_state = 16}, - [1001] = {.lex_state = 16}, - [1002] = {.lex_state = 0, .external_lex_state = 6}, - [1003] = {.lex_state = 0, .external_lex_state = 6}, - [1004] = {.lex_state = 51}, + [1000] = {.lex_state = 51}, + [1001] = {.lex_state = 0, .external_lex_state = 6}, + [1002] = {.lex_state = 51}, + [1003] = {.lex_state = 14}, + [1004] = {.lex_state = 14}, [1005] = {.lex_state = 51}, - [1006] = {.lex_state = 14}, - [1007] = {.lex_state = 51}, - [1008] = {.lex_state = 51, .external_lex_state = 2}, + [1006] = {.lex_state = 51, .external_lex_state = 2}, + [1007] = {.lex_state = 51, .external_lex_state = 2}, + [1008] = {.lex_state = 0, .external_lex_state = 6}, [1009] = {.lex_state = 51}, - [1010] = {.lex_state = 51}, - [1011] = {.lex_state = 51}, - [1012] = {.lex_state = 16}, - [1013] = {.lex_state = 51}, + [1010] = {.lex_state = 51, .external_lex_state = 2}, + [1011] = {.lex_state = 16}, + [1012] = {.lex_state = 51}, + [1013] = {.lex_state = 16}, [1014] = {.lex_state = 51}, [1015] = {.lex_state = 51}, [1016] = {.lex_state = 51}, - [1017] = {.lex_state = 51}, + [1017] = {.lex_state = 16}, [1018] = {.lex_state = 51}, [1019] = {.lex_state = 51}, [1020] = {.lex_state = 51}, - [1021] = {.lex_state = 51, .external_lex_state = 2}, - [1022] = {.lex_state = 0}, + [1021] = {.lex_state = 51}, + [1022] = {.lex_state = 51}, [1023] = {.lex_state = 51}, [1024] = {.lex_state = 51}, [1025] = {.lex_state = 51}, - [1026] = {.lex_state = 0}, - [1027] = {.lex_state = 0}, + [1026] = {.lex_state = 51}, + [1027] = {.lex_state = 51}, [1028] = {.lex_state = 0}, - [1029] = {.lex_state = 0}, + [1029] = {.lex_state = 51, .external_lex_state = 2}, [1030] = {.lex_state = 51}, - [1031] = {.lex_state = 51}, - [1032] = {.lex_state = 16}, - [1033] = {.lex_state = 18, .external_lex_state = 11}, + [1031] = {.lex_state = 0}, + [1032] = {.lex_state = 51}, + [1033] = {.lex_state = 0}, [1034] = {.lex_state = 51}, - [1035] = {.lex_state = 18, .external_lex_state = 11}, - [1036] = {.lex_state = 18, .external_lex_state = 11}, - [1037] = {.lex_state = 18, .external_lex_state = 11}, - [1038] = {.lex_state = 16}, - [1039] = {.lex_state = 51, .external_lex_state = 8}, - [1040] = {.lex_state = 51, .external_lex_state = 9}, - [1041] = {.lex_state = 0}, + [1035] = {.lex_state = 0}, + [1036] = {.lex_state = 0}, + [1037] = {.lex_state = 51}, + [1038] = {.lex_state = 51}, + [1039] = {.lex_state = 16}, + [1040] = {.lex_state = 18, .external_lex_state = 11}, + [1041] = {.lex_state = 51}, [1042] = {.lex_state = 16}, - [1043] = {.lex_state = 18, .external_lex_state = 11}, + [1043] = {.lex_state = 51, .external_lex_state = 8}, [1044] = {.lex_state = 18, .external_lex_state = 11}, [1045] = {.lex_state = 18, .external_lex_state = 11}, - [1046] = {.lex_state = 51}, - [1047] = {.lex_state = 18, .external_lex_state = 11}, - [1048] = {.lex_state = 18, .external_lex_state = 11}, - [1049] = {.lex_state = 16}, + [1046] = {.lex_state = 18, .external_lex_state = 11}, + [1047] = {.lex_state = 51}, + [1048] = {.lex_state = 0}, + [1049] = {.lex_state = 18, .external_lex_state = 11}, [1050] = {.lex_state = 18, .external_lex_state = 11}, [1051] = {.lex_state = 18, .external_lex_state = 11}, [1052] = {.lex_state = 18, .external_lex_state = 11}, - [1053] = {.lex_state = 18, .external_lex_state = 11}, + [1053] = {.lex_state = 16}, [1054] = {.lex_state = 18, .external_lex_state = 11}, [1055] = {.lex_state = 18, .external_lex_state = 11}, [1056] = {.lex_state = 18, .external_lex_state = 11}, [1057] = {.lex_state = 18, .external_lex_state = 11}, [1058] = {.lex_state = 18, .external_lex_state = 11}, [1059] = {.lex_state = 18, .external_lex_state = 11}, - [1060] = {.lex_state = 51}, - [1061] = {.lex_state = 51}, - [1062] = {.lex_state = 0}, + [1060] = {.lex_state = 18, .external_lex_state = 11}, + [1061] = {.lex_state = 18, .external_lex_state = 11}, + [1062] = {.lex_state = 18, .external_lex_state = 11}, [1063] = {.lex_state = 51}, - [1064] = {.lex_state = 0}, - [1065] = {.lex_state = 51}, - [1066] = {.lex_state = 0}, - [1067] = {.lex_state = 0}, - [1068] = {.lex_state = 0}, + [1064] = {.lex_state = 16}, + [1065] = {.lex_state = 18, .external_lex_state = 11}, + [1066] = {.lex_state = 18, .external_lex_state = 11}, + [1067] = {.lex_state = 51}, + [1068] = {.lex_state = 51, .external_lex_state = 9}, [1069] = {.lex_state = 0}, - [1070] = {.lex_state = 51}, + [1070] = {.lex_state = 0}, [1071] = {.lex_state = 51}, - [1072] = {.lex_state = 51}, + [1072] = {.lex_state = 0}, [1073] = {.lex_state = 0}, [1074] = {.lex_state = 0}, [1075] = {.lex_state = 0}, - [1076] = {.lex_state = 0}, - [1077] = {.lex_state = 51}, + [1076] = {.lex_state = 51}, + [1077] = {.lex_state = 0}, [1078] = {.lex_state = 51}, - [1079] = {.lex_state = 0}, + [1079] = {.lex_state = 51}, [1080] = {.lex_state = 0}, - [1081] = {.lex_state = 0}, - [1082] = {.lex_state = 51}, + [1081] = {.lex_state = 51}, + [1082] = {.lex_state = 0}, [1083] = {.lex_state = 0}, [1084] = {.lex_state = 0}, - [1085] = {.lex_state = 0}, + [1085] = {.lex_state = 51}, [1086] = {.lex_state = 0}, [1087] = {.lex_state = 0}, - [1088] = {.lex_state = 0}, + [1088] = {.lex_state = 51}, [1089] = {.lex_state = 51}, [1090] = {.lex_state = 0}, - [1091] = {.lex_state = 51}, + [1091] = {.lex_state = 0}, [1092] = {.lex_state = 0}, - [1093] = {.lex_state = 14}, + [1093] = {.lex_state = 0}, [1094] = {.lex_state = 0}, - [1095] = {.lex_state = 14}, + [1095] = {.lex_state = 0}, [1096] = {.lex_state = 51}, - [1097] = {.lex_state = 51}, + [1097] = {.lex_state = 0}, [1098] = {.lex_state = 0}, [1099] = {.lex_state = 0}, [1100] = {.lex_state = 0}, [1101] = {.lex_state = 51}, [1102] = {.lex_state = 51}, [1103] = {.lex_state = 14}, - [1104] = {.lex_state = 14}, - [1105] = {.lex_state = 14}, - [1106] = {.lex_state = 14}, + [1104] = {.lex_state = 0}, + [1105] = {.lex_state = 51}, + [1106] = {.lex_state = 0}, [1107] = {.lex_state = 14}, - [1108] = {.lex_state = 14}, - [1109] = {.lex_state = 0, .external_lex_state = 6}, + [1108] = {.lex_state = 0}, + [1109] = {.lex_state = 51}, [1110] = {.lex_state = 51}, - [1111] = {.lex_state = 0}, - [1112] = {.lex_state = 14}, + [1111] = {.lex_state = 51}, + [1112] = {.lex_state = 0, .external_lex_state = 6}, [1113] = {.lex_state = 0}, [1114] = {.lex_state = 51}, - [1115] = {.lex_state = 51}, + [1115] = {.lex_state = 0, .external_lex_state = 6}, [1116] = {.lex_state = 51}, [1117] = {.lex_state = 51}, - [1118] = {.lex_state = 0}, - [1119] = {.lex_state = 51}, - [1120] = {.lex_state = 51}, + [1118] = {.lex_state = 0, .external_lex_state = 6}, + [1119] = {.lex_state = 18, .external_lex_state = 11}, + [1120] = {.lex_state = 14}, [1121] = {.lex_state = 0, .external_lex_state = 6}, - [1122] = {.lex_state = 0, .external_lex_state = 6}, + [1122] = {.lex_state = 0}, [1123] = {.lex_state = 0, .external_lex_state = 6}, [1124] = {.lex_state = 51}, - [1125] = {.lex_state = 14}, - [1126] = {.lex_state = 51}, + [1125] = {.lex_state = 51}, + [1126] = {.lex_state = 0, .external_lex_state = 6}, [1127] = {.lex_state = 51}, - [1128] = {.lex_state = 0}, - [1129] = {.lex_state = 14}, + [1128] = {.lex_state = 51}, + [1129] = {.lex_state = 0, .external_lex_state = 6}, [1130] = {.lex_state = 51}, - [1131] = {.lex_state = 51}, + [1131] = {.lex_state = 14}, [1132] = {.lex_state = 51}, - [1133] = {.lex_state = 18, .external_lex_state = 11}, + [1133] = {.lex_state = 51}, [1134] = {.lex_state = 51}, - [1135] = {.lex_state = 0, .external_lex_state = 6}, - [1136] = {.lex_state = 0}, - [1137] = {.lex_state = 51}, + [1135] = {.lex_state = 0}, + [1136] = {.lex_state = 51}, + [1137] = {.lex_state = 0, .external_lex_state = 6}, [1138] = {.lex_state = 51}, - [1139] = {.lex_state = 16}, + [1139] = {.lex_state = 0, .external_lex_state = 6}, [1140] = {.lex_state = 51}, - [1141] = {.lex_state = 0, .external_lex_state = 6}, + [1141] = {.lex_state = 51}, [1142] = {.lex_state = 51}, [1143] = {.lex_state = 51}, - [1144] = {.lex_state = 0, .external_lex_state = 6}, - [1145] = {.lex_state = 0, .external_lex_state = 6}, + [1144] = {.lex_state = 51}, + [1145] = {.lex_state = 14}, [1146] = {.lex_state = 0}, - [1147] = {.lex_state = 18, .external_lex_state = 11}, - [1148] = {.lex_state = 0}, - [1149] = {.lex_state = 51}, + [1147] = {.lex_state = 0, .external_lex_state = 6}, + [1148] = {.lex_state = 51}, + [1149] = {.lex_state = 18, .external_lex_state = 11}, [1150] = {.lex_state = 51}, [1151] = {.lex_state = 51}, - [1152] = {.lex_state = 51}, + [1152] = {.lex_state = 14}, [1153] = {.lex_state = 51}, [1154] = {.lex_state = 51}, - [1155] = {.lex_state = 0}, - [1156] = {.lex_state = 0, .external_lex_state = 6}, + [1155] = {.lex_state = 51}, + [1156] = {.lex_state = 51}, [1157] = {.lex_state = 51}, - [1158] = {.lex_state = 0, .external_lex_state = 6}, - [1159] = {.lex_state = 51}, - [1160] = {.lex_state = 51}, - [1161] = {.lex_state = 51}, - [1162] = {.lex_state = 0}, - [1163] = {.lex_state = 0, .external_lex_state = 6}, + [1158] = {.lex_state = 51}, + [1159] = {.lex_state = 14}, + [1160] = {.lex_state = 16}, + [1161] = {.lex_state = 0, .external_lex_state = 6}, + [1162] = {.lex_state = 14}, + [1163] = {.lex_state = 51}, [1164] = {.lex_state = 14}, [1165] = {.lex_state = 14}, [1166] = {.lex_state = 51}, - [1167] = {.lex_state = 51}, + [1167] = {.lex_state = 14}, [1168] = {.lex_state = 14}, - [1169] = {.lex_state = 0}, - [1170] = {.lex_state = 0}, + [1169] = {.lex_state = 14}, + [1170] = {.lex_state = 14}, [1171] = {.lex_state = 0}, - [1172] = {.lex_state = 51}, + [1172] = {.lex_state = 0}, [1173] = {.lex_state = 0}, [1174] = {.lex_state = 0}, - [1175] = {.lex_state = 0, .external_lex_state = 6}, + [1175] = {.lex_state = 0}, [1176] = {.lex_state = 51}, - [1177] = {.lex_state = 0, .external_lex_state = 6}, + [1177] = {.lex_state = 51}, [1178] = {.lex_state = 0}, - [1179] = {.lex_state = 0, .external_lex_state = 6}, - [1180] = {.lex_state = 0, .external_lex_state = 6}, - [1181] = {.lex_state = 0}, - [1182] = {.lex_state = 0}, - [1183] = {.lex_state = 14}, - [1184] = {.lex_state = 51}, - [1185] = {.lex_state = 0, .external_lex_state = 6}, - [1186] = {.lex_state = 51}, + [1179] = {.lex_state = 0}, + [1180] = {.lex_state = 0}, + [1181] = {.lex_state = 0, .external_lex_state = 6}, + [1182] = {.lex_state = 51}, + [1183] = {.lex_state = 0}, + [1184] = {.lex_state = 0}, + [1185] = {.lex_state = 0}, + [1186] = {.lex_state = 0}, [1187] = {.lex_state = 0}, [1188] = {.lex_state = 51}, - [1189] = {.lex_state = 0}, - [1190] = {.lex_state = 0}, + [1189] = {.lex_state = 51}, + [1190] = {.lex_state = 51}, [1191] = {.lex_state = 0, .external_lex_state = 6}, [1192] = {.lex_state = 51}, [1193] = {.lex_state = 51}, - [1194] = {.lex_state = 51}, - [1195] = {.lex_state = 51}, - [1196] = {.lex_state = 14}, - [1197] = {.lex_state = 0, .external_lex_state = 6}, - [1198] = {.lex_state = 0}, - [1199] = {.lex_state = 0, .external_lex_state = 6}, - [1200] = {.lex_state = 51}, - [1201] = {.lex_state = 16}, - [1202] = {.lex_state = 0, .external_lex_state = 6}, + [1194] = {.lex_state = 0}, + [1195] = {.lex_state = 0}, + [1196] = {.lex_state = 0}, + [1197] = {.lex_state = 51}, + [1198] = {.lex_state = 51}, + [1199] = {.lex_state = 0}, + [1200] = {.lex_state = 0}, + [1201] = {.lex_state = 51}, + [1202] = {.lex_state = 0}, [1203] = {.lex_state = 0}, - [1204] = {.lex_state = 51}, - [1205] = {.lex_state = 51}, + [1204] = {.lex_state = 0}, + [1205] = {.lex_state = 0}, [1206] = {.lex_state = 0}, - [1207] = {.lex_state = 51}, + [1207] = {.lex_state = 0}, [1208] = {.lex_state = 51}, [1209] = {.lex_state = 51}, - [1210] = {.lex_state = 51}, + [1210] = {.lex_state = 0, .external_lex_state = 6}, [1211] = {.lex_state = 0}, [1212] = {.lex_state = 0}, - [1213] = {.lex_state = 0, .external_lex_state = 6}, - [1214] = {.lex_state = 0}, - [1215] = {.lex_state = 14}, - [1216] = {.lex_state = 16}, - [1217] = {.lex_state = 18, .external_lex_state = 11}, - [1218] = {.lex_state = 18, .external_lex_state = 11}, - [1219] = {.lex_state = 16, .external_lex_state = 6}, - [1220] = {.lex_state = 51}, + [1213] = {.lex_state = 16}, + [1214] = {.lex_state = 51}, + [1215] = {.lex_state = 0}, + [1216] = {.lex_state = 0}, + [1217] = {.lex_state = 0}, + [1218] = {.lex_state = 0}, + [1219] = {.lex_state = 0, .external_lex_state = 6}, + [1220] = {.lex_state = 0, .external_lex_state = 6}, [1221] = {.lex_state = 14}, - [1222] = {.lex_state = 51}, - [1223] = {.lex_state = 18, .external_lex_state = 11}, - [1224] = {.lex_state = 0, .external_lex_state = 6}, - [1225] = {.lex_state = 0}, - [1226] = {.lex_state = 0, .external_lex_state = 6}, - [1227] = {.lex_state = 0, .external_lex_state = 6}, - [1228] = {.lex_state = 51}, - [1229] = {.lex_state = 51}, - [1230] = {.lex_state = 51}, + [1222] = {.lex_state = 0}, + [1223] = {.lex_state = 0, .external_lex_state = 6}, + [1224] = {.lex_state = 0}, + [1225] = {.lex_state = 0, .external_lex_state = 6}, + [1226] = {.lex_state = 0}, + [1227] = {.lex_state = 0}, + [1228] = {.lex_state = 0}, + [1229] = {.lex_state = 0}, + [1230] = {.lex_state = 0}, [1231] = {.lex_state = 51}, - [1232] = {.lex_state = 51}, - [1233] = {.lex_state = 16, .external_lex_state = 6}, - [1234] = {.lex_state = 16, .external_lex_state = 6}, - [1235] = {.lex_state = 51}, - [1236] = {.lex_state = 51}, - [1237] = {.lex_state = 51}, + [1232] = {.lex_state = 0}, + [1233] = {.lex_state = 51}, + [1234] = {.lex_state = 0}, + [1235] = {.lex_state = 0, .external_lex_state = 6}, + [1236] = {.lex_state = 0}, + [1237] = {.lex_state = 14}, [1238] = {.lex_state = 0}, - [1239] = {.lex_state = 51}, + [1239] = {.lex_state = 0, .external_lex_state = 6}, [1240] = {.lex_state = 51}, - [1241] = {.lex_state = 16}, - [1242] = {.lex_state = 51}, + [1241] = {.lex_state = 0, .external_lex_state = 6}, + [1242] = {.lex_state = 16, .external_lex_state = 6}, [1243] = {.lex_state = 51}, [1244] = {.lex_state = 51}, - [1245] = {.lex_state = 18, .external_lex_state = 11}, + [1245] = {.lex_state = 16, .external_lex_state = 6}, [1246] = {.lex_state = 51}, - [1247] = {.lex_state = 51}, - [1248] = {.lex_state = 0}, + [1247] = {.lex_state = 0, .external_lex_state = 6}, + [1248] = {.lex_state = 18, .external_lex_state = 11}, [1249] = {.lex_state = 51}, - [1250] = {.lex_state = 0, .external_lex_state = 6}, - [1251] = {.lex_state = 14}, + [1250] = {.lex_state = 51}, + [1251] = {.lex_state = 16}, [1252] = {.lex_state = 18, .external_lex_state = 11}, - [1253] = {.lex_state = 18, .external_lex_state = 11}, + [1253] = {.lex_state = 51}, [1254] = {.lex_state = 51}, [1255] = {.lex_state = 0, .external_lex_state = 6}, - [1256] = {.lex_state = 51}, + [1256] = {.lex_state = 16}, [1257] = {.lex_state = 0}, - [1258] = {.lex_state = 0, .external_lex_state = 6}, - [1259] = {.lex_state = 0}, - [1260] = {.lex_state = 0, .external_lex_state = 6}, - [1261] = {.lex_state = 0}, - [1262] = {.lex_state = 0}, + [1258] = {.lex_state = 0}, + [1259] = {.lex_state = 18, .external_lex_state = 11}, + [1260] = {.lex_state = 18, .external_lex_state = 11}, + [1261] = {.lex_state = 51}, + [1262] = {.lex_state = 16, .external_lex_state = 6}, [1263] = {.lex_state = 51}, - [1264] = {.lex_state = 0}, - [1265] = {.lex_state = 14}, - [1266] = {.lex_state = 0}, + [1264] = {.lex_state = 51}, + [1265] = {.lex_state = 51}, + [1266] = {.lex_state = 51}, [1267] = {.lex_state = 51}, [1268] = {.lex_state = 0}, - [1269] = {.lex_state = 0, .external_lex_state = 6}, - [1270] = {.lex_state = 0}, + [1269] = {.lex_state = 16}, + [1270] = {.lex_state = 14}, [1271] = {.lex_state = 0, .external_lex_state = 6}, - [1272] = {.lex_state = 0}, - [1273] = {.lex_state = 14}, - [1274] = {.lex_state = 0}, - [1275] = {.lex_state = 0, .external_lex_state = 6}, - [1276] = {.lex_state = 0}, + [1272] = {.lex_state = 14}, + [1273] = {.lex_state = 51}, + [1274] = {.lex_state = 14}, + [1275] = {.lex_state = 18, .external_lex_state = 11}, + [1276] = {.lex_state = 51}, [1277] = {.lex_state = 51}, [1278] = {.lex_state = 0, .external_lex_state = 6}, - [1279] = {.lex_state = 0, .external_lex_state = 6}, - [1280] = {.lex_state = 0, .external_lex_state = 6}, - [1281] = {.lex_state = 51}, - [1282] = {.lex_state = 0}, - [1283] = {.lex_state = 10}, - [1284] = {.lex_state = 10}, - [1285] = {.lex_state = 0, .external_lex_state = 6}, - [1286] = {.lex_state = 0}, - [1287] = {.lex_state = 14}, - [1288] = {.lex_state = 10}, - [1289] = {.lex_state = 16, .external_lex_state = 6}, + [1279] = {.lex_state = 51}, + [1280] = {.lex_state = 51}, + [1281] = {.lex_state = 18, .external_lex_state = 11}, + [1282] = {.lex_state = 51}, + [1283] = {.lex_state = 0}, + [1284] = {.lex_state = 0, .external_lex_state = 6}, + [1285] = {.lex_state = 51}, + [1286] = {.lex_state = 0, .external_lex_state = 6}, + [1287] = {.lex_state = 10}, + [1288] = {.lex_state = 0, .external_lex_state = 6}, + [1289] = {.lex_state = 14}, [1290] = {.lex_state = 0, .external_lex_state = 6}, - [1291] = {.lex_state = 0}, - [1292] = {.lex_state = 0, .external_lex_state = 6}, - [1293] = {.lex_state = 0}, - [1294] = {.lex_state = 51}, - [1295] = {.lex_state = 51}, - [1296] = {.lex_state = 51}, + [1291] = {.lex_state = 51}, + [1292] = {.lex_state = 0}, + [1293] = {.lex_state = 16, .external_lex_state = 6}, + [1294] = {.lex_state = 0}, + [1295] = {.lex_state = 0, .external_lex_state = 6}, + [1296] = {.lex_state = 14}, [1297] = {.lex_state = 0}, [1298] = {.lex_state = 0}, [1299] = {.lex_state = 0, .external_lex_state = 6}, - [1300] = {.lex_state = 0}, - [1301] = {.lex_state = 0}, - [1302] = {.lex_state = 14}, - [1303] = {.lex_state = 0, .external_lex_state = 6}, - [1304] = {.lex_state = 0}, - [1305] = {.lex_state = 0}, - [1306] = {.lex_state = 0, .external_lex_state = 6}, - [1307] = {.lex_state = 0}, - [1308] = {.lex_state = 51}, - [1309] = {.lex_state = 0, .external_lex_state = 6}, - [1310] = {.lex_state = 14}, + [1300] = {.lex_state = 0, .external_lex_state = 6}, + [1301] = {.lex_state = 14}, + [1302] = {.lex_state = 0, .external_lex_state = 6}, + [1303] = {.lex_state = 0}, + [1304] = {.lex_state = 0, .external_lex_state = 6}, + [1305] = {.lex_state = 10}, + [1306] = {.lex_state = 0}, + [1307] = {.lex_state = 51}, + [1308] = {.lex_state = 0}, + [1309] = {.lex_state = 0}, + [1310] = {.lex_state = 0}, [1311] = {.lex_state = 0}, - [1312] = {.lex_state = 0}, - [1313] = {.lex_state = 0}, - [1314] = {.lex_state = 0}, - [1315] = {.lex_state = 0}, + [1312] = {.lex_state = 51}, + [1313] = {.lex_state = 0, .external_lex_state = 6}, + [1314] = {.lex_state = 51}, + [1315] = {.lex_state = 10}, [1316] = {.lex_state = 0, .external_lex_state = 6}, - [1317] = {.lex_state = 51, .external_lex_state = 8}, - [1318] = {.lex_state = 51, .external_lex_state = 9}, + [1317] = {.lex_state = 0}, + [1318] = {.lex_state = 0}, [1319] = {.lex_state = 0, .external_lex_state = 6}, - [1320] = {.lex_state = 0, .external_lex_state = 6}, + [1320] = {.lex_state = 0}, [1321] = {.lex_state = 0}, - [1322] = {.lex_state = 51}, - [1323] = {.lex_state = 0}, - [1324] = {.lex_state = 0, .external_lex_state = 6}, + [1322] = {.lex_state = 0, .external_lex_state = 6}, + [1323] = {.lex_state = 0, .external_lex_state = 6}, + [1324] = {.lex_state = 0}, [1325] = {.lex_state = 51}, [1326] = {.lex_state = 0, .external_lex_state = 6}, - [1327] = {.lex_state = 0}, - [1328] = {.lex_state = 0}, - [1329] = {.lex_state = 0}, - [1330] = {.lex_state = 0}, + [1327] = {.lex_state = 0, .external_lex_state = 6}, + [1328] = {.lex_state = 0, .external_lex_state = 6}, + [1329] = {.lex_state = 0, .external_lex_state = 6}, + [1330] = {.lex_state = 14}, [1331] = {.lex_state = 51}, [1332] = {.lex_state = 0, .external_lex_state = 6}, - [1333] = {.lex_state = 0, .external_lex_state = 6}, - [1334] = {.lex_state = 51}, - [1335] = {.lex_state = 0}, - [1336] = {.lex_state = 16}, - [1337] = {.lex_state = 0, .external_lex_state = 6}, - [1338] = {.lex_state = 51}, - [1339] = {.lex_state = 0}, - [1340] = {.lex_state = 0, .external_lex_state = 6}, - [1341] = {.lex_state = 51}, - [1342] = {.lex_state = 51}, - [1343] = {.lex_state = 0, .external_lex_state = 6}, - [1344] = {.lex_state = 0, .external_lex_state = 6}, - [1345] = {.lex_state = 0}, - [1346] = {.lex_state = 51}, - [1347] = {.lex_state = 51}, - [1348] = {.lex_state = 0, .external_lex_state = 6}, - [1349] = {.lex_state = 51}, + [1333] = {.lex_state = 51}, + [1334] = {.lex_state = 0}, + [1335] = {.lex_state = 0, .external_lex_state = 6}, + [1336] = {.lex_state = 0, .external_lex_state = 6}, + [1337] = {.lex_state = 0}, + [1338] = {.lex_state = 0}, + [1339] = {.lex_state = 0, .external_lex_state = 6}, + [1340] = {.lex_state = 0}, + [1341] = {.lex_state = 0}, + [1342] = {.lex_state = 0}, + [1343] = {.lex_state = 16}, + [1344] = {.lex_state = 0}, + [1345] = {.lex_state = 0, .external_lex_state = 6}, + [1346] = {.lex_state = 0, .external_lex_state = 6}, + [1347] = {.lex_state = 0}, + [1348] = {.lex_state = 51}, + [1349] = {.lex_state = 0}, [1350] = {.lex_state = 51}, - [1351] = {.lex_state = 51}, - [1352] = {.lex_state = 51}, - [1353] = {.lex_state = 0, .external_lex_state = 6}, - [1354] = {.lex_state = 0, .external_lex_state = 6}, - [1355] = {.lex_state = 0, .external_lex_state = 6}, - [1356] = {.lex_state = 0}, - [1357] = {.lex_state = 0, .external_lex_state = 6}, - [1358] = {.lex_state = 0, .external_lex_state = 6}, - [1359] = {.lex_state = 0, .external_lex_state = 6}, - [1360] = {.lex_state = 0, .external_lex_state = 6}, - [1361] = {.lex_state = 51}, - [1362] = {.lex_state = 16}, - [1363] = {.lex_state = 0}, + [1351] = {.lex_state = 0, .external_lex_state = 6}, + [1352] = {.lex_state = 16}, + [1353] = {.lex_state = 0}, + [1354] = {.lex_state = 0}, + [1355] = {.lex_state = 0}, + [1356] = {.lex_state = 14}, + [1357] = {.lex_state = 0}, + [1358] = {.lex_state = 51}, + [1359] = {.lex_state = 51}, + [1360] = {.lex_state = 0}, + [1361] = {.lex_state = 0}, + [1362] = {.lex_state = 0}, + [1363] = {.lex_state = 51}, [1364] = {.lex_state = 51}, - [1365] = {.lex_state = 0, .external_lex_state = 6}, - [1366] = {.lex_state = 0}, + [1365] = {.lex_state = 0}, + [1366] = {.lex_state = 0, .external_lex_state = 6}, [1367] = {.lex_state = 0}, [1368] = {.lex_state = 0, .external_lex_state = 6}, - [1369] = {.lex_state = 0}, - [1370] = {.lex_state = 0}, - [1371] = {.lex_state = 0}, - [1372] = {.lex_state = 0}, - [1373] = {.lex_state = 0, .external_lex_state = 6}, + [1369] = {.lex_state = 51, .external_lex_state = 9}, + [1370] = {.lex_state = 51}, + [1371] = {.lex_state = 51}, + [1372] = {.lex_state = 0, .external_lex_state = 6}, + [1373] = {.lex_state = 51, .external_lex_state = 8}, [1374] = {.lex_state = 0}, [1375] = {.lex_state = 0}, - [1376] = {.lex_state = 0}, - [1377] = {.lex_state = 0}, - [1378] = {.lex_state = 0}, - [1379] = {.lex_state = 51}, - [1380] = {.lex_state = 10}, + [1376] = {.lex_state = 51}, + [1377] = {.lex_state = 51}, + [1378] = {.lex_state = 51}, + [1379] = {.lex_state = 0}, + [1380] = {.lex_state = 0, .external_lex_state = 6}, [1381] = {.lex_state = 0}, - [1382] = {.lex_state = 0}, - [1383] = {.lex_state = 0}, + [1382] = {.lex_state = 51}, + [1383] = {.lex_state = 51}, [1384] = {.lex_state = 0}, - [1385] = {.lex_state = 51}, - [1386] = {.lex_state = 0}, + [1385] = {.lex_state = 0}, + [1386] = {.lex_state = 51}, [1387] = {.lex_state = 0}, - [1388] = {.lex_state = 0}, + [1388] = {.lex_state = 0, .external_lex_state = 6}, [1389] = {.lex_state = 0}, - [1390] = {.lex_state = 51}, - [1391] = {.lex_state = 51}, - [1392] = {.lex_state = 0}, + [1390] = {.lex_state = 0, .external_lex_state = 6}, + [1391] = {.lex_state = 0}, + [1392] = {.lex_state = 0, .external_lex_state = 6}, [1393] = {.lex_state = 0, .external_lex_state = 6}, - [1394] = {.lex_state = 51}, - [1395] = {.lex_state = 0}, + [1394] = {.lex_state = 0, .external_lex_state = 6}, + [1395] = {.lex_state = 51}, [1396] = {.lex_state = 0}, [1397] = {.lex_state = 0}, [1398] = {.lex_state = 0}, - [1399] = {.lex_state = 0}, - [1400] = {.lex_state = 0}, - [1401] = {.lex_state = 0}, - [1402] = {.lex_state = 0}, + [1399] = {.lex_state = 0, .external_lex_state = 6}, + [1400] = {.lex_state = 51}, + [1401] = {.lex_state = 0, .external_lex_state = 6}, + [1402] = {.lex_state = 0, .external_lex_state = 6}, [1403] = {.lex_state = 0}, [1404] = {.lex_state = 0, .external_lex_state = 6}, [1405] = {.lex_state = 0}, - [1406] = {.lex_state = 0, .external_lex_state = 6}, - [1407] = {.lex_state = 0}, - [1408] = {.lex_state = 0}, + [1406] = {.lex_state = 51}, + [1407] = {.lex_state = 51}, + [1408] = {.lex_state = 51}, [1409] = {.lex_state = 0}, - [1410] = {.lex_state = 0}, - [1411] = {.lex_state = 0}, + [1410] = {.lex_state = 51}, + [1411] = {.lex_state = 0, .external_lex_state = 6}, [1412] = {.lex_state = 0}, [1413] = {.lex_state = 0}, [1414] = {.lex_state = 0}, [1415] = {.lex_state = 0}, [1416] = {.lex_state = 0}, - [1417] = {.lex_state = 0}, + [1417] = {.lex_state = 51}, [1418] = {.lex_state = 0}, - [1419] = {.lex_state = 14}, - [1420] = {.lex_state = 0, .external_lex_state = 6}, - [1421] = {.lex_state = 0, .external_lex_state = 6}, - [1422] = {.lex_state = 0}, + [1419] = {.lex_state = 0}, + [1420] = {.lex_state = 0}, + [1421] = {.lex_state = 0}, + [1422] = {.lex_state = 51}, [1423] = {.lex_state = 0}, [1424] = {.lex_state = 0}, - [1425] = {.lex_state = 0}, + [1425] = {.lex_state = 0, .external_lex_state = 6}, [1426] = {.lex_state = 0}, [1427] = {.lex_state = 0}, - [1428] = {.lex_state = 0}, + [1428] = {.lex_state = 0, .external_lex_state = 6}, [1429] = {.lex_state = 0}, [1430] = {.lex_state = 0}, - [1431] = {.lex_state = 0}, + [1431] = {.lex_state = 10}, [1432] = {.lex_state = 0}, [1433] = {.lex_state = 0}, - [1434] = {.lex_state = 51}, - [1435] = {.lex_state = 0}, - [1436] = {.lex_state = 0}, - [1437] = {.lex_state = 0}, + [1434] = {.lex_state = 0}, + [1435] = {.lex_state = 14}, + [1436] = {.lex_state = 0, .external_lex_state = 6}, + [1437] = {.lex_state = 51}, [1438] = {.lex_state = 0}, [1439] = {.lex_state = 0}, [1440] = {.lex_state = 0}, [1441] = {.lex_state = 0}, - [1442] = {.lex_state = 51}, + [1442] = {.lex_state = 0, .external_lex_state = 6}, [1443] = {.lex_state = 0}, - [1444] = {.lex_state = 51}, - [1445] = {.lex_state = 51}, - [1446] = {.lex_state = 51}, - [1447] = {.lex_state = 51}, + [1444] = {.lex_state = 0}, + [1445] = {.lex_state = 0}, + [1446] = {.lex_state = 0, .external_lex_state = 6}, + [1447] = {.lex_state = 0}, [1448] = {.lex_state = 0}, [1449] = {.lex_state = 0}, [1450] = {.lex_state = 0}, - [1451] = {.lex_state = 0}, - [1452] = {.lex_state = 51}, - [1453] = {.lex_state = 51}, + [1451] = {.lex_state = 16}, + [1452] = {.lex_state = 0}, + [1453] = {.lex_state = 0}, [1454] = {.lex_state = 0}, - [1455] = {.lex_state = 10}, - [1456] = {.lex_state = 51}, - [1457] = {.lex_state = 14}, - [1458] = {.lex_state = 14}, + [1455] = {.lex_state = 0}, + [1456] = {.lex_state = 0}, + [1457] = {.lex_state = 0}, + [1458] = {.lex_state = 0}, [1459] = {.lex_state = 0}, [1460] = {.lex_state = 0}, [1461] = {.lex_state = 0}, [1462] = {.lex_state = 0}, - [1463] = {.lex_state = 0, .external_lex_state = 6}, - [1464] = {.lex_state = 51}, - [1465] = {.lex_state = 51}, + [1463] = {.lex_state = 10}, + [1464] = {.lex_state = 0}, + [1465] = {.lex_state = 0}, [1466] = {.lex_state = 0}, [1467] = {.lex_state = 0}, [1468] = {.lex_state = 0}, [1469] = {.lex_state = 0}, - [1470] = {.lex_state = 0, .external_lex_state = 6}, - [1471] = {.lex_state = 51}, + [1470] = {.lex_state = 0}, + [1471] = {.lex_state = 0}, [1472] = {.lex_state = 0}, [1473] = {.lex_state = 0}, - [1474] = {.lex_state = 0}, - [1475] = {.lex_state = 0, .external_lex_state = 6}, + [1474] = {.lex_state = 51}, + [1475] = {.lex_state = 0}, [1476] = {.lex_state = 0}, [1477] = {.lex_state = 0}, - [1478] = {.lex_state = 16}, - [1479] = {.lex_state = 51}, + [1478] = {.lex_state = 51}, + [1479] = {.lex_state = 0}, [1480] = {.lex_state = 0}, - [1481] = {.lex_state = 0}, - [1482] = {.lex_state = 10}, + [1481] = {.lex_state = 51}, + [1482] = {.lex_state = 0}, [1483] = {.lex_state = 0}, [1484] = {.lex_state = 0}, - [1485] = {.lex_state = 0}, - [1486] = {.lex_state = 0, .external_lex_state = 6}, - [1487] = {.lex_state = 0}, + [1485] = {.lex_state = 0, .external_lex_state = 6}, + [1486] = {.lex_state = 0}, + [1487] = {.lex_state = 51}, [1488] = {.lex_state = 0}, [1489] = {.lex_state = 0}, [1490] = {.lex_state = 0}, - [1491] = {.lex_state = 0}, - [1492] = {.lex_state = 0}, - [1493] = {.lex_state = 51}, - [1494] = {.lex_state = 14}, - [1495] = {.lex_state = 0}, + [1491] = {.lex_state = 51}, + [1492] = {.lex_state = 14}, + [1493] = {.lex_state = 0}, + [1494] = {.lex_state = 51}, + [1495] = {.lex_state = 51}, [1496] = {.lex_state = 0}, - [1497] = {.lex_state = 10}, + [1497] = {.lex_state = 0}, [1498] = {.lex_state = 0}, - [1499] = {.lex_state = 0}, + [1499] = {.lex_state = 10}, [1500] = {.lex_state = 0}, - [1501] = {.lex_state = 51}, - [1502] = {.lex_state = 10}, + [1501] = {.lex_state = 0}, + [1502] = {.lex_state = 14}, [1503] = {.lex_state = 0}, [1504] = {.lex_state = 0}, [1505] = {.lex_state = 0}, - [1506] = {.lex_state = 51}, - [1507] = {.lex_state = 0, .external_lex_state = 6}, - [1508] = {.lex_state = 0}, - [1509] = {.lex_state = 0}, - [1510] = {.lex_state = 0}, - [1511] = {.lex_state = 17}, - [1512] = {.lex_state = 0}, - [1513] = {.lex_state = 17}, - [1514] = {.lex_state = 0, .external_lex_state = 6}, + [1506] = {.lex_state = 0}, + [1507] = {.lex_state = 51}, + [1508] = {.lex_state = 10}, + [1509] = {.lex_state = 0, .external_lex_state = 6}, + [1510] = {.lex_state = 51}, + [1511] = {.lex_state = 0}, + [1512] = {.lex_state = 51}, + [1513] = {.lex_state = 0}, + [1514] = {.lex_state = 0}, [1515] = {.lex_state = 0}, - [1516] = {.lex_state = 0}, - [1517] = {.lex_state = 0, .external_lex_state = 6}, - [1518] = {.lex_state = 0, .external_lex_state = 6}, + [1516] = {.lex_state = 51}, + [1517] = {.lex_state = 10}, + [1518] = {.lex_state = 0}, [1519] = {.lex_state = 0}, [1520] = {.lex_state = 51}, [1521] = {.lex_state = 0}, - [1522] = {.lex_state = 0}, - [1523] = {.lex_state = 0, .external_lex_state = 6}, - [1524] = {.lex_state = 0}, - [1525] = {.lex_state = 0, .external_lex_state = 6}, + [1522] = {.lex_state = 51}, + [1523] = {.lex_state = 0}, + [1524] = {.lex_state = 51}, + [1525] = {.lex_state = 0}, [1526] = {.lex_state = 0}, - [1527] = {.lex_state = 0, .external_lex_state = 6}, - [1528] = {.lex_state = 0, .external_lex_state = 6}, - [1529] = {.lex_state = 0}, - [1530] = {.lex_state = 0, .external_lex_state = 6}, - [1531] = {.lex_state = 0, .external_lex_state = 6}, - [1532] = {.lex_state = 0, .external_lex_state = 6}, - [1533] = {.lex_state = 0, .external_lex_state = 6}, + [1527] = {.lex_state = 14}, + [1528] = {.lex_state = 0}, + [1529] = {.lex_state = 0, .external_lex_state = 6}, + [1530] = {.lex_state = 0}, + [1531] = {.lex_state = 0}, + [1532] = {.lex_state = 0}, + [1533] = {.lex_state = 0}, [1534] = {.lex_state = 0}, - [1535] = {.lex_state = 0, .external_lex_state = 6}, - [1536] = {.lex_state = 0}, - [1537] = {.lex_state = 0, .external_lex_state = 6}, - [1538] = {.lex_state = 0}, - [1539] = {.lex_state = 17}, + [1535] = {.lex_state = 0}, + [1536] = {.lex_state = 17}, + [1537] = {.lex_state = 0}, + [1538] = {.lex_state = 17}, + [1539] = {.lex_state = 0}, [1540] = {.lex_state = 0}, [1541] = {.lex_state = 17}, [1542] = {.lex_state = 0}, - [1543] = {.lex_state = 17}, - [1544] = {.lex_state = 0}, - [1545] = {.lex_state = 0}, + [1543] = {.lex_state = 16}, + [1544] = {.lex_state = 17}, + [1545] = {.lex_state = 0, .external_lex_state = 6}, [1546] = {.lex_state = 17}, - [1547] = {.lex_state = 17}, - [1548] = {.lex_state = 51}, + [1547] = {.lex_state = 51}, + [1548] = {.lex_state = 17}, [1549] = {.lex_state = 0}, - [1550] = {.lex_state = 51}, - [1551] = {.lex_state = 0, .external_lex_state = 6}, - [1552] = {.lex_state = 51}, + [1550] = {.lex_state = 17}, + [1551] = {.lex_state = 51}, + [1552] = {.lex_state = 0, .external_lex_state = 6}, [1553] = {.lex_state = 0}, - [1554] = {.lex_state = 17}, + [1554] = {.lex_state = 0, .external_lex_state = 6}, [1555] = {.lex_state = 0}, [1556] = {.lex_state = 0}, [1557] = {.lex_state = 0}, [1558] = {.lex_state = 0}, - [1559] = {.lex_state = 0}, - [1560] = {.lex_state = 0}, - [1561] = {.lex_state = 0}, - [1562] = {.lex_state = 16}, + [1559] = {.lex_state = 0, .external_lex_state = 6}, + [1560] = {.lex_state = 17}, + [1561] = {.lex_state = 0, .external_lex_state = 6}, + [1562] = {.lex_state = 0}, [1563] = {.lex_state = 0}, - [1564] = {.lex_state = 0}, - [1565] = {.lex_state = 51}, + [1564] = {.lex_state = 51}, + [1565] = {.lex_state = 0, .external_lex_state = 6}, [1566] = {.lex_state = 0}, [1567] = {.lex_state = 0}, - [1568] = {.lex_state = 0, .external_lex_state = 6}, - [1569] = {.lex_state = 0}, + [1568] = {.lex_state = 0}, + [1569] = {.lex_state = 0, .external_lex_state = 6}, [1570] = {.lex_state = 0}, - [1571] = {.lex_state = 17}, - [1572] = {.lex_state = 0, .external_lex_state = 6}, + [1571] = {.lex_state = 0, .external_lex_state = 6}, + [1572] = {.lex_state = 0}, [1573] = {.lex_state = 0}, [1574] = {.lex_state = 0}, [1575] = {.lex_state = 0}, - [1576] = {.lex_state = 0}, + [1576] = {.lex_state = 17}, [1577] = {.lex_state = 0}, - [1578] = {.lex_state = 0}, + [1578] = {.lex_state = 0, .external_lex_state = 6}, [1579] = {.lex_state = 0, .external_lex_state = 6}, - [1580] = {.lex_state = 0}, - [1581] = {.lex_state = 0}, - [1582] = {.lex_state = 17}, - [1583] = {.lex_state = 51}, - [1584] = {.lex_state = 0}, - [1585] = {.lex_state = 0}, - [1586] = {.lex_state = 0}, + [1580] = {.lex_state = 0, .external_lex_state = 6}, + [1581] = {.lex_state = 0, .external_lex_state = 6}, + [1582] = {.lex_state = 0}, + [1583] = {.lex_state = 0}, + [1584] = {.lex_state = 0, .external_lex_state = 6}, + [1585] = {.lex_state = 0, .external_lex_state = 6}, + [1586] = {.lex_state = 0, .external_lex_state = 6}, [1587] = {.lex_state = 0}, - [1588] = {.lex_state = 51}, - [1589] = {.lex_state = 51}, - [1590] = {.lex_state = 51}, - [1591] = {.lex_state = 0}, + [1588] = {.lex_state = 0}, + [1589] = {.lex_state = 0, .external_lex_state = 6}, + [1590] = {.lex_state = 0}, + [1591] = {.lex_state = 0, .external_lex_state = 6}, [1592] = {.lex_state = 0}, - [1593] = {.lex_state = 51}, - [1594] = {.lex_state = 0}, + [1593] = {.lex_state = 0}, + [1594] = {.lex_state = 51}, [1595] = {.lex_state = 0}, - [1596] = {.lex_state = 0}, - [1597] = {.lex_state = 51}, - [1598] = {.lex_state = 51}, + [1596] = {.lex_state = 0, .external_lex_state = 6}, + [1597] = {.lex_state = 0}, + [1598] = {.lex_state = 0}, [1599] = {.lex_state = 0}, [1600] = {.lex_state = 0}, - [1601] = {.lex_state = 51}, + [1601] = {.lex_state = 0}, [1602] = {.lex_state = 0}, - [1603] = {.lex_state = 51}, - [1604] = {.lex_state = 51}, - [1605] = {.lex_state = 0}, + [1603] = {.lex_state = 0, .external_lex_state = 6}, + [1604] = {.lex_state = 0}, + [1605] = {.lex_state = 0, .external_lex_state = 6}, [1606] = {.lex_state = 51}, - [1607] = {.lex_state = 51}, - [1608] = {.lex_state = 51}, - [1609] = {.lex_state = 51}, - [1610] = {.lex_state = 51}, + [1607] = {.lex_state = 0}, + [1608] = {.lex_state = 0, .external_lex_state = 6}, + [1609] = {.lex_state = 0}, + [1610] = {.lex_state = 0, .external_lex_state = 6}, [1611] = {.lex_state = 0}, - [1612] = {.lex_state = 0}, - [1613] = {.lex_state = 0}, + [1612] = {.lex_state = 17}, + [1613] = {.lex_state = 51}, [1614] = {.lex_state = 0}, [1615] = {.lex_state = 0}, - [1616] = {.lex_state = 51}, - [1617] = {.lex_state = 51}, - [1618] = {.lex_state = 51}, + [1616] = {.lex_state = 0}, + [1617] = {.lex_state = 0}, + [1618] = {.lex_state = 0}, [1619] = {.lex_state = 0}, - [1620] = {.lex_state = 51}, - [1621] = {.lex_state = 51}, + [1620] = {.lex_state = 0}, + [1621] = {.lex_state = 0}, [1622] = {.lex_state = 51}, [1623] = {.lex_state = 0}, [1624] = {.lex_state = 0}, - [1625] = {.lex_state = 51}, - [1626] = {.lex_state = 0}, + [1625] = {.lex_state = 0}, + [1626] = {.lex_state = 51}, [1627] = {.lex_state = 0}, [1628] = {.lex_state = 0}, - [1629] = {.lex_state = 0}, + [1629] = {.lex_state = 51}, [1630] = {.lex_state = 51}, [1631] = {.lex_state = 0}, - [1632] = {.lex_state = 0}, + [1632] = {.lex_state = 51}, [1633] = {.lex_state = 0}, - [1634] = {.lex_state = 0}, - [1635] = {.lex_state = 0}, - [1636] = {.lex_state = 0}, + [1634] = {.lex_state = 51}, + [1635] = {.lex_state = 51}, + [1636] = {.lex_state = 51}, [1637] = {.lex_state = 51}, [1638] = {.lex_state = 0}, [1639] = {.lex_state = 51}, - [1640] = {.lex_state = 51}, + [1640] = {.lex_state = 0}, [1641] = {.lex_state = 0}, [1642] = {.lex_state = 51}, - [1643] = {.lex_state = 0}, - [1644] = {.lex_state = 0}, - [1645] = {.lex_state = 0}, - [1646] = {.lex_state = 51}, - [1647] = {.lex_state = 0}, - [1648] = {.lex_state = 0}, - [1649] = {.lex_state = 0}, + [1643] = {.lex_state = 51}, + [1644] = {.lex_state = 51}, + [1645] = {.lex_state = 51}, + [1646] = {.lex_state = 0}, + [1647] = {.lex_state = 51}, + [1648] = {.lex_state = 51}, + [1649] = {.lex_state = 51}, [1650] = {.lex_state = 0}, [1651] = {.lex_state = 0}, - [1652] = {.lex_state = 0}, + [1652] = {.lex_state = 51}, [1653] = {.lex_state = 0}, [1654] = {.lex_state = 0}, [1655] = {.lex_state = 0}, @@ -8063,39 +8129,39 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [1658] = {.lex_state = 0}, [1659] = {.lex_state = 0}, [1660] = {.lex_state = 0}, - [1661] = {.lex_state = 0}, + [1661] = {.lex_state = 51}, [1662] = {.lex_state = 0}, - [1663] = {.lex_state = 0}, + [1663] = {.lex_state = 51}, [1664] = {.lex_state = 0}, [1665] = {.lex_state = 0}, - [1666] = {.lex_state = 51}, - [1667] = {.lex_state = 0}, - [1668] = {.lex_state = 51}, + [1666] = {.lex_state = 0}, + [1667] = {.lex_state = 51}, + [1668] = {.lex_state = 0}, [1669] = {.lex_state = 0}, - [1670] = {.lex_state = 51}, + [1670] = {.lex_state = 0}, [1671] = {.lex_state = 0}, [1672] = {.lex_state = 0}, - [1673] = {.lex_state = 51}, + [1673] = {.lex_state = 0}, [1674] = {.lex_state = 0}, [1675] = {.lex_state = 0}, - [1676] = {.lex_state = 51}, + [1676] = {.lex_state = 0}, [1677] = {.lex_state = 0}, [1678] = {.lex_state = 0}, [1679] = {.lex_state = 0}, [1680] = {.lex_state = 0}, [1681] = {.lex_state = 0}, - [1682] = {.lex_state = 51}, - [1683] = {.lex_state = 0}, + [1682] = {.lex_state = 0}, + [1683] = {.lex_state = 51}, [1684] = {.lex_state = 0}, [1685] = {.lex_state = 0}, [1686] = {.lex_state = 0}, - [1687] = {.lex_state = 0}, - [1688] = {.lex_state = 51}, + [1687] = {.lex_state = 51}, + [1688] = {.lex_state = 0}, [1689] = {.lex_state = 51}, - [1690] = {.lex_state = 51}, - [1691] = {.lex_state = 0}, + [1690] = {.lex_state = 0}, + [1691] = {.lex_state = 51}, [1692] = {.lex_state = 0}, - [1693] = {.lex_state = 0}, + [1693] = {.lex_state = 51}, [1694] = {.lex_state = 0}, [1695] = {.lex_state = 0}, [1696] = {.lex_state = 0}, @@ -8103,34 +8169,67 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [1698] = {.lex_state = 0}, [1699] = {.lex_state = 0}, [1700] = {.lex_state = 0}, - [1701] = {.lex_state = 0}, + [1701] = {.lex_state = 51}, [1702] = {.lex_state = 0}, [1703] = {.lex_state = 0}, - [1704] = {.lex_state = 0}, + [1704] = {.lex_state = 51}, [1705] = {.lex_state = 0}, - [1706] = {.lex_state = 0}, + [1706] = {.lex_state = 51}, [1707] = {.lex_state = 0}, [1708] = {.lex_state = 0}, [1709] = {.lex_state = 0}, - [1710] = {.lex_state = 51}, - [1711] = {.lex_state = 51}, - [1712] = {.lex_state = 51}, + [1710] = {.lex_state = 0}, + [1711] = {.lex_state = 0}, + [1712] = {.lex_state = 0}, [1713] = {.lex_state = 0}, [1714] = {.lex_state = 0}, - [1715] = {.lex_state = 0}, - [1716] = {.lex_state = 0}, + [1715] = {.lex_state = 51}, + [1716] = {.lex_state = 51}, [1717] = {.lex_state = 0}, [1718] = {.lex_state = 0}, - [1719] = {.lex_state = 0}, - [1720] = {.lex_state = 0}, + [1719] = {.lex_state = 51}, + [1720] = {.lex_state = 51}, [1721] = {.lex_state = 0}, - [1722] = {.lex_state = 51}, + [1722] = {.lex_state = 0}, + [1723] = {.lex_state = 0}, + [1724] = {.lex_state = 0}, + [1725] = {.lex_state = 51}, + [1726] = {.lex_state = 51}, + [1727] = {.lex_state = 0}, + [1728] = {.lex_state = 0}, + [1729] = {.lex_state = 51}, + [1730] = {.lex_state = 0}, + [1731] = {.lex_state = 0}, + [1732] = {.lex_state = 51}, + [1733] = {.lex_state = 0}, + [1734] = {.lex_state = 0}, + [1735] = {.lex_state = 0}, + [1736] = {.lex_state = 0}, + [1737] = {.lex_state = 0}, + [1738] = {.lex_state = 0}, + [1739] = {.lex_state = 0}, + [1740] = {.lex_state = 0}, + [1741] = {.lex_state = 0}, + [1742] = {.lex_state = 0}, + [1743] = {.lex_state = 0}, + [1744] = {.lex_state = 0}, + [1745] = {.lex_state = 0}, + [1746] = {.lex_state = 0}, + [1747] = {.lex_state = 51}, + [1748] = {.lex_state = 0}, + [1749] = {.lex_state = 0}, + [1750] = {.lex_state = 0}, + [1751] = {.lex_state = 0}, + [1752] = {.lex_state = 51}, + [1753] = {.lex_state = 51}, + [1754] = {.lex_state = 0}, }; static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [STATE(0)] = { [ts_builtin_sym_end] = ACTIONS(1), [sym_identifier] = ACTIONS(1), + [anon_sym_lazy] = ACTIONS(1), [anon_sym_import] = ACTIONS(1), [anon_sym_DOT] = ACTIONS(1), [anon_sym_from] = ACTIONS(1), @@ -8236,22 +8335,7042 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__template_string_start] = ACTIONS(1), }, [STATE(1)] = { - [sym_module] = STATE(1655), + [sym_module] = STATE(1708), + [sym__statement] = STATE(64), + [sym__simple_statements] = STATE(64), + [sym_import_statement] = STATE(1346), + [sym_future_import_statement] = STATE(1346), + [sym_import_from_statement] = STATE(1346), + [sym_print_statement] = STATE(1346), + [sym_assert_statement] = STATE(1346), + [sym_expression_statement] = STATE(1346), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1346), + [sym_delete_statement] = STATE(1346), + [sym_raise_statement] = STATE(1346), + [sym_pass_statement] = STATE(1346), + [sym_break_statement] = STATE(1346), + [sym_continue_statement] = STATE(1346), + [sym_if_statement] = STATE(64), + [sym_for_statement] = STATE(64), + [sym_while_statement] = STATE(64), + [sym_try_statement] = STATE(64), + [sym_with_statement] = STATE(64), + [sym_match_statement] = STATE(64), + [sym_function_definition] = STATE(64), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1346), + [sym_nonlocal_statement] = STATE(1346), + [sym_exec_statement] = STATE(1346), + [sym_type_alias_statement] = STATE(1346), + [sym_class_definition] = STATE(64), + [sym_decorated_definition] = STATE(64), + [sym_decorator] = STATE(1172), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(64), + [aux_sym_decorated_definition_repeat1] = STATE(1172), + [ts_builtin_sym_end] = ACTIONS(5), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(35), + [anon_sym_async] = ACTIONS(37), + [anon_sym_for] = ACTIONS(39), + [anon_sym_while] = ACTIONS(41), + [anon_sym_try] = ACTIONS(43), + [anon_sym_with] = ACTIONS(45), + [anon_sym_match] = ACTIONS(47), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(57), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(67), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(2)] = { + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(491), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(1146), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(105), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(3)] = { + [sym__statement] = STATE(60), + [sym__simple_statements] = STATE(60), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(60), + [sym_for_statement] = STATE(60), + [sym_while_statement] = STATE(60), + [sym_try_statement] = STATE(60), + [sym_with_statement] = STATE(60), + [sym_match_statement] = STATE(60), + [sym_function_definition] = STATE(60), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(60), + [sym_decorated_definition] = STATE(60), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(1195), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(60), + [aux_sym_decorated_definition_repeat1] = STATE(1146), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(107), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(4)] = { + [sym__statement] = STATE(61), + [sym__simple_statements] = STATE(61), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(61), + [sym_for_statement] = STATE(61), + [sym_while_statement] = STATE(61), + [sym_try_statement] = STATE(61), + [sym_with_statement] = STATE(61), + [sym_match_statement] = STATE(61), + [sym_function_definition] = STATE(61), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(61), + [sym_decorated_definition] = STATE(61), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(329), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(61), + [aux_sym_decorated_definition_repeat1] = STATE(1146), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(109), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(5)] = { + [sym__statement] = STATE(61), + [sym__simple_statements] = STATE(61), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(61), + [sym_for_statement] = STATE(61), + [sym_while_statement] = STATE(61), + [sym_try_statement] = STATE(61), + [sym_with_statement] = STATE(61), + [sym_match_statement] = STATE(61), + [sym_function_definition] = STATE(61), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(61), + [sym_decorated_definition] = STATE(61), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(478), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(61), + [aux_sym_decorated_definition_repeat1] = STATE(1146), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(109), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(6)] = { + [sym__statement] = STATE(61), + [sym__simple_statements] = STATE(61), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(61), + [sym_for_statement] = STATE(61), + [sym_while_statement] = STATE(61), + [sym_try_statement] = STATE(61), + [sym_with_statement] = STATE(61), + [sym_match_statement] = STATE(61), + [sym_function_definition] = STATE(61), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(61), + [sym_decorated_definition] = STATE(61), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(604), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(61), + [aux_sym_decorated_definition_repeat1] = STATE(1146), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(109), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(7)] = { + [sym__statement] = STATE(61), + [sym__simple_statements] = STATE(61), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(61), + [sym_for_statement] = STATE(61), + [sym_while_statement] = STATE(61), + [sym_try_statement] = STATE(61), + [sym_with_statement] = STATE(61), + [sym_match_statement] = STATE(61), + [sym_function_definition] = STATE(61), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(61), + [sym_decorated_definition] = STATE(61), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(615), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(61), + [aux_sym_decorated_definition_repeat1] = STATE(1146), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(109), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(8)] = { + [sym__statement] = STATE(61), + [sym__simple_statements] = STATE(61), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(61), + [sym_for_statement] = STATE(61), + [sym_while_statement] = STATE(61), + [sym_try_statement] = STATE(61), + [sym_with_statement] = STATE(61), + [sym_match_statement] = STATE(61), + [sym_function_definition] = STATE(61), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(61), + [sym_decorated_definition] = STATE(61), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(525), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(61), + [aux_sym_decorated_definition_repeat1] = STATE(1146), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(109), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(9)] = { + [sym__statement] = STATE(61), + [sym__simple_statements] = STATE(61), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(61), + [sym_for_statement] = STATE(61), + [sym_while_statement] = STATE(61), + [sym_try_statement] = STATE(61), + [sym_with_statement] = STATE(61), + [sym_match_statement] = STATE(61), + [sym_function_definition] = STATE(61), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(61), + [sym_decorated_definition] = STATE(61), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(541), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(61), + [aux_sym_decorated_definition_repeat1] = STATE(1146), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(109), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(10)] = { + [sym__statement] = STATE(61), + [sym__simple_statements] = STATE(61), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(61), + [sym_for_statement] = STATE(61), + [sym_while_statement] = STATE(61), + [sym_try_statement] = STATE(61), + [sym_with_statement] = STATE(61), + [sym_match_statement] = STATE(61), + [sym_function_definition] = STATE(61), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(61), + [sym_decorated_definition] = STATE(61), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(547), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(61), + [aux_sym_decorated_definition_repeat1] = STATE(1146), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(109), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(11)] = { + [sym__statement] = STATE(61), + [sym__simple_statements] = STATE(61), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(61), + [sym_for_statement] = STATE(61), + [sym_while_statement] = STATE(61), + [sym_try_statement] = STATE(61), + [sym_with_statement] = STATE(61), + [sym_match_statement] = STATE(61), + [sym_function_definition] = STATE(61), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(61), + [sym_decorated_definition] = STATE(61), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(550), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(61), + [aux_sym_decorated_definition_repeat1] = STATE(1146), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(109), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(12)] = { + [sym__statement] = STATE(61), + [sym__simple_statements] = STATE(61), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(61), + [sym_for_statement] = STATE(61), + [sym_while_statement] = STATE(61), + [sym_try_statement] = STATE(61), + [sym_with_statement] = STATE(61), + [sym_match_statement] = STATE(61), + [sym_function_definition] = STATE(61), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(61), + [sym_decorated_definition] = STATE(61), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(582), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(61), + [aux_sym_decorated_definition_repeat1] = STATE(1146), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(109), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(13)] = { + [sym__statement] = STATE(61), + [sym__simple_statements] = STATE(61), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(61), + [sym_for_statement] = STATE(61), + [sym_while_statement] = STATE(61), + [sym_try_statement] = STATE(61), + [sym_with_statement] = STATE(61), + [sym_match_statement] = STATE(61), + [sym_function_definition] = STATE(61), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(61), + [sym_decorated_definition] = STATE(61), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(490), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(61), + [aux_sym_decorated_definition_repeat1] = STATE(1146), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(109), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(14)] = { + [sym__statement] = STATE(61), + [sym__simple_statements] = STATE(61), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(61), + [sym_for_statement] = STATE(61), + [sym_while_statement] = STATE(61), + [sym_try_statement] = STATE(61), + [sym_with_statement] = STATE(61), + [sym_match_statement] = STATE(61), + [sym_function_definition] = STATE(61), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(61), + [sym_decorated_definition] = STATE(61), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(447), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(61), + [aux_sym_decorated_definition_repeat1] = STATE(1146), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(109), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(15)] = { + [sym__statement] = STATE(61), + [sym__simple_statements] = STATE(61), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(61), + [sym_for_statement] = STATE(61), + [sym_while_statement] = STATE(61), + [sym_try_statement] = STATE(61), + [sym_with_statement] = STATE(61), + [sym_match_statement] = STATE(61), + [sym_function_definition] = STATE(61), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(61), + [sym_decorated_definition] = STATE(61), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(609), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(61), + [aux_sym_decorated_definition_repeat1] = STATE(1146), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(109), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(16)] = { + [sym__statement] = STATE(61), + [sym__simple_statements] = STATE(61), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(61), + [sym_for_statement] = STATE(61), + [sym_while_statement] = STATE(61), + [sym_try_statement] = STATE(61), + [sym_with_statement] = STATE(61), + [sym_match_statement] = STATE(61), + [sym_function_definition] = STATE(61), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(61), + [sym_decorated_definition] = STATE(61), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(601), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(61), + [aux_sym_decorated_definition_repeat1] = STATE(1146), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(109), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(17)] = { + [sym__statement] = STATE(61), + [sym__simple_statements] = STATE(61), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(61), + [sym_for_statement] = STATE(61), + [sym_while_statement] = STATE(61), + [sym_try_statement] = STATE(61), + [sym_with_statement] = STATE(61), + [sym_match_statement] = STATE(61), + [sym_function_definition] = STATE(61), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(61), + [sym_decorated_definition] = STATE(61), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(612), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(61), + [aux_sym_decorated_definition_repeat1] = STATE(1146), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(109), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(18)] = { + [sym__statement] = STATE(61), + [sym__simple_statements] = STATE(61), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(61), + [sym_for_statement] = STATE(61), + [sym_while_statement] = STATE(61), + [sym_try_statement] = STATE(61), + [sym_with_statement] = STATE(61), + [sym_match_statement] = STATE(61), + [sym_function_definition] = STATE(61), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(61), + [sym_decorated_definition] = STATE(61), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(512), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(61), + [aux_sym_decorated_definition_repeat1] = STATE(1146), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(109), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(19)] = { + [sym__statement] = STATE(61), + [sym__simple_statements] = STATE(61), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(61), + [sym_for_statement] = STATE(61), + [sym_while_statement] = STATE(61), + [sym_try_statement] = STATE(61), + [sym_with_statement] = STATE(61), + [sym_match_statement] = STATE(61), + [sym_function_definition] = STATE(61), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(61), + [sym_decorated_definition] = STATE(61), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(468), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(61), + [aux_sym_decorated_definition_repeat1] = STATE(1146), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(109), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(20)] = { + [sym__statement] = STATE(61), + [sym__simple_statements] = STATE(61), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(61), + [sym_for_statement] = STATE(61), + [sym_while_statement] = STATE(61), + [sym_try_statement] = STATE(61), + [sym_with_statement] = STATE(61), + [sym_match_statement] = STATE(61), + [sym_function_definition] = STATE(61), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(61), + [sym_decorated_definition] = STATE(61), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(542), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(61), + [aux_sym_decorated_definition_repeat1] = STATE(1146), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(109), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(21)] = { + [sym__statement] = STATE(61), + [sym__simple_statements] = STATE(61), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(61), + [sym_for_statement] = STATE(61), + [sym_while_statement] = STATE(61), + [sym_try_statement] = STATE(61), + [sym_with_statement] = STATE(61), + [sym_match_statement] = STATE(61), + [sym_function_definition] = STATE(61), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(61), + [sym_decorated_definition] = STATE(61), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(455), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(61), + [aux_sym_decorated_definition_repeat1] = STATE(1146), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(109), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(22)] = { + [sym__statement] = STATE(61), + [sym__simple_statements] = STATE(61), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(61), + [sym_for_statement] = STATE(61), + [sym_while_statement] = STATE(61), + [sym_try_statement] = STATE(61), + [sym_with_statement] = STATE(61), + [sym_match_statement] = STATE(61), + [sym_function_definition] = STATE(61), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(61), + [sym_decorated_definition] = STATE(61), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(496), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(61), + [aux_sym_decorated_definition_repeat1] = STATE(1146), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(109), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(23)] = { + [sym__statement] = STATE(61), + [sym__simple_statements] = STATE(61), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(61), + [sym_for_statement] = STATE(61), + [sym_while_statement] = STATE(61), + [sym_try_statement] = STATE(61), + [sym_with_statement] = STATE(61), + [sym_match_statement] = STATE(61), + [sym_function_definition] = STATE(61), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(61), + [sym_decorated_definition] = STATE(61), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(606), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(61), + [aux_sym_decorated_definition_repeat1] = STATE(1146), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(109), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(24)] = { + [sym__statement] = STATE(61), + [sym__simple_statements] = STATE(61), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(61), + [sym_for_statement] = STATE(61), + [sym_while_statement] = STATE(61), + [sym_try_statement] = STATE(61), + [sym_with_statement] = STATE(61), + [sym_match_statement] = STATE(61), + [sym_function_definition] = STATE(61), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(61), + [sym_decorated_definition] = STATE(61), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(472), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(61), + [aux_sym_decorated_definition_repeat1] = STATE(1146), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(109), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(25)] = { + [sym__statement] = STATE(61), + [sym__simple_statements] = STATE(61), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(61), + [sym_for_statement] = STATE(61), + [sym_while_statement] = STATE(61), + [sym_try_statement] = STATE(61), + [sym_with_statement] = STATE(61), + [sym_match_statement] = STATE(61), + [sym_function_definition] = STATE(61), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(61), + [sym_decorated_definition] = STATE(61), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(517), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(61), + [aux_sym_decorated_definition_repeat1] = STATE(1146), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(109), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(26)] = { + [sym__statement] = STATE(61), + [sym__simple_statements] = STATE(61), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(61), + [sym_for_statement] = STATE(61), + [sym_while_statement] = STATE(61), + [sym_try_statement] = STATE(61), + [sym_with_statement] = STATE(61), + [sym_match_statement] = STATE(61), + [sym_function_definition] = STATE(61), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(61), + [sym_decorated_definition] = STATE(61), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(442), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(61), + [aux_sym_decorated_definition_repeat1] = STATE(1146), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(109), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(27)] = { + [sym__statement] = STATE(61), + [sym__simple_statements] = STATE(61), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(61), + [sym_for_statement] = STATE(61), + [sym_while_statement] = STATE(61), + [sym_try_statement] = STATE(61), + [sym_with_statement] = STATE(61), + [sym_match_statement] = STATE(61), + [sym_function_definition] = STATE(61), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(61), + [sym_decorated_definition] = STATE(61), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(508), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(61), + [aux_sym_decorated_definition_repeat1] = STATE(1146), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(109), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(28)] = { + [sym__statement] = STATE(61), + [sym__simple_statements] = STATE(61), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(61), + [sym_for_statement] = STATE(61), + [sym_while_statement] = STATE(61), + [sym_try_statement] = STATE(61), + [sym_with_statement] = STATE(61), + [sym_match_statement] = STATE(61), + [sym_function_definition] = STATE(61), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(61), + [sym_decorated_definition] = STATE(61), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(522), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(61), + [aux_sym_decorated_definition_repeat1] = STATE(1146), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(109), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(29)] = { + [sym__statement] = STATE(61), + [sym__simple_statements] = STATE(61), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(61), + [sym_for_statement] = STATE(61), + [sym_while_statement] = STATE(61), + [sym_try_statement] = STATE(61), + [sym_with_statement] = STATE(61), + [sym_match_statement] = STATE(61), + [sym_function_definition] = STATE(61), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(61), + [sym_decorated_definition] = STATE(61), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(523), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(61), + [aux_sym_decorated_definition_repeat1] = STATE(1146), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(109), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(30)] = { + [sym__statement] = STATE(61), + [sym__simple_statements] = STATE(61), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(61), + [sym_for_statement] = STATE(61), + [sym_while_statement] = STATE(61), + [sym_try_statement] = STATE(61), + [sym_with_statement] = STATE(61), + [sym_match_statement] = STATE(61), + [sym_function_definition] = STATE(61), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(61), + [sym_decorated_definition] = STATE(61), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(450), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(61), + [aux_sym_decorated_definition_repeat1] = STATE(1146), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(109), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(31)] = { + [sym__statement] = STATE(61), + [sym__simple_statements] = STATE(61), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(61), + [sym_for_statement] = STATE(61), + [sym_while_statement] = STATE(61), + [sym_try_statement] = STATE(61), + [sym_with_statement] = STATE(61), + [sym_match_statement] = STATE(61), + [sym_function_definition] = STATE(61), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(61), + [sym_decorated_definition] = STATE(61), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(451), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(61), + [aux_sym_decorated_definition_repeat1] = STATE(1146), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(109), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(32)] = { + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(322), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(1146), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(105), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(33)] = { + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(559), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(1146), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(105), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(34)] = { + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(567), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(1146), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(105), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(35)] = { + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(573), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(1146), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(105), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(36)] = { + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(575), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(1146), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(105), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(37)] = { + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(577), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(1146), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(105), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(38)] = { + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(579), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(1146), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(105), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(39)] = { + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(486), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(1146), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(105), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(40)] = { + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(454), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(1146), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(105), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(41)] = { + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(583), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(1146), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(105), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(42)] = { + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(586), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(1146), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(105), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(43)] = { + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(587), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(1146), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(105), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(44)] = { + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(502), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(1146), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(105), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(45)] = { + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(488), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(1146), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(105), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(46)] = { + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(591), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(1146), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(105), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(47)] = { + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(459), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(1146), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(105), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(48)] = { + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(504), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(1146), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(105), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(49)] = { + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(595), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(1146), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(105), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(50)] = { + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(489), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(1146), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(105), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(51)] = { + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(598), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(1146), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(105), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(52)] = { + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(460), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(1146), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(105), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(53)] = { + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(507), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(1146), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(105), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(54)] = { + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(602), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(1146), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(105), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(55)] = { + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(603), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(1146), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(105), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(56)] = { + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(464), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(1146), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(105), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(57)] = { + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(439), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(1146), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(105), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(58)] = { + [sym__statement] = STATE(60), + [sym__simple_statements] = STATE(60), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(60), + [sym_for_statement] = STATE(60), + [sym_while_statement] = STATE(60), + [sym_try_statement] = STATE(60), + [sym_with_statement] = STATE(60), + [sym_match_statement] = STATE(60), + [sym_function_definition] = STATE(60), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(60), + [sym_decorated_definition] = STATE(60), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(1215), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(60), + [aux_sym_decorated_definition_repeat1] = STATE(1146), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(107), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(59)] = { + [sym__statement] = STATE(63), + [sym__simple_statements] = STATE(63), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(63), + [sym_for_statement] = STATE(63), + [sym_while_statement] = STATE(63), + [sym_try_statement] = STATE(63), + [sym_with_statement] = STATE(63), + [sym_match_statement] = STATE(63), + [sym_function_definition] = STATE(63), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(63), + [sym_decorated_definition] = STATE(63), + [sym_decorator] = STATE(1146), + [sym_block] = STATE(560), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(63), + [aux_sym_decorated_definition_repeat1] = STATE(1146), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__dedent] = ACTIONS(105), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(60)] = { [sym__statement] = STATE(62), [sym__simple_statements] = STATE(62), - [sym_import_statement] = STATE(1348), - [sym_future_import_statement] = STATE(1348), - [sym_import_from_statement] = STATE(1348), - [sym_print_statement] = STATE(1348), - [sym_assert_statement] = STATE(1348), - [sym_expression_statement] = STATE(1348), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1348), - [sym_delete_statement] = STATE(1348), - [sym_raise_statement] = STATE(1348), - [sym_pass_statement] = STATE(1348), - [sym_break_statement] = STATE(1348), - [sym_continue_statement] = STATE(1348), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), [sym_if_statement] = STATE(62), [sym_for_statement] = STATE(62), [sym_while_statement] = STATE(62), @@ -8259,16046 +15378,9170 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_with_statement] = STATE(62), [sym_match_statement] = STATE(62), [sym_function_definition] = STATE(62), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1348), - [sym_nonlocal_statement] = STATE(1348), - [sym_exec_statement] = STATE(1348), - [sym_type_alias_statement] = STATE(1348), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), [sym_class_definition] = STATE(62), [sym_decorated_definition] = STATE(62), - [sym_decorator] = STATE(1118), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym_decorator] = STATE(1146), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [aux_sym_module_repeat1] = STATE(62), - [aux_sym_decorated_definition_repeat1] = STATE(1118), - [ts_builtin_sym_end] = ACTIONS(5), + [aux_sym_decorated_definition_repeat1] = STATE(1146), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(33), - [anon_sym_async] = ACTIONS(35), - [anon_sym_for] = ACTIONS(37), - [anon_sym_while] = ACTIONS(39), - [anon_sym_try] = ACTIONS(41), - [anon_sym_with] = ACTIONS(43), - [anon_sym_match] = ACTIONS(45), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(55), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(65), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(2)] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(327), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(1113), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(103), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(3)] = { - [sym__statement] = STATE(61), - [sym__simple_statements] = STATE(61), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(61), - [sym_for_statement] = STATE(61), - [sym_while_statement] = STATE(61), - [sym_try_statement] = STATE(61), - [sym_with_statement] = STATE(61), - [sym_match_statement] = STATE(61), - [sym_function_definition] = STATE(61), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(61), - [sym_decorated_definition] = STATE(61), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(1181), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(61), - [aux_sym_decorated_definition_repeat1] = STATE(1113), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(105), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(4)] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(322), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(1113), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(107), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(5)] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(490), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(1113), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(107), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(6)] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(540), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(1113), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(107), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(7)] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(547), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(1113), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(107), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(8)] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(605), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(1113), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(107), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(9)] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(519), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(1113), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(107), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(10)] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(522), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(1113), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(107), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(11)] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(524), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(1113), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(107), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(12)] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(526), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(1113), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(107), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(13)] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(484), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(1113), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(107), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(14)] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(456), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(1113), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(107), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(15)] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(529), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(1113), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(107), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(16)] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(532), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(1113), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(107), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(17)] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(533), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(1113), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(107), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(18)] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(498), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(1113), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(107), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(19)] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(476), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(1113), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(107), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(20)] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(538), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(1113), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(107), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(21)] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(455), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(1113), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(107), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(22)] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(499), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(1113), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(107), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(23)] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(542), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(1113), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(107), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(24)] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(471), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(1113), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(107), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(25)] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(545), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(1113), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(107), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(26)] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(457), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(1113), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(107), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(27)] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(501), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(1113), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(107), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(28)] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(548), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(1113), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(107), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(29)] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(448), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(1113), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(107), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(30)] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(449), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(1113), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(107), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(31)] = { - [sym__statement] = STATE(61), - [sym__simple_statements] = STATE(61), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(61), - [sym_for_statement] = STATE(61), - [sym_while_statement] = STATE(61), - [sym_try_statement] = STATE(61), - [sym_with_statement] = STATE(61), - [sym_match_statement] = STATE(61), - [sym_function_definition] = STATE(61), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(61), - [sym_decorated_definition] = STATE(61), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(1173), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(61), - [aux_sym_decorated_definition_repeat1] = STATE(1113), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(105), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(32)] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(477), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(1113), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(103), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(33)] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(563), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(1113), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(103), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(34)] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(565), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(1113), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(103), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(35)] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(570), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(1113), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(103), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(36)] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(576), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(1113), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(103), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(37)] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(578), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(1113), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(103), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(38)] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(580), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(1113), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(103), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(39)] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(583), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(1113), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(103), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(40)] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(469), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(1113), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(103), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(41)] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(438), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(1113), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(103), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(42)] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(586), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(1113), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(103), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(43)] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(590), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(1113), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(103), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(44)] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(591), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(1113), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(103), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(45)] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(492), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(1113), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(103), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(46)] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(466), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(1113), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(103), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(47)] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(594), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(1113), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(103), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(48)] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(441), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(1113), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(103), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(49)] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(505), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(1113), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(103), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(50)] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(598), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(1113), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(103), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(51)] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(486), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(1113), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(103), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(52)] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(601), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(1113), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(103), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(53)] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(443), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(1113), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(103), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(54)] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(507), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(1113), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(103), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(55)] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(603), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(1113), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(103), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(56)] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(604), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(1113), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(103), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(57)] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(446), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(1113), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(103), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(58)] = { - [sym__statement] = STATE(65), - [sym__simple_statements] = STATE(65), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(65), - [sym_for_statement] = STATE(65), - [sym_while_statement] = STATE(65), - [sym_try_statement] = STATE(65), - [sym_with_statement] = STATE(65), - [sym_match_statement] = STATE(65), - [sym_function_definition] = STATE(65), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(65), - [sym_decorated_definition] = STATE(65), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(447), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(65), - [aux_sym_decorated_definition_repeat1] = STATE(1113), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(103), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(59)] = { - [sym__statement] = STATE(63), - [sym__simple_statements] = STATE(63), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(63), - [sym_for_statement] = STATE(63), - [sym_while_statement] = STATE(63), - [sym_try_statement] = STATE(63), - [sym_with_statement] = STATE(63), - [sym_match_statement] = STATE(63), - [sym_function_definition] = STATE(63), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(63), - [sym_decorated_definition] = STATE(63), - [sym_decorator] = STATE(1113), - [sym_block] = STATE(549), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(63), - [aux_sym_decorated_definition_repeat1] = STATE(1113), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), - [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(107), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), - }, - [STATE(60)] = { - [sym__statement] = STATE(60), - [sym__simple_statements] = STATE(60), - [sym_import_statement] = STATE(1348), - [sym_future_import_statement] = STATE(1348), - [sym_import_from_statement] = STATE(1348), - [sym_print_statement] = STATE(1348), - [sym_assert_statement] = STATE(1348), - [sym_expression_statement] = STATE(1348), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1348), - [sym_delete_statement] = STATE(1348), - [sym_raise_statement] = STATE(1348), - [sym_pass_statement] = STATE(1348), - [sym_break_statement] = STATE(1348), - [sym_continue_statement] = STATE(1348), - [sym_if_statement] = STATE(60), - [sym_for_statement] = STATE(60), - [sym_while_statement] = STATE(60), - [sym_try_statement] = STATE(60), - [sym_with_statement] = STATE(60), - [sym_match_statement] = STATE(60), - [sym_function_definition] = STATE(60), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1348), - [sym_nonlocal_statement] = STATE(1348), - [sym_exec_statement] = STATE(1348), - [sym_type_alias_statement] = STATE(1348), - [sym_class_definition] = STATE(60), - [sym_decorated_definition] = STATE(60), - [sym_decorator] = STATE(1118), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(60), - [aux_sym_decorated_definition_repeat1] = STATE(1118), - [ts_builtin_sym_end] = ACTIONS(109), - [sym_identifier] = ACTIONS(111), - [anon_sym_import] = ACTIONS(114), - [anon_sym_from] = ACTIONS(117), - [anon_sym_LPAREN] = ACTIONS(120), - [anon_sym_STAR] = ACTIONS(123), - [anon_sym_print] = ACTIONS(126), - [anon_sym_assert] = ACTIONS(129), - [anon_sym_return] = ACTIONS(132), - [anon_sym_del] = ACTIONS(135), - [anon_sym_raise] = ACTIONS(138), - [anon_sym_pass] = ACTIONS(141), - [anon_sym_break] = ACTIONS(144), - [anon_sym_continue] = ACTIONS(147), - [anon_sym_if] = ACTIONS(150), - [anon_sym_async] = ACTIONS(153), - [anon_sym_for] = ACTIONS(156), - [anon_sym_while] = ACTIONS(159), - [anon_sym_try] = ACTIONS(162), - [anon_sym_with] = ACTIONS(165), - [anon_sym_match] = ACTIONS(168), - [anon_sym_DASH] = ACTIONS(171), - [anon_sym_PLUS] = ACTIONS(171), - [anon_sym_LBRACK] = ACTIONS(174), - [anon_sym_LBRACE] = ACTIONS(177), - [anon_sym_STAR_STAR] = ACTIONS(180), - [anon_sym_def] = ACTIONS(183), - [anon_sym_global] = ACTIONS(186), - [anon_sym_nonlocal] = ACTIONS(189), - [anon_sym_exec] = ACTIONS(192), - [anon_sym_type] = ACTIONS(195), - [anon_sym_class] = ACTIONS(198), - [anon_sym_AT] = ACTIONS(201), - [anon_sym_not] = ACTIONS(204), - [anon_sym_TILDE] = ACTIONS(171), - [anon_sym_lambda] = ACTIONS(207), - [anon_sym_yield] = ACTIONS(210), - [sym_ellipsis] = ACTIONS(213), - [sym_integer] = ACTIONS(216), - [sym_float] = ACTIONS(213), - [anon_sym_await] = ACTIONS(219), - [sym_true] = ACTIONS(216), - [sym_false] = ACTIONS(216), - [sym_none] = ACTIONS(216), - [sym_comment] = ACTIONS(3), - [sym__string_start] = ACTIONS(222), - [sym__template_string_start] = ACTIONS(225), + [sym__dedent] = ACTIONS(111), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(61)] = { - [sym__statement] = STATE(64), - [sym__simple_statements] = STATE(64), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(64), - [sym_for_statement] = STATE(64), - [sym_while_statement] = STATE(64), - [sym_try_statement] = STATE(64), - [sym_with_statement] = STATE(64), - [sym_match_statement] = STATE(64), - [sym_function_definition] = STATE(64), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(64), - [sym_decorated_definition] = STATE(64), - [sym_decorator] = STATE(1113), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(64), - [aux_sym_decorated_definition_repeat1] = STATE(1113), + [sym__statement] = STATE(62), + [sym__simple_statements] = STATE(62), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(62), + [sym_for_statement] = STATE(62), + [sym_while_statement] = STATE(62), + [sym_try_statement] = STATE(62), + [sym_with_statement] = STATE(62), + [sym_match_statement] = STATE(62), + [sym_function_definition] = STATE(62), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(62), + [sym_decorated_definition] = STATE(62), + [sym_decorator] = STATE(1146), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(62), + [aux_sym_decorated_definition_repeat1] = STATE(1146), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(228), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__dedent] = ACTIONS(113), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(62)] = { - [sym__statement] = STATE(60), - [sym__simple_statements] = STATE(60), - [sym_import_statement] = STATE(1348), - [sym_future_import_statement] = STATE(1348), - [sym_import_from_statement] = STATE(1348), - [sym_print_statement] = STATE(1348), - [sym_assert_statement] = STATE(1348), - [sym_expression_statement] = STATE(1348), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1348), - [sym_delete_statement] = STATE(1348), - [sym_raise_statement] = STATE(1348), - [sym_pass_statement] = STATE(1348), - [sym_break_statement] = STATE(1348), - [sym_continue_statement] = STATE(1348), - [sym_if_statement] = STATE(60), - [sym_for_statement] = STATE(60), - [sym_while_statement] = STATE(60), - [sym_try_statement] = STATE(60), - [sym_with_statement] = STATE(60), - [sym_match_statement] = STATE(60), - [sym_function_definition] = STATE(60), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1348), - [sym_nonlocal_statement] = STATE(1348), - [sym_exec_statement] = STATE(1348), - [sym_type_alias_statement] = STATE(1348), - [sym_class_definition] = STATE(60), - [sym_decorated_definition] = STATE(60), - [sym_decorator] = STATE(1118), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(60), - [aux_sym_decorated_definition_repeat1] = STATE(1118), - [ts_builtin_sym_end] = ACTIONS(230), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(33), - [anon_sym_async] = ACTIONS(35), - [anon_sym_for] = ACTIONS(37), - [anon_sym_while] = ACTIONS(39), - [anon_sym_try] = ACTIONS(41), - [anon_sym_with] = ACTIONS(43), - [anon_sym_match] = ACTIONS(45), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(55), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(65), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [sym__statement] = STATE(62), + [sym__simple_statements] = STATE(62), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(62), + [sym_for_statement] = STATE(62), + [sym_while_statement] = STATE(62), + [sym_try_statement] = STATE(62), + [sym_with_statement] = STATE(62), + [sym_match_statement] = STATE(62), + [sym_function_definition] = STATE(62), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(62), + [sym_decorated_definition] = STATE(62), + [sym_decorator] = STATE(1146), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(62), + [aux_sym_decorated_definition_repeat1] = STATE(1146), + [sym_identifier] = ACTIONS(115), + [anon_sym_lazy] = ACTIONS(118), + [anon_sym_import] = ACTIONS(121), + [anon_sym_from] = ACTIONS(124), + [anon_sym_LPAREN] = ACTIONS(127), + [anon_sym_STAR] = ACTIONS(130), + [anon_sym_print] = ACTIONS(133), + [anon_sym_assert] = ACTIONS(136), + [anon_sym_return] = ACTIONS(139), + [anon_sym_del] = ACTIONS(142), + [anon_sym_raise] = ACTIONS(145), + [anon_sym_pass] = ACTIONS(148), + [anon_sym_break] = ACTIONS(151), + [anon_sym_continue] = ACTIONS(154), + [anon_sym_if] = ACTIONS(157), + [anon_sym_async] = ACTIONS(160), + [anon_sym_for] = ACTIONS(163), + [anon_sym_while] = ACTIONS(166), + [anon_sym_try] = ACTIONS(169), + [anon_sym_with] = ACTIONS(172), + [anon_sym_match] = ACTIONS(175), + [anon_sym_DASH] = ACTIONS(178), + [anon_sym_PLUS] = ACTIONS(178), + [anon_sym_LBRACK] = ACTIONS(181), + [anon_sym_LBRACE] = ACTIONS(184), + [anon_sym_STAR_STAR] = ACTIONS(187), + [anon_sym_def] = ACTIONS(190), + [anon_sym_global] = ACTIONS(193), + [anon_sym_nonlocal] = ACTIONS(196), + [anon_sym_exec] = ACTIONS(199), + [anon_sym_type] = ACTIONS(202), + [anon_sym_class] = ACTIONS(205), + [anon_sym_AT] = ACTIONS(208), + [anon_sym_not] = ACTIONS(211), + [anon_sym_TILDE] = ACTIONS(178), + [anon_sym_lambda] = ACTIONS(214), + [anon_sym_yield] = ACTIONS(217), + [sym_ellipsis] = ACTIONS(220), + [sym_integer] = ACTIONS(223), + [sym_float] = ACTIONS(220), + [anon_sym_await] = ACTIONS(226), + [sym_true] = ACTIONS(223), + [sym_false] = ACTIONS(223), + [sym_none] = ACTIONS(223), [sym_comment] = ACTIONS(3), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__dedent] = ACTIONS(229), + [sym__string_start] = ACTIONS(231), + [sym__template_string_start] = ACTIONS(234), }, [STATE(63)] = { - [sym__statement] = STATE(64), - [sym__simple_statements] = STATE(64), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(64), - [sym_for_statement] = STATE(64), - [sym_while_statement] = STATE(64), - [sym_try_statement] = STATE(64), - [sym_with_statement] = STATE(64), - [sym_match_statement] = STATE(64), - [sym_function_definition] = STATE(64), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(64), - [sym_decorated_definition] = STATE(64), - [sym_decorator] = STATE(1113), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(64), - [aux_sym_decorated_definition_repeat1] = STATE(1113), + [sym__statement] = STATE(62), + [sym__simple_statements] = STATE(62), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_if_statement] = STATE(62), + [sym_for_statement] = STATE(62), + [sym_while_statement] = STATE(62), + [sym_try_statement] = STATE(62), + [sym_with_statement] = STATE(62), + [sym_match_statement] = STATE(62), + [sym_function_definition] = STATE(62), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_class_definition] = STATE(62), + [sym_decorated_definition] = STATE(62), + [sym_decorator] = STATE(1146), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(62), + [aux_sym_decorated_definition_repeat1] = STATE(1146), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(87), + [anon_sym_async] = ACTIONS(89), + [anon_sym_for] = ACTIONS(91), + [anon_sym_while] = ACTIONS(93), + [anon_sym_try] = ACTIONS(95), + [anon_sym_with] = ACTIONS(97), + [anon_sym_match] = ACTIONS(99), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(101), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(103), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(232), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__dedent] = ACTIONS(237), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(64)] = { - [sym__statement] = STATE(64), - [sym__simple_statements] = STATE(64), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(64), - [sym_for_statement] = STATE(64), - [sym_while_statement] = STATE(64), - [sym_try_statement] = STATE(64), - [sym_with_statement] = STATE(64), - [sym_match_statement] = STATE(64), - [sym_function_definition] = STATE(64), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(64), - [sym_decorated_definition] = STATE(64), - [sym_decorator] = STATE(1113), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(64), - [aux_sym_decorated_definition_repeat1] = STATE(1113), - [sym_identifier] = ACTIONS(111), - [anon_sym_import] = ACTIONS(114), - [anon_sym_from] = ACTIONS(117), - [anon_sym_LPAREN] = ACTIONS(120), - [anon_sym_STAR] = ACTIONS(123), - [anon_sym_print] = ACTIONS(126), - [anon_sym_assert] = ACTIONS(129), - [anon_sym_return] = ACTIONS(132), - [anon_sym_del] = ACTIONS(135), - [anon_sym_raise] = ACTIONS(138), - [anon_sym_pass] = ACTIONS(141), - [anon_sym_break] = ACTIONS(144), - [anon_sym_continue] = ACTIONS(147), - [anon_sym_if] = ACTIONS(234), - [anon_sym_async] = ACTIONS(237), - [anon_sym_for] = ACTIONS(240), - [anon_sym_while] = ACTIONS(243), - [anon_sym_try] = ACTIONS(246), - [anon_sym_with] = ACTIONS(249), - [anon_sym_match] = ACTIONS(252), - [anon_sym_DASH] = ACTIONS(171), - [anon_sym_PLUS] = ACTIONS(171), - [anon_sym_LBRACK] = ACTIONS(174), - [anon_sym_LBRACE] = ACTIONS(177), - [anon_sym_STAR_STAR] = ACTIONS(180), - [anon_sym_def] = ACTIONS(255), - [anon_sym_global] = ACTIONS(186), - [anon_sym_nonlocal] = ACTIONS(189), - [anon_sym_exec] = ACTIONS(192), - [anon_sym_type] = ACTIONS(195), - [anon_sym_class] = ACTIONS(258), - [anon_sym_AT] = ACTIONS(201), - [anon_sym_not] = ACTIONS(204), - [anon_sym_TILDE] = ACTIONS(171), - [anon_sym_lambda] = ACTIONS(207), - [anon_sym_yield] = ACTIONS(210), - [sym_ellipsis] = ACTIONS(213), - [sym_integer] = ACTIONS(216), - [sym_float] = ACTIONS(213), - [anon_sym_await] = ACTIONS(219), - [sym_true] = ACTIONS(216), - [sym_false] = ACTIONS(216), - [sym_none] = ACTIONS(216), + [sym__statement] = STATE(65), + [sym__simple_statements] = STATE(65), + [sym_import_statement] = STATE(1346), + [sym_future_import_statement] = STATE(1346), + [sym_import_from_statement] = STATE(1346), + [sym_print_statement] = STATE(1346), + [sym_assert_statement] = STATE(1346), + [sym_expression_statement] = STATE(1346), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1346), + [sym_delete_statement] = STATE(1346), + [sym_raise_statement] = STATE(1346), + [sym_pass_statement] = STATE(1346), + [sym_break_statement] = STATE(1346), + [sym_continue_statement] = STATE(1346), + [sym_if_statement] = STATE(65), + [sym_for_statement] = STATE(65), + [sym_while_statement] = STATE(65), + [sym_try_statement] = STATE(65), + [sym_with_statement] = STATE(65), + [sym_match_statement] = STATE(65), + [sym_function_definition] = STATE(65), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1346), + [sym_nonlocal_statement] = STATE(1346), + [sym_exec_statement] = STATE(1346), + [sym_type_alias_statement] = STATE(1346), + [sym_class_definition] = STATE(65), + [sym_decorated_definition] = STATE(65), + [sym_decorator] = STATE(1172), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(65), + [aux_sym_decorated_definition_repeat1] = STATE(1172), + [ts_builtin_sym_end] = ACTIONS(239), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_if] = ACTIONS(35), + [anon_sym_async] = ACTIONS(37), + [anon_sym_for] = ACTIONS(39), + [anon_sym_while] = ACTIONS(41), + [anon_sym_try] = ACTIONS(43), + [anon_sym_with] = ACTIONS(45), + [anon_sym_match] = ACTIONS(47), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_def] = ACTIONS(57), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_class] = ACTIONS(67), + [anon_sym_AT] = ACTIONS(69), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(109), - [sym__string_start] = ACTIONS(222), - [sym__template_string_start] = ACTIONS(225), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(65)] = { - [sym__statement] = STATE(64), - [sym__simple_statements] = STATE(64), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_if_statement] = STATE(64), - [sym_for_statement] = STATE(64), - [sym_while_statement] = STATE(64), - [sym_try_statement] = STATE(64), - [sym_with_statement] = STATE(64), - [sym_match_statement] = STATE(64), - [sym_function_definition] = STATE(64), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_class_definition] = STATE(64), - [sym_decorated_definition] = STATE(64), - [sym_decorator] = STATE(1113), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [aux_sym_module_repeat1] = STATE(64), - [aux_sym_decorated_definition_repeat1] = STATE(1113), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_if] = ACTIONS(85), - [anon_sym_async] = ACTIONS(87), - [anon_sym_for] = ACTIONS(89), - [anon_sym_while] = ACTIONS(91), - [anon_sym_try] = ACTIONS(93), - [anon_sym_with] = ACTIONS(95), - [anon_sym_match] = ACTIONS(97), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_def] = ACTIONS(99), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_class] = ACTIONS(101), - [anon_sym_AT] = ACTIONS(67), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [sym__statement] = STATE(65), + [sym__simple_statements] = STATE(65), + [sym_import_statement] = STATE(1346), + [sym_future_import_statement] = STATE(1346), + [sym_import_from_statement] = STATE(1346), + [sym_print_statement] = STATE(1346), + [sym_assert_statement] = STATE(1346), + [sym_expression_statement] = STATE(1346), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1346), + [sym_delete_statement] = STATE(1346), + [sym_raise_statement] = STATE(1346), + [sym_pass_statement] = STATE(1346), + [sym_break_statement] = STATE(1346), + [sym_continue_statement] = STATE(1346), + [sym_if_statement] = STATE(65), + [sym_for_statement] = STATE(65), + [sym_while_statement] = STATE(65), + [sym_try_statement] = STATE(65), + [sym_with_statement] = STATE(65), + [sym_match_statement] = STATE(65), + [sym_function_definition] = STATE(65), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1346), + [sym_nonlocal_statement] = STATE(1346), + [sym_exec_statement] = STATE(1346), + [sym_type_alias_statement] = STATE(1346), + [sym_class_definition] = STATE(65), + [sym_decorated_definition] = STATE(65), + [sym_decorator] = STATE(1172), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [aux_sym_module_repeat1] = STATE(65), + [aux_sym_decorated_definition_repeat1] = STATE(1172), + [ts_builtin_sym_end] = ACTIONS(229), + [sym_identifier] = ACTIONS(115), + [anon_sym_lazy] = ACTIONS(118), + [anon_sym_import] = ACTIONS(121), + [anon_sym_from] = ACTIONS(124), + [anon_sym_LPAREN] = ACTIONS(127), + [anon_sym_STAR] = ACTIONS(130), + [anon_sym_print] = ACTIONS(133), + [anon_sym_assert] = ACTIONS(136), + [anon_sym_return] = ACTIONS(139), + [anon_sym_del] = ACTIONS(142), + [anon_sym_raise] = ACTIONS(145), + [anon_sym_pass] = ACTIONS(148), + [anon_sym_break] = ACTIONS(151), + [anon_sym_continue] = ACTIONS(154), + [anon_sym_if] = ACTIONS(241), + [anon_sym_async] = ACTIONS(244), + [anon_sym_for] = ACTIONS(247), + [anon_sym_while] = ACTIONS(250), + [anon_sym_try] = ACTIONS(253), + [anon_sym_with] = ACTIONS(256), + [anon_sym_match] = ACTIONS(259), + [anon_sym_DASH] = ACTIONS(178), + [anon_sym_PLUS] = ACTIONS(178), + [anon_sym_LBRACK] = ACTIONS(181), + [anon_sym_LBRACE] = ACTIONS(184), + [anon_sym_STAR_STAR] = ACTIONS(187), + [anon_sym_def] = ACTIONS(262), + [anon_sym_global] = ACTIONS(193), + [anon_sym_nonlocal] = ACTIONS(196), + [anon_sym_exec] = ACTIONS(199), + [anon_sym_type] = ACTIONS(202), + [anon_sym_class] = ACTIONS(265), + [anon_sym_AT] = ACTIONS(208), + [anon_sym_not] = ACTIONS(211), + [anon_sym_TILDE] = ACTIONS(178), + [anon_sym_lambda] = ACTIONS(214), + [anon_sym_yield] = ACTIONS(217), + [sym_ellipsis] = ACTIONS(220), + [sym_integer] = ACTIONS(223), + [sym_float] = ACTIONS(220), + [anon_sym_await] = ACTIONS(226), + [sym_true] = ACTIONS(223), + [sym_false] = ACTIONS(223), + [sym_none] = ACTIONS(223), [sym_comment] = ACTIONS(3), - [sym__dedent] = ACTIONS(261), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__string_start] = ACTIONS(231), + [sym__template_string_start] = ACTIONS(234), }, [STATE(66)] = { - [sym_named_expression] = STATE(1031), - [sym_list_splat] = STATE(1510), - [sym_dictionary_splat] = STATE(1510), - [sym_expression_list] = STATE(1590), - [sym_expression] = STATE(1254), - [sym_primary_expression] = STATE(719), - [sym_not_operator] = STATE(1031), - [sym_boolean_operator] = STATE(1031), - [sym_binary_operator] = STATE(724), - [sym_unary_operator] = STATE(724), - [sym_comparison_operator] = STATE(1031), - [sym_lambda] = STATE(1031), - [sym_attribute] = STATE(724), - [sym_subscript] = STATE(724), - [sym_call] = STATE(724), - [sym_list] = STATE(724), - [sym_set] = STATE(724), - [sym_tuple] = STATE(724), - [sym_dictionary] = STATE(724), - [sym_list_comprehension] = STATE(724), - [sym_dictionary_comprehension] = STATE(724), - [sym_set_comprehension] = STATE(724), - [sym_generator_expression] = STATE(724), - [sym_parenthesized_expression] = STATE(724), - [sym_conditional_expression] = STATE(1031), - [sym_concatenated_string] = STATE(724), - [sym_string] = STATE(621), - [sym_concatenated_template_string] = STATE(724), - [sym_template_string] = STATE(624), - [sym_await] = STATE(724), - [sym_identifier] = ACTIONS(263), - [anon_sym_DOT] = ACTIONS(265), - [anon_sym_LPAREN] = ACTIONS(267), - [anon_sym_COMMA] = ACTIONS(270), - [anon_sym_STAR] = ACTIONS(273), - [anon_sym_print] = ACTIONS(276), - [anon_sym_GT_GT] = ACTIONS(265), - [anon_sym_COLON_EQ] = ACTIONS(278), - [anon_sym_if] = ACTIONS(265), - [anon_sym_COLON] = ACTIONS(280), - [anon_sym_async] = ACTIONS(276), - [anon_sym_in] = ACTIONS(265), - [anon_sym_match] = ACTIONS(276), - [anon_sym_PIPE] = ACTIONS(265), - [anon_sym_DASH] = ACTIONS(282), - [anon_sym_PLUS] = ACTIONS(282), - [anon_sym_LBRACK] = ACTIONS(285), - [anon_sym_LBRACE] = ACTIONS(288), - [anon_sym_STAR_STAR] = ACTIONS(290), - [anon_sym_EQ] = ACTIONS(280), - [anon_sym_exec] = ACTIONS(276), - [anon_sym_type] = ACTIONS(276), - [anon_sym_AT] = ACTIONS(265), - [anon_sym_not] = ACTIONS(293), - [anon_sym_and] = ACTIONS(265), - [anon_sym_or] = ACTIONS(265), - [anon_sym_SLASH] = ACTIONS(265), - [anon_sym_PERCENT] = ACTIONS(265), - [anon_sym_SLASH_SLASH] = ACTIONS(265), - [anon_sym_AMP] = ACTIONS(265), - [anon_sym_CARET] = ACTIONS(265), - [anon_sym_LT_LT] = ACTIONS(265), - [anon_sym_TILDE] = ACTIONS(296), - [anon_sym_LT] = ACTIONS(265), - [anon_sym_LT_EQ] = ACTIONS(298), - [anon_sym_EQ_EQ] = ACTIONS(298), - [anon_sym_BANG_EQ] = ACTIONS(298), - [anon_sym_GT_EQ] = ACTIONS(298), - [anon_sym_GT] = ACTIONS(265), - [anon_sym_LT_GT] = ACTIONS(298), - [anon_sym_is] = ACTIONS(265), - [anon_sym_lambda] = ACTIONS(300), - [anon_sym_PLUS_EQ] = ACTIONS(302), - [anon_sym_DASH_EQ] = ACTIONS(302), - [anon_sym_STAR_EQ] = ACTIONS(302), - [anon_sym_SLASH_EQ] = ACTIONS(302), - [anon_sym_AT_EQ] = ACTIONS(302), - [anon_sym_SLASH_SLASH_EQ] = ACTIONS(302), - [anon_sym_PERCENT_EQ] = ACTIONS(302), - [anon_sym_STAR_STAR_EQ] = ACTIONS(302), - [anon_sym_GT_GT_EQ] = ACTIONS(302), - [anon_sym_LT_LT_EQ] = ACTIONS(302), - [anon_sym_AMP_EQ] = ACTIONS(302), - [anon_sym_CARET_EQ] = ACTIONS(302), - [anon_sym_PIPE_EQ] = ACTIONS(302), - [sym_ellipsis] = ACTIONS(304), - [sym_integer] = ACTIONS(306), - [sym_float] = ACTIONS(304), - [anon_sym_await] = ACTIONS(308), - [sym_true] = ACTIONS(306), - [sym_false] = ACTIONS(306), - [sym_none] = ACTIONS(306), + [sym_named_expression] = STATE(1037), + [sym_list_splat] = STATE(1573), + [sym_dictionary_splat] = STATE(1573), + [sym_expression_list] = STATE(1725), + [sym_expression] = STATE(1277), + [sym_primary_expression] = STATE(704), + [sym_not_operator] = STATE(1037), + [sym_boolean_operator] = STATE(1037), + [sym_binary_operator] = STATE(720), + [sym_unary_operator] = STATE(720), + [sym_comparison_operator] = STATE(1037), + [sym_lambda] = STATE(1037), + [sym_attribute] = STATE(720), + [sym_subscript] = STATE(720), + [sym_call] = STATE(720), + [sym_list] = STATE(720), + [sym_set] = STATE(720), + [sym_tuple] = STATE(720), + [sym_dictionary] = STATE(720), + [sym_list_comprehension] = STATE(720), + [sym_dictionary_comprehension] = STATE(720), + [sym_set_comprehension] = STATE(720), + [sym_generator_expression] = STATE(720), + [sym_parenthesized_expression] = STATE(720), + [sym_conditional_expression] = STATE(1037), + [sym_concatenated_string] = STATE(720), + [sym_string] = STATE(694), + [sym_concatenated_template_string] = STATE(720), + [sym_template_string] = STATE(698), + [sym_await] = STATE(720), + [sym_identifier] = ACTIONS(268), + [anon_sym_lazy] = ACTIONS(270), + [anon_sym_DOT] = ACTIONS(272), + [anon_sym_LPAREN] = ACTIONS(274), + [anon_sym_COMMA] = ACTIONS(277), + [anon_sym_STAR] = ACTIONS(280), + [anon_sym_print] = ACTIONS(270), + [anon_sym_GT_GT] = ACTIONS(272), + [anon_sym_COLON_EQ] = ACTIONS(283), + [anon_sym_if] = ACTIONS(272), + [anon_sym_COLON] = ACTIONS(285), + [anon_sym_async] = ACTIONS(270), + [anon_sym_in] = ACTIONS(272), + [anon_sym_match] = ACTIONS(270), + [anon_sym_PIPE] = ACTIONS(272), + [anon_sym_DASH] = ACTIONS(287), + [anon_sym_PLUS] = ACTIONS(287), + [anon_sym_LBRACK] = ACTIONS(290), + [anon_sym_LBRACE] = ACTIONS(293), + [anon_sym_STAR_STAR] = ACTIONS(295), + [anon_sym_EQ] = ACTIONS(285), + [anon_sym_exec] = ACTIONS(270), + [anon_sym_type] = ACTIONS(270), + [anon_sym_AT] = ACTIONS(272), + [anon_sym_not] = ACTIONS(298), + [anon_sym_and] = ACTIONS(272), + [anon_sym_or] = ACTIONS(272), + [anon_sym_SLASH] = ACTIONS(272), + [anon_sym_PERCENT] = ACTIONS(272), + [anon_sym_SLASH_SLASH] = ACTIONS(272), + [anon_sym_AMP] = ACTIONS(272), + [anon_sym_CARET] = ACTIONS(272), + [anon_sym_LT_LT] = ACTIONS(272), + [anon_sym_TILDE] = ACTIONS(301), + [anon_sym_LT] = ACTIONS(272), + [anon_sym_LT_EQ] = ACTIONS(303), + [anon_sym_EQ_EQ] = ACTIONS(303), + [anon_sym_BANG_EQ] = ACTIONS(303), + [anon_sym_GT_EQ] = ACTIONS(303), + [anon_sym_GT] = ACTIONS(272), + [anon_sym_LT_GT] = ACTIONS(303), + [anon_sym_is] = ACTIONS(272), + [anon_sym_lambda] = ACTIONS(305), + [anon_sym_PLUS_EQ] = ACTIONS(307), + [anon_sym_DASH_EQ] = ACTIONS(307), + [anon_sym_STAR_EQ] = ACTIONS(307), + [anon_sym_SLASH_EQ] = ACTIONS(307), + [anon_sym_AT_EQ] = ACTIONS(307), + [anon_sym_SLASH_SLASH_EQ] = ACTIONS(307), + [anon_sym_PERCENT_EQ] = ACTIONS(307), + [anon_sym_STAR_STAR_EQ] = ACTIONS(307), + [anon_sym_GT_GT_EQ] = ACTIONS(307), + [anon_sym_LT_LT_EQ] = ACTIONS(307), + [anon_sym_AMP_EQ] = ACTIONS(307), + [anon_sym_CARET_EQ] = ACTIONS(307), + [anon_sym_PIPE_EQ] = ACTIONS(307), + [sym_ellipsis] = ACTIONS(309), + [sym_integer] = ACTIONS(311), + [sym_float] = ACTIONS(309), + [anon_sym_await] = ACTIONS(313), + [sym_true] = ACTIONS(311), + [sym_false] = ACTIONS(311), + [sym_none] = ACTIONS(311), [sym_comment] = ACTIONS(3), - [anon_sym_SEMI] = ACTIONS(298), - [sym__newline] = ACTIONS(298), - [sym__string_start] = ACTIONS(310), - [sym__template_string_start] = ACTIONS(312), + [anon_sym_SEMI] = ACTIONS(303), + [sym__newline] = ACTIONS(303), + [sym__string_start] = ACTIONS(315), + [sym__template_string_start] = ACTIONS(317), }, [STATE(67)] = { - [sym_named_expression] = STATE(1031), - [sym_list_splat] = STATE(1510), - [sym_dictionary_splat] = STATE(1510), - [sym_expression_list] = STATE(1676), - [sym_expression] = STATE(1230), - [sym_primary_expression] = STATE(719), - [sym_not_operator] = STATE(1031), - [sym_boolean_operator] = STATE(1031), - [sym_binary_operator] = STATE(724), - [sym_unary_operator] = STATE(724), - [sym_comparison_operator] = STATE(1031), - [sym_lambda] = STATE(1031), - [sym_attribute] = STATE(724), - [sym_subscript] = STATE(724), - [sym_call] = STATE(724), - [sym_list] = STATE(724), - [sym_set] = STATE(724), - [sym_tuple] = STATE(724), - [sym_dictionary] = STATE(724), - [sym_list_comprehension] = STATE(724), - [sym_dictionary_comprehension] = STATE(724), - [sym_set_comprehension] = STATE(724), - [sym_generator_expression] = STATE(724), - [sym_parenthesized_expression] = STATE(724), - [sym_conditional_expression] = STATE(1031), - [sym_concatenated_string] = STATE(724), - [sym_string] = STATE(621), - [sym_concatenated_template_string] = STATE(724), - [sym_template_string] = STATE(624), - [sym_await] = STATE(724), - [sym_identifier] = ACTIONS(263), - [anon_sym_DOT] = ACTIONS(265), - [anon_sym_LPAREN] = ACTIONS(267), - [anon_sym_COMMA] = ACTIONS(270), - [anon_sym_STAR] = ACTIONS(273), - [anon_sym_print] = ACTIONS(276), - [anon_sym_GT_GT] = ACTIONS(265), - [anon_sym_COLON_EQ] = ACTIONS(278), - [anon_sym_if] = ACTIONS(265), - [anon_sym_COLON] = ACTIONS(280), - [anon_sym_async] = ACTIONS(276), - [anon_sym_in] = ACTIONS(265), - [anon_sym_match] = ACTIONS(276), - [anon_sym_PIPE] = ACTIONS(265), - [anon_sym_DASH] = ACTIONS(282), - [anon_sym_PLUS] = ACTIONS(282), - [anon_sym_LBRACK] = ACTIONS(285), - [anon_sym_LBRACE] = ACTIONS(288), - [anon_sym_STAR_STAR] = ACTIONS(290), - [anon_sym_EQ] = ACTIONS(280), - [anon_sym_exec] = ACTIONS(276), - [anon_sym_type] = ACTIONS(276), - [anon_sym_AT] = ACTIONS(265), - [anon_sym_not] = ACTIONS(293), - [anon_sym_and] = ACTIONS(265), - [anon_sym_or] = ACTIONS(265), - [anon_sym_SLASH] = ACTIONS(265), - [anon_sym_PERCENT] = ACTIONS(265), - [anon_sym_SLASH_SLASH] = ACTIONS(265), - [anon_sym_AMP] = ACTIONS(265), - [anon_sym_CARET] = ACTIONS(265), - [anon_sym_LT_LT] = ACTIONS(265), - [anon_sym_TILDE] = ACTIONS(296), - [anon_sym_LT] = ACTIONS(265), - [anon_sym_LT_EQ] = ACTIONS(298), - [anon_sym_EQ_EQ] = ACTIONS(298), - [anon_sym_BANG_EQ] = ACTIONS(298), - [anon_sym_GT_EQ] = ACTIONS(298), - [anon_sym_GT] = ACTIONS(265), - [anon_sym_LT_GT] = ACTIONS(298), - [anon_sym_is] = ACTIONS(265), - [anon_sym_lambda] = ACTIONS(300), - [anon_sym_PLUS_EQ] = ACTIONS(302), - [anon_sym_DASH_EQ] = ACTIONS(302), - [anon_sym_STAR_EQ] = ACTIONS(302), - [anon_sym_SLASH_EQ] = ACTIONS(302), - [anon_sym_AT_EQ] = ACTIONS(302), - [anon_sym_SLASH_SLASH_EQ] = ACTIONS(302), - [anon_sym_PERCENT_EQ] = ACTIONS(302), - [anon_sym_STAR_STAR_EQ] = ACTIONS(302), - [anon_sym_GT_GT_EQ] = ACTIONS(302), - [anon_sym_LT_LT_EQ] = ACTIONS(302), - [anon_sym_AMP_EQ] = ACTIONS(302), - [anon_sym_CARET_EQ] = ACTIONS(302), - [anon_sym_PIPE_EQ] = ACTIONS(302), - [sym_ellipsis] = ACTIONS(304), - [sym_integer] = ACTIONS(306), - [sym_float] = ACTIONS(304), - [anon_sym_await] = ACTIONS(308), - [sym_true] = ACTIONS(306), - [sym_false] = ACTIONS(306), - [sym_none] = ACTIONS(306), + [sym_named_expression] = STATE(1037), + [sym_list_splat] = STATE(1573), + [sym_dictionary_splat] = STATE(1573), + [sym_expression_list] = STATE(1753), + [sym_expression] = STATE(1276), + [sym_primary_expression] = STATE(704), + [sym_not_operator] = STATE(1037), + [sym_boolean_operator] = STATE(1037), + [sym_binary_operator] = STATE(720), + [sym_unary_operator] = STATE(720), + [sym_comparison_operator] = STATE(1037), + [sym_lambda] = STATE(1037), + [sym_attribute] = STATE(720), + [sym_subscript] = STATE(720), + [sym_call] = STATE(720), + [sym_list] = STATE(720), + [sym_set] = STATE(720), + [sym_tuple] = STATE(720), + [sym_dictionary] = STATE(720), + [sym_list_comprehension] = STATE(720), + [sym_dictionary_comprehension] = STATE(720), + [sym_set_comprehension] = STATE(720), + [sym_generator_expression] = STATE(720), + [sym_parenthesized_expression] = STATE(720), + [sym_conditional_expression] = STATE(1037), + [sym_concatenated_string] = STATE(720), + [sym_string] = STATE(694), + [sym_concatenated_template_string] = STATE(720), + [sym_template_string] = STATE(698), + [sym_await] = STATE(720), + [sym_identifier] = ACTIONS(268), + [anon_sym_lazy] = ACTIONS(270), + [anon_sym_DOT] = ACTIONS(272), + [anon_sym_LPAREN] = ACTIONS(274), + [anon_sym_COMMA] = ACTIONS(277), + [anon_sym_STAR] = ACTIONS(280), + [anon_sym_print] = ACTIONS(270), + [anon_sym_GT_GT] = ACTIONS(272), + [anon_sym_COLON_EQ] = ACTIONS(283), + [anon_sym_if] = ACTIONS(272), + [anon_sym_COLON] = ACTIONS(285), + [anon_sym_async] = ACTIONS(270), + [anon_sym_in] = ACTIONS(272), + [anon_sym_match] = ACTIONS(270), + [anon_sym_PIPE] = ACTIONS(272), + [anon_sym_DASH] = ACTIONS(287), + [anon_sym_PLUS] = ACTIONS(287), + [anon_sym_LBRACK] = ACTIONS(290), + [anon_sym_LBRACE] = ACTIONS(293), + [anon_sym_STAR_STAR] = ACTIONS(295), + [anon_sym_EQ] = ACTIONS(285), + [anon_sym_exec] = ACTIONS(270), + [anon_sym_type] = ACTIONS(270), + [anon_sym_AT] = ACTIONS(272), + [anon_sym_not] = ACTIONS(298), + [anon_sym_and] = ACTIONS(272), + [anon_sym_or] = ACTIONS(272), + [anon_sym_SLASH] = ACTIONS(272), + [anon_sym_PERCENT] = ACTIONS(272), + [anon_sym_SLASH_SLASH] = ACTIONS(272), + [anon_sym_AMP] = ACTIONS(272), + [anon_sym_CARET] = ACTIONS(272), + [anon_sym_LT_LT] = ACTIONS(272), + [anon_sym_TILDE] = ACTIONS(301), + [anon_sym_LT] = ACTIONS(272), + [anon_sym_LT_EQ] = ACTIONS(303), + [anon_sym_EQ_EQ] = ACTIONS(303), + [anon_sym_BANG_EQ] = ACTIONS(303), + [anon_sym_GT_EQ] = ACTIONS(303), + [anon_sym_GT] = ACTIONS(272), + [anon_sym_LT_GT] = ACTIONS(303), + [anon_sym_is] = ACTIONS(272), + [anon_sym_lambda] = ACTIONS(305), + [anon_sym_PLUS_EQ] = ACTIONS(307), + [anon_sym_DASH_EQ] = ACTIONS(307), + [anon_sym_STAR_EQ] = ACTIONS(307), + [anon_sym_SLASH_EQ] = ACTIONS(307), + [anon_sym_AT_EQ] = ACTIONS(307), + [anon_sym_SLASH_SLASH_EQ] = ACTIONS(307), + [anon_sym_PERCENT_EQ] = ACTIONS(307), + [anon_sym_STAR_STAR_EQ] = ACTIONS(307), + [anon_sym_GT_GT_EQ] = ACTIONS(307), + [anon_sym_LT_LT_EQ] = ACTIONS(307), + [anon_sym_AMP_EQ] = ACTIONS(307), + [anon_sym_CARET_EQ] = ACTIONS(307), + [anon_sym_PIPE_EQ] = ACTIONS(307), + [sym_ellipsis] = ACTIONS(309), + [sym_integer] = ACTIONS(311), + [sym_float] = ACTIONS(309), + [anon_sym_await] = ACTIONS(313), + [sym_true] = ACTIONS(311), + [sym_false] = ACTIONS(311), + [sym_none] = ACTIONS(311), [sym_comment] = ACTIONS(3), - [anon_sym_SEMI] = ACTIONS(298), - [sym__newline] = ACTIONS(298), - [sym__string_start] = ACTIONS(310), - [sym__template_string_start] = ACTIONS(312), + [anon_sym_SEMI] = ACTIONS(303), + [sym__newline] = ACTIONS(303), + [sym__string_start] = ACTIONS(315), + [sym__template_string_start] = ACTIONS(317), }, [STATE(68)] = { - [sym_chevron] = STATE(1316), - [sym_named_expression] = STATE(1158), - [sym_expression] = STATE(1175), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_attribute] = STATE(908), - [sym_subscript] = STATE(908), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [sym_identifier] = ACTIONS(314), - [anon_sym_DOT] = ACTIONS(265), - [anon_sym_LPAREN] = ACTIONS(298), - [anon_sym_COMMA] = ACTIONS(270), - [anon_sym_STAR] = ACTIONS(265), - [anon_sym_print] = ACTIONS(316), - [anon_sym_GT_GT] = ACTIONS(318), - [anon_sym_COLON_EQ] = ACTIONS(278), - [anon_sym_if] = ACTIONS(265), - [anon_sym_COLON] = ACTIONS(280), - [anon_sym_async] = ACTIONS(316), - [anon_sym_in] = ACTIONS(265), - [anon_sym_match] = ACTIONS(316), - [anon_sym_PIPE] = ACTIONS(265), - [anon_sym_DASH] = ACTIONS(265), - [anon_sym_PLUS] = ACTIONS(265), - [anon_sym_LBRACK] = ACTIONS(298), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(265), - [anon_sym_EQ] = ACTIONS(280), - [anon_sym_exec] = ACTIONS(316), - [anon_sym_type] = ACTIONS(316), - [anon_sym_AT] = ACTIONS(265), - [anon_sym_not] = ACTIONS(265), - [anon_sym_and] = ACTIONS(265), - [anon_sym_or] = ACTIONS(265), - [anon_sym_SLASH] = ACTIONS(265), - [anon_sym_PERCENT] = ACTIONS(265), - [anon_sym_SLASH_SLASH] = ACTIONS(265), - [anon_sym_AMP] = ACTIONS(265), - [anon_sym_CARET] = ACTIONS(265), - [anon_sym_LT_LT] = ACTIONS(265), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_LT] = ACTIONS(265), - [anon_sym_LT_EQ] = ACTIONS(298), - [anon_sym_EQ_EQ] = ACTIONS(298), - [anon_sym_BANG_EQ] = ACTIONS(298), - [anon_sym_GT_EQ] = ACTIONS(298), - [anon_sym_GT] = ACTIONS(265), - [anon_sym_LT_GT] = ACTIONS(298), - [anon_sym_is] = ACTIONS(265), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_PLUS_EQ] = ACTIONS(302), - [anon_sym_DASH_EQ] = ACTIONS(302), - [anon_sym_STAR_EQ] = ACTIONS(302), - [anon_sym_SLASH_EQ] = ACTIONS(302), - [anon_sym_AT_EQ] = ACTIONS(302), - [anon_sym_SLASH_SLASH_EQ] = ACTIONS(302), - [anon_sym_PERCENT_EQ] = ACTIONS(302), - [anon_sym_STAR_STAR_EQ] = ACTIONS(302), - [anon_sym_GT_GT_EQ] = ACTIONS(302), - [anon_sym_LT_LT_EQ] = ACTIONS(302), - [anon_sym_AMP_EQ] = ACTIONS(302), - [anon_sym_CARET_EQ] = ACTIONS(302), - [anon_sym_PIPE_EQ] = ACTIONS(302), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(320), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [sym__simple_statements] = STATE(616), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [anon_sym_SEMI] = ACTIONS(298), - [sym__newline] = ACTIONS(298), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(321), + [sym__indent] = ACTIONS(323), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(69)] = { - [sym__simple_statements] = STATE(1171), - [sym_import_statement] = STATE(1373), - [sym_future_import_statement] = STATE(1373), - [sym_import_from_statement] = STATE(1373), - [sym_print_statement] = STATE(1373), - [sym_assert_statement] = STATE(1373), - [sym_expression_statement] = STATE(1373), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1373), - [sym_delete_statement] = STATE(1373), - [sym_raise_statement] = STATE(1373), - [sym_pass_statement] = STATE(1373), - [sym_break_statement] = STATE(1373), - [sym_continue_statement] = STATE(1373), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1373), - [sym_nonlocal_statement] = STATE(1373), - [sym_exec_statement] = STATE(1373), - [sym_type_alias_statement] = STATE(1373), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(493), + [sym_import_statement] = STATE(1346), + [sym_future_import_statement] = STATE(1346), + [sym_import_from_statement] = STATE(1346), + [sym_print_statement] = STATE(1346), + [sym_assert_statement] = STATE(1346), + [sym_expression_statement] = STATE(1346), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1346), + [sym_delete_statement] = STATE(1346), + [sym_raise_statement] = STATE(1346), + [sym_pass_statement] = STATE(1346), + [sym_break_statement] = STATE(1346), + [sym_continue_statement] = STATE(1346), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1346), + [sym_nonlocal_statement] = STATE(1346), + [sym_exec_statement] = STATE(1346), + [sym_type_alias_statement] = STATE(1346), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(324), - [sym__indent] = ACTIONS(326), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(325), + [sym__indent] = ACTIONS(327), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(70)] = { - [sym__simple_statements] = STATE(436), - [sym_import_statement] = STATE(1348), - [sym_future_import_statement] = STATE(1348), - [sym_import_from_statement] = STATE(1348), - [sym_print_statement] = STATE(1348), - [sym_assert_statement] = STATE(1348), - [sym_expression_statement] = STATE(1348), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1348), - [sym_delete_statement] = STATE(1348), - [sym_raise_statement] = STATE(1348), - [sym_pass_statement] = STATE(1348), - [sym_break_statement] = STATE(1348), - [sym_continue_statement] = STATE(1348), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1348), - [sym_nonlocal_statement] = STATE(1348), - [sym_exec_statement] = STATE(1348), - [sym_type_alias_statement] = STATE(1348), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(320), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(328), - [sym__indent] = ACTIONS(330), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(329), + [sym__indent] = ACTIONS(331), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(71)] = { - [sym__simple_statements] = STATE(550), - [sym_import_statement] = STATE(1348), - [sym_future_import_statement] = STATE(1348), - [sym_import_from_statement] = STATE(1348), - [sym_print_statement] = STATE(1348), - [sym_assert_statement] = STATE(1348), - [sym_expression_statement] = STATE(1348), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1348), - [sym_delete_statement] = STATE(1348), - [sym_raise_statement] = STATE(1348), - [sym_pass_statement] = STATE(1348), - [sym_break_statement] = STATE(1348), - [sym_continue_statement] = STATE(1348), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1348), - [sym_nonlocal_statement] = STATE(1348), - [sym_exec_statement] = STATE(1348), - [sym_type_alias_statement] = STATE(1348), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(477), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(332), - [sym__indent] = ACTIONS(334), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(333), + [sym__indent] = ACTIONS(335), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(72)] = { - [sym__simple_statements] = STATE(581), - [sym_import_statement] = STATE(1348), - [sym_future_import_statement] = STATE(1348), - [sym_import_from_statement] = STATE(1348), - [sym_print_statement] = STATE(1348), - [sym_assert_statement] = STATE(1348), - [sym_expression_statement] = STATE(1348), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1348), - [sym_delete_statement] = STATE(1348), - [sym_raise_statement] = STATE(1348), - [sym_pass_statement] = STATE(1348), - [sym_break_statement] = STATE(1348), - [sym_continue_statement] = STATE(1348), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1348), - [sym_nonlocal_statement] = STATE(1348), - [sym_exec_statement] = STATE(1348), - [sym_type_alias_statement] = STATE(1348), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(544), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(336), - [sym__indent] = ACTIONS(338), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(337), + [sym__indent] = ACTIONS(339), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(73)] = { - [sym__simple_statements] = STATE(442), - [sym_import_statement] = STATE(1348), - [sym_future_import_statement] = STATE(1348), - [sym_import_from_statement] = STATE(1348), - [sym_print_statement] = STATE(1348), - [sym_assert_statement] = STATE(1348), - [sym_expression_statement] = STATE(1348), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1348), - [sym_delete_statement] = STATE(1348), - [sym_raise_statement] = STATE(1348), - [sym_pass_statement] = STATE(1348), - [sym_break_statement] = STATE(1348), - [sym_continue_statement] = STATE(1348), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1348), - [sym_nonlocal_statement] = STATE(1348), - [sym_exec_statement] = STATE(1348), - [sym_type_alias_statement] = STATE(1348), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(514), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(340), - [sym__indent] = ACTIONS(342), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(341), + [sym__indent] = ACTIONS(343), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(74)] = { - [sym__simple_statements] = STATE(606), - [sym_import_statement] = STATE(1348), - [sym_future_import_statement] = STATE(1348), - [sym_import_from_statement] = STATE(1348), - [sym_print_statement] = STATE(1348), - [sym_assert_statement] = STATE(1348), - [sym_expression_statement] = STATE(1348), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1348), - [sym_delete_statement] = STATE(1348), - [sym_raise_statement] = STATE(1348), - [sym_pass_statement] = STATE(1348), - [sym_break_statement] = STATE(1348), - [sym_continue_statement] = STATE(1348), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1348), - [sym_nonlocal_statement] = STATE(1348), - [sym_exec_statement] = STATE(1348), - [sym_type_alias_statement] = STATE(1348), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(483), + [sym_import_statement] = STATE(1346), + [sym_future_import_statement] = STATE(1346), + [sym_import_from_statement] = STATE(1346), + [sym_print_statement] = STATE(1346), + [sym_assert_statement] = STATE(1346), + [sym_expression_statement] = STATE(1346), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1346), + [sym_delete_statement] = STATE(1346), + [sym_raise_statement] = STATE(1346), + [sym_pass_statement] = STATE(1346), + [sym_break_statement] = STATE(1346), + [sym_continue_statement] = STATE(1346), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1346), + [sym_nonlocal_statement] = STATE(1346), + [sym_exec_statement] = STATE(1346), + [sym_type_alias_statement] = STATE(1346), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(344), - [sym__indent] = ACTIONS(346), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(345), + [sym__indent] = ACTIONS(347), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(75)] = { - [sym__simple_statements] = STATE(482), - [sym_import_statement] = STATE(1348), - [sym_future_import_statement] = STATE(1348), - [sym_import_from_statement] = STATE(1348), - [sym_print_statement] = STATE(1348), - [sym_assert_statement] = STATE(1348), - [sym_expression_statement] = STATE(1348), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1348), - [sym_delete_statement] = STATE(1348), - [sym_raise_statement] = STATE(1348), - [sym_pass_statement] = STATE(1348), - [sym_break_statement] = STATE(1348), - [sym_continue_statement] = STATE(1348), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1348), - [sym_nonlocal_statement] = STATE(1348), - [sym_exec_statement] = STATE(1348), - [sym_type_alias_statement] = STATE(1348), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(551), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(348), - [sym__indent] = ACTIONS(350), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(349), + [sym__indent] = ACTIONS(351), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(76)] = { - [sym__simple_statements] = STATE(319), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(594), + [sym_import_statement] = STATE(1346), + [sym_future_import_statement] = STATE(1346), + [sym_import_from_statement] = STATE(1346), + [sym_print_statement] = STATE(1346), + [sym_assert_statement] = STATE(1346), + [sym_expression_statement] = STATE(1346), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1346), + [sym_delete_statement] = STATE(1346), + [sym_raise_statement] = STATE(1346), + [sym_pass_statement] = STATE(1346), + [sym_break_statement] = STATE(1346), + [sym_continue_statement] = STATE(1346), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1346), + [sym_nonlocal_statement] = STATE(1346), + [sym_exec_statement] = STATE(1346), + [sym_type_alias_statement] = STATE(1346), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(352), - [sym__indent] = ACTIONS(354), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(353), + [sym__indent] = ACTIONS(355), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(77)] = { - [sym__simple_statements] = STATE(489), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(531), + [sym_import_statement] = STATE(1346), + [sym_future_import_statement] = STATE(1346), + [sym_import_from_statement] = STATE(1346), + [sym_print_statement] = STATE(1346), + [sym_assert_statement] = STATE(1346), + [sym_expression_statement] = STATE(1346), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1346), + [sym_delete_statement] = STATE(1346), + [sym_raise_statement] = STATE(1346), + [sym_pass_statement] = STATE(1346), + [sym_break_statement] = STATE(1346), + [sym_continue_statement] = STATE(1346), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1346), + [sym_nonlocal_statement] = STATE(1346), + [sym_exec_statement] = STATE(1346), + [sym_type_alias_statement] = STATE(1346), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(356), - [sym__indent] = ACTIONS(358), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(357), + [sym__indent] = ACTIONS(359), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(78)] = { - [sym__simple_statements] = STATE(554), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [sym_chevron] = STATE(1323), + [sym_named_expression] = STATE(1126), + [sym_expression] = STATE(1223), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_attribute] = STATE(950), + [sym_subscript] = STATE(950), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [sym_identifier] = ACTIONS(361), + [anon_sym_lazy] = ACTIONS(363), + [anon_sym_DOT] = ACTIONS(272), + [anon_sym_LPAREN] = ACTIONS(303), + [anon_sym_COMMA] = ACTIONS(277), + [anon_sym_STAR] = ACTIONS(272), + [anon_sym_print] = ACTIONS(363), + [anon_sym_GT_GT] = ACTIONS(365), + [anon_sym_COLON_EQ] = ACTIONS(283), + [anon_sym_if] = ACTIONS(272), + [anon_sym_COLON] = ACTIONS(285), + [anon_sym_async] = ACTIONS(363), + [anon_sym_in] = ACTIONS(272), + [anon_sym_match] = ACTIONS(363), + [anon_sym_PIPE] = ACTIONS(272), + [anon_sym_DASH] = ACTIONS(272), + [anon_sym_PLUS] = ACTIONS(272), + [anon_sym_LBRACK] = ACTIONS(303), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(272), + [anon_sym_EQ] = ACTIONS(285), + [anon_sym_exec] = ACTIONS(363), + [anon_sym_type] = ACTIONS(363), + [anon_sym_AT] = ACTIONS(272), + [anon_sym_not] = ACTIONS(272), + [anon_sym_and] = ACTIONS(272), + [anon_sym_or] = ACTIONS(272), + [anon_sym_SLASH] = ACTIONS(272), + [anon_sym_PERCENT] = ACTIONS(272), + [anon_sym_SLASH_SLASH] = ACTIONS(272), + [anon_sym_AMP] = ACTIONS(272), + [anon_sym_CARET] = ACTIONS(272), + [anon_sym_LT_LT] = ACTIONS(272), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_LT] = ACTIONS(272), + [anon_sym_LT_EQ] = ACTIONS(303), + [anon_sym_EQ_EQ] = ACTIONS(303), + [anon_sym_BANG_EQ] = ACTIONS(303), + [anon_sym_GT_EQ] = ACTIONS(303), + [anon_sym_GT] = ACTIONS(272), + [anon_sym_LT_GT] = ACTIONS(303), + [anon_sym_is] = ACTIONS(272), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_PLUS_EQ] = ACTIONS(307), + [anon_sym_DASH_EQ] = ACTIONS(307), + [anon_sym_STAR_EQ] = ACTIONS(307), + [anon_sym_SLASH_EQ] = ACTIONS(307), + [anon_sym_AT_EQ] = ACTIONS(307), + [anon_sym_SLASH_SLASH_EQ] = ACTIONS(307), + [anon_sym_PERCENT_EQ] = ACTIONS(307), + [anon_sym_STAR_STAR_EQ] = ACTIONS(307), + [anon_sym_GT_GT_EQ] = ACTIONS(307), + [anon_sym_LT_LT_EQ] = ACTIONS(307), + [anon_sym_AMP_EQ] = ACTIONS(307), + [anon_sym_CARET_EQ] = ACTIONS(307), + [anon_sym_PIPE_EQ] = ACTIONS(307), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(367), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(360), - [sym__indent] = ACTIONS(362), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [anon_sym_SEMI] = ACTIONS(303), + [sym__newline] = ACTIONS(303), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(79)] = { - [sym__simple_statements] = STATE(557), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(561), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(364), - [sym__indent] = ACTIONS(366), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(369), + [sym__indent] = ACTIONS(371), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(80)] = { - [sym__simple_statements] = STATE(454), - [sym_import_statement] = STATE(1348), - [sym_future_import_statement] = STATE(1348), - [sym_import_from_statement] = STATE(1348), - [sym_print_statement] = STATE(1348), - [sym_assert_statement] = STATE(1348), - [sym_expression_statement] = STATE(1348), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1348), - [sym_delete_statement] = STATE(1348), - [sym_raise_statement] = STATE(1348), - [sym_pass_statement] = STATE(1348), - [sym_break_statement] = STATE(1348), - [sym_continue_statement] = STATE(1348), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1348), - [sym_nonlocal_statement] = STATE(1348), - [sym_exec_statement] = STATE(1348), - [sym_type_alias_statement] = STATE(1348), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(562), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(368), - [sym__indent] = ACTIONS(370), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(373), + [sym__indent] = ACTIONS(375), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(81)] = { - [sym__simple_statements] = STATE(559), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(441), + [sym_import_statement] = STATE(1346), + [sym_future_import_statement] = STATE(1346), + [sym_import_from_statement] = STATE(1346), + [sym_print_statement] = STATE(1346), + [sym_assert_statement] = STATE(1346), + [sym_expression_statement] = STATE(1346), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1346), + [sym_delete_statement] = STATE(1346), + [sym_raise_statement] = STATE(1346), + [sym_pass_statement] = STATE(1346), + [sym_break_statement] = STATE(1346), + [sym_continue_statement] = STATE(1346), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1346), + [sym_nonlocal_statement] = STATE(1346), + [sym_exec_statement] = STATE(1346), + [sym_type_alias_statement] = STATE(1346), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(372), - [sym__indent] = ACTIONS(374), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(377), + [sym__indent] = ACTIONS(379), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(82)] = { - [sym__simple_statements] = STATE(516), - [sym_import_statement] = STATE(1348), - [sym_future_import_statement] = STATE(1348), - [sym_import_from_statement] = STATE(1348), - [sym_print_statement] = STATE(1348), - [sym_assert_statement] = STATE(1348), - [sym_expression_statement] = STATE(1348), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1348), - [sym_delete_statement] = STATE(1348), - [sym_raise_statement] = STATE(1348), - [sym_pass_statement] = STATE(1348), - [sym_break_statement] = STATE(1348), - [sym_continue_statement] = STATE(1348), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1348), - [sym_nonlocal_statement] = STATE(1348), - [sym_exec_statement] = STATE(1348), - [sym_type_alias_statement] = STATE(1348), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(568), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(376), - [sym__indent] = ACTIONS(378), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(381), + [sym__indent] = ACTIONS(383), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(83)] = { - [sym__simple_statements] = STATE(520), - [sym_import_statement] = STATE(1348), - [sym_future_import_statement] = STATE(1348), - [sym_import_from_statement] = STATE(1348), - [sym_print_statement] = STATE(1348), - [sym_assert_statement] = STATE(1348), - [sym_expression_statement] = STATE(1348), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1348), - [sym_delete_statement] = STATE(1348), - [sym_raise_statement] = STATE(1348), - [sym_pass_statement] = STATE(1348), - [sym_break_statement] = STATE(1348), - [sym_continue_statement] = STATE(1348), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1348), - [sym_nonlocal_statement] = STATE(1348), - [sym_exec_statement] = STATE(1348), - [sym_type_alias_statement] = STATE(1348), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(482), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(380), - [sym__indent] = ACTIONS(382), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(385), + [sym__indent] = ACTIONS(387), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(84)] = { - [sym__simple_statements] = STATE(564), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(448), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(384), - [sym__indent] = ACTIONS(386), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(389), + [sym__indent] = ACTIONS(391), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(85)] = { - [sym__simple_statements] = STATE(566), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(570), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(388), - [sym__indent] = ACTIONS(390), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(393), + [sym__indent] = ACTIONS(395), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(86)] = { - [sym__simple_statements] = STATE(567), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(574), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(392), - [sym__indent] = ACTIONS(394), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(397), + [sym__indent] = ACTIONS(399), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(87)] = { - [sym__simple_statements] = STATE(523), - [sym_import_statement] = STATE(1348), - [sym_future_import_statement] = STATE(1348), - [sym_import_from_statement] = STATE(1348), - [sym_print_statement] = STATE(1348), - [sym_assert_statement] = STATE(1348), - [sym_expression_statement] = STATE(1348), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1348), - [sym_delete_statement] = STATE(1348), - [sym_raise_statement] = STATE(1348), - [sym_pass_statement] = STATE(1348), - [sym_break_statement] = STATE(1348), - [sym_continue_statement] = STATE(1348), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1348), - [sym_nonlocal_statement] = STATE(1348), - [sym_exec_statement] = STATE(1348), - [sym_type_alias_statement] = STATE(1348), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(511), + [sym_import_statement] = STATE(1346), + [sym_future_import_statement] = STATE(1346), + [sym_import_from_statement] = STATE(1346), + [sym_print_statement] = STATE(1346), + [sym_assert_statement] = STATE(1346), + [sym_expression_statement] = STATE(1346), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1346), + [sym_delete_statement] = STATE(1346), + [sym_raise_statement] = STATE(1346), + [sym_pass_statement] = STATE(1346), + [sym_break_statement] = STATE(1346), + [sym_continue_statement] = STATE(1346), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1346), + [sym_nonlocal_statement] = STATE(1346), + [sym_exec_statement] = STATE(1346), + [sym_type_alias_statement] = STATE(1346), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(396), - [sym__indent] = ACTIONS(398), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(401), + [sym__indent] = ACTIONS(403), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(88)] = { - [sym__simple_statements] = STATE(571), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(576), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(400), - [sym__indent] = ACTIONS(402), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(405), + [sym__indent] = ACTIONS(407), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(89)] = { - [sym__simple_statements] = STATE(491), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(613), + [sym_import_statement] = STATE(1346), + [sym_future_import_statement] = STATE(1346), + [sym_import_from_statement] = STATE(1346), + [sym_print_statement] = STATE(1346), + [sym_assert_statement] = STATE(1346), + [sym_expression_statement] = STATE(1346), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1346), + [sym_delete_statement] = STATE(1346), + [sym_raise_statement] = STATE(1346), + [sym_pass_statement] = STATE(1346), + [sym_break_statement] = STATE(1346), + [sym_continue_statement] = STATE(1346), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1346), + [sym_nonlocal_statement] = STATE(1346), + [sym_exec_statement] = STATE(1346), + [sym_type_alias_statement] = STATE(1346), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(404), - [sym__indent] = ACTIONS(406), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(409), + [sym__indent] = ACTIONS(411), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(90)] = { - [sym__simple_statements] = STATE(437), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(497), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(408), - [sym__indent] = ACTIONS(410), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(413), + [sym__indent] = ACTIONS(415), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(91)] = { - [sym__simple_statements] = STATE(573), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(485), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(412), - [sym__indent] = ACTIONS(414), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(417), + [sym__indent] = ACTIONS(419), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(92)] = { - [sym__simple_statements] = STATE(546), - [sym_import_statement] = STATE(1348), - [sym_future_import_statement] = STATE(1348), - [sym_import_from_statement] = STATE(1348), - [sym_print_statement] = STATE(1348), - [sym_assert_statement] = STATE(1348), - [sym_expression_statement] = STATE(1348), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1348), - [sym_delete_statement] = STATE(1348), - [sym_raise_statement] = STATE(1348), - [sym_pass_statement] = STATE(1348), - [sym_break_statement] = STATE(1348), - [sym_continue_statement] = STATE(1348), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1348), - [sym_nonlocal_statement] = STATE(1348), - [sym_exec_statement] = STATE(1348), - [sym_type_alias_statement] = STATE(1348), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(332), + [sym_import_statement] = STATE(1346), + [sym_future_import_statement] = STATE(1346), + [sym_import_from_statement] = STATE(1346), + [sym_print_statement] = STATE(1346), + [sym_assert_statement] = STATE(1346), + [sym_expression_statement] = STATE(1346), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1346), + [sym_delete_statement] = STATE(1346), + [sym_raise_statement] = STATE(1346), + [sym_pass_statement] = STATE(1346), + [sym_break_statement] = STATE(1346), + [sym_continue_statement] = STATE(1346), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1346), + [sym_nonlocal_statement] = STATE(1346), + [sym_exec_statement] = STATE(1346), + [sym_type_alias_statement] = STATE(1346), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(416), - [sym__indent] = ACTIONS(418), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(421), + [sym__indent] = ACTIONS(423), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(93)] = { - [sym__simple_statements] = STATE(577), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(580), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(420), - [sym__indent] = ACTIONS(422), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(425), + [sym__indent] = ACTIONS(427), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(94)] = { - [sym__simple_statements] = STATE(495), - [sym_import_statement] = STATE(1348), - [sym_future_import_statement] = STATE(1348), - [sym_import_from_statement] = STATE(1348), - [sym_print_statement] = STATE(1348), - [sym_assert_statement] = STATE(1348), - [sym_expression_statement] = STATE(1348), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1348), - [sym_delete_statement] = STATE(1348), - [sym_raise_statement] = STATE(1348), - [sym_pass_statement] = STATE(1348), - [sym_break_statement] = STATE(1348), - [sym_continue_statement] = STATE(1348), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1348), - [sym_nonlocal_statement] = STATE(1348), - [sym_exec_statement] = STATE(1348), - [sym_type_alias_statement] = STATE(1348), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(611), + [sym_import_statement] = STATE(1346), + [sym_future_import_statement] = STATE(1346), + [sym_import_from_statement] = STATE(1346), + [sym_print_statement] = STATE(1346), + [sym_assert_statement] = STATE(1346), + [sym_expression_statement] = STATE(1346), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1346), + [sym_delete_statement] = STATE(1346), + [sym_raise_statement] = STATE(1346), + [sym_pass_statement] = STATE(1346), + [sym_break_statement] = STATE(1346), + [sym_continue_statement] = STATE(1346), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1346), + [sym_nonlocal_statement] = STATE(1346), + [sym_exec_statement] = STATE(1346), + [sym_type_alias_statement] = STATE(1346), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(424), - [sym__indent] = ACTIONS(426), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(429), + [sym__indent] = ACTIONS(431), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(95)] = { - [sym__simple_statements] = STATE(579), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(467), + [sym_import_statement] = STATE(1346), + [sym_future_import_statement] = STATE(1346), + [sym_import_from_statement] = STATE(1346), + [sym_print_statement] = STATE(1346), + [sym_assert_statement] = STATE(1346), + [sym_expression_statement] = STATE(1346), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1346), + [sym_delete_statement] = STATE(1346), + [sym_raise_statement] = STATE(1346), + [sym_pass_statement] = STATE(1346), + [sym_break_statement] = STATE(1346), + [sym_continue_statement] = STATE(1346), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1346), + [sym_nonlocal_statement] = STATE(1346), + [sym_exec_statement] = STATE(1346), + [sym_type_alias_statement] = STATE(1346), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(428), - [sym__indent] = ACTIONS(430), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(433), + [sym__indent] = ACTIONS(435), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(96)] = { - [sym__simple_statements] = STATE(541), - [sym_import_statement] = STATE(1348), - [sym_future_import_statement] = STATE(1348), - [sym_import_from_statement] = STATE(1348), - [sym_print_statement] = STATE(1348), - [sym_assert_statement] = STATE(1348), - [sym_expression_statement] = STATE(1348), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1348), - [sym_delete_statement] = STATE(1348), - [sym_raise_statement] = STATE(1348), - [sym_pass_statement] = STATE(1348), - [sym_break_statement] = STATE(1348), - [sym_continue_statement] = STATE(1348), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1348), - [sym_nonlocal_statement] = STATE(1348), - [sym_exec_statement] = STATE(1348), - [sym_type_alias_statement] = STATE(1348), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(456), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(432), - [sym__indent] = ACTIONS(434), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(437), + [sym__indent] = ACTIONS(439), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(97)] = { - [sym__simple_statements] = STATE(503), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(475), + [sym_import_statement] = STATE(1346), + [sym_future_import_statement] = STATE(1346), + [sym_import_from_statement] = STATE(1346), + [sym_print_statement] = STATE(1346), + [sym_assert_statement] = STATE(1346), + [sym_expression_statement] = STATE(1346), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1346), + [sym_delete_statement] = STATE(1346), + [sym_raise_statement] = STATE(1346), + [sym_pass_statement] = STATE(1346), + [sym_break_statement] = STATE(1346), + [sym_continue_statement] = STATE(1346), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1346), + [sym_nonlocal_statement] = STATE(1346), + [sym_exec_statement] = STATE(1346), + [sym_type_alias_statement] = STATE(1346), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(436), - [sym__indent] = ACTIONS(438), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(441), + [sym__indent] = ACTIONS(443), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(98)] = { - [sym__simple_statements] = STATE(480), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(500), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(440), - [sym__indent] = ACTIONS(442), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(445), + [sym__indent] = ACTIONS(447), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(99)] = { - [sym__simple_statements] = STATE(312), - [sym_import_statement] = STATE(1348), - [sym_future_import_statement] = STATE(1348), - [sym_import_from_statement] = STATE(1348), - [sym_print_statement] = STATE(1348), - [sym_assert_statement] = STATE(1348), - [sym_expression_statement] = STATE(1348), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1348), - [sym_delete_statement] = STATE(1348), - [sym_raise_statement] = STATE(1348), - [sym_pass_statement] = STATE(1348), - [sym_break_statement] = STATE(1348), - [sym_continue_statement] = STATE(1348), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1348), - [sym_nonlocal_statement] = STATE(1348), - [sym_exec_statement] = STATE(1348), - [sym_type_alias_statement] = STATE(1348), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(519), + [sym_import_statement] = STATE(1346), + [sym_future_import_statement] = STATE(1346), + [sym_import_from_statement] = STATE(1346), + [sym_print_statement] = STATE(1346), + [sym_assert_statement] = STATE(1346), + [sym_expression_statement] = STATE(1346), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1346), + [sym_delete_statement] = STATE(1346), + [sym_raise_statement] = STATE(1346), + [sym_pass_statement] = STATE(1346), + [sym_break_statement] = STATE(1346), + [sym_continue_statement] = STATE(1346), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1346), + [sym_nonlocal_statement] = STATE(1346), + [sym_exec_statement] = STATE(1346), + [sym_type_alias_statement] = STATE(1346), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(444), - [sym__indent] = ACTIONS(446), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(449), + [sym__indent] = ACTIONS(451), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(100)] = { - [sym__simple_statements] = STATE(584), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(536), + [sym_import_statement] = STATE(1346), + [sym_future_import_statement] = STATE(1346), + [sym_import_from_statement] = STATE(1346), + [sym_print_statement] = STATE(1346), + [sym_assert_statement] = STATE(1346), + [sym_expression_statement] = STATE(1346), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1346), + [sym_delete_statement] = STATE(1346), + [sym_raise_statement] = STATE(1346), + [sym_pass_statement] = STATE(1346), + [sym_break_statement] = STATE(1346), + [sym_continue_statement] = STATE(1346), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1346), + [sym_nonlocal_statement] = STATE(1346), + [sym_exec_statement] = STATE(1346), + [sym_type_alias_statement] = STATE(1346), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(448), - [sym__indent] = ACTIONS(450), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(453), + [sym__indent] = ACTIONS(455), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(101)] = { - [sym__simple_statements] = STATE(527), - [sym_import_statement] = STATE(1348), - [sym_future_import_statement] = STATE(1348), - [sym_import_from_statement] = STATE(1348), - [sym_print_statement] = STATE(1348), - [sym_assert_statement] = STATE(1348), - [sym_expression_statement] = STATE(1348), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1348), - [sym_delete_statement] = STATE(1348), - [sym_raise_statement] = STATE(1348), - [sym_pass_statement] = STATE(1348), - [sym_break_statement] = STATE(1348), - [sym_continue_statement] = STATE(1348), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1348), - [sym_nonlocal_statement] = STATE(1348), - [sym_exec_statement] = STATE(1348), - [sym_type_alias_statement] = STATE(1348), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(487), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(452), - [sym__indent] = ACTIONS(454), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(457), + [sym__indent] = ACTIONS(459), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(102)] = { - [sym__simple_statements] = STATE(439), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(539), + [sym_import_statement] = STATE(1346), + [sym_future_import_statement] = STATE(1346), + [sym_import_from_statement] = STATE(1346), + [sym_print_statement] = STATE(1346), + [sym_assert_statement] = STATE(1346), + [sym_expression_statement] = STATE(1346), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1346), + [sym_delete_statement] = STATE(1346), + [sym_raise_statement] = STATE(1346), + [sym_pass_statement] = STATE(1346), + [sym_break_statement] = STATE(1346), + [sym_continue_statement] = STATE(1346), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1346), + [sym_nonlocal_statement] = STATE(1346), + [sym_exec_statement] = STATE(1346), + [sym_type_alias_statement] = STATE(1346), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(456), - [sym__indent] = ACTIONS(458), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(461), + [sym__indent] = ACTIONS(463), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(103)] = { - [sym__simple_statements] = STATE(485), - [sym_import_statement] = STATE(1348), - [sym_future_import_statement] = STATE(1348), - [sym_import_from_statement] = STATE(1348), - [sym_print_statement] = STATE(1348), - [sym_assert_statement] = STATE(1348), - [sym_expression_statement] = STATE(1348), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1348), - [sym_delete_statement] = STATE(1348), - [sym_raise_statement] = STATE(1348), - [sym_pass_statement] = STATE(1348), - [sym_break_statement] = STATE(1348), - [sym_continue_statement] = STATE(1348), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1348), - [sym_nonlocal_statement] = STATE(1348), - [sym_exec_statement] = STATE(1348), - [sym_type_alias_statement] = STATE(1348), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(457), + [sym_import_statement] = STATE(1346), + [sym_future_import_statement] = STATE(1346), + [sym_import_from_statement] = STATE(1346), + [sym_print_statement] = STATE(1346), + [sym_assert_statement] = STATE(1346), + [sym_expression_statement] = STATE(1346), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1346), + [sym_delete_statement] = STATE(1346), + [sym_raise_statement] = STATE(1346), + [sym_pass_statement] = STATE(1346), + [sym_break_statement] = STATE(1346), + [sym_continue_statement] = STATE(1346), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1346), + [sym_nonlocal_statement] = STATE(1346), + [sym_exec_statement] = STATE(1346), + [sym_type_alias_statement] = STATE(1346), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(460), - [sym__indent] = ACTIONS(462), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(465), + [sym__indent] = ACTIONS(467), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(104)] = { - [sym__simple_statements] = STATE(504), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(590), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(464), - [sym__indent] = ACTIONS(466), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(469), + [sym__indent] = ACTIONS(471), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(105)] = { - [sym__simple_statements] = STATE(589), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(458), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(468), - [sym__indent] = ACTIONS(470), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(473), + [sym__indent] = ACTIONS(475), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(106)] = { - [sym__simple_statements] = STATE(459), - [sym_import_statement] = STATE(1348), - [sym_future_import_statement] = STATE(1348), - [sym_import_from_statement] = STATE(1348), - [sym_print_statement] = STATE(1348), - [sym_assert_statement] = STATE(1348), - [sym_expression_statement] = STATE(1348), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1348), - [sym_delete_statement] = STATE(1348), - [sym_raise_statement] = STATE(1348), - [sym_pass_statement] = STATE(1348), - [sym_break_statement] = STATE(1348), - [sym_continue_statement] = STATE(1348), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1348), - [sym_nonlocal_statement] = STATE(1348), - [sym_exec_statement] = STATE(1348), - [sym_type_alias_statement] = STATE(1348), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(1216), + [sym_import_statement] = STATE(1402), + [sym_future_import_statement] = STATE(1402), + [sym_import_from_statement] = STATE(1402), + [sym_print_statement] = STATE(1402), + [sym_assert_statement] = STATE(1402), + [sym_expression_statement] = STATE(1402), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1402), + [sym_delete_statement] = STATE(1402), + [sym_raise_statement] = STATE(1402), + [sym_pass_statement] = STATE(1402), + [sym_break_statement] = STATE(1402), + [sym_continue_statement] = STATE(1402), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1402), + [sym_nonlocal_statement] = STATE(1402), + [sym_exec_statement] = STATE(1402), + [sym_type_alias_statement] = STATE(1402), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(472), - [sym__indent] = ACTIONS(474), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(477), + [sym__indent] = ACTIONS(479), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(107)] = { - [sym__simple_statements] = STATE(488), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(498), + [sym_import_statement] = STATE(1346), + [sym_future_import_statement] = STATE(1346), + [sym_import_from_statement] = STATE(1346), + [sym_print_statement] = STATE(1346), + [sym_assert_statement] = STATE(1346), + [sym_expression_statement] = STATE(1346), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1346), + [sym_delete_statement] = STATE(1346), + [sym_raise_statement] = STATE(1346), + [sym_pass_statement] = STATE(1346), + [sym_break_statement] = STATE(1346), + [sym_continue_statement] = STATE(1346), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1346), + [sym_nonlocal_statement] = STATE(1346), + [sym_exec_statement] = STATE(1346), + [sym_type_alias_statement] = STATE(1346), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(476), - [sym__indent] = ACTIONS(478), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(481), + [sym__indent] = ACTIONS(483), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(108)] = { - [sym__simple_statements] = STATE(496), - [sym_import_statement] = STATE(1348), - [sym_future_import_statement] = STATE(1348), - [sym_import_from_statement] = STATE(1348), - [sym_print_statement] = STATE(1348), - [sym_assert_statement] = STATE(1348), - [sym_expression_statement] = STATE(1348), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1348), - [sym_delete_statement] = STATE(1348), - [sym_raise_statement] = STATE(1348), - [sym_pass_statement] = STATE(1348), - [sym_break_statement] = STATE(1348), - [sym_continue_statement] = STATE(1348), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1348), - [sym_nonlocal_statement] = STATE(1348), - [sym_exec_statement] = STATE(1348), - [sym_type_alias_statement] = STATE(1348), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(505), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(480), - [sym__indent] = ACTIONS(482), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(485), + [sym__indent] = ACTIONS(487), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(109)] = { - [sym__simple_statements] = STATE(531), - [sym_import_statement] = STATE(1348), - [sym_future_import_statement] = STATE(1348), - [sym_import_from_statement] = STATE(1348), - [sym_print_statement] = STATE(1348), - [sym_assert_statement] = STATE(1348), - [sym_expression_statement] = STATE(1348), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1348), - [sym_delete_statement] = STATE(1348), - [sym_raise_statement] = STATE(1348), - [sym_pass_statement] = STATE(1348), - [sym_break_statement] = STATE(1348), - [sym_continue_statement] = STATE(1348), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1348), - [sym_nonlocal_statement] = STATE(1348), - [sym_exec_statement] = STATE(1348), - [sym_type_alias_statement] = STATE(1348), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(526), + [sym_import_statement] = STATE(1346), + [sym_future_import_statement] = STATE(1346), + [sym_import_from_statement] = STATE(1346), + [sym_print_statement] = STATE(1346), + [sym_assert_statement] = STATE(1346), + [sym_expression_statement] = STATE(1346), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1346), + [sym_delete_statement] = STATE(1346), + [sym_raise_statement] = STATE(1346), + [sym_pass_statement] = STATE(1346), + [sym_break_statement] = STATE(1346), + [sym_continue_statement] = STATE(1346), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1346), + [sym_nonlocal_statement] = STATE(1346), + [sym_exec_statement] = STATE(1346), + [sym_type_alias_statement] = STATE(1346), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(484), - [sym__indent] = ACTIONS(486), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(489), + [sym__indent] = ACTIONS(491), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(110)] = { - [sym__simple_statements] = STATE(593), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(596), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(488), - [sym__indent] = ACTIONS(490), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(493), + [sym__indent] = ACTIONS(495), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(111)] = { - [sym__simple_statements] = STATE(608), - [sym_import_statement] = STATE(1348), - [sym_future_import_statement] = STATE(1348), - [sym_import_from_statement] = STATE(1348), - [sym_print_statement] = STATE(1348), - [sym_assert_statement] = STATE(1348), - [sym_expression_statement] = STATE(1348), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1348), - [sym_delete_statement] = STATE(1348), - [sym_raise_statement] = STATE(1348), - [sym_pass_statement] = STATE(1348), - [sym_break_statement] = STATE(1348), - [sym_continue_statement] = STATE(1348), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1348), - [sym_nonlocal_statement] = STATE(1348), - [sym_exec_statement] = STATE(1348), - [sym_type_alias_statement] = STATE(1348), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(607), + [sym_import_statement] = STATE(1346), + [sym_future_import_statement] = STATE(1346), + [sym_import_from_statement] = STATE(1346), + [sym_print_statement] = STATE(1346), + [sym_assert_statement] = STATE(1346), + [sym_expression_statement] = STATE(1346), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1346), + [sym_delete_statement] = STATE(1346), + [sym_raise_statement] = STATE(1346), + [sym_pass_statement] = STATE(1346), + [sym_break_statement] = STATE(1346), + [sym_continue_statement] = STATE(1346), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1346), + [sym_nonlocal_statement] = STATE(1346), + [sym_exec_statement] = STATE(1346), + [sym_type_alias_statement] = STATE(1346), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(492), - [sym__indent] = ACTIONS(494), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(497), + [sym__indent] = ACTIONS(499), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(112)] = { - [sym__simple_statements] = STATE(440), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(474), + [sym_import_statement] = STATE(1346), + [sym_future_import_statement] = STATE(1346), + [sym_import_from_statement] = STATE(1346), + [sym_print_statement] = STATE(1346), + [sym_assert_statement] = STATE(1346), + [sym_expression_statement] = STATE(1346), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1346), + [sym_delete_statement] = STATE(1346), + [sym_raise_statement] = STATE(1346), + [sym_pass_statement] = STATE(1346), + [sym_break_statement] = STATE(1346), + [sym_continue_statement] = STATE(1346), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1346), + [sym_nonlocal_statement] = STATE(1346), + [sym_exec_statement] = STATE(1346), + [sym_type_alias_statement] = STATE(1346), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(496), - [sym__indent] = ACTIONS(498), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(501), + [sym__indent] = ACTIONS(503), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(113)] = { - [sym__simple_statements] = STATE(611), - [sym_import_statement] = STATE(1348), - [sym_future_import_statement] = STATE(1348), - [sym_import_from_statement] = STATE(1348), - [sym_print_statement] = STATE(1348), - [sym_assert_statement] = STATE(1348), - [sym_expression_statement] = STATE(1348), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1348), - [sym_delete_statement] = STATE(1348), - [sym_raise_statement] = STATE(1348), - [sym_pass_statement] = STATE(1348), - [sym_break_statement] = STATE(1348), - [sym_continue_statement] = STATE(1348), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1348), - [sym_nonlocal_statement] = STATE(1348), - [sym_exec_statement] = STATE(1348), - [sym_type_alias_statement] = STATE(1348), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(599), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(500), - [sym__indent] = ACTIONS(502), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(505), + [sym__indent] = ACTIONS(507), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(114)] = { - [sym__simple_statements] = STATE(464), - [sym_import_statement] = STATE(1348), - [sym_future_import_statement] = STATE(1348), - [sym_import_from_statement] = STATE(1348), - [sym_print_statement] = STATE(1348), - [sym_assert_statement] = STATE(1348), - [sym_expression_statement] = STATE(1348), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1348), - [sym_delete_statement] = STATE(1348), - [sym_raise_statement] = STATE(1348), - [sym_pass_statement] = STATE(1348), - [sym_break_statement] = STATE(1348), - [sym_continue_statement] = STATE(1348), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1348), - [sym_nonlocal_statement] = STATE(1348), - [sym_exec_statement] = STATE(1348), - [sym_type_alias_statement] = STATE(1348), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(449), + [sym_import_statement] = STATE(1346), + [sym_future_import_statement] = STATE(1346), + [sym_import_from_statement] = STATE(1346), + [sym_print_statement] = STATE(1346), + [sym_assert_statement] = STATE(1346), + [sym_expression_statement] = STATE(1346), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1346), + [sym_delete_statement] = STATE(1346), + [sym_raise_statement] = STATE(1346), + [sym_pass_statement] = STATE(1346), + [sym_break_statement] = STATE(1346), + [sym_continue_statement] = STATE(1346), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1346), + [sym_nonlocal_statement] = STATE(1346), + [sym_exec_statement] = STATE(1346), + [sym_type_alias_statement] = STATE(1346), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(504), - [sym__indent] = ACTIONS(506), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(509), + [sym__indent] = ACTIONS(511), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(115)] = { - [sym__simple_statements] = STATE(506), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(462), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(508), - [sym__indent] = ACTIONS(510), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(513), + [sym__indent] = ACTIONS(515), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(116)] = { - [sym__simple_statements] = STATE(599), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(518), + [sym_import_statement] = STATE(1346), + [sym_future_import_statement] = STATE(1346), + [sym_import_from_statement] = STATE(1346), + [sym_print_statement] = STATE(1346), + [sym_assert_statement] = STATE(1346), + [sym_expression_statement] = STATE(1346), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1346), + [sym_delete_statement] = STATE(1346), + [sym_raise_statement] = STATE(1346), + [sym_pass_statement] = STATE(1346), + [sym_break_statement] = STATE(1346), + [sym_continue_statement] = STATE(1346), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1346), + [sym_nonlocal_statement] = STATE(1346), + [sym_exec_statement] = STATE(1346), + [sym_type_alias_statement] = STATE(1346), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(512), - [sym__indent] = ACTIONS(514), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(517), + [sym__indent] = ACTIONS(519), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(117)] = { - [sym__simple_statements] = STATE(537), - [sym_import_statement] = STATE(1348), - [sym_future_import_statement] = STATE(1348), - [sym_import_from_statement] = STATE(1348), - [sym_print_statement] = STATE(1348), - [sym_assert_statement] = STATE(1348), - [sym_expression_statement] = STATE(1348), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1348), - [sym_delete_statement] = STATE(1348), - [sym_raise_statement] = STATE(1348), - [sym_pass_statement] = STATE(1348), - [sym_break_statement] = STATE(1348), - [sym_continue_statement] = STATE(1348), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1348), - [sym_nonlocal_statement] = STATE(1348), - [sym_exec_statement] = STATE(1348), - [sym_type_alias_statement] = STATE(1348), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(532), + [sym_import_statement] = STATE(1346), + [sym_future_import_statement] = STATE(1346), + [sym_import_from_statement] = STATE(1346), + [sym_print_statement] = STATE(1346), + [sym_assert_statement] = STATE(1346), + [sym_expression_statement] = STATE(1346), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1346), + [sym_delete_statement] = STATE(1346), + [sym_raise_statement] = STATE(1346), + [sym_pass_statement] = STATE(1346), + [sym_break_statement] = STATE(1346), + [sym_continue_statement] = STATE(1346), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1346), + [sym_nonlocal_statement] = STATE(1346), + [sym_exec_statement] = STATE(1346), + [sym_type_alias_statement] = STATE(1346), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(516), - [sym__indent] = ACTIONS(518), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(521), + [sym__indent] = ACTIONS(523), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(118)] = { - [sym__simple_statements] = STATE(602), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(443), + [sym_import_statement] = STATE(1346), + [sym_future_import_statement] = STATE(1346), + [sym_import_from_statement] = STATE(1346), + [sym_print_statement] = STATE(1346), + [sym_assert_statement] = STATE(1346), + [sym_expression_statement] = STATE(1346), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1346), + [sym_delete_statement] = STATE(1346), + [sym_raise_statement] = STATE(1346), + [sym_pass_statement] = STATE(1346), + [sym_break_statement] = STATE(1346), + [sym_continue_statement] = STATE(1346), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1346), + [sym_nonlocal_statement] = STATE(1346), + [sym_exec_statement] = STATE(1346), + [sym_type_alias_statement] = STATE(1346), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(520), - [sym__indent] = ACTIONS(522), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(525), + [sym__indent] = ACTIONS(527), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(119)] = { - [sym__simple_statements] = STATE(444), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(463), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(524), - [sym__indent] = ACTIONS(526), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(529), + [sym__indent] = ACTIONS(531), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(120)] = { - [sym__simple_statements] = STATE(451), - [sym_import_statement] = STATE(1348), - [sym_future_import_statement] = STATE(1348), - [sym_import_from_statement] = STATE(1348), - [sym_print_statement] = STATE(1348), - [sym_assert_statement] = STATE(1348), - [sym_expression_statement] = STATE(1348), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1348), - [sym_delete_statement] = STATE(1348), - [sym_raise_statement] = STATE(1348), - [sym_pass_statement] = STATE(1348), - [sym_break_statement] = STATE(1348), - [sym_continue_statement] = STATE(1348), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1348), - [sym_nonlocal_statement] = STATE(1348), - [sym_exec_statement] = STATE(1348), - [sym_type_alias_statement] = STATE(1348), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(555), + [sym_import_statement] = STATE(1346), + [sym_future_import_statement] = STATE(1346), + [sym_import_from_statement] = STATE(1346), + [sym_print_statement] = STATE(1346), + [sym_assert_statement] = STATE(1346), + [sym_expression_statement] = STATE(1346), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1346), + [sym_delete_statement] = STATE(1346), + [sym_raise_statement] = STATE(1346), + [sym_pass_statement] = STATE(1346), + [sym_break_statement] = STATE(1346), + [sym_continue_statement] = STATE(1346), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1346), + [sym_nonlocal_statement] = STATE(1346), + [sym_exec_statement] = STATE(1346), + [sym_type_alias_statement] = STATE(1346), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(528), - [sym__indent] = ACTIONS(530), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(533), + [sym__indent] = ACTIONS(535), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(121)] = { - [sym__simple_statements] = STATE(613), - [sym_import_statement] = STATE(1348), - [sym_future_import_statement] = STATE(1348), - [sym_import_from_statement] = STATE(1348), - [sym_print_statement] = STATE(1348), - [sym_assert_statement] = STATE(1348), - [sym_expression_statement] = STATE(1348), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1348), - [sym_delete_statement] = STATE(1348), - [sym_raise_statement] = STATE(1348), - [sym_pass_statement] = STATE(1348), - [sym_break_statement] = STATE(1348), - [sym_continue_statement] = STATE(1348), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1348), - [sym_nonlocal_statement] = STATE(1348), - [sym_exec_statement] = STATE(1348), - [sym_type_alias_statement] = STATE(1348), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(543), + [sym_import_statement] = STATE(1346), + [sym_future_import_statement] = STATE(1346), + [sym_import_from_statement] = STATE(1346), + [sym_print_statement] = STATE(1346), + [sym_assert_statement] = STATE(1346), + [sym_expression_statement] = STATE(1346), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1346), + [sym_delete_statement] = STATE(1346), + [sym_raise_statement] = STATE(1346), + [sym_pass_statement] = STATE(1346), + [sym_break_statement] = STATE(1346), + [sym_continue_statement] = STATE(1346), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1346), + [sym_nonlocal_statement] = STATE(1346), + [sym_exec_statement] = STATE(1346), + [sym_type_alias_statement] = STATE(1346), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(532), - [sym__indent] = ACTIONS(534), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(537), + [sym__indent] = ACTIONS(539), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(122)] = { - [sym__simple_statements] = STATE(445), - [sym_import_statement] = STATE(1332), - [sym_future_import_statement] = STATE(1332), - [sym_import_from_statement] = STATE(1332), - [sym_print_statement] = STATE(1332), - [sym_assert_statement] = STATE(1332), - [sym_expression_statement] = STATE(1332), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1332), - [sym_delete_statement] = STATE(1332), - [sym_raise_statement] = STATE(1332), - [sym_pass_statement] = STATE(1332), - [sym_break_statement] = STATE(1332), - [sym_continue_statement] = STATE(1332), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1332), - [sym_nonlocal_statement] = STATE(1332), - [sym_exec_statement] = STATE(1332), - [sym_type_alias_statement] = STATE(1332), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(608), + [sym_import_statement] = STATE(1346), + [sym_future_import_statement] = STATE(1346), + [sym_import_from_statement] = STATE(1346), + [sym_print_statement] = STATE(1346), + [sym_assert_statement] = STATE(1346), + [sym_expression_statement] = STATE(1346), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1346), + [sym_delete_statement] = STATE(1346), + [sym_raise_statement] = STATE(1346), + [sym_pass_statement] = STATE(1346), + [sym_break_statement] = STATE(1346), + [sym_continue_statement] = STATE(1346), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1346), + [sym_nonlocal_statement] = STATE(1346), + [sym_exec_statement] = STATE(1346), + [sym_type_alias_statement] = STATE(1346), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(536), - [sym__indent] = ACTIONS(538), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(541), + [sym__indent] = ACTIONS(543), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(123)] = { - [sym__simple_statements] = STATE(500), - [sym_import_statement] = STATE(1348), - [sym_future_import_statement] = STATE(1348), - [sym_import_from_statement] = STATE(1348), - [sym_print_statement] = STATE(1348), - [sym_assert_statement] = STATE(1348), - [sym_expression_statement] = STATE(1348), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1348), - [sym_delete_statement] = STATE(1348), - [sym_raise_statement] = STATE(1348), - [sym_pass_statement] = STATE(1348), - [sym_break_statement] = STATE(1348), - [sym_continue_statement] = STATE(1348), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1348), - [sym_nonlocal_statement] = STATE(1348), - [sym_exec_statement] = STATE(1348), - [sym_type_alias_statement] = STATE(1348), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(1183), + [sym_import_statement] = STATE(1402), + [sym_future_import_statement] = STATE(1402), + [sym_import_from_statement] = STATE(1402), + [sym_print_statement] = STATE(1402), + [sym_assert_statement] = STATE(1402), + [sym_expression_statement] = STATE(1402), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1402), + [sym_delete_statement] = STATE(1402), + [sym_raise_statement] = STATE(1402), + [sym_pass_statement] = STATE(1402), + [sym_break_statement] = STATE(1402), + [sym_continue_statement] = STATE(1402), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1402), + [sym_nonlocal_statement] = STATE(1402), + [sym_exec_statement] = STATE(1402), + [sym_type_alias_statement] = STATE(1402), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(540), - [sym__indent] = ACTIONS(542), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(545), + [sym__indent] = ACTIONS(547), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(124)] = { - [sym__simple_statements] = STATE(1187), - [sym_import_statement] = STATE(1373), - [sym_future_import_statement] = STATE(1373), - [sym_import_from_statement] = STATE(1373), - [sym_print_statement] = STATE(1373), - [sym_assert_statement] = STATE(1373), - [sym_expression_statement] = STATE(1373), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1373), - [sym_delete_statement] = STATE(1373), - [sym_raise_statement] = STATE(1373), - [sym_pass_statement] = STATE(1373), - [sym_break_statement] = STATE(1373), - [sym_continue_statement] = STATE(1373), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1373), - [sym_nonlocal_statement] = STATE(1373), - [sym_exec_statement] = STATE(1373), - [sym_type_alias_statement] = STATE(1373), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(446), + [sym_import_statement] = STATE(1346), + [sym_future_import_statement] = STATE(1346), + [sym_import_from_statement] = STATE(1346), + [sym_print_statement] = STATE(1346), + [sym_assert_statement] = STATE(1346), + [sym_expression_statement] = STATE(1346), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1346), + [sym_delete_statement] = STATE(1346), + [sym_raise_statement] = STATE(1346), + [sym_pass_statement] = STATE(1346), + [sym_break_statement] = STATE(1346), + [sym_continue_statement] = STATE(1346), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1346), + [sym_nonlocal_statement] = STATE(1346), + [sym_exec_statement] = STATE(1346), + [sym_type_alias_statement] = STATE(1346), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(544), - [sym__indent] = ACTIONS(546), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(549), + [sym__indent] = ACTIONS(551), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(125)] = { - [sym__simple_statements] = STATE(543), - [sym_import_statement] = STATE(1348), - [sym_future_import_statement] = STATE(1348), - [sym_import_from_statement] = STATE(1348), - [sym_print_statement] = STATE(1348), - [sym_assert_statement] = STATE(1348), - [sym_expression_statement] = STATE(1348), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1348), - [sym_delete_statement] = STATE(1348), - [sym_raise_statement] = STATE(1348), - [sym_pass_statement] = STATE(1348), - [sym_break_statement] = STATE(1348), - [sym_continue_statement] = STATE(1348), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1348), - [sym_nonlocal_statement] = STATE(1348), - [sym_exec_statement] = STATE(1348), - [sym_type_alias_statement] = STATE(1348), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(548), + [sym_import_statement] = STATE(1346), + [sym_future_import_statement] = STATE(1346), + [sym_import_from_statement] = STATE(1346), + [sym_print_statement] = STATE(1346), + [sym_assert_statement] = STATE(1346), + [sym_expression_statement] = STATE(1346), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1346), + [sym_delete_statement] = STATE(1346), + [sym_raise_statement] = STATE(1346), + [sym_pass_statement] = STATE(1346), + [sym_break_statement] = STATE(1346), + [sym_continue_statement] = STATE(1346), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1346), + [sym_nonlocal_statement] = STATE(1346), + [sym_exec_statement] = STATE(1346), + [sym_type_alias_statement] = STATE(1346), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(548), - [sym__indent] = ACTIONS(550), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(553), + [sym__indent] = ACTIONS(555), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(126)] = { - [sym__simple_statements] = STATE(481), - [sym_import_statement] = STATE(1348), - [sym_future_import_statement] = STATE(1348), - [sym_import_from_statement] = STATE(1348), - [sym_print_statement] = STATE(1348), - [sym_assert_statement] = STATE(1348), - [sym_expression_statement] = STATE(1348), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1348), - [sym_delete_statement] = STATE(1348), - [sym_raise_statement] = STATE(1348), - [sym_pass_statement] = STATE(1348), - [sym_break_statement] = STATE(1348), - [sym_continue_statement] = STATE(1348), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1348), - [sym_nonlocal_statement] = STATE(1348), - [sym_exec_statement] = STATE(1348), - [sym_type_alias_statement] = STATE(1348), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym__simple_statements] = STATE(585), + [sym_import_statement] = STATE(1345), + [sym_future_import_statement] = STATE(1345), + [sym_import_from_statement] = STATE(1345), + [sym_print_statement] = STATE(1345), + [sym_assert_statement] = STATE(1345), + [sym_expression_statement] = STATE(1345), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1345), + [sym_delete_statement] = STATE(1345), + [sym_raise_statement] = STATE(1345), + [sym_pass_statement] = STATE(1345), + [sym_break_statement] = STATE(1345), + [sym_continue_statement] = STATE(1345), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1345), + [sym_nonlocal_statement] = STATE(1345), + [sym_exec_statement] = STATE(1345), + [sym_type_alias_statement] = STATE(1345), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(552), - [sym__indent] = ACTIONS(554), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(557), + [sym__indent] = ACTIONS(559), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(127)] = { - [sym_import_statement] = STATE(1517), - [sym_future_import_statement] = STATE(1517), - [sym_import_from_statement] = STATE(1517), - [sym_print_statement] = STATE(1517), - [sym_assert_statement] = STATE(1517), - [sym_expression_statement] = STATE(1517), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1517), - [sym_delete_statement] = STATE(1517), - [sym_raise_statement] = STATE(1517), - [sym_pass_statement] = STATE(1517), - [sym_break_statement] = STATE(1517), - [sym_continue_statement] = STATE(1517), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1517), - [sym_nonlocal_statement] = STATE(1517), - [sym_exec_statement] = STATE(1517), - [sym_type_alias_statement] = STATE(1517), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym_import_statement] = STATE(1578), + [sym_future_import_statement] = STATE(1578), + [sym_import_from_statement] = STATE(1578), + [sym_print_statement] = STATE(1578), + [sym_assert_statement] = STATE(1578), + [sym_expression_statement] = STATE(1578), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1578), + [sym_delete_statement] = STATE(1578), + [sym_raise_statement] = STATE(1578), + [sym_pass_statement] = STATE(1578), + [sym_break_statement] = STATE(1578), + [sym_continue_statement] = STATE(1578), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1578), + [sym_nonlocal_statement] = STATE(1578), + [sym_exec_statement] = STATE(1578), + [sym_type_alias_statement] = STATE(1578), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(556), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(561), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(128)] = { - [sym_import_statement] = STATE(1517), - [sym_future_import_statement] = STATE(1517), - [sym_import_from_statement] = STATE(1517), - [sym_print_statement] = STATE(1517), - [sym_assert_statement] = STATE(1517), - [sym_expression_statement] = STATE(1517), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1517), - [sym_delete_statement] = STATE(1517), - [sym_raise_statement] = STATE(1517), - [sym_pass_statement] = STATE(1517), - [sym_break_statement] = STATE(1517), - [sym_continue_statement] = STATE(1517), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1517), - [sym_nonlocal_statement] = STATE(1517), - [sym_exec_statement] = STATE(1517), - [sym_type_alias_statement] = STATE(1517), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym_import_statement] = STATE(1578), + [sym_future_import_statement] = STATE(1578), + [sym_import_from_statement] = STATE(1578), + [sym_print_statement] = STATE(1578), + [sym_assert_statement] = STATE(1578), + [sym_expression_statement] = STATE(1578), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1578), + [sym_delete_statement] = STATE(1578), + [sym_raise_statement] = STATE(1578), + [sym_pass_statement] = STATE(1578), + [sym_break_statement] = STATE(1578), + [sym_continue_statement] = STATE(1578), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1578), + [sym_nonlocal_statement] = STATE(1578), + [sym_exec_statement] = STATE(1578), + [sym_type_alias_statement] = STATE(1578), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(558), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(563), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(129)] = { - [sym_import_statement] = STATE(1517), - [sym_future_import_statement] = STATE(1517), - [sym_import_from_statement] = STATE(1517), - [sym_print_statement] = STATE(1517), - [sym_assert_statement] = STATE(1517), - [sym_expression_statement] = STATE(1517), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1517), - [sym_delete_statement] = STATE(1517), - [sym_raise_statement] = STATE(1517), - [sym_pass_statement] = STATE(1517), - [sym_break_statement] = STATE(1517), - [sym_continue_statement] = STATE(1517), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1517), - [sym_nonlocal_statement] = STATE(1517), - [sym_exec_statement] = STATE(1517), - [sym_type_alias_statement] = STATE(1517), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym_import_statement] = STATE(1578), + [sym_future_import_statement] = STATE(1578), + [sym_import_from_statement] = STATE(1578), + [sym_print_statement] = STATE(1578), + [sym_assert_statement] = STATE(1578), + [sym_expression_statement] = STATE(1578), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1578), + [sym_delete_statement] = STATE(1578), + [sym_raise_statement] = STATE(1578), + [sym_pass_statement] = STATE(1578), + [sym_break_statement] = STATE(1578), + [sym_continue_statement] = STATE(1578), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1578), + [sym_nonlocal_statement] = STATE(1578), + [sym_exec_statement] = STATE(1578), + [sym_type_alias_statement] = STATE(1578), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(560), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(565), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(130)] = { - [sym_import_statement] = STATE(1517), - [sym_future_import_statement] = STATE(1517), - [sym_import_from_statement] = STATE(1517), - [sym_print_statement] = STATE(1517), - [sym_assert_statement] = STATE(1517), - [sym_expression_statement] = STATE(1517), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1517), - [sym_delete_statement] = STATE(1517), - [sym_raise_statement] = STATE(1517), - [sym_pass_statement] = STATE(1517), - [sym_break_statement] = STATE(1517), - [sym_continue_statement] = STATE(1517), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1517), - [sym_nonlocal_statement] = STATE(1517), - [sym_exec_statement] = STATE(1517), - [sym_type_alias_statement] = STATE(1517), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym_import_statement] = STATE(1578), + [sym_future_import_statement] = STATE(1578), + [sym_import_from_statement] = STATE(1578), + [sym_print_statement] = STATE(1578), + [sym_assert_statement] = STATE(1578), + [sym_expression_statement] = STATE(1578), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1578), + [sym_delete_statement] = STATE(1578), + [sym_raise_statement] = STATE(1578), + [sym_pass_statement] = STATE(1578), + [sym_break_statement] = STATE(1578), + [sym_continue_statement] = STATE(1578), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1578), + [sym_nonlocal_statement] = STATE(1578), + [sym_exec_statement] = STATE(1578), + [sym_type_alias_statement] = STATE(1578), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(562), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(567), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(131)] = { - [sym_import_statement] = STATE(1517), - [sym_future_import_statement] = STATE(1517), - [sym_import_from_statement] = STATE(1517), - [sym_print_statement] = STATE(1517), - [sym_assert_statement] = STATE(1517), - [sym_expression_statement] = STATE(1517), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1517), - [sym_delete_statement] = STATE(1517), - [sym_raise_statement] = STATE(1517), - [sym_pass_statement] = STATE(1517), - [sym_break_statement] = STATE(1517), - [sym_continue_statement] = STATE(1517), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1517), - [sym_nonlocal_statement] = STATE(1517), - [sym_exec_statement] = STATE(1517), - [sym_type_alias_statement] = STATE(1517), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym_import_statement] = STATE(1578), + [sym_future_import_statement] = STATE(1578), + [sym_import_from_statement] = STATE(1578), + [sym_print_statement] = STATE(1578), + [sym_assert_statement] = STATE(1578), + [sym_expression_statement] = STATE(1578), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1578), + [sym_delete_statement] = STATE(1578), + [sym_raise_statement] = STATE(1578), + [sym_pass_statement] = STATE(1578), + [sym_break_statement] = STATE(1578), + [sym_continue_statement] = STATE(1578), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1578), + [sym_nonlocal_statement] = STATE(1578), + [sym_exec_statement] = STATE(1578), + [sym_type_alias_statement] = STATE(1578), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(564), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(569), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(132)] = { - [sym_import_statement] = STATE(1517), - [sym_future_import_statement] = STATE(1517), - [sym_import_from_statement] = STATE(1517), - [sym_print_statement] = STATE(1517), - [sym_assert_statement] = STATE(1517), - [sym_expression_statement] = STATE(1517), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1517), - [sym_delete_statement] = STATE(1517), - [sym_raise_statement] = STATE(1517), - [sym_pass_statement] = STATE(1517), - [sym_break_statement] = STATE(1517), - [sym_continue_statement] = STATE(1517), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1517), - [sym_nonlocal_statement] = STATE(1517), - [sym_exec_statement] = STATE(1517), - [sym_type_alias_statement] = STATE(1517), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym_import_statement] = STATE(1578), + [sym_future_import_statement] = STATE(1578), + [sym_import_from_statement] = STATE(1578), + [sym_print_statement] = STATE(1578), + [sym_assert_statement] = STATE(1578), + [sym_expression_statement] = STATE(1578), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1578), + [sym_delete_statement] = STATE(1578), + [sym_raise_statement] = STATE(1578), + [sym_pass_statement] = STATE(1578), + [sym_break_statement] = STATE(1578), + [sym_continue_statement] = STATE(1578), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1578), + [sym_nonlocal_statement] = STATE(1578), + [sym_exec_statement] = STATE(1578), + [sym_type_alias_statement] = STATE(1578), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__newline] = ACTIONS(566), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__newline] = ACTIONS(571), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(133)] = { - [sym_import_statement] = STATE(1517), - [sym_future_import_statement] = STATE(1517), - [sym_import_from_statement] = STATE(1517), - [sym_print_statement] = STATE(1517), - [sym_assert_statement] = STATE(1517), - [sym_expression_statement] = STATE(1517), - [sym_named_expression] = STATE(1158), - [sym_return_statement] = STATE(1517), - [sym_delete_statement] = STATE(1517), - [sym_raise_statement] = STATE(1517), - [sym_pass_statement] = STATE(1517), - [sym_break_statement] = STATE(1517), - [sym_continue_statement] = STATE(1517), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_global_statement] = STATE(1517), - [sym_nonlocal_statement] = STATE(1517), - [sym_exec_statement] = STATE(1517), - [sym_type_alias_statement] = STATE(1517), - [sym_expression_list] = STATE(1551), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1185), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1551), - [sym_augmented_assignment] = STATE(1551), - [sym_pattern_list] = STATE(1024), - [sym_yield] = STATE(1551), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym_import_statement] = STATE(1578), + [sym_future_import_statement] = STATE(1578), + [sym_import_from_statement] = STATE(1578), + [sym_print_statement] = STATE(1578), + [sym_assert_statement] = STATE(1578), + [sym_expression_statement] = STATE(1578), + [sym_named_expression] = STATE(1126), + [sym_return_statement] = STATE(1578), + [sym_delete_statement] = STATE(1578), + [sym_raise_statement] = STATE(1578), + [sym_pass_statement] = STATE(1578), + [sym_break_statement] = STATE(1578), + [sym_continue_statement] = STATE(1578), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_global_statement] = STATE(1578), + [sym_nonlocal_statement] = STATE(1578), + [sym_exec_statement] = STATE(1578), + [sym_type_alias_statement] = STATE(1578), + [sym_expression_list] = STATE(1545), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1191), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1545), + [sym_augmented_assignment] = STATE(1545), + [sym_pattern_list] = STATE(1030), + [sym_yield] = STATE(1545), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), - [anon_sym_import] = ACTIONS(9), - [anon_sym_from] = ACTIONS(11), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(17), - [anon_sym_assert] = ACTIONS(19), - [anon_sym_return] = ACTIONS(21), - [anon_sym_del] = ACTIONS(23), - [anon_sym_raise] = ACTIONS(25), - [anon_sym_pass] = ACTIONS(27), - [anon_sym_break] = ACTIONS(29), - [anon_sym_continue] = ACTIONS(31), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_global] = ACTIONS(57), - [anon_sym_nonlocal] = ACTIONS(59), - [anon_sym_exec] = ACTIONS(61), - [anon_sym_type] = ACTIONS(63), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(9), + [anon_sym_import] = ACTIONS(11), + [anon_sym_from] = ACTIONS(13), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(19), + [anon_sym_assert] = ACTIONS(21), + [anon_sym_return] = ACTIONS(23), + [anon_sym_del] = ACTIONS(25), + [anon_sym_raise] = ACTIONS(27), + [anon_sym_pass] = ACTIONS(29), + [anon_sym_break] = ACTIONS(31), + [anon_sym_continue] = ACTIONS(33), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_global] = ACTIONS(59), + [anon_sym_nonlocal] = ACTIONS(61), + [anon_sym_exec] = ACTIONS(63), + [anon_sym_type] = ACTIONS(65), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(134)] = { - [sym_primary_expression] = STATE(810), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_attribute] = STATE(908), - [sym_subscript] = STATE(908), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [sym_identifier] = ACTIONS(77), - [anon_sym_DOT] = ACTIONS(265), - [anon_sym_LPAREN] = ACTIONS(568), - [anon_sym_COMMA] = ACTIONS(270), - [anon_sym_STAR] = ACTIONS(265), - [anon_sym_print] = ACTIONS(570), - [anon_sym_GT_GT] = ACTIONS(265), - [anon_sym_COLON_EQ] = ACTIONS(278), - [anon_sym_if] = ACTIONS(265), - [anon_sym_COLON] = ACTIONS(280), - [anon_sym_async] = ACTIONS(570), - [anon_sym_in] = ACTIONS(265), - [anon_sym_match] = ACTIONS(570), - [anon_sym_PIPE] = ACTIONS(265), - [anon_sym_DASH] = ACTIONS(572), - [anon_sym_PLUS] = ACTIONS(572), - [anon_sym_LBRACK] = ACTIONS(574), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(265), - [anon_sym_EQ] = ACTIONS(280), - [anon_sym_exec] = ACTIONS(570), - [anon_sym_type] = ACTIONS(570), - [anon_sym_AT] = ACTIONS(265), - [anon_sym_not] = ACTIONS(265), - [anon_sym_and] = ACTIONS(265), - [anon_sym_or] = ACTIONS(265), - [anon_sym_SLASH] = ACTIONS(265), - [anon_sym_PERCENT] = ACTIONS(265), - [anon_sym_SLASH_SLASH] = ACTIONS(265), - [anon_sym_AMP] = ACTIONS(265), - [anon_sym_CARET] = ACTIONS(265), - [anon_sym_LT_LT] = ACTIONS(265), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_LT] = ACTIONS(265), - [anon_sym_LT_EQ] = ACTIONS(298), - [anon_sym_EQ_EQ] = ACTIONS(298), - [anon_sym_BANG_EQ] = ACTIONS(298), - [anon_sym_GT_EQ] = ACTIONS(298), - [anon_sym_GT] = ACTIONS(265), - [anon_sym_LT_GT] = ACTIONS(298), - [anon_sym_is] = ACTIONS(265), - [anon_sym_PLUS_EQ] = ACTIONS(302), - [anon_sym_DASH_EQ] = ACTIONS(302), - [anon_sym_STAR_EQ] = ACTIONS(302), - [anon_sym_SLASH_EQ] = ACTIONS(302), - [anon_sym_AT_EQ] = ACTIONS(302), - [anon_sym_SLASH_SLASH_EQ] = ACTIONS(302), - [anon_sym_PERCENT_EQ] = ACTIONS(302), - [anon_sym_STAR_STAR_EQ] = ACTIONS(302), - [anon_sym_GT_GT_EQ] = ACTIONS(302), - [anon_sym_LT_LT_EQ] = ACTIONS(302), - [anon_sym_AMP_EQ] = ACTIONS(302), - [anon_sym_CARET_EQ] = ACTIONS(302), - [anon_sym_PIPE_EQ] = ACTIONS(302), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(576), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [sym_primary_expression] = STATE(799), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_attribute] = STATE(950), + [sym_subscript] = STATE(950), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [sym_identifier] = ACTIONS(79), + [anon_sym_lazy] = ACTIONS(573), + [anon_sym_DOT] = ACTIONS(272), + [anon_sym_LPAREN] = ACTIONS(575), + [anon_sym_COMMA] = ACTIONS(277), + [anon_sym_STAR] = ACTIONS(272), + [anon_sym_print] = ACTIONS(573), + [anon_sym_GT_GT] = ACTIONS(272), + [anon_sym_COLON_EQ] = ACTIONS(283), + [anon_sym_if] = ACTIONS(272), + [anon_sym_COLON] = ACTIONS(285), + [anon_sym_async] = ACTIONS(573), + [anon_sym_in] = ACTIONS(272), + [anon_sym_match] = ACTIONS(573), + [anon_sym_PIPE] = ACTIONS(272), + [anon_sym_DASH] = ACTIONS(577), + [anon_sym_PLUS] = ACTIONS(577), + [anon_sym_LBRACK] = ACTIONS(579), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(272), + [anon_sym_EQ] = ACTIONS(285), + [anon_sym_exec] = ACTIONS(573), + [anon_sym_type] = ACTIONS(573), + [anon_sym_AT] = ACTIONS(272), + [anon_sym_not] = ACTIONS(272), + [anon_sym_and] = ACTIONS(272), + [anon_sym_or] = ACTIONS(272), + [anon_sym_SLASH] = ACTIONS(272), + [anon_sym_PERCENT] = ACTIONS(272), + [anon_sym_SLASH_SLASH] = ACTIONS(272), + [anon_sym_AMP] = ACTIONS(272), + [anon_sym_CARET] = ACTIONS(272), + [anon_sym_LT_LT] = ACTIONS(272), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_LT] = ACTIONS(272), + [anon_sym_LT_EQ] = ACTIONS(303), + [anon_sym_EQ_EQ] = ACTIONS(303), + [anon_sym_BANG_EQ] = ACTIONS(303), + [anon_sym_GT_EQ] = ACTIONS(303), + [anon_sym_GT] = ACTIONS(272), + [anon_sym_LT_GT] = ACTIONS(303), + [anon_sym_is] = ACTIONS(272), + [anon_sym_PLUS_EQ] = ACTIONS(307), + [anon_sym_DASH_EQ] = ACTIONS(307), + [anon_sym_STAR_EQ] = ACTIONS(307), + [anon_sym_SLASH_EQ] = ACTIONS(307), + [anon_sym_AT_EQ] = ACTIONS(307), + [anon_sym_SLASH_SLASH_EQ] = ACTIONS(307), + [anon_sym_PERCENT_EQ] = ACTIONS(307), + [anon_sym_STAR_STAR_EQ] = ACTIONS(307), + [anon_sym_GT_GT_EQ] = ACTIONS(307), + [anon_sym_LT_LT_EQ] = ACTIONS(307), + [anon_sym_AMP_EQ] = ACTIONS(307), + [anon_sym_CARET_EQ] = ACTIONS(307), + [anon_sym_PIPE_EQ] = ACTIONS(307), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(581), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [anon_sym_SEMI] = ACTIONS(298), - [sym__newline] = ACTIONS(298), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [anon_sym_SEMI] = ACTIONS(303), + [sym__newline] = ACTIONS(303), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(135)] = { - [sym_primary_expression] = STATE(735), - [sym_binary_operator] = STATE(724), - [sym_unary_operator] = STATE(724), - [sym_attribute] = STATE(724), - [sym_subscript] = STATE(724), - [sym_call] = STATE(724), - [sym_list] = STATE(724), - [sym_set] = STATE(724), - [sym_tuple] = STATE(724), - [sym_dictionary] = STATE(724), - [sym_list_comprehension] = STATE(724), - [sym_dictionary_comprehension] = STATE(724), - [sym_set_comprehension] = STATE(724), - [sym_generator_expression] = STATE(724), - [sym_parenthesized_expression] = STATE(724), - [sym_concatenated_string] = STATE(724), - [sym_string] = STATE(621), - [sym_concatenated_template_string] = STATE(724), - [sym_template_string] = STATE(624), - [sym_await] = STATE(724), - [sym_identifier] = ACTIONS(306), - [anon_sym_DOT] = ACTIONS(265), - [anon_sym_LPAREN] = ACTIONS(578), - [anon_sym_RPAREN] = ACTIONS(580), - [anon_sym_COMMA] = ACTIONS(580), - [anon_sym_STAR] = ACTIONS(265), + [sym_primary_expression] = STATE(766), + [sym_binary_operator] = STATE(720), + [sym_unary_operator] = STATE(720), + [sym_attribute] = STATE(720), + [sym_subscript] = STATE(720), + [sym_call] = STATE(720), + [sym_list] = STATE(720), + [sym_set] = STATE(720), + [sym_tuple] = STATE(720), + [sym_dictionary] = STATE(720), + [sym_list_comprehension] = STATE(720), + [sym_dictionary_comprehension] = STATE(720), + [sym_set_comprehension] = STATE(720), + [sym_generator_expression] = STATE(720), + [sym_parenthesized_expression] = STATE(720), + [sym_concatenated_string] = STATE(720), + [sym_string] = STATE(694), + [sym_concatenated_template_string] = STATE(720), + [sym_template_string] = STATE(698), + [sym_await] = STATE(720), + [sym_identifier] = ACTIONS(311), + [anon_sym_lazy] = ACTIONS(583), + [anon_sym_DOT] = ACTIONS(272), + [anon_sym_LPAREN] = ACTIONS(585), + [anon_sym_COMMA] = ACTIONS(587), + [anon_sym_STAR] = ACTIONS(272), [anon_sym_print] = ACTIONS(583), - [anon_sym_GT_GT] = ACTIONS(265), - [anon_sym_COLON_EQ] = ACTIONS(585), - [anon_sym_if] = ACTIONS(265), - [anon_sym_COLON] = ACTIONS(587), + [anon_sym_GT_GT] = ACTIONS(272), + [anon_sym_COLON_EQ] = ACTIONS(590), + [anon_sym_if] = ACTIONS(272), + [anon_sym_COLON] = ACTIONS(592), [anon_sym_async] = ACTIONS(583), - [anon_sym_in] = ACTIONS(265), + [anon_sym_in] = ACTIONS(272), [anon_sym_match] = ACTIONS(583), - [anon_sym_PIPE] = ACTIONS(265), - [anon_sym_DASH] = ACTIONS(589), - [anon_sym_PLUS] = ACTIONS(589), - [anon_sym_LBRACK] = ACTIONS(591), - [anon_sym_RBRACK] = ACTIONS(580), - [anon_sym_LBRACE] = ACTIONS(288), - [anon_sym_STAR_STAR] = ACTIONS(265), - [anon_sym_EQ] = ACTIONS(587), + [anon_sym_PIPE] = ACTIONS(272), + [anon_sym_DASH] = ACTIONS(594), + [anon_sym_PLUS] = ACTIONS(594), + [anon_sym_LBRACK] = ACTIONS(596), + [anon_sym_LBRACE] = ACTIONS(293), + [anon_sym_STAR_STAR] = ACTIONS(272), + [anon_sym_EQ] = ACTIONS(592), [anon_sym_exec] = ACTIONS(583), [anon_sym_type] = ACTIONS(583), - [anon_sym_AT] = ACTIONS(265), - [anon_sym_not] = ACTIONS(265), - [anon_sym_and] = ACTIONS(265), - [anon_sym_or] = ACTIONS(265), - [anon_sym_SLASH] = ACTIONS(265), - [anon_sym_PERCENT] = ACTIONS(265), - [anon_sym_SLASH_SLASH] = ACTIONS(265), - [anon_sym_AMP] = ACTIONS(265), - [anon_sym_CARET] = ACTIONS(265), - [anon_sym_LT_LT] = ACTIONS(265), - [anon_sym_TILDE] = ACTIONS(296), - [anon_sym_LT] = ACTIONS(265), - [anon_sym_LT_EQ] = ACTIONS(298), - [anon_sym_EQ_EQ] = ACTIONS(298), - [anon_sym_BANG_EQ] = ACTIONS(298), - [anon_sym_GT_EQ] = ACTIONS(298), - [anon_sym_GT] = ACTIONS(265), - [anon_sym_LT_GT] = ACTIONS(298), - [anon_sym_is] = ACTIONS(265), - [anon_sym_PLUS_EQ] = ACTIONS(593), - [anon_sym_DASH_EQ] = ACTIONS(593), - [anon_sym_STAR_EQ] = ACTIONS(593), - [anon_sym_SLASH_EQ] = ACTIONS(593), - [anon_sym_AT_EQ] = ACTIONS(593), - [anon_sym_SLASH_SLASH_EQ] = ACTIONS(593), - [anon_sym_PERCENT_EQ] = ACTIONS(593), - [anon_sym_STAR_STAR_EQ] = ACTIONS(593), - [anon_sym_GT_GT_EQ] = ACTIONS(593), - [anon_sym_LT_LT_EQ] = ACTIONS(593), - [anon_sym_AMP_EQ] = ACTIONS(593), - [anon_sym_CARET_EQ] = ACTIONS(593), - [anon_sym_PIPE_EQ] = ACTIONS(593), - [sym_ellipsis] = ACTIONS(304), - [sym_integer] = ACTIONS(306), - [sym_float] = ACTIONS(304), - [anon_sym_await] = ACTIONS(595), - [sym_true] = ACTIONS(306), - [sym_false] = ACTIONS(306), - [sym_none] = ACTIONS(306), + [anon_sym_AT] = ACTIONS(272), + [anon_sym_not] = ACTIONS(272), + [anon_sym_and] = ACTIONS(272), + [anon_sym_or] = ACTIONS(272), + [anon_sym_SLASH] = ACTIONS(272), + [anon_sym_PERCENT] = ACTIONS(272), + [anon_sym_SLASH_SLASH] = ACTIONS(272), + [anon_sym_AMP] = ACTIONS(272), + [anon_sym_CARET] = ACTIONS(272), + [anon_sym_LT_LT] = ACTIONS(272), + [anon_sym_TILDE] = ACTIONS(301), + [anon_sym_LT] = ACTIONS(272), + [anon_sym_LT_EQ] = ACTIONS(303), + [anon_sym_EQ_EQ] = ACTIONS(303), + [anon_sym_BANG_EQ] = ACTIONS(303), + [anon_sym_GT_EQ] = ACTIONS(303), + [anon_sym_GT] = ACTIONS(272), + [anon_sym_LT_GT] = ACTIONS(303), + [anon_sym_is] = ACTIONS(272), + [anon_sym_PLUS_EQ] = ACTIONS(598), + [anon_sym_DASH_EQ] = ACTIONS(598), + [anon_sym_STAR_EQ] = ACTIONS(598), + [anon_sym_SLASH_EQ] = ACTIONS(598), + [anon_sym_AT_EQ] = ACTIONS(598), + [anon_sym_SLASH_SLASH_EQ] = ACTIONS(598), + [anon_sym_PERCENT_EQ] = ACTIONS(598), + [anon_sym_STAR_STAR_EQ] = ACTIONS(598), + [anon_sym_GT_GT_EQ] = ACTIONS(598), + [anon_sym_LT_LT_EQ] = ACTIONS(598), + [anon_sym_AMP_EQ] = ACTIONS(598), + [anon_sym_CARET_EQ] = ACTIONS(598), + [anon_sym_PIPE_EQ] = ACTIONS(598), + [sym_ellipsis] = ACTIONS(309), + [sym_integer] = ACTIONS(311), + [sym_float] = ACTIONS(309), + [anon_sym_await] = ACTIONS(600), + [sym_true] = ACTIONS(311), + [sym_false] = ACTIONS(311), + [sym_none] = ACTIONS(311), [sym_comment] = ACTIONS(3), - [sym__string_start] = ACTIONS(310), - [sym__template_string_start] = ACTIONS(312), + [sym__string_start] = ACTIONS(315), + [sym__template_string_start] = ACTIONS(317), }, [STATE(136)] = { - [sym_primary_expression] = STATE(735), - [sym_binary_operator] = STATE(724), - [sym_unary_operator] = STATE(724), - [sym_attribute] = STATE(724), - [sym_subscript] = STATE(724), - [sym_call] = STATE(724), - [sym_list] = STATE(724), - [sym_set] = STATE(724), - [sym_tuple] = STATE(724), - [sym_dictionary] = STATE(724), - [sym_list_comprehension] = STATE(724), - [sym_dictionary_comprehension] = STATE(724), - [sym_set_comprehension] = STATE(724), - [sym_generator_expression] = STATE(724), - [sym_parenthesized_expression] = STATE(724), - [sym_concatenated_string] = STATE(724), - [sym_string] = STATE(621), - [sym_concatenated_template_string] = STATE(724), - [sym_template_string] = STATE(624), - [sym_await] = STATE(724), - [sym_identifier] = ACTIONS(306), - [anon_sym_DOT] = ACTIONS(265), - [anon_sym_LPAREN] = ACTIONS(578), - [anon_sym_RPAREN] = ACTIONS(298), - [anon_sym_COMMA] = ACTIONS(298), - [anon_sym_STAR] = ACTIONS(265), + [sym_primary_expression] = STATE(766), + [sym_binary_operator] = STATE(720), + [sym_unary_operator] = STATE(720), + [sym_attribute] = STATE(720), + [sym_subscript] = STATE(720), + [sym_call] = STATE(720), + [sym_list] = STATE(720), + [sym_set] = STATE(720), + [sym_tuple] = STATE(720), + [sym_dictionary] = STATE(720), + [sym_list_comprehension] = STATE(720), + [sym_dictionary_comprehension] = STATE(720), + [sym_set_comprehension] = STATE(720), + [sym_generator_expression] = STATE(720), + [sym_parenthesized_expression] = STATE(720), + [sym_concatenated_string] = STATE(720), + [sym_string] = STATE(694), + [sym_concatenated_template_string] = STATE(720), + [sym_template_string] = STATE(698), + [sym_await] = STATE(720), + [sym_identifier] = ACTIONS(311), + [anon_sym_lazy] = ACTIONS(583), + [anon_sym_DOT] = ACTIONS(272), + [anon_sym_LPAREN] = ACTIONS(585), + [anon_sym_RPAREN] = ACTIONS(303), + [anon_sym_COMMA] = ACTIONS(303), + [anon_sym_STAR] = ACTIONS(272), [anon_sym_print] = ACTIONS(583), - [anon_sym_GT_GT] = ACTIONS(298), - [anon_sym_COLON_EQ] = ACTIONS(585), - [anon_sym_if] = ACTIONS(265), - [anon_sym_COLON] = ACTIONS(265), - [anon_sym_else] = ACTIONS(265), + [anon_sym_GT_GT] = ACTIONS(303), + [anon_sym_COLON_EQ] = ACTIONS(590), + [anon_sym_if] = ACTIONS(272), + [anon_sym_COLON] = ACTIONS(272), + [anon_sym_else] = ACTIONS(272), [anon_sym_async] = ACTIONS(583), - [anon_sym_in] = ACTIONS(265), + [anon_sym_in] = ACTIONS(272), [anon_sym_match] = ACTIONS(583), - [anon_sym_PIPE] = ACTIONS(298), - [anon_sym_DASH] = ACTIONS(296), - [anon_sym_PLUS] = ACTIONS(296), - [anon_sym_LBRACK] = ACTIONS(591), - [anon_sym_RBRACK] = ACTIONS(298), - [anon_sym_LBRACE] = ACTIONS(288), - [anon_sym_RBRACE] = ACTIONS(298), - [anon_sym_STAR_STAR] = ACTIONS(298), - [anon_sym_EQ] = ACTIONS(265), + [anon_sym_PIPE] = ACTIONS(303), + [anon_sym_DASH] = ACTIONS(301), + [anon_sym_PLUS] = ACTIONS(301), + [anon_sym_LBRACK] = ACTIONS(596), + [anon_sym_RBRACK] = ACTIONS(303), + [anon_sym_LBRACE] = ACTIONS(293), + [anon_sym_RBRACE] = ACTIONS(303), + [anon_sym_STAR_STAR] = ACTIONS(303), + [anon_sym_EQ] = ACTIONS(272), [anon_sym_exec] = ACTIONS(583), [anon_sym_type] = ACTIONS(583), - [anon_sym_AT] = ACTIONS(298), - [anon_sym_not] = ACTIONS(265), - [anon_sym_and] = ACTIONS(265), - [anon_sym_or] = ACTIONS(265), - [anon_sym_SLASH] = ACTIONS(265), - [anon_sym_PERCENT] = ACTIONS(298), - [anon_sym_SLASH_SLASH] = ACTIONS(298), - [anon_sym_AMP] = ACTIONS(298), - [anon_sym_CARET] = ACTIONS(298), - [anon_sym_LT_LT] = ACTIONS(298), - [anon_sym_TILDE] = ACTIONS(296), - [anon_sym_LT] = ACTIONS(265), - [anon_sym_LT_EQ] = ACTIONS(298), - [anon_sym_EQ_EQ] = ACTIONS(298), - [anon_sym_BANG_EQ] = ACTIONS(298), - [anon_sym_GT_EQ] = ACTIONS(298), - [anon_sym_GT] = ACTIONS(265), - [anon_sym_LT_GT] = ACTIONS(298), - [anon_sym_is] = ACTIONS(265), - [sym_ellipsis] = ACTIONS(304), - [sym_integer] = ACTIONS(306), - [sym_float] = ACTIONS(304), - [anon_sym_await] = ACTIONS(595), - [sym_true] = ACTIONS(306), - [sym_false] = ACTIONS(306), - [sym_none] = ACTIONS(306), + [anon_sym_AT] = ACTIONS(303), + [anon_sym_not] = ACTIONS(272), + [anon_sym_and] = ACTIONS(272), + [anon_sym_or] = ACTIONS(272), + [anon_sym_SLASH] = ACTIONS(272), + [anon_sym_PERCENT] = ACTIONS(303), + [anon_sym_SLASH_SLASH] = ACTIONS(303), + [anon_sym_AMP] = ACTIONS(303), + [anon_sym_CARET] = ACTIONS(303), + [anon_sym_LT_LT] = ACTIONS(303), + [anon_sym_TILDE] = ACTIONS(301), + [anon_sym_LT] = ACTIONS(272), + [anon_sym_LT_EQ] = ACTIONS(303), + [anon_sym_EQ_EQ] = ACTIONS(303), + [anon_sym_BANG_EQ] = ACTIONS(303), + [anon_sym_GT_EQ] = ACTIONS(303), + [anon_sym_GT] = ACTIONS(272), + [anon_sym_LT_GT] = ACTIONS(303), + [anon_sym_is] = ACTIONS(272), + [sym_ellipsis] = ACTIONS(309), + [sym_integer] = ACTIONS(311), + [sym_float] = ACTIONS(309), + [anon_sym_await] = ACTIONS(600), + [sym_true] = ACTIONS(311), + [sym_false] = ACTIONS(311), + [sym_none] = ACTIONS(311), [sym_comment] = ACTIONS(3), - [sym__string_start] = ACTIONS(310), - [sym__template_string_start] = ACTIONS(312), + [sym__string_start] = ACTIONS(315), + [sym__template_string_start] = ACTIONS(317), }, [STATE(137)] = { - [sym_primary_expression] = STATE(735), - [sym_binary_operator] = STATE(724), - [sym_unary_operator] = STATE(724), - [sym_attribute] = STATE(724), - [sym_subscript] = STATE(724), - [sym_call] = STATE(724), - [sym_list] = STATE(724), - [sym_set] = STATE(724), - [sym_tuple] = STATE(724), - [sym_dictionary] = STATE(724), - [sym_list_comprehension] = STATE(724), - [sym_dictionary_comprehension] = STATE(724), - [sym_set_comprehension] = STATE(724), - [sym_generator_expression] = STATE(724), - [sym_parenthesized_expression] = STATE(724), - [sym_concatenated_string] = STATE(724), - [sym_string] = STATE(621), - [sym_concatenated_template_string] = STATE(724), - [sym_template_string] = STATE(624), - [sym_await] = STATE(724), - [sym_identifier] = ACTIONS(306), - [anon_sym_DOT] = ACTIONS(265), - [anon_sym_LPAREN] = ACTIONS(578), - [anon_sym_RPAREN] = ACTIONS(298), - [anon_sym_COMMA] = ACTIONS(298), - [anon_sym_STAR] = ACTIONS(265), + [sym_primary_expression] = STATE(766), + [sym_binary_operator] = STATE(720), + [sym_unary_operator] = STATE(720), + [sym_attribute] = STATE(720), + [sym_subscript] = STATE(720), + [sym_call] = STATE(720), + [sym_list] = STATE(720), + [sym_set] = STATE(720), + [sym_tuple] = STATE(720), + [sym_dictionary] = STATE(720), + [sym_list_comprehension] = STATE(720), + [sym_dictionary_comprehension] = STATE(720), + [sym_set_comprehension] = STATE(720), + [sym_generator_expression] = STATE(720), + [sym_parenthesized_expression] = STATE(720), + [sym_concatenated_string] = STATE(720), + [sym_string] = STATE(694), + [sym_concatenated_template_string] = STATE(720), + [sym_template_string] = STATE(698), + [sym_await] = STATE(720), + [sym_identifier] = ACTIONS(311), + [anon_sym_lazy] = ACTIONS(583), + [anon_sym_DOT] = ACTIONS(272), + [anon_sym_LPAREN] = ACTIONS(585), + [anon_sym_RPAREN] = ACTIONS(303), + [anon_sym_COMMA] = ACTIONS(303), + [anon_sym_STAR] = ACTIONS(272), [anon_sym_print] = ACTIONS(583), - [anon_sym_GT_GT] = ACTIONS(298), - [anon_sym_if] = ACTIONS(265), - [anon_sym_COLON] = ACTIONS(298), - [anon_sym_else] = ACTIONS(265), + [anon_sym_GT_GT] = ACTIONS(303), + [anon_sym_if] = ACTIONS(272), + [anon_sym_COLON] = ACTIONS(303), + [anon_sym_else] = ACTIONS(272), [anon_sym_async] = ACTIONS(583), - [anon_sym_in] = ACTIONS(265), + [anon_sym_in] = ACTIONS(272), [anon_sym_match] = ACTIONS(583), - [anon_sym_PIPE] = ACTIONS(298), - [anon_sym_DASH] = ACTIONS(296), - [anon_sym_PLUS] = ACTIONS(296), - [anon_sym_LBRACK] = ACTIONS(591), - [anon_sym_RBRACK] = ACTIONS(298), - [anon_sym_LBRACE] = ACTIONS(288), - [anon_sym_RBRACE] = ACTIONS(298), - [anon_sym_STAR_STAR] = ACTIONS(298), - [anon_sym_EQ] = ACTIONS(265), + [anon_sym_PIPE] = ACTIONS(303), + [anon_sym_DASH] = ACTIONS(301), + [anon_sym_PLUS] = ACTIONS(301), + [anon_sym_LBRACK] = ACTIONS(596), + [anon_sym_RBRACK] = ACTIONS(303), + [anon_sym_LBRACE] = ACTIONS(293), + [anon_sym_RBRACE] = ACTIONS(303), + [anon_sym_STAR_STAR] = ACTIONS(303), + [anon_sym_EQ] = ACTIONS(272), [anon_sym_exec] = ACTIONS(583), [anon_sym_type] = ACTIONS(583), - [anon_sym_AT] = ACTIONS(298), - [anon_sym_not] = ACTIONS(265), - [anon_sym_and] = ACTIONS(265), - [anon_sym_or] = ACTIONS(265), - [anon_sym_SLASH] = ACTIONS(265), - [anon_sym_PERCENT] = ACTIONS(298), - [anon_sym_SLASH_SLASH] = ACTIONS(298), - [anon_sym_AMP] = ACTIONS(298), - [anon_sym_CARET] = ACTIONS(298), - [anon_sym_LT_LT] = ACTIONS(298), - [anon_sym_TILDE] = ACTIONS(296), - [anon_sym_LT] = ACTIONS(265), - [anon_sym_LT_EQ] = ACTIONS(298), - [anon_sym_EQ_EQ] = ACTIONS(298), - [anon_sym_BANG_EQ] = ACTIONS(298), - [anon_sym_GT_EQ] = ACTIONS(298), - [anon_sym_GT] = ACTIONS(265), - [anon_sym_LT_GT] = ACTIONS(298), - [anon_sym_is] = ACTIONS(265), - [sym_ellipsis] = ACTIONS(304), - [sym_integer] = ACTIONS(306), - [sym_float] = ACTIONS(304), - [anon_sym_await] = ACTIONS(595), - [sym_true] = ACTIONS(306), - [sym_false] = ACTIONS(306), - [sym_none] = ACTIONS(306), + [anon_sym_AT] = ACTIONS(303), + [anon_sym_not] = ACTIONS(272), + [anon_sym_and] = ACTIONS(272), + [anon_sym_or] = ACTIONS(272), + [anon_sym_SLASH] = ACTIONS(272), + [anon_sym_PERCENT] = ACTIONS(303), + [anon_sym_SLASH_SLASH] = ACTIONS(303), + [anon_sym_AMP] = ACTIONS(303), + [anon_sym_CARET] = ACTIONS(303), + [anon_sym_LT_LT] = ACTIONS(303), + [anon_sym_TILDE] = ACTIONS(301), + [anon_sym_LT] = ACTIONS(272), + [anon_sym_LT_EQ] = ACTIONS(303), + [anon_sym_EQ_EQ] = ACTIONS(303), + [anon_sym_BANG_EQ] = ACTIONS(303), + [anon_sym_GT_EQ] = ACTIONS(303), + [anon_sym_GT] = ACTIONS(272), + [anon_sym_LT_GT] = ACTIONS(303), + [anon_sym_is] = ACTIONS(272), + [sym_ellipsis] = ACTIONS(309), + [sym_integer] = ACTIONS(311), + [sym_float] = ACTIONS(309), + [anon_sym_await] = ACTIONS(600), + [sym_true] = ACTIONS(311), + [sym_false] = ACTIONS(311), + [sym_none] = ACTIONS(311), [sym_comment] = ACTIONS(3), - [sym__string_start] = ACTIONS(310), - [sym__template_string_start] = ACTIONS(312), + [sym__string_start] = ACTIONS(315), + [sym__template_string_start] = ACTIONS(317), }, [STATE(138)] = { - [sym_primary_expression] = STATE(760), - [sym_binary_operator] = STATE(724), - [sym_unary_operator] = STATE(724), - [sym_attribute] = STATE(724), - [sym_subscript] = STATE(724), - [sym_call] = STATE(724), - [sym_list] = STATE(724), - [sym_set] = STATE(724), - [sym_tuple] = STATE(724), - [sym_dictionary] = STATE(724), - [sym_list_comprehension] = STATE(724), - [sym_dictionary_comprehension] = STATE(724), - [sym_set_comprehension] = STATE(724), - [sym_generator_expression] = STATE(724), - [sym_parenthesized_expression] = STATE(724), - [sym_concatenated_string] = STATE(724), - [sym_string] = STATE(621), - [sym_concatenated_template_string] = STATE(724), - [sym_template_string] = STATE(624), - [sym_await] = STATE(724), - [sym_identifier] = ACTIONS(306), - [anon_sym_DOT] = ACTIONS(265), - [anon_sym_LPAREN] = ACTIONS(597), - [anon_sym_RPAREN] = ACTIONS(298), - [anon_sym_COMMA] = ACTIONS(298), - [anon_sym_as] = ACTIONS(265), - [anon_sym_STAR] = ACTIONS(265), + [sym_primary_expression] = STATE(747), + [sym_binary_operator] = STATE(720), + [sym_unary_operator] = STATE(720), + [sym_attribute] = STATE(720), + [sym_subscript] = STATE(720), + [sym_call] = STATE(720), + [sym_list] = STATE(720), + [sym_set] = STATE(720), + [sym_tuple] = STATE(720), + [sym_dictionary] = STATE(720), + [sym_list_comprehension] = STATE(720), + [sym_dictionary_comprehension] = STATE(720), + [sym_set_comprehension] = STATE(720), + [sym_generator_expression] = STATE(720), + [sym_parenthesized_expression] = STATE(720), + [sym_concatenated_string] = STATE(720), + [sym_string] = STATE(694), + [sym_concatenated_template_string] = STATE(720), + [sym_template_string] = STATE(698), + [sym_await] = STATE(720), + [sym_identifier] = ACTIONS(311), + [anon_sym_lazy] = ACTIONS(583), + [anon_sym_DOT] = ACTIONS(272), + [anon_sym_LPAREN] = ACTIONS(602), + [anon_sym_RPAREN] = ACTIONS(303), + [anon_sym_COMMA] = ACTIONS(303), + [anon_sym_as] = ACTIONS(272), + [anon_sym_STAR] = ACTIONS(272), [anon_sym_print] = ACTIONS(583), - [anon_sym_GT_GT] = ACTIONS(298), - [anon_sym_COLON_EQ] = ACTIONS(599), - [anon_sym_if] = ACTIONS(265), + [anon_sym_GT_GT] = ACTIONS(303), + [anon_sym_COLON_EQ] = ACTIONS(604), + [anon_sym_if] = ACTIONS(272), [anon_sym_async] = ACTIONS(583), - [anon_sym_for] = ACTIONS(265), - [anon_sym_in] = ACTIONS(265), + [anon_sym_for] = ACTIONS(272), + [anon_sym_in] = ACTIONS(272), [anon_sym_match] = ACTIONS(583), - [anon_sym_PIPE] = ACTIONS(298), - [anon_sym_DASH] = ACTIONS(601), - [anon_sym_PLUS] = ACTIONS(601), - [anon_sym_LBRACK] = ACTIONS(603), - [anon_sym_RBRACK] = ACTIONS(298), - [anon_sym_LBRACE] = ACTIONS(288), - [anon_sym_RBRACE] = ACTIONS(298), - [anon_sym_STAR_STAR] = ACTIONS(298), + [anon_sym_PIPE] = ACTIONS(303), + [anon_sym_DASH] = ACTIONS(606), + [anon_sym_PLUS] = ACTIONS(606), + [anon_sym_LBRACK] = ACTIONS(608), + [anon_sym_RBRACK] = ACTIONS(303), + [anon_sym_LBRACE] = ACTIONS(293), + [anon_sym_RBRACE] = ACTIONS(303), + [anon_sym_STAR_STAR] = ACTIONS(303), [anon_sym_exec] = ACTIONS(583), [anon_sym_type] = ACTIONS(583), - [anon_sym_AT] = ACTIONS(298), - [anon_sym_not] = ACTIONS(265), - [anon_sym_and] = ACTIONS(265), - [anon_sym_or] = ACTIONS(265), - [anon_sym_SLASH] = ACTIONS(265), - [anon_sym_PERCENT] = ACTIONS(298), - [anon_sym_SLASH_SLASH] = ACTIONS(298), - [anon_sym_AMP] = ACTIONS(298), - [anon_sym_CARET] = ACTIONS(298), - [anon_sym_LT_LT] = ACTIONS(298), - [anon_sym_TILDE] = ACTIONS(601), - [anon_sym_LT] = ACTIONS(265), - [anon_sym_LT_EQ] = ACTIONS(298), - [anon_sym_EQ_EQ] = ACTIONS(298), - [anon_sym_BANG_EQ] = ACTIONS(298), - [anon_sym_GT_EQ] = ACTIONS(298), - [anon_sym_GT] = ACTIONS(265), - [anon_sym_LT_GT] = ACTIONS(298), - [anon_sym_is] = ACTIONS(265), - [sym_ellipsis] = ACTIONS(304), - [sym_integer] = ACTIONS(306), - [sym_float] = ACTIONS(304), - [anon_sym_await] = ACTIONS(605), - [sym_true] = ACTIONS(306), - [sym_false] = ACTIONS(306), - [sym_none] = ACTIONS(306), + [anon_sym_AT] = ACTIONS(303), + [anon_sym_not] = ACTIONS(272), + [anon_sym_and] = ACTIONS(272), + [anon_sym_or] = ACTIONS(272), + [anon_sym_SLASH] = ACTIONS(272), + [anon_sym_PERCENT] = ACTIONS(303), + [anon_sym_SLASH_SLASH] = ACTIONS(303), + [anon_sym_AMP] = ACTIONS(303), + [anon_sym_CARET] = ACTIONS(303), + [anon_sym_LT_LT] = ACTIONS(303), + [anon_sym_TILDE] = ACTIONS(606), + [anon_sym_LT] = ACTIONS(272), + [anon_sym_LT_EQ] = ACTIONS(303), + [anon_sym_EQ_EQ] = ACTIONS(303), + [anon_sym_BANG_EQ] = ACTIONS(303), + [anon_sym_GT_EQ] = ACTIONS(303), + [anon_sym_GT] = ACTIONS(272), + [anon_sym_LT_GT] = ACTIONS(303), + [anon_sym_is] = ACTIONS(272), + [sym_ellipsis] = ACTIONS(309), + [sym_integer] = ACTIONS(311), + [sym_float] = ACTIONS(309), + [anon_sym_await] = ACTIONS(610), + [sym_true] = ACTIONS(311), + [sym_false] = ACTIONS(311), + [sym_none] = ACTIONS(311), [sym_comment] = ACTIONS(3), - [sym__string_start] = ACTIONS(310), - [sym__template_string_start] = ACTIONS(312), + [sym__string_start] = ACTIONS(315), + [sym__template_string_start] = ACTIONS(317), }, [STATE(139)] = { - [sym_primary_expression] = STATE(735), - [sym_binary_operator] = STATE(724), - [sym_unary_operator] = STATE(724), - [sym_attribute] = STATE(724), - [sym_subscript] = STATE(724), - [sym_call] = STATE(724), - [sym_list] = STATE(724), - [sym_set] = STATE(724), - [sym_tuple] = STATE(724), - [sym_dictionary] = STATE(724), - [sym_list_comprehension] = STATE(724), - [sym_dictionary_comprehension] = STATE(724), - [sym_set_comprehension] = STATE(724), - [sym_generator_expression] = STATE(724), - [sym_parenthesized_expression] = STATE(724), - [sym_concatenated_string] = STATE(724), - [sym_string] = STATE(621), - [sym_concatenated_template_string] = STATE(724), - [sym_template_string] = STATE(624), - [sym_await] = STATE(724), - [sym_identifier] = ACTIONS(306), - [anon_sym_DOT] = ACTIONS(265), - [anon_sym_LPAREN] = ACTIONS(578), - [anon_sym_RPAREN] = ACTIONS(593), - [anon_sym_COMMA] = ACTIONS(593), - [anon_sym_STAR] = ACTIONS(265), - [anon_sym_print] = ACTIONS(583), - [anon_sym_GT_GT] = ACTIONS(265), - [anon_sym_COLON] = ACTIONS(593), - [anon_sym_async] = ACTIONS(583), - [anon_sym_in] = ACTIONS(587), - [anon_sym_match] = ACTIONS(583), - [anon_sym_PIPE] = ACTIONS(265), - [anon_sym_DASH] = ACTIONS(589), - [anon_sym_PLUS] = ACTIONS(589), - [anon_sym_LBRACK] = ACTIONS(591), - [anon_sym_RBRACK] = ACTIONS(593), - [anon_sym_LBRACE] = ACTIONS(288), - [anon_sym_STAR_STAR] = ACTIONS(265), - [anon_sym_EQ] = ACTIONS(593), - [anon_sym_exec] = ACTIONS(583), - [anon_sym_type] = ACTIONS(583), - [anon_sym_AT] = ACTIONS(265), - [anon_sym_SLASH] = ACTIONS(265), - [anon_sym_PERCENT] = ACTIONS(265), - [anon_sym_SLASH_SLASH] = ACTIONS(265), - [anon_sym_AMP] = ACTIONS(265), - [anon_sym_CARET] = ACTIONS(265), - [anon_sym_LT_LT] = ACTIONS(265), - [anon_sym_TILDE] = ACTIONS(296), - [anon_sym_PLUS_EQ] = ACTIONS(593), - [anon_sym_DASH_EQ] = ACTIONS(593), - [anon_sym_STAR_EQ] = ACTIONS(593), - [anon_sym_SLASH_EQ] = ACTIONS(593), - [anon_sym_AT_EQ] = ACTIONS(593), - [anon_sym_SLASH_SLASH_EQ] = ACTIONS(593), - [anon_sym_PERCENT_EQ] = ACTIONS(593), - [anon_sym_STAR_STAR_EQ] = ACTIONS(593), - [anon_sym_GT_GT_EQ] = ACTIONS(593), - [anon_sym_LT_LT_EQ] = ACTIONS(593), - [anon_sym_AMP_EQ] = ACTIONS(593), - [anon_sym_CARET_EQ] = ACTIONS(593), - [anon_sym_PIPE_EQ] = ACTIONS(593), - [sym_ellipsis] = ACTIONS(304), - [sym_integer] = ACTIONS(306), - [sym_float] = ACTIONS(304), - [anon_sym_await] = ACTIONS(595), - [sym_true] = ACTIONS(306), - [sym_false] = ACTIONS(306), - [sym_none] = ACTIONS(306), + [sym_primary_expression] = STATE(805), + [sym_binary_operator] = STATE(949), + [sym_unary_operator] = STATE(949), + [sym_attribute] = STATE(949), + [sym_subscript] = STATE(949), + [sym_call] = STATE(949), + [sym_list] = STATE(949), + [sym_set] = STATE(949), + [sym_tuple] = STATE(949), + [sym_dictionary] = STATE(949), + [sym_list_comprehension] = STATE(949), + [sym_dictionary_comprehension] = STATE(949), + [sym_set_comprehension] = STATE(949), + [sym_generator_expression] = STATE(949), + [sym_parenthesized_expression] = STATE(949), + [sym_concatenated_string] = STATE(949), + [sym_string] = STATE(781), + [sym_concatenated_template_string] = STATE(949), + [sym_template_string] = STATE(782), + [sym_await] = STATE(949), + [sym_identifier] = ACTIONS(612), + [anon_sym_lazy] = ACTIONS(614), + [anon_sym_DOT] = ACTIONS(272), + [anon_sym_LPAREN] = ACTIONS(616), + [anon_sym_COMMA] = ACTIONS(303), + [anon_sym_STAR] = ACTIONS(272), + [anon_sym_print] = ACTIONS(614), + [anon_sym_GT_GT] = ACTIONS(303), + [anon_sym_COLON_EQ] = ACTIONS(618), + [anon_sym_if] = ACTIONS(272), + [anon_sym_async] = ACTIONS(614), + [anon_sym_in] = ACTIONS(272), + [anon_sym_match] = ACTIONS(614), + [anon_sym_PIPE] = ACTIONS(303), + [anon_sym_DASH] = ACTIONS(620), + [anon_sym_PLUS] = ACTIONS(620), + [anon_sym_LBRACK] = ACTIONS(622), + [anon_sym_LBRACE] = ACTIONS(624), + [anon_sym_RBRACE] = ACTIONS(303), + [anon_sym_STAR_STAR] = ACTIONS(303), + [anon_sym_EQ] = ACTIONS(272), + [anon_sym_exec] = ACTIONS(614), + [anon_sym_type] = ACTIONS(614), + [anon_sym_AT] = ACTIONS(303), + [anon_sym_not] = ACTIONS(272), + [anon_sym_and] = ACTIONS(272), + [anon_sym_or] = ACTIONS(272), + [anon_sym_SLASH] = ACTIONS(272), + [anon_sym_PERCENT] = ACTIONS(303), + [anon_sym_SLASH_SLASH] = ACTIONS(303), + [anon_sym_AMP] = ACTIONS(303), + [anon_sym_CARET] = ACTIONS(303), + [anon_sym_LT_LT] = ACTIONS(303), + [anon_sym_TILDE] = ACTIONS(620), + [anon_sym_LT] = ACTIONS(272), + [anon_sym_LT_EQ] = ACTIONS(303), + [anon_sym_EQ_EQ] = ACTIONS(303), + [anon_sym_BANG_EQ] = ACTIONS(303), + [anon_sym_GT_EQ] = ACTIONS(303), + [anon_sym_GT] = ACTIONS(272), + [anon_sym_LT_GT] = ACTIONS(303), + [anon_sym_is] = ACTIONS(272), + [sym_ellipsis] = ACTIONS(626), + [anon_sym_COLON2] = ACTIONS(303), + [sym_type_conversion] = ACTIONS(303), + [sym_integer] = ACTIONS(612), + [sym_float] = ACTIONS(626), + [anon_sym_await] = ACTIONS(628), + [sym_true] = ACTIONS(612), + [sym_false] = ACTIONS(612), + [sym_none] = ACTIONS(612), [sym_comment] = ACTIONS(3), - [sym__string_start] = ACTIONS(310), - [sym__template_string_start] = ACTIONS(312), + [sym__string_start] = ACTIONS(630), + [sym__template_string_start] = ACTIONS(632), }, [STATE(140)] = { - [sym_primary_expression] = STATE(810), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_attribute] = STATE(908), - [sym_subscript] = STATE(908), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [sym_identifier] = ACTIONS(77), - [anon_sym_DOT] = ACTIONS(265), - [anon_sym_from] = ACTIONS(265), - [anon_sym_LPAREN] = ACTIONS(568), - [anon_sym_COMMA] = ACTIONS(298), - [anon_sym_STAR] = ACTIONS(265), - [anon_sym_print] = ACTIONS(570), - [anon_sym_GT_GT] = ACTIONS(298), - [anon_sym_COLON_EQ] = ACTIONS(278), - [anon_sym_if] = ACTIONS(265), - [anon_sym_async] = ACTIONS(570), - [anon_sym_in] = ACTIONS(265), - [anon_sym_match] = ACTIONS(570), - [anon_sym_PIPE] = ACTIONS(298), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(574), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(298), - [anon_sym_EQ] = ACTIONS(265), - [anon_sym_exec] = ACTIONS(570), - [anon_sym_type] = ACTIONS(570), - [anon_sym_AT] = ACTIONS(298), - [anon_sym_not] = ACTIONS(265), - [anon_sym_and] = ACTIONS(265), - [anon_sym_or] = ACTIONS(265), - [anon_sym_SLASH] = ACTIONS(265), - [anon_sym_PERCENT] = ACTIONS(298), - [anon_sym_SLASH_SLASH] = ACTIONS(298), - [anon_sym_AMP] = ACTIONS(298), - [anon_sym_CARET] = ACTIONS(298), - [anon_sym_LT_LT] = ACTIONS(298), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_LT] = ACTIONS(265), - [anon_sym_LT_EQ] = ACTIONS(298), - [anon_sym_EQ_EQ] = ACTIONS(298), - [anon_sym_BANG_EQ] = ACTIONS(298), - [anon_sym_GT_EQ] = ACTIONS(298), - [anon_sym_GT] = ACTIONS(265), - [anon_sym_LT_GT] = ACTIONS(298), - [anon_sym_is] = ACTIONS(265), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(576), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [sym_primary_expression] = STATE(799), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_attribute] = STATE(950), + [sym_subscript] = STATE(950), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [sym_identifier] = ACTIONS(79), + [anon_sym_lazy] = ACTIONS(573), + [anon_sym_DOT] = ACTIONS(272), + [anon_sym_from] = ACTIONS(272), + [anon_sym_LPAREN] = ACTIONS(575), + [anon_sym_COMMA] = ACTIONS(303), + [anon_sym_STAR] = ACTIONS(272), + [anon_sym_print] = ACTIONS(573), + [anon_sym_GT_GT] = ACTIONS(303), + [anon_sym_COLON_EQ] = ACTIONS(283), + [anon_sym_if] = ACTIONS(272), + [anon_sym_async] = ACTIONS(573), + [anon_sym_in] = ACTIONS(272), + [anon_sym_match] = ACTIONS(573), + [anon_sym_PIPE] = ACTIONS(303), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(579), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(303), + [anon_sym_EQ] = ACTIONS(272), + [anon_sym_exec] = ACTIONS(573), + [anon_sym_type] = ACTIONS(573), + [anon_sym_AT] = ACTIONS(303), + [anon_sym_not] = ACTIONS(272), + [anon_sym_and] = ACTIONS(272), + [anon_sym_or] = ACTIONS(272), + [anon_sym_SLASH] = ACTIONS(272), + [anon_sym_PERCENT] = ACTIONS(303), + [anon_sym_SLASH_SLASH] = ACTIONS(303), + [anon_sym_AMP] = ACTIONS(303), + [anon_sym_CARET] = ACTIONS(303), + [anon_sym_LT_LT] = ACTIONS(303), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_LT] = ACTIONS(272), + [anon_sym_LT_EQ] = ACTIONS(303), + [anon_sym_EQ_EQ] = ACTIONS(303), + [anon_sym_BANG_EQ] = ACTIONS(303), + [anon_sym_GT_EQ] = ACTIONS(303), + [anon_sym_GT] = ACTIONS(272), + [anon_sym_LT_GT] = ACTIONS(303), + [anon_sym_is] = ACTIONS(272), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(581), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [anon_sym_SEMI] = ACTIONS(298), - [sym__newline] = ACTIONS(298), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [anon_sym_SEMI] = ACTIONS(303), + [sym__newline] = ACTIONS(303), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(141)] = { - [sym_primary_expression] = STATE(785), - [sym_binary_operator] = STATE(924), - [sym_unary_operator] = STATE(924), - [sym_attribute] = STATE(924), - [sym_subscript] = STATE(924), - [sym_call] = STATE(924), - [sym_list] = STATE(924), - [sym_set] = STATE(924), - [sym_tuple] = STATE(924), - [sym_dictionary] = STATE(924), - [sym_list_comprehension] = STATE(924), - [sym_dictionary_comprehension] = STATE(924), - [sym_set_comprehension] = STATE(924), - [sym_generator_expression] = STATE(924), - [sym_parenthesized_expression] = STATE(924), - [sym_concatenated_string] = STATE(924), - [sym_string] = STATE(767), - [sym_concatenated_template_string] = STATE(924), - [sym_template_string] = STATE(768), - [sym_await] = STATE(924), - [sym_identifier] = ACTIONS(607), - [anon_sym_DOT] = ACTIONS(265), - [anon_sym_LPAREN] = ACTIONS(609), - [anon_sym_COMMA] = ACTIONS(298), - [anon_sym_STAR] = ACTIONS(265), - [anon_sym_print] = ACTIONS(611), - [anon_sym_GT_GT] = ACTIONS(298), - [anon_sym_COLON_EQ] = ACTIONS(613), - [anon_sym_if] = ACTIONS(265), - [anon_sym_async] = ACTIONS(611), - [anon_sym_in] = ACTIONS(265), - [anon_sym_match] = ACTIONS(611), - [anon_sym_PIPE] = ACTIONS(298), - [anon_sym_DASH] = ACTIONS(615), - [anon_sym_PLUS] = ACTIONS(615), - [anon_sym_LBRACK] = ACTIONS(617), - [anon_sym_LBRACE] = ACTIONS(619), - [anon_sym_RBRACE] = ACTIONS(298), - [anon_sym_STAR_STAR] = ACTIONS(298), - [anon_sym_EQ] = ACTIONS(265), - [anon_sym_exec] = ACTIONS(611), - [anon_sym_type] = ACTIONS(611), - [anon_sym_AT] = ACTIONS(298), - [anon_sym_not] = ACTIONS(265), - [anon_sym_and] = ACTIONS(265), - [anon_sym_or] = ACTIONS(265), - [anon_sym_SLASH] = ACTIONS(265), - [anon_sym_PERCENT] = ACTIONS(298), - [anon_sym_SLASH_SLASH] = ACTIONS(298), - [anon_sym_AMP] = ACTIONS(298), - [anon_sym_CARET] = ACTIONS(298), - [anon_sym_LT_LT] = ACTIONS(298), - [anon_sym_TILDE] = ACTIONS(615), - [anon_sym_LT] = ACTIONS(265), - [anon_sym_LT_EQ] = ACTIONS(298), - [anon_sym_EQ_EQ] = ACTIONS(298), - [anon_sym_BANG_EQ] = ACTIONS(298), - [anon_sym_GT_EQ] = ACTIONS(298), - [anon_sym_GT] = ACTIONS(265), - [anon_sym_LT_GT] = ACTIONS(298), - [anon_sym_is] = ACTIONS(265), - [sym_ellipsis] = ACTIONS(621), - [anon_sym_COLON2] = ACTIONS(298), - [sym_type_conversion] = ACTIONS(298), - [sym_integer] = ACTIONS(607), - [sym_float] = ACTIONS(621), - [anon_sym_await] = ACTIONS(623), - [sym_true] = ACTIONS(607), - [sym_false] = ACTIONS(607), - [sym_none] = ACTIONS(607), + [sym_primary_expression] = STATE(766), + [sym_binary_operator] = STATE(720), + [sym_unary_operator] = STATE(720), + [sym_attribute] = STATE(720), + [sym_subscript] = STATE(720), + [sym_call] = STATE(720), + [sym_list] = STATE(720), + [sym_set] = STATE(720), + [sym_tuple] = STATE(720), + [sym_dictionary] = STATE(720), + [sym_list_comprehension] = STATE(720), + [sym_dictionary_comprehension] = STATE(720), + [sym_set_comprehension] = STATE(720), + [sym_generator_expression] = STATE(720), + [sym_parenthesized_expression] = STATE(720), + [sym_concatenated_string] = STATE(720), + [sym_string] = STATE(694), + [sym_concatenated_template_string] = STATE(720), + [sym_template_string] = STATE(698), + [sym_await] = STATE(720), + [sym_identifier] = ACTIONS(311), + [anon_sym_lazy] = ACTIONS(583), + [anon_sym_DOT] = ACTIONS(272), + [anon_sym_LPAREN] = ACTIONS(585), + [anon_sym_RPAREN] = ACTIONS(307), + [anon_sym_COMMA] = ACTIONS(307), + [anon_sym_STAR] = ACTIONS(272), + [anon_sym_print] = ACTIONS(583), + [anon_sym_GT_GT] = ACTIONS(272), + [anon_sym_COLON] = ACTIONS(307), + [anon_sym_async] = ACTIONS(583), + [anon_sym_in] = ACTIONS(285), + [anon_sym_match] = ACTIONS(583), + [anon_sym_PIPE] = ACTIONS(272), + [anon_sym_DASH] = ACTIONS(594), + [anon_sym_PLUS] = ACTIONS(594), + [anon_sym_LBRACK] = ACTIONS(596), + [anon_sym_RBRACK] = ACTIONS(307), + [anon_sym_LBRACE] = ACTIONS(293), + [anon_sym_STAR_STAR] = ACTIONS(272), + [anon_sym_EQ] = ACTIONS(307), + [anon_sym_exec] = ACTIONS(583), + [anon_sym_type] = ACTIONS(583), + [anon_sym_AT] = ACTIONS(272), + [anon_sym_SLASH] = ACTIONS(272), + [anon_sym_PERCENT] = ACTIONS(272), + [anon_sym_SLASH_SLASH] = ACTIONS(272), + [anon_sym_AMP] = ACTIONS(272), + [anon_sym_CARET] = ACTIONS(272), + [anon_sym_LT_LT] = ACTIONS(272), + [anon_sym_TILDE] = ACTIONS(301), + [anon_sym_PLUS_EQ] = ACTIONS(307), + [anon_sym_DASH_EQ] = ACTIONS(307), + [anon_sym_STAR_EQ] = ACTIONS(307), + [anon_sym_SLASH_EQ] = ACTIONS(307), + [anon_sym_AT_EQ] = ACTIONS(307), + [anon_sym_SLASH_SLASH_EQ] = ACTIONS(307), + [anon_sym_PERCENT_EQ] = ACTIONS(307), + [anon_sym_STAR_STAR_EQ] = ACTIONS(307), + [anon_sym_GT_GT_EQ] = ACTIONS(307), + [anon_sym_LT_LT_EQ] = ACTIONS(307), + [anon_sym_AMP_EQ] = ACTIONS(307), + [anon_sym_CARET_EQ] = ACTIONS(307), + [anon_sym_PIPE_EQ] = ACTIONS(307), + [sym_ellipsis] = ACTIONS(309), + [sym_integer] = ACTIONS(311), + [sym_float] = ACTIONS(309), + [anon_sym_await] = ACTIONS(600), + [sym_true] = ACTIONS(311), + [sym_false] = ACTIONS(311), + [sym_none] = ACTIONS(311), [sym_comment] = ACTIONS(3), - [sym__string_start] = ACTIONS(625), - [sym__template_string_start] = ACTIONS(627), + [sym__string_start] = ACTIONS(315), + [sym__template_string_start] = ACTIONS(317), }, [STATE(142)] = { - [sym_primary_expression] = STATE(735), - [sym_binary_operator] = STATE(724), - [sym_unary_operator] = STATE(724), - [sym_attribute] = STATE(724), - [sym_subscript] = STATE(724), - [sym_call] = STATE(724), - [sym_list] = STATE(724), - [sym_set] = STATE(724), - [sym_tuple] = STATE(724), - [sym_dictionary] = STATE(724), - [sym_list_comprehension] = STATE(724), - [sym_dictionary_comprehension] = STATE(724), - [sym_set_comprehension] = STATE(724), - [sym_generator_expression] = STATE(724), - [sym_parenthesized_expression] = STATE(724), - [sym_concatenated_string] = STATE(724), - [sym_string] = STATE(621), - [sym_concatenated_template_string] = STATE(724), - [sym_template_string] = STATE(624), - [sym_await] = STATE(724), - [sym_identifier] = ACTIONS(306), - [anon_sym_DOT] = ACTIONS(265), - [anon_sym_LPAREN] = ACTIONS(578), - [anon_sym_RPAREN] = ACTIONS(302), - [anon_sym_COMMA] = ACTIONS(302), - [anon_sym_STAR] = ACTIONS(265), + [sym_primary_expression] = STATE(747), + [sym_binary_operator] = STATE(720), + [sym_unary_operator] = STATE(720), + [sym_attribute] = STATE(720), + [sym_subscript] = STATE(720), + [sym_call] = STATE(720), + [sym_list] = STATE(720), + [sym_set] = STATE(720), + [sym_tuple] = STATE(720), + [sym_dictionary] = STATE(720), + [sym_list_comprehension] = STATE(720), + [sym_dictionary_comprehension] = STATE(720), + [sym_set_comprehension] = STATE(720), + [sym_generator_expression] = STATE(720), + [sym_parenthesized_expression] = STATE(720), + [sym_concatenated_string] = STATE(720), + [sym_string] = STATE(694), + [sym_concatenated_template_string] = STATE(720), + [sym_template_string] = STATE(698), + [sym_await] = STATE(720), + [sym_identifier] = ACTIONS(311), + [anon_sym_lazy] = ACTIONS(583), + [anon_sym_DOT] = ACTIONS(272), + [anon_sym_LPAREN] = ACTIONS(602), + [anon_sym_RPAREN] = ACTIONS(303), + [anon_sym_COMMA] = ACTIONS(303), + [anon_sym_as] = ACTIONS(272), + [anon_sym_STAR] = ACTIONS(272), [anon_sym_print] = ACTIONS(583), - [anon_sym_GT_GT] = ACTIONS(265), - [anon_sym_COLON] = ACTIONS(302), + [anon_sym_GT_GT] = ACTIONS(303), + [anon_sym_if] = ACTIONS(272), [anon_sym_async] = ACTIONS(583), - [anon_sym_in] = ACTIONS(280), + [anon_sym_for] = ACTIONS(272), + [anon_sym_in] = ACTIONS(272), [anon_sym_match] = ACTIONS(583), - [anon_sym_PIPE] = ACTIONS(265), - [anon_sym_DASH] = ACTIONS(589), - [anon_sym_PLUS] = ACTIONS(589), - [anon_sym_LBRACK] = ACTIONS(591), - [anon_sym_RBRACK] = ACTIONS(302), - [anon_sym_LBRACE] = ACTIONS(288), - [anon_sym_STAR_STAR] = ACTIONS(265), - [anon_sym_EQ] = ACTIONS(302), + [anon_sym_PIPE] = ACTIONS(303), + [anon_sym_DASH] = ACTIONS(606), + [anon_sym_PLUS] = ACTIONS(606), + [anon_sym_LBRACK] = ACTIONS(608), + [anon_sym_RBRACK] = ACTIONS(303), + [anon_sym_LBRACE] = ACTIONS(293), + [anon_sym_RBRACE] = ACTIONS(303), + [anon_sym_STAR_STAR] = ACTIONS(303), [anon_sym_exec] = ACTIONS(583), [anon_sym_type] = ACTIONS(583), - [anon_sym_AT] = ACTIONS(265), - [anon_sym_SLASH] = ACTIONS(265), - [anon_sym_PERCENT] = ACTIONS(265), - [anon_sym_SLASH_SLASH] = ACTIONS(265), - [anon_sym_AMP] = ACTIONS(265), - [anon_sym_CARET] = ACTIONS(265), - [anon_sym_LT_LT] = ACTIONS(265), - [anon_sym_TILDE] = ACTIONS(296), - [anon_sym_PLUS_EQ] = ACTIONS(302), - [anon_sym_DASH_EQ] = ACTIONS(302), - [anon_sym_STAR_EQ] = ACTIONS(302), - [anon_sym_SLASH_EQ] = ACTIONS(302), - [anon_sym_AT_EQ] = ACTIONS(302), - [anon_sym_SLASH_SLASH_EQ] = ACTIONS(302), - [anon_sym_PERCENT_EQ] = ACTIONS(302), - [anon_sym_STAR_STAR_EQ] = ACTIONS(302), - [anon_sym_GT_GT_EQ] = ACTIONS(302), - [anon_sym_LT_LT_EQ] = ACTIONS(302), - [anon_sym_AMP_EQ] = ACTIONS(302), - [anon_sym_CARET_EQ] = ACTIONS(302), - [anon_sym_PIPE_EQ] = ACTIONS(302), - [sym_ellipsis] = ACTIONS(304), - [sym_integer] = ACTIONS(306), - [sym_float] = ACTIONS(304), - [anon_sym_await] = ACTIONS(595), - [sym_true] = ACTIONS(306), - [sym_false] = ACTIONS(306), - [sym_none] = ACTIONS(306), + [anon_sym_AT] = ACTIONS(303), + [anon_sym_not] = ACTIONS(272), + [anon_sym_and] = ACTIONS(272), + [anon_sym_or] = ACTIONS(272), + [anon_sym_SLASH] = ACTIONS(272), + [anon_sym_PERCENT] = ACTIONS(303), + [anon_sym_SLASH_SLASH] = ACTIONS(303), + [anon_sym_AMP] = ACTIONS(303), + [anon_sym_CARET] = ACTIONS(303), + [anon_sym_LT_LT] = ACTIONS(303), + [anon_sym_TILDE] = ACTIONS(606), + [anon_sym_LT] = ACTIONS(272), + [anon_sym_LT_EQ] = ACTIONS(303), + [anon_sym_EQ_EQ] = ACTIONS(303), + [anon_sym_BANG_EQ] = ACTIONS(303), + [anon_sym_GT_EQ] = ACTIONS(303), + [anon_sym_GT] = ACTIONS(272), + [anon_sym_LT_GT] = ACTIONS(303), + [anon_sym_is] = ACTIONS(272), + [sym_ellipsis] = ACTIONS(309), + [sym_integer] = ACTIONS(311), + [sym_float] = ACTIONS(309), + [anon_sym_await] = ACTIONS(610), + [sym_true] = ACTIONS(311), + [sym_false] = ACTIONS(311), + [sym_none] = ACTIONS(311), [sym_comment] = ACTIONS(3), - [sym__string_start] = ACTIONS(310), - [sym__template_string_start] = ACTIONS(312), + [sym__string_start] = ACTIONS(315), + [sym__template_string_start] = ACTIONS(317), }, [STATE(143)] = { - [sym_primary_expression] = STATE(760), - [sym_binary_operator] = STATE(724), - [sym_unary_operator] = STATE(724), - [sym_attribute] = STATE(724), - [sym_subscript] = STATE(724), - [sym_call] = STATE(724), - [sym_list] = STATE(724), - [sym_set] = STATE(724), - [sym_tuple] = STATE(724), - [sym_dictionary] = STATE(724), - [sym_list_comprehension] = STATE(724), - [sym_dictionary_comprehension] = STATE(724), - [sym_set_comprehension] = STATE(724), - [sym_generator_expression] = STATE(724), - [sym_parenthesized_expression] = STATE(724), - [sym_concatenated_string] = STATE(724), - [sym_string] = STATE(621), - [sym_concatenated_template_string] = STATE(724), - [sym_template_string] = STATE(624), - [sym_await] = STATE(724), - [sym_identifier] = ACTIONS(306), - [anon_sym_DOT] = ACTIONS(265), - [anon_sym_LPAREN] = ACTIONS(597), - [anon_sym_RPAREN] = ACTIONS(298), - [anon_sym_COMMA] = ACTIONS(298), - [anon_sym_as] = ACTIONS(265), - [anon_sym_STAR] = ACTIONS(265), + [sym_primary_expression] = STATE(766), + [sym_binary_operator] = STATE(720), + [sym_unary_operator] = STATE(720), + [sym_attribute] = STATE(720), + [sym_subscript] = STATE(720), + [sym_call] = STATE(720), + [sym_list] = STATE(720), + [sym_set] = STATE(720), + [sym_tuple] = STATE(720), + [sym_dictionary] = STATE(720), + [sym_list_comprehension] = STATE(720), + [sym_dictionary_comprehension] = STATE(720), + [sym_set_comprehension] = STATE(720), + [sym_generator_expression] = STATE(720), + [sym_parenthesized_expression] = STATE(720), + [sym_concatenated_string] = STATE(720), + [sym_string] = STATE(694), + [sym_concatenated_template_string] = STATE(720), + [sym_template_string] = STATE(698), + [sym_await] = STATE(720), + [sym_identifier] = ACTIONS(311), + [anon_sym_lazy] = ACTIONS(583), + [anon_sym_DOT] = ACTIONS(272), + [anon_sym_LPAREN] = ACTIONS(585), + [anon_sym_RPAREN] = ACTIONS(598), + [anon_sym_COMMA] = ACTIONS(598), + [anon_sym_STAR] = ACTIONS(272), [anon_sym_print] = ACTIONS(583), - [anon_sym_GT_GT] = ACTIONS(298), - [anon_sym_if] = ACTIONS(265), + [anon_sym_GT_GT] = ACTIONS(272), + [anon_sym_COLON] = ACTIONS(598), [anon_sym_async] = ACTIONS(583), - [anon_sym_for] = ACTIONS(265), - [anon_sym_in] = ACTIONS(265), + [anon_sym_in] = ACTIONS(592), [anon_sym_match] = ACTIONS(583), - [anon_sym_PIPE] = ACTIONS(298), - [anon_sym_DASH] = ACTIONS(601), - [anon_sym_PLUS] = ACTIONS(601), - [anon_sym_LBRACK] = ACTIONS(603), - [anon_sym_RBRACK] = ACTIONS(298), - [anon_sym_LBRACE] = ACTIONS(288), - [anon_sym_RBRACE] = ACTIONS(298), - [anon_sym_STAR_STAR] = ACTIONS(298), + [anon_sym_PIPE] = ACTIONS(272), + [anon_sym_DASH] = ACTIONS(594), + [anon_sym_PLUS] = ACTIONS(594), + [anon_sym_LBRACK] = ACTIONS(596), + [anon_sym_RBRACK] = ACTIONS(598), + [anon_sym_LBRACE] = ACTIONS(293), + [anon_sym_STAR_STAR] = ACTIONS(272), + [anon_sym_EQ] = ACTIONS(598), [anon_sym_exec] = ACTIONS(583), [anon_sym_type] = ACTIONS(583), - [anon_sym_AT] = ACTIONS(298), - [anon_sym_not] = ACTIONS(265), - [anon_sym_and] = ACTIONS(265), - [anon_sym_or] = ACTIONS(265), - [anon_sym_SLASH] = ACTIONS(265), - [anon_sym_PERCENT] = ACTIONS(298), - [anon_sym_SLASH_SLASH] = ACTIONS(298), - [anon_sym_AMP] = ACTIONS(298), - [anon_sym_CARET] = ACTIONS(298), - [anon_sym_LT_LT] = ACTIONS(298), - [anon_sym_TILDE] = ACTIONS(601), - [anon_sym_LT] = ACTIONS(265), - [anon_sym_LT_EQ] = ACTIONS(298), - [anon_sym_EQ_EQ] = ACTIONS(298), - [anon_sym_BANG_EQ] = ACTIONS(298), - [anon_sym_GT_EQ] = ACTIONS(298), - [anon_sym_GT] = ACTIONS(265), - [anon_sym_LT_GT] = ACTIONS(298), - [anon_sym_is] = ACTIONS(265), - [sym_ellipsis] = ACTIONS(304), - [sym_integer] = ACTIONS(306), - [sym_float] = ACTIONS(304), - [anon_sym_await] = ACTIONS(605), - [sym_true] = ACTIONS(306), - [sym_false] = ACTIONS(306), - [sym_none] = ACTIONS(306), + [anon_sym_AT] = ACTIONS(272), + [anon_sym_SLASH] = ACTIONS(272), + [anon_sym_PERCENT] = ACTIONS(272), + [anon_sym_SLASH_SLASH] = ACTIONS(272), + [anon_sym_AMP] = ACTIONS(272), + [anon_sym_CARET] = ACTIONS(272), + [anon_sym_LT_LT] = ACTIONS(272), + [anon_sym_TILDE] = ACTIONS(301), + [anon_sym_PLUS_EQ] = ACTIONS(598), + [anon_sym_DASH_EQ] = ACTIONS(598), + [anon_sym_STAR_EQ] = ACTIONS(598), + [anon_sym_SLASH_EQ] = ACTIONS(598), + [anon_sym_AT_EQ] = ACTIONS(598), + [anon_sym_SLASH_SLASH_EQ] = ACTIONS(598), + [anon_sym_PERCENT_EQ] = ACTIONS(598), + [anon_sym_STAR_STAR_EQ] = ACTIONS(598), + [anon_sym_GT_GT_EQ] = ACTIONS(598), + [anon_sym_LT_LT_EQ] = ACTIONS(598), + [anon_sym_AMP_EQ] = ACTIONS(598), + [anon_sym_CARET_EQ] = ACTIONS(598), + [anon_sym_PIPE_EQ] = ACTIONS(598), + [sym_ellipsis] = ACTIONS(309), + [sym_integer] = ACTIONS(311), + [sym_float] = ACTIONS(309), + [anon_sym_await] = ACTIONS(600), + [sym_true] = ACTIONS(311), + [sym_false] = ACTIONS(311), + [sym_none] = ACTIONS(311), [sym_comment] = ACTIONS(3), - [sym__string_start] = ACTIONS(310), - [sym__template_string_start] = ACTIONS(312), + [sym__string_start] = ACTIONS(315), + [sym__template_string_start] = ACTIONS(317), }, [STATE(144)] = { - [sym_primary_expression] = STATE(848), - [sym_binary_operator] = STATE(953), - [sym_unary_operator] = STATE(953), - [sym_attribute] = STATE(953), - [sym_subscript] = STATE(953), - [sym_call] = STATE(953), - [sym_list] = STATE(953), - [sym_set] = STATE(953), - [sym_tuple] = STATE(953), - [sym_dictionary] = STATE(953), - [sym_list_comprehension] = STATE(953), - [sym_dictionary_comprehension] = STATE(953), - [sym_set_comprehension] = STATE(953), - [sym_generator_expression] = STATE(953), - [sym_parenthesized_expression] = STATE(953), - [sym_concatenated_string] = STATE(953), - [sym_string] = STATE(794), - [sym_concatenated_template_string] = STATE(953), - [sym_template_string] = STATE(795), - [sym_await] = STATE(953), - [sym_identifier] = ACTIONS(629), - [anon_sym_DOT] = ACTIONS(265), - [anon_sym_LPAREN] = ACTIONS(631), - [anon_sym_RPAREN] = ACTIONS(298), - [anon_sym_COMMA] = ACTIONS(298), - [anon_sym_as] = ACTIONS(265), - [anon_sym_STAR] = ACTIONS(265), - [anon_sym_print] = ACTIONS(633), - [anon_sym_GT_GT] = ACTIONS(298), - [anon_sym_COLON_EQ] = ACTIONS(635), - [anon_sym_if] = ACTIONS(265), - [anon_sym_COLON] = ACTIONS(265), - [anon_sym_async] = ACTIONS(633), - [anon_sym_in] = ACTIONS(265), - [anon_sym_match] = ACTIONS(633), - [anon_sym_PIPE] = ACTIONS(298), - [anon_sym_DASH] = ACTIONS(637), - [anon_sym_PLUS] = ACTIONS(637), - [anon_sym_LBRACK] = ACTIONS(639), - [anon_sym_LBRACE] = ACTIONS(641), - [anon_sym_STAR_STAR] = ACTIONS(298), - [anon_sym_exec] = ACTIONS(633), - [anon_sym_type] = ACTIONS(633), - [anon_sym_AT] = ACTIONS(298), - [anon_sym_not] = ACTIONS(265), - [anon_sym_and] = ACTIONS(265), - [anon_sym_or] = ACTIONS(265), - [anon_sym_SLASH] = ACTIONS(265), - [anon_sym_PERCENT] = ACTIONS(298), - [anon_sym_SLASH_SLASH] = ACTIONS(298), - [anon_sym_AMP] = ACTIONS(298), - [anon_sym_CARET] = ACTIONS(298), - [anon_sym_LT_LT] = ACTIONS(298), - [anon_sym_TILDE] = ACTIONS(637), - [anon_sym_LT] = ACTIONS(265), - [anon_sym_LT_EQ] = ACTIONS(298), - [anon_sym_EQ_EQ] = ACTIONS(298), - [anon_sym_BANG_EQ] = ACTIONS(298), - [anon_sym_GT_EQ] = ACTIONS(298), - [anon_sym_GT] = ACTIONS(265), - [anon_sym_LT_GT] = ACTIONS(298), - [anon_sym_is] = ACTIONS(265), - [sym_ellipsis] = ACTIONS(643), - [sym_integer] = ACTIONS(629), - [sym_float] = ACTIONS(643), - [anon_sym_await] = ACTIONS(645), - [sym_true] = ACTIONS(629), - [sym_false] = ACTIONS(629), - [sym_none] = ACTIONS(629), + [sym_primary_expression] = STATE(747), + [sym_binary_operator] = STATE(720), + [sym_unary_operator] = STATE(720), + [sym_attribute] = STATE(720), + [sym_subscript] = STATE(720), + [sym_call] = STATE(720), + [sym_list] = STATE(720), + [sym_set] = STATE(720), + [sym_tuple] = STATE(720), + [sym_dictionary] = STATE(720), + [sym_list_comprehension] = STATE(720), + [sym_dictionary_comprehension] = STATE(720), + [sym_set_comprehension] = STATE(720), + [sym_generator_expression] = STATE(720), + [sym_parenthesized_expression] = STATE(720), + [sym_concatenated_string] = STATE(720), + [sym_string] = STATE(694), + [sym_concatenated_template_string] = STATE(720), + [sym_template_string] = STATE(698), + [sym_await] = STATE(720), + [sym_identifier] = ACTIONS(311), + [anon_sym_lazy] = ACTIONS(583), + [anon_sym_DOT] = ACTIONS(272), + [anon_sym_LPAREN] = ACTIONS(602), + [anon_sym_RPAREN] = ACTIONS(303), + [anon_sym_COMMA] = ACTIONS(303), + [anon_sym_STAR] = ACTIONS(272), + [anon_sym_print] = ACTIONS(583), + [anon_sym_GT_GT] = ACTIONS(303), + [anon_sym_COLON_EQ] = ACTIONS(604), + [anon_sym_if] = ACTIONS(272), + [anon_sym_async] = ACTIONS(583), + [anon_sym_for] = ACTIONS(272), + [anon_sym_in] = ACTIONS(272), + [anon_sym_match] = ACTIONS(583), + [anon_sym_PIPE] = ACTIONS(303), + [anon_sym_DASH] = ACTIONS(606), + [anon_sym_PLUS] = ACTIONS(606), + [anon_sym_LBRACK] = ACTIONS(608), + [anon_sym_LBRACE] = ACTIONS(293), + [anon_sym_STAR_STAR] = ACTIONS(303), + [anon_sym_EQ] = ACTIONS(634), + [anon_sym_exec] = ACTIONS(583), + [anon_sym_type] = ACTIONS(583), + [anon_sym_AT] = ACTIONS(303), + [anon_sym_not] = ACTIONS(272), + [anon_sym_and] = ACTIONS(272), + [anon_sym_or] = ACTIONS(272), + [anon_sym_SLASH] = ACTIONS(272), + [anon_sym_PERCENT] = ACTIONS(303), + [anon_sym_SLASH_SLASH] = ACTIONS(303), + [anon_sym_AMP] = ACTIONS(303), + [anon_sym_CARET] = ACTIONS(303), + [anon_sym_LT_LT] = ACTIONS(303), + [anon_sym_TILDE] = ACTIONS(606), + [anon_sym_LT] = ACTIONS(272), + [anon_sym_LT_EQ] = ACTIONS(303), + [anon_sym_EQ_EQ] = ACTIONS(303), + [anon_sym_BANG_EQ] = ACTIONS(303), + [anon_sym_GT_EQ] = ACTIONS(303), + [anon_sym_GT] = ACTIONS(272), + [anon_sym_LT_GT] = ACTIONS(303), + [anon_sym_is] = ACTIONS(272), + [sym_ellipsis] = ACTIONS(309), + [sym_integer] = ACTIONS(311), + [sym_float] = ACTIONS(309), + [anon_sym_await] = ACTIONS(610), + [sym_true] = ACTIONS(311), + [sym_false] = ACTIONS(311), + [sym_none] = ACTIONS(311), [sym_comment] = ACTIONS(3), - [sym__string_start] = ACTIONS(647), - [sym__template_string_start] = ACTIONS(649), + [sym__string_start] = ACTIONS(315), + [sym__template_string_start] = ACTIONS(317), }, [STATE(145)] = { - [sym_primary_expression] = STATE(785), - [sym_binary_operator] = STATE(924), - [sym_unary_operator] = STATE(924), - [sym_attribute] = STATE(924), - [sym_subscript] = STATE(924), - [sym_call] = STATE(924), - [sym_list] = STATE(924), - [sym_set] = STATE(924), - [sym_tuple] = STATE(924), - [sym_dictionary] = STATE(924), - [sym_list_comprehension] = STATE(924), - [sym_dictionary_comprehension] = STATE(924), - [sym_set_comprehension] = STATE(924), - [sym_generator_expression] = STATE(924), - [sym_parenthesized_expression] = STATE(924), - [sym_concatenated_string] = STATE(924), - [sym_string] = STATE(767), - [sym_concatenated_template_string] = STATE(924), - [sym_template_string] = STATE(768), - [sym_await] = STATE(924), - [sym_identifier] = ACTIONS(607), - [anon_sym_DOT] = ACTIONS(265), - [anon_sym_LPAREN] = ACTIONS(609), - [anon_sym_COMMA] = ACTIONS(298), - [anon_sym_STAR] = ACTIONS(265), - [anon_sym_print] = ACTIONS(611), - [anon_sym_GT_GT] = ACTIONS(298), - [anon_sym_if] = ACTIONS(265), - [anon_sym_async] = ACTIONS(611), - [anon_sym_in] = ACTIONS(265), - [anon_sym_match] = ACTIONS(611), - [anon_sym_PIPE] = ACTIONS(298), - [anon_sym_DASH] = ACTIONS(615), - [anon_sym_PLUS] = ACTIONS(615), - [anon_sym_LBRACK] = ACTIONS(617), - [anon_sym_LBRACE] = ACTIONS(619), - [anon_sym_RBRACE] = ACTIONS(298), - [anon_sym_STAR_STAR] = ACTIONS(298), - [anon_sym_EQ] = ACTIONS(265), - [anon_sym_exec] = ACTIONS(611), - [anon_sym_type] = ACTIONS(611), - [anon_sym_AT] = ACTIONS(298), - [anon_sym_not] = ACTIONS(265), - [anon_sym_and] = ACTIONS(265), - [anon_sym_or] = ACTIONS(265), - [anon_sym_SLASH] = ACTIONS(265), - [anon_sym_PERCENT] = ACTIONS(298), - [anon_sym_SLASH_SLASH] = ACTIONS(298), - [anon_sym_AMP] = ACTIONS(298), - [anon_sym_CARET] = ACTIONS(298), - [anon_sym_LT_LT] = ACTIONS(298), - [anon_sym_TILDE] = ACTIONS(615), - [anon_sym_LT] = ACTIONS(265), - [anon_sym_LT_EQ] = ACTIONS(298), - [anon_sym_EQ_EQ] = ACTIONS(298), - [anon_sym_BANG_EQ] = ACTIONS(298), - [anon_sym_GT_EQ] = ACTIONS(298), - [anon_sym_GT] = ACTIONS(265), - [anon_sym_LT_GT] = ACTIONS(298), - [anon_sym_is] = ACTIONS(265), - [sym_ellipsis] = ACTIONS(621), - [anon_sym_COLON2] = ACTIONS(298), - [sym_type_conversion] = ACTIONS(298), - [sym_integer] = ACTIONS(607), - [sym_float] = ACTIONS(621), - [anon_sym_await] = ACTIONS(623), - [sym_true] = ACTIONS(607), - [sym_false] = ACTIONS(607), - [sym_none] = ACTIONS(607), + [sym_primary_expression] = STATE(808), + [sym_binary_operator] = STATE(720), + [sym_unary_operator] = STATE(720), + [sym_attribute] = STATE(720), + [sym_subscript] = STATE(720), + [sym_call] = STATE(720), + [sym_list] = STATE(720), + [sym_set] = STATE(720), + [sym_tuple] = STATE(720), + [sym_dictionary] = STATE(720), + [sym_list_comprehension] = STATE(720), + [sym_dictionary_comprehension] = STATE(720), + [sym_set_comprehension] = STATE(720), + [sym_generator_expression] = STATE(720), + [sym_parenthesized_expression] = STATE(720), + [sym_concatenated_string] = STATE(720), + [sym_string] = STATE(694), + [sym_concatenated_template_string] = STATE(720), + [sym_template_string] = STATE(698), + [sym_await] = STATE(720), + [sym_identifier] = ACTIONS(311), + [anon_sym_lazy] = ACTIONS(583), + [anon_sym_DOT] = ACTIONS(272), + [anon_sym_LPAREN] = ACTIONS(636), + [anon_sym_COMMA] = ACTIONS(303), + [anon_sym_STAR] = ACTIONS(272), + [anon_sym_print] = ACTIONS(583), + [anon_sym_GT_GT] = ACTIONS(303), + [anon_sym_COLON_EQ] = ACTIONS(638), + [anon_sym_if] = ACTIONS(272), + [anon_sym_COLON] = ACTIONS(272), + [anon_sym_async] = ACTIONS(583), + [anon_sym_for] = ACTIONS(272), + [anon_sym_in] = ACTIONS(272), + [anon_sym_match] = ACTIONS(583), + [anon_sym_PIPE] = ACTIONS(303), + [anon_sym_DASH] = ACTIONS(640), + [anon_sym_PLUS] = ACTIONS(640), + [anon_sym_LBRACK] = ACTIONS(642), + [anon_sym_LBRACE] = ACTIONS(293), + [anon_sym_RBRACE] = ACTIONS(303), + [anon_sym_STAR_STAR] = ACTIONS(303), + [anon_sym_exec] = ACTIONS(583), + [anon_sym_type] = ACTIONS(583), + [anon_sym_AT] = ACTIONS(303), + [anon_sym_not] = ACTIONS(272), + [anon_sym_and] = ACTIONS(272), + [anon_sym_or] = ACTIONS(272), + [anon_sym_SLASH] = ACTIONS(272), + [anon_sym_PERCENT] = ACTIONS(303), + [anon_sym_SLASH_SLASH] = ACTIONS(303), + [anon_sym_AMP] = ACTIONS(303), + [anon_sym_CARET] = ACTIONS(303), + [anon_sym_LT_LT] = ACTIONS(303), + [anon_sym_TILDE] = ACTIONS(640), + [anon_sym_LT] = ACTIONS(272), + [anon_sym_LT_EQ] = ACTIONS(303), + [anon_sym_EQ_EQ] = ACTIONS(303), + [anon_sym_BANG_EQ] = ACTIONS(303), + [anon_sym_GT_EQ] = ACTIONS(303), + [anon_sym_GT] = ACTIONS(272), + [anon_sym_LT_GT] = ACTIONS(303), + [anon_sym_is] = ACTIONS(272), + [sym_ellipsis] = ACTIONS(309), + [sym_integer] = ACTIONS(311), + [sym_float] = ACTIONS(309), + [anon_sym_await] = ACTIONS(644), + [sym_true] = ACTIONS(311), + [sym_false] = ACTIONS(311), + [sym_none] = ACTIONS(311), [sym_comment] = ACTIONS(3), - [sym__string_start] = ACTIONS(625), - [sym__template_string_start] = ACTIONS(627), + [sym__string_start] = ACTIONS(315), + [sym__template_string_start] = ACTIONS(317), }, [STATE(146)] = { - [sym_primary_expression] = STATE(760), - [sym_binary_operator] = STATE(724), - [sym_unary_operator] = STATE(724), - [sym_attribute] = STATE(724), - [sym_subscript] = STATE(724), - [sym_call] = STATE(724), - [sym_list] = STATE(724), - [sym_set] = STATE(724), - [sym_tuple] = STATE(724), - [sym_dictionary] = STATE(724), - [sym_list_comprehension] = STATE(724), - [sym_dictionary_comprehension] = STATE(724), - [sym_set_comprehension] = STATE(724), - [sym_generator_expression] = STATE(724), - [sym_parenthesized_expression] = STATE(724), - [sym_concatenated_string] = STATE(724), - [sym_string] = STATE(621), - [sym_concatenated_template_string] = STATE(724), - [sym_template_string] = STATE(624), - [sym_await] = STATE(724), - [sym_identifier] = ACTIONS(306), - [anon_sym_DOT] = ACTIONS(265), - [anon_sym_LPAREN] = ACTIONS(597), - [anon_sym_RPAREN] = ACTIONS(298), - [anon_sym_COMMA] = ACTIONS(298), - [anon_sym_STAR] = ACTIONS(265), - [anon_sym_print] = ACTIONS(583), - [anon_sym_GT_GT] = ACTIONS(298), - [anon_sym_COLON_EQ] = ACTIONS(599), - [anon_sym_if] = ACTIONS(265), - [anon_sym_async] = ACTIONS(583), - [anon_sym_for] = ACTIONS(265), - [anon_sym_in] = ACTIONS(265), - [anon_sym_match] = ACTIONS(583), - [anon_sym_PIPE] = ACTIONS(298), - [anon_sym_DASH] = ACTIONS(601), - [anon_sym_PLUS] = ACTIONS(601), - [anon_sym_LBRACK] = ACTIONS(603), - [anon_sym_LBRACE] = ACTIONS(288), - [anon_sym_STAR_STAR] = ACTIONS(298), - [anon_sym_EQ] = ACTIONS(651), - [anon_sym_exec] = ACTIONS(583), - [anon_sym_type] = ACTIONS(583), - [anon_sym_AT] = ACTIONS(298), - [anon_sym_not] = ACTIONS(265), - [anon_sym_and] = ACTIONS(265), - [anon_sym_or] = ACTIONS(265), - [anon_sym_SLASH] = ACTIONS(265), - [anon_sym_PERCENT] = ACTIONS(298), - [anon_sym_SLASH_SLASH] = ACTIONS(298), - [anon_sym_AMP] = ACTIONS(298), - [anon_sym_CARET] = ACTIONS(298), - [anon_sym_LT_LT] = ACTIONS(298), - [anon_sym_TILDE] = ACTIONS(601), - [anon_sym_LT] = ACTIONS(265), - [anon_sym_LT_EQ] = ACTIONS(298), - [anon_sym_EQ_EQ] = ACTIONS(298), - [anon_sym_BANG_EQ] = ACTIONS(298), - [anon_sym_GT_EQ] = ACTIONS(298), - [anon_sym_GT] = ACTIONS(265), - [anon_sym_LT_GT] = ACTIONS(298), - [anon_sym_is] = ACTIONS(265), - [sym_ellipsis] = ACTIONS(304), - [sym_integer] = ACTIONS(306), - [sym_float] = ACTIONS(304), - [anon_sym_await] = ACTIONS(605), - [sym_true] = ACTIONS(306), - [sym_false] = ACTIONS(306), - [sym_none] = ACTIONS(306), + [sym_primary_expression] = STATE(839), + [sym_binary_operator] = STATE(985), + [sym_unary_operator] = STATE(985), + [sym_attribute] = STATE(985), + [sym_subscript] = STATE(985), + [sym_call] = STATE(985), + [sym_list] = STATE(985), + [sym_set] = STATE(985), + [sym_tuple] = STATE(985), + [sym_dictionary] = STATE(985), + [sym_list_comprehension] = STATE(985), + [sym_dictionary_comprehension] = STATE(985), + [sym_set_comprehension] = STATE(985), + [sym_generator_expression] = STATE(985), + [sym_parenthesized_expression] = STATE(985), + [sym_concatenated_string] = STATE(985), + [sym_string] = STATE(790), + [sym_concatenated_template_string] = STATE(985), + [sym_template_string] = STATE(791), + [sym_await] = STATE(985), + [sym_identifier] = ACTIONS(646), + [anon_sym_lazy] = ACTIONS(648), + [anon_sym_DOT] = ACTIONS(272), + [anon_sym_LPAREN] = ACTIONS(650), + [anon_sym_RPAREN] = ACTIONS(303), + [anon_sym_COMMA] = ACTIONS(303), + [anon_sym_as] = ACTIONS(272), + [anon_sym_STAR] = ACTIONS(272), + [anon_sym_print] = ACTIONS(648), + [anon_sym_GT_GT] = ACTIONS(303), + [anon_sym_COLON_EQ] = ACTIONS(652), + [anon_sym_if] = ACTIONS(272), + [anon_sym_COLON] = ACTIONS(272), + [anon_sym_async] = ACTIONS(648), + [anon_sym_in] = ACTIONS(272), + [anon_sym_match] = ACTIONS(648), + [anon_sym_PIPE] = ACTIONS(303), + [anon_sym_DASH] = ACTIONS(654), + [anon_sym_PLUS] = ACTIONS(654), + [anon_sym_LBRACK] = ACTIONS(656), + [anon_sym_LBRACE] = ACTIONS(658), + [anon_sym_STAR_STAR] = ACTIONS(303), + [anon_sym_exec] = ACTIONS(648), + [anon_sym_type] = ACTIONS(648), + [anon_sym_AT] = ACTIONS(303), + [anon_sym_not] = ACTIONS(272), + [anon_sym_and] = ACTIONS(272), + [anon_sym_or] = ACTIONS(272), + [anon_sym_SLASH] = ACTIONS(272), + [anon_sym_PERCENT] = ACTIONS(303), + [anon_sym_SLASH_SLASH] = ACTIONS(303), + [anon_sym_AMP] = ACTIONS(303), + [anon_sym_CARET] = ACTIONS(303), + [anon_sym_LT_LT] = ACTIONS(303), + [anon_sym_TILDE] = ACTIONS(654), + [anon_sym_LT] = ACTIONS(272), + [anon_sym_LT_EQ] = ACTIONS(303), + [anon_sym_EQ_EQ] = ACTIONS(303), + [anon_sym_BANG_EQ] = ACTIONS(303), + [anon_sym_GT_EQ] = ACTIONS(303), + [anon_sym_GT] = ACTIONS(272), + [anon_sym_LT_GT] = ACTIONS(303), + [anon_sym_is] = ACTIONS(272), + [sym_ellipsis] = ACTIONS(660), + [sym_integer] = ACTIONS(646), + [sym_float] = ACTIONS(660), + [anon_sym_await] = ACTIONS(662), + [sym_true] = ACTIONS(646), + [sym_false] = ACTIONS(646), + [sym_none] = ACTIONS(646), [sym_comment] = ACTIONS(3), - [sym__string_start] = ACTIONS(310), - [sym__template_string_start] = ACTIONS(312), + [sym__string_start] = ACTIONS(664), + [sym__template_string_start] = ACTIONS(666), }, [STATE(147)] = { - [sym_primary_expression] = STATE(790), - [sym_binary_operator] = STATE(724), - [sym_unary_operator] = STATE(724), - [sym_attribute] = STATE(724), - [sym_subscript] = STATE(724), - [sym_call] = STATE(724), - [sym_list] = STATE(724), - [sym_set] = STATE(724), - [sym_tuple] = STATE(724), - [sym_dictionary] = STATE(724), - [sym_list_comprehension] = STATE(724), - [sym_dictionary_comprehension] = STATE(724), - [sym_set_comprehension] = STATE(724), - [sym_generator_expression] = STATE(724), - [sym_parenthesized_expression] = STATE(724), - [sym_concatenated_string] = STATE(724), - [sym_string] = STATE(621), - [sym_concatenated_template_string] = STATE(724), - [sym_template_string] = STATE(624), - [sym_await] = STATE(724), - [sym_identifier] = ACTIONS(306), - [anon_sym_DOT] = ACTIONS(265), - [anon_sym_LPAREN] = ACTIONS(653), - [anon_sym_COMMA] = ACTIONS(298), - [anon_sym_STAR] = ACTIONS(265), - [anon_sym_print] = ACTIONS(583), - [anon_sym_GT_GT] = ACTIONS(298), - [anon_sym_COLON_EQ] = ACTIONS(655), - [anon_sym_if] = ACTIONS(265), - [anon_sym_COLON] = ACTIONS(265), - [anon_sym_async] = ACTIONS(583), - [anon_sym_for] = ACTIONS(265), - [anon_sym_in] = ACTIONS(265), - [anon_sym_match] = ACTIONS(583), - [anon_sym_PIPE] = ACTIONS(298), - [anon_sym_DASH] = ACTIONS(657), - [anon_sym_PLUS] = ACTIONS(657), - [anon_sym_LBRACK] = ACTIONS(659), - [anon_sym_LBRACE] = ACTIONS(288), - [anon_sym_RBRACE] = ACTIONS(298), - [anon_sym_STAR_STAR] = ACTIONS(298), - [anon_sym_exec] = ACTIONS(583), - [anon_sym_type] = ACTIONS(583), - [anon_sym_AT] = ACTIONS(298), - [anon_sym_not] = ACTIONS(265), - [anon_sym_and] = ACTIONS(265), - [anon_sym_or] = ACTIONS(265), - [anon_sym_SLASH] = ACTIONS(265), - [anon_sym_PERCENT] = ACTIONS(298), - [anon_sym_SLASH_SLASH] = ACTIONS(298), - [anon_sym_AMP] = ACTIONS(298), - [anon_sym_CARET] = ACTIONS(298), - [anon_sym_LT_LT] = ACTIONS(298), - [anon_sym_TILDE] = ACTIONS(657), - [anon_sym_LT] = ACTIONS(265), - [anon_sym_LT_EQ] = ACTIONS(298), - [anon_sym_EQ_EQ] = ACTIONS(298), - [anon_sym_BANG_EQ] = ACTIONS(298), - [anon_sym_GT_EQ] = ACTIONS(298), - [anon_sym_GT] = ACTIONS(265), - [anon_sym_LT_GT] = ACTIONS(298), - [anon_sym_is] = ACTIONS(265), - [sym_ellipsis] = ACTIONS(304), - [sym_integer] = ACTIONS(306), - [sym_float] = ACTIONS(304), - [anon_sym_await] = ACTIONS(661), - [sym_true] = ACTIONS(306), - [sym_false] = ACTIONS(306), - [sym_none] = ACTIONS(306), + [sym_primary_expression] = STATE(805), + [sym_binary_operator] = STATE(949), + [sym_unary_operator] = STATE(949), + [sym_attribute] = STATE(949), + [sym_subscript] = STATE(949), + [sym_call] = STATE(949), + [sym_list] = STATE(949), + [sym_set] = STATE(949), + [sym_tuple] = STATE(949), + [sym_dictionary] = STATE(949), + [sym_list_comprehension] = STATE(949), + [sym_dictionary_comprehension] = STATE(949), + [sym_set_comprehension] = STATE(949), + [sym_generator_expression] = STATE(949), + [sym_parenthesized_expression] = STATE(949), + [sym_concatenated_string] = STATE(949), + [sym_string] = STATE(781), + [sym_concatenated_template_string] = STATE(949), + [sym_template_string] = STATE(782), + [sym_await] = STATE(949), + [sym_identifier] = ACTIONS(612), + [anon_sym_lazy] = ACTIONS(614), + [anon_sym_DOT] = ACTIONS(272), + [anon_sym_LPAREN] = ACTIONS(616), + [anon_sym_COMMA] = ACTIONS(303), + [anon_sym_STAR] = ACTIONS(272), + [anon_sym_print] = ACTIONS(614), + [anon_sym_GT_GT] = ACTIONS(303), + [anon_sym_if] = ACTIONS(272), + [anon_sym_async] = ACTIONS(614), + [anon_sym_in] = ACTIONS(272), + [anon_sym_match] = ACTIONS(614), + [anon_sym_PIPE] = ACTIONS(303), + [anon_sym_DASH] = ACTIONS(620), + [anon_sym_PLUS] = ACTIONS(620), + [anon_sym_LBRACK] = ACTIONS(622), + [anon_sym_LBRACE] = ACTIONS(624), + [anon_sym_RBRACE] = ACTIONS(303), + [anon_sym_STAR_STAR] = ACTIONS(303), + [anon_sym_EQ] = ACTIONS(272), + [anon_sym_exec] = ACTIONS(614), + [anon_sym_type] = ACTIONS(614), + [anon_sym_AT] = ACTIONS(303), + [anon_sym_not] = ACTIONS(272), + [anon_sym_and] = ACTIONS(272), + [anon_sym_or] = ACTIONS(272), + [anon_sym_SLASH] = ACTIONS(272), + [anon_sym_PERCENT] = ACTIONS(303), + [anon_sym_SLASH_SLASH] = ACTIONS(303), + [anon_sym_AMP] = ACTIONS(303), + [anon_sym_CARET] = ACTIONS(303), + [anon_sym_LT_LT] = ACTIONS(303), + [anon_sym_TILDE] = ACTIONS(620), + [anon_sym_LT] = ACTIONS(272), + [anon_sym_LT_EQ] = ACTIONS(303), + [anon_sym_EQ_EQ] = ACTIONS(303), + [anon_sym_BANG_EQ] = ACTIONS(303), + [anon_sym_GT_EQ] = ACTIONS(303), + [anon_sym_GT] = ACTIONS(272), + [anon_sym_LT_GT] = ACTIONS(303), + [anon_sym_is] = ACTIONS(272), + [sym_ellipsis] = ACTIONS(626), + [anon_sym_COLON2] = ACTIONS(303), + [sym_type_conversion] = ACTIONS(303), + [sym_integer] = ACTIONS(612), + [sym_float] = ACTIONS(626), + [anon_sym_await] = ACTIONS(628), + [sym_true] = ACTIONS(612), + [sym_false] = ACTIONS(612), + [sym_none] = ACTIONS(612), [sym_comment] = ACTIONS(3), - [sym__string_start] = ACTIONS(310), - [sym__template_string_start] = ACTIONS(312), + [sym__string_start] = ACTIONS(630), + [sym__template_string_start] = ACTIONS(632), }, [STATE(148)] = { - [sym_primary_expression] = STATE(760), - [sym_binary_operator] = STATE(724), - [sym_unary_operator] = STATE(724), - [sym_attribute] = STATE(724), - [sym_subscript] = STATE(724), - [sym_call] = STATE(724), - [sym_list] = STATE(724), - [sym_set] = STATE(724), - [sym_tuple] = STATE(724), - [sym_dictionary] = STATE(724), - [sym_list_comprehension] = STATE(724), - [sym_dictionary_comprehension] = STATE(724), - [sym_set_comprehension] = STATE(724), - [sym_generator_expression] = STATE(724), - [sym_parenthesized_expression] = STATE(724), - [sym_concatenated_string] = STATE(724), - [sym_string] = STATE(621), - [sym_concatenated_template_string] = STATE(724), - [sym_template_string] = STATE(624), - [sym_await] = STATE(724), - [sym_identifier] = ACTIONS(306), - [anon_sym_DOT] = ACTIONS(265), - [anon_sym_LPAREN] = ACTIONS(597), - [anon_sym_RPAREN] = ACTIONS(270), - [anon_sym_COMMA] = ACTIONS(270), - [anon_sym_STAR] = ACTIONS(265), + [sym_primary_expression] = STATE(747), + [sym_binary_operator] = STATE(720), + [sym_unary_operator] = STATE(720), + [sym_attribute] = STATE(720), + [sym_subscript] = STATE(720), + [sym_call] = STATE(720), + [sym_list] = STATE(720), + [sym_set] = STATE(720), + [sym_tuple] = STATE(720), + [sym_dictionary] = STATE(720), + [sym_list_comprehension] = STATE(720), + [sym_dictionary_comprehension] = STATE(720), + [sym_set_comprehension] = STATE(720), + [sym_generator_expression] = STATE(720), + [sym_parenthesized_expression] = STATE(720), + [sym_concatenated_string] = STATE(720), + [sym_string] = STATE(694), + [sym_concatenated_template_string] = STATE(720), + [sym_template_string] = STATE(698), + [sym_await] = STATE(720), + [sym_identifier] = ACTIONS(311), + [anon_sym_lazy] = ACTIONS(583), + [anon_sym_DOT] = ACTIONS(272), + [anon_sym_LPAREN] = ACTIONS(602), + [anon_sym_RPAREN] = ACTIONS(587), + [anon_sym_COMMA] = ACTIONS(587), + [anon_sym_STAR] = ACTIONS(272), [anon_sym_print] = ACTIONS(583), - [anon_sym_GT_GT] = ACTIONS(298), - [anon_sym_COLON_EQ] = ACTIONS(599), - [anon_sym_if] = ACTIONS(265), + [anon_sym_GT_GT] = ACTIONS(303), + [anon_sym_COLON_EQ] = ACTIONS(604), + [anon_sym_if] = ACTIONS(272), [anon_sym_async] = ACTIONS(583), - [anon_sym_for] = ACTIONS(265), - [anon_sym_in] = ACTIONS(265), + [anon_sym_for] = ACTIONS(272), + [anon_sym_in] = ACTIONS(272), [anon_sym_match] = ACTIONS(583), - [anon_sym_PIPE] = ACTIONS(298), - [anon_sym_DASH] = ACTIONS(601), - [anon_sym_PLUS] = ACTIONS(601), - [anon_sym_LBRACK] = ACTIONS(603), - [anon_sym_RBRACK] = ACTIONS(270), - [anon_sym_LBRACE] = ACTIONS(288), - [anon_sym_STAR_STAR] = ACTIONS(298), + [anon_sym_PIPE] = ACTIONS(303), + [anon_sym_DASH] = ACTIONS(606), + [anon_sym_PLUS] = ACTIONS(606), + [anon_sym_LBRACK] = ACTIONS(608), + [anon_sym_RBRACK] = ACTIONS(587), + [anon_sym_LBRACE] = ACTIONS(293), + [anon_sym_STAR_STAR] = ACTIONS(303), [anon_sym_exec] = ACTIONS(583), [anon_sym_type] = ACTIONS(583), - [anon_sym_AT] = ACTIONS(298), - [anon_sym_not] = ACTIONS(265), - [anon_sym_and] = ACTIONS(265), - [anon_sym_or] = ACTIONS(265), - [anon_sym_SLASH] = ACTIONS(265), - [anon_sym_PERCENT] = ACTIONS(298), - [anon_sym_SLASH_SLASH] = ACTIONS(298), - [anon_sym_AMP] = ACTIONS(298), - [anon_sym_CARET] = ACTIONS(298), - [anon_sym_LT_LT] = ACTIONS(298), - [anon_sym_TILDE] = ACTIONS(601), - [anon_sym_LT] = ACTIONS(265), - [anon_sym_LT_EQ] = ACTIONS(298), - [anon_sym_EQ_EQ] = ACTIONS(298), - [anon_sym_BANG_EQ] = ACTIONS(298), - [anon_sym_GT_EQ] = ACTIONS(298), - [anon_sym_GT] = ACTIONS(265), - [anon_sym_LT_GT] = ACTIONS(298), - [anon_sym_is] = ACTIONS(265), - [sym_ellipsis] = ACTIONS(304), - [sym_integer] = ACTIONS(306), - [sym_float] = ACTIONS(304), - [anon_sym_await] = ACTIONS(605), - [sym_true] = ACTIONS(306), - [sym_false] = ACTIONS(306), - [sym_none] = ACTIONS(306), + [anon_sym_AT] = ACTIONS(303), + [anon_sym_not] = ACTIONS(272), + [anon_sym_and] = ACTIONS(272), + [anon_sym_or] = ACTIONS(272), + [anon_sym_SLASH] = ACTIONS(272), + [anon_sym_PERCENT] = ACTIONS(303), + [anon_sym_SLASH_SLASH] = ACTIONS(303), + [anon_sym_AMP] = ACTIONS(303), + [anon_sym_CARET] = ACTIONS(303), + [anon_sym_LT_LT] = ACTIONS(303), + [anon_sym_TILDE] = ACTIONS(606), + [anon_sym_LT] = ACTIONS(272), + [anon_sym_LT_EQ] = ACTIONS(303), + [anon_sym_EQ_EQ] = ACTIONS(303), + [anon_sym_BANG_EQ] = ACTIONS(303), + [anon_sym_GT_EQ] = ACTIONS(303), + [anon_sym_GT] = ACTIONS(272), + [anon_sym_LT_GT] = ACTIONS(303), + [anon_sym_is] = ACTIONS(272), + [sym_ellipsis] = ACTIONS(309), + [sym_integer] = ACTIONS(311), + [sym_float] = ACTIONS(309), + [anon_sym_await] = ACTIONS(610), + [sym_true] = ACTIONS(311), + [sym_false] = ACTIONS(311), + [sym_none] = ACTIONS(311), [sym_comment] = ACTIONS(3), - [sym__string_start] = ACTIONS(310), - [sym__template_string_start] = ACTIONS(312), + [sym__string_start] = ACTIONS(315), + [sym__template_string_start] = ACTIONS(317), }, [STATE(149)] = { - [sym_primary_expression] = STATE(810), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_attribute] = STATE(908), - [sym_subscript] = STATE(908), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [sym_identifier] = ACTIONS(77), - [anon_sym_DOT] = ACTIONS(265), - [anon_sym_from] = ACTIONS(265), - [anon_sym_LPAREN] = ACTIONS(568), - [anon_sym_COMMA] = ACTIONS(298), - [anon_sym_STAR] = ACTIONS(265), - [anon_sym_print] = ACTIONS(570), - [anon_sym_GT_GT] = ACTIONS(298), - [anon_sym_if] = ACTIONS(265), - [anon_sym_async] = ACTIONS(570), - [anon_sym_in] = ACTIONS(265), - [anon_sym_match] = ACTIONS(570), - [anon_sym_PIPE] = ACTIONS(298), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(574), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(298), - [anon_sym_EQ] = ACTIONS(265), - [anon_sym_exec] = ACTIONS(570), - [anon_sym_type] = ACTIONS(570), - [anon_sym_AT] = ACTIONS(298), - [anon_sym_not] = ACTIONS(265), - [anon_sym_and] = ACTIONS(265), - [anon_sym_or] = ACTIONS(265), - [anon_sym_SLASH] = ACTIONS(265), - [anon_sym_PERCENT] = ACTIONS(298), - [anon_sym_SLASH_SLASH] = ACTIONS(298), - [anon_sym_AMP] = ACTIONS(298), - [anon_sym_CARET] = ACTIONS(298), - [anon_sym_LT_LT] = ACTIONS(298), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_LT] = ACTIONS(265), - [anon_sym_LT_EQ] = ACTIONS(298), - [anon_sym_EQ_EQ] = ACTIONS(298), - [anon_sym_BANG_EQ] = ACTIONS(298), - [anon_sym_GT_EQ] = ACTIONS(298), - [anon_sym_GT] = ACTIONS(265), - [anon_sym_LT_GT] = ACTIONS(298), - [anon_sym_is] = ACTIONS(265), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(576), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [sym_primary_expression] = STATE(747), + [sym_binary_operator] = STATE(720), + [sym_unary_operator] = STATE(720), + [sym_attribute] = STATE(720), + [sym_subscript] = STATE(720), + [sym_call] = STATE(720), + [sym_list] = STATE(720), + [sym_set] = STATE(720), + [sym_tuple] = STATE(720), + [sym_dictionary] = STATE(720), + [sym_list_comprehension] = STATE(720), + [sym_dictionary_comprehension] = STATE(720), + [sym_set_comprehension] = STATE(720), + [sym_generator_expression] = STATE(720), + [sym_parenthesized_expression] = STATE(720), + [sym_concatenated_string] = STATE(720), + [sym_string] = STATE(694), + [sym_concatenated_template_string] = STATE(720), + [sym_template_string] = STATE(698), + [sym_await] = STATE(720), + [sym_identifier] = ACTIONS(311), + [anon_sym_lazy] = ACTIONS(583), + [anon_sym_DOT] = ACTIONS(272), + [anon_sym_LPAREN] = ACTIONS(602), + [anon_sym_RPAREN] = ACTIONS(277), + [anon_sym_COMMA] = ACTIONS(277), + [anon_sym_STAR] = ACTIONS(272), + [anon_sym_print] = ACTIONS(583), + [anon_sym_GT_GT] = ACTIONS(303), + [anon_sym_COLON_EQ] = ACTIONS(604), + [anon_sym_if] = ACTIONS(272), + [anon_sym_async] = ACTIONS(583), + [anon_sym_for] = ACTIONS(272), + [anon_sym_in] = ACTIONS(272), + [anon_sym_match] = ACTIONS(583), + [anon_sym_PIPE] = ACTIONS(303), + [anon_sym_DASH] = ACTIONS(606), + [anon_sym_PLUS] = ACTIONS(606), + [anon_sym_LBRACK] = ACTIONS(608), + [anon_sym_RBRACK] = ACTIONS(277), + [anon_sym_LBRACE] = ACTIONS(293), + [anon_sym_STAR_STAR] = ACTIONS(303), + [anon_sym_exec] = ACTIONS(583), + [anon_sym_type] = ACTIONS(583), + [anon_sym_AT] = ACTIONS(303), + [anon_sym_not] = ACTIONS(272), + [anon_sym_and] = ACTIONS(272), + [anon_sym_or] = ACTIONS(272), + [anon_sym_SLASH] = ACTIONS(272), + [anon_sym_PERCENT] = ACTIONS(303), + [anon_sym_SLASH_SLASH] = ACTIONS(303), + [anon_sym_AMP] = ACTIONS(303), + [anon_sym_CARET] = ACTIONS(303), + [anon_sym_LT_LT] = ACTIONS(303), + [anon_sym_TILDE] = ACTIONS(606), + [anon_sym_LT] = ACTIONS(272), + [anon_sym_LT_EQ] = ACTIONS(303), + [anon_sym_EQ_EQ] = ACTIONS(303), + [anon_sym_BANG_EQ] = ACTIONS(303), + [anon_sym_GT_EQ] = ACTIONS(303), + [anon_sym_GT] = ACTIONS(272), + [anon_sym_LT_GT] = ACTIONS(303), + [anon_sym_is] = ACTIONS(272), + [sym_ellipsis] = ACTIONS(309), + [sym_integer] = ACTIONS(311), + [sym_float] = ACTIONS(309), + [anon_sym_await] = ACTIONS(610), + [sym_true] = ACTIONS(311), + [sym_false] = ACTIONS(311), + [sym_none] = ACTIONS(311), [sym_comment] = ACTIONS(3), - [anon_sym_SEMI] = ACTIONS(298), - [sym__newline] = ACTIONS(298), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__string_start] = ACTIONS(315), + [sym__template_string_start] = ACTIONS(317), }, [STATE(150)] = { - [sym_primary_expression] = STATE(848), - [sym_binary_operator] = STATE(953), - [sym_unary_operator] = STATE(953), - [sym_attribute] = STATE(953), - [sym_subscript] = STATE(953), - [sym_call] = STATE(953), - [sym_list] = STATE(953), - [sym_set] = STATE(953), - [sym_tuple] = STATE(953), - [sym_dictionary] = STATE(953), - [sym_list_comprehension] = STATE(953), - [sym_dictionary_comprehension] = STATE(953), - [sym_set_comprehension] = STATE(953), - [sym_generator_expression] = STATE(953), - [sym_parenthesized_expression] = STATE(953), - [sym_concatenated_string] = STATE(953), - [sym_string] = STATE(794), - [sym_concatenated_template_string] = STATE(953), - [sym_template_string] = STATE(795), - [sym_await] = STATE(953), - [sym_identifier] = ACTIONS(629), - [anon_sym_DOT] = ACTIONS(265), - [anon_sym_LPAREN] = ACTIONS(631), - [anon_sym_RPAREN] = ACTIONS(298), - [anon_sym_COMMA] = ACTIONS(298), - [anon_sym_as] = ACTIONS(265), - [anon_sym_STAR] = ACTIONS(265), - [anon_sym_print] = ACTIONS(633), - [anon_sym_GT_GT] = ACTIONS(298), - [anon_sym_if] = ACTIONS(265), - [anon_sym_COLON] = ACTIONS(298), - [anon_sym_async] = ACTIONS(633), - [anon_sym_in] = ACTIONS(265), - [anon_sym_match] = ACTIONS(633), - [anon_sym_PIPE] = ACTIONS(298), - [anon_sym_DASH] = ACTIONS(637), - [anon_sym_PLUS] = ACTIONS(637), - [anon_sym_LBRACK] = ACTIONS(639), - [anon_sym_LBRACE] = ACTIONS(641), - [anon_sym_STAR_STAR] = ACTIONS(298), - [anon_sym_exec] = ACTIONS(633), - [anon_sym_type] = ACTIONS(633), - [anon_sym_AT] = ACTIONS(298), - [anon_sym_not] = ACTIONS(265), - [anon_sym_and] = ACTIONS(265), - [anon_sym_or] = ACTIONS(265), - [anon_sym_SLASH] = ACTIONS(265), - [anon_sym_PERCENT] = ACTIONS(298), - [anon_sym_SLASH_SLASH] = ACTIONS(298), - [anon_sym_AMP] = ACTIONS(298), - [anon_sym_CARET] = ACTIONS(298), - [anon_sym_LT_LT] = ACTIONS(298), - [anon_sym_TILDE] = ACTIONS(637), - [anon_sym_LT] = ACTIONS(265), - [anon_sym_LT_EQ] = ACTIONS(298), - [anon_sym_EQ_EQ] = ACTIONS(298), - [anon_sym_BANG_EQ] = ACTIONS(298), - [anon_sym_GT_EQ] = ACTIONS(298), - [anon_sym_GT] = ACTIONS(265), - [anon_sym_LT_GT] = ACTIONS(298), - [anon_sym_is] = ACTIONS(265), - [sym_ellipsis] = ACTIONS(643), - [sym_integer] = ACTIONS(629), - [sym_float] = ACTIONS(643), - [anon_sym_await] = ACTIONS(645), - [sym_true] = ACTIONS(629), - [sym_false] = ACTIONS(629), - [sym_none] = ACTIONS(629), + [sym_primary_expression] = STATE(799), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_attribute] = STATE(950), + [sym_subscript] = STATE(950), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [sym_identifier] = ACTIONS(79), + [anon_sym_lazy] = ACTIONS(573), + [anon_sym_DOT] = ACTIONS(272), + [anon_sym_from] = ACTIONS(272), + [anon_sym_LPAREN] = ACTIONS(575), + [anon_sym_COMMA] = ACTIONS(303), + [anon_sym_STAR] = ACTIONS(272), + [anon_sym_print] = ACTIONS(573), + [anon_sym_GT_GT] = ACTIONS(303), + [anon_sym_if] = ACTIONS(272), + [anon_sym_async] = ACTIONS(573), + [anon_sym_in] = ACTIONS(272), + [anon_sym_match] = ACTIONS(573), + [anon_sym_PIPE] = ACTIONS(303), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(579), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(303), + [anon_sym_EQ] = ACTIONS(272), + [anon_sym_exec] = ACTIONS(573), + [anon_sym_type] = ACTIONS(573), + [anon_sym_AT] = ACTIONS(303), + [anon_sym_not] = ACTIONS(272), + [anon_sym_and] = ACTIONS(272), + [anon_sym_or] = ACTIONS(272), + [anon_sym_SLASH] = ACTIONS(272), + [anon_sym_PERCENT] = ACTIONS(303), + [anon_sym_SLASH_SLASH] = ACTIONS(303), + [anon_sym_AMP] = ACTIONS(303), + [anon_sym_CARET] = ACTIONS(303), + [anon_sym_LT_LT] = ACTIONS(303), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_LT] = ACTIONS(272), + [anon_sym_LT_EQ] = ACTIONS(303), + [anon_sym_EQ_EQ] = ACTIONS(303), + [anon_sym_BANG_EQ] = ACTIONS(303), + [anon_sym_GT_EQ] = ACTIONS(303), + [anon_sym_GT] = ACTIONS(272), + [anon_sym_LT_GT] = ACTIONS(303), + [anon_sym_is] = ACTIONS(272), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(581), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__string_start] = ACTIONS(647), - [sym__template_string_start] = ACTIONS(649), + [anon_sym_SEMI] = ACTIONS(303), + [sym__newline] = ACTIONS(303), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(151)] = { - [sym_primary_expression] = STATE(735), - [sym_binary_operator] = STATE(724), - [sym_unary_operator] = STATE(724), - [sym_attribute] = STATE(724), - [sym_subscript] = STATE(724), - [sym_call] = STATE(724), - [sym_list] = STATE(724), - [sym_set] = STATE(724), - [sym_tuple] = STATE(724), - [sym_dictionary] = STATE(724), - [sym_list_comprehension] = STATE(724), - [sym_dictionary_comprehension] = STATE(724), - [sym_set_comprehension] = STATE(724), - [sym_generator_expression] = STATE(724), - [sym_parenthesized_expression] = STATE(724), - [sym_concatenated_string] = STATE(724), - [sym_string] = STATE(621), - [sym_concatenated_template_string] = STATE(724), - [sym_template_string] = STATE(624), - [sym_await] = STATE(724), - [sym_identifier] = ACTIONS(306), - [anon_sym_DOT] = ACTIONS(265), - [anon_sym_LPAREN] = ACTIONS(578), - [anon_sym_RPAREN] = ACTIONS(298), - [anon_sym_COMMA] = ACTIONS(298), - [anon_sym_STAR] = ACTIONS(265), + [sym_primary_expression] = STATE(808), + [sym_binary_operator] = STATE(720), + [sym_unary_operator] = STATE(720), + [sym_attribute] = STATE(720), + [sym_subscript] = STATE(720), + [sym_call] = STATE(720), + [sym_list] = STATE(720), + [sym_set] = STATE(720), + [sym_tuple] = STATE(720), + [sym_dictionary] = STATE(720), + [sym_list_comprehension] = STATE(720), + [sym_dictionary_comprehension] = STATE(720), + [sym_set_comprehension] = STATE(720), + [sym_generator_expression] = STATE(720), + [sym_parenthesized_expression] = STATE(720), + [sym_concatenated_string] = STATE(720), + [sym_string] = STATE(694), + [sym_concatenated_template_string] = STATE(720), + [sym_template_string] = STATE(698), + [sym_await] = STATE(720), + [sym_identifier] = ACTIONS(311), + [anon_sym_lazy] = ACTIONS(583), + [anon_sym_DOT] = ACTIONS(272), + [anon_sym_LPAREN] = ACTIONS(636), + [anon_sym_COMMA] = ACTIONS(303), + [anon_sym_STAR] = ACTIONS(272), [anon_sym_print] = ACTIONS(583), - [anon_sym_GT_GT] = ACTIONS(298), - [anon_sym_COLON_EQ] = ACTIONS(585), - [anon_sym_if] = ACTIONS(265), + [anon_sym_GT_GT] = ACTIONS(303), + [anon_sym_if] = ACTIONS(272), + [anon_sym_COLON] = ACTIONS(303), [anon_sym_async] = ACTIONS(583), - [anon_sym_in] = ACTIONS(265), + [anon_sym_for] = ACTIONS(272), + [anon_sym_in] = ACTIONS(272), [anon_sym_match] = ACTIONS(583), - [anon_sym_PIPE] = ACTIONS(298), - [anon_sym_DASH] = ACTIONS(296), - [anon_sym_PLUS] = ACTIONS(296), - [anon_sym_LBRACK] = ACTIONS(591), - [anon_sym_LBRACE] = ACTIONS(288), - [anon_sym_STAR_STAR] = ACTIONS(298), - [anon_sym_EQ] = ACTIONS(651), + [anon_sym_PIPE] = ACTIONS(303), + [anon_sym_DASH] = ACTIONS(640), + [anon_sym_PLUS] = ACTIONS(640), + [anon_sym_LBRACK] = ACTIONS(642), + [anon_sym_LBRACE] = ACTIONS(293), + [anon_sym_RBRACE] = ACTIONS(303), + [anon_sym_STAR_STAR] = ACTIONS(303), [anon_sym_exec] = ACTIONS(583), [anon_sym_type] = ACTIONS(583), - [anon_sym_AT] = ACTIONS(298), - [anon_sym_not] = ACTIONS(265), - [anon_sym_and] = ACTIONS(265), - [anon_sym_or] = ACTIONS(265), - [anon_sym_SLASH] = ACTIONS(265), - [anon_sym_PERCENT] = ACTIONS(298), - [anon_sym_SLASH_SLASH] = ACTIONS(298), - [anon_sym_AMP] = ACTIONS(298), - [anon_sym_CARET] = ACTIONS(298), - [anon_sym_LT_LT] = ACTIONS(298), - [anon_sym_TILDE] = ACTIONS(296), - [anon_sym_LT] = ACTIONS(265), - [anon_sym_LT_EQ] = ACTIONS(298), - [anon_sym_EQ_EQ] = ACTIONS(298), - [anon_sym_BANG_EQ] = ACTIONS(298), - [anon_sym_GT_EQ] = ACTIONS(298), - [anon_sym_GT] = ACTIONS(265), - [anon_sym_LT_GT] = ACTIONS(298), - [anon_sym_is] = ACTIONS(265), - [sym_ellipsis] = ACTIONS(304), - [sym_integer] = ACTIONS(306), - [sym_float] = ACTIONS(304), - [anon_sym_await] = ACTIONS(595), - [sym_true] = ACTIONS(306), - [sym_false] = ACTIONS(306), - [sym_none] = ACTIONS(306), + [anon_sym_AT] = ACTIONS(303), + [anon_sym_not] = ACTIONS(272), + [anon_sym_and] = ACTIONS(272), + [anon_sym_or] = ACTIONS(272), + [anon_sym_SLASH] = ACTIONS(272), + [anon_sym_PERCENT] = ACTIONS(303), + [anon_sym_SLASH_SLASH] = ACTIONS(303), + [anon_sym_AMP] = ACTIONS(303), + [anon_sym_CARET] = ACTIONS(303), + [anon_sym_LT_LT] = ACTIONS(303), + [anon_sym_TILDE] = ACTIONS(640), + [anon_sym_LT] = ACTIONS(272), + [anon_sym_LT_EQ] = ACTIONS(303), + [anon_sym_EQ_EQ] = ACTIONS(303), + [anon_sym_BANG_EQ] = ACTIONS(303), + [anon_sym_GT_EQ] = ACTIONS(303), + [anon_sym_GT] = ACTIONS(272), + [anon_sym_LT_GT] = ACTIONS(303), + [anon_sym_is] = ACTIONS(272), + [sym_ellipsis] = ACTIONS(309), + [sym_integer] = ACTIONS(311), + [sym_float] = ACTIONS(309), + [anon_sym_await] = ACTIONS(644), + [sym_true] = ACTIONS(311), + [sym_false] = ACTIONS(311), + [sym_none] = ACTIONS(311), [sym_comment] = ACTIONS(3), - [sym__string_start] = ACTIONS(310), - [sym__template_string_start] = ACTIONS(312), + [sym__string_start] = ACTIONS(315), + [sym__template_string_start] = ACTIONS(317), }, [STATE(152)] = { - [sym_primary_expression] = STATE(790), - [sym_binary_operator] = STATE(724), - [sym_unary_operator] = STATE(724), - [sym_attribute] = STATE(724), - [sym_subscript] = STATE(724), - [sym_call] = STATE(724), - [sym_list] = STATE(724), - [sym_set] = STATE(724), - [sym_tuple] = STATE(724), - [sym_dictionary] = STATE(724), - [sym_list_comprehension] = STATE(724), - [sym_dictionary_comprehension] = STATE(724), - [sym_set_comprehension] = STATE(724), - [sym_generator_expression] = STATE(724), - [sym_parenthesized_expression] = STATE(724), - [sym_concatenated_string] = STATE(724), - [sym_string] = STATE(621), - [sym_concatenated_template_string] = STATE(724), - [sym_template_string] = STATE(624), - [sym_await] = STATE(724), - [sym_identifier] = ACTIONS(306), - [anon_sym_DOT] = ACTIONS(265), - [anon_sym_LPAREN] = ACTIONS(653), - [anon_sym_COMMA] = ACTIONS(298), - [anon_sym_STAR] = ACTIONS(265), - [anon_sym_print] = ACTIONS(583), - [anon_sym_GT_GT] = ACTIONS(298), - [anon_sym_if] = ACTIONS(265), - [anon_sym_COLON] = ACTIONS(298), - [anon_sym_async] = ACTIONS(583), - [anon_sym_for] = ACTIONS(265), - [anon_sym_in] = ACTIONS(265), - [anon_sym_match] = ACTIONS(583), - [anon_sym_PIPE] = ACTIONS(298), - [anon_sym_DASH] = ACTIONS(657), - [anon_sym_PLUS] = ACTIONS(657), - [anon_sym_LBRACK] = ACTIONS(659), - [anon_sym_LBRACE] = ACTIONS(288), - [anon_sym_RBRACE] = ACTIONS(298), - [anon_sym_STAR_STAR] = ACTIONS(298), - [anon_sym_exec] = ACTIONS(583), - [anon_sym_type] = ACTIONS(583), - [anon_sym_AT] = ACTIONS(298), - [anon_sym_not] = ACTIONS(265), - [anon_sym_and] = ACTIONS(265), - [anon_sym_or] = ACTIONS(265), - [anon_sym_SLASH] = ACTIONS(265), - [anon_sym_PERCENT] = ACTIONS(298), - [anon_sym_SLASH_SLASH] = ACTIONS(298), - [anon_sym_AMP] = ACTIONS(298), - [anon_sym_CARET] = ACTIONS(298), - [anon_sym_LT_LT] = ACTIONS(298), - [anon_sym_TILDE] = ACTIONS(657), - [anon_sym_LT] = ACTIONS(265), - [anon_sym_LT_EQ] = ACTIONS(298), - [anon_sym_EQ_EQ] = ACTIONS(298), - [anon_sym_BANG_EQ] = ACTIONS(298), - [anon_sym_GT_EQ] = ACTIONS(298), - [anon_sym_GT] = ACTIONS(265), - [anon_sym_LT_GT] = ACTIONS(298), - [anon_sym_is] = ACTIONS(265), - [sym_ellipsis] = ACTIONS(304), - [sym_integer] = ACTIONS(306), - [sym_float] = ACTIONS(304), - [anon_sym_await] = ACTIONS(661), - [sym_true] = ACTIONS(306), - [sym_false] = ACTIONS(306), - [sym_none] = ACTIONS(306), + [sym_primary_expression] = STATE(839), + [sym_binary_operator] = STATE(985), + [sym_unary_operator] = STATE(985), + [sym_attribute] = STATE(985), + [sym_subscript] = STATE(985), + [sym_call] = STATE(985), + [sym_list] = STATE(985), + [sym_set] = STATE(985), + [sym_tuple] = STATE(985), + [sym_dictionary] = STATE(985), + [sym_list_comprehension] = STATE(985), + [sym_dictionary_comprehension] = STATE(985), + [sym_set_comprehension] = STATE(985), + [sym_generator_expression] = STATE(985), + [sym_parenthesized_expression] = STATE(985), + [sym_concatenated_string] = STATE(985), + [sym_string] = STATE(790), + [sym_concatenated_template_string] = STATE(985), + [sym_template_string] = STATE(791), + [sym_await] = STATE(985), + [sym_identifier] = ACTIONS(646), + [anon_sym_lazy] = ACTIONS(648), + [anon_sym_DOT] = ACTIONS(272), + [anon_sym_LPAREN] = ACTIONS(650), + [anon_sym_RPAREN] = ACTIONS(303), + [anon_sym_COMMA] = ACTIONS(303), + [anon_sym_as] = ACTIONS(272), + [anon_sym_STAR] = ACTIONS(272), + [anon_sym_print] = ACTIONS(648), + [anon_sym_GT_GT] = ACTIONS(303), + [anon_sym_if] = ACTIONS(272), + [anon_sym_COLON] = ACTIONS(303), + [anon_sym_async] = ACTIONS(648), + [anon_sym_in] = ACTIONS(272), + [anon_sym_match] = ACTIONS(648), + [anon_sym_PIPE] = ACTIONS(303), + [anon_sym_DASH] = ACTIONS(654), + [anon_sym_PLUS] = ACTIONS(654), + [anon_sym_LBRACK] = ACTIONS(656), + [anon_sym_LBRACE] = ACTIONS(658), + [anon_sym_STAR_STAR] = ACTIONS(303), + [anon_sym_exec] = ACTIONS(648), + [anon_sym_type] = ACTIONS(648), + [anon_sym_AT] = ACTIONS(303), + [anon_sym_not] = ACTIONS(272), + [anon_sym_and] = ACTIONS(272), + [anon_sym_or] = ACTIONS(272), + [anon_sym_SLASH] = ACTIONS(272), + [anon_sym_PERCENT] = ACTIONS(303), + [anon_sym_SLASH_SLASH] = ACTIONS(303), + [anon_sym_AMP] = ACTIONS(303), + [anon_sym_CARET] = ACTIONS(303), + [anon_sym_LT_LT] = ACTIONS(303), + [anon_sym_TILDE] = ACTIONS(654), + [anon_sym_LT] = ACTIONS(272), + [anon_sym_LT_EQ] = ACTIONS(303), + [anon_sym_EQ_EQ] = ACTIONS(303), + [anon_sym_BANG_EQ] = ACTIONS(303), + [anon_sym_GT_EQ] = ACTIONS(303), + [anon_sym_GT] = ACTIONS(272), + [anon_sym_LT_GT] = ACTIONS(303), + [anon_sym_is] = ACTIONS(272), + [sym_ellipsis] = ACTIONS(660), + [sym_integer] = ACTIONS(646), + [sym_float] = ACTIONS(660), + [anon_sym_await] = ACTIONS(662), + [sym_true] = ACTIONS(646), + [sym_false] = ACTIONS(646), + [sym_none] = ACTIONS(646), [sym_comment] = ACTIONS(3), - [sym__string_start] = ACTIONS(310), - [sym__template_string_start] = ACTIONS(312), + [sym__string_start] = ACTIONS(664), + [sym__template_string_start] = ACTIONS(666), }, [STATE(153)] = { - [sym_named_expression] = STATE(1158), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_expression_list] = STATE(1535), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1213), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1535), - [sym_augmented_assignment] = STATE(1535), - [sym_pattern_list] = STATE(1024), - [sym__right_hand_side] = STATE(1535), - [sym_yield] = STATE(1535), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), - [sym_identifier] = ACTIONS(7), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(322), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_exec] = ACTIONS(322), - [anon_sym_type] = ACTIONS(322), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [sym_primary_expression] = STATE(766), + [sym_binary_operator] = STATE(720), + [sym_unary_operator] = STATE(720), + [sym_attribute] = STATE(720), + [sym_subscript] = STATE(720), + [sym_call] = STATE(720), + [sym_list] = STATE(720), + [sym_set] = STATE(720), + [sym_tuple] = STATE(720), + [sym_dictionary] = STATE(720), + [sym_list_comprehension] = STATE(720), + [sym_dictionary_comprehension] = STATE(720), + [sym_set_comprehension] = STATE(720), + [sym_generator_expression] = STATE(720), + [sym_parenthesized_expression] = STATE(720), + [sym_concatenated_string] = STATE(720), + [sym_string] = STATE(694), + [sym_concatenated_template_string] = STATE(720), + [sym_template_string] = STATE(698), + [sym_await] = STATE(720), + [sym_identifier] = ACTIONS(311), + [anon_sym_lazy] = ACTIONS(583), + [anon_sym_DOT] = ACTIONS(272), + [anon_sym_LPAREN] = ACTIONS(585), + [anon_sym_RPAREN] = ACTIONS(303), + [anon_sym_COMMA] = ACTIONS(303), + [anon_sym_STAR] = ACTIONS(272), + [anon_sym_print] = ACTIONS(583), + [anon_sym_GT_GT] = ACTIONS(303), + [anon_sym_COLON_EQ] = ACTIONS(590), + [anon_sym_if] = ACTIONS(272), + [anon_sym_async] = ACTIONS(583), + [anon_sym_in] = ACTIONS(272), + [anon_sym_match] = ACTIONS(583), + [anon_sym_PIPE] = ACTIONS(303), + [anon_sym_DASH] = ACTIONS(301), + [anon_sym_PLUS] = ACTIONS(301), + [anon_sym_LBRACK] = ACTIONS(596), + [anon_sym_LBRACE] = ACTIONS(293), + [anon_sym_STAR_STAR] = ACTIONS(303), + [anon_sym_EQ] = ACTIONS(634), + [anon_sym_exec] = ACTIONS(583), + [anon_sym_type] = ACTIONS(583), + [anon_sym_AT] = ACTIONS(303), + [anon_sym_not] = ACTIONS(272), + [anon_sym_and] = ACTIONS(272), + [anon_sym_or] = ACTIONS(272), + [anon_sym_SLASH] = ACTIONS(272), + [anon_sym_PERCENT] = ACTIONS(303), + [anon_sym_SLASH_SLASH] = ACTIONS(303), + [anon_sym_AMP] = ACTIONS(303), + [anon_sym_CARET] = ACTIONS(303), + [anon_sym_LT_LT] = ACTIONS(303), + [anon_sym_TILDE] = ACTIONS(301), + [anon_sym_LT] = ACTIONS(272), + [anon_sym_LT_EQ] = ACTIONS(303), + [anon_sym_EQ_EQ] = ACTIONS(303), + [anon_sym_BANG_EQ] = ACTIONS(303), + [anon_sym_GT_EQ] = ACTIONS(303), + [anon_sym_GT] = ACTIONS(272), + [anon_sym_LT_GT] = ACTIONS(303), + [anon_sym_is] = ACTIONS(272), + [sym_ellipsis] = ACTIONS(309), + [sym_integer] = ACTIONS(311), + [sym_float] = ACTIONS(309), + [anon_sym_await] = ACTIONS(600), + [sym_true] = ACTIONS(311), + [sym_false] = ACTIONS(311), + [sym_none] = ACTIONS(311), [sym_comment] = ACTIONS(3), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__string_start] = ACTIONS(315), + [sym__template_string_start] = ACTIONS(317), }, [STATE(154)] = { - [sym_named_expression] = STATE(1158), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_expression_list] = STATE(1518), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1213), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1518), - [sym_augmented_assignment] = STATE(1518), - [sym_pattern_list] = STATE(1024), - [sym__right_hand_side] = STATE(1518), - [sym_yield] = STATE(1518), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym_named_expression] = STATE(1126), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_expression_list] = STATE(1586), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1181), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1586), + [sym_augmented_assignment] = STATE(1586), + [sym_pattern_list] = STATE(1030), + [sym__right_hand_side] = STATE(1586), + [sym_yield] = STATE(1586), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(322), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_exec] = ACTIONS(322), - [anon_sym_type] = ACTIONS(322), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(319), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(319), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_exec] = ACTIONS(319), + [anon_sym_type] = ACTIONS(319), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, [STATE(155)] = { - [sym_named_expression] = STATE(1158), - [sym_list_splat] = STATE(1549), - [sym_dictionary_splat] = STATE(1549), - [sym_expression_list] = STATE(1530), - [sym_pattern] = STATE(1013), - [sym_tuple_pattern] = STATE(999), - [sym_list_pattern] = STATE(999), - [sym_list_splat_pattern] = STATE(999), - [sym_expression] = STATE(1213), - [sym_primary_expression] = STATE(779), - [sym_not_operator] = STATE(1158), - [sym_boolean_operator] = STATE(1158), - [sym_binary_operator] = STATE(908), - [sym_unary_operator] = STATE(908), - [sym_comparison_operator] = STATE(1158), - [sym_lambda] = STATE(1158), - [sym_assignment] = STATE(1530), - [sym_augmented_assignment] = STATE(1530), - [sym_pattern_list] = STATE(1024), - [sym__right_hand_side] = STATE(1530), - [sym_yield] = STATE(1530), - [sym_attribute] = STATE(494), - [sym_subscript] = STATE(494), - [sym_call] = STATE(908), - [sym_list] = STATE(908), - [sym_set] = STATE(908), - [sym_tuple] = STATE(908), - [sym_dictionary] = STATE(908), - [sym_list_comprehension] = STATE(908), - [sym_dictionary_comprehension] = STATE(908), - [sym_set_comprehension] = STATE(908), - [sym_generator_expression] = STATE(908), - [sym_parenthesized_expression] = STATE(908), - [sym_conditional_expression] = STATE(1158), - [sym_concatenated_string] = STATE(908), - [sym_string] = STATE(782), - [sym_concatenated_template_string] = STATE(908), - [sym_template_string] = STATE(763), - [sym_await] = STATE(908), + [sym_named_expression] = STATE(1126), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_expression_list] = STATE(1608), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1181), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1608), + [sym_augmented_assignment] = STATE(1608), + [sym_pattern_list] = STATE(1030), + [sym__right_hand_side] = STATE(1608), + [sym_yield] = STATE(1608), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), [sym_identifier] = ACTIONS(7), - [anon_sym_LPAREN] = ACTIONS(13), - [anon_sym_STAR] = ACTIONS(15), - [anon_sym_print] = ACTIONS(322), - [anon_sym_async] = ACTIONS(322), - [anon_sym_match] = ACTIONS(322), - [anon_sym_DASH] = ACTIONS(47), - [anon_sym_PLUS] = ACTIONS(47), - [anon_sym_LBRACK] = ACTIONS(49), - [anon_sym_LBRACE] = ACTIONS(51), - [anon_sym_STAR_STAR] = ACTIONS(53), - [anon_sym_exec] = ACTIONS(322), - [anon_sym_type] = ACTIONS(322), - [anon_sym_not] = ACTIONS(69), - [anon_sym_TILDE] = ACTIONS(47), - [anon_sym_lambda] = ACTIONS(71), - [anon_sym_yield] = ACTIONS(73), - [sym_ellipsis] = ACTIONS(75), - [sym_integer] = ACTIONS(77), - [sym_float] = ACTIONS(75), - [anon_sym_await] = ACTIONS(79), - [sym_true] = ACTIONS(77), - [sym_false] = ACTIONS(77), - [sym_none] = ACTIONS(77), + [anon_sym_lazy] = ACTIONS(319), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(319), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_exec] = ACTIONS(319), + [anon_sym_type] = ACTIONS(319), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), [sym_comment] = ACTIONS(3), - [sym__string_start] = ACTIONS(81), - [sym__template_string_start] = ACTIONS(83), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), + }, + [STATE(156)] = { + [sym_named_expression] = STATE(1126), + [sym_list_splat] = STATE(1590), + [sym_dictionary_splat] = STATE(1590), + [sym_expression_list] = STATE(1610), + [sym_pattern] = STATE(1020), + [sym_tuple_pattern] = STATE(1005), + [sym_list_pattern] = STATE(1005), + [sym_list_splat_pattern] = STATE(1005), + [sym_expression] = STATE(1181), + [sym_primary_expression] = STATE(773), + [sym_not_operator] = STATE(1126), + [sym_boolean_operator] = STATE(1126), + [sym_binary_operator] = STATE(950), + [sym_unary_operator] = STATE(950), + [sym_comparison_operator] = STATE(1126), + [sym_lambda] = STATE(1126), + [sym_assignment] = STATE(1610), + [sym_augmented_assignment] = STATE(1610), + [sym_pattern_list] = STATE(1030), + [sym__right_hand_side] = STATE(1610), + [sym_yield] = STATE(1610), + [sym_attribute] = STATE(614), + [sym_subscript] = STATE(614), + [sym_call] = STATE(950), + [sym_list] = STATE(950), + [sym_set] = STATE(950), + [sym_tuple] = STATE(950), + [sym_dictionary] = STATE(950), + [sym_list_comprehension] = STATE(950), + [sym_dictionary_comprehension] = STATE(950), + [sym_set_comprehension] = STATE(950), + [sym_generator_expression] = STATE(950), + [sym_parenthesized_expression] = STATE(950), + [sym_conditional_expression] = STATE(1126), + [sym_concatenated_string] = STATE(950), + [sym_string] = STATE(779), + [sym_concatenated_template_string] = STATE(950), + [sym_template_string] = STATE(772), + [sym_await] = STATE(950), + [sym_identifier] = ACTIONS(7), + [anon_sym_lazy] = ACTIONS(319), + [anon_sym_LPAREN] = ACTIONS(15), + [anon_sym_STAR] = ACTIONS(17), + [anon_sym_print] = ACTIONS(319), + [anon_sym_async] = ACTIONS(319), + [anon_sym_match] = ACTIONS(319), + [anon_sym_DASH] = ACTIONS(49), + [anon_sym_PLUS] = ACTIONS(49), + [anon_sym_LBRACK] = ACTIONS(51), + [anon_sym_LBRACE] = ACTIONS(53), + [anon_sym_STAR_STAR] = ACTIONS(55), + [anon_sym_exec] = ACTIONS(319), + [anon_sym_type] = ACTIONS(319), + [anon_sym_not] = ACTIONS(71), + [anon_sym_TILDE] = ACTIONS(49), + [anon_sym_lambda] = ACTIONS(73), + [anon_sym_yield] = ACTIONS(75), + [sym_ellipsis] = ACTIONS(77), + [sym_integer] = ACTIONS(79), + [sym_float] = ACTIONS(77), + [anon_sym_await] = ACTIONS(81), + [sym_true] = ACTIONS(79), + [sym_false] = ACTIONS(79), + [sym_none] = ACTIONS(79), + [sym_comment] = ACTIONS(3), + [sym__string_start] = ACTIONS(83), + [sym__template_string_start] = ACTIONS(85), }, }; static const uint16_t ts_small_parse_table[] = { - [0] = 23, + [0] = 31, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(296), 1, - anon_sym_TILDE, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(663), 1, + ACTIONS(668), 1, sym_identifier, - ACTIONS(665), 1, + ACTIONS(672), 1, anon_sym_LPAREN, - ACTIONS(667), 1, + ACTIONS(674), 1, + anon_sym_RPAREN, + ACTIONS(676), 1, anon_sym_STAR, - ACTIONS(673), 1, - anon_sym_in, - ACTIONS(675), 1, + ACTIONS(678), 1, anon_sym_LBRACK, - ACTIONS(677), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(1005), 1, - sym_pattern, - STATE(1012), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(589), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(849), 2, - sym_attribute, - sym_subscript, - STATE(999), 3, - sym_tuple_pattern, - sym_list_pattern, - sym_list_splat_pattern, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(669), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - ACTIONS(671), 15, - anon_sym_COLON, - anon_sym_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - STATE(724), 15, - sym_binary_operator, - sym_unary_operator, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [110] = 29, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(679), 1, - sym_identifier, - ACTIONS(681), 1, - anon_sym_LPAREN, - ACTIONS(683), 1, - anon_sym_STAR, - ACTIONS(687), 1, - anon_sym_LBRACK, - ACTIONS(689), 1, - anon_sym_RBRACK, - ACTIONS(691), 1, + ACTIONS(680), 1, anon_sym_not, - ACTIONS(693), 1, + ACTIONS(682), 1, anon_sym_lambda, - ACTIONS(695), 1, + ACTIONS(684), 1, anon_sym_yield, - ACTIONS(697), 1, + ACTIONS(686), 1, anon_sym_await, - STATE(621), 1, + STATE(694), 1, sym_string, - STATE(624), 1, + STATE(698), 1, sym_template_string, - STATE(725), 1, + STATE(705), 1, sym_primary_expression, - STATE(1083), 1, + STATE(1070), 1, sym_expression, - STATE(1356), 1, + STATE(1217), 1, + sym_list_splat, + STATE(1294), 1, + sym_parenthesized_list_splat, + STATE(1355), 1, sym_pattern, - STATE(1628), 1, + STATE(1461), 1, + sym_yield, + STATE(1721), 1, + sym__collection_elements, + STATE(1742), 1, sym__patterns, - STATE(1633), 1, - sym__collection_elements, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(915), 2, + STATE(917), 2, sym_attribute, sym_subscript, - ACTIONS(601), 3, + ACTIONS(606), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(999), 3, + STATE(1005), 3, sym_tuple_pattern, sym_list_pattern, sym_list_splat_pattern, - STATE(1257), 3, - sym_list_splat, - sym_parenthesized_list_splat, - sym_yield, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(685), 5, + ACTIONS(670), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 15, + STATE(720), 15, sym_binary_operator, sym_unary_operator, sym_call, @@ -24314,6243 +24557,89 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [232] = 23, + [127] = 31, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(296), 1, - anon_sym_TILDE, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(663), 1, + ACTIONS(668), 1, sym_identifier, - ACTIONS(665), 1, + ACTIONS(672), 1, anon_sym_LPAREN, - ACTIONS(667), 1, + ACTIONS(676), 1, anon_sym_STAR, - ACTIONS(675), 1, + ACTIONS(678), 1, anon_sym_LBRACK, - ACTIONS(677), 1, - anon_sym_await, - ACTIONS(701), 1, - anon_sym_in, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(1005), 1, - sym_pattern, - STATE(1012), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(589), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(849), 2, - sym_attribute, - sym_subscript, - STATE(999), 3, - sym_tuple_pattern, - sym_list_pattern, - sym_list_splat_pattern, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(669), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - ACTIONS(699), 15, - anon_sym_COLON, - anon_sym_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - STATE(724), 15, - sym_binary_operator, - sym_unary_operator, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [342] = 30, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(679), 1, - sym_identifier, - ACTIONS(681), 1, - anon_sym_LPAREN, - ACTIONS(683), 1, - anon_sym_STAR, - ACTIONS(687), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, + ACTIONS(680), 1, anon_sym_not, - ACTIONS(693), 1, + ACTIONS(682), 1, anon_sym_lambda, - ACTIONS(695), 1, + ACTIONS(684), 1, anon_sym_yield, - ACTIONS(697), 1, + ACTIONS(686), 1, anon_sym_await, - ACTIONS(703), 1, + ACTIONS(688), 1, anon_sym_RPAREN, - STATE(621), 1, + STATE(694), 1, sym_string, - STATE(624), 1, + STATE(698), 1, sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1066), 1, - sym_expression, - STATE(1356), 1, - sym_pattern, - STATE(1383), 1, - sym_yield, - STATE(1615), 1, - sym__collection_elements, - STATE(1643), 1, - sym__patterns, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(915), 2, - sym_attribute, - sym_subscript, - STATE(1257), 2, - sym_list_splat, - sym_parenthesized_list_splat, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(999), 3, - sym_tuple_pattern, - sym_list_pattern, - sym_list_splat_pattern, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(685), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 15, - sym_binary_operator, - sym_unary_operator, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [466] = 29, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(679), 1, - sym_identifier, - ACTIONS(681), 1, - anon_sym_LPAREN, - ACTIONS(683), 1, - anon_sym_STAR, - ACTIONS(687), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(693), 1, - anon_sym_lambda, - ACTIONS(695), 1, - anon_sym_yield, - ACTIONS(697), 1, - anon_sym_await, - ACTIONS(705), 1, - anon_sym_RBRACK, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1081), 1, - sym_expression, - STATE(1356), 1, - sym_pattern, - STATE(1628), 1, - sym__patterns, - STATE(1656), 1, - sym__collection_elements, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(915), 2, - sym_attribute, - sym_subscript, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(999), 3, - sym_tuple_pattern, - sym_list_pattern, - sym_list_splat_pattern, - STATE(1257), 3, - sym_list_splat, - sym_parenthesized_list_splat, - sym_yield, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(685), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 15, - sym_binary_operator, - sym_unary_operator, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [588] = 31, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(679), 1, - sym_identifier, - ACTIONS(681), 1, - anon_sym_LPAREN, - ACTIONS(683), 1, - anon_sym_STAR, - ACTIONS(687), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(693), 1, - anon_sym_lambda, - ACTIONS(695), 1, - anon_sym_yield, - ACTIONS(697), 1, - anon_sym_await, - ACTIONS(707), 1, - anon_sym_RPAREN, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1066), 1, - sym_expression, - STATE(1356), 1, - sym_pattern, - STATE(1383), 1, - sym_yield, - STATE(1440), 1, - sym_parenthesized_list_splat, - STATE(1474), 1, - sym_list_splat, - STATE(1615), 1, - sym__collection_elements, - STATE(1643), 1, - sym__patterns, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(915), 2, - sym_attribute, - sym_subscript, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(999), 3, - sym_tuple_pattern, - sym_list_pattern, - sym_list_splat_pattern, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(685), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 15, - sym_binary_operator, - sym_unary_operator, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [714] = 30, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(679), 1, - sym_identifier, - ACTIONS(681), 1, - anon_sym_LPAREN, - ACTIONS(683), 1, - anon_sym_STAR, - ACTIONS(687), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(693), 1, - anon_sym_lambda, - ACTIONS(695), 1, - anon_sym_yield, - ACTIONS(697), 1, - anon_sym_await, - ACTIONS(709), 1, - anon_sym_RPAREN, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1084), 1, - sym_expression, - STATE(1356), 1, - sym_pattern, - STATE(1489), 1, - sym_yield, - STATE(1626), 1, - sym__collection_elements, - STATE(1643), 1, - sym__patterns, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(915), 2, - sym_attribute, - sym_subscript, - STATE(1257), 2, - sym_list_splat, - sym_parenthesized_list_splat, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(999), 3, - sym_tuple_pattern, - sym_list_pattern, - sym_list_splat_pattern, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(685), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 15, - sym_binary_operator, - sym_unary_operator, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [838] = 29, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(679), 1, - sym_identifier, - ACTIONS(681), 1, - anon_sym_LPAREN, - ACTIONS(683), 1, - anon_sym_STAR, - ACTIONS(687), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(693), 1, - anon_sym_lambda, - ACTIONS(695), 1, - anon_sym_yield, - ACTIONS(697), 1, - anon_sym_await, - ACTIONS(711), 1, - anon_sym_RBRACK, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1081), 1, - sym_expression, - STATE(1356), 1, - sym_pattern, - STATE(1628), 1, - sym__patterns, - STATE(1656), 1, - sym__collection_elements, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(915), 2, - sym_attribute, - sym_subscript, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(999), 3, - sym_tuple_pattern, - sym_list_pattern, - sym_list_splat_pattern, - STATE(1257), 3, - sym_list_splat, - sym_parenthesized_list_splat, - sym_yield, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(685), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 15, - sym_binary_operator, - sym_unary_operator, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [960] = 29, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(659), 1, - anon_sym_LBRACK, - ACTIONS(695), 1, - anon_sym_yield, - ACTIONS(713), 1, - sym_identifier, - ACTIONS(715), 1, - anon_sym_LPAREN, - ACTIONS(717), 1, - anon_sym_COMMA, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(723), 1, - anon_sym_RBRACE, - ACTIONS(725), 1, - anon_sym_not, - ACTIONS(727), 1, - anon_sym_lambda, - ACTIONS(729), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(772), 1, - sym_primary_expression, - STATE(1046), 1, - sym_expression, - STATE(1212), 1, - sym_pair, - STATE(1490), 1, - sym_dictionary_splat, - STATE(1705), 1, - sym__collection_elements, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(657), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1257), 3, - sym_list_splat, - sym_parenthesized_list_splat, - sym_yield, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(721), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [1081] = 29, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(659), 1, - anon_sym_LBRACK, - ACTIONS(695), 1, - anon_sym_yield, - ACTIONS(713), 1, - sym_identifier, - ACTIONS(715), 1, - anon_sym_LPAREN, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(725), 1, - anon_sym_not, - ACTIONS(727), 1, - anon_sym_lambda, - ACTIONS(729), 1, - anon_sym_await, - ACTIONS(731), 1, - anon_sym_COMMA, - ACTIONS(733), 1, - anon_sym_RBRACE, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(772), 1, - sym_primary_expression, - STATE(1061), 1, - sym_expression, - STATE(1190), 1, - sym_pair, - STATE(1403), 1, - sym_dictionary_splat, - STATE(1687), 1, - sym__collection_elements, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(657), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1257), 3, - sym_list_splat, - sym_parenthesized_list_splat, - sym_yield, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(721), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [1202] = 29, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(659), 1, - anon_sym_LBRACK, - ACTIONS(695), 1, - anon_sym_yield, - ACTIONS(713), 1, - sym_identifier, - ACTIONS(715), 1, - anon_sym_LPAREN, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(725), 1, - anon_sym_not, - ACTIONS(727), 1, - anon_sym_lambda, - ACTIONS(729), 1, - anon_sym_await, - ACTIONS(735), 1, - anon_sym_COMMA, - ACTIONS(737), 1, - anon_sym_RBRACE, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(772), 1, - sym_primary_expression, - STATE(1060), 1, - sym_expression, - STATE(1170), 1, - sym_pair, - STATE(1410), 1, - sym_dictionary_splat, - STATE(1600), 1, - sym__collection_elements, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(657), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1257), 3, - sym_list_splat, - sym_parenthesized_list_splat, - sym_yield, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(721), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [1323] = 29, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(659), 1, - anon_sym_LBRACK, - ACTIONS(695), 1, - anon_sym_yield, - ACTIONS(713), 1, - sym_identifier, - ACTIONS(715), 1, - anon_sym_LPAREN, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(725), 1, - anon_sym_not, - ACTIONS(727), 1, - anon_sym_lambda, - ACTIONS(729), 1, - anon_sym_await, - ACTIONS(739), 1, - anon_sym_COMMA, - ACTIONS(741), 1, - anon_sym_RBRACE, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(772), 1, - sym_primary_expression, - STATE(1034), 1, - sym_expression, - STATE(1198), 1, - sym_pair, - STATE(1425), 1, - sym_dictionary_splat, - STATE(1602), 1, - sym__collection_elements, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(657), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1257), 3, - sym_list_splat, - sym_parenthesized_list_splat, - sym_yield, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(721), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [1444] = 26, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(743), 1, - anon_sym_from, - ACTIONS(747), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1148), 1, - sym_expression, - STATE(1196), 1, - sym_expression_list, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(1510), 2, - sym_list_splat, - sym_dictionary_splat, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(745), 4, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACK, - anon_sym_RBRACE, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [1558] = 26, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(609), 1, - anon_sym_LPAREN, - ACTIONS(617), 1, - anon_sym_LBRACK, - ACTIONS(619), 1, - anon_sym_LBRACE, - ACTIONS(625), 1, - sym__string_start, - ACTIONS(627), 1, - sym__template_string_start, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(749), 1, - sym_identifier, - ACTIONS(751), 1, - anon_sym_from, - ACTIONS(755), 1, - anon_sym_not, - ACTIONS(757), 1, - anon_sym_lambda, - ACTIONS(759), 1, - anon_sym_await, - STATE(766), 1, - sym_primary_expression, - STATE(767), 1, - sym_string, - STATE(768), 1, - sym_template_string, - STATE(1093), 1, - sym_expression, - STATE(1196), 1, - sym_expression_list, - ACTIONS(621), 2, - sym_ellipsis, - sym_float, - STATE(1567), 2, - sym_list_splat, - sym_dictionary_splat, - ACTIONS(615), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(607), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(745), 4, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COLON2, - sym_type_conversion, - ACTIONS(753), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1129), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(924), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [1672] = 24, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(747), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1117), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(1267), 2, - sym_list_splat, - sym_dictionary_splat, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - ACTIONS(761), 5, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_RBRACE, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [1781] = 24, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(747), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1117), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(1267), 2, - sym_list_splat, - sym_dictionary_splat, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - ACTIONS(763), 5, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_RBRACE, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [1890] = 24, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(747), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1117), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(1267), 2, - sym_list_splat, - sym_dictionary_splat, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - ACTIONS(763), 5, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_RBRACE, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [1999] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(609), 1, - anon_sym_LPAREN, - ACTIONS(617), 1, - anon_sym_LBRACK, - ACTIONS(619), 1, - anon_sym_LBRACE, - ACTIONS(625), 1, - sym__string_start, - ACTIONS(627), 1, - sym__template_string_start, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(749), 1, - sym_identifier, - ACTIONS(755), 1, - anon_sym_not, - ACTIONS(757), 1, - anon_sym_lambda, - ACTIONS(759), 1, - anon_sym_await, - ACTIONS(765), 1, - anon_sym_yield, - STATE(766), 1, - sym_primary_expression, - STATE(767), 1, - sym_string, - STATE(768), 1, - sym_template_string, - STATE(1095), 1, - sym_expression, - ACTIONS(621), 2, - sym_ellipsis, - sym_float, - STATE(1567), 2, - sym_list_splat, - sym_dictionary_splat, - ACTIONS(615), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1265), 3, - sym_expression_list, - sym_yield, - sym__f_expression, - ACTIONS(607), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(753), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1129), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(924), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [2109] = 26, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(314), 1, - sym_identifier, - ACTIONS(320), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(767), 1, - anon_sym_from, - STATE(763), 1, - sym_template_string, - STATE(779), 1, - sym_primary_expression, - STATE(782), 1, - sym_string, - STATE(1202), 1, - sym_expression, - STATE(1537), 1, - sym_expression_list, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(745), 2, - sym__newline, - anon_sym_SEMI, - STATE(1549), 2, - sym_list_splat, - sym_dictionary_splat, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(316), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1158), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(908), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [2221] = 24, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(695), 1, - anon_sym_yield, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(769), 1, - anon_sym_LPAREN, - ACTIONS(773), 1, - anon_sym_STAR, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1174), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(771), 3, - anon_sym_RPAREN, - anon_sym_RBRACK, - anon_sym_RBRACE, - STATE(1315), 3, - sym_list_splat, - sym_parenthesized_list_splat, - sym_yield, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [2329] = 26, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(693), 1, - anon_sym_lambda, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(775), 1, - sym_identifier, - ACTIONS(777), 1, - anon_sym_LPAREN, - ACTIONS(779), 1, - anon_sym_RPAREN, - ACTIONS(781), 1, - anon_sym_COMMA, - ACTIONS(785), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1076), 1, - sym_expression, - STATE(1388), 1, - sym_parenthesized_list_splat, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1387), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(783), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [2441] = 26, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(769), 1, - anon_sym_LPAREN, - ACTIONS(787), 1, - sym_identifier, - ACTIONS(789), 1, - anon_sym_RPAREN, - ACTIONS(791), 1, - anon_sym_COMMA, - ACTIONS(795), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1225), 1, - sym_expression, - STATE(1398), 1, - sym_parenthesized_list_splat, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1397), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(793), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [2553] = 24, - ACTIONS(3), 1, - sym_comment, - ACTIONS(609), 1, - anon_sym_LPAREN, - ACTIONS(617), 1, - anon_sym_LBRACK, - ACTIONS(619), 1, - anon_sym_LBRACE, - ACTIONS(625), 1, - sym__string_start, - ACTIONS(627), 1, - sym__template_string_start, - ACTIONS(749), 1, - sym_identifier, - ACTIONS(755), 1, - anon_sym_not, - ACTIONS(757), 1, - anon_sym_lambda, - ACTIONS(759), 1, - anon_sym_await, - ACTIONS(797), 1, - anon_sym_STAR, - ACTIONS(799), 1, - anon_sym_STAR_STAR, - STATE(766), 1, - sym_primary_expression, - STATE(767), 1, - sym_string, - STATE(768), 1, - sym_template_string, - STATE(1164), 1, - sym_expression, - ACTIONS(621), 2, - sym_ellipsis, - sym_float, - STATE(1273), 2, - sym_list_splat, - sym_dictionary_splat, - ACTIONS(615), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(607), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(761), 4, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COLON2, - sym_type_conversion, - ACTIONS(753), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1129), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(924), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [2661] = 24, - ACTIONS(3), 1, - sym_comment, - ACTIONS(609), 1, - anon_sym_LPAREN, - ACTIONS(617), 1, - anon_sym_LBRACK, - ACTIONS(619), 1, - anon_sym_LBRACE, - ACTIONS(625), 1, - sym__string_start, - ACTIONS(627), 1, - sym__template_string_start, - ACTIONS(749), 1, - sym_identifier, - ACTIONS(755), 1, - anon_sym_not, - ACTIONS(757), 1, - anon_sym_lambda, - ACTIONS(759), 1, - anon_sym_await, - ACTIONS(797), 1, - anon_sym_STAR, - ACTIONS(799), 1, - anon_sym_STAR_STAR, - STATE(766), 1, - sym_primary_expression, - STATE(767), 1, - sym_string, - STATE(768), 1, - sym_template_string, - STATE(1164), 1, - sym_expression, - ACTIONS(621), 2, - sym_ellipsis, - sym_float, - STATE(1273), 2, - sym_list_splat, - sym_dictionary_splat, - ACTIONS(615), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(607), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(763), 4, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COLON2, - sym_type_conversion, - ACTIONS(753), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1129), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(924), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [2769] = 24, - ACTIONS(3), 1, - sym_comment, - ACTIONS(609), 1, - anon_sym_LPAREN, - ACTIONS(617), 1, - anon_sym_LBRACK, - ACTIONS(619), 1, - anon_sym_LBRACE, - ACTIONS(625), 1, - sym__string_start, - ACTIONS(627), 1, - sym__template_string_start, - ACTIONS(749), 1, - sym_identifier, - ACTIONS(755), 1, - anon_sym_not, - ACTIONS(757), 1, - anon_sym_lambda, - ACTIONS(759), 1, - anon_sym_await, - ACTIONS(797), 1, - anon_sym_STAR, - ACTIONS(799), 1, - anon_sym_STAR_STAR, - STATE(766), 1, - sym_primary_expression, - STATE(767), 1, - sym_string, - STATE(768), 1, - sym_template_string, - STATE(1164), 1, - sym_expression, - ACTIONS(621), 2, - sym_ellipsis, - sym_float, - STATE(1273), 2, - sym_list_splat, - sym_dictionary_splat, - ACTIONS(615), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(607), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(763), 4, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COLON2, - sym_type_conversion, - ACTIONS(753), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1129), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(924), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [2877] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(609), 1, - anon_sym_LPAREN, - ACTIONS(617), 1, - anon_sym_LBRACK, - ACTIONS(619), 1, - anon_sym_LBRACE, - ACTIONS(625), 1, - sym__string_start, - ACTIONS(627), 1, - sym__template_string_start, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(749), 1, - sym_identifier, - ACTIONS(755), 1, - anon_sym_not, - ACTIONS(757), 1, - anon_sym_lambda, - ACTIONS(759), 1, - anon_sym_await, - ACTIONS(765), 1, - anon_sym_yield, - STATE(766), 1, - sym_primary_expression, - STATE(767), 1, - sym_string, - STATE(768), 1, - sym_template_string, - STATE(1095), 1, - sym_expression, - ACTIONS(621), 2, - sym_ellipsis, - sym_float, - STATE(1567), 2, - sym_list_splat, - sym_dictionary_splat, - ACTIONS(615), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1287), 3, - sym_expression_list, - sym_yield, - sym__f_expression, - ACTIONS(607), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(753), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1129), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(924), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [2987] = 26, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(693), 1, - anon_sym_lambda, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(775), 1, - sym_identifier, - ACTIONS(777), 1, - anon_sym_LPAREN, - ACTIONS(785), 1, - anon_sym_await, - ACTIONS(789), 1, - anon_sym_RPAREN, - ACTIONS(791), 1, - anon_sym_COMMA, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1067), 1, - sym_expression, - STATE(1398), 1, - sym_parenthesized_list_splat, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1397), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(783), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [3099] = 27, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(693), 1, - anon_sym_lambda, - ACTIONS(695), 1, - anon_sym_yield, - ACTIONS(773), 1, - anon_sym_STAR, - ACTIONS(777), 1, - anon_sym_LPAREN, - ACTIONS(801), 1, - sym_identifier, - ACTIONS(803), 1, - anon_sym_RPAREN, - ACTIONS(807), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1041), 1, - sym_expression, - STATE(1400), 1, - sym_yield, - STATE(1439), 1, - sym_with_item, - STATE(1675), 1, - sym__collection_elements, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(1257), 2, - sym_list_splat, - sym_parenthesized_list_splat, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(805), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [3213] = 26, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(314), 1, - sym_identifier, - ACTIONS(320), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(809), 1, - anon_sym_from, - STATE(763), 1, - sym_template_string, - STATE(779), 1, - sym_primary_expression, - STATE(782), 1, - sym_string, - STATE(1122), 1, - sym_expression, - STATE(1475), 1, - sym_expression_list, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(811), 2, - sym__newline, - anon_sym_SEMI, - STATE(1549), 2, - sym_list_splat, - sym_dictionary_splat, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(316), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1158), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(908), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [3325] = 24, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(695), 1, - anon_sym_yield, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(769), 1, - anon_sym_LPAREN, - ACTIONS(773), 1, - anon_sym_STAR, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1174), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(813), 3, - anon_sym_RPAREN, - anon_sym_RBRACK, - anon_sym_RBRACE, - STATE(1315), 3, - sym_list_splat, - sym_parenthesized_list_splat, - sym_yield, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [3433] = 24, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(695), 1, - anon_sym_yield, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(769), 1, - anon_sym_LPAREN, - ACTIONS(773), 1, - anon_sym_STAR, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1174), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(813), 3, - anon_sym_RPAREN, - anon_sym_RBRACK, - anon_sym_RBRACE, - STATE(1315), 3, - sym_list_splat, - sym_parenthesized_list_splat, - sym_yield, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [3541] = 26, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(693), 1, - anon_sym_lambda, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(775), 1, - sym_identifier, - ACTIONS(777), 1, - anon_sym_LPAREN, - ACTIONS(785), 1, - anon_sym_await, - ACTIONS(815), 1, - anon_sym_RPAREN, - ACTIONS(817), 1, - anon_sym_COMMA, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1075), 1, - sym_expression, - STATE(1412), 1, - sym_parenthesized_list_splat, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1411), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(783), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [3653] = 26, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(693), 1, - anon_sym_lambda, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(775), 1, - sym_identifier, - ACTIONS(777), 1, - anon_sym_LPAREN, - ACTIONS(785), 1, - anon_sym_await, - ACTIONS(819), 1, - anon_sym_RPAREN, - ACTIONS(821), 1, - anon_sym_COMMA, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1080), 1, - sym_expression, - STATE(1430), 1, - sym_parenthesized_list_splat, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1429), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(783), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [3765] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(769), 1, - anon_sym_LPAREN, - ACTIONS(787), 1, - sym_identifier, - ACTIONS(795), 1, - anon_sym_await, - ACTIONS(823), 1, - anon_sym_RPAREN, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1261), 1, - sym_expression, - STATE(1577), 1, - sym_parenthesized_list_splat, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1570), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(793), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [3874] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, - anon_sym_LPAREN, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(801), 1, - sym_identifier, - ACTIONS(807), 1, - anon_sym_await, - ACTIONS(829), 1, - anon_sym_lambda, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1094), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(1211), 2, - sym__expression_within_for_in_clause, - sym_lambda_within_for_in_clause, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(825), 3, - anon_sym_RPAREN, - anon_sym_RBRACK, - anon_sym_RBRACE, - ACTIONS(827), 3, - anon_sym_if, - anon_sym_async, - anon_sym_for, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(805), 4, - anon_sym_print, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [3979] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(314), 1, - sym_identifier, - ACTIONS(320), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - ACTIONS(831), 1, - anon_sym_from, - ACTIONS(833), 1, - anon_sym_STAR, - ACTIONS(835), 1, - anon_sym_STAR_STAR, - STATE(763), 1, - sym_template_string, - STATE(779), 1, - sym_primary_expression, - STATE(782), 1, - sym_string, - STATE(1199), 1, - sym_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(761), 2, - sym__newline, - anon_sym_SEMI, - STATE(1358), 2, - sym_list_splat, - sym_dictionary_splat, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(316), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1158), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(908), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [4088] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, - anon_sym_LPAREN, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(801), 1, - sym_identifier, - ACTIONS(807), 1, - anon_sym_await, - ACTIONS(829), 1, - anon_sym_lambda, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1094), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(1211), 2, - sym__expression_within_for_in_clause, - sym_lambda_within_for_in_clause, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(837), 3, - anon_sym_RPAREN, - anon_sym_RBRACK, - anon_sym_RBRACE, - ACTIONS(839), 3, - anon_sym_if, - anon_sym_async, - anon_sym_for, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(805), 4, - anon_sym_print, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [4193] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(314), 1, - sym_identifier, - ACTIONS(320), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - ACTIONS(833), 1, - anon_sym_STAR, - ACTIONS(835), 1, - anon_sym_STAR_STAR, - ACTIONS(841), 1, - anon_sym_from, - STATE(763), 1, - sym_template_string, - STATE(779), 1, - sym_primary_expression, - STATE(782), 1, - sym_string, - STATE(1199), 1, - sym_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(763), 2, - sym__newline, - anon_sym_SEMI, - STATE(1358), 2, - sym_list_splat, - sym_dictionary_splat, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(316), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1158), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(908), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [4302] = 26, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(693), 1, - anon_sym_lambda, - ACTIONS(695), 1, - anon_sym_yield, - ACTIONS(773), 1, - anon_sym_STAR, - ACTIONS(777), 1, - anon_sym_LPAREN, - ACTIONS(801), 1, - sym_identifier, - ACTIONS(803), 1, - anon_sym_RPAREN, - ACTIONS(807), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1066), 1, - sym_expression, - STATE(1383), 1, - sym_yield, - STATE(1615), 1, - sym__collection_elements, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(1257), 2, - sym_list_splat, - sym_parenthesized_list_splat, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(805), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [4413] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(769), 1, - anon_sym_LPAREN, - ACTIONS(787), 1, - sym_identifier, - ACTIONS(795), 1, - anon_sym_await, - ACTIONS(843), 1, - anon_sym_RPAREN, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1261), 1, - sym_expression, - STATE(1577), 1, - sym_parenthesized_list_splat, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1570), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(793), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [4522] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(769), 1, - anon_sym_LPAREN, - ACTIONS(787), 1, - sym_identifier, - ACTIONS(795), 1, - anon_sym_await, - ACTIONS(845), 1, - anon_sym_RPAREN, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1261), 1, - sym_expression, - STATE(1577), 1, - sym_parenthesized_list_splat, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1570), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(793), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [4631] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(693), 1, - anon_sym_lambda, - ACTIONS(695), 1, - anon_sym_yield, - ACTIONS(773), 1, - anon_sym_STAR, - ACTIONS(777), 1, - anon_sym_LPAREN, - ACTIONS(801), 1, - sym_identifier, - ACTIONS(807), 1, - anon_sym_await, - ACTIONS(847), 1, - anon_sym_RBRACK, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1081), 1, - sym_expression, - STATE(1656), 1, - sym__collection_elements, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1257), 3, - sym_list_splat, - sym_parenthesized_list_splat, - sym_yield, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(805), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [4740] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(769), 1, - anon_sym_LPAREN, - ACTIONS(787), 1, - sym_identifier, - ACTIONS(795), 1, - anon_sym_await, - ACTIONS(849), 1, - anon_sym_RPAREN, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1261), 1, - sym_expression, - STATE(1577), 1, - sym_parenthesized_list_splat, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1570), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(793), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [4849] = 27, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(693), 1, - anon_sym_lambda, - ACTIONS(695), 1, - anon_sym_yield, - ACTIONS(773), 1, - anon_sym_STAR, - ACTIONS(777), 1, - anon_sym_LPAREN, - ACTIONS(801), 1, - sym_identifier, - ACTIONS(807), 1, - anon_sym_await, - ACTIONS(851), 1, - anon_sym_RPAREN, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1066), 1, - sym_expression, - STATE(1383), 1, - sym_yield, - STATE(1440), 1, - sym_parenthesized_list_splat, - STATE(1474), 1, - sym_list_splat, - STATE(1615), 1, - sym__collection_elements, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(805), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [4962] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(769), 1, - anon_sym_LPAREN, - ACTIONS(787), 1, - sym_identifier, - ACTIONS(795), 1, - anon_sym_await, - ACTIONS(853), 1, - anon_sym_RPAREN, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1261), 1, - sym_expression, - STATE(1577), 1, - sym_parenthesized_list_splat, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1570), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(793), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [5071] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(769), 1, - anon_sym_LPAREN, - ACTIONS(787), 1, - sym_identifier, - ACTIONS(795), 1, - anon_sym_await, - ACTIONS(855), 1, - anon_sym_RPAREN, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1261), 1, - sym_expression, - STATE(1577), 1, - sym_parenthesized_list_splat, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1570), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(793), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [5180] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(769), 1, - anon_sym_LPAREN, - ACTIONS(787), 1, - sym_identifier, - ACTIONS(795), 1, - anon_sym_await, - ACTIONS(857), 1, - anon_sym_RPAREN, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1261), 1, - sym_expression, - STATE(1577), 1, - sym_parenthesized_list_splat, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1570), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(793), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [5289] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(769), 1, - anon_sym_LPAREN, - ACTIONS(787), 1, - sym_identifier, - ACTIONS(795), 1, - anon_sym_await, - ACTIONS(859), 1, - anon_sym_RPAREN, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1261), 1, - sym_expression, - STATE(1577), 1, - sym_parenthesized_list_splat, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1570), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(793), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [5398] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, - anon_sym_LPAREN, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(801), 1, - sym_identifier, - ACTIONS(807), 1, - anon_sym_await, - ACTIONS(829), 1, - anon_sym_lambda, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1094), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(1211), 2, - sym__expression_within_for_in_clause, - sym_lambda_within_for_in_clause, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(861), 3, - anon_sym_RPAREN, - anon_sym_RBRACK, - anon_sym_RBRACE, - ACTIONS(863), 3, - anon_sym_if, - anon_sym_async, - anon_sym_for, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(805), 4, - anon_sym_print, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [5503] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, - anon_sym_LPAREN, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(801), 1, - sym_identifier, - ACTIONS(807), 1, - anon_sym_await, - ACTIONS(829), 1, - anon_sym_lambda, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1094), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(1211), 2, - sym__expression_within_for_in_clause, - sym_lambda_within_for_in_clause, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(865), 3, - anon_sym_RPAREN, - anon_sym_RBRACK, - anon_sym_RBRACE, - ACTIONS(867), 3, - anon_sym_if, - anon_sym_async, - anon_sym_for, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(805), 4, - anon_sym_print, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [5608] = 26, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(693), 1, - anon_sym_lambda, - ACTIONS(695), 1, - anon_sym_yield, - ACTIONS(773), 1, - anon_sym_STAR, - ACTIONS(777), 1, - anon_sym_LPAREN, - ACTIONS(801), 1, - sym_identifier, - ACTIONS(807), 1, - anon_sym_await, - ACTIONS(869), 1, - anon_sym_RPAREN, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1084), 1, - sym_expression, - STATE(1489), 1, - sym_yield, - STATE(1626), 1, - sym__collection_elements, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(1257), 2, - sym_list_splat, - sym_parenthesized_list_splat, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(805), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [5719] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(693), 1, - anon_sym_lambda, - ACTIONS(695), 1, - anon_sym_yield, - ACTIONS(773), 1, - anon_sym_STAR, - ACTIONS(777), 1, - anon_sym_LPAREN, - ACTIONS(801), 1, - sym_identifier, - ACTIONS(807), 1, - anon_sym_await, - ACTIONS(871), 1, - anon_sym_RBRACK, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1083), 1, - sym_expression, - STATE(1633), 1, - sym__collection_elements, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1257), 3, - sym_list_splat, - sym_parenthesized_list_splat, - sym_yield, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(805), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [5828] = 26, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(693), 1, - anon_sym_lambda, - ACTIONS(695), 1, - anon_sym_yield, - ACTIONS(773), 1, - anon_sym_STAR, - ACTIONS(777), 1, - anon_sym_LPAREN, - ACTIONS(801), 1, - sym_identifier, - ACTIONS(807), 1, - anon_sym_await, - ACTIONS(873), 1, - anon_sym_RPAREN, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1073), 1, - sym_expression, - STATE(1423), 1, - sym_yield, - STATE(1591), 1, - sym__collection_elements, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(1257), 2, - sym_list_splat, - sym_parenthesized_list_splat, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(805), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [5939] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(769), 1, - anon_sym_LPAREN, - ACTIONS(787), 1, - sym_identifier, - ACTIONS(795), 1, - anon_sym_await, - ACTIONS(875), 1, - anon_sym_RPAREN, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1261), 1, - sym_expression, - STATE(1577), 1, - sym_parenthesized_list_splat, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1570), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(793), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [6048] = 27, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(693), 1, - anon_sym_lambda, - ACTIONS(695), 1, - anon_sym_yield, - ACTIONS(773), 1, - anon_sym_STAR, - ACTIONS(777), 1, - anon_sym_LPAREN, - ACTIONS(801), 1, - sym_identifier, - ACTIONS(803), 1, - anon_sym_RPAREN, - ACTIONS(807), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1066), 1, - sym_expression, - STATE(1383), 1, - sym_yield, - STATE(1440), 1, - sym_parenthesized_list_splat, - STATE(1474), 1, - sym_list_splat, - STATE(1615), 1, - sym__collection_elements, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(805), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [6161] = 27, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(693), 1, - anon_sym_lambda, - ACTIONS(695), 1, - anon_sym_yield, - ACTIONS(773), 1, - anon_sym_STAR, - ACTIONS(777), 1, - anon_sym_LPAREN, - ACTIONS(801), 1, - sym_identifier, - ACTIONS(807), 1, - anon_sym_await, - ACTIONS(873), 1, - anon_sym_RPAREN, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1066), 1, - sym_expression, - STATE(1383), 1, - sym_yield, - STATE(1440), 1, - sym_parenthesized_list_splat, - STATE(1474), 1, - sym_list_splat, - STATE(1615), 1, - sym__collection_elements, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(805), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [6274] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(769), 1, - anon_sym_LPAREN, - ACTIONS(787), 1, - sym_identifier, - ACTIONS(795), 1, - anon_sym_await, - ACTIONS(877), 1, - anon_sym_RPAREN, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1261), 1, - sym_expression, - STATE(1577), 1, - sym_parenthesized_list_splat, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1570), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(793), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [6383] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(769), 1, - anon_sym_LPAREN, - ACTIONS(787), 1, - sym_identifier, - ACTIONS(795), 1, - anon_sym_await, - ACTIONS(879), 1, - anon_sym_RPAREN, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1261), 1, - sym_expression, - STATE(1577), 1, - sym_parenthesized_list_splat, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1570), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(793), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [6492] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(769), 1, - anon_sym_LPAREN, - ACTIONS(787), 1, - sym_identifier, - ACTIONS(795), 1, - anon_sym_await, - ACTIONS(881), 1, - anon_sym_RPAREN, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1261), 1, - sym_expression, - STATE(1577), 1, - sym_parenthesized_list_splat, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1570), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(793), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [6601] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(769), 1, - anon_sym_LPAREN, - ACTIONS(787), 1, - sym_identifier, - ACTIONS(795), 1, - anon_sym_await, - ACTIONS(883), 1, - anon_sym_RPAREN, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1261), 1, - sym_expression, - STATE(1577), 1, - sym_parenthesized_list_splat, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1570), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(793), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [6710] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(769), 1, - anon_sym_LPAREN, - ACTIONS(787), 1, - sym_identifier, - ACTIONS(795), 1, - anon_sym_await, - ACTIONS(885), 1, - anon_sym_RPAREN, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1261), 1, - sym_expression, - STATE(1577), 1, - sym_parenthesized_list_splat, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1570), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(793), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [6819] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(314), 1, - sym_identifier, - ACTIONS(320), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - ACTIONS(719), 1, - anon_sym_STAR, - STATE(763), 1, - sym_template_string, - STATE(779), 1, - sym_primary_expression, - STATE(782), 1, - sym_string, - STATE(1179), 1, - sym_expression, - STATE(1572), 1, - sym_expression_list, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(887), 2, - sym__newline, - anon_sym_SEMI, - STATE(1549), 2, - sym_list_splat, - sym_dictionary_splat, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(316), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1158), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(908), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [6928] = 26, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(693), 1, - anon_sym_lambda, - ACTIONS(695), 1, - anon_sym_yield, - ACTIONS(773), 1, - anon_sym_STAR, - ACTIONS(777), 1, - anon_sym_LPAREN, - ACTIONS(801), 1, - sym_identifier, - ACTIONS(807), 1, - anon_sym_await, - ACTIONS(873), 1, - anon_sym_RPAREN, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1066), 1, - sym_expression, - STATE(1383), 1, - sym_yield, - STATE(1615), 1, - sym__collection_elements, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(1257), 2, - sym_list_splat, - sym_parenthesized_list_splat, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(805), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [7039] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(693), 1, - anon_sym_lambda, - ACTIONS(695), 1, - anon_sym_yield, - ACTIONS(773), 1, - anon_sym_STAR, - ACTIONS(777), 1, - anon_sym_LPAREN, - ACTIONS(801), 1, - sym_identifier, - ACTIONS(807), 1, - anon_sym_await, - ACTIONS(889), 1, - anon_sym_RBRACK, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1088), 1, - sym_expression, - STATE(1594), 1, - sym__collection_elements, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1257), 3, - sym_list_splat, - sym_parenthesized_list_splat, - sym_yield, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(805), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [7148] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(314), 1, - sym_identifier, - ACTIONS(320), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - ACTIONS(833), 1, - anon_sym_STAR, - ACTIONS(835), 1, - anon_sym_STAR_STAR, - ACTIONS(841), 1, - anon_sym_from, - STATE(763), 1, - sym_template_string, - STATE(779), 1, - sym_primary_expression, - STATE(782), 1, - sym_string, - STATE(1199), 1, - sym_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(763), 2, - sym__newline, - anon_sym_SEMI, - STATE(1358), 2, - sym_list_splat, - sym_dictionary_splat, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(316), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1158), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(908), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [7257] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(769), 1, - anon_sym_LPAREN, - ACTIONS(787), 1, - sym_identifier, - ACTIONS(795), 1, - anon_sym_await, - ACTIONS(891), 1, - anon_sym_RPAREN, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1261), 1, - sym_expression, - STATE(1577), 1, - sym_parenthesized_list_splat, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1570), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(793), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [7366] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(769), 1, - anon_sym_LPAREN, - ACTIONS(787), 1, - sym_identifier, - ACTIONS(795), 1, - anon_sym_await, - ACTIONS(893), 1, - anon_sym_RPAREN, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1261), 1, - sym_expression, - STATE(1577), 1, - sym_parenthesized_list_splat, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1570), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(793), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [7475] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(769), 1, - anon_sym_LPAREN, - ACTIONS(787), 1, - sym_identifier, - ACTIONS(795), 1, - anon_sym_await, - ACTIONS(895), 1, - anon_sym_RPAREN, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1261), 1, - sym_expression, - STATE(1577), 1, - sym_parenthesized_list_splat, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1570), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(793), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [7584] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(769), 1, - anon_sym_LPAREN, - ACTIONS(787), 1, - sym_identifier, - ACTIONS(795), 1, - anon_sym_await, - ACTIONS(897), 1, - anon_sym_RPAREN, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1261), 1, - sym_expression, - STATE(1577), 1, - sym_parenthesized_list_splat, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1570), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(793), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [7693] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(769), 1, - anon_sym_LPAREN, - ACTIONS(787), 1, - sym_identifier, - ACTIONS(795), 1, - anon_sym_await, - ACTIONS(899), 1, - anon_sym_RPAREN, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1261), 1, - sym_expression, - STATE(1577), 1, - sym_parenthesized_list_splat, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1570), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(793), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [7802] = 26, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(693), 1, - anon_sym_lambda, - ACTIONS(695), 1, - anon_sym_yield, - ACTIONS(773), 1, - anon_sym_STAR, - ACTIONS(777), 1, - anon_sym_LPAREN, - ACTIONS(801), 1, - sym_identifier, - ACTIONS(807), 1, - anon_sym_await, - ACTIONS(851), 1, - anon_sym_RPAREN, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1066), 1, - sym_expression, - STATE(1383), 1, - sym_yield, - STATE(1615), 1, - sym__collection_elements, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(1257), 2, - sym_list_splat, - sym_parenthesized_list_splat, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(805), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [7913] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(693), 1, - anon_sym_lambda, - ACTIONS(695), 1, - anon_sym_yield, - ACTIONS(773), 1, - anon_sym_STAR, - ACTIONS(777), 1, - anon_sym_LPAREN, - ACTIONS(801), 1, - sym_identifier, - ACTIONS(807), 1, - anon_sym_await, - ACTIONS(889), 1, - anon_sym_RBRACK, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1081), 1, - sym_expression, - STATE(1656), 1, - sym__collection_elements, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1257), 3, - sym_list_splat, - sym_parenthesized_list_splat, - sym_yield, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(805), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [8022] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(769), 1, - anon_sym_LPAREN, - ACTIONS(787), 1, - sym_identifier, - ACTIONS(795), 1, - anon_sym_await, - ACTIONS(901), 1, - anon_sym_RPAREN, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1261), 1, - sym_expression, - STATE(1577), 1, - sym_parenthesized_list_splat, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1570), 3, - sym_list_splat, - sym_dictionary_splat, - sym_keyword_argument, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(793), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [8131] = 26, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(693), 1, - anon_sym_lambda, - ACTIONS(695), 1, - anon_sym_yield, - ACTIONS(773), 1, - anon_sym_STAR, - ACTIONS(777), 1, - anon_sym_LPAREN, - ACTIONS(801), 1, - sym_identifier, - ACTIONS(803), 1, - anon_sym_RPAREN, - ACTIONS(807), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1079), 1, - sym_expression, - STATE(1400), 1, - sym_yield, - STATE(1675), 1, - sym__collection_elements, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(1257), 2, - sym_list_splat, - sym_parenthesized_list_splat, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(805), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [8242] = 25, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(693), 1, - anon_sym_lambda, - ACTIONS(695), 1, - anon_sym_yield, - ACTIONS(773), 1, - anon_sym_STAR, - ACTIONS(777), 1, - anon_sym_LPAREN, - ACTIONS(801), 1, - sym_identifier, - ACTIONS(807), 1, - anon_sym_await, - ACTIONS(847), 1, - anon_sym_RBRACK, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, + STATE(705), 1, sym_primary_expression, STATE(1086), 1, sym_expression, - STATE(1679), 1, + STATE(1202), 1, + sym_list_splat, + STATE(1294), 1, + sym_parenthesized_list_splat, + STATE(1355), 1, + sym_pattern, + STATE(1432), 1, + sym_yield, + STATE(1686), 1, sym__collection_elements, - ACTIONS(304), 2, + STATE(1742), 1, + sym__patterns, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(601), 3, + STATE(917), 2, + sym_attribute, + sym_subscript, + ACTIONS(606), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1257), 3, - sym_list_splat, - sym_parenthesized_list_splat, - sym_yield, - ACTIONS(306), 4, + STATE(1005), 3, + sym_tuple_pattern, + sym_list_pattern, + sym_list_splat_pattern, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(805), 5, + ACTIONS(670), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(720), 15, sym_binary_operator, sym_unary_operator, - sym_attribute, - sym_subscript, sym_call, sym_list, sym_set, @@ -30564,73 +24653,1524 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [8351] = 25, + [254] = 30, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(603), 1, + ACTIONS(668), 1, + sym_identifier, + ACTIONS(672), 1, + anon_sym_LPAREN, + ACTIONS(676), 1, + anon_sym_STAR, + ACTIONS(678), 1, anon_sym_LBRACK, - ACTIONS(691), 1, + ACTIONS(680), 1, anon_sym_not, - ACTIONS(693), 1, + ACTIONS(682), 1, anon_sym_lambda, - ACTIONS(695), 1, + ACTIONS(684), 1, anon_sym_yield, - ACTIONS(773), 1, - anon_sym_STAR, - ACTIONS(777), 1, - anon_sym_LPAREN, - ACTIONS(801), 1, - sym_identifier, - ACTIONS(807), 1, + ACTIONS(686), 1, anon_sym_await, - ACTIONS(903), 1, + ACTIONS(690), 1, anon_sym_RBRACK, - STATE(621), 1, + STATE(694), 1, sym_string, - STATE(624), 1, + STATE(698), 1, sym_template_string, - STATE(725), 1, + STATE(705), 1, sym_primary_expression, - STATE(1081), 1, + STATE(1080), 1, sym_expression, - STATE(1656), 1, + STATE(1204), 1, + sym_list_splat, + STATE(1355), 1, + sym_pattern, + STATE(1657), 1, sym__collection_elements, - ACTIONS(304), 2, + STATE(1690), 1, + sym__patterns, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(601), 3, + STATE(917), 2, + sym_attribute, + sym_subscript, + STATE(1294), 2, + sym_parenthesized_list_splat, + sym_yield, + ACTIONS(606), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1257), 3, + STATE(1005), 3, + sym_tuple_pattern, + sym_list_pattern, + sym_list_splat_pattern, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(670), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 15, + sym_binary_operator, + sym_unary_operator, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [379] = 30, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(668), 1, + sym_identifier, + ACTIONS(672), 1, + anon_sym_LPAREN, + ACTIONS(676), 1, + anon_sym_STAR, + ACTIONS(678), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(686), 1, + anon_sym_await, + ACTIONS(692), 1, + anon_sym_RBRACK, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1095), 1, + sym_expression, + STATE(1218), 1, + sym_list_splat, + STATE(1355), 1, + sym_pattern, + STATE(1690), 1, + sym__patterns, + STATE(1692), 1, + sym__collection_elements, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(917), 2, + sym_attribute, + sym_subscript, + STATE(1294), 2, + sym_parenthesized_list_splat, + sym_yield, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1005), 3, + sym_tuple_pattern, + sym_list_pattern, + sym_list_splat_pattern, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(670), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 15, + sym_binary_operator, + sym_unary_operator, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [504] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(301), 1, + anon_sym_TILDE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(694), 1, + sym_identifier, + ACTIONS(698), 1, + anon_sym_LPAREN, + ACTIONS(700), 1, + anon_sym_STAR, + ACTIONS(704), 1, + anon_sym_in, + ACTIONS(706), 1, + anon_sym_LBRACK, + ACTIONS(708), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(1002), 1, + sym_pattern, + STATE(1017), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(594), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(842), 2, + sym_attribute, + sym_subscript, + STATE(1005), 3, + sym_tuple_pattern, + sym_list_pattern, + sym_list_splat_pattern, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(696), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + ACTIONS(702), 15, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + STATE(720), 15, + sym_binary_operator, + sym_unary_operator, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [615] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(301), 1, + anon_sym_TILDE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(694), 1, + sym_identifier, + ACTIONS(698), 1, + anon_sym_LPAREN, + ACTIONS(700), 1, + anon_sym_STAR, + ACTIONS(706), 1, + anon_sym_LBRACK, + ACTIONS(708), 1, + anon_sym_await, + ACTIONS(712), 1, + anon_sym_in, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(1002), 1, + sym_pattern, + STATE(1017), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(594), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(842), 2, + sym_attribute, + sym_subscript, + STATE(1005), 3, + sym_tuple_pattern, + sym_list_pattern, + sym_list_splat_pattern, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(696), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + ACTIONS(710), 15, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + STATE(720), 15, + sym_binary_operator, + sym_unary_operator, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [726] = 30, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(668), 1, + sym_identifier, + ACTIONS(672), 1, + anon_sym_LPAREN, + ACTIONS(676), 1, + anon_sym_STAR, + ACTIONS(678), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(686), 1, + anon_sym_await, + ACTIONS(714), 1, + anon_sym_RBRACK, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1080), 1, + sym_expression, + STATE(1204), 1, + sym_list_splat, + STATE(1355), 1, + sym_pattern, + STATE(1657), 1, + sym__collection_elements, + STATE(1690), 1, + sym__patterns, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(917), 2, + sym_attribute, + sym_subscript, + STATE(1294), 2, + sym_parenthesized_list_splat, + sym_yield, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1005), 3, + sym_tuple_pattern, + sym_list_pattern, + sym_list_splat_pattern, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(670), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 15, + sym_binary_operator, + sym_unary_operator, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [851] = 31, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(668), 1, + sym_identifier, + ACTIONS(672), 1, + anon_sym_LPAREN, + ACTIONS(676), 1, + anon_sym_STAR, + ACTIONS(678), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(686), 1, + anon_sym_await, + ACTIONS(716), 1, + anon_sym_RPAREN, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1086), 1, + sym_expression, + STATE(1187), 1, + sym_list_splat, + STATE(1355), 1, + sym_pattern, + STATE(1432), 1, + sym_yield, + STATE(1455), 1, + sym_parenthesized_list_splat, + STATE(1686), 1, + sym__collection_elements, + STATE(1742), 1, + sym__patterns, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(917), 2, + sym_attribute, + sym_subscript, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1005), 3, + sym_tuple_pattern, + sym_list_pattern, + sym_list_splat_pattern, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(670), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 15, + sym_binary_operator, + sym_unary_operator, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [978] = 29, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(642), 1, + anon_sym_LBRACK, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(718), 1, + sym_identifier, + ACTIONS(722), 1, + anon_sym_LPAREN, + ACTIONS(724), 1, + anon_sym_COMMA, + ACTIONS(726), 1, + anon_sym_STAR, + ACTIONS(728), 1, + anon_sym_RBRACE, + ACTIONS(730), 1, + anon_sym_STAR_STAR, + ACTIONS(732), 1, + anon_sym_not, + ACTIONS(734), 1, + anon_sym_lambda, + ACTIONS(736), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(775), 1, + sym_primary_expression, + STATE(1047), 1, + sym_expression, + STATE(1203), 1, + sym_list_splat, + STATE(1727), 1, + sym__collection_elements, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1207), 2, + sym_dictionary_splat, + sym_pair, + STATE(1294), 2, + sym_parenthesized_list_splat, + sym_yield, + ACTIONS(640), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(720), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [1100] = 29, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(642), 1, + anon_sym_LBRACK, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(718), 1, + sym_identifier, + ACTIONS(722), 1, + anon_sym_LPAREN, + ACTIONS(726), 1, + anon_sym_STAR, + ACTIONS(730), 1, + anon_sym_STAR_STAR, + ACTIONS(732), 1, + anon_sym_not, + ACTIONS(734), 1, + anon_sym_lambda, + ACTIONS(736), 1, + anon_sym_await, + ACTIONS(738), 1, + anon_sym_COMMA, + ACTIONS(740), 1, + anon_sym_RBRACE, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(775), 1, + sym_primary_expression, + STATE(1063), 1, + sym_expression, + STATE(1206), 1, + sym_list_splat, + STATE(1624), 1, + sym__collection_elements, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1236), 2, + sym_dictionary_splat, + sym_pair, + STATE(1294), 2, + sym_parenthesized_list_splat, + sym_yield, + ACTIONS(640), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(720), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [1222] = 29, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(642), 1, + anon_sym_LBRACK, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(718), 1, + sym_identifier, + ACTIONS(722), 1, + anon_sym_LPAREN, + ACTIONS(726), 1, + anon_sym_STAR, + ACTIONS(730), 1, + anon_sym_STAR_STAR, + ACTIONS(732), 1, + anon_sym_not, + ACTIONS(734), 1, + anon_sym_lambda, + ACTIONS(736), 1, + anon_sym_await, + ACTIONS(742), 1, + anon_sym_COMMA, + ACTIONS(744), 1, + anon_sym_RBRACE, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(775), 1, + sym_primary_expression, + STATE(1041), 1, + sym_expression, + STATE(1232), 1, + sym_list_splat, + STATE(1666), 1, + sym__collection_elements, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1194), 2, + sym_dictionary_splat, + sym_pair, + STATE(1294), 2, + sym_parenthesized_list_splat, + sym_yield, + ACTIONS(640), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(720), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [1344] = 29, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(642), 1, + anon_sym_LBRACK, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(718), 1, + sym_identifier, + ACTIONS(722), 1, + anon_sym_LPAREN, + ACTIONS(726), 1, + anon_sym_STAR, + ACTIONS(730), 1, + anon_sym_STAR_STAR, + ACTIONS(732), 1, + anon_sym_not, + ACTIONS(734), 1, + anon_sym_lambda, + ACTIONS(736), 1, + anon_sym_await, + ACTIONS(746), 1, + anon_sym_COMMA, + ACTIONS(748), 1, + anon_sym_RBRACE, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(775), 1, + sym_primary_expression, + STATE(1067), 1, + sym_expression, + STATE(1228), 1, + sym_list_splat, + STATE(1688), 1, + sym__collection_elements, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1184), 2, + sym_dictionary_splat, + sym_pair, + STATE(1294), 2, + sym_parenthesized_list_splat, + sym_yield, + ACTIONS(640), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(720), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [1466] = 26, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + ACTIONS(750), 1, + sym_identifier, + ACTIONS(754), 1, + anon_sym_from, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(760), 1, + anon_sym_not, + ACTIONS(762), 1, + anon_sym_lambda, + ACTIONS(764), 1, + anon_sym_await, + STATE(780), 1, + sym_primary_expression, + STATE(781), 1, + sym_string, + STATE(782), 1, + sym_template_string, + STATE(1107), 1, + sym_expression, + STATE(1237), 1, + sym_expression_list, + ACTIONS(626), 2, + sym_ellipsis, + sym_float, + STATE(1588), 2, + sym_list_splat, + sym_dictionary_splat, + ACTIONS(620), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(612), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(758), 4, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_COLON2, + sym_type_conversion, + ACTIONS(752), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1131), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(949), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [1581] = 26, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(766), 1, + anon_sym_from, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1175), 1, + sym_expression, + STATE(1237), 1, + sym_expression_list, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1573), 2, + sym_list_splat, + sym_dictionary_splat, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(758), 4, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACK, + anon_sym_RBRACE, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [1696] = 24, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1144), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1291), 2, + sym_list_splat, + sym_dictionary_splat, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(770), 5, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_RBRACE, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [1806] = 24, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1144), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1291), 2, + sym_list_splat, + sym_dictionary_splat, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(770), 5, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_RBRACE, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [1916] = 24, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1144), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1291), 2, + sym_list_splat, + sym_dictionary_splat, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(772), 5, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_RBRACE, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [2026] = 24, + ACTIONS(3), 1, + sym_comment, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + ACTIONS(750), 1, + sym_identifier, + ACTIONS(760), 1, + anon_sym_not, + ACTIONS(762), 1, + anon_sym_lambda, + ACTIONS(764), 1, + anon_sym_await, + ACTIONS(774), 1, + anon_sym_STAR, + ACTIONS(776), 1, + anon_sym_STAR_STAR, + STATE(780), 1, + sym_primary_expression, + STATE(781), 1, + sym_string, + STATE(782), 1, + sym_template_string, + STATE(1120), 1, + sym_expression, + ACTIONS(626), 2, + sym_ellipsis, + sym_float, + STATE(1301), 2, + sym_list_splat, + sym_dictionary_splat, + ACTIONS(620), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(612), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(772), 4, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_COLON2, + sym_type_conversion, + ACTIONS(752), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1131), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(949), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [2135] = 24, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(778), 1, + anon_sym_LPAREN, + ACTIONS(782), 1, + anon_sym_STAR, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1179), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(780), 3, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_RBRACE, + STATE(1354), 3, sym_list_splat, sym_parenthesized_list_splat, sym_yield, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(805), 5, + ACTIONS(270), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -30648,71 +26188,74 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [8460] = 24, + [2244] = 24, ACTIONS(3), 1, sym_comment, - ACTIONS(263), 1, + ACTIONS(268), 1, sym_identifier, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(300), 1, + ACTIONS(305), 1, anon_sym_lambda, - ACTIONS(308), 1, + ACTIONS(313), 1, anon_sym_await, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(747), 1, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(768), 1, anon_sym_not, - ACTIONS(773), 1, + ACTIONS(778), 1, + anon_sym_LPAREN, + ACTIONS(782), 1, anon_sym_STAR, - ACTIONS(905), 1, - anon_sym_COLON, - STATE(621), 1, + STATE(694), 1, sym_string, - STATE(624), 1, + STATE(698), 1, sym_template_string, - STATE(719), 1, + STATE(704), 1, sym_primary_expression, - STATE(1246), 1, + STATE(1179), 1, sym_expression, - STATE(1693), 1, - sym_index_expression_list, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1407), 3, + ACTIONS(780), 3, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_RBRACE, + STATE(1354), 3, sym_list_splat, - sym__index_expression, - sym_slice, - ACTIONS(306), 4, + sym_parenthesized_list_splat, + sym_yield, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(276), 5, + ACTIONS(270), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -30730,71 +26273,1203 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [8566] = 24, + [2353] = 24, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(778), 1, + anon_sym_LPAREN, + ACTIONS(782), 1, + anon_sym_STAR, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1179), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(780), 3, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_RBRACE, + STATE(1354), 3, + sym_list_splat, + sym_parenthesized_list_splat, + sym_yield, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [2462] = 27, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(726), 1, + anon_sym_STAR, + ACTIONS(784), 1, + sym_identifier, + ACTIONS(788), 1, + anon_sym_LPAREN, + ACTIONS(790), 1, + anon_sym_RPAREN, + ACTIONS(792), 1, + anon_sym_COMMA, + ACTIONS(794), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1087), 1, + sym_expression, + STATE(1212), 1, + sym_list_splat, + STATE(1490), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1486), 2, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(786), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [2577] = 26, ACTIONS(3), 1, sym_comment, ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(288), 1, anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(747), 1, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(71), 1, anon_sym_not, - ACTIONS(769), 1, - anon_sym_LPAREN, - ACTIONS(787), 1, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(361), 1, sym_identifier, - ACTIONS(795), 1, + ACTIONS(367), 1, anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(796), 1, + anon_sym_from, + STATE(772), 1, sym_template_string, - STATE(719), 1, + STATE(773), 1, sym_primary_expression, - STATE(1261), 1, + STATE(779), 1, + sym_string, + STATE(1210), 1, sym_expression, - STATE(1577), 1, - sym_parenthesized_list_splat, - ACTIONS(304), 2, + STATE(1569), 1, + sym_expression_list, + ACTIONS(77), 2, sym_ellipsis, sym_float, - ACTIONS(296), 3, + ACTIONS(758), 2, + sym__newline, + anon_sym_SEMI, + STATE(1590), 2, + sym_list_splat, + sym_dictionary_splat, + ACTIONS(49), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1570), 3, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(363), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1126), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [2690] = 24, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(778), 1, + anon_sym_LPAREN, + ACTIONS(782), 1, + anon_sym_STAR, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1179), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(798), 3, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_RBRACE, + STATE(1354), 3, + sym_list_splat, + sym_parenthesized_list_splat, + sym_yield, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [2799] = 27, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(726), 1, + anon_sym_STAR, + ACTIONS(784), 1, + sym_identifier, + ACTIONS(788), 1, + anon_sym_LPAREN, + ACTIONS(794), 1, + anon_sym_await, + ACTIONS(800), 1, + anon_sym_RPAREN, + ACTIONS(802), 1, + anon_sym_COMMA, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1094), 1, + sym_expression, + STATE(1211), 1, + sym_list_splat, + STATE(1497), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1496), 2, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(786), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [2914] = 26, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(361), 1, + sym_identifier, + ACTIONS(367), 1, + anon_sym_await, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(804), 1, + anon_sym_from, + STATE(772), 1, + sym_template_string, + STATE(773), 1, + sym_primary_expression, + STATE(779), 1, + sym_string, + STATE(1137), 1, + sym_expression, + STATE(1446), 1, + sym_expression_list, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(806), 2, + sym__newline, + anon_sym_SEMI, + STATE(1590), 2, + sym_list_splat, + sym_dictionary_splat, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(363), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1126), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [3027] = 28, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(788), 1, + anon_sym_LPAREN, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(812), 1, + anon_sym_RPAREN, + ACTIONS(814), 1, + anon_sym_STAR, + ACTIONS(816), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1048), 1, + sym_expression, + STATE(1226), 1, + sym_list_splat, + STATE(1294), 1, + sym_parenthesized_list_splat, + STATE(1447), 1, + sym_yield, + STATE(1484), 1, + sym_with_item, + STATE(1654), 1, + sym__collection_elements, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(810), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [3144] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + ACTIONS(750), 1, + sym_identifier, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(760), 1, + anon_sym_not, + ACTIONS(762), 1, + anon_sym_lambda, + ACTIONS(764), 1, + anon_sym_await, + ACTIONS(818), 1, + anon_sym_yield, + STATE(780), 1, + sym_primary_expression, + STATE(781), 1, + sym_string, + STATE(782), 1, + sym_template_string, + STATE(1103), 1, + sym_expression, + ACTIONS(626), 2, + sym_ellipsis, + sym_float, + STATE(1588), 2, + sym_list_splat, + sym_dictionary_splat, + ACTIONS(620), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1296), 3, + sym_expression_list, + sym_yield, + sym__f_expression, + ACTIONS(612), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(752), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1131), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(949), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [3255] = 24, + ACTIONS(3), 1, + sym_comment, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + ACTIONS(750), 1, + sym_identifier, + ACTIONS(760), 1, + anon_sym_not, + ACTIONS(762), 1, + anon_sym_lambda, + ACTIONS(764), 1, + anon_sym_await, + ACTIONS(774), 1, + anon_sym_STAR, + ACTIONS(776), 1, + anon_sym_STAR_STAR, + STATE(780), 1, + sym_primary_expression, + STATE(781), 1, + sym_string, + STATE(782), 1, + sym_template_string, + STATE(1120), 1, + sym_expression, + ACTIONS(626), 2, + sym_ellipsis, + sym_float, + STATE(1301), 2, + sym_list_splat, + sym_dictionary_splat, + ACTIONS(620), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(612), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(770), 4, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_COLON2, + sym_type_conversion, + ACTIONS(752), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1131), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(949), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [3364] = 27, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(726), 1, + anon_sym_STAR, + ACTIONS(784), 1, + sym_identifier, + ACTIONS(788), 1, + anon_sym_LPAREN, + ACTIONS(794), 1, + anon_sym_await, + ACTIONS(820), 1, + anon_sym_RPAREN, + ACTIONS(822), 1, + anon_sym_COMMA, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1093), 1, + sym_expression, + STATE(1186), 1, + sym_list_splat, + STATE(1453), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1452), 2, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(786), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [3479] = 24, + ACTIONS(3), 1, + sym_comment, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + ACTIONS(750), 1, + sym_identifier, + ACTIONS(760), 1, + anon_sym_not, + ACTIONS(762), 1, + anon_sym_lambda, + ACTIONS(764), 1, + anon_sym_await, + ACTIONS(774), 1, + anon_sym_STAR, + ACTIONS(776), 1, + anon_sym_STAR_STAR, + STATE(780), 1, + sym_primary_expression, + STATE(781), 1, + sym_string, + STATE(782), 1, + sym_template_string, + STATE(1120), 1, + sym_expression, + ACTIONS(626), 2, + sym_ellipsis, + sym_float, + STATE(1301), 2, + sym_list_splat, + sym_dictionary_splat, + ACTIONS(620), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(612), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(770), 4, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_COLON2, + sym_type_conversion, + ACTIONS(752), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1131), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(949), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [3588] = 27, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(726), 1, + anon_sym_STAR, + ACTIONS(784), 1, + sym_identifier, + ACTIONS(788), 1, + anon_sym_LPAREN, + ACTIONS(794), 1, + anon_sym_await, + ACTIONS(824), 1, + anon_sym_RPAREN, + ACTIONS(826), 1, + anon_sym_COMMA, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1075), 1, + sym_expression, + STATE(1196), 1, + sym_list_splat, + STATE(1469), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1482), 2, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(786), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [3703] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + ACTIONS(750), 1, + sym_identifier, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(760), 1, + anon_sym_not, + ACTIONS(762), 1, + anon_sym_lambda, + ACTIONS(764), 1, + anon_sym_await, + ACTIONS(818), 1, + anon_sym_yield, + STATE(780), 1, + sym_primary_expression, + STATE(781), 1, + sym_string, + STATE(782), 1, + sym_template_string, + STATE(1103), 1, + sym_expression, + ACTIONS(626), 2, + sym_ellipsis, + sym_float, + STATE(1588), 2, + sym_list_splat, + sym_dictionary_splat, + ACTIONS(620), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1289), 3, + sym_expression_list, + sym_yield, + sym__f_expression, + ACTIONS(612), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(752), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1131), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(949), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [3814] = 26, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(778), 1, + anon_sym_LPAREN, + ACTIONS(800), 1, + anon_sym_RPAREN, + ACTIONS(802), 1, + anon_sym_COMMA, + ACTIONS(828), 1, + sym_identifier, + ACTIONS(832), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1258), 1, + sym_expression, + STATE(1497), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1468), 3, sym_list_splat, sym_dictionary_splat, sym_keyword_argument, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(793), 5, + ACTIONS(830), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -30812,71 +27487,4083 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [8672] = 24, + [3927] = 25, ACTIONS(3), 1, sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(300), 1, + ACTIONS(305), 1, anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(773), 1, + ACTIONS(756), 1, anon_sym_STAR, - ACTIONS(905), 1, - anon_sym_COLON, - ACTIONS(907), 1, - anon_sym_RBRACK, - STATE(621), 1, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(778), 1, + anon_sym_LPAREN, + ACTIONS(828), 1, + sym_identifier, + ACTIONS(832), 1, + anon_sym_await, + ACTIONS(834), 1, + anon_sym_RPAREN, + STATE(694), 1, sym_string, - STATE(624), 1, + STATE(698), 1, sym_template_string, - STATE(719), 1, + STATE(704), 1, + sym_primary_expression, + STATE(1321), 1, + sym_expression, + STATE(1540), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1539), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(830), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [4037] = 27, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(788), 1, + anon_sym_LPAREN, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(814), 1, + anon_sym_STAR, + ACTIONS(816), 1, + anon_sym_await, + ACTIONS(836), 1, + anon_sym_RPAREN, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1086), 1, + sym_expression, + STATE(1187), 1, + sym_list_splat, + STATE(1432), 1, + sym_yield, + STATE(1455), 1, + sym_parenthesized_list_splat, + STATE(1686), 1, + sym__collection_elements, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(810), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [4151] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(778), 1, + anon_sym_LPAREN, + ACTIONS(828), 1, + sym_identifier, + ACTIONS(832), 1, + anon_sym_await, + ACTIONS(838), 1, + anon_sym_RPAREN, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1321), 1, + sym_expression, + STATE(1540), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1539), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(830), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [4261] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(778), 1, + anon_sym_LPAREN, + ACTIONS(828), 1, + sym_identifier, + ACTIONS(832), 1, + anon_sym_await, + ACTIONS(840), 1, + anon_sym_RPAREN, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1321), 1, + sym_expression, + STATE(1540), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1539), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(830), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [4371] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(778), 1, + anon_sym_LPAREN, + ACTIONS(828), 1, + sym_identifier, + ACTIONS(832), 1, + anon_sym_await, + ACTIONS(842), 1, + anon_sym_RPAREN, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1321), 1, + sym_expression, + STATE(1540), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1539), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(830), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [4481] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(778), 1, + anon_sym_LPAREN, + ACTIONS(828), 1, + sym_identifier, + ACTIONS(832), 1, + anon_sym_await, + ACTIONS(844), 1, + anon_sym_RPAREN, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1321), 1, + sym_expression, + STATE(1540), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1539), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(830), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [4591] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(361), 1, + sym_identifier, + ACTIONS(367), 1, + anon_sym_await, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + ACTIONS(846), 1, + anon_sym_from, + ACTIONS(848), 1, + anon_sym_STAR, + ACTIONS(850), 1, + anon_sym_STAR_STAR, + STATE(772), 1, + sym_template_string, + STATE(773), 1, + sym_primary_expression, + STATE(779), 1, + sym_string, + STATE(1219), 1, + sym_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(772), 2, + sym__newline, + anon_sym_SEMI, + STATE(1393), 2, + sym_list_splat, + sym_dictionary_splat, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(363), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1126), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [4701] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(778), 1, + anon_sym_LPAREN, + ACTIONS(828), 1, + sym_identifier, + ACTIONS(832), 1, + anon_sym_await, + ACTIONS(852), 1, + anon_sym_RPAREN, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1321), 1, + sym_expression, + STATE(1540), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1539), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(830), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [4811] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(778), 1, + anon_sym_LPAREN, + ACTIONS(828), 1, + sym_identifier, + ACTIONS(832), 1, + anon_sym_await, + ACTIONS(854), 1, + anon_sym_RPAREN, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1321), 1, + sym_expression, + STATE(1540), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1539), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(830), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [4921] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(778), 1, + anon_sym_LPAREN, + ACTIONS(828), 1, + sym_identifier, + ACTIONS(832), 1, + anon_sym_await, + ACTIONS(856), 1, + anon_sym_RPAREN, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1321), 1, + sym_expression, + STATE(1540), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1539), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(830), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [5031] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(778), 1, + anon_sym_LPAREN, + ACTIONS(828), 1, + sym_identifier, + ACTIONS(832), 1, + anon_sym_await, + ACTIONS(858), 1, + anon_sym_RPAREN, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1321), 1, + sym_expression, + STATE(1540), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1539), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(830), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [5141] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(816), 1, + anon_sym_await, + ACTIONS(864), 1, + anon_sym_lambda, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1097), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1222), 2, + sym__expression_within_for_in_clause, + sym_lambda_within_for_in_clause, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(860), 3, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_RBRACE, + ACTIONS(862), 3, + anon_sym_if, + anon_sym_async, + anon_sym_for, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(810), 5, + anon_sym_lazy, + anon_sym_print, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [5247] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(361), 1, + sym_identifier, + ACTIONS(367), 1, + anon_sym_await, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + ACTIONS(848), 1, + anon_sym_STAR, + ACTIONS(850), 1, + anon_sym_STAR_STAR, + ACTIONS(866), 1, + anon_sym_from, + STATE(772), 1, + sym_template_string, + STATE(773), 1, + sym_primary_expression, + STATE(779), 1, + sym_string, + STATE(1219), 1, + sym_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(770), 2, + sym__newline, + anon_sym_SEMI, + STATE(1393), 2, + sym_list_splat, + sym_dictionary_splat, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(363), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1126), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [5357] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(778), 1, + anon_sym_LPAREN, + ACTIONS(828), 1, + sym_identifier, + ACTIONS(832), 1, + anon_sym_await, + ACTIONS(868), 1, + anon_sym_RPAREN, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1321), 1, + sym_expression, + STATE(1540), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1539), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(830), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [5467] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(778), 1, + anon_sym_LPAREN, + ACTIONS(828), 1, + sym_identifier, + ACTIONS(832), 1, + anon_sym_await, + ACTIONS(870), 1, + anon_sym_RPAREN, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1321), 1, + sym_expression, + STATE(1540), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1539), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(830), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [5577] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(778), 1, + anon_sym_LPAREN, + ACTIONS(828), 1, + sym_identifier, + ACTIONS(832), 1, + anon_sym_await, + ACTIONS(872), 1, + anon_sym_RPAREN, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1321), 1, + sym_expression, + STATE(1540), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1539), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(830), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [5687] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(778), 1, + anon_sym_LPAREN, + ACTIONS(828), 1, + sym_identifier, + ACTIONS(832), 1, + anon_sym_await, + ACTIONS(874), 1, + anon_sym_RPAREN, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1321), 1, + sym_expression, + STATE(1540), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1539), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(830), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [5797] = 26, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(788), 1, + anon_sym_LPAREN, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(814), 1, + anon_sym_STAR, + ACTIONS(816), 1, + anon_sym_await, + ACTIONS(876), 1, + anon_sym_RBRACK, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1080), 1, + sym_expression, + STATE(1204), 1, + sym_list_splat, + STATE(1657), 1, + sym__collection_elements, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1294), 2, + sym_parenthesized_list_splat, + sym_yield, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(810), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [5909] = 27, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(788), 1, + anon_sym_LPAREN, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(814), 1, + anon_sym_STAR, + ACTIONS(816), 1, + anon_sym_await, + ACTIONS(878), 1, + anon_sym_RPAREN, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1070), 1, + sym_expression, + STATE(1217), 1, + sym_list_splat, + STATE(1294), 1, + sym_parenthesized_list_splat, + STATE(1461), 1, + sym_yield, + STATE(1721), 1, + sym__collection_elements, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(810), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [6023] = 26, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(788), 1, + anon_sym_LPAREN, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(814), 1, + anon_sym_STAR, + ACTIONS(816), 1, + anon_sym_await, + ACTIONS(880), 1, + anon_sym_RBRACK, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1095), 1, + sym_expression, + STATE(1218), 1, + sym_list_splat, + STATE(1692), 1, + sym__collection_elements, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1294), 2, + sym_parenthesized_list_splat, + sym_yield, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(810), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [6135] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(361), 1, + sym_identifier, + ACTIONS(367), 1, + anon_sym_await, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + ACTIONS(848), 1, + anon_sym_STAR, + ACTIONS(850), 1, + anon_sym_STAR_STAR, + ACTIONS(866), 1, + anon_sym_from, + STATE(772), 1, + sym_template_string, + STATE(773), 1, + sym_primary_expression, + STATE(779), 1, + sym_string, + STATE(1219), 1, + sym_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(770), 2, + sym__newline, + anon_sym_SEMI, + STATE(1393), 2, + sym_list_splat, + sym_dictionary_splat, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(363), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1126), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [6245] = 26, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(788), 1, + anon_sym_LPAREN, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(814), 1, + anon_sym_STAR, + ACTIONS(816), 1, + anon_sym_await, + ACTIONS(882), 1, + anon_sym_RBRACK, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1080), 1, + sym_expression, + STATE(1204), 1, + sym_list_splat, + STATE(1657), 1, + sym__collection_elements, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1294), 2, + sym_parenthesized_list_splat, + sym_yield, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(810), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [6357] = 27, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(788), 1, + anon_sym_LPAREN, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(812), 1, + anon_sym_RPAREN, + ACTIONS(814), 1, + anon_sym_STAR, + ACTIONS(816), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1086), 1, + sym_expression, + STATE(1187), 1, + sym_list_splat, + STATE(1432), 1, + sym_yield, + STATE(1455), 1, + sym_parenthesized_list_splat, + STATE(1686), 1, + sym__collection_elements, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(810), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [6471] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(816), 1, + anon_sym_await, + ACTIONS(864), 1, + anon_sym_lambda, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1097), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1222), 2, + sym__expression_within_for_in_clause, + sym_lambda_within_for_in_clause, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(884), 3, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_RBRACE, + ACTIONS(886), 3, + anon_sym_if, + anon_sym_async, + anon_sym_for, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(810), 5, + anon_sym_lazy, + anon_sym_print, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [6577] = 27, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(788), 1, + anon_sym_LPAREN, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(814), 1, + anon_sym_STAR, + ACTIONS(816), 1, + anon_sym_await, + ACTIONS(888), 1, + anon_sym_RPAREN, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1086), 1, + sym_expression, + STATE(1187), 1, + sym_list_splat, + STATE(1432), 1, + sym_yield, + STATE(1455), 1, + sym_parenthesized_list_splat, + STATE(1686), 1, + sym__collection_elements, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(810), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [6691] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(778), 1, + anon_sym_LPAREN, + ACTIONS(828), 1, + sym_identifier, + ACTIONS(832), 1, + anon_sym_await, + ACTIONS(890), 1, + anon_sym_RPAREN, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1321), 1, + sym_expression, + STATE(1540), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1539), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(830), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [6801] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(778), 1, + anon_sym_LPAREN, + ACTIONS(828), 1, + sym_identifier, + ACTIONS(832), 1, + anon_sym_await, + ACTIONS(892), 1, + anon_sym_RPAREN, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1321), 1, + sym_expression, + STATE(1540), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1539), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(830), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [6911] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(778), 1, + anon_sym_LPAREN, + ACTIONS(828), 1, + sym_identifier, + ACTIONS(832), 1, + anon_sym_await, + ACTIONS(894), 1, + anon_sym_RPAREN, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1321), 1, + sym_expression, + STATE(1540), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1539), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(830), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [7021] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(778), 1, + anon_sym_LPAREN, + ACTIONS(828), 1, + sym_identifier, + ACTIONS(832), 1, + anon_sym_await, + ACTIONS(896), 1, + anon_sym_RPAREN, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1321), 1, + sym_expression, + STATE(1540), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1539), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(830), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [7131] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(778), 1, + anon_sym_LPAREN, + ACTIONS(828), 1, + sym_identifier, + ACTIONS(832), 1, + anon_sym_await, + ACTIONS(898), 1, + anon_sym_RPAREN, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1321), 1, + sym_expression, + STATE(1540), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1539), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(830), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [7241] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(778), 1, + anon_sym_LPAREN, + ACTIONS(828), 1, + sym_identifier, + ACTIONS(832), 1, + anon_sym_await, + ACTIONS(900), 1, + anon_sym_RPAREN, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1321), 1, + sym_expression, + STATE(1540), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1539), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(830), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [7351] = 27, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(788), 1, + anon_sym_LPAREN, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(814), 1, + anon_sym_STAR, + ACTIONS(816), 1, + anon_sym_await, + ACTIONS(888), 1, + anon_sym_RPAREN, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1086), 1, + sym_expression, + STATE(1202), 1, + sym_list_splat, + STATE(1294), 1, + sym_parenthesized_list_splat, + STATE(1432), 1, + sym_yield, + STATE(1686), 1, + sym__collection_elements, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(810), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [7465] = 26, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(788), 1, + anon_sym_LPAREN, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(814), 1, + anon_sym_STAR, + ACTIONS(816), 1, + anon_sym_await, + ACTIONS(902), 1, + anon_sym_RBRACK, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1092), 1, + sym_expression, + STATE(1230), 1, + sym_list_splat, + STATE(1658), 1, + sym__collection_elements, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1294), 2, + sym_parenthesized_list_splat, + sym_yield, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(810), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [7577] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(816), 1, + anon_sym_await, + ACTIONS(864), 1, + anon_sym_lambda, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1097), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1222), 2, + sym__expression_within_for_in_clause, + sym_lambda_within_for_in_clause, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(904), 3, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_RBRACE, + ACTIONS(906), 3, + anon_sym_if, + anon_sym_async, + anon_sym_for, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(810), 5, + anon_sym_lazy, + anon_sym_print, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [7683] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(778), 1, + anon_sym_LPAREN, + ACTIONS(828), 1, + sym_identifier, + ACTIONS(832), 1, + anon_sym_await, + ACTIONS(908), 1, + anon_sym_RPAREN, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1321), 1, + sym_expression, + STATE(1540), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1539), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(830), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [7793] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(778), 1, + anon_sym_LPAREN, + ACTIONS(828), 1, + sym_identifier, + ACTIONS(832), 1, + anon_sym_await, + ACTIONS(910), 1, + anon_sym_RPAREN, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1321), 1, + sym_expression, + STATE(1540), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1539), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(830), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [7903] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(778), 1, + anon_sym_LPAREN, + ACTIONS(828), 1, + sym_identifier, + ACTIONS(832), 1, + anon_sym_await, + ACTIONS(912), 1, + anon_sym_RPAREN, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1321), 1, + sym_expression, + STATE(1540), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1539), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(830), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [8013] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(816), 1, + anon_sym_await, + ACTIONS(864), 1, + anon_sym_lambda, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1097), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1222), 2, + sym__expression_within_for_in_clause, + sym_lambda_within_for_in_clause, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(914), 3, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_RBRACE, + ACTIONS(916), 3, + anon_sym_if, + anon_sym_async, + anon_sym_for, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(810), 5, + anon_sym_lazy, + anon_sym_print, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [8119] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(778), 1, + anon_sym_LPAREN, + ACTIONS(828), 1, + sym_identifier, + ACTIONS(832), 1, + anon_sym_await, + ACTIONS(918), 1, + anon_sym_RPAREN, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1321), 1, + sym_expression, + STATE(1540), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1539), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(830), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [8229] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(778), 1, + anon_sym_LPAREN, + ACTIONS(828), 1, + sym_identifier, + ACTIONS(832), 1, + anon_sym_await, + ACTIONS(920), 1, + anon_sym_RPAREN, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1321), 1, + sym_expression, + STATE(1540), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1539), 3, + sym_list_splat, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(830), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [8339] = 27, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(788), 1, + anon_sym_LPAREN, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(814), 1, + anon_sym_STAR, + ACTIONS(816), 1, + anon_sym_await, + ACTIONS(836), 1, + anon_sym_RPAREN, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1086), 1, + sym_expression, + STATE(1202), 1, + sym_list_splat, + STATE(1294), 1, + sym_parenthesized_list_splat, + STATE(1432), 1, + sym_yield, + STATE(1686), 1, + sym__collection_elements, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(810), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [8453] = 26, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(788), 1, + anon_sym_LPAREN, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(814), 1, + anon_sym_STAR, + ACTIONS(816), 1, + anon_sym_await, + ACTIONS(902), 1, + anon_sym_RBRACK, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1080), 1, + sym_expression, + STATE(1204), 1, + sym_list_splat, + STATE(1657), 1, + sym__collection_elements, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1294), 2, + sym_parenthesized_list_splat, + sym_yield, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(810), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [8565] = 25, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(361), 1, + sym_identifier, + ACTIONS(367), 1, + anon_sym_await, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + ACTIONS(756), 1, + anon_sym_STAR, + STATE(772), 1, + sym_template_string, + STATE(773), 1, + sym_primary_expression, + STATE(779), 1, + sym_string, + STATE(1235), 1, + sym_expression, + STATE(1591), 1, + sym_expression_list, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(922), 2, + sym__newline, + anon_sym_SEMI, + STATE(1590), 2, + sym_list_splat, + sym_dictionary_splat, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(363), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1126), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [8675] = 27, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(788), 1, + anon_sym_LPAREN, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(812), 1, + anon_sym_RPAREN, + ACTIONS(814), 1, + anon_sym_STAR, + ACTIONS(816), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1074), 1, + sym_expression, + STATE(1226), 1, + sym_list_splat, + STATE(1294), 1, + sym_parenthesized_list_splat, + STATE(1447), 1, + sym_yield, + STATE(1654), 1, + sym__collection_elements, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(810), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [8789] = 26, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(788), 1, + anon_sym_LPAREN, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(814), 1, + anon_sym_STAR, + ACTIONS(816), 1, + anon_sym_await, + ACTIONS(876), 1, + anon_sym_RBRACK, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1090), 1, + sym_expression, + STATE(1227), 1, + sym_list_splat, + STATE(1669), 1, + sym__collection_elements, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1294), 2, + sym_parenthesized_list_splat, + sym_yield, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(810), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [8901] = 27, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(788), 1, + anon_sym_LPAREN, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(812), 1, + anon_sym_RPAREN, + ACTIONS(814), 1, + anon_sym_STAR, + ACTIONS(816), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1086), 1, + sym_expression, + STATE(1202), 1, + sym_list_splat, + STATE(1294), 1, + sym_parenthesized_list_splat, + STATE(1432), 1, + sym_yield, + STATE(1686), 1, + sym__collection_elements, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(810), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [9015] = 27, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(684), 1, + anon_sym_yield, + ACTIONS(788), 1, + anon_sym_LPAREN, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(814), 1, + anon_sym_STAR, + ACTIONS(816), 1, + anon_sym_await, + ACTIONS(888), 1, + anon_sym_RPAREN, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1084), 1, + sym_expression, + STATE(1229), 1, + sym_list_splat, + STATE(1294), 1, + sym_parenthesized_list_splat, + STATE(1464), 1, + sym_yield, + STATE(1655), 1, + sym__collection_elements, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(810), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [9129] = 24, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(782), 1, + anon_sym_STAR, + ACTIONS(924), 1, + anon_sym_COLON, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, sym_primary_expression, STATE(1246), 1, sym_expression, - ACTIONS(304), 2, + STATE(1614), 1, + sym_index_expression_list, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1508), 3, + STATE(1454), 3, sym_list_splat, sym__index_expression, sym_slice, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(276), 5, + ACTIONS(270), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -30894,153 +31581,72 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [8778] = 24, + [9236] = 24, ACTIONS(3), 1, sym_comment, - ACTIONS(263), 1, + ACTIONS(268), 1, sym_identifier, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(300), 1, + ACTIONS(305), 1, anon_sym_lambda, - ACTIONS(308), 1, + ACTIONS(313), 1, anon_sym_await, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(695), 1, - anon_sym_yield, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(769), 1, + ACTIONS(585), 1, anon_sym_LPAREN, - ACTIONS(773), 1, - anon_sym_STAR, - ACTIONS(813), 1, - anon_sym_RPAREN, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1174), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(1315), 3, - sym_list_splat, - sym_parenthesized_list_splat, - sym_yield, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [8884] = 24, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(747), 1, + ACTIONS(768), 1, anon_sym_not, - ACTIONS(773), 1, + ACTIONS(782), 1, anon_sym_STAR, - ACTIONS(905), 1, + ACTIONS(924), 1, anon_sym_COLON, - ACTIONS(909), 1, - anon_sym_RBRACK, - STATE(621), 1, + STATE(694), 1, sym_string, - STATE(624), 1, + STATE(698), 1, sym_template_string, - STATE(719), 1, + STATE(704), 1, sym_primary_expression, STATE(1246), 1, sym_expression, - ACTIONS(304), 2, + STATE(1694), 1, + sym_index_expression_list, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1508), 3, + STATE(1470), 3, sym_list_splat, sym__index_expression, sym_slice, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(276), 5, + ACTIONS(270), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -31058,71 +31664,72 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [8990] = 24, + [9343] = 24, ACTIONS(3), 1, sym_comment, - ACTIONS(263), 1, + ACTIONS(268), 1, sym_identifier, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(300), 1, + ACTIONS(305), 1, anon_sym_lambda, - ACTIONS(308), 1, + ACTIONS(313), 1, anon_sym_await, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(591), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(695), 1, + ACTIONS(684), 1, anon_sym_yield, - ACTIONS(747), 1, + ACTIONS(768), 1, anon_sym_not, - ACTIONS(769), 1, + ACTIONS(778), 1, anon_sym_LPAREN, - ACTIONS(773), 1, - anon_sym_STAR, - ACTIONS(813), 1, + ACTIONS(780), 1, anon_sym_RPAREN, - STATE(621), 1, + ACTIONS(782), 1, + anon_sym_STAR, + STATE(694), 1, sym_string, - STATE(624), 1, + STATE(698), 1, sym_template_string, - STATE(719), 1, + STATE(704), 1, sym_primary_expression, - STATE(1174), 1, + STATE(1179), 1, sym_expression, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1315), 3, + STATE(1354), 3, sym_list_splat, sym_parenthesized_list_splat, sym_yield, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(276), 5, + ACTIONS(270), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -31140,71 +31747,72 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [9096] = 24, + [9450] = 24, ACTIONS(3), 1, sym_comment, - ACTIONS(263), 1, + ACTIONS(268), 1, sym_identifier, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(300), 1, + ACTIONS(305), 1, anon_sym_lambda, - ACTIONS(308), 1, + ACTIONS(313), 1, anon_sym_await, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(578), 1, + ACTIONS(585), 1, anon_sym_LPAREN, - ACTIONS(591), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(747), 1, + ACTIONS(768), 1, anon_sym_not, - ACTIONS(773), 1, + ACTIONS(782), 1, anon_sym_STAR, - ACTIONS(905), 1, + ACTIONS(924), 1, anon_sym_COLON, - STATE(621), 1, + STATE(694), 1, sym_string, - STATE(624), 1, + STATE(698), 1, sym_template_string, - STATE(719), 1, + STATE(704), 1, sym_primary_expression, STATE(1246), 1, sym_expression, STATE(1660), 1, sym_index_expression_list, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1377), 3, + STATE(1501), 3, sym_list_splat, sym__index_expression, sym_slice, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(276), 5, + ACTIONS(270), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -31222,55 +31830,222 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [9202] = 18, + [9557] = 24, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(595), 1, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, anon_sym_await, - STATE(621), 1, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(782), 1, + anon_sym_STAR, + ACTIONS(924), 1, + anon_sym_COLON, + STATE(694), 1, sym_string, - STATE(624), 1, + STATE(698), 1, sym_template_string, - STATE(735), 1, + STATE(704), 1, sym_primary_expression, - ACTIONS(304), 2, + STATE(1246), 1, + sym_expression, + STATE(1735), 1, + sym_index_expression_list, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(265), 3, - anon_sym_DOT, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(911), 3, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - ACTIONS(306), 5, + STATE(1518), 3, + sym_list_splat, + sym__index_expression, + sym_slice, + ACTIONS(311), 4, sym_integer, - sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(583), 5, + ACTIONS(270), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - ACTIONS(298), 9, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [9664] = 24, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(782), 1, + anon_sym_STAR, + ACTIONS(924), 1, + anon_sym_COLON, + ACTIONS(926), 1, + anon_sym_RBRACK, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1246), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1535), 3, + sym_list_splat, + sym__index_expression, + sym_slice, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [9771] = 18, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(600), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(766), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(272), 3, + anon_sym_DOT, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(928), 3, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + ACTIONS(303), 9, anon_sym_GT_GT, anon_sym_PIPE, anon_sym_STAR_STAR, @@ -31280,7 +32055,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, anon_sym_LT_LT, - STATE(724), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -31298,71 +32073,72 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [9296] = 24, + [9866] = 24, ACTIONS(3), 1, sym_comment, - ACTIONS(263), 1, + ACTIONS(268), 1, sym_identifier, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(300), 1, + ACTIONS(305), 1, anon_sym_lambda, - ACTIONS(308), 1, + ACTIONS(313), 1, anon_sym_await, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(578), 1, + ACTIONS(585), 1, anon_sym_LPAREN, - ACTIONS(591), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(747), 1, + ACTIONS(768), 1, anon_sym_not, - ACTIONS(773), 1, + ACTIONS(782), 1, anon_sym_STAR, - ACTIONS(905), 1, + ACTIONS(924), 1, anon_sym_COLON, - STATE(621), 1, + ACTIONS(930), 1, + anon_sym_RBRACK, + STATE(694), 1, sym_string, - STATE(624), 1, + STATE(698), 1, sym_template_string, - STATE(719), 1, + STATE(704), 1, sym_primary_expression, STATE(1246), 1, sym_expression, - STATE(1669), 1, - sym_index_expression_list, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1414), 3, + STATE(1535), 3, sym_list_splat, sym__index_expression, sym_slice, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(276), 5, + ACTIONS(270), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -31380,71 +32156,72 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [9402] = 24, + [9973] = 24, ACTIONS(3), 1, sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(300), 1, + ACTIONS(305), 1, anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(773), 1, + ACTIONS(756), 1, anon_sym_STAR, - ACTIONS(905), 1, - anon_sym_COLON, - STATE(621), 1, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(778), 1, + anon_sym_LPAREN, + ACTIONS(828), 1, + sym_identifier, + ACTIONS(832), 1, + anon_sym_await, + STATE(694), 1, sym_string, - STATE(624), 1, + STATE(698), 1, sym_template_string, - STATE(719), 1, + STATE(704), 1, sym_primary_expression, - STATE(1246), 1, + STATE(1321), 1, sym_expression, - STATE(1653), 1, - sym_index_expression_list, - ACTIONS(304), 2, + STATE(1540), 1, + sym_parenthesized_list_splat, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1432), 3, + STATE(1539), 3, sym_list_splat, - sym__index_expression, - sym_slice, - ACTIONS(306), 4, + sym_dictionary_splat, + sym_keyword_argument, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(276), 5, + ACTIONS(830), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -31462,69 +32239,316 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [9508] = 23, + [10080] = 24, ACTIONS(3), 1, sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, + ACTIONS(53), 1, anon_sym_LBRACE, - ACTIONS(300), 1, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, + ACTIONS(83), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(85), 1, sym__template_string_start, - ACTIONS(591), 1, + ACTIONS(361), 1, + sym_identifier, + ACTIONS(367), 1, + anon_sym_await, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, anon_sym_LBRACK, - ACTIONS(695), 1, + ACTIONS(756), 1, + anon_sym_STAR, + STATE(772), 1, + sym_template_string, + STATE(773), 1, + sym_primary_expression, + STATE(779), 1, + sym_string, + STATE(1239), 1, + sym_expression, + STATE(1554), 1, + sym_expression_list, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + STATE(1590), 2, + sym_list_splat, + sym_dictionary_splat, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(363), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1126), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [10186] = 24, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1265), 1, + sym_expression, + STATE(1645), 1, + sym_expression_list, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1573), 2, + sym_list_splat, + sym_dictionary_splat, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [10292] = 24, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1279), 1, + sym_expression, + STATE(1687), 1, + sym_expression_list, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1573), 2, + sym_list_splat, + sym_dictionary_splat, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [10398] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(684), 1, anon_sym_yield, - ACTIONS(747), 1, + ACTIONS(768), 1, anon_sym_not, - ACTIONS(769), 1, + ACTIONS(778), 1, anon_sym_LPAREN, - ACTIONS(773), 1, + ACTIONS(782), 1, anon_sym_STAR, - STATE(621), 1, + STATE(694), 1, sym_string, - STATE(624), 1, + STATE(698), 1, sym_template_string, - STATE(719), 1, + STATE(704), 1, sym_primary_expression, - STATE(1174), 1, + STATE(1179), 1, sym_expression, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1315), 3, + STATE(1354), 3, sym_list_splat, sym_parenthesized_list_splat, sym_yield, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(276), 5, + ACTIONS(270), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -31542,70 +32566,71 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [9611] = 24, + [10502] = 24, ACTIONS(3), 1, sym_comment, - ACTIONS(53), 1, + ACTIONS(55), 1, anon_sym_STAR_STAR, - ACTIONS(263), 1, + ACTIONS(268), 1, sym_identifier, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(300), 1, + ACTIONS(305), 1, anon_sym_lambda, - ACTIONS(308), 1, + ACTIONS(313), 1, anon_sym_await, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(578), 1, + ACTIONS(585), 1, anon_sym_LPAREN, - ACTIONS(591), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(719), 1, + ACTIONS(756), 1, anon_sym_STAR, - ACTIONS(747), 1, + ACTIONS(768), 1, anon_sym_not, - STATE(621), 1, + STATE(694), 1, sym_string, - STATE(624), 1, + STATE(698), 1, sym_template_string, - STATE(719), 1, + STATE(704), 1, sym_primary_expression, - STATE(1237), 1, + STATE(1253), 1, sym_expression, - STATE(1637), 1, + STATE(1636), 1, sym_expression_list, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(1510), 2, + STATE(1573), 2, sym_list_splat, sym_dictionary_splat, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(276), 5, + ACTIONS(270), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -31623,150 +32648,70 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [9716] = 24, + [10608] = 23, ACTIONS(3), 1, sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(314), 1, + ACTIONS(268), 1, sym_identifier, - ACTIONS(320), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - ACTIONS(719), 1, - anon_sym_STAR, - STATE(763), 1, - sym_template_string, - STATE(779), 1, - sym_primary_expression, - STATE(782), 1, - sym_string, - STATE(1180), 1, - sym_expression, - STATE(1579), 1, - sym_expression_list, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - STATE(1549), 2, - sym_list_splat, - sym_dictionary_splat, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(316), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1158), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(908), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [9821] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(300), 1, + ACTIONS(305), 1, anon_sym_lambda, - ACTIONS(308), 1, + ACTIONS(313), 1, anon_sym_await, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(578), 1, + ACTIONS(585), 1, anon_sym_LPAREN, - ACTIONS(591), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(747), 1, + ACTIONS(768), 1, anon_sym_not, - ACTIONS(773), 1, + ACTIONS(782), 1, anon_sym_STAR, - ACTIONS(905), 1, + ACTIONS(924), 1, anon_sym_COLON, - STATE(621), 1, + STATE(694), 1, sym_string, - STATE(624), 1, + STATE(698), 1, sym_template_string, - STATE(719), 1, + STATE(704), 1, sym_primary_expression, STATE(1246), 1, sym_expression, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(1508), 3, + STATE(1535), 3, sym_list_splat, sym__index_expression, sym_slice, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(276), 5, + ACTIONS(270), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -31784,2076 +32729,71 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [9924] = 24, + [10712] = 24, ACTIONS(3), 1, sym_comment, - ACTIONS(53), 1, + ACTIONS(55), 1, anon_sym_STAR_STAR, - ACTIONS(263), 1, + ACTIONS(268), 1, sym_identifier, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(300), 1, + ACTIONS(305), 1, anon_sym_lambda, - ACTIONS(308), 1, + ACTIONS(313), 1, anon_sym_await, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(578), 1, + ACTIONS(585), 1, anon_sym_LPAREN, - ACTIONS(591), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(719), 1, + ACTIONS(756), 1, anon_sym_STAR, - ACTIONS(747), 1, + ACTIONS(768), 1, anon_sym_not, - STATE(621), 1, + STATE(694), 1, sym_string, - STATE(624), 1, + STATE(698), 1, sym_template_string, - STATE(719), 1, + STATE(704), 1, sym_primary_expression, - STATE(1240), 1, - sym_expression, - STATE(1625), 1, - sym_expression_list, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(1510), 2, - sym_list_splat, - sym_dictionary_splat, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [10029] = 24, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(747), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1236), 1, - sym_expression, - STATE(1610), 1, - sym_expression_list, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(1510), 2, - sym_list_splat, - sym_dictionary_splat, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [10134] = 24, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(747), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1235), 1, - sym_expression, - STATE(1603), 1, - sym_expression_list, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(1510), 2, - sym_list_splat, - sym_dictionary_splat, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [10239] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(913), 1, - anon_sym_RBRACE, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1331), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(1563), 2, - sym_dictionary_splat, - sym_pair, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [10341] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(314), 1, - sym_identifier, - ACTIONS(320), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - ACTIONS(833), 1, - anon_sym_STAR, - ACTIONS(835), 1, - anon_sym_STAR_STAR, - STATE(763), 1, - sym_template_string, - STATE(779), 1, - sym_primary_expression, - STATE(782), 1, - sym_string, - STATE(1199), 1, - sym_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - STATE(1358), 2, - sym_list_splat, - sym_dictionary_splat, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(316), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1158), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(908), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [10443] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(609), 1, - anon_sym_LPAREN, - ACTIONS(617), 1, - anon_sym_LBRACK, - ACTIONS(619), 1, - anon_sym_LBRACE, - ACTIONS(625), 1, - sym__string_start, - ACTIONS(627), 1, - sym__template_string_start, - ACTIONS(749), 1, - sym_identifier, - ACTIONS(755), 1, - anon_sym_not, - ACTIONS(757), 1, - anon_sym_lambda, - ACTIONS(759), 1, - anon_sym_await, - ACTIONS(797), 1, - anon_sym_STAR, - ACTIONS(799), 1, - anon_sym_STAR_STAR, - STATE(766), 1, - sym_primary_expression, - STATE(767), 1, - sym_string, - STATE(768), 1, - sym_template_string, - STATE(1164), 1, - sym_expression, - ACTIONS(621), 2, - sym_ellipsis, - sym_float, - STATE(1273), 2, - sym_list_splat, - sym_dictionary_splat, - ACTIONS(615), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(607), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(753), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1129), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(924), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [10545] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(915), 1, - anon_sym_RBRACE, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1331), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(1563), 2, - sym_dictionary_splat, - sym_pair, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [10647] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(917), 1, - anon_sym_RBRACE, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1331), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(1563), 2, - sym_dictionary_splat, - sym_pair, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [10749] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(919), 1, - anon_sym_RBRACE, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1331), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(1563), 2, - sym_dictionary_splat, - sym_pair, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [10851] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(921), 1, - anon_sym_RBRACE, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1331), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(1563), 2, - sym_dictionary_splat, - sym_pair, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [10953] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(923), 1, - anon_sym_RBRACE, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1331), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(1563), 2, - sym_dictionary_splat, - sym_pair, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [11055] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(925), 1, - anon_sym_RBRACE, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1331), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(1563), 2, - sym_dictionary_splat, - sym_pair, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [11157] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(927), 1, - anon_sym_RBRACE, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1331), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(1563), 2, - sym_dictionary_splat, - sym_pair, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [11259] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(929), 1, - anon_sym_RBRACE, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1331), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(1563), 2, - sym_dictionary_splat, - sym_pair, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [11361] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(931), 1, - anon_sym_RBRACE, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1331), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(1563), 2, - sym_dictionary_splat, - sym_pair, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [11463] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(933), 1, - anon_sym_RBRACE, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1331), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(1563), 2, - sym_dictionary_splat, - sym_pair, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [11565] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(935), 1, - anon_sym_RBRACE, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1331), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(1563), 2, - sym_dictionary_splat, - sym_pair, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [11667] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(719), 1, - anon_sym_STAR, - ACTIONS(747), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1117), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(1267), 2, - sym_list_splat, - sym_dictionary_splat, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [11769] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(773), 1, - anon_sym_STAR, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1172), 1, - sym_expression, - STATE(1308), 1, - sym_list_splat, - STATE(1447), 1, - sym_type, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [11870] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(773), 1, - anon_sym_STAR, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1172), 1, - sym_expression, - STATE(1308), 1, - sym_list_splat, - STATE(1583), 1, - sym_type, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [11971] = 9, - ACTIONS(3), 1, - sym_comment, - ACTIONS(941), 1, - anon_sym_else, - ACTIONS(943), 1, - anon_sym_except, - ACTIONS(945), 1, - anon_sym_finally, - STATE(470), 1, - sym_else_clause, - STATE(575), 1, - sym_finally_clause, - STATE(330), 2, - sym_except_clause, - aux_sym_try_statement_repeat1, - ACTIONS(939), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(937), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [12044] = 9, - ACTIONS(3), 1, - sym_comment, - ACTIONS(941), 1, - anon_sym_else, - ACTIONS(945), 1, - anon_sym_finally, - ACTIONS(947), 1, - anon_sym_except, - STATE(470), 1, - sym_else_clause, - STATE(575), 1, - sym_finally_clause, - STATE(331), 2, - sym_except_group_clause, - aux_sym_try_statement_repeat2, - ACTIONS(939), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(937), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [12117] = 9, - ACTIONS(3), 1, - sym_comment, - ACTIONS(949), 1, - anon_sym_else, - ACTIONS(951), 1, - anon_sym_except, - ACTIONS(953), 1, - anon_sym_finally, - STATE(472), 1, - sym_else_clause, - STATE(518), 1, - sym_finally_clause, - STATE(328), 2, - sym_except_clause, - aux_sym_try_statement_repeat1, - ACTIONS(939), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(937), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [12190] = 22, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(957), 1, - anon_sym_COLON, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1247), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(955), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [12289] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(773), 1, - anon_sym_STAR, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1172), 1, - sym_expression, - STATE(1308), 1, - sym_list_splat, - STATE(1697), 1, - sym_type, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [12390] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(773), 1, - anon_sym_STAR, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1172), 1, - sym_expression, - STATE(1308), 1, - sym_list_splat, - STATE(1639), 1, - sym_type, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [12491] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(314), 1, - sym_identifier, - ACTIONS(320), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - ACTIONS(959), 1, - anon_sym_STAR, - STATE(763), 1, - sym_template_string, - STATE(779), 1, - sym_primary_expression, - STATE(782), 1, - sym_string, STATE(1250), 1, sym_expression, - STATE(1406), 1, - sym_type, - STATE(1463), 1, + STATE(1629), 1, + sym_expression_list, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1573), 2, sym_list_splat, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, + sym_dictionary_splat, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(77), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(316), 5, + ACTIONS(270), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1158), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(908), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -33871,286 +32811,69 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [12592] = 23, + [10818] = 23, ACTIONS(3), 1, sym_comment, - ACTIONS(631), 1, + ACTIONS(616), 1, anon_sym_LPAREN, - ACTIONS(639), 1, + ACTIONS(622), 1, anon_sym_LBRACK, - ACTIONS(641), 1, + ACTIONS(624), 1, anon_sym_LBRACE, - ACTIONS(647), 1, + ACTIONS(630), 1, sym__string_start, - ACTIONS(649), 1, + ACTIONS(632), 1, sym__template_string_start, - ACTIONS(961), 1, + ACTIONS(750), 1, sym_identifier, - ACTIONS(963), 1, + ACTIONS(760), 1, + anon_sym_not, + ACTIONS(762), 1, + anon_sym_lambda, + ACTIONS(764), 1, + anon_sym_await, + ACTIONS(774), 1, anon_sym_STAR, - ACTIONS(967), 1, - anon_sym_COLON, - ACTIONS(969), 1, - anon_sym_not, - ACTIONS(971), 1, - anon_sym_lambda, - ACTIONS(973), 1, - anon_sym_await, - STATE(794), 1, - sym_string, - STATE(795), 1, - sym_template_string, - STATE(822), 1, - sym_primary_expression, - STATE(1207), 1, - sym_expression, - STATE(1552), 1, - sym_exception_list, - ACTIONS(643), 2, - sym_ellipsis, - sym_float, - ACTIONS(637), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(629), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(965), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1176), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(953), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [12693] = 22, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(977), 1, - anon_sym_COLON, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1249), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(975), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [12792] = 9, - ACTIONS(3), 1, - sym_comment, - ACTIONS(949), 1, - anon_sym_else, - ACTIONS(951), 1, - anon_sym_except, - ACTIONS(953), 1, - anon_sym_finally, - STATE(468), 1, - sym_else_clause, - STATE(534), 1, - sym_finally_clause, - STATE(328), 2, - sym_except_clause, - aux_sym_try_statement_repeat1, - ACTIONS(979), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, + ACTIONS(776), 1, anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, + STATE(780), 1, + sym_primary_expression, + STATE(781), 1, + sym_string, + STATE(782), 1, + sym_template_string, + STATE(1120), 1, + sym_expression, + ACTIONS(626), 2, sym_ellipsis, sym_float, - ACTIONS(981), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [12865] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(773), 1, - anon_sym_STAR, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1172), 1, - sym_expression, - STATE(1308), 1, + STATE(1301), 2, sym_list_splat, - STATE(1617), 1, - sym_type, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, + sym_dictionary_splat, + ACTIONS(620), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(612), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(276), 5, + ACTIONS(752), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1131), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(949), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -34168,428 +32891,69 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [12966] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(773), 1, - anon_sym_STAR, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1172), 1, - sym_expression, - STATE(1308), 1, - sym_list_splat, - STATE(1341), 1, - sym_type, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [13067] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(773), 1, - anon_sym_STAR, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1172), 1, - sym_expression, - STATE(1308), 1, - sym_list_splat, - STATE(1642), 1, - sym_type, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [13168] = 9, - ACTIONS(3), 1, - sym_comment, - ACTIONS(941), 1, - anon_sym_else, - ACTIONS(943), 1, - anon_sym_except, - ACTIONS(945), 1, - anon_sym_finally, - STATE(479), 1, - sym_else_clause, - STATE(561), 1, - sym_finally_clause, - STATE(330), 2, - sym_except_clause, - aux_sym_try_statement_repeat1, - ACTIONS(979), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(981), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [13241] = 9, - ACTIONS(3), 1, - sym_comment, - ACTIONS(949), 1, - anon_sym_else, - ACTIONS(953), 1, - anon_sym_finally, - ACTIONS(983), 1, - anon_sym_except, - STATE(472), 1, - sym_else_clause, - STATE(518), 1, - sym_finally_clause, - STATE(329), 2, - sym_except_group_clause, - aux_sym_try_statement_repeat2, - ACTIONS(939), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(937), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [13314] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(631), 1, - anon_sym_LPAREN, - ACTIONS(639), 1, - anon_sym_LBRACK, - ACTIONS(641), 1, - anon_sym_LBRACE, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - ACTIONS(961), 1, - sym_identifier, - ACTIONS(969), 1, - anon_sym_not, - ACTIONS(971), 1, - anon_sym_lambda, - ACTIONS(973), 1, - anon_sym_await, - ACTIONS(985), 1, - anon_sym_STAR, - ACTIONS(987), 1, - anon_sym_COLON, - STATE(794), 1, - sym_string, - STATE(795), 1, - sym_template_string, - STATE(822), 1, - sym_primary_expression, - STATE(1204), 1, - sym_expression, - STATE(1548), 1, - sym_exception_list, - ACTIONS(643), 2, - sym_ellipsis, - sym_float, - ACTIONS(637), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(629), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(965), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1176), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(953), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [13415] = 22, + [10921] = 23, ACTIONS(3), 1, sym_comment, ACTIONS(53), 1, - anon_sym_STAR_STAR, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, + ACTIONS(71), 1, anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(361), 1, + sym_identifier, + ACTIONS(367), 1, + anon_sym_await, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + ACTIONS(848), 1, + anon_sym_STAR, + ACTIONS(850), 1, + anon_sym_STAR_STAR, + STATE(772), 1, sym_template_string, - STATE(719), 1, + STATE(773), 1, sym_primary_expression, - STATE(1331), 1, + STATE(779), 1, + sym_string, + STATE(1219), 1, sym_expression, - ACTIONS(304), 2, + ACTIONS(77), 2, sym_ellipsis, sym_float, - STATE(1563), 2, + STATE(1393), 2, + sym_list_splat, sym_dictionary_splat, - sym_pair, - ACTIONS(296), 3, + ACTIONS(49), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(79), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(276), 5, + ACTIONS(363), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1126), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(950), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -34607,23 +32971,821 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [13514] = 9, + [11024] = 23, ACTIONS(3), 1, sym_comment, - ACTIONS(941), 1, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(756), 1, + anon_sym_STAR, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1144), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1291), 2, + sym_list_splat, + sym_dictionary_splat, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [11127] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(932), 1, + anon_sym_RBRACE, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1395), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1567), 2, + sym_dictionary_splat, + sym_pair, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [11230] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(934), 1, + anon_sym_RBRACE, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1395), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1567), 2, + sym_dictionary_splat, + sym_pair, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [11333] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(936), 1, + anon_sym_RBRACE, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1395), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1567), 2, + sym_dictionary_splat, + sym_pair, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [11436] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(938), 1, + anon_sym_RBRACE, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1395), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1567), 2, + sym_dictionary_splat, + sym_pair, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [11539] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(940), 1, + anon_sym_RBRACE, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1395), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1567), 2, + sym_dictionary_splat, + sym_pair, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [11642] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(942), 1, + anon_sym_RBRACE, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1395), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1567), 2, + sym_dictionary_splat, + sym_pair, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [11745] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(944), 1, + anon_sym_RBRACE, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1395), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1567), 2, + sym_dictionary_splat, + sym_pair, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [11848] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(946), 1, + anon_sym_RBRACE, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1395), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1567), 2, + sym_dictionary_splat, + sym_pair, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [11951] = 22, + ACTIONS(3), 1, + sym_comment, + ACTIONS(55), 1, + anon_sym_STAR_STAR, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1395), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1567), 2, + sym_dictionary_splat, + sym_pair, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [12051] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(952), 1, anon_sym_else, - ACTIONS(945), 1, - anon_sym_finally, - ACTIONS(947), 1, + ACTIONS(954), 1, anon_sym_except, - STATE(479), 1, + ACTIONS(956), 1, + anon_sym_finally, + STATE(480), 1, sym_else_clause, - STATE(561), 1, + STATE(554), 1, sym_finally_clause, STATE(331), 2, sym_except_group_clause, aux_sym_try_statement_repeat2, - ACTIONS(979), 13, + ACTIONS(950), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -34637,7 +33799,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(981), 33, + ACTIONS(948), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -34671,257 +33834,404 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [13587] = 23, + [12125] = 9, ACTIONS(3), 1, sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(773), 1, - anon_sym_STAR, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1172), 1, - sym_expression, - STATE(1308), 1, - sym_list_splat, - STATE(1616), 1, - sym_type, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [13688] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(773), 1, - anon_sym_STAR, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1172), 1, - sym_expression, - STATE(1308), 1, - sym_list_splat, - STATE(1618), 1, - sym_type, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [13789] = 23, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(773), 1, - anon_sym_STAR, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1172), 1, - sym_expression, - STATE(1308), 1, - sym_list_splat, - STATE(1622), 1, - sym_type, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [13890] = 9, - ACTIONS(3), 1, - sym_comment, - ACTIONS(949), 1, + ACTIONS(952), 1, anon_sym_else, - ACTIONS(953), 1, - anon_sym_finally, - ACTIONS(983), 1, + ACTIONS(954), 1, anon_sym_except, - STATE(468), 1, + ACTIONS(956), 1, + anon_sym_finally, + STATE(484), 1, sym_else_clause, - STATE(534), 1, + STATE(572), 1, sym_finally_clause, - STATE(329), 2, + STATE(331), 2, sym_except_group_clause, aux_sym_try_statement_repeat2, - ACTIONS(979), 13, + ACTIONS(960), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(958), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [12199] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(782), 1, + anon_sym_STAR, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1231), 1, + sym_expression, + STATE(1333), 1, + sym_type, + STATE(1358), 1, + sym_list_splat, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [12301] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(361), 1, + sym_identifier, + ACTIONS(367), 1, + anon_sym_await, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + ACTIONS(962), 1, + anon_sym_STAR, + STATE(772), 1, + sym_template_string, + STATE(773), 1, + sym_primary_expression, + STATE(779), 1, + sym_string, + STATE(1271), 1, + sym_expression, + STATE(1436), 1, + sym_type, + STATE(1529), 1, + sym_list_splat, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(363), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1126), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [12403] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(650), 1, + anon_sym_LPAREN, + ACTIONS(656), 1, + anon_sym_LBRACK, + ACTIONS(658), 1, + anon_sym_LBRACE, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(964), 1, + sym_identifier, + ACTIONS(968), 1, + anon_sym_STAR, + ACTIONS(970), 1, + anon_sym_COLON, + ACTIONS(972), 1, + anon_sym_not, + ACTIONS(974), 1, + anon_sym_lambda, + ACTIONS(976), 1, + anon_sym_await, + STATE(789), 1, + sym_primary_expression, + STATE(790), 1, + sym_string, + STATE(791), 1, + sym_template_string, + STATE(1177), 1, + sym_expression, + STATE(1594), 1, + sym_exception_list, + ACTIONS(660), 2, + sym_ellipsis, + sym_float, + ACTIONS(654), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(646), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(966), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1198), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(985), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [12505] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(782), 1, + anon_sym_STAR, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1231), 1, + sym_expression, + STATE(1358), 1, + sym_list_splat, + STATE(1643), 1, + sym_type, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [12607] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(978), 1, + anon_sym_else, + ACTIONS(980), 1, + anon_sym_except, + ACTIONS(982), 1, + anon_sym_finally, + STATE(481), 1, + sym_else_clause, + STATE(557), 1, + sym_finally_clause, + STATE(315), 2, + sym_except_group_clause, + aux_sym_try_statement_repeat2, + ACTIONS(950), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -34935,7 +34245,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(981), 33, + ACTIONS(948), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -34969,1025 +34280,290 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [13963] = 22, + [12681] = 23, ACTIONS(3), 1, sym_comment, - ACTIONS(639), 1, - anon_sym_LBRACK, - ACTIONS(641), 1, - anon_sym_LBRACE, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - ACTIONS(961), 1, + ACTIONS(268), 1, sym_identifier, - ACTIONS(969), 1, - anon_sym_not, - ACTIONS(971), 1, - anon_sym_lambda, - ACTIONS(973), 1, - anon_sym_await, - ACTIONS(989), 1, - anon_sym_LPAREN, - STATE(794), 1, - sym_string, - STATE(795), 1, - sym_template_string, - STATE(822), 1, - sym_primary_expression, - STATE(1200), 1, - sym_expression, - STATE(1434), 1, - sym_with_item, - STATE(1607), 1, - sym_with_clause, - ACTIONS(643), 2, - sym_ellipsis, - sym_float, - ACTIONS(637), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(629), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(965), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1176), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(953), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [14061] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, + ACTIONS(305), 1, anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(314), 1, - sym_identifier, - ACTIONS(320), 1, + ACTIONS(313), 1, anon_sym_await, - ACTIONS(568), 1, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, anon_sym_LPAREN, - ACTIONS(574), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - STATE(763), 1, - sym_template_string, - STATE(779), 1, - sym_primary_expression, - STATE(782), 1, - sym_string, - STATE(1224), 1, - sym_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(991), 2, - sym__newline, - anon_sym_SEMI, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(316), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1158), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(908), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [14157] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, + ACTIONS(768), 1, anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(314), 1, - sym_identifier, - ACTIONS(320), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - STATE(763), 1, - sym_template_string, - STATE(779), 1, - sym_primary_expression, - STATE(782), 1, - sym_string, - STATE(1224), 1, - sym_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(993), 2, - sym__newline, - anon_sym_SEMI, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(316), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1158), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(908), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [14253] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(314), 1, - sym_identifier, - ACTIONS(320), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - STATE(763), 1, - sym_template_string, - STATE(779), 1, - sym_primary_expression, - STATE(782), 1, - sym_string, - STATE(1224), 1, - sym_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(995), 2, - sym__newline, - anon_sym_SEMI, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(316), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1158), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(908), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [14349] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, - anon_sym_LPAREN, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(801), 1, - sym_identifier, - ACTIONS(807), 1, - anon_sym_await, - ACTIONS(829), 1, - anon_sym_lambda, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1098), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(1203), 2, - sym__expression_within_for_in_clause, - sym_lambda_within_for_in_clause, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(805), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [14445] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1276), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(997), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [14541] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1001), 17, - anon_sym_as, + ACTIONS(782), 1, anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_PIPE, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1231), 1, + sym_expression, + STATE(1358), 1, + sym_list_splat, + STATE(1494), 1, + sym_type, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, - anon_sym_STAR_STAR, - anon_sym_EQ, - anon_sym_AT, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT, - anon_sym_GT, - ACTIONS(999), 35, - anon_sym_DOT, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [12783] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(782), 1, + anon_sym_STAR, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1231), 1, + sym_expression, + STATE(1358), 1, + sym_list_splat, + STATE(1715), 1, + sym_type, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [12885] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(952), 1, anon_sym_else, + ACTIONS(956), 1, + anon_sym_finally, + ACTIONS(984), 1, + anon_sym_except, + STATE(484), 1, + sym_else_clause, + STATE(572), 1, + sym_finally_clause, + STATE(324), 2, + sym_except_clause, + aux_sym_try_statement_repeat1, + ACTIONS(960), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(958), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, anon_sym_async, anon_sym_for, - anon_sym_in, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - [14601] = 22, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [12959] = 22, ACTIONS(3), 1, sym_comment, - ACTIONS(631), 1, - anon_sym_LPAREN, - ACTIONS(639), 1, - anon_sym_LBRACK, - ACTIONS(641), 1, - anon_sym_LBRACE, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - ACTIONS(961), 1, + ACTIONS(268), 1, sym_identifier, - ACTIONS(967), 1, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(988), 1, anon_sym_COLON, - ACTIONS(969), 1, - anon_sym_not, - ACTIONS(971), 1, - anon_sym_lambda, - ACTIONS(973), 1, - anon_sym_await, - STATE(794), 1, + STATE(694), 1, sym_string, - STATE(795), 1, + STATE(698), 1, sym_template_string, - STATE(822), 1, - sym_primary_expression, - STATE(1207), 1, - sym_expression, - STATE(1552), 1, - sym_exception_list, - ACTIONS(643), 2, - sym_ellipsis, - sym_float, - ACTIONS(637), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(629), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(965), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1176), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(953), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [14699] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1266), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(1003), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [14795] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, - anon_sym_LPAREN, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(801), 1, - sym_identifier, - ACTIONS(807), 1, - anon_sym_await, - ACTIONS(829), 1, - anon_sym_lambda, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1094), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(1211), 2, - sym__expression_within_for_in_clause, - sym_lambda_within_for_in_clause, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(805), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [14891] = 22, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - ACTIONS(773), 1, - anon_sym_STAR, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, + STATE(704), 1, sym_primary_expression, STATE(1264), 1, sym_expression, - STATE(1519), 1, - sym_list_splat, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [14989] = 22, - ACTIONS(3), 1, - sym_comment, - ACTIONS(631), 1, - anon_sym_LPAREN, - ACTIONS(639), 1, - anon_sym_LBRACK, - ACTIONS(641), 1, - anon_sym_LBRACE, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - ACTIONS(961), 1, - sym_identifier, - ACTIONS(969), 1, - anon_sym_not, - ACTIONS(971), 1, - anon_sym_lambda, - ACTIONS(973), 1, - anon_sym_await, - ACTIONS(1005), 1, - anon_sym_RPAREN, - STATE(794), 1, - sym_string, - STATE(795), 1, - sym_template_string, - STATE(822), 1, - sym_primary_expression, - STATE(1200), 1, - sym_expression, - STATE(1501), 1, - sym_with_item, - ACTIONS(643), 2, - sym_ellipsis, - sym_float, - ACTIONS(637), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(629), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(965), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1176), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(953), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [15087] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(314), 1, - sym_identifier, - ACTIONS(320), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - STATE(763), 1, - sym_template_string, - STATE(779), 1, - sym_primary_expression, - STATE(782), 1, - sym_string, - STATE(1224), 1, - sym_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(1007), 2, - sym__newline, - anon_sym_SEMI, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(316), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1158), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(908), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [15183] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1268), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(1009), 2, + ACTIONS(986), 2, anon_sym_COMMA, anon_sym_RBRACK, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(276), 5, + ACTIONS(270), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -36005,64 +34581,1263 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [15279] = 21, + [13059] = 23, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, + ACTIONS(650), 1, anon_sym_LPAREN, - ACTIONS(603), 1, + ACTIONS(656), 1, anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(801), 1, + ACTIONS(658), 1, + anon_sym_LBRACE, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(964), 1, sym_identifier, - ACTIONS(807), 1, - anon_sym_await, - ACTIONS(829), 1, + ACTIONS(972), 1, + anon_sym_not, + ACTIONS(974), 1, anon_sym_lambda, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, + ACTIONS(976), 1, + anon_sym_await, + ACTIONS(990), 1, + anon_sym_STAR, + ACTIONS(992), 1, + anon_sym_COLON, + STATE(789), 1, sym_primary_expression, - STATE(1090), 1, + STATE(790), 1, + sym_string, + STATE(791), 1, + sym_template_string, + STATE(1208), 1, sym_expression, - ACTIONS(304), 2, + STATE(1547), 1, + sym_exception_list, + ACTIONS(660), 2, + sym_ellipsis, + sym_float, + ACTIONS(654), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(646), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(966), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1198), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(985), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [13161] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(978), 1, + anon_sym_else, + ACTIONS(982), 1, + anon_sym_finally, + ACTIONS(994), 1, + anon_sym_except, + STATE(481), 1, + sym_else_clause, + STATE(557), 1, + sym_finally_clause, + STATE(314), 2, + sym_except_clause, + aux_sym_try_statement_repeat1, + ACTIONS(950), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(948), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [13235] = 22, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(998), 1, + anon_sym_COLON, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1244), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(996), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [13335] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(782), 1, + anon_sym_STAR, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1231), 1, + sym_expression, + STATE(1358), 1, + sym_list_splat, + STATE(1630), 1, + sym_type, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [13437] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(978), 1, + anon_sym_else, + ACTIONS(982), 1, + anon_sym_finally, + ACTIONS(994), 1, + anon_sym_except, + STATE(476), 1, + sym_else_clause, + STATE(537), 1, + sym_finally_clause, + STATE(314), 2, + sym_except_clause, + aux_sym_try_statement_repeat1, + ACTIONS(960), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(958), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [13511] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(978), 1, + anon_sym_else, + ACTIONS(980), 1, + anon_sym_except, + ACTIONS(982), 1, + anon_sym_finally, + STATE(476), 1, + sym_else_clause, + STATE(537), 1, + sym_finally_clause, + STATE(315), 2, + sym_except_group_clause, + aux_sym_try_statement_repeat2, + ACTIONS(960), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(958), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [13585] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(952), 1, + anon_sym_else, + ACTIONS(956), 1, + anon_sym_finally, + ACTIONS(984), 1, + anon_sym_except, + STATE(480), 1, + sym_else_clause, + STATE(554), 1, + sym_finally_clause, + STATE(324), 2, + sym_except_clause, + aux_sym_try_statement_repeat1, + ACTIONS(950), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(948), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [13659] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(782), 1, + anon_sym_STAR, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1231), 1, + sym_expression, + STATE(1358), 1, + sym_list_splat, + STATE(1747), 1, + sym_type, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [13761] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(782), 1, + anon_sym_STAR, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1231), 1, + sym_expression, + STATE(1358), 1, + sym_list_splat, + STATE(1642), 1, + sym_type, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [13863] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(782), 1, + anon_sym_STAR, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1231), 1, + sym_expression, + STATE(1358), 1, + sym_list_splat, + STATE(1644), 1, + sym_type, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [13965] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(782), 1, + anon_sym_STAR, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1231), 1, + sym_expression, + STATE(1358), 1, + sym_list_splat, + STATE(1648), 1, + sym_type, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [14067] = 23, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(782), 1, + anon_sym_STAR, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1231), 1, + sym_expression, + STATE(1358), 1, + sym_list_splat, + STATE(1649), 1, + sym_type, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [14169] = 22, + ACTIONS(3), 1, + sym_comment, + ACTIONS(650), 1, + anon_sym_LPAREN, + ACTIONS(656), 1, + anon_sym_LBRACK, + ACTIONS(658), 1, + anon_sym_LBRACE, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(964), 1, + sym_identifier, + ACTIONS(972), 1, + anon_sym_not, + ACTIONS(974), 1, + anon_sym_lambda, + ACTIONS(976), 1, + anon_sym_await, + ACTIONS(1000), 1, + anon_sym_RPAREN, + STATE(789), 1, + sym_primary_expression, + STATE(790), 1, + sym_string, + STATE(791), 1, + sym_template_string, + STATE(1192), 1, + sym_expression, + STATE(1522), 1, + sym_with_item, + ACTIONS(660), 2, + sym_ellipsis, + sym_float, + ACTIONS(654), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(646), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(966), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1198), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(985), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [14268] = 22, + ACTIONS(3), 1, + sym_comment, + ACTIONS(656), 1, + anon_sym_LBRACK, + ACTIONS(658), 1, + anon_sym_LBRACE, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(964), 1, + sym_identifier, + ACTIONS(972), 1, + anon_sym_not, + ACTIONS(974), 1, + anon_sym_lambda, + ACTIONS(976), 1, + anon_sym_await, + ACTIONS(1002), 1, + anon_sym_LPAREN, + STATE(789), 1, + sym_primary_expression, + STATE(790), 1, + sym_string, + STATE(791), 1, + sym_template_string, + STATE(1192), 1, + sym_expression, + STATE(1478), 1, + sym_with_item, + STATE(1719), 1, + sym_with_clause, + ACTIONS(660), 2, + sym_ellipsis, + sym_float, + ACTIONS(654), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(646), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(966), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1198), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(985), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [14367] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(361), 1, + sym_identifier, + ACTIONS(367), 1, + anon_sym_await, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + STATE(772), 1, + sym_template_string, + STATE(773), 1, + sym_primary_expression, + STATE(779), 1, + sym_string, + STATE(1278), 1, + sym_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(1004), 2, + sym__newline, + anon_sym_SEMI, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(363), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1126), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [14464] = 22, + ACTIONS(3), 1, + sym_comment, + ACTIONS(650), 1, + anon_sym_LPAREN, + ACTIONS(656), 1, + anon_sym_LBRACK, + ACTIONS(658), 1, + anon_sym_LBRACE, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(964), 1, + sym_identifier, + ACTIONS(970), 1, + anon_sym_COLON, + ACTIONS(972), 1, + anon_sym_not, + ACTIONS(974), 1, + anon_sym_lambda, + ACTIONS(976), 1, + anon_sym_await, + STATE(789), 1, + sym_primary_expression, + STATE(790), 1, + sym_string, + STATE(791), 1, + sym_template_string, + STATE(1177), 1, + sym_expression, + STATE(1594), 1, + sym_exception_list, + ACTIONS(660), 2, + sym_ellipsis, + sym_float, + ACTIONS(654), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(646), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(966), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1198), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(985), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [14563] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(816), 1, + anon_sym_await, + ACTIONS(864), 1, + anon_sym_lambda, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1104), 1, + sym_expression, + ACTIONS(309), 2, sym_ellipsis, sym_float, STATE(1178), 2, sym__expression_within_for_in_clause, sym_lambda_within_for_in_clause, - ACTIONS(601), 3, + ACTIONS(606), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(805), 5, + ACTIONS(810), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -36080,64 +35855,66 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [15375] = 21, + [14660] = 22, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, - anon_sym_LPAREN, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(801), 1, + ACTIONS(268), 1, sym_identifier, - ACTIONS(807), 1, - anon_sym_await, - ACTIONS(829), 1, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, anon_sym_lambda, - STATE(621), 1, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + ACTIONS(782), 1, + anon_sym_STAR, + STATE(694), 1, sym_string, - STATE(624), 1, + STATE(698), 1, sym_template_string, - STATE(725), 1, + STATE(704), 1, sym_primary_expression, - STATE(1094), 1, + STATE(1317), 1, sym_expression, - ACTIONS(304), 2, + STATE(1566), 1, + sym_list_splat, + ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(1128), 2, - sym__expression_within_for_in_clause, - sym_lambda_within_for_in_clause, - ACTIONS(601), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(805), 5, + ACTIONS(270), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -36155,65 +35932,66 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [15471] = 22, + [14759] = 22, ACTIONS(3), 1, sym_comment, - ACTIONS(639), 1, + ACTIONS(656), 1, anon_sym_LBRACK, - ACTIONS(641), 1, + ACTIONS(658), 1, anon_sym_LBRACE, - ACTIONS(647), 1, + ACTIONS(664), 1, sym__string_start, - ACTIONS(649), 1, + ACTIONS(666), 1, sym__template_string_start, - ACTIONS(961), 1, + ACTIONS(964), 1, sym_identifier, - ACTIONS(969), 1, + ACTIONS(972), 1, anon_sym_not, - ACTIONS(971), 1, + ACTIONS(974), 1, anon_sym_lambda, - ACTIONS(973), 1, + ACTIONS(976), 1, anon_sym_await, - ACTIONS(989), 1, + ACTIONS(1002), 1, anon_sym_LPAREN, - STATE(794), 1, - sym_string, - STATE(795), 1, - sym_template_string, - STATE(822), 1, + STATE(789), 1, sym_primary_expression, - STATE(1200), 1, + STATE(790), 1, + sym_string, + STATE(791), 1, + sym_template_string, + STATE(1192), 1, sym_expression, - STATE(1434), 1, + STATE(1478), 1, sym_with_item, - STATE(1589), 1, + STATE(1716), 1, sym_with_clause, - ACTIONS(643), 2, + ACTIONS(660), 2, sym_ellipsis, sym_float, - ACTIONS(637), 3, + ACTIONS(654), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(629), 4, + ACTIONS(646), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(965), 5, + ACTIONS(966), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1176), 6, + STATE(1198), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(953), 17, + STATE(985), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -36231,65 +36009,65 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [15569] = 22, + [14858] = 21, ACTIONS(3), 1, sym_comment, - ACTIONS(639), 1, - anon_sym_LBRACK, - ACTIONS(641), 1, + ACTIONS(53), 1, anon_sym_LBRACE, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - ACTIONS(961), 1, - sym_identifier, - ACTIONS(969), 1, + ACTIONS(71), 1, anon_sym_not, - ACTIONS(971), 1, + ACTIONS(73), 1, anon_sym_lambda, - ACTIONS(973), 1, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(361), 1, + sym_identifier, + ACTIONS(367), 1, anon_sym_await, - ACTIONS(989), 1, + ACTIONS(575), 1, anon_sym_LPAREN, - STATE(794), 1, - sym_string, - STATE(795), 1, + ACTIONS(579), 1, + anon_sym_LBRACK, + STATE(772), 1, sym_template_string, - STATE(822), 1, + STATE(773), 1, sym_primary_expression, - STATE(1200), 1, + STATE(779), 1, + sym_string, + STATE(1278), 1, sym_expression, - STATE(1434), 1, - sym_with_item, - STATE(1597), 1, - sym_with_clause, - ACTIONS(643), 2, + ACTIONS(77), 2, sym_ellipsis, sym_float, - ACTIONS(637), 3, + ACTIONS(1006), 2, + sym__newline, + anon_sym_SEMI, + ACTIONS(49), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(629), 4, + ACTIONS(79), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(965), 5, + ACTIONS(363), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1176), 6, + STATE(1126), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(953), 17, + STATE(950), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -36307,64 +36085,65 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [15667] = 21, + [14955] = 21, ACTIONS(3), 1, sym_comment, - ACTIONS(263), 1, + ACTIONS(268), 1, sym_identifier, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(300), 1, + ACTIONS(305), 1, anon_sym_lambda, - ACTIONS(308), 1, + ACTIONS(313), 1, anon_sym_await, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(578), 1, + ACTIONS(585), 1, anon_sym_LPAREN, - ACTIONS(591), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(747), 1, + ACTIONS(768), 1, anon_sym_not, - STATE(621), 1, + STATE(694), 1, sym_string, - STATE(624), 1, + STATE(698), 1, sym_template_string, - STATE(719), 1, + STATE(704), 1, sym_primary_expression, - STATE(1291), 1, + STATE(1320), 1, sym_expression, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(1011), 2, + ACTIONS(1008), 2, anon_sym_COMMA, anon_sym_RBRACK, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(276), 5, + ACTIONS(270), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -36382,10 +36161,1116 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [15763] = 3, + [15052] = 21, ACTIONS(3), 1, sym_comment, - ACTIONS(1015), 17, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1303), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(1010), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [15149] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(816), 1, + anon_sym_await, + ACTIONS(864), 1, + anon_sym_lambda, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1097), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1174), 2, + sym__expression_within_for_in_clause, + sym_lambda_within_for_in_clause, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(810), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [15246] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(361), 1, + sym_identifier, + ACTIONS(367), 1, + anon_sym_await, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + STATE(772), 1, + sym_template_string, + STATE(773), 1, + sym_primary_expression, + STATE(779), 1, + sym_string, + STATE(1278), 1, + sym_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(1012), 2, + sym__newline, + anon_sym_SEMI, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(363), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1126), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [15343] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(361), 1, + sym_identifier, + ACTIONS(367), 1, + anon_sym_await, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + STATE(772), 1, + sym_template_string, + STATE(773), 1, + sym_primary_expression, + STATE(779), 1, + sym_string, + STATE(1278), 1, + sym_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(1014), 2, + sym__newline, + anon_sym_SEMI, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(363), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1126), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [15440] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(816), 1, + anon_sym_await, + ACTIONS(864), 1, + anon_sym_lambda, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1097), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1135), 2, + sym__expression_within_for_in_clause, + sym_lambda_within_for_in_clause, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(810), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [15537] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1318), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(1016), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [15634] = 22, + ACTIONS(3), 1, + sym_comment, + ACTIONS(650), 1, + anon_sym_LPAREN, + ACTIONS(656), 1, + anon_sym_LBRACK, + ACTIONS(658), 1, + anon_sym_LBRACE, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(964), 1, + sym_identifier, + ACTIONS(972), 1, + anon_sym_not, + ACTIONS(974), 1, + anon_sym_lambda, + ACTIONS(976), 1, + anon_sym_await, + ACTIONS(992), 1, + anon_sym_COLON, + STATE(789), 1, + sym_primary_expression, + STATE(790), 1, + sym_string, + STATE(791), 1, + sym_template_string, + STATE(1208), 1, + sym_expression, + STATE(1547), 1, + sym_exception_list, + ACTIONS(660), 2, + sym_ellipsis, + sym_float, + ACTIONS(654), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(646), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(966), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1198), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(985), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [15733] = 22, + ACTIONS(3), 1, + sym_comment, + ACTIONS(656), 1, + anon_sym_LBRACK, + ACTIONS(658), 1, + anon_sym_LBRACE, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(964), 1, + sym_identifier, + ACTIONS(972), 1, + anon_sym_not, + ACTIONS(974), 1, + anon_sym_lambda, + ACTIONS(976), 1, + anon_sym_await, + ACTIONS(1002), 1, + anon_sym_LPAREN, + STATE(789), 1, + sym_primary_expression, + STATE(790), 1, + sym_string, + STATE(791), 1, + sym_template_string, + STATE(1192), 1, + sym_expression, + STATE(1478), 1, + sym_with_item, + STATE(1613), 1, + sym_with_clause, + ACTIONS(660), 2, + sym_ellipsis, + sym_float, + ACTIONS(654), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(646), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(966), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1198), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(985), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [15832] = 22, + ACTIONS(3), 1, + sym_comment, + ACTIONS(656), 1, + anon_sym_LBRACK, + ACTIONS(658), 1, + anon_sym_LBRACE, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(964), 1, + sym_identifier, + ACTIONS(972), 1, + anon_sym_not, + ACTIONS(974), 1, + anon_sym_lambda, + ACTIONS(976), 1, + anon_sym_await, + ACTIONS(1002), 1, + anon_sym_LPAREN, + STATE(789), 1, + sym_primary_expression, + STATE(790), 1, + sym_string, + STATE(791), 1, + sym_template_string, + STATE(1192), 1, + sym_expression, + STATE(1478), 1, + sym_with_item, + STATE(1622), 1, + sym_with_clause, + ACTIONS(660), 2, + sym_ellipsis, + sym_float, + ACTIONS(654), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(646), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(966), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1198), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(985), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [15931] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(816), 1, + anon_sym_await, + ACTIONS(864), 1, + anon_sym_lambda, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1097), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1222), 2, + sym__expression_within_for_in_clause, + sym_lambda_within_for_in_clause, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(810), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [16028] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(816), 1, + anon_sym_await, + ACTIONS(864), 1, + anon_sym_lambda, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1099), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1205), 2, + sym__expression_within_for_in_clause, + sym_lambda_within_for_in_clause, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(810), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [16125] = 22, + ACTIONS(3), 1, + sym_comment, + ACTIONS(650), 1, + anon_sym_LPAREN, + ACTIONS(656), 1, + anon_sym_LBRACK, + ACTIONS(658), 1, + anon_sym_LBRACE, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(964), 1, + sym_identifier, + ACTIONS(972), 1, + anon_sym_not, + ACTIONS(974), 1, + anon_sym_lambda, + ACTIONS(976), 1, + anon_sym_await, + ACTIONS(1018), 1, + anon_sym_RPAREN, + STATE(789), 1, + sym_primary_expression, + STATE(790), 1, + sym_string, + STATE(791), 1, + sym_template_string, + STATE(1192), 1, + sym_expression, + STATE(1522), 1, + sym_with_item, + ACTIONS(660), 2, + sym_ellipsis, + sym_float, + ACTIONS(654), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(646), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(966), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1198), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(985), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [16224] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1283), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(1020), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [16321] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1022), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1024), 39, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_elif, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_case, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [16381] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1026), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1028), 39, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_elif, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_case, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [16441] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1032), 17, anon_sym_as, anon_sym_STAR, anon_sym_GT_GT, @@ -36403,7 +37288,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_LT, anon_sym_LT, anon_sym_GT, - ACTIONS(1013), 35, + ACTIONS(1030), 35, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -36439,374 +37324,242 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_EQ, anon_sym_CARET_EQ, anon_sym_PIPE_EQ, - [15823] = 22, + [16501] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(631), 1, - anon_sym_LPAREN, - ACTIONS(639), 1, - anon_sym_LBRACK, - ACTIONS(641), 1, - anon_sym_LBRACE, - ACTIONS(647), 1, + ACTIONS(1038), 1, + anon_sym_except, + STATE(314), 2, + sym_except_clause, + aux_sym_try_statement_repeat1, + ACTIONS(1034), 13, sym__string_start, - ACTIONS(649), 1, sym__template_string_start, - ACTIONS(961), 1, - sym_identifier, - ACTIONS(969), 1, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1036), 36, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, anon_sym_not, - ACTIONS(971), 1, anon_sym_lambda, - ACTIONS(973), 1, + anon_sym_yield, + sym_integer, + sym_identifier, anon_sym_await, - ACTIONS(1017), 1, + sym_true, + sym_false, + sym_none, + [16565] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1045), 1, + anon_sym_except, + STATE(315), 2, + sym_except_group_clause, + aux_sym_try_statement_repeat2, + ACTIONS(1041), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1043), 36, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [16629] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1026), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1028), 39, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_elif, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_case, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [16689] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1050), 17, + anon_sym_as, + anon_sym_STAR, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR_STAR, + anon_sym_EQ, + anon_sym_AT, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1048), 35, + anon_sym_DOT, + anon_sym_LPAREN, anon_sym_RPAREN, - STATE(794), 1, - sym_string, - STATE(795), 1, - sym_template_string, - STATE(822), 1, - sym_primary_expression, - STATE(1200), 1, - sym_expression, - STATE(1501), 1, - sym_with_item, - ACTIONS(643), 2, - sym_ellipsis, - sym_float, - ACTIONS(637), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(629), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(965), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1176), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(953), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [15921] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, - anon_sym_LPAREN, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(801), 1, - sym_identifier, - ACTIONS(807), 1, - anon_sym_await, - ACTIONS(829), 1, - anon_sym_lambda, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1094), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(1111), 2, - sym__expression_within_for_in_clause, - sym_lambda_within_for_in_clause, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(805), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [16017] = 22, - ACTIONS(3), 1, - sym_comment, - ACTIONS(639), 1, - anon_sym_LBRACK, - ACTIONS(641), 1, - anon_sym_LBRACE, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - ACTIONS(961), 1, - sym_identifier, - ACTIONS(969), 1, - anon_sym_not, - ACTIONS(971), 1, - anon_sym_lambda, - ACTIONS(973), 1, - anon_sym_await, - ACTIONS(989), 1, - anon_sym_LPAREN, - STATE(794), 1, - sym_string, - STATE(795), 1, - sym_template_string, - STATE(822), 1, - sym_primary_expression, - STATE(1200), 1, - sym_expression, - STATE(1434), 1, - sym_with_item, - STATE(1670), 1, - sym_with_clause, - ACTIONS(643), 2, - sym_ellipsis, - sym_float, - ACTIONS(637), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(629), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(965), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1176), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(953), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [16115] = 22, - ACTIONS(3), 1, - sym_comment, - ACTIONS(631), 1, - anon_sym_LPAREN, - ACTIONS(639), 1, - anon_sym_LBRACK, - ACTIONS(641), 1, - anon_sym_LBRACE, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - ACTIONS(961), 1, - sym_identifier, - ACTIONS(969), 1, - anon_sym_not, - ACTIONS(971), 1, - anon_sym_lambda, - ACTIONS(973), 1, - anon_sym_await, - ACTIONS(987), 1, + anon_sym_COMMA, + anon_sym_if, anon_sym_COLON, - STATE(794), 1, - sym_string, - STATE(795), 1, - sym_template_string, - STATE(822), 1, - sym_primary_expression, - STATE(1204), 1, - sym_expression, - STATE(1548), 1, - sym_exception_list, - ACTIONS(643), 2, - sym_ellipsis, - sym_float, - ACTIONS(637), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(629), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(965), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1176), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(953), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [16213] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(949), 1, anon_sym_else, - ACTIONS(1023), 1, - anon_sym_elif, - STATE(321), 1, - aux_sym_if_statement_repeat1, - STATE(463), 1, - sym_elif_clause, - STATE(514), 1, - sym_else_clause, - ACTIONS(1019), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1021), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, anon_sym_async, anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, + anon_sym_in, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [16282] = 3, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [16749] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1027), 13, + ACTIONS(1054), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -36820,7 +37573,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1025), 38, + ACTIONS(1052), 39, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -36859,440 +37613,20 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [16341] = 3, + [16809] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(1031), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1029), 38, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_elif, + ACTIONS(978), 1, anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_case, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [16400] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(631), 1, - anon_sym_LPAREN, - ACTIONS(639), 1, - anon_sym_LBRACK, - ACTIONS(641), 1, - anon_sym_LBRACE, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - ACTIONS(961), 1, - sym_identifier, - ACTIONS(969), 1, - anon_sym_not, - ACTIONS(971), 1, - anon_sym_lambda, - ACTIONS(973), 1, - anon_sym_await, - STATE(794), 1, - sym_string, - STATE(795), 1, - sym_template_string, - STATE(822), 1, - sym_primary_expression, - STATE(1200), 1, - sym_expression, - STATE(1501), 1, - sym_with_item, - ACTIONS(643), 2, - sym_ellipsis, - sym_float, - ACTIONS(637), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(629), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(965), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1176), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(953), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [16495] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(949), 1, - anon_sym_else, - ACTIONS(1023), 1, + ACTIONS(1060), 1, anon_sym_elif, - STATE(354), 1, - aux_sym_if_statement_repeat1, - STATE(463), 1, - sym_elif_clause, - STATE(525), 1, - sym_else_clause, - ACTIONS(1033), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1035), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [16564] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1037), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1039), 38, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_elif, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_case, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [16623] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1027), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1025), 38, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_elif, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_case, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [16682] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(941), 1, - anon_sym_else, - ACTIONS(1041), 1, - anon_sym_elif, - STATE(326), 1, + STATE(392), 1, aux_sym_if_statement_repeat1, STATE(473), 1, sym_elif_clause, - STATE(558), 1, + STATE(566), 1, sym_else_clause, - ACTIONS(1019), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1021), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [16751] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1045), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1043), 38, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_elif, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_case, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [16810] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(949), 1, - anon_sym_else, - ACTIONS(1023), 1, - anon_sym_elif, - STATE(354), 1, - aux_sym_if_statement_repeat1, - STATE(463), 1, - sym_elif_clause, - STATE(596), 1, - sym_else_clause, - ACTIONS(1047), 13, + ACTIONS(1056), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -37306,7 +37640,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1049), 33, + ACTIONS(1058), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -37343,20 +37678,20 @@ static const uint16_t ts_small_parse_table[] = { [16879] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(949), 1, + ACTIONS(952), 1, anon_sym_else, - ACTIONS(1023), 1, + ACTIONS(1066), 1, anon_sym_elif, - STATE(316), 1, + STATE(321), 1, aux_sym_if_statement_repeat1, - STATE(463), 1, + STATE(479), 1, sym_elif_clause, - STATE(597), 1, + STATE(549), 1, sym_else_clause, - ACTIONS(1051), 13, + ACTIONS(1064), 13, + sym__dedent, sym__string_start, sym__template_string_start, - ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -37367,7 +37702,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1053), 33, + ACTIONS(1062), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -37401,63 +37737,188 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [16948] = 21, + [16949] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(631), 1, - anon_sym_LPAREN, - ACTIONS(639), 1, - anon_sym_LBRACK, - ACTIONS(641), 1, - anon_sym_LBRACE, - ACTIONS(647), 1, + ACTIONS(952), 1, + anon_sym_else, + ACTIONS(1066), 1, + anon_sym_elif, + STATE(350), 1, + aux_sym_if_statement_repeat1, + STATE(479), 1, + sym_elif_clause, + STATE(563), 1, + sym_else_clause, + ACTIONS(1070), 13, + sym__dedent, sym__string_start, - ACTIONS(649), 1, sym__template_string_start, - ACTIONS(961), 1, - sym_identifier, - ACTIONS(969), 1, - anon_sym_not, - ACTIONS(971), 1, - anon_sym_lambda, - ACTIONS(973), 1, - anon_sym_await, - STATE(794), 1, - sym_string, - STATE(795), 1, - sym_template_string, - STATE(822), 1, - sym_primary_expression, - STATE(1186), 1, - sym_expression, - STATE(1565), 1, - sym_exception_list, - ACTIONS(643), 2, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(637), 3, + ACTIONS(1068), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [17019] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(952), 1, + anon_sym_else, + ACTIONS(1066), 1, + anon_sym_elif, + STATE(337), 1, + aux_sym_if_statement_repeat1, + STATE(479), 1, + sym_elif_clause, + STATE(565), 1, + sym_else_clause, + ACTIONS(1074), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1072), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [17089] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(650), 1, + anon_sym_LPAREN, + ACTIONS(656), 1, + anon_sym_LBRACK, + ACTIONS(658), 1, + anon_sym_LBRACE, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(964), 1, + sym_identifier, + ACTIONS(972), 1, + anon_sym_not, + ACTIONS(974), 1, + anon_sym_lambda, + ACTIONS(976), 1, + anon_sym_await, + STATE(789), 1, + sym_primary_expression, + STATE(790), 1, + sym_string, + STATE(791), 1, + sym_template_string, + STATE(1193), 1, + sym_expression, + STATE(1564), 1, + sym_exception_list, + ACTIONS(660), 2, + sym_ellipsis, + sym_float, + ACTIONS(654), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(629), 4, + ACTIONS(646), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(965), 5, + ACTIONS(966), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1176), 6, + STATE(1198), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(953), 17, + STATE(985), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -37475,76 +37936,18 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [17043] = 10, + [17185] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(270), 1, - anon_sym_COMMA, - ACTIONS(278), 1, - anon_sym_COLON_EQ, - ACTIONS(1055), 1, - anon_sym_for, - ACTIONS(1057), 1, - anon_sym_with, - ACTIONS(1059), 1, - anon_sym_def, - ACTIONS(280), 2, - anon_sym_COLON, - anon_sym_EQ, - ACTIONS(302), 13, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - ACTIONS(265), 15, - anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT, - anon_sym_GT, - ACTIONS(298), 16, - sym__newline, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_if, - anon_sym_in, - anon_sym_LBRACK, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [17116] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1045), 13, + ACTIONS(1076), 1, + anon_sym_except, + STATE(324), 2, + sym_except_clause, + aux_sym_try_statement_repeat1, + ACTIONS(1034), 13, + sym__dedent, sym__string_start, sym__template_string_start, - ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -37555,7 +37958,62 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1043), 38, + ACTIONS(1036), 36, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [17249] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1022), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1024), 39, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -37594,137 +38052,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [17175] = 8, + [17309] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(941), 1, - anon_sym_else, - ACTIONS(1041), 1, - anon_sym_elif, - STATE(399), 1, - aux_sym_if_statement_repeat1, - STATE(473), 1, - sym_elif_clause, - STATE(568), 1, - sym_else_clause, - ACTIONS(1047), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1049), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [17244] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(941), 1, - anon_sym_else, - ACTIONS(1041), 1, - anon_sym_elif, - STATE(333), 1, - aux_sym_if_statement_repeat1, - STATE(473), 1, - sym_elif_clause, - STATE(569), 1, - sym_else_clause, - ACTIONS(1051), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1053), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [17313] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1065), 1, - anon_sym_except, - STATE(328), 2, - sym_except_clause, - aux_sym_try_statement_repeat1, - ACTIONS(1061), 13, + ACTIONS(1079), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -37738,7 +38069,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1063), 35, + ACTIONS(1081), 39, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -37751,14 +38083,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_break, anon_sym_continue, anon_sym_if, + anon_sym_elif, anon_sym_else, anon_sym_async, anon_sym_for, anon_sym_while, anon_sym_try, + anon_sym_except, anon_sym_finally, anon_sym_with, anon_sym_match, + anon_sym_case, anon_sym_def, anon_sym_global, anon_sym_nonlocal, @@ -37774,15 +38109,20 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [17376] = 5, + [17369] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(1072), 1, - anon_sym_except, - STATE(329), 2, - sym_except_group_clause, - aux_sym_try_statement_repeat2, - ACTIONS(1068), 13, + ACTIONS(978), 1, + anon_sym_else, + ACTIONS(1060), 1, + anon_sym_elif, + STATE(392), 1, + aux_sym_if_statement_repeat1, + STATE(473), 1, + sym_elif_clause, + STATE(520), 1, + sym_else_clause, + ACTIONS(1070), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -37796,7 +38136,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1070), 35, + ACTIONS(1068), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -37809,12 +38150,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_break, anon_sym_continue, anon_sym_if, - anon_sym_else, anon_sym_async, anon_sym_for, anon_sym_while, anon_sym_try, - anon_sym_finally, anon_sym_with, anon_sym_match, anon_sym_def, @@ -37832,15 +38171,129 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [17439] = 5, + [17439] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1075), 1, + ACTIONS(1054), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1052), 39, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_elif, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, anon_sym_except, - STATE(330), 2, - sym_except_clause, - aux_sym_try_statement_repeat1, - ACTIONS(1061), 13, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_case, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [17499] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(978), 1, + anon_sym_else, + ACTIONS(1060), 1, + anon_sym_elif, + STATE(319), 1, + aux_sym_if_statement_repeat1, + STATE(473), 1, + sym_elif_clause, + STATE(521), 1, + sym_else_clause, + ACTIONS(1074), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1072), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [17569] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1079), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -37854,7 +38307,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1063), 35, + ACTIONS(1081), 39, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -37867,14 +38321,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_break, anon_sym_continue, anon_sym_if, + anon_sym_elif, anon_sym_else, anon_sym_async, anon_sym_for, anon_sym_while, anon_sym_try, + anon_sym_except, anon_sym_finally, anon_sym_with, anon_sym_match, + anon_sym_case, anon_sym_def, anon_sym_global, anon_sym_nonlocal, @@ -37890,15 +38347,15 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [17502] = 5, + [17629] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1078), 1, + ACTIONS(1083), 1, anon_sym_except, STATE(331), 2, sym_except_group_clause, aux_sym_try_statement_repeat2, - ACTIONS(1068), 13, + ACTIONS(1041), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -37912,7 +38369,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1070), 35, + ACTIONS(1043), 36, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -37948,127 +38406,20 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [17565] = 3, + [17693] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(1031), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1029), 38, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_elif, + ACTIONS(978), 1, anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_case, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [17624] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(941), 1, - anon_sym_else, - ACTIONS(1041), 1, + ACTIONS(1060), 1, anon_sym_elif, - STATE(399), 1, + STATE(327), 1, aux_sym_if_statement_repeat1, STATE(473), 1, sym_elif_clause, - STATE(582), 1, + STATE(529), 1, sym_else_clause, - ACTIONS(1033), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1035), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [17693] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1081), 13, + ACTIONS(1064), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -38082,7 +38433,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1083), 38, + ACTIONS(1062), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -38095,17 +38447,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_break, anon_sym_continue, anon_sym_if, - anon_sym_elif, - anon_sym_else, anon_sym_async, anon_sym_for, anon_sym_while, anon_sym_try, - anon_sym_except, - anon_sym_finally, anon_sym_with, anon_sym_match, - anon_sym_case, anon_sym_def, anon_sym_global, anon_sym_nonlocal, @@ -38121,10 +38468,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [17752] = 3, + [17763] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1037), 13, + ACTIONS(1088), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -38138,7 +38485,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1039), 38, + ACTIONS(1086), 39, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -38177,13 +38525,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [17811] = 3, + [17823] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1081), 13, - sym__dedent, + ACTIONS(1088), 13, sym__string_start, sym__template_string_start, + ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -38194,7 +38542,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1083), 38, + ACTIONS(1086), 39, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -38233,63 +38582,64 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [17870] = 21, + [17883] = 21, ACTIONS(3), 1, sym_comment, - ACTIONS(631), 1, + ACTIONS(650), 1, anon_sym_LPAREN, - ACTIONS(639), 1, + ACTIONS(656), 1, anon_sym_LBRACK, - ACTIONS(641), 1, + ACTIONS(658), 1, anon_sym_LBRACE, - ACTIONS(647), 1, + ACTIONS(664), 1, sym__string_start, - ACTIONS(649), 1, + ACTIONS(666), 1, sym__template_string_start, - ACTIONS(961), 1, + ACTIONS(964), 1, sym_identifier, - ACTIONS(969), 1, + ACTIONS(972), 1, anon_sym_not, - ACTIONS(971), 1, + ACTIONS(974), 1, anon_sym_lambda, - ACTIONS(973), 1, + ACTIONS(976), 1, anon_sym_await, - STATE(794), 1, - sym_string, - STATE(795), 1, - sym_template_string, - STATE(822), 1, + STATE(789), 1, sym_primary_expression, - STATE(1205), 1, + STATE(790), 1, + sym_string, + STATE(791), 1, + sym_template_string, + STATE(1209), 1, sym_expression, - STATE(1550), 1, + STATE(1551), 1, sym_exception_list, - ACTIONS(643), 2, + ACTIONS(660), 2, sym_ellipsis, sym_float, - ACTIONS(637), 3, + ACTIONS(654), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(629), 4, + ACTIONS(646), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(965), 5, + ACTIONS(966), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1176), 6, + STATE(1198), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(953), 17, + STATE(985), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -38307,124 +38657,64 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [17965] = 10, + [17979] = 21, ACTIONS(3), 1, sym_comment, - ACTIONS(270), 1, - anon_sym_COMMA, - ACTIONS(278), 1, - anon_sym_COLON_EQ, - ACTIONS(1085), 1, - anon_sym_for, - ACTIONS(1087), 1, - anon_sym_with, - ACTIONS(1089), 1, - anon_sym_def, - ACTIONS(280), 2, - anon_sym_COLON, - anon_sym_EQ, - ACTIONS(302), 13, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - ACTIONS(265), 15, - anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT, - anon_sym_GT, - ACTIONS(298), 16, - sym__newline, - anon_sym_DOT, + ACTIONS(650), 1, anon_sym_LPAREN, - anon_sym_if, - anon_sym_in, + ACTIONS(656), 1, anon_sym_LBRACK, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [18038] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, + ACTIONS(658), 1, anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, + ACTIONS(664), 1, sym__string_start, - ACTIONS(83), 1, + ACTIONS(666), 1, sym__template_string_start, - ACTIONS(314), 1, + ACTIONS(964), 1, sym_identifier, - ACTIONS(320), 1, + ACTIONS(972), 1, + anon_sym_not, + ACTIONS(974), 1, + anon_sym_lambda, + ACTIONS(976), 1, anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - STATE(763), 1, - sym_template_string, - STATE(779), 1, + STATE(789), 1, sym_primary_expression, - STATE(782), 1, + STATE(790), 1, sym_string, - STATE(1224), 1, + STATE(791), 1, + sym_template_string, + STATE(1192), 1, sym_expression, - ACTIONS(75), 2, + STATE(1522), 1, + sym_with_item, + ACTIONS(660), 2, sym_ellipsis, sym_float, - ACTIONS(47), 3, + ACTIONS(654), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(77), 4, + ACTIONS(646), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(316), 5, + ACTIONS(966), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1158), 6, + STATE(1198), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(908), 17, + STATE(985), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -38442,1027 +38732,23 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [18130] = 20, + [18075] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, - anon_sym_LPAREN, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(693), 1, - anon_sym_lambda, - ACTIONS(801), 1, - sym_identifier, - ACTIONS(807), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1030), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(805), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [18222] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(609), 1, - anon_sym_LPAREN, - ACTIONS(617), 1, - anon_sym_LBRACK, - ACTIONS(619), 1, - anon_sym_LBRACE, - ACTIONS(625), 1, - sym__string_start, - ACTIONS(627), 1, - sym__template_string_start, - ACTIONS(749), 1, - sym_identifier, - ACTIONS(755), 1, - anon_sym_not, - ACTIONS(757), 1, - anon_sym_lambda, - ACTIONS(759), 1, - anon_sym_await, - STATE(766), 1, - sym_primary_expression, - STATE(767), 1, - sym_string, - STATE(768), 1, - sym_template_string, - STATE(1112), 1, - sym_expression, - ACTIONS(621), 2, - sym_ellipsis, - sym_float, - ACTIONS(615), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(607), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(753), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1129), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(924), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [18314] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(314), 1, - sym_identifier, - ACTIONS(320), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - STATE(763), 1, - sym_template_string, - STATE(779), 1, - sym_primary_expression, - STATE(782), 1, - sym_string, - STATE(1324), 1, - sym_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(316), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1158), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(908), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [18406] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(314), 1, - sym_identifier, - ACTIONS(320), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - STATE(763), 1, - sym_template_string, - STATE(779), 1, - sym_primary_expression, - STATE(782), 1, - sym_string, - STATE(1135), 1, - sym_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(316), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1158), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(908), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [18498] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1071), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [18590] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1282), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [18682] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, - anon_sym_LPAREN, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(693), 1, - anon_sym_lambda, - ACTIONS(801), 1, - sym_identifier, - ACTIONS(807), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1155), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(805), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [18774] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1296), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [18866] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, - anon_sym_LPAREN, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(693), 1, - anon_sym_lambda, - ACTIONS(801), 1, - sym_identifier, - ACTIONS(807), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1214), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(805), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [18958] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(314), 1, - sym_identifier, - ACTIONS(320), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - STATE(763), 1, - sym_template_string, - STATE(779), 1, - sym_primary_expression, - STATE(782), 1, - sym_string, - STATE(1197), 1, - sym_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(316), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1158), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(908), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [19050] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1297), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [19142] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(314), 1, - sym_identifier, - ACTIONS(320), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - STATE(763), 1, - sym_template_string, - STATE(779), 1, - sym_primary_expression, - STATE(782), 1, - sym_string, - STATE(1121), 1, - sym_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(316), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1158), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(908), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [19234] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(314), 1, - sym_identifier, - ACTIONS(320), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - STATE(763), 1, - sym_template_string, - STATE(779), 1, - sym_primary_expression, - STATE(782), 1, - sym_string, - STATE(1292), 1, - sym_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(316), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1158), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(908), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [19326] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(314), 1, - sym_identifier, - ACTIONS(320), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - STATE(763), 1, - sym_template_string, - STATE(779), 1, - sym_primary_expression, - STATE(782), 1, - sym_string, - STATE(1123), 1, - sym_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(316), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1158), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(908), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [19418] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1095), 1, + ACTIONS(952), 1, + anon_sym_else, + ACTIONS(1066), 1, anon_sym_elif, - STATE(354), 1, + STATE(350), 1, aux_sym_if_statement_repeat1, - STATE(463), 1, + STATE(479), 1, sym_elif_clause, - ACTIONS(1091), 13, + STATE(578), 1, + sym_else_clause, + ACTIONS(1056), 13, + sym__dedent, sym__string_start, sym__template_string_start, - ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -39473,7 +38759,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1093), 34, + ACTIONS(1058), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -39486,7 +38773,6 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_break, anon_sym_continue, anon_sym_if, - anon_sym_else, anon_sym_async, anon_sym_for, anon_sym_while, @@ -39508,1418 +38794,62 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [19482] = 20, + [18145] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(51), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(83), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(314), 1, - sym_identifier, - ACTIONS(320), 1, - anon_sym_await, - ACTIONS(568), 1, + ACTIONS(602), 1, anon_sym_LPAREN, - ACTIONS(574), 1, + ACTIONS(608), 1, anon_sym_LBRACK, - STATE(763), 1, - sym_template_string, - STATE(779), 1, - sym_primary_expression, - STATE(782), 1, - sym_string, - STATE(1279), 1, - sym_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(316), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1158), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(908), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [19574] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(631), 1, - anon_sym_LPAREN, - ACTIONS(639), 1, - anon_sym_LBRACK, - ACTIONS(641), 1, - anon_sym_LBRACE, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - ACTIONS(961), 1, - sym_identifier, - ACTIONS(969), 1, + ACTIONS(680), 1, anon_sym_not, - ACTIONS(971), 1, + ACTIONS(682), 1, anon_sym_lambda, - ACTIONS(973), 1, - anon_sym_await, - STATE(794), 1, - sym_string, - STATE(795), 1, - sym_template_string, - STATE(822), 1, - sym_primary_expression, - STATE(1188), 1, - sym_expression, - ACTIONS(643), 2, - sym_ellipsis, - sym_float, - ACTIONS(637), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(629), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(965), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1176), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(953), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [19666] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, - anon_sym_LPAREN, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(693), 1, - anon_sym_lambda, - ACTIONS(801), 1, + ACTIONS(808), 1, sym_identifier, - ACTIONS(807), 1, + ACTIONS(816), 1, anon_sym_await, - STATE(621), 1, + STATE(694), 1, sym_string, - STATE(624), 1, + STATE(698), 1, sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1087), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(805), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [19758] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1228), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [19850] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(314), 1, - sym_identifier, - ACTIONS(320), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - STATE(763), 1, - sym_template_string, - STATE(779), 1, - sym_primary_expression, - STATE(782), 1, - sym_string, - STATE(1141), 1, - sym_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(316), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1158), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(908), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [19942] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(314), 1, - sym_identifier, - ACTIONS(320), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - STATE(763), 1, - sym_template_string, - STATE(779), 1, - sym_primary_expression, - STATE(782), 1, - sym_string, - STATE(1144), 1, - sym_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(316), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1158), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(908), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [20034] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, - anon_sym_LPAREN, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(693), 1, - anon_sym_lambda, - ACTIONS(801), 1, - sym_identifier, - ACTIONS(807), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1064), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(805), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [20126] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1189), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [20218] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(314), 1, - sym_identifier, - ACTIONS(320), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - STATE(763), 1, - sym_template_string, - STATE(779), 1, - sym_primary_expression, - STATE(782), 1, - sym_string, - STATE(1285), 1, - sym_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(316), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1158), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(908), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [20310] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, - anon_sym_LPAREN, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(693), 1, - anon_sym_lambda, - ACTIONS(801), 1, - sym_identifier, - ACTIONS(807), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1062), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(805), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [20402] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(314), 1, - sym_identifier, - ACTIONS(320), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - STATE(763), 1, - sym_template_string, - STATE(779), 1, - sym_primary_expression, - STATE(782), 1, - sym_string, - STATE(1226), 1, - sym_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(316), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1158), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(908), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [20494] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(314), 1, - sym_identifier, - ACTIONS(320), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - STATE(763), 1, - sym_template_string, - STATE(779), 1, - sym_primary_expression, - STATE(782), 1, - sym_string, - STATE(1145), 1, - sym_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(316), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1158), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(908), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [20586] = 9, - ACTIONS(3), 1, - sym_comment, - ACTIONS(270), 1, - anon_sym_COMMA, - ACTIONS(278), 1, - anon_sym_COLON_EQ, - ACTIONS(1098), 1, - sym__string_start, - STATE(1393), 1, - sym_string, - ACTIONS(280), 2, - anon_sym_COLON, - anon_sym_EQ, - ACTIONS(302), 13, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - ACTIONS(265), 15, - anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT, - anon_sym_GT, - ACTIONS(298), 16, - sym__newline, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_if, - anon_sym_in, - anon_sym_LBRACK, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [20656] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(314), 1, - sym_identifier, - ACTIONS(320), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - STATE(763), 1, - sym_template_string, - STATE(779), 1, - sym_primary_expression, - STATE(782), 1, - sym_string, - STATE(1156), 1, - sym_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(316), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1158), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(908), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [20748] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, - anon_sym_LPAREN, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(693), 1, - anon_sym_lambda, - ACTIONS(801), 1, - sym_identifier, - ACTIONS(807), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1068), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(805), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [20840] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1096), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [20932] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(314), 1, - sym_identifier, - ACTIONS(320), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - STATE(763), 1, - sym_template_string, - STATE(779), 1, - sym_primary_expression, - STATE(782), 1, - sym_string, - STATE(1109), 1, - sym_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(316), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1158), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(908), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [21024] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1262), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [21116] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1274), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [21208] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, - anon_sym_LPAREN, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(693), 1, - anon_sym_lambda, - ACTIONS(801), 1, - sym_identifier, - ACTIONS(807), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, + STATE(705), 1, sym_primary_expression, STATE(1069), 1, sym_expression, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(601), 3, + ACTIONS(606), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(805), 5, + ACTIONS(810), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -40937,61 +38867,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [21300] = 20, + [18238] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(51), 1, + ACTIONS(53), 1, anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, sym__template_string_start, - ACTIONS(314), 1, + ACTIONS(361), 1, sym_identifier, - ACTIONS(320), 1, + ACTIONS(367), 1, anon_sym_await, - ACTIONS(568), 1, + ACTIONS(575), 1, anon_sym_LPAREN, - ACTIONS(574), 1, + ACTIONS(579), 1, anon_sym_LBRACK, - STATE(763), 1, + STATE(772), 1, sym_template_string, + STATE(773), 1, + sym_primary_expression, STATE(779), 1, - sym_primary_expression, - STATE(782), 1, sym_string, - STATE(1258), 1, + STATE(1112), 1, sym_expression, - ACTIONS(75), 2, + ACTIONS(77), 2, sym_ellipsis, sym_float, - ACTIONS(47), 3, + ACTIONS(49), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(77), 4, + ACTIONS(79), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(316), 5, + ACTIONS(363), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1158), 6, + STATE(1126), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(908), 17, + STATE(950), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -41009,61 +38940,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [21392] = 20, + [18331] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, + ACTIONS(53), 1, anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, - anon_sym_LPAREN, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, + ACTIONS(71), 1, anon_sym_not, - ACTIONS(693), 1, + ACTIONS(73), 1, anon_sym_lambda, - ACTIONS(801), 1, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(361), 1, sym_identifier, - ACTIONS(807), 1, + ACTIONS(367), 1, anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + STATE(772), 1, sym_template_string, - STATE(725), 1, + STATE(773), 1, sym_primary_expression, - STATE(1074), 1, + STATE(779), 1, + sym_string, + STATE(1241), 1, sym_expression, - ACTIONS(304), 2, + ACTIONS(77), 2, sym_ellipsis, sym_float, - ACTIONS(601), 3, + ACTIONS(49), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(79), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(805), 5, + ACTIONS(363), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1126), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(950), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -41081,277 +39013,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [21484] = 20, + [18424] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, + ACTIONS(53), 1, anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, + ACTIONS(71), 1, anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1231), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [21576] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(361), 1, sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, + ACTIONS(367), 1, anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, + ACTIONS(575), 1, anon_sym_LPAREN, - ACTIONS(591), 1, + ACTIONS(579), 1, anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, + STATE(772), 1, sym_template_string, - STATE(719), 1, + STATE(773), 1, sym_primary_expression, - STATE(1166), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [21668] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(631), 1, - anon_sym_LPAREN, - ACTIONS(639), 1, - anon_sym_LBRACK, - ACTIONS(641), 1, - anon_sym_LBRACE, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - ACTIONS(961), 1, - sym_identifier, - ACTIONS(969), 1, - anon_sym_not, - ACTIONS(971), 1, - anon_sym_lambda, - ACTIONS(973), 1, - anon_sym_await, - STATE(794), 1, + STATE(779), 1, sym_string, - STATE(795), 1, - sym_template_string, - STATE(822), 1, - sym_primary_expression, - STATE(1192), 1, - sym_expression, - ACTIONS(643), 2, - sym_ellipsis, - sym_float, - ACTIONS(637), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(629), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(965), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1176), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(953), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [21760] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, STATE(1295), 1, sym_expression, - ACTIONS(304), 2, + ACTIONS(77), 2, sym_ellipsis, sym_float, - ACTIONS(296), 3, + ACTIONS(49), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(79), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(276), 5, + ACTIONS(363), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1126), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(950), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -41369,133 +39086,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [21852] = 20, + [18517] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(631), 1, - anon_sym_LPAREN, - ACTIONS(639), 1, - anon_sym_LBRACK, - ACTIONS(641), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(647), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(649), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(961), 1, - sym_identifier, - ACTIONS(969), 1, - anon_sym_not, - ACTIONS(971), 1, - anon_sym_lambda, - ACTIONS(973), 1, - anon_sym_await, - STATE(794), 1, - sym_string, - STATE(795), 1, - sym_template_string, - STATE(822), 1, - sym_primary_expression, - STATE(1193), 1, - sym_expression, - ACTIONS(643), 2, - sym_ellipsis, - sym_float, - ACTIONS(637), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(629), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(965), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1176), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(953), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [21944] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(631), 1, + ACTIONS(602), 1, anon_sym_LPAREN, - ACTIONS(639), 1, + ACTIONS(608), 1, anon_sym_LBRACK, - ACTIONS(641), 1, - anon_sym_LBRACE, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - ACTIONS(961), 1, - sym_identifier, - ACTIONS(969), 1, + ACTIONS(680), 1, anon_sym_not, - ACTIONS(971), 1, + ACTIONS(682), 1, anon_sym_lambda, - ACTIONS(973), 1, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(816), 1, anon_sym_await, - STATE(794), 1, + STATE(694), 1, sym_string, - STATE(795), 1, + STATE(698), 1, sym_template_string, - STATE(822), 1, + STATE(705), 1, sym_primary_expression, - STATE(1194), 1, + STATE(1072), 1, sym_expression, - ACTIONS(643), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(637), 3, + ACTIONS(606), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(629), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(965), 5, + ACTIONS(810), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1176), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(953), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -41513,61 +39159,282 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [22036] = 20, + [18610] = 21, ACTIONS(3), 1, sym_comment, - ACTIONS(51), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(69), 1, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, anon_sym_not, + ACTIONS(1090), 1, + sym_identifier, + ACTIONS(1094), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1109), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(470), 2, + sym_attribute, + sym_subscript, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(1092), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 15, + sym_binary_operator, + sym_unary_operator, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [18705] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1268), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [18798] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1386), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [18891] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, sym__template_string_start, - ACTIONS(314), 1, + ACTIONS(361), 1, sym_identifier, - ACTIONS(320), 1, + ACTIONS(367), 1, anon_sym_await, - ACTIONS(568), 1, + ACTIONS(575), 1, anon_sym_LPAREN, - ACTIONS(574), 1, + ACTIONS(579), 1, anon_sym_LBRACK, - STATE(763), 1, + STATE(772), 1, sym_template_string, + STATE(773), 1, + sym_primary_expression, STATE(779), 1, - sym_primary_expression, - STATE(782), 1, sym_string, - STATE(1269), 1, + STATE(1123), 1, sym_expression, - ACTIONS(75), 2, + ACTIONS(77), 2, sym_ellipsis, sym_float, - ACTIONS(47), 3, + ACTIONS(49), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(77), 4, + ACTIONS(79), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(316), 5, + ACTIONS(363), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1158), 6, + STATE(1126), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(908), 17, + STATE(950), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -41585,134 +39452,125 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [22128] = 21, + [18984] = 10, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, + ACTIONS(277), 1, + anon_sym_COMMA, + ACTIONS(283), 1, + anon_sym_COLON_EQ, + ACTIONS(1096), 1, + anon_sym_for, + ACTIONS(1098), 1, + anon_sym_with, ACTIONS(1100), 1, - sym_identifier, - ACTIONS(1104), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1096), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(509), 2, - sym_attribute, - sym_subscript, - ACTIONS(296), 3, + anon_sym_def, + ACTIONS(285), 2, + anon_sym_COLON, + anon_sym_EQ, + ACTIONS(307), 13, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + ACTIONS(272), 15, + anon_sym_STAR, + anon_sym_GT_GT, + anon_sym_PIPE, anon_sym_DASH, anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(1102), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 15, - sym_binary_operator, - sym_unary_operator, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [22222] = 20, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT, + anon_sym_GT, + ACTIONS(303), 16, + sym__newline, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_if, + anon_sym_in, + anon_sym_LBRACK, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [19057] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(263), 1, + ACTIONS(268), 1, sym_identifier, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(300), 1, + ACTIONS(305), 1, anon_sym_lambda, - ACTIONS(308), 1, + ACTIONS(313), 1, anon_sym_await, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(578), 1, + ACTIONS(585), 1, anon_sym_LPAREN, - ACTIONS(591), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(747), 1, + ACTIONS(768), 1, anon_sym_not, - STATE(621), 1, + STATE(694), 1, sym_string, - STATE(624), 1, + STATE(698), 1, sym_template_string, - STATE(719), 1, + STATE(704), 1, sym_primary_expression, - STATE(1322), 1, + STATE(1331), 1, sym_expression, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(276), 5, + ACTIONS(270), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -41730,349 +39588,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [22314] = 20, + [19150] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(631), 1, - anon_sym_LPAREN, - ACTIONS(639), 1, - anon_sym_LBRACK, - ACTIONS(641), 1, - anon_sym_LBRACE, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - ACTIONS(961), 1, + ACTIONS(268), 1, sym_identifier, - ACTIONS(969), 1, - anon_sym_not, - ACTIONS(971), 1, - anon_sym_lambda, - ACTIONS(973), 1, - anon_sym_await, - STATE(794), 1, - sym_string, - STATE(795), 1, - sym_template_string, - STATE(822), 1, - sym_primary_expression, - STATE(1195), 1, - sym_expression, - ACTIONS(643), 2, - sym_ellipsis, - sym_float, - ACTIONS(637), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(629), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(965), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1176), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(953), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [22406] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(631), 1, - anon_sym_LPAREN, - ACTIONS(639), 1, - anon_sym_LBRACK, - ACTIONS(641), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - ACTIONS(961), 1, - sym_identifier, - ACTIONS(969), 1, - anon_sym_not, - ACTIONS(971), 1, + ACTIONS(305), 1, anon_sym_lambda, - ACTIONS(973), 1, + ACTIONS(313), 1, anon_sym_await, - STATE(794), 1, - sym_string, - STATE(795), 1, - sym_template_string, - STATE(822), 1, - sym_primary_expression, - STATE(1208), 1, - sym_expression, - ACTIONS(643), 2, - sym_ellipsis, - sym_float, - ACTIONS(637), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(629), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(965), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1176), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(953), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [22498] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(631), 1, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, anon_sym_LPAREN, - ACTIONS(639), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(641), 1, - anon_sym_LBRACE, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - ACTIONS(961), 1, - sym_identifier, - ACTIONS(969), 1, + ACTIONS(768), 1, anon_sym_not, - ACTIONS(971), 1, - anon_sym_lambda, - ACTIONS(973), 1, - anon_sym_await, - STATE(794), 1, + STATE(694), 1, sym_string, - STATE(795), 1, + STATE(698), 1, sym_template_string, - STATE(822), 1, + STATE(704), 1, sym_primary_expression, - STATE(1209), 1, - sym_expression, - ACTIONS(643), 2, - sym_ellipsis, - sym_float, - ACTIONS(637), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(629), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(965), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1176), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(953), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [22590] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, - anon_sym_LPAREN, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(691), 1, - anon_sym_not, - ACTIONS(693), 1, - anon_sym_lambda, - ACTIONS(801), 1, - sym_identifier, - ACTIONS(807), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(725), 1, - sym_primary_expression, - STATE(1085), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(805), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [22682] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(609), 1, - anon_sym_LPAREN, - ACTIONS(617), 1, - anon_sym_LBRACK, - ACTIONS(619), 1, - anon_sym_LBRACE, - ACTIONS(625), 1, - sym__string_start, - ACTIONS(627), 1, - sym__template_string_start, - ACTIONS(749), 1, - sym_identifier, - ACTIONS(755), 1, - anon_sym_not, - ACTIONS(757), 1, - anon_sym_lambda, - ACTIONS(759), 1, - anon_sym_await, - STATE(766), 1, - sym_primary_expression, - STATE(767), 1, - sym_string, - STATE(768), 1, - sym_template_string, STATE(1125), 1, sym_expression, - ACTIONS(621), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(615), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(607), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(753), 5, + ACTIONS(270), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1129), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(924), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -42090,592 +39661,16 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [22774] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1030), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [22866] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(609), 1, - anon_sym_LPAREN, - ACTIONS(617), 1, - anon_sym_LBRACK, - ACTIONS(619), 1, - anon_sym_LBRACE, - ACTIONS(625), 1, - sym__string_start, - ACTIONS(627), 1, - sym__template_string_start, - ACTIONS(749), 1, - sym_identifier, - ACTIONS(755), 1, - anon_sym_not, - ACTIONS(757), 1, - anon_sym_lambda, - ACTIONS(759), 1, - anon_sym_await, - STATE(766), 1, - sym_primary_expression, - STATE(767), 1, - sym_string, - STATE(768), 1, - sym_template_string, - STATE(1165), 1, - sym_expression, - ACTIONS(621), 2, - sym_ellipsis, - sym_float, - ACTIONS(615), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(607), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(753), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1129), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(924), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [22958] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(609), 1, - anon_sym_LPAREN, - ACTIONS(617), 1, - anon_sym_LBRACK, - ACTIONS(619), 1, - anon_sym_LBRACE, - ACTIONS(625), 1, - sym__string_start, - ACTIONS(627), 1, - sym__template_string_start, - ACTIONS(749), 1, - sym_identifier, - ACTIONS(755), 1, - anon_sym_not, - ACTIONS(757), 1, - anon_sym_lambda, - ACTIONS(759), 1, - anon_sym_await, - STATE(766), 1, - sym_primary_expression, - STATE(767), 1, - sym_string, - STATE(768), 1, - sym_template_string, - STATE(1103), 1, - sym_expression, - ACTIONS(621), 2, - sym_ellipsis, - sym_float, - ACTIONS(615), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(607), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(753), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1129), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(924), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [23050] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(609), 1, - anon_sym_LPAREN, - ACTIONS(617), 1, - anon_sym_LBRACK, - ACTIONS(619), 1, - anon_sym_LBRACE, - ACTIONS(625), 1, - sym__string_start, - ACTIONS(627), 1, - sym__template_string_start, - ACTIONS(749), 1, - sym_identifier, - ACTIONS(755), 1, - anon_sym_not, - ACTIONS(757), 1, - anon_sym_lambda, - ACTIONS(759), 1, - anon_sym_await, - STATE(766), 1, - sym_primary_expression, - STATE(767), 1, - sym_string, - STATE(768), 1, - sym_template_string, - STATE(1104), 1, - sym_expression, - ACTIONS(621), 2, - sym_ellipsis, - sym_float, - ACTIONS(615), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(607), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(753), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1129), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(924), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [23142] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(609), 1, - anon_sym_LPAREN, - ACTIONS(617), 1, - anon_sym_LBRACK, - ACTIONS(619), 1, - anon_sym_LBRACE, - ACTIONS(625), 1, - sym__string_start, - ACTIONS(627), 1, - sym__template_string_start, - ACTIONS(749), 1, - sym_identifier, - ACTIONS(755), 1, - anon_sym_not, - ACTIONS(757), 1, - anon_sym_lambda, - ACTIONS(759), 1, - anon_sym_await, - STATE(766), 1, - sym_primary_expression, - STATE(767), 1, - sym_string, - STATE(768), 1, - sym_template_string, - STATE(1105), 1, - sym_expression, - ACTIONS(621), 2, - sym_ellipsis, - sym_float, - ACTIONS(615), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(607), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(753), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1129), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(924), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [23234] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(609), 1, - anon_sym_LPAREN, - ACTIONS(617), 1, - anon_sym_LBRACK, - ACTIONS(619), 1, - anon_sym_LBRACE, - ACTIONS(625), 1, - sym__string_start, - ACTIONS(627), 1, - sym__template_string_start, - ACTIONS(749), 1, - sym_identifier, - ACTIONS(755), 1, - anon_sym_not, - ACTIONS(757), 1, - anon_sym_lambda, - ACTIONS(759), 1, - anon_sym_await, - STATE(766), 1, - sym_primary_expression, - STATE(767), 1, - sym_string, - STATE(768), 1, - sym_template_string, - STATE(1106), 1, - sym_expression, - ACTIONS(621), 2, - sym_ellipsis, - sym_float, - ACTIONS(615), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(607), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(753), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1129), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(924), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [23326] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1349), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [23418] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(609), 1, - anon_sym_LPAREN, - ACTIONS(617), 1, - anon_sym_LBRACK, - ACTIONS(619), 1, - anon_sym_LBRACE, - ACTIONS(625), 1, - sym__string_start, - ACTIONS(627), 1, - sym__template_string_start, - ACTIONS(749), 1, - sym_identifier, - ACTIONS(755), 1, - anon_sym_not, - ACTIONS(757), 1, - anon_sym_lambda, - ACTIONS(759), 1, - anon_sym_await, - STATE(766), 1, - sym_primary_expression, - STATE(767), 1, - sym_string, - STATE(768), 1, - sym_template_string, - STATE(1107), 1, - sym_expression, - ACTIONS(621), 2, - sym_ellipsis, - sym_float, - ACTIONS(615), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(607), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(753), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1129), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(924), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [23510] = 6, + [19243] = 6, ACTIONS(3), 1, sym_comment, ACTIONS(1106), 1, anon_sym_elif, - STATE(399), 1, + STATE(350), 1, aux_sym_if_statement_repeat1, - STATE(473), 1, + STATE(479), 1, sym_elif_clause, - ACTIONS(1091), 13, + ACTIONS(1104), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -42689,7 +39684,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1093), 34, + ACTIONS(1102), 35, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -42724,61 +39720,62 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [23574] = 20, + [19308] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(609), 1, + ACTIONS(650), 1, anon_sym_LPAREN, - ACTIONS(617), 1, + ACTIONS(656), 1, anon_sym_LBRACK, - ACTIONS(619), 1, + ACTIONS(658), 1, anon_sym_LBRACE, - ACTIONS(625), 1, + ACTIONS(664), 1, sym__string_start, - ACTIONS(627), 1, + ACTIONS(666), 1, sym__template_string_start, - ACTIONS(749), 1, + ACTIONS(964), 1, sym_identifier, - ACTIONS(755), 1, + ACTIONS(972), 1, anon_sym_not, - ACTIONS(757), 1, + ACTIONS(974), 1, anon_sym_lambda, - ACTIONS(759), 1, + ACTIONS(976), 1, anon_sym_await, - STATE(766), 1, + STATE(789), 1, sym_primary_expression, - STATE(767), 1, + STATE(790), 1, sym_string, - STATE(768), 1, + STATE(791), 1, sym_template_string, - STATE(1108), 1, + STATE(1214), 1, sym_expression, - ACTIONS(621), 2, + ACTIONS(660), 2, sym_ellipsis, sym_float, - ACTIONS(615), 3, + ACTIONS(654), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(607), 4, + ACTIONS(646), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(753), 5, + ACTIONS(966), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1129), 6, + STATE(1198), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(924), 17, + STATE(985), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -42796,61 +39793,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [23666] = 20, + [19401] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(631), 1, - anon_sym_LPAREN, - ACTIONS(639), 1, - anon_sym_LBRACK, - ACTIONS(641), 1, + ACTIONS(53), 1, anon_sym_LBRACE, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - ACTIONS(961), 1, - sym_identifier, - ACTIONS(969), 1, + ACTIONS(71), 1, anon_sym_not, - ACTIONS(971), 1, + ACTIONS(73), 1, anon_sym_lambda, - ACTIONS(973), 1, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(361), 1, + sym_identifier, + ACTIONS(367), 1, anon_sym_await, - STATE(794), 1, - sym_string, - STATE(795), 1, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + STATE(772), 1, sym_template_string, - STATE(822), 1, + STATE(773), 1, sym_primary_expression, - STATE(1210), 1, + STATE(779), 1, + sym_string, + STATE(1255), 1, sym_expression, - ACTIONS(643), 2, + ACTIONS(77), 2, sym_ellipsis, sym_float, - ACTIONS(637), 3, + ACTIONS(49), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(629), 4, + ACTIONS(79), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(965), 5, + ACTIONS(363), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1176), 6, + STATE(1126), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(953), 17, + STATE(950), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -42868,61 +39866,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [23758] = 20, + [19494] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(263), 1, + ACTIONS(268), 1, sym_identifier, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(300), 1, + ACTIONS(305), 1, anon_sym_lambda, - ACTIONS(308), 1, + ACTIONS(313), 1, anon_sym_await, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(578), 1, + ACTIONS(585), 1, anon_sym_LPAREN, - ACTIONS(591), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(747), 1, + ACTIONS(768), 1, anon_sym_not, - STATE(621), 1, + STATE(694), 1, sym_string, - STATE(624), 1, + STATE(698), 1, sym_template_string, - STATE(719), 1, + STATE(704), 1, sym_primary_expression, - STATE(1361), 1, + STATE(1085), 1, sym_expression, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(276), 5, + ACTIONS(270), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -42940,61 +39939,2252 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [23850] = 20, + [19587] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(609), 1, + ACTIONS(616), 1, anon_sym_LPAREN, - ACTIONS(617), 1, + ACTIONS(622), 1, anon_sym_LBRACK, - ACTIONS(619), 1, + ACTIONS(624), 1, anon_sym_LBRACE, - ACTIONS(625), 1, + ACTIONS(630), 1, sym__string_start, - ACTIONS(627), 1, + ACTIONS(632), 1, sym__template_string_start, - ACTIONS(749), 1, + ACTIONS(750), 1, sym_identifier, - ACTIONS(755), 1, + ACTIONS(760), 1, anon_sym_not, - ACTIONS(757), 1, + ACTIONS(762), 1, anon_sym_lambda, - ACTIONS(759), 1, + ACTIONS(764), 1, anon_sym_await, - STATE(766), 1, + STATE(780), 1, sym_primary_expression, - STATE(767), 1, + STATE(781), 1, sym_string, - STATE(768), 1, + STATE(782), 1, + sym_template_string, + STATE(1221), 1, + sym_expression, + ACTIONS(626), 2, + sym_ellipsis, + sym_float, + ACTIONS(620), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(612), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(752), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1131), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(949), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [19680] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1088), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [19773] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(816), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1171), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(810), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [19866] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(361), 1, + sym_identifier, + ACTIONS(367), 1, + anon_sym_await, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + STATE(772), 1, + sym_template_string, + STATE(773), 1, + sym_primary_expression, + STATE(779), 1, + sym_string, + STATE(1121), 1, + sym_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(363), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1126), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [19959] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1096), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [20052] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1071), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [20145] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1089), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [20238] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1267), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [20331] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1297), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [20424] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1298), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [20517] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(361), 1, + sym_identifier, + ACTIONS(367), 1, + anon_sym_await, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + STATE(772), 1, + sym_template_string, + STATE(773), 1, + sym_primary_expression, + STATE(779), 1, + sym_string, + STATE(1313), 1, + sym_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(363), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1126), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [20610] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(361), 1, + sym_identifier, + ACTIONS(367), 1, + anon_sym_await, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + STATE(772), 1, + sym_template_string, + STATE(773), 1, + sym_primary_expression, + STATE(779), 1, + sym_string, + STATE(1118), 1, + sym_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(363), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1126), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [20703] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(361), 1, + sym_identifier, + ACTIONS(367), 1, + anon_sym_await, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + STATE(772), 1, + sym_template_string, + STATE(773), 1, + sym_primary_expression, + STATE(779), 1, + sym_string, + STATE(1316), 1, + sym_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(363), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1126), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [20796] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1081), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [20889] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1076), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [20982] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(361), 1, + sym_identifier, + ACTIONS(367), 1, + anon_sym_await, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + STATE(772), 1, + sym_template_string, + STATE(773), 1, + sym_primary_expression, + STATE(779), 1, + sym_string, + STATE(1115), 1, + sym_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(363), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1126), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [21075] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + ACTIONS(750), 1, + sym_identifier, + ACTIONS(760), 1, + anon_sym_not, + ACTIONS(762), 1, + anon_sym_lambda, + ACTIONS(764), 1, + anon_sym_await, + STATE(780), 1, + sym_primary_expression, + STATE(781), 1, + sym_string, + STATE(782), 1, + sym_template_string, + STATE(1152), 1, + sym_expression, + ACTIONS(626), 2, + sym_ellipsis, + sym_float, + ACTIONS(620), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(612), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(752), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1131), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(949), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [21168] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(361), 1, + sym_identifier, + ACTIONS(367), 1, + anon_sym_await, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + STATE(772), 1, + sym_template_string, + STATE(773), 1, + sym_primary_expression, + STATE(779), 1, + sym_string, + STATE(1220), 1, + sym_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(363), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1126), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [21261] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1038), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [21354] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(650), 1, + anon_sym_LPAREN, + ACTIONS(656), 1, + anon_sym_LBRACK, + ACTIONS(658), 1, + anon_sym_LBRACE, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(964), 1, + sym_identifier, + ACTIONS(972), 1, + anon_sym_not, + ACTIONS(974), 1, + anon_sym_lambda, + ACTIONS(976), 1, + anon_sym_await, + STATE(789), 1, + sym_primary_expression, + STATE(790), 1, + sym_string, + STATE(791), 1, + sym_template_string, + STATE(1182), 1, + sym_expression, + ACTIONS(660), 2, + sym_ellipsis, + sym_float, + ACTIONS(654), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(646), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(966), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1198), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(985), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [21447] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + ACTIONS(750), 1, + sym_identifier, + ACTIONS(760), 1, + anon_sym_not, + ACTIONS(762), 1, + anon_sym_lambda, + ACTIONS(764), 1, + anon_sym_await, + STATE(780), 1, + sym_primary_expression, + STATE(781), 1, + sym_string, + STATE(782), 1, + sym_template_string, + STATE(1159), 1, + sym_expression, + ACTIONS(626), 2, + sym_ellipsis, + sym_float, + ACTIONS(620), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(612), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(752), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1131), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(949), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [21540] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(650), 1, + anon_sym_LPAREN, + ACTIONS(656), 1, + anon_sym_LBRACK, + ACTIONS(658), 1, + anon_sym_LBRACE, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(964), 1, + sym_identifier, + ACTIONS(972), 1, + anon_sym_not, + ACTIONS(974), 1, + anon_sym_lambda, + ACTIONS(976), 1, + anon_sym_await, + STATE(789), 1, + sym_primary_expression, + STATE(790), 1, + sym_string, + STATE(791), 1, + sym_template_string, + STATE(1189), 1, + sym_expression, + ACTIONS(660), 2, + sym_ellipsis, + sym_float, + ACTIONS(654), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(646), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(966), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1198), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(985), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [21633] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(650), 1, + anon_sym_LPAREN, + ACTIONS(656), 1, + anon_sym_LBRACK, + ACTIONS(658), 1, + anon_sym_LBRACE, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(964), 1, + sym_identifier, + ACTIONS(972), 1, + anon_sym_not, + ACTIONS(974), 1, + anon_sym_lambda, + ACTIONS(976), 1, + anon_sym_await, + STATE(789), 1, + sym_primary_expression, + STATE(790), 1, + sym_string, + STATE(791), 1, + sym_template_string, + STATE(1190), 1, + sym_expression, + ACTIONS(660), 2, + sym_ellipsis, + sym_float, + ACTIONS(654), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(646), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(966), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1198), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(985), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [21726] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(650), 1, + anon_sym_LPAREN, + ACTIONS(656), 1, + anon_sym_LBRACK, + ACTIONS(658), 1, + anon_sym_LBRACE, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(964), 1, + sym_identifier, + ACTIONS(972), 1, + anon_sym_not, + ACTIONS(974), 1, + anon_sym_lambda, + ACTIONS(976), 1, + anon_sym_await, + STATE(789), 1, + sym_primary_expression, + STATE(790), 1, + sym_string, + STATE(791), 1, + sym_template_string, + STATE(1201), 1, + sym_expression, + ACTIONS(660), 2, + sym_ellipsis, + sym_float, + ACTIONS(654), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(646), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(966), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1198), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(985), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [21819] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(650), 1, + anon_sym_LPAREN, + ACTIONS(656), 1, + anon_sym_LBRACK, + ACTIONS(658), 1, + anon_sym_LBRACE, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(964), 1, + sym_identifier, + ACTIONS(972), 1, + anon_sym_not, + ACTIONS(974), 1, + anon_sym_lambda, + ACTIONS(976), 1, + anon_sym_await, + STATE(789), 1, + sym_primary_expression, + STATE(790), 1, + sym_string, + STATE(791), 1, + sym_template_string, + STATE(1188), 1, + sym_expression, + ACTIONS(660), 2, + sym_ellipsis, + sym_float, + ACTIONS(654), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(646), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(966), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1198), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(985), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [21912] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(650), 1, + anon_sym_LPAREN, + ACTIONS(656), 1, + anon_sym_LBRACK, + ACTIONS(658), 1, + anon_sym_LBRACE, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(964), 1, + sym_identifier, + ACTIONS(972), 1, + anon_sym_not, + ACTIONS(974), 1, + anon_sym_lambda, + ACTIONS(976), 1, + anon_sym_await, + STATE(789), 1, + sym_primary_expression, + STATE(790), 1, + sym_string, + STATE(791), 1, + sym_template_string, + STATE(1197), 1, + sym_expression, + ACTIONS(660), 2, + sym_ellipsis, + sym_float, + ACTIONS(654), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(646), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(966), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1198), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(985), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [22005] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + ACTIONS(750), 1, + sym_identifier, + ACTIONS(760), 1, + anon_sym_not, + ACTIONS(762), 1, + anon_sym_lambda, + ACTIONS(764), 1, + anon_sym_await, + STATE(780), 1, + sym_primary_expression, + STATE(781), 1, + sym_string, + STATE(782), 1, + sym_template_string, + STATE(1162), 1, + sym_expression, + ACTIONS(626), 2, + sym_ellipsis, + sym_float, + ACTIONS(620), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(612), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(752), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1131), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(949), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [22098] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(361), 1, + sym_identifier, + ACTIONS(367), 1, + anon_sym_await, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + STATE(772), 1, + sym_template_string, + STATE(773), 1, + sym_primary_expression, + STATE(779), 1, + sym_string, + STATE(1161), 1, + sym_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(363), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1126), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [22191] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + ACTIONS(750), 1, + sym_identifier, + ACTIONS(760), 1, + anon_sym_not, + ACTIONS(762), 1, + anon_sym_lambda, + ACTIONS(764), 1, + anon_sym_await, + STATE(780), 1, + sym_primary_expression, + STATE(781), 1, + sym_string, + STATE(782), 1, + sym_template_string, + STATE(1165), 1, + sym_expression, + ACTIONS(626), 2, + sym_ellipsis, + sym_float, + ACTIONS(620), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(612), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(752), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1131), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(949), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [22284] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + ACTIONS(750), 1, + sym_identifier, + ACTIONS(760), 1, + anon_sym_not, + ACTIONS(762), 1, + anon_sym_lambda, + ACTIONS(764), 1, + anon_sym_await, + STATE(780), 1, + sym_primary_expression, + STATE(781), 1, + sym_string, + STATE(782), 1, + sym_template_string, + STATE(1167), 1, + sym_expression, + ACTIONS(626), 2, + sym_ellipsis, + sym_float, + ACTIONS(620), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(612), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(752), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1131), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(949), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [22377] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + ACTIONS(750), 1, + sym_identifier, + ACTIONS(760), 1, + anon_sym_not, + ACTIONS(762), 1, + anon_sym_lambda, + ACTIONS(764), 1, + anon_sym_await, + STATE(780), 1, + sym_primary_expression, + STATE(781), 1, + sym_string, + STATE(782), 1, sym_template_string, STATE(1168), 1, sym_expression, - ACTIONS(621), 2, + ACTIONS(626), 2, sym_ellipsis, sym_float, - ACTIONS(615), 3, + ACTIONS(620), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(607), 4, + ACTIONS(612), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(753), 5, + ACTIONS(752), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1129), 6, + STATE(1131), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(924), 17, + STATE(949), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -43012,205 +42202,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [23942] = 20, + [22470] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, + ACTIONS(616), 1, anon_sym_LPAREN, - ACTIONS(591), 1, + ACTIONS(622), 1, anon_sym_LBRACK, - ACTIONS(747), 1, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + ACTIONS(750), 1, + sym_identifier, + ACTIONS(760), 1, anon_sym_not, - STATE(621), 1, + ACTIONS(762), 1, + anon_sym_lambda, + ACTIONS(764), 1, + anon_sym_await, + STATE(780), 1, + sym_primary_expression, + STATE(781), 1, sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1307), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [24034] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1077), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [24126] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(314), 1, - sym_identifier, - ACTIONS(320), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - STATE(763), 1, - sym_template_string, - STATE(779), 1, - sym_primary_expression, STATE(782), 1, - sym_string, - STATE(1177), 1, + sym_template_string, + STATE(1170), 1, sym_expression, - ACTIONS(75), 2, + ACTIONS(626), 2, sym_ellipsis, sym_float, - ACTIONS(47), 3, + ACTIONS(620), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(77), 4, + ACTIONS(612), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(316), 5, + ACTIONS(752), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1158), 6, + STATE(1131), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(908), 17, + STATE(949), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -43228,133 +42275,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [24218] = 20, + [22563] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, + ACTIONS(53), 1, anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, + ACTIONS(71), 1, anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1334), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [24310] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(85), 1, sym__template_string_start, - ACTIONS(653), 1, - anon_sym_LPAREN, - ACTIONS(659), 1, - anon_sym_LBRACK, - ACTIONS(713), 1, + ACTIONS(361), 1, sym_identifier, - ACTIONS(725), 1, - anon_sym_not, - ACTIONS(727), 1, - anon_sym_lambda, - ACTIONS(729), 1, + ACTIONS(367), 1, anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, STATE(772), 1, + sym_template_string, + STATE(773), 1, sym_primary_expression, - STATE(1149), 1, + STATE(779), 1, + sym_string, + STATE(1326), 1, sym_expression, - ACTIONS(304), 2, + ACTIONS(77), 2, sym_ellipsis, sym_float, - ACTIONS(657), 3, + ACTIONS(49), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(79), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(721), 5, + ACTIONS(363), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1126), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(950), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -43372,61 +42348,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [24402] = 20, + [22656] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, + ACTIONS(53), 1, anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(653), 1, - anon_sym_LPAREN, - ACTIONS(659), 1, - anon_sym_LBRACK, - ACTIONS(713), 1, - sym_identifier, - ACTIONS(725), 1, + ACTIONS(71), 1, anon_sym_not, - ACTIONS(727), 1, + ACTIONS(73), 1, anon_sym_lambda, - ACTIONS(729), 1, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(361), 1, + sym_identifier, + ACTIONS(367), 1, anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, STATE(772), 1, + sym_template_string, + STATE(773), 1, sym_primary_expression, - STATE(1150), 1, + STATE(779), 1, + sym_string, + STATE(1247), 1, sym_expression, - ACTIONS(304), 2, + ACTIONS(77), 2, sym_ellipsis, sym_float, - ACTIONS(657), 3, + ACTIONS(49), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(79), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(721), 5, + ACTIONS(363), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1126), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(950), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -43444,61 +42421,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [24494] = 20, + [22749] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(653), 1, + ACTIONS(616), 1, anon_sym_LPAREN, - ACTIONS(659), 1, + ACTIONS(622), 1, anon_sym_LBRACK, - ACTIONS(713), 1, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + ACTIONS(750), 1, sym_identifier, - ACTIONS(725), 1, + ACTIONS(760), 1, anon_sym_not, - ACTIONS(727), 1, + ACTIONS(762), 1, anon_sym_lambda, - ACTIONS(729), 1, + ACTIONS(764), 1, anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(772), 1, + STATE(780), 1, sym_primary_expression, - STATE(1151), 1, + STATE(781), 1, + sym_string, + STATE(782), 1, + sym_template_string, + STATE(1169), 1, sym_expression, - ACTIONS(304), 2, + ACTIONS(626), 2, sym_ellipsis, sym_float, - ACTIONS(657), 3, + ACTIONS(620), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(612), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(721), 5, + ACTIONS(752), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1131), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(949), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -43516,61 +42494,62 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [24586] = 20, + [22842] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(653), 1, + ACTIONS(650), 1, anon_sym_LPAREN, - ACTIONS(659), 1, + ACTIONS(656), 1, anon_sym_LBRACK, - ACTIONS(713), 1, + ACTIONS(658), 1, + anon_sym_LBRACE, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(964), 1, sym_identifier, - ACTIONS(725), 1, + ACTIONS(972), 1, anon_sym_not, - ACTIONS(727), 1, + ACTIONS(974), 1, anon_sym_lambda, - ACTIONS(729), 1, + ACTIONS(976), 1, anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(772), 1, + STATE(789), 1, sym_primary_expression, - STATE(1152), 1, + STATE(790), 1, + sym_string, + STATE(791), 1, + sym_template_string, + STATE(1233), 1, sym_expression, - ACTIONS(304), 2, + ACTIONS(660), 2, sym_ellipsis, sym_float, - ACTIONS(657), 3, + ACTIONS(654), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(646), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(721), 5, + ACTIONS(966), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1198), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(985), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -43588,61 +42567,1363 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [24678] = 20, + [22935] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(653), 1, + ACTIONS(602), 1, anon_sym_LPAREN, - ACTIONS(659), 1, + ACTIONS(608), 1, anon_sym_LBRACK, - ACTIONS(713), 1, - sym_identifier, - ACTIONS(725), 1, + ACTIONS(680), 1, anon_sym_not, - ACTIONS(727), 1, + ACTIONS(682), 1, anon_sym_lambda, - ACTIONS(729), 1, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(816), 1, anon_sym_await, - STATE(621), 1, + STATE(694), 1, sym_string, - STATE(624), 1, + STATE(698), 1, sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1238), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(810), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [23028] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(816), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1038), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(810), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [23121] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1109), 1, + anon_sym_elif, + STATE(392), 1, + aux_sym_if_statement_repeat1, + STATE(473), 1, + sym_elif_clause, + ACTIONS(1104), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1102), 35, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [23186] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(361), 1, + sym_identifier, + ACTIONS(367), 1, + anon_sym_await, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, STATE(772), 1, + sym_template_string, + STATE(773), 1, + sym_primary_expression, + STATE(779), 1, + sym_string, + STATE(1278), 1, + sym_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(363), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1126), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [23279] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1350), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [23372] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(816), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1098), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(810), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [23465] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(361), 1, + sym_identifier, + ACTIONS(367), 1, + anon_sym_await, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + STATE(772), 1, + sym_template_string, + STATE(773), 1, + sym_primary_expression, + STATE(779), 1, + sym_string, + STATE(1129), 1, + sym_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(363), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1126), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [23558] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1109), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [23651] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(816), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1224), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(810), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [23744] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + ACTIONS(750), 1, + sym_identifier, + ACTIONS(760), 1, + anon_sym_not, + ACTIONS(762), 1, + anon_sym_lambda, + ACTIONS(764), 1, + anon_sym_await, + STATE(780), 1, + sym_primary_expression, + STATE(781), 1, + sym_string, + STATE(782), 1, + sym_template_string, + STATE(1145), 1, + sym_expression, + ACTIONS(626), 2, + sym_ellipsis, + sym_float, + ACTIONS(620), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(612), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(752), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1131), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(949), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [23837] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(361), 1, + sym_identifier, + ACTIONS(367), 1, + anon_sym_await, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + STATE(772), 1, + sym_template_string, + STATE(773), 1, + sym_primary_expression, + STATE(779), 1, + sym_string, + STATE(1225), 1, + sym_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(363), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1126), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [23930] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(1112), 1, + sym_identifier, + ACTIONS(1116), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1098), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(470), 2, + sym_attribute, + sym_subscript, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(1114), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 15, + sym_binary_operator, + sym_unary_operator, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [24025] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1292), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [24118] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1347), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [24211] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(361), 1, + sym_identifier, + ACTIONS(367), 1, + anon_sym_await, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + STATE(772), 1, + sym_template_string, + STATE(773), 1, + sym_primary_expression, + STATE(779), 1, + sym_string, + STATE(1284), 1, + sym_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(363), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1126), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [24304] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1363), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [24397] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(816), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1091), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(810), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [24490] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(361), 1, + sym_identifier, + ACTIONS(367), 1, + anon_sym_await, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + STATE(772), 1, + sym_template_string, + STATE(773), 1, + sym_primary_expression, + STATE(779), 1, + sym_string, + STATE(1319), 1, + sym_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(363), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1126), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [24583] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(636), 1, + anon_sym_LPAREN, + ACTIONS(642), 1, + anon_sym_LBRACK, + ACTIONS(718), 1, + sym_identifier, + ACTIONS(732), 1, + anon_sym_not, + ACTIONS(734), 1, + anon_sym_lambda, + ACTIONS(736), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(775), 1, sym_primary_expression, STATE(1153), 1, sym_expression, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(657), 3, + ACTIONS(640), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(721), 5, + ACTIONS(720), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -43660,61 +43941,135 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [24770] = 20, + [24676] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, + ACTIONS(53), 1, anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(653), 1, - anon_sym_LPAREN, - ACTIONS(659), 1, - anon_sym_LBRACK, - ACTIONS(713), 1, - sym_identifier, - ACTIONS(725), 1, + ACTIONS(71), 1, anon_sym_not, - ACTIONS(727), 1, + ACTIONS(73), 1, anon_sym_lambda, - ACTIONS(729), 1, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(361), 1, + sym_identifier, + ACTIONS(367), 1, anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, STATE(772), 1, + sym_template_string, + STATE(773), 1, sym_primary_expression, - STATE(1157), 1, + STATE(779), 1, + sym_string, + STATE(1139), 1, sym_expression, - ACTIONS(304), 2, + ACTIONS(77), 2, sym_ellipsis, sym_float, - ACTIONS(657), 3, + ACTIONS(49), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(79), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(721), 5, + ACTIONS(363), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1126), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [24769] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(636), 1, + anon_sym_LPAREN, + ACTIONS(642), 1, + anon_sym_LBRACK, + ACTIONS(718), 1, + sym_identifier, + ACTIONS(732), 1, + anon_sym_not, + ACTIONS(734), 1, + anon_sym_lambda, + ACTIONS(736), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(775), 1, + sym_primary_expression, + STATE(1154), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(640), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(720), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -43735,58 +44090,59 @@ static const uint16_t ts_small_parse_table[] = { [24862] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(653), 1, + ACTIONS(636), 1, anon_sym_LPAREN, - ACTIONS(659), 1, + ACTIONS(642), 1, anon_sym_LBRACK, - ACTIONS(713), 1, + ACTIONS(718), 1, sym_identifier, - ACTIONS(725), 1, + ACTIONS(732), 1, anon_sym_not, - ACTIONS(727), 1, + ACTIONS(734), 1, anon_sym_lambda, - ACTIONS(729), 1, + ACTIONS(736), 1, anon_sym_await, - STATE(621), 1, + STATE(694), 1, sym_string, - STATE(624), 1, + STATE(698), 1, sym_template_string, - STATE(772), 1, + STATE(775), 1, sym_primary_expression, - STATE(1102), 1, + STATE(1155), 1, sym_expression, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(657), 3, + ACTIONS(640), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(721), 5, + ACTIONS(720), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -43804,61 +44160,1376 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [24954] = 20, + [24955] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(578), 1, + ACTIONS(636), 1, anon_sym_LPAREN, - ACTIONS(591), 1, + ACTIONS(642), 1, anon_sym_LBRACK, - ACTIONS(747), 1, + ACTIONS(718), 1, + sym_identifier, + ACTIONS(732), 1, anon_sym_not, - STATE(621), 1, + ACTIONS(734), 1, + anon_sym_lambda, + ACTIONS(736), 1, + anon_sym_await, + STATE(694), 1, sym_string, - STATE(624), 1, + STATE(698), 1, sym_template_string, - STATE(719), 1, + STATE(775), 1, + sym_primary_expression, + STATE(1156), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(640), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(720), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [25048] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(636), 1, + anon_sym_LPAREN, + ACTIONS(642), 1, + anon_sym_LBRACK, + ACTIONS(718), 1, + sym_identifier, + ACTIONS(732), 1, + anon_sym_not, + ACTIONS(734), 1, + anon_sym_lambda, + ACTIONS(736), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(775), 1, + sym_primary_expression, + STATE(1157), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(640), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(720), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [25141] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(636), 1, + anon_sym_LPAREN, + ACTIONS(642), 1, + anon_sym_LBRACK, + ACTIONS(718), 1, + sym_identifier, + ACTIONS(732), 1, + anon_sym_not, + ACTIONS(734), 1, + anon_sym_lambda, + ACTIONS(736), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(775), 1, + sym_primary_expression, + STATE(1163), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(640), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(720), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [25234] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(636), 1, + anon_sym_LPAREN, + ACTIONS(642), 1, + anon_sym_LBRACK, + ACTIONS(718), 1, + sym_identifier, + ACTIONS(732), 1, + anon_sym_not, + ACTIONS(734), 1, + anon_sym_lambda, + ACTIONS(736), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(775), 1, + sym_primary_expression, + STATE(1166), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(640), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(720), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [25327] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(636), 1, + anon_sym_LPAREN, + ACTIONS(642), 1, + anon_sym_LBRACK, + ACTIONS(718), 1, + sym_identifier, + ACTIONS(732), 1, + anon_sym_not, + ACTIONS(734), 1, + anon_sym_lambda, + ACTIONS(736), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(775), 1, + sym_primary_expression, + STATE(1038), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(640), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(720), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [25420] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(650), 1, + anon_sym_LPAREN, + ACTIONS(656), 1, + anon_sym_LBRACK, + ACTIONS(658), 1, + anon_sym_LBRACE, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(964), 1, + sym_identifier, + ACTIONS(972), 1, + anon_sym_not, + ACTIONS(974), 1, + anon_sym_lambda, + ACTIONS(976), 1, + anon_sym_await, + STATE(789), 1, + sym_primary_expression, + STATE(790), 1, + sym_string, + STATE(791), 1, + sym_template_string, + STATE(1266), 1, + sym_expression, + ACTIONS(660), 2, + sym_ellipsis, + sym_float, + ACTIONS(654), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(646), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(966), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1198), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(985), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [25513] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1353), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [25606] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(816), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1077), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(810), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [25699] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1361), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [25792] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1199), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [25885] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1387), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [25978] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1367), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [26071] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1370), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [26164] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1371), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [26257] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(816), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1073), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(810), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [26350] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1359), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [26443] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(816), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, + sym_primary_expression, + STATE(1083), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(810), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [26536] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1325), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [26629] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(680), 1, + anon_sym_not, + ACTIONS(682), 1, + anon_sym_lambda, + ACTIONS(808), 1, + sym_identifier, + ACTIONS(816), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(705), 1, sym_primary_expression, STATE(1082), 1, sym_expression, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(296), 3, + ACTIONS(606), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(276), 5, + ACTIONS(810), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1031), 6, + STATE(1037), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(724), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -43876,1213 +45547,563 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [25046] = 20, + [26722] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(653), 1, - anon_sym_LPAREN, - ACTIONS(659), 1, - anon_sym_LBRACK, - ACTIONS(713), 1, + ACTIONS(268), 1, sym_identifier, - ACTIONS(725), 1, - anon_sym_not, - ACTIONS(727), 1, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, anon_sym_lambda, - ACTIONS(729), 1, + ACTIONS(313), 1, anon_sym_await, - STATE(621), 1, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, sym_string, - STATE(624), 1, + STATE(698), 1, sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1376), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [26815] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1365), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [26908] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(71), 1, + anon_sym_not, + ACTIONS(73), 1, + anon_sym_lambda, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(361), 1, + sym_identifier, + ACTIONS(367), 1, + anon_sym_await, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, STATE(772), 1, - sym_primary_expression, - STATE(1030), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(657), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(721), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [25138] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, sym_template_string, - STATE(719), 1, + STATE(773), 1, sym_primary_expression, - STATE(1335), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [25230] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(609), 1, - anon_sym_LPAREN, - ACTIONS(617), 1, - anon_sym_LBRACK, - ACTIONS(619), 1, - anon_sym_LBRACE, - ACTIONS(625), 1, - sym__string_start, - ACTIONS(627), 1, - sym__template_string_start, - ACTIONS(749), 1, - sym_identifier, - ACTIONS(755), 1, - anon_sym_not, - ACTIONS(757), 1, - anon_sym_lambda, - ACTIONS(759), 1, - anon_sym_await, - STATE(766), 1, - sym_primary_expression, - STATE(767), 1, - sym_string, - STATE(768), 1, - sym_template_string, - STATE(1183), 1, - sym_expression, - ACTIONS(621), 2, - sym_ellipsis, - sym_float, - ACTIONS(615), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(607), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(753), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1129), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(924), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [25322] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1339), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [25414] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1089), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [25506] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1366), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [25598] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1345), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [25690] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1346), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [25782] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1347), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [25874] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1238), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [25966] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1063), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [26058] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1065), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [26150] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1070), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [26242] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1350), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [26334] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(631), 1, - anon_sym_LPAREN, - ACTIONS(639), 1, - anon_sym_LBRACK, - ACTIONS(641), 1, - anon_sym_LBRACE, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - ACTIONS(961), 1, - sym_identifier, - ACTIONS(969), 1, - anon_sym_not, - ACTIONS(971), 1, - anon_sym_lambda, - ACTIONS(973), 1, - anon_sym_await, - STATE(794), 1, - sym_string, - STATE(795), 1, - sym_template_string, - STATE(822), 1, - sym_primary_expression, - STATE(1243), 1, - sym_expression, - ACTIONS(643), 2, - sym_ellipsis, - sym_float, - ACTIONS(637), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(629), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(965), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1176), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(953), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [26426] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(314), 1, - sym_identifier, - ACTIONS(320), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - STATE(763), 1, - sym_template_string, STATE(779), 1, + sym_string, + STATE(1147), 1, + sym_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(363), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1126), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [27001] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, sym_primary_expression, + STATE(1261), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [27094] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1377), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [27187] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(268), 1, + sym_identifier, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(305), 1, + anon_sym_lambda, + ACTIONS(313), 1, + anon_sym_await, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(768), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(704), 1, + sym_primary_expression, + STATE(1378), 1, + sym_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(270), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(1037), 6, + sym_named_expression, + sym_not_operator, + sym_boolean_operator, + sym_comparison_operator, + sym_lambda, + sym_conditional_expression, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [27280] = 10, + ACTIONS(3), 1, + sym_comment, + ACTIONS(277), 1, + anon_sym_COMMA, + ACTIONS(283), 1, + anon_sym_COLON_EQ, + ACTIONS(1118), 1, + anon_sym_for, + ACTIONS(1120), 1, + anon_sym_with, + ACTIONS(1122), 1, + anon_sym_def, + ACTIONS(285), 2, + anon_sym_COLON, + anon_sym_EQ, + ACTIONS(307), 13, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + ACTIONS(272), 15, + anon_sym_STAR, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT, + anon_sym_GT, + ACTIONS(303), 16, + sym__newline, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_if, + anon_sym_in, + anon_sym_LBRACK, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [27353] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + ACTIONS(750), 1, + sym_identifier, + ACTIONS(760), 1, + anon_sym_not, + ACTIONS(762), 1, + anon_sym_lambda, + ACTIONS(764), 1, + anon_sym_await, + STATE(780), 1, + sym_primary_expression, + STATE(781), 1, + sym_string, STATE(782), 1, - sym_string, - STATE(1191), 1, - sym_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(316), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1158), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(908), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [26518] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(314), 1, - sym_identifier, - ACTIONS(320), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - STATE(763), 1, sym_template_string, - STATE(779), 1, - sym_primary_expression, - STATE(782), 1, - sym_string, - STATE(1227), 1, + STATE(1164), 1, sym_expression, - ACTIONS(75), 2, + ACTIONS(626), 2, sym_ellipsis, sym_float, - ACTIONS(47), 3, + ACTIONS(620), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(77), 4, + ACTIONS(612), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(316), 5, + ACTIONS(752), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(1158), 6, + STATE(1131), 6, sym_named_expression, sym_not_operator, sym_boolean_operator, sym_comparison_operator, sym_lambda, sym_conditional_expression, - STATE(908), 17, + STATE(949), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -45100,280 +46121,10 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [26610] = 20, + [27446] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1351), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [26702] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(263), 1, - sym_identifier, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(300), 1, - anon_sym_lambda, - ACTIONS(308), 1, - anon_sym_await, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(747), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(719), 1, - sym_primary_expression, - STATE(1352), 1, - sym_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(276), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1031), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [26794] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(69), 1, - anon_sym_not, - ACTIONS(71), 1, - anon_sym_lambda, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(314), 1, - sym_identifier, - ACTIONS(320), 1, - anon_sym_await, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - STATE(763), 1, - sym_template_string, - STATE(779), 1, - sym_primary_expression, - STATE(782), 1, - sym_string, - STATE(1163), 1, - sym_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(316), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(1158), 6, - sym_named_expression, - sym_not_operator, - sym_boolean_operator, - sym_comparison_operator, - sym_lambda, - sym_conditional_expression, - STATE(908), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [26886] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1109), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1111), 36, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [26943] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1115), 13, + ACTIONS(1126), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -45387,7 +46138,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1113), 36, + ACTIONS(1124), 37, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -45424,666 +46176,18 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [27000] = 3, + [27504] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1119), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1117), 36, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [27057] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1123), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1121), 36, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [27114] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1127), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1125), 36, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [27171] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1131), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1129), 36, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [27228] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1133), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1135), 36, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [27285] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1139), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1137), 36, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [27342] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1109), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1111), 36, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [27399] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1133), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1135), 36, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [27456] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1143), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1141), 36, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [27513] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1147), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1145), 36, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [27570] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1143), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1141), 36, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [27627] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1147), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1145), 36, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_except, - anon_sym_finally, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [27684] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1153), 1, + ACTIONS(1132), 1, anon_sym_case, - STATE(450), 2, + STATE(444), 2, sym_case_block, aux_sym_cases_repeat1, - ACTIONS(1149), 13, + ACTIONS(1130), 13, + sym__dedent, sym__string_start, sym__template_string_start, - ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -46094,7 +46198,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1151), 33, + ACTIONS(1128), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -46128,10 +46233,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [27745] = 3, + [27566] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1127), 13, + ACTIONS(1134), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -46145,7 +46250,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1125), 36, + ACTIONS(1136), 37, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -46182,18 +46288,185 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, + [27624] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1138), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1140), 37, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [27682] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1142), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1144), 37, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [27740] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1150), 1, + anon_sym_case, + STATE(444), 2, + sym_case_block, + aux_sym_cases_repeat1, + ACTIONS(1148), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1146), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, [27802] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1160), 1, + ACTIONS(1153), 1, anon_sym_case, - STATE(460), 2, + STATE(445), 2, sym_case_block, aux_sym_cases_repeat1, - ACTIONS(1158), 13, - sym__dedent, + ACTIONS(1148), 13, sym__string_start, sym__template_string_start, + ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -46204,7 +46477,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1156), 33, + ACTIONS(1146), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -46238,15 +46512,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [27863] = 5, + [27864] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1162), 1, - anon_sym_case, - STATE(450), 2, - sym_case_block, - aux_sym_cases_repeat1, - ACTIONS(1158), 13, + ACTIONS(1156), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -46260,58 +46529,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1156), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [27924] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1115), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1113), 36, + ACTIONS(1158), 37, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -46348,10 +46567,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [27981] = 3, + [27922] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1131), 13, + ACTIONS(1160), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -46365,7 +46584,63 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1129), 36, + ACTIONS(1162), 37, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [27980] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1166), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1164), 37, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -46405,7 +46680,7 @@ static const uint16_t ts_small_parse_table[] = { [28038] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1119), 13, + ACTIONS(1166), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -46419,7 +46694,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1117), 36, + ACTIONS(1164), 37, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -46456,10 +46732,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [28095] = 3, + [28096] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1139), 13, + ACTIONS(1168), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -46473,7 +46749,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1137), 36, + ACTIONS(1170), 37, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -46510,30 +46787,76 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [28152] = 8, + [28154] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(270), 1, + ACTIONS(1126), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1124), 37, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [28212] = 9, + ACTIONS(3), 1, + sym_comment, + ACTIONS(277), 1, anon_sym_COMMA, - ACTIONS(278), 1, + ACTIONS(283), 1, anon_sym_COLON_EQ, - ACTIONS(1164), 1, - sym_identifier, - ACTIONS(280), 2, + ACTIONS(1172), 1, + sym__string_start, + STATE(1411), 1, + sym_string, + ACTIONS(285), 2, anon_sym_COLON, anon_sym_EQ, - ACTIONS(298), 10, - sym__newline, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_LBRACK, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_SEMI, - ACTIONS(302), 13, + ACTIONS(307), 13, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, anon_sym_STAR_EQ, @@ -46547,19 +46870,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_EQ, anon_sym_CARET_EQ, anon_sym_PIPE_EQ, - ACTIONS(265), 21, + ACTIONS(272), 15, anon_sym_STAR, anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, anon_sym_PIPE, anon_sym_DASH, anon_sym_PLUS, anon_sym_STAR_STAR, anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, anon_sym_SLASH, anon_sym_PERCENT, anon_sym_SLASH_SLASH, @@ -46568,14 +46886,91 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_LT, anon_sym_LT, anon_sym_GT, + ACTIONS(303), 16, + sym__newline, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_if, + anon_sym_in, + anon_sym_LBRACK, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, anon_sym_is, - [28219] = 3, + anon_sym_SEMI, + [28282] = 9, ACTIONS(3), 1, sym_comment, - ACTIONS(1123), 13, + ACTIONS(277), 1, + anon_sym_COMMA, + ACTIONS(283), 1, + anon_sym_COLON_EQ, + ACTIONS(1174), 1, + anon_sym_import, + ACTIONS(1176), 1, + anon_sym_from, + ACTIONS(285), 2, + anon_sym_COLON, + anon_sym_EQ, + ACTIONS(307), 13, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + ACTIONS(272), 15, + anon_sym_STAR, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT, + anon_sym_GT, + ACTIONS(303), 16, + sym__newline, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_if, + anon_sym_in, + anon_sym_LBRACK, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [28352] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1160), 13, + sym__dedent, sym__string_start, sym__template_string_start, - ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -46586,7 +46981,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1121), 36, + ACTIONS(1162), 37, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -46623,15 +47019,65 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [28276] = 5, + [28410] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1166), 1, - anon_sym_case, - STATE(460), 2, - sym_case_block, - aux_sym_cases_repeat1, - ACTIONS(1149), 13, + ACTIONS(1178), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1180), 37, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [28468] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1134), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -46645,7 +47091,288 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1151), 33, + ACTIONS(1136), 37, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [28526] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1182), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1184), 37, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [28584] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1182), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1184), 37, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [28642] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1178), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1180), 37, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [28700] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1138), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1140), 37, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [28758] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1186), 1, + anon_sym_case, + STATE(445), 2, + sym_case_block, + aux_sym_cases_repeat1, + ACTIONS(1130), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1128), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -46679,62 +47406,229 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [28337] = 21, + [28820] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, + ACTIONS(1142), 13, + sym__dedent, sym__string_start, - ACTIONS(312), 1, sym__template_string_start, - ACTIONS(663), 1, - sym_identifier, - ACTIONS(665), 1, anon_sym_LPAREN, - ACTIONS(675), 1, + anon_sym_DASH, + anon_sym_PLUS, anon_sym_LBRACK, - ACTIONS(677), 1, - anon_sym_await, - ACTIONS(1171), 1, - anon_sym_STAR, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(1005), 1, - sym_pattern, - STATE(1012), 1, - sym_primary_expression, - ACTIONS(304), 2, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1169), 2, + ACTIONS(1144), 37, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [28878] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1156), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1158), 37, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [28936] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1168), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1170), 37, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_except, + anon_sym_finally, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [28994] = 22, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(694), 1, + sym_identifier, + ACTIONS(698), 1, + anon_sym_LPAREN, + ACTIONS(706), 1, + anon_sym_LBRACK, + ACTIONS(708), 1, + anon_sym_await, + ACTIONS(1188), 1, anon_sym_RPAREN, - anon_sym_RBRACK, - STATE(849), 2, + ACTIONS(1190), 1, + anon_sym_STAR, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(1017), 1, + sym_primary_expression, + STATE(1355), 1, + sym_pattern, + STATE(1742), 1, + sym__patterns, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(842), 2, sym_attribute, sym_subscript, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(999), 3, + STATE(1005), 3, sym_tuple_pattern, sym_list_pattern, sym_list_splat_pattern, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(669), 5, + ACTIONS(696), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(724), 15, + STATE(720), 15, sym_binary_operator, sym_unary_operator, sym_call, @@ -46750,67 +47644,82 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [28429] = 7, + [29089] = 21, ACTIONS(3), 1, sym_comment, - ACTIONS(1175), 1, - anon_sym_COMMA, - ACTIONS(1180), 1, - anon_sym_COLON_EQ, - ACTIONS(1182), 2, - anon_sym_COLON, - anon_sym_EQ, - ACTIONS(1184), 13, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - ACTIONS(1178), 15, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(694), 1, + sym_identifier, + ACTIONS(698), 1, + anon_sym_LPAREN, + ACTIONS(706), 1, + anon_sym_LBRACK, + ACTIONS(708), 1, + anon_sym_await, + ACTIONS(1190), 1, anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_PIPE, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(1002), 1, + sym_pattern, + STATE(1017), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(1192), 2, + anon_sym_RPAREN, + anon_sym_RBRACK, + STATE(842), 2, + sym_attribute, + sym_subscript, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1173), 16, - sym__newline, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_if, - anon_sym_in, - anon_sym_LBRACK, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [28493] = 3, + anon_sym_TILDE, + STATE(1005), 3, + sym_tuple_pattern, + sym_list_pattern, + sym_list_splat_pattern, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(696), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 15, + sym_binary_operator, + sym_unary_operator, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [29182] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1186), 13, + ACTIONS(1194), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -46824,7 +47733,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1188), 35, + ACTIONS(1196), 36, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -46860,10 +47770,14 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [28549] = 3, + [29239] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1190), 13, + ACTIONS(978), 1, + anon_sym_else, + STATE(516), 1, + sym_else_clause, + ACTIONS(1198), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -46877,7 +47791,248 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1192), 35, + ACTIONS(1200), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [29300] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(277), 1, + anon_sym_COMMA, + ACTIONS(283), 1, + anon_sym_COLON_EQ, + ACTIONS(1202), 1, + sym_identifier, + ACTIONS(285), 2, + anon_sym_COLON, + anon_sym_EQ, + ACTIONS(303), 10, + sym__newline, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_LBRACK, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_SEMI, + ACTIONS(307), 13, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + ACTIONS(272), 21, + anon_sym_STAR, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT, + anon_sym_GT, + anon_sym_is, + [29367] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1213), 1, + anon_sym_EQ, + ACTIONS(1206), 3, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACK, + ACTIONS(1211), 14, + anon_sym_COLON, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + ACTIONS(1209), 15, + anon_sym_STAR, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1204), 16, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_LBRACK, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [29430] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(694), 1, + sym_identifier, + ACTIONS(698), 1, + anon_sym_LPAREN, + ACTIONS(706), 1, + anon_sym_LBRACK, + ACTIONS(708), 1, + anon_sym_await, + ACTIONS(1190), 1, + anon_sym_STAR, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(1002), 1, + sym_pattern, + STATE(1017), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(1215), 2, + anon_sym_RPAREN, + anon_sym_RBRACK, + STATE(842), 2, + sym_attribute, + sym_subscript, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1005), 3, + sym_tuple_pattern, + sym_list_pattern, + sym_list_splat_pattern, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(696), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 15, + sym_binary_operator, + sym_unary_operator, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [29523] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1217), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1219), 36, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -46913,197 +48068,68 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [28605] = 7, + [29580] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(270), 1, - anon_sym_COMMA, - ACTIONS(278), 1, - anon_sym_COLON_EQ, - ACTIONS(280), 2, - anon_sym_COLON, - anon_sym_EQ, - ACTIONS(302), 13, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - ACTIONS(265), 15, - anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_PIPE, + ACTIONS(1221), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, anon_sym_STAR_STAR, anon_sym_AT, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT, - anon_sym_GT, - ACTIONS(298), 16, - sym__newline, - anon_sym_DOT, - anon_sym_LPAREN, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1223), 36, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, anon_sym_if, - anon_sym_in, - anon_sym_LBRACK, + anon_sym_elif, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [28669] = 5, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [29637] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(941), 1, + ACTIONS(978), 1, anon_sym_else, STATE(600), 1, sym_else_clause, - ACTIONS(1196), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1194), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [28729] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(663), 1, - sym_identifier, - ACTIONS(665), 1, - anon_sym_LPAREN, - ACTIONS(675), 1, - anon_sym_LBRACK, - ACTIONS(677), 1, - anon_sym_await, - ACTIONS(1171), 1, - anon_sym_STAR, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(1005), 1, - sym_pattern, - STATE(1012), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(1198), 2, - anon_sym_RPAREN, - anon_sym_RBRACK, - STATE(849), 2, - sym_attribute, - sym_subscript, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(999), 3, - sym_tuple_pattern, - sym_list_pattern, - sym_list_splat_pattern, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(669), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(724), 15, - sym_binary_operator, - sym_unary_operator, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [28821] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(953), 1, - anon_sym_finally, - STATE(517), 1, - sym_finally_clause, - ACTIONS(1200), 13, + ACTIONS(1225), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -47117,7 +48143,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1202), 33, + ACTIONS(1227), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -47151,120 +48178,14 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [28881] = 5, + [29698] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(941), 1, + ACTIONS(978), 1, anon_sym_else, - STATE(595), 1, + STATE(538), 1, sym_else_clause, - ACTIONS(1206), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1204), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [28941] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(945), 1, - anon_sym_finally, - STATE(587), 1, - sym_finally_clause, - ACTIONS(1210), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1208), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [29001] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1212), 13, + ACTIONS(1229), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -47278,7 +48199,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1214), 35, + ACTIONS(1231), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -47291,8 +48213,6 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_break, anon_sym_continue, anon_sym_if, - anon_sym_elif, - anon_sym_else, anon_sym_async, anon_sym_for, anon_sym_while, @@ -47314,14 +48234,126 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [29057] = 5, + [29759] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(953), 1, + ACTIONS(982), 1, anon_sym_finally, + STATE(610), 1, + sym_finally_clause, + ACTIONS(1233), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1235), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [29820] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(952), 1, + anon_sym_else, + STATE(552), 1, + sym_else_clause, + ACTIONS(1229), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1231), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [29881] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(978), 1, + anon_sym_else, STATE(530), 1, - sym_finally_clause, - ACTIONS(1210), 13, + sym_else_clause, + ACTIONS(1237), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -47335,7 +48367,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1208), 33, + ACTIONS(1239), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -47369,10 +48402,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [29117] = 3, + [29942] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1186), 13, + ACTIONS(1221), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -47386,7 +48419,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1188), 35, + ACTIONS(1223), 36, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -47422,306 +48456,14 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [29173] = 7, + [29999] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1219), 1, - anon_sym_COLON_EQ, - ACTIONS(1221), 2, - anon_sym_COLON, - anon_sym_EQ, - ACTIONS(1216), 3, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACK, - ACTIONS(1223), 13, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - ACTIONS(1173), 14, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_if, - anon_sym_in, - anon_sym_LBRACK, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - ACTIONS(1178), 15, - anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT, - anon_sym_GT, - [29237] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1001), 16, - anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_STAR_STAR, - anon_sym_EQ, - anon_sym_AT, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT, - anon_sym_GT, - ACTIONS(999), 32, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_LBRACK, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - anon_sym_SEMI, - [29293] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(949), 1, - anon_sym_else, - STATE(544), 1, - sym_else_clause, - ACTIONS(1196), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1194), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [29353] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(941), 1, - anon_sym_else, - STATE(572), 1, - sym_else_clause, - ACTIONS(1227), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1225), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [29413] = 22, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(663), 1, - sym_identifier, - ACTIONS(665), 1, - anon_sym_LPAREN, - ACTIONS(675), 1, - anon_sym_LBRACK, - ACTIONS(677), 1, - anon_sym_await, - ACTIONS(1171), 1, - anon_sym_STAR, - ACTIONS(1229), 1, - anon_sym_RPAREN, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(1012), 1, - sym_primary_expression, - STATE(1356), 1, - sym_pattern, - STATE(1643), 1, - sym__patterns, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(849), 2, - sym_attribute, - sym_subscript, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(999), 3, - sym_tuple_pattern, - sym_list_pattern, - sym_list_splat_pattern, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(669), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(724), 15, - sym_binary_operator, - sym_unary_operator, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [29507] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(945), 1, + ACTIONS(956), 1, anon_sym_finally, - STATE(574), 1, + STATE(571), 1, sym_finally_clause, - ACTIONS(1200), 13, + ACTIONS(1243), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -47735,7 +48477,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1202), 33, + ACTIONS(1241), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -47769,69 +48512,14 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [29567] = 5, + [30060] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(941), 1, - anon_sym_else, - STATE(592), 1, - sym_else_clause, - ACTIONS(1233), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1231), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [29627] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(949), 1, - anon_sym_else, - STATE(536), 1, - sym_else_clause, - ACTIONS(1233), 13, + ACTIONS(982), 1, + anon_sym_finally, + STATE(535), 1, + sym_finally_clause, + ACTIONS(1243), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -47845,7 +48533,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1231), 33, + ACTIONS(1241), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -47879,14 +48568,70 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [29687] = 5, + [30121] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(949), 1, + ACTIONS(952), 1, + anon_sym_else, + STATE(581), 1, + sym_else_clause, + ACTIONS(1225), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1227), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [30182] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(978), 1, anon_sym_else, STATE(528), 1, sym_else_clause, - ACTIONS(1235), 13, + ACTIONS(1245), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -47900,7 +48645,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1237), 33, + ACTIONS(1247), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -47934,70 +48680,17 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [29747] = 3, + [30243] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1015), 16, - anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_STAR_STAR, - anon_sym_EQ, - anon_sym_AT, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1013), 32, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_LBRACK, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - anon_sym_SEMI, - [29803] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(949), 1, - anon_sym_else, - STATE(539), 1, - sym_else_clause, - ACTIONS(1206), 13, + ACTIONS(956), 1, + anon_sym_finally, + STATE(584), 1, + sym_finally_clause, + ACTIONS(1233), 13, + sym__dedent, sym__string_start, sym__template_string_start, - ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -48008,7 +48701,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1204), 33, + ACTIONS(1235), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -48042,392 +48736,13 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [29863] = 5, + [30304] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(949), 1, + ACTIONS(952), 1, anon_sym_else, STATE(588), 1, sym_else_clause, - ACTIONS(1239), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1241), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [29923] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1212), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1214), 35, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_elif, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [29979] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(585), 1, - anon_sym_COLON_EQ, - ACTIONS(587), 2, - anon_sym_COLON, - anon_sym_EQ, - ACTIONS(580), 3, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACK, - ACTIONS(593), 13, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - ACTIONS(298), 14, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_if, - anon_sym_in, - anon_sym_LBRACK, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - ACTIONS(265), 15, - anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT, - anon_sym_GT, - [30043] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1190), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1192), 35, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_elif, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [30099] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(941), 1, - anon_sym_else, - STATE(560), 1, - sym_else_clause, - ACTIONS(1239), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1241), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [30159] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(949), 1, - anon_sym_else, - STATE(515), 1, - sym_else_clause, - ACTIONS(1227), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1225), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [30219] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(941), 1, - anon_sym_else, - STATE(585), 1, - sym_else_clause, - ACTIONS(1235), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1237), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [30279] = 3, - ACTIONS(3), 1, - sym_comment, ACTIONS(1245), 13, sym__dedent, sym__string_start, @@ -48442,7 +48757,445 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1243), 34, + ACTIONS(1247), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [30365] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(952), 1, + anon_sym_else, + STATE(592), 1, + sym_else_clause, + ACTIONS(1251), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1249), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [30426] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1194), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1196), 36, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_elif, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [30483] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(952), 1, + anon_sym_else, + STATE(597), 1, + sym_else_clause, + ACTIONS(1198), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1200), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [30544] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1217), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1219), 36, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_elif, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [30601] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(978), 1, + anon_sym_else, + STATE(553), 1, + sym_else_clause, + ACTIONS(1251), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1249), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [30662] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(952), 1, + anon_sym_else, + STATE(569), 1, + sym_else_clause, + ACTIONS(1237), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1239), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [30723] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1050), 16, + anon_sym_STAR, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR_STAR, + anon_sym_EQ, + anon_sym_AT, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1048), 32, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_LBRACK, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + anon_sym_SEMI, + [30779] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1253), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1255), 35, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -48477,61 +49230,119 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [30334] = 21, + [30835] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(663), 1, - sym_identifier, - ACTIONS(665), 1, - anon_sym_LPAREN, - ACTIONS(675), 1, - anon_sym_LBRACK, - ACTIONS(677), 1, - anon_sym_await, - ACTIONS(1171), 1, + ACTIONS(277), 1, + anon_sym_COMMA, + ACTIONS(283), 1, + anon_sym_COLON_EQ, + ACTIONS(285), 2, + anon_sym_COLON, + anon_sym_EQ, + ACTIONS(307), 13, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + ACTIONS(272), 15, anon_sym_STAR, - STATE(621), 1, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT, + anon_sym_GT, + ACTIONS(303), 16, + sym__newline, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_if, + anon_sym_in, + anon_sym_LBRACK, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [30899] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(694), 1, + sym_identifier, + ACTIONS(698), 1, + anon_sym_LPAREN, + ACTIONS(706), 1, + anon_sym_LBRACK, + ACTIONS(708), 1, + anon_sym_await, + ACTIONS(1190), 1, + anon_sym_STAR, + STATE(694), 1, sym_string, - STATE(624), 1, + STATE(698), 1, sym_template_string, - STATE(1012), 1, + STATE(1017), 1, sym_primary_expression, STATE(1504), 1, sym_pattern, - STATE(1716), 1, + STATE(1674), 1, sym_pattern_list, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(849), 2, + STATE(842), 2, sym_attribute, sym_subscript, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(999), 3, + STATE(1005), 3, sym_tuple_pattern, sym_list_pattern, sym_list_splat_pattern, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(669), 5, + ACTIONS(696), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(724), 15, + STATE(720), 15, sym_binary_operator, sym_unary_operator, sym_call, @@ -48547,65 +49358,10 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [30425] = 6, + [30991] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1175), 1, - anon_sym_COMMA, - ACTIONS(1182), 1, - anon_sym_EQ, - ACTIONS(1184), 14, - anon_sym_COLON, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - ACTIONS(1178), 15, - anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1173), 16, - sym__newline, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_if, - anon_sym_in, - anon_sym_LBRACK, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [30486] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1247), 13, + ACTIONS(1257), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -48619,7 +49375,61 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1249), 34, + ACTIONS(1259), 35, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_case, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [31047] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1253), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1255), 35, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -48654,10 +49464,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [30541] = 3, + [31103] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1251), 13, + ACTIONS(1261), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -48671,7 +49481,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1253), 34, + ACTIONS(1263), 35, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -48706,61 +49517,172 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [30596] = 21, + [31159] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(663), 1, - sym_identifier, - ACTIONS(665), 1, - anon_sym_LPAREN, - ACTIONS(675), 1, - anon_sym_LBRACK, - ACTIONS(677), 1, - anon_sym_await, - ACTIONS(1171), 1, + ACTIONS(1265), 1, + anon_sym_COMMA, + ACTIONS(1268), 1, + anon_sym_COLON_EQ, + ACTIONS(1270), 2, + anon_sym_COLON, + anon_sym_EQ, + ACTIONS(1272), 13, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + ACTIONS(1209), 15, anon_sym_STAR, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(1012), 1, - sym_primary_expression, - STATE(1461), 1, - sym_pattern, - STATE(1657), 1, - sym_pattern_list, - ACTIONS(304), 2, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1204), 16, + sym__newline, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_if, + anon_sym_in, + anon_sym_LBRACK, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [31223] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1276), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, sym_ellipsis, sym_float, - STATE(849), 2, + ACTIONS(1274), 35, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_case, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [31279] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(694), 1, + sym_identifier, + ACTIONS(698), 1, + anon_sym_LPAREN, + ACTIONS(706), 1, + anon_sym_LBRACK, + ACTIONS(708), 1, + anon_sym_await, + ACTIONS(1190), 1, + anon_sym_STAR, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(1017), 1, + sym_primary_expression, + STATE(1515), 1, + sym_pattern, + STATE(1750), 1, + sym_pattern_list, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(842), 2, sym_attribute, sym_subscript, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(999), 3, + STATE(1005), 3, sym_tuple_pattern, sym_list_pattern, sym_list_splat_pattern, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(669), 5, + ACTIONS(696), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(724), 15, + STATE(720), 15, sym_binary_operator, sym_unary_operator, sym_call, @@ -48776,13 +49698,13 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [30687] = 3, + [31371] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1245), 13, + ACTIONS(1280), 13, + sym__dedent, sym__string_start, sym__template_string_start, - ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -48793,7 +49715,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1243), 34, + ACTIONS(1278), 35, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -48828,171 +49751,45 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [30742] = 3, + [31427] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1255), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, + ACTIONS(1032), 16, + anon_sym_STAR, + anon_sym_GT_GT, + anon_sym_PIPE, anon_sym_DASH, anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1257), 34, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_case, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [30797] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1259), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1261), 34, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_case, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [30852] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1263), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1265), 34, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_case, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [30907] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1269), 1, - anon_sym_COMMA, - ACTIONS(1276), 1, anon_sym_EQ, - ACTIONS(1274), 14, + anon_sym_AT, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1030), 32, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_if, anon_sym_COLON, + anon_sym_in, + anon_sym_LBRACK, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, anon_sym_STAR_EQ, @@ -49006,43 +49803,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_EQ, anon_sym_CARET_EQ, anon_sym_PIPE_EQ, - ACTIONS(1272), 15, - anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1267), 16, - sym__newline, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_if, - anon_sym_in, - anon_sym_LBRACK, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, anon_sym_SEMI, - [30968] = 3, + [31483] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1247), 13, + ACTIONS(1257), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -49056,7 +49821,486 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1249), 34, + ACTIONS(1259), 35, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_case, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [31539] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1261), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1263), 35, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_case, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [31595] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(694), 1, + sym_identifier, + ACTIONS(698), 1, + anon_sym_LPAREN, + ACTIONS(706), 1, + anon_sym_LBRACK, + ACTIONS(708), 1, + anon_sym_await, + ACTIONS(1190), 1, + anon_sym_STAR, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(1017), 1, + sym_primary_expression, + STATE(1531), 1, + sym_pattern, + STATE(1751), 1, + sym_pattern_list, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(842), 2, + sym_attribute, + sym_subscript, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1005), 3, + sym_tuple_pattern, + sym_list_pattern, + sym_list_splat_pattern, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(696), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 15, + sym_binary_operator, + sym_unary_operator, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [31687] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1284), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1282), 35, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_case, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [31743] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1284), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1282), 35, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_case, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [31799] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(694), 1, + sym_identifier, + ACTIONS(698), 1, + anon_sym_LPAREN, + ACTIONS(706), 1, + anon_sym_LBRACK, + ACTIONS(708), 1, + anon_sym_await, + ACTIONS(1190), 1, + anon_sym_STAR, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(1017), 1, + sym_primary_expression, + STATE(1405), 1, + sym_pattern, + STATE(1718), 1, + sym_pattern_list, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(842), 2, + sym_attribute, + sym_subscript, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1005), 3, + sym_tuple_pattern, + sym_list_pattern, + sym_list_splat_pattern, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(696), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 15, + sym_binary_operator, + sym_unary_operator, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [31891] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(694), 1, + sym_identifier, + ACTIONS(698), 1, + anon_sym_LPAREN, + ACTIONS(706), 1, + anon_sym_LBRACK, + ACTIONS(708), 1, + anon_sym_await, + ACTIONS(1190), 1, + anon_sym_STAR, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(1017), 1, + sym_primary_expression, + STATE(1532), 1, + sym_pattern, + STATE(1678), 1, + sym_pattern_list, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(842), 2, + sym_attribute, + sym_subscript, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + STATE(1005), 3, + sym_tuple_pattern, + sym_list_pattern, + sym_list_splat_pattern, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(696), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 15, + sym_binary_operator, + sym_unary_operator, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [31983] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1276), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1274), 35, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_case, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [32039] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1280), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1278), 35, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -49091,269 +50335,62 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [31023] = 3, + [32095] = 21, ACTIONS(3), 1, sym_comment, - ACTIONS(1251), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, + ACTIONS(293), 1, anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1253), 34, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_case, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [31078] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1255), 13, - sym__dedent, + ACTIONS(315), 1, sym__string_start, + ACTIONS(317), 1, sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1257), 34, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_case, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, + ACTIONS(694), 1, sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [31133] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1259), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, + ACTIONS(698), 1, anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, + ACTIONS(706), 1, anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1261), 34, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_case, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, + ACTIONS(708), 1, anon_sym_await, - sym_true, - sym_false, - sym_none, - [31188] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1263), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1265), 34, - anon_sym_import, - anon_sym_from, + ACTIONS(1190), 1, anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_case, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [31243] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(663), 1, - sym_identifier, - ACTIONS(665), 1, - anon_sym_LPAREN, - ACTIONS(675), 1, - anon_sym_LBRACK, - ACTIONS(677), 1, - anon_sym_await, - ACTIONS(1171), 1, - anon_sym_STAR, - STATE(621), 1, + STATE(694), 1, sym_string, - STATE(624), 1, + STATE(698), 1, sym_template_string, - STATE(1012), 1, + STATE(1017), 1, sym_primary_expression, - STATE(1496), 1, + STATE(1530), 1, sym_pattern, - STATE(1661), 1, + STATE(1748), 1, sym_pattern_list, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(849), 2, + STATE(842), 2, sym_attribute, sym_subscript, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(999), 3, + STATE(1005), 3, sym_tuple_pattern, sym_list_pattern, sym_list_splat_pattern, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(669), 5, + ACTIONS(696), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(724), 15, + STATE(720), 15, sym_binary_operator, sym_unary_operator, sym_call, @@ -49369,31 +50406,66 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [31334] = 6, + [32187] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1221), 1, - anon_sym_EQ, - ACTIONS(1216), 3, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACK, - ACTIONS(1173), 14, - anon_sym_DOT, + ACTIONS(1288), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, anon_sym_LPAREN, - anon_sym_if, - anon_sym_in, + anon_sym_DASH, + anon_sym_PLUS, anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1286), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - ACTIONS(1223), 14, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [32242] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1292), 1, + anon_sym_COMMA, + ACTIONS(1299), 1, + anon_sym_EQ, + ACTIONS(1297), 14, anon_sym_COLON, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, @@ -49408,7 +50480,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_EQ, anon_sym_CARET_EQ, anon_sym_PIPE_EQ, - ACTIONS(1178), 15, + ACTIONS(1295), 15, anon_sym_STAR, anon_sym_GT_GT, anon_sym_PIPE, @@ -49424,255 +50496,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_LT, anon_sym_LT, anon_sym_GT, - [31395] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(663), 1, - sym_identifier, - ACTIONS(665), 1, - anon_sym_LPAREN, - ACTIONS(675), 1, - anon_sym_LBRACK, - ACTIONS(677), 1, - anon_sym_await, - ACTIONS(1171), 1, - anon_sym_STAR, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(1012), 1, - sym_primary_expression, - STATE(1500), 1, - sym_pattern, - STATE(1707), 1, - sym_pattern_list, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(849), 2, - sym_attribute, - sym_subscript, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(999), 3, - sym_tuple_pattern, - sym_list_pattern, - sym_list_splat_pattern, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(669), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(724), 15, - sym_binary_operator, - sym_unary_operator, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [31486] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(663), 1, - sym_identifier, - ACTIONS(665), 1, - anon_sym_LPAREN, - ACTIONS(675), 1, - anon_sym_LBRACK, - ACTIONS(677), 1, - anon_sym_await, - ACTIONS(1171), 1, - anon_sym_STAR, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(1012), 1, - sym_primary_expression, - STATE(1473), 1, - sym_pattern, - STATE(1672), 1, - sym_pattern_list, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(849), 2, - sym_attribute, - sym_subscript, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(999), 3, - sym_tuple_pattern, - sym_list_pattern, - sym_list_splat_pattern, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(669), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(724), 15, - sym_binary_operator, - sym_unary_operator, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [31577] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(663), 1, - sym_identifier, - ACTIONS(665), 1, - anon_sym_LPAREN, - ACTIONS(675), 1, - anon_sym_LBRACK, - ACTIONS(677), 1, - anon_sym_await, - ACTIONS(1171), 1, - anon_sym_STAR, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(1012), 1, - sym_primary_expression, - STATE(1505), 1, - sym_pattern, - STATE(1719), 1, - sym_pattern_list, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(849), 2, - sym_attribute, - sym_subscript, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - STATE(999), 3, - sym_tuple_pattern, - sym_list_pattern, - sym_list_splat_pattern, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(669), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(724), 15, - sym_binary_operator, - sym_unary_operator, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [31668] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1280), 1, - anon_sym_COMMA, - ACTIONS(1287), 1, - anon_sym_EQ, - ACTIONS(1285), 14, - anon_sym_COLON, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - ACTIONS(1283), 15, - anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1278), 16, + ACTIONS(1290), 16, sym__newline, anon_sym_DOT, anon_sym_LPAREN, @@ -49689,160 +50513,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, anon_sym_SEMI, - [31729] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1289), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1291), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [31783] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1293), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1295), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [31837] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1297), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1299), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [31891] = 3, + [32303] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1301), 13, @@ -49859,7 +50530,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1303), 33, + ACTIONS(1303), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -49893,58 +50565,7 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [31945] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1210), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1208), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [31999] = 3, + [32358] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1305), 13, @@ -49961,7 +50582,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1307), 33, + ACTIONS(1307), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -49995,7 +50617,7 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [32053] = 3, + [32413] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1309), 13, @@ -50012,7 +50634,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1311), 33, + ACTIONS(1311), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -50046,7 +50669,7 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [32107] = 3, + [32468] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1313), 13, @@ -50063,7 +50686,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1315), 33, + ACTIONS(1315), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -50097,7 +50721,7 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [32161] = 3, + [32523] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1317), 13, @@ -50114,7 +50738,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1319), 33, + ACTIONS(1319), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -50148,7 +50773,7 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [32215] = 3, + [32578] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1321), 13, @@ -50165,7 +50790,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1323), 33, + ACTIONS(1323), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -50199,7 +50825,7 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [32269] = 3, + [32633] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1325), 13, @@ -50216,7 +50842,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1327), 33, + ACTIONS(1327), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -50250,7 +50877,7 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [32323] = 3, + [32688] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1329), 13, @@ -50267,7 +50894,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1331), 33, + ACTIONS(1331), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -50301,10 +50929,65 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [32377] = 3, + [32743] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(1333), 13, + ACTIONS(1335), 1, + anon_sym_COMMA, + ACTIONS(1342), 1, + anon_sym_EQ, + ACTIONS(1340), 14, + anon_sym_COLON, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + ACTIONS(1338), 15, + anon_sym_STAR, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1333), 16, + sym__newline, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_if, + anon_sym_in, + anon_sym_LBRACK, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [32804] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1344), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -50318,7 +51001,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1335), 33, + ACTIONS(1346), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -50352,10 +51036,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [32431] = 3, + [32859] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1337), 13, + ACTIONS(1348), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -50369,7 +51053,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1339), 33, + ACTIONS(1350), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -50403,1232 +51088,60 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [32485] = 3, + [32914] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(1341), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, + ACTIONS(293), 1, anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1343), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [32539] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1345), 13, + ACTIONS(315), 1, sym__string_start, + ACTIONS(317), 1, sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1347), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, + ACTIONS(694), 1, sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [32593] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1349), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, + ACTIONS(698), 1, anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, + ACTIONS(706), 1, anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1351), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, + ACTIONS(708), 1, anon_sym_await, - sym_true, - sym_false, - sym_none, - [32647] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1353), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1355), 33, - anon_sym_import, - anon_sym_from, + ACTIONS(1190), 1, anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [32701] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1357), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1359), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [32755] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1361), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1363), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [32809] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1200), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1202), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [32863] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(939), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(937), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [32917] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1365), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1367), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [32971] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1369), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1371), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [33025] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1373), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1375), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [33079] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1377), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1379), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [33133] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1381), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1383), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [33187] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1385), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1387), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [33241] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1389), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1391), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [33295] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1393), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1395), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [33349] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1397), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1399), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [33403] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1401), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1403), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [33457] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1405), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1407), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [33511] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1409), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1411), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [33565] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1413), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1415), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [33619] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1417), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1419), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [33673] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1421), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1423), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [33727] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(663), 1, - sym_identifier, - ACTIONS(665), 1, - anon_sym_LPAREN, - ACTIONS(675), 1, - anon_sym_LBRACK, - ACTIONS(677), 1, - anon_sym_await, - ACTIONS(1171), 1, - anon_sym_STAR, - STATE(621), 1, + STATE(694), 1, sym_string, - STATE(624), 1, + STATE(698), 1, sym_template_string, - STATE(1012), 1, + STATE(1017), 1, sym_primary_expression, - STATE(1445), 1, + STATE(1524), 1, sym_pattern, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(849), 2, + STATE(842), 2, sym_attribute, sym_subscript, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(999), 3, + STATE(1005), 3, sym_tuple_pattern, sym_list_pattern, sym_list_splat_pattern, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(669), 5, + ACTIONS(696), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(724), 15, + STATE(720), 15, sym_binary_operator, sym_unary_operator, sym_call, @@ -51644,7 +51157,1723 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [33815] = 3, + [33003] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1352), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1354), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [33058] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1356), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1358), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [33113] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1360), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1362), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [33168] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1364), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1366), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [33223] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1368), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1370), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [33278] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(950), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(948), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [33333] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1374), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1372), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [33388] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1376), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1378), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [33443] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1380), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1382), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [33498] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1233), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1235), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [33553] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1384), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1386), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [33608] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1388), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1390), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [33663] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(950), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(948), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [33718] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1392), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1394), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [33773] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1396), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1398), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [33828] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1400), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1402), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [33883] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1406), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1404), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [33938] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1410), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1408), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [33993] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1414), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1412), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [34048] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1416), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1418), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [34103] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1420), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1422), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [34158] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1356), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1358), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [34213] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1424), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1426), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [34268] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1364), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1366), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [34323] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1384), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1386), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [34378] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1428), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1430), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [34433] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1243), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1241), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [34488] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1406), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1404), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [34543] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(960), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(958), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [34598] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1243), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1241), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [34653] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1410), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1408), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [34708] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1434), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1432), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [34763] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1438), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1436), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [34818] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1313), 13, @@ -51661,7 +52890,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1315), 33, + ACTIONS(1315), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -51695,10 +52925,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [33869] = 3, + [34873] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(979), 13, + ACTIONS(1388), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -51712,7 +52942,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(981), 33, + ACTIONS(1390), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -51746,1231 +52977,7 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [33923] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1427), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1425), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [33977] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1431), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1429), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [34031] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1435), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1433), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [34085] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1439), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1437), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [34139] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1289), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1291), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [34193] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1443), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1441), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [34247] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1447), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1445), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [34301] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1200), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1202), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [34355] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(939), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(937), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [34409] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1381), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1383), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [34463] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1385), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1387), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [34517] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1409), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1411), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [34571] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1421), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1423), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [34625] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1451), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1449), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [34679] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1455), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1453), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [34733] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1459), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1457), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [34787] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1463), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1461), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [34841] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1467), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1465), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [34895] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1293), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1295), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [34949] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1297), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1299), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [35003] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1301), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1303), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [35057] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1210), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1208), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [35111] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1305), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1307), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [35165] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1309), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1311), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [35219] = 3, + [34928] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1317), 13, @@ -52987,7 +52994,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1319), 33, + ACTIONS(1319), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -53021,7 +53029,59 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [35273] = 3, + [34983] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(960), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(958), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [35038] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(1321), 13, @@ -53038,7 +53098,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1323), 33, + ACTIONS(1323), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -53072,61 +53133,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [35327] = 3, + [35093] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1325), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1327), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [35381] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1451), 13, + ACTIONS(1440), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -53140,7 +53150,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1449), 33, + ACTIONS(1442), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -53174,10 +53185,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [35435] = 3, + [35148] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1329), 13, + ACTIONS(1344), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -53191,7 +53202,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1331), 33, + ACTIONS(1346), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -53225,10 +53237,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [35489] = 3, + [35203] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1333), 13, + ACTIONS(1348), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -53242,7 +53254,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1335), 33, + ACTIONS(1350), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -53276,10 +53289,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [35543] = 3, + [35258] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1337), 13, + ACTIONS(1360), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -53293,7 +53306,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1339), 33, + ACTIONS(1362), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -53327,10 +53341,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [35597] = 3, + [35313] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1341), 13, + ACTIONS(1368), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -53344,7 +53358,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1343), 33, + ACTIONS(1370), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -53378,10 +53393,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [35651] = 3, + [35368] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1345), 13, + ACTIONS(1376), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -53395,7 +53410,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1347), 33, + ACTIONS(1378), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -53429,10 +53445,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [35705] = 3, + [35423] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1349), 13, + ACTIONS(1233), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -53446,7 +53462,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1351), 33, + ACTIONS(1235), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -53480,10 +53497,478 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [35759] = 3, + [35478] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1447), 13, + ACTIONS(1392), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1394), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [35533] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1400), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1402), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [35588] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1416), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1418), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [35643] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1420), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1422), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [35698] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1424), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1426), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [35753] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1440), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1442), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [35808] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1446), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1444), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [35863] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1450), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1448), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [35918] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1454), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1452), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [35973] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1446), 13, sym__string_start, sym__template_string_start, ts_builtin_sym_end, @@ -53497,7 +53982,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1445), 33, + ACTIONS(1444), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -53531,10 +54017,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [35813] = 3, + [36028] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1353), 13, + ACTIONS(1458), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -53548,211 +54034,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1355), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [35867] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1357), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1359), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [35921] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1361), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1363), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [35975] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1365), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1367), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [36029] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1369), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1371), 33, + ACTIONS(1456), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -53789,7 +54072,7 @@ static const uint16_t ts_small_parse_table[] = { [36083] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1373), 13, + ACTIONS(1462), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -53803,7 +54086,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1375), 33, + ACTIONS(1460), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -53837,10 +54121,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [36137] = 3, + [36138] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1377), 13, + ACTIONS(1466), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -53854,7 +54138,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1379), 33, + ACTIONS(1464), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -53888,112 +54173,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [36191] = 3, + [36193] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1455), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1453), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [36245] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1459), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1457), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [36299] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1389), 13, + ACTIONS(1470), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -54007,7 +54190,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1391), 33, + ACTIONS(1468), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -54041,10 +54225,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [36353] = 3, + [36248] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1393), 13, + ACTIONS(1474), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -54058,7 +54242,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1395), 33, + ACTIONS(1472), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -54092,10 +54277,10 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [36407] = 3, + [36303] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1397), 13, + ACTIONS(1352), 13, sym__dedent, sym__string_start, sym__template_string_start, @@ -54109,7 +54294,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1399), 33, + ACTIONS(1354), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -54143,620 +54329,60 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [36461] = 3, + [36358] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(1401), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, + ACTIONS(293), 1, anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1403), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [36515] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1405), 13, - sym__dedent, + ACTIONS(315), 1, sym__string_start, + ACTIONS(317), 1, sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1407), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, + ACTIONS(694), 1, sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [36569] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1413), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, + ACTIONS(698), 1, anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, + ACTIONS(706), 1, anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1415), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, + ACTIONS(708), 1, anon_sym_await, - sym_true, - sym_false, - sym_none, - [36623] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1417), 13, - sym__dedent, - sym__string_start, - sym__template_string_start, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1419), 33, - anon_sym_import, - anon_sym_from, + ACTIONS(1190), 1, anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [36677] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1463), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1461), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [36731] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1467), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1465), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [36785] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(979), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(981), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [36839] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1427), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1425), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [36893] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1431), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1429), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [36947] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1435), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1433), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [37001] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1439), 13, - sym__string_start, - sym__template_string_start, - ts_builtin_sym_end, - anon_sym_LPAREN, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_LBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_TILDE, - sym_ellipsis, - sym_float, - ACTIONS(1437), 33, - anon_sym_import, - anon_sym_from, - anon_sym_STAR, - anon_sym_print, - anon_sym_assert, - anon_sym_return, - anon_sym_del, - anon_sym_raise, - anon_sym_pass, - anon_sym_break, - anon_sym_continue, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_while, - anon_sym_try, - anon_sym_with, - anon_sym_match, - anon_sym_def, - anon_sym_global, - anon_sym_nonlocal, - anon_sym_exec, - anon_sym_type, - anon_sym_class, - anon_sym_not, - anon_sym_lambda, - anon_sym_yield, - sym_integer, - sym_identifier, - anon_sym_await, - sym_true, - sym_false, - sym_none, - [37055] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(663), 1, - sym_identifier, - ACTIONS(665), 1, - anon_sym_LPAREN, - ACTIONS(675), 1, - anon_sym_LBRACK, - ACTIONS(677), 1, - anon_sym_await, - ACTIONS(1171), 1, - anon_sym_STAR, - STATE(621), 1, + STATE(694), 1, sym_string, - STATE(624), 1, + STATE(698), 1, sym_template_string, - STATE(1005), 1, + STATE(1002), 1, sym_pattern, - STATE(1012), 1, + STATE(1017), 1, sym_primary_expression, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - STATE(849), 2, + STATE(842), 2, sym_attribute, sym_subscript, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - STATE(999), 3, + STATE(1005), 3, sym_tuple_pattern, sym_list_pattern, sym_list_splat_pattern, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(669), 5, + ACTIONS(696), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(724), 15, + STATE(720), 15, sym_binary_operator, sym_unary_operator, sym_call, @@ -54772,13 +54398,13 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [37143] = 3, + [36447] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1443), 13, + ACTIONS(1380), 13, + sym__dedent, sym__string_start, sym__template_string_start, - ts_builtin_sym_end, anon_sym_LPAREN, anon_sym_DASH, anon_sym_PLUS, @@ -54789,7 +54415,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_TILDE, sym_ellipsis, sym_float, - ACTIONS(1441), 33, + ACTIONS(1382), 34, + anon_sym_lazy, anon_sym_import, anon_sym_from, anon_sym_STAR, @@ -54823,55 +54450,1521 @@ static const uint16_t ts_small_parse_table[] = { sym_true, sym_false, sym_none, - [37197] = 18, + [36502] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, + ACTIONS(1396), 13, + sym__dedent, sym__string_start, - ACTIONS(312), 1, sym__template_string_start, - ACTIONS(578), 1, anon_sym_LPAREN, - ACTIONS(591), 1, + anon_sym_DASH, + anon_sym_PLUS, anon_sym_LBRACK, - ACTIONS(1469), 1, - sym_identifier, - ACTIONS(1475), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(1012), 1, - sym_primary_expression, - ACTIONS(304), 2, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, sym_ellipsis, sym_float, - STATE(834), 2, + ACTIONS(1398), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [36557] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1428), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1430), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [36612] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1414), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1412), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [36667] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1450), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1448), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [36722] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1478), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1476), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [36777] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1482), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1480), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [36832] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1301), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1303), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [36887] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1305), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1307), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [36942] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1309), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1311), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [36997] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1454), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1452), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [37052] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1470), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1468), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [37107] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1325), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1327), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [37162] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1329), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1331), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [37217] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1434), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1432), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [37272] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1374), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1372), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [37327] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1478), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1476), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [37382] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1482), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1480), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [37437] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1288), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1286), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [37492] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1458), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1456), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [37547] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1462), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1460), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [37602] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1484), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1486), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [37657] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1474), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1472), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [37712] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1466), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1464), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [37767] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1265), 1, + anon_sym_COMMA, + ACTIONS(1270), 1, + anon_sym_EQ, + ACTIONS(1272), 14, + anon_sym_COLON, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + ACTIONS(1209), 15, + anon_sym_STAR, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1204), 16, + sym__newline, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_if, + anon_sym_in, + anon_sym_LBRACK, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [37828] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1438), 13, + sym__string_start, + sym__template_string_start, + ts_builtin_sym_end, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1436), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [37883] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1484), 13, + sym__dedent, + sym__string_start, + sym__template_string_start, + anon_sym_LPAREN, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_LBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_TILDE, + sym_ellipsis, + sym_float, + ACTIONS(1486), 34, + anon_sym_lazy, + anon_sym_import, + anon_sym_from, + anon_sym_STAR, + anon_sym_print, + anon_sym_assert, + anon_sym_return, + anon_sym_del, + anon_sym_raise, + anon_sym_pass, + anon_sym_break, + anon_sym_continue, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_while, + anon_sym_try, + anon_sym_with, + anon_sym_match, + anon_sym_def, + anon_sym_global, + anon_sym_nonlocal, + anon_sym_exec, + anon_sym_type, + anon_sym_class, + anon_sym_not, + anon_sym_lambda, + anon_sym_yield, + sym_integer, + sym_identifier, + anon_sym_await, + sym_true, + sym_false, + sym_none, + [37938] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1206), 1, + anon_sym_COMMA, + ACTIONS(1488), 1, + anon_sym_COLON_EQ, + ACTIONS(1213), 2, + anon_sym_COLON, + anon_sym_EQ, + ACTIONS(1211), 13, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + ACTIONS(1204), 14, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_if, + anon_sym_in, + anon_sym_LBRACK, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + ACTIONS(1209), 15, + anon_sym_STAR, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT, + anon_sym_GT, + [38000] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(587), 1, + anon_sym_COMMA, + ACTIONS(590), 1, + anon_sym_COLON_EQ, + ACTIONS(592), 2, + anon_sym_COLON, + anon_sym_EQ, + ACTIONS(598), 13, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + ACTIONS(303), 14, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_if, + anon_sym_in, + anon_sym_LBRACK, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + ACTIONS(272), 15, + anon_sym_STAR, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT, + anon_sym_GT, + [38062] = 18, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(1490), 1, + sym_identifier, + ACTIONS(1496), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(1017), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(860), 2, sym_attribute, sym_subscript, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(1471), 3, + ACTIONS(1494), 3, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_COLON, - ACTIONS(306), 4, + ACTIONS(311), 4, sym_integer, sym_true, sym_false, sym_none, - ACTIONS(1473), 5, + ACTIONS(1492), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(724), 15, + STATE(720), 15, sym_binary_operator, sym_unary_operator, sym_call, @@ -54887,2383 +55980,50 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [37279] = 16, + [38145] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, + ACTIONS(53), 1, anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, - anon_sym_LPAREN, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(605), 1, - anon_sym_await, - ACTIONS(1477), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(738), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(583), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [37355] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(310), 1, - sym__string_start, - STATE(619), 2, - sym_string, - aux_sym_concatenated_string_repeat1, - ACTIONS(1481), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1479), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [37409] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(312), 1, - sym__template_string_start, - STATE(620), 2, - sym_template_string, - aux_sym_concatenated_template_string_repeat1, - ACTIONS(1485), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1483), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [37463] = 16, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(81), 1, - sym__string_start, ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, sym__template_string_start, - ACTIONS(568), 1, + ACTIONS(575), 1, anon_sym_LPAREN, - ACTIONS(574), 1, + ACTIONS(579), 1, anon_sym_LBRACK, - ACTIONS(576), 1, + ACTIONS(581), 1, anon_sym_await, - ACTIONS(1487), 1, + ACTIONS(1498), 1, anon_sym_not, - STATE(763), 1, + STATE(772), 1, sym_template_string, - STATE(782), 1, + STATE(779), 1, sym_string, - STATE(800), 1, - sym_primary_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(570), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(908), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [37539] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1493), 1, - sym__string_start, - STATE(619), 2, - sym_string, - aux_sym_concatenated_string_repeat1, - ACTIONS(1491), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1489), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [37593] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1500), 1, - sym__template_string_start, - STATE(620), 2, - sym_template_string, - aux_sym_concatenated_template_string_repeat1, - ACTIONS(1498), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1496), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [37647] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(310), 1, - sym__string_start, - STATE(616), 2, - sym_string, - aux_sym_concatenated_string_repeat1, - ACTIONS(1178), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1173), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [37701] = 16, - ACTIONS(3), 1, - sym_comment, - ACTIONS(631), 1, - anon_sym_LPAREN, - ACTIONS(639), 1, - anon_sym_LBRACK, - ACTIONS(641), 1, - anon_sym_LBRACE, - ACTIONS(645), 1, - anon_sym_await, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - ACTIONS(1503), 1, - anon_sym_not, - STATE(794), 1, - sym_string, - STATE(795), 1, - sym_template_string, - STATE(831), 1, - sym_primary_expression, - ACTIONS(643), 2, - sym_ellipsis, - sym_float, - ACTIONS(637), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(629), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(633), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(953), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [37777] = 16, - ACTIONS(3), 1, - sym_comment, - ACTIONS(609), 1, - anon_sym_LPAREN, - ACTIONS(617), 1, - anon_sym_LBRACK, - ACTIONS(619), 1, - anon_sym_LBRACE, - ACTIONS(623), 1, - anon_sym_await, - ACTIONS(625), 1, - sym__string_start, - ACTIONS(627), 1, - sym__template_string_start, - ACTIONS(1505), 1, - anon_sym_not, - STATE(767), 1, - sym_string, - STATE(768), 1, - sym_template_string, - STATE(788), 1, - sym_primary_expression, - ACTIONS(621), 2, - sym_ellipsis, - sym_float, - ACTIONS(615), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(607), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(611), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(924), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [37853] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(312), 1, - sym__template_string_start, - STATE(617), 2, - sym_template_string, - aux_sym_concatenated_template_string_repeat1, - ACTIONS(1178), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1173), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [37907] = 16, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(595), 1, - anon_sym_await, - ACTIONS(1507), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(752), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(583), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [37983] = 16, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(653), 1, - anon_sym_LPAREN, - ACTIONS(659), 1, - anon_sym_LBRACK, - ACTIONS(661), 1, - anon_sym_await, - ACTIONS(1509), 1, - anon_sym_not, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(814), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(657), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(583), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [38059] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(631), 1, - anon_sym_LPAREN, - ACTIONS(639), 1, - anon_sym_LBRACK, - ACTIONS(641), 1, - anon_sym_LBRACE, - ACTIONS(645), 1, - anon_sym_await, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - STATE(794), 1, - sym_string, - STATE(795), 1, - sym_template_string, - STATE(843), 1, - sym_primary_expression, - ACTIONS(643), 2, - sym_ellipsis, - sym_float, - ACTIONS(637), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(629), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(633), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(953), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [38132] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, - anon_sym_LPAREN, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(605), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(736), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(583), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [38205] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, - anon_sym_LPAREN, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(605), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(737), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(583), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [38278] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, - anon_sym_LPAREN, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(605), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(738), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(583), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [38351] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, - anon_sym_LPAREN, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(605), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(748), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(583), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [38424] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, - anon_sym_LPAREN, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(605), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(749), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(583), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [38497] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - ACTIONS(576), 1, - anon_sym_await, - STATE(763), 1, - sym_template_string, - STATE(782), 1, - sym_string, - STATE(804), 1, - sym_primary_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(570), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(908), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [38570] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - ACTIONS(576), 1, - anon_sym_await, - STATE(763), 1, - sym_template_string, - STATE(782), 1, - sym_string, - STATE(805), 1, - sym_primary_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(570), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(908), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [38643] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - ACTIONS(576), 1, - anon_sym_await, - STATE(763), 1, - sym_template_string, - STATE(782), 1, - sym_string, - STATE(796), 1, - sym_primary_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(570), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(908), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [38716] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - ACTIONS(576), 1, - anon_sym_await, - STATE(763), 1, - sym_template_string, - STATE(782), 1, - sym_string, - STATE(799), 1, - sym_primary_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(570), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(908), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [38789] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(631), 1, - anon_sym_LPAREN, - ACTIONS(639), 1, - anon_sym_LBRACK, - ACTIONS(641), 1, - anon_sym_LBRACE, - ACTIONS(645), 1, - anon_sym_await, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - STATE(794), 1, - sym_string, - STATE(795), 1, - sym_template_string, - STATE(828), 1, - sym_primary_expression, - ACTIONS(643), 2, - sym_ellipsis, - sym_float, - ACTIONS(637), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(629), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(633), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(953), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [38862] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(631), 1, - anon_sym_LPAREN, - ACTIONS(639), 1, - anon_sym_LBRACK, - ACTIONS(641), 1, - anon_sym_LBRACE, - ACTIONS(645), 1, - anon_sym_await, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - STATE(794), 1, - sym_string, - STATE(795), 1, - sym_template_string, - STATE(829), 1, - sym_primary_expression, - ACTIONS(643), 2, - sym_ellipsis, - sym_float, - ACTIONS(637), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(629), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(633), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(953), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [38935] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(631), 1, - anon_sym_LPAREN, - ACTIONS(639), 1, - anon_sym_LBRACK, - ACTIONS(641), 1, - anon_sym_LBRACE, - ACTIONS(645), 1, - anon_sym_await, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - STATE(794), 1, - sym_string, - STATE(795), 1, - sym_template_string, - STATE(831), 1, - sym_primary_expression, - ACTIONS(643), 2, - sym_ellipsis, - sym_float, - ACTIONS(637), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(629), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(633), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(953), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [39008] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(631), 1, - anon_sym_LPAREN, - ACTIONS(639), 1, - anon_sym_LBRACK, - ACTIONS(641), 1, - anon_sym_LBRACE, - ACTIONS(645), 1, - anon_sym_await, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - STATE(794), 1, - sym_string, - STATE(795), 1, - sym_template_string, - STATE(832), 1, - sym_primary_expression, - ACTIONS(643), 2, - sym_ellipsis, - sym_float, - ACTIONS(637), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(629), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(633), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(953), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [39081] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(631), 1, - anon_sym_LPAREN, - ACTIONS(639), 1, - anon_sym_LBRACK, - ACTIONS(641), 1, - anon_sym_LBRACE, - ACTIONS(645), 1, - anon_sym_await, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - STATE(794), 1, - sym_string, - STATE(795), 1, - sym_template_string, - STATE(833), 1, - sym_primary_expression, - ACTIONS(643), 2, - sym_ellipsis, - sym_float, - ACTIONS(637), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(629), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(633), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(953), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [39154] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(631), 1, - anon_sym_LPAREN, - ACTIONS(639), 1, - anon_sym_LBRACK, - ACTIONS(641), 1, - anon_sym_LBRACE, - ACTIONS(645), 1, - anon_sym_await, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - STATE(794), 1, - sym_string, - STATE(795), 1, - sym_template_string, - STATE(835), 1, - sym_primary_expression, - ACTIONS(643), 2, - sym_ellipsis, - sym_float, - ACTIONS(637), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(629), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(633), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(953), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [39227] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(631), 1, - anon_sym_LPAREN, - ACTIONS(639), 1, - anon_sym_LBRACK, - ACTIONS(641), 1, - anon_sym_LBRACE, - ACTIONS(645), 1, - anon_sym_await, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - STATE(794), 1, - sym_string, - STATE(795), 1, - sym_template_string, - STATE(836), 1, - sym_primary_expression, - ACTIONS(643), 2, - sym_ellipsis, - sym_float, - ACTIONS(637), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(629), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(633), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(953), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [39300] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(631), 1, - anon_sym_LPAREN, - ACTIONS(639), 1, - anon_sym_LBRACK, - ACTIONS(641), 1, - anon_sym_LBRACE, - ACTIONS(645), 1, - anon_sym_await, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - STATE(794), 1, - sym_string, - STATE(795), 1, - sym_template_string, - STATE(837), 1, - sym_primary_expression, - ACTIONS(643), 2, - sym_ellipsis, - sym_float, - ACTIONS(637), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(629), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(633), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(953), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [39373] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(631), 1, - anon_sym_LPAREN, - ACTIONS(639), 1, - anon_sym_LBRACK, - ACTIONS(641), 1, - anon_sym_LBRACE, - ACTIONS(645), 1, - anon_sym_await, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - STATE(794), 1, - sym_string, - STATE(795), 1, - sym_template_string, - STATE(844), 1, - sym_primary_expression, - ACTIONS(643), 2, - sym_ellipsis, - sym_float, - ACTIONS(637), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(629), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(633), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(953), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [39446] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(609), 1, - anon_sym_LPAREN, - ACTIONS(617), 1, - anon_sym_LBRACK, - ACTIONS(619), 1, - anon_sym_LBRACE, - ACTIONS(623), 1, - anon_sym_await, - ACTIONS(625), 1, - sym__string_start, - ACTIONS(627), 1, - sym__template_string_start, - STATE(767), 1, - sym_string, - STATE(768), 1, - sym_template_string, - STATE(786), 1, - sym_primary_expression, - ACTIONS(621), 2, - sym_ellipsis, - sym_float, - ACTIONS(615), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(607), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(611), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(924), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [39519] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(609), 1, - anon_sym_LPAREN, - ACTIONS(617), 1, - anon_sym_LBRACK, - ACTIONS(619), 1, - anon_sym_LBRACE, - ACTIONS(623), 1, - anon_sym_await, - ACTIONS(625), 1, - sym__string_start, - ACTIONS(627), 1, - sym__template_string_start, - STATE(767), 1, - sym_string, - STATE(768), 1, - sym_template_string, - STATE(787), 1, - sym_primary_expression, - ACTIONS(621), 2, - sym_ellipsis, - sym_float, - ACTIONS(615), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(607), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(611), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(924), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [39592] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(609), 1, - anon_sym_LPAREN, - ACTIONS(617), 1, - anon_sym_LBRACK, - ACTIONS(619), 1, - anon_sym_LBRACE, - ACTIONS(623), 1, - anon_sym_await, - ACTIONS(625), 1, - sym__string_start, - ACTIONS(627), 1, - sym__template_string_start, - STATE(767), 1, - sym_string, - STATE(768), 1, - sym_template_string, - STATE(788), 1, - sym_primary_expression, - ACTIONS(621), 2, - sym_ellipsis, - sym_float, - ACTIONS(615), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(607), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(611), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(924), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [39665] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(609), 1, - anon_sym_LPAREN, - ACTIONS(617), 1, - anon_sym_LBRACK, - ACTIONS(619), 1, - anon_sym_LBRACE, - ACTIONS(623), 1, - anon_sym_await, - ACTIONS(625), 1, - sym__string_start, - ACTIONS(627), 1, - sym__template_string_start, - STATE(767), 1, - sym_string, - STATE(768), 1, - sym_template_string, - STATE(789), 1, - sym_primary_expression, - ACTIONS(621), 2, - sym_ellipsis, - sym_float, - ACTIONS(615), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(607), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(611), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(924), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [39738] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, - anon_sym_LPAREN, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(605), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(743), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(583), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [39811] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(609), 1, - anon_sym_LPAREN, - ACTIONS(617), 1, - anon_sym_LBRACK, - ACTIONS(619), 1, - anon_sym_LBRACE, - ACTIONS(623), 1, - anon_sym_await, - ACTIONS(625), 1, - sym__string_start, - ACTIONS(627), 1, - sym__template_string_start, - STATE(767), 1, - sym_string, - STATE(768), 1, - sym_template_string, - STATE(791), 1, - sym_primary_expression, - ACTIONS(621), 2, - sym_ellipsis, - sym_float, - ACTIONS(615), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(607), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(611), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(924), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [39884] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(609), 1, - anon_sym_LPAREN, - ACTIONS(617), 1, - anon_sym_LBRACK, - ACTIONS(619), 1, - anon_sym_LBRACE, - ACTIONS(623), 1, - anon_sym_await, - ACTIONS(625), 1, - sym__string_start, - ACTIONS(627), 1, - sym__template_string_start, - STATE(767), 1, - sym_string, - STATE(768), 1, - sym_template_string, - STATE(792), 1, - sym_primary_expression, - ACTIONS(621), 2, - sym_ellipsis, - sym_float, - ACTIONS(615), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(607), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(611), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(924), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [39957] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(609), 1, - anon_sym_LPAREN, - ACTIONS(617), 1, - anon_sym_LBRACK, - ACTIONS(619), 1, - anon_sym_LBRACE, - ACTIONS(623), 1, - anon_sym_await, - ACTIONS(625), 1, - sym__string_start, - ACTIONS(627), 1, - sym__template_string_start, - STATE(767), 1, - sym_string, - STATE(768), 1, - sym_template_string, - STATE(793), 1, - sym_primary_expression, - ACTIONS(621), 2, - sym_ellipsis, - sym_float, - ACTIONS(615), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(607), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(611), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(924), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [40030] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, - anon_sym_LPAREN, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(605), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(739), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(583), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [40103] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(609), 1, - anon_sym_LPAREN, - ACTIONS(617), 1, - anon_sym_LBRACK, - ACTIONS(619), 1, - anon_sym_LBRACE, - ACTIONS(623), 1, - anon_sym_await, - ACTIONS(625), 1, - sym__string_start, - ACTIONS(627), 1, - sym__template_string_start, - STATE(767), 1, - sym_string, - STATE(768), 1, - sym_template_string, - STATE(797), 1, - sym_primary_expression, - ACTIONS(621), 2, - sym_ellipsis, - sym_float, - ACTIONS(615), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(607), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(611), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(924), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [40176] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(609), 1, - anon_sym_LPAREN, - ACTIONS(617), 1, - anon_sym_LBRACK, - ACTIONS(619), 1, - anon_sym_LBRACE, - ACTIONS(623), 1, - anon_sym_await, - ACTIONS(625), 1, - sym__string_start, - ACTIONS(627), 1, - sym__template_string_start, - STATE(767), 1, - sym_string, - STATE(768), 1, - sym_template_string, STATE(798), 1, sym_primary_expression, - ACTIONS(621), 2, + ACTIONS(77), 2, sym_ellipsis, sym_float, - ACTIONS(615), 3, + ACTIONS(49), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(607), 5, + ACTIONS(79), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(611), 5, + ACTIONS(573), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(924), 17, + STATE(950), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -57281,47 +56041,50 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [40249] = 15, + [38222] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(597), 1, + ACTIONS(636), 1, anon_sym_LPAREN, - ACTIONS(603), 1, + ACTIONS(642), 1, anon_sym_LBRACK, - ACTIONS(605), 1, + ACTIONS(644), 1, anon_sym_await, - STATE(621), 1, + ACTIONS(1500), 1, + anon_sym_not, + STATE(694), 1, sym_string, - STATE(624), 1, + STATE(698), 1, sym_template_string, - STATE(759), 1, + STATE(821), 1, sym_primary_expression, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(601), 3, + ACTIONS(640), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 5, + ACTIONS(311), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(583), 5, + ACTIONS(583), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(724), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -57339,105 +56102,50 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [40322] = 15, + [38299] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(568), 1, + ACTIONS(616), 1, anon_sym_LPAREN, - ACTIONS(574), 1, + ACTIONS(622), 1, anon_sym_LBRACK, - ACTIONS(576), 1, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(628), 1, anon_sym_await, - STATE(763), 1, - sym_template_string, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + ACTIONS(1502), 1, + anon_sym_not, + STATE(781), 1, + sym_string, STATE(782), 1, - sym_string, - STATE(823), 1, - sym_primary_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(570), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(908), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [40395] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - ACTIONS(576), 1, - anon_sym_await, - STATE(763), 1, sym_template_string, - STATE(782), 1, - sym_string, - STATE(824), 1, + STATE(810), 1, sym_primary_expression, - ACTIONS(75), 2, + ACTIONS(626), 2, sym_ellipsis, sym_float, - ACTIONS(47), 3, + ACTIONS(620), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(77), 5, + ACTIONS(612), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(570), 5, + ACTIONS(614), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(908), 17, + STATE(949), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -57455,47 +56163,50 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [40468] = 15, + [38376] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, + ACTIONS(650), 1, anon_sym_LPAREN, - ACTIONS(603), 1, + ACTIONS(656), 1, anon_sym_LBRACK, - ACTIONS(605), 1, + ACTIONS(658), 1, + anon_sym_LBRACE, + ACTIONS(662), 1, anon_sym_await, - STATE(621), 1, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(1504), 1, + anon_sym_not, + STATE(790), 1, sym_string, - STATE(624), 1, + STATE(791), 1, sym_template_string, - STATE(740), 1, + STATE(856), 1, sym_primary_expression, - ACTIONS(304), 2, + ACTIONS(660), 2, sym_ellipsis, sym_float, - ACTIONS(601), 3, + ACTIONS(654), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 5, + ACTIONS(646), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(583), 5, + ACTIONS(648), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(724), 17, + STATE(985), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -57513,47 +56224,50 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [40541] = 15, + [38453] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(51), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(81), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(83), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(568), 1, + ACTIONS(602), 1, anon_sym_LPAREN, - ACTIONS(574), 1, + ACTIONS(608), 1, anon_sym_LBRACK, - ACTIONS(576), 1, + ACTIONS(610), 1, anon_sym_await, - STATE(763), 1, + ACTIONS(1506), 1, + anon_sym_not, + STATE(694), 1, + sym_string, + STATE(698), 1, sym_template_string, - STATE(782), 1, - sym_string, - STATE(800), 1, + STATE(764), 1, sym_primary_expression, - ACTIONS(75), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(47), 3, + ACTIONS(606), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(77), 5, + ACTIONS(311), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(570), 5, + ACTIONS(583), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(908), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -57571,687 +56285,50 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [40614] = 17, + [38530] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(578), 1, + ACTIONS(585), 1, anon_sym_LPAREN, - ACTIONS(591), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(1469), 1, - sym_identifier, - ACTIONS(1475), 1, + ACTIONS(600), 1, anon_sym_await, - STATE(621), 1, + ACTIONS(1508), 1, + anon_sym_not, + STATE(694), 1, sym_string, - STATE(624), 1, - sym_template_string, - STATE(1012), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(834), 2, - sym_attribute, - sym_subscript, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(1473), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(724), 15, - sym_binary_operator, - sym_unary_operator, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [40691] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(595), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(750), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(583), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [40764] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(595), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(751), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(583), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [40837] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(595), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(752), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(583), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [40910] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(595), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(753), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(583), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [40983] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(595), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(734), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(583), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [41056] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(595), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(754), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(583), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [41129] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(595), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(755), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(583), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [41202] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(595), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(756), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(583), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [41275] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, - anon_sym_LPAREN, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(605), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(741), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(601), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(583), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [41348] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - ACTIONS(576), 1, - anon_sym_await, - STATE(763), 1, - sym_template_string, - STATE(782), 1, - sym_string, - STATE(801), 1, - sym_primary_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(570), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(908), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [41421] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(595), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, + STATE(698), 1, sym_template_string, STATE(757), 1, sym_primary_expression, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(296), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 5, + ACTIONS(311), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(583), 5, + ACTIONS(583), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(724), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -58269,47 +56346,48 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [41494] = 15, + [38607] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(578), 1, + ACTIONS(602), 1, anon_sym_LPAREN, - ACTIONS(591), 1, + ACTIONS(608), 1, anon_sym_LBRACK, - ACTIONS(595), 1, + ACTIONS(610), 1, anon_sym_await, - STATE(621), 1, + STATE(694), 1, sym_string, - STATE(624), 1, + STATE(698), 1, sym_template_string, - STATE(758), 1, + STATE(745), 1, sym_primary_expression, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(296), 3, + ACTIONS(606), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 5, + ACTIONS(311), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(583), 5, + ACTIONS(583), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(724), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -58327,47 +56405,97 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [41567] = 15, + [38681] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, + ACTIONS(1514), 1, sym__template_string_start, - ACTIONS(578), 1, + STATE(627), 2, + sym_template_string, + aux_sym_concatenated_template_string_repeat1, + ACTIONS(1512), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1510), 33, + anon_sym_DOT, anon_sym_LPAREN, - ACTIONS(591), 1, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, anon_sym_LBRACK, - ACTIONS(595), 1, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [38735] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(650), 1, + anon_sym_LPAREN, + ACTIONS(656), 1, + anon_sym_LBRACK, + ACTIONS(658), 1, + anon_sym_LBRACE, + ACTIONS(662), 1, anon_sym_await, - STATE(621), 1, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + STATE(790), 1, sym_string, - STATE(624), 1, + STATE(791), 1, sym_template_string, - STATE(761), 1, + STATE(833), 1, sym_primary_expression, - ACTIONS(304), 2, + ACTIONS(660), 2, sym_ellipsis, sym_float, - ACTIONS(296), 3, + ACTIONS(654), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 5, + ACTIONS(646), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(583), 5, + ACTIONS(648), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(724), 17, + STATE(985), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -58385,397 +56513,107 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [41640] = 15, + [38809] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(568), 1, + ACTIONS(650), 1, anon_sym_LPAREN, - ACTIONS(574), 1, + ACTIONS(656), 1, anon_sym_LBRACK, - ACTIONS(576), 1, + ACTIONS(658), 1, + anon_sym_LBRACE, + ACTIONS(662), 1, anon_sym_await, - STATE(763), 1, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + STATE(790), 1, + sym_string, + STATE(791), 1, sym_template_string, + STATE(864), 1, + sym_primary_expression, + ACTIONS(660), 2, + sym_ellipsis, + sym_float, + ACTIONS(654), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(646), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(648), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(985), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [38883] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(628), 1, + anon_sym_await, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + STATE(781), 1, + sym_string, STATE(782), 1, - sym_string, - STATE(811), 1, - sym_primary_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(570), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(908), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [41713] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(631), 1, - anon_sym_LPAREN, - ACTIONS(639), 1, - anon_sym_LBRACK, - ACTIONS(641), 1, - anon_sym_LBRACE, - ACTIONS(645), 1, - anon_sym_await, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - STATE(794), 1, - sym_string, - STATE(795), 1, - sym_template_string, - STATE(845), 1, - sym_primary_expression, - ACTIONS(643), 2, - sym_ellipsis, - sym_float, - ACTIONS(637), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(629), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(633), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(953), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [41786] = 17, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(578), 1, - anon_sym_LPAREN, - ACTIONS(591), 1, - anon_sym_LBRACK, - ACTIONS(1511), 1, - sym_identifier, - ACTIONS(1515), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(1012), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - STATE(1000), 2, - sym_attribute, - sym_subscript, - ACTIONS(296), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 4, - sym_integer, - sym_true, - sym_false, - sym_none, - ACTIONS(1513), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(724), 15, - sym_binary_operator, - sym_unary_operator, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [41863] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(609), 1, - anon_sym_LPAREN, - ACTIONS(617), 1, - anon_sym_LBRACK, - ACTIONS(619), 1, - anon_sym_LBRACE, - ACTIONS(623), 1, - anon_sym_await, - ACTIONS(625), 1, - sym__string_start, - ACTIONS(627), 1, - sym__template_string_start, - STATE(767), 1, - sym_string, - STATE(768), 1, - sym_template_string, - STATE(784), 1, - sym_primary_expression, - ACTIONS(621), 2, - sym_ellipsis, - sym_float, - ACTIONS(615), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(607), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(611), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(924), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [41936] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(568), 1, - anon_sym_LPAREN, - ACTIONS(574), 1, - anon_sym_LBRACK, - ACTIONS(576), 1, - anon_sym_await, - STATE(763), 1, - sym_template_string, - STATE(782), 1, - sym_string, - STATE(802), 1, - sym_primary_expression, - ACTIONS(75), 2, - sym_ellipsis, - sym_float, - ACTIONS(47), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(77), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(570), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(908), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [42009] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(653), 1, - anon_sym_LPAREN, - ACTIONS(659), 1, - anon_sym_LBRACK, - ACTIONS(661), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, - sym_template_string, - STATE(812), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(657), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(583), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [42082] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(653), 1, - anon_sym_LPAREN, - ACTIONS(659), 1, - anon_sym_LBRACK, - ACTIONS(661), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, sym_template_string, STATE(813), 1, sym_primary_expression, - ACTIONS(304), 2, + ACTIONS(626), 2, sym_ellipsis, sym_float, - ACTIONS(657), 3, + ACTIONS(620), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 5, + ACTIONS(612), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(583), 5, + ACTIONS(614), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(724), 17, + STATE(949), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -58793,47 +56631,345 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [42155] = 15, + [38957] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(653), 1, + ACTIONS(650), 1, anon_sym_LPAREN, - ACTIONS(659), 1, + ACTIONS(656), 1, anon_sym_LBRACK, - ACTIONS(661), 1, + ACTIONS(658), 1, + anon_sym_LBRACE, + ACTIONS(662), 1, anon_sym_await, - STATE(621), 1, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + STATE(790), 1, sym_string, - STATE(624), 1, + STATE(791), 1, + sym_template_string, + STATE(863), 1, + sym_primary_expression, + ACTIONS(660), 2, + sym_ellipsis, + sym_float, + ACTIONS(654), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(646), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(648), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(985), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [39031] = 17, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(1490), 1, + sym_identifier, + ACTIONS(1496), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(1017), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(860), 2, + sym_attribute, + sym_subscript, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(1492), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 15, + sym_binary_operator, + sym_unary_operator, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [39109] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(650), 1, + anon_sym_LPAREN, + ACTIONS(656), 1, + anon_sym_LBRACK, + ACTIONS(658), 1, + anon_sym_LBRACE, + ACTIONS(662), 1, + anon_sym_await, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + STATE(790), 1, + sym_string, + STATE(791), 1, + sym_template_string, + STATE(868), 1, + sym_primary_expression, + ACTIONS(660), 2, + sym_ellipsis, + sym_float, + ACTIONS(654), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(646), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(648), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(985), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [39183] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + ACTIONS(581), 1, + anon_sym_await, + STATE(772), 1, + sym_template_string, + STATE(779), 1, + sym_string, + STATE(797), 1, + sym_primary_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(573), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [39257] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(650), 1, + anon_sym_LPAREN, + ACTIONS(656), 1, + anon_sym_LBRACK, + ACTIONS(658), 1, + anon_sym_LBRACE, + ACTIONS(662), 1, + anon_sym_await, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + STATE(790), 1, + sym_string, + STATE(791), 1, + sym_template_string, + STATE(865), 1, + sym_primary_expression, + ACTIONS(660), 2, + sym_ellipsis, + sym_float, + ACTIONS(654), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(646), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(648), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(985), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [39331] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(628), 1, + anon_sym_await, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + STATE(781), 1, + sym_string, + STATE(782), 1, sym_template_string, STATE(814), 1, sym_primary_expression, - ACTIONS(304), 2, + ACTIONS(626), 2, sym_ellipsis, sym_float, - ACTIONS(657), 3, + ACTIONS(620), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 5, + ACTIONS(612), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(583), 5, + ACTIONS(614), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(724), 17, + STATE(949), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -58851,47 +56987,107 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [42228] = 15, + [39405] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, + ACTIONS(53), 1, anon_sym_LBRACE, - ACTIONS(310), 1, + ACTIONS(83), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(85), 1, sym__template_string_start, - ACTIONS(653), 1, + ACTIONS(575), 1, anon_sym_LPAREN, - ACTIONS(659), 1, + ACTIONS(579), 1, anon_sym_LBRACK, - ACTIONS(661), 1, + ACTIONS(581), 1, anon_sym_await, - STATE(621), 1, + STATE(772), 1, + sym_template_string, + STATE(779), 1, sym_string, - STATE(624), 1, + STATE(798), 1, + sym_primary_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(573), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [39479] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(628), 1, + anon_sym_await, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + STATE(781), 1, + sym_string, + STATE(782), 1, sym_template_string, STATE(815), 1, sym_primary_expression, - ACTIONS(304), 2, + ACTIONS(626), 2, sym_ellipsis, sym_float, - ACTIONS(657), 3, + ACTIONS(620), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 5, + ACTIONS(612), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(583), 5, + ACTIONS(614), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(724), 17, + STATE(949), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -58909,47 +57105,758 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [42301] = 15, + [39553] = 17, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(653), 1, + ACTIONS(585), 1, anon_sym_LPAREN, - ACTIONS(659), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(661), 1, + ACTIONS(1517), 1, + sym_identifier, + ACTIONS(1521), 1, anon_sym_await, - STATE(621), 1, + STATE(694), 1, sym_string, - STATE(624), 1, + STATE(698), 1, + sym_template_string, + STATE(1017), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + STATE(1013), 2, + sym_attribute, + sym_subscript, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 4, + sym_integer, + sym_true, + sym_false, + sym_none, + ACTIONS(1519), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 15, + sym_binary_operator, + sym_unary_operator, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [39631] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + ACTIONS(581), 1, + anon_sym_await, + STATE(772), 1, + sym_template_string, + STATE(779), 1, + sym_string, + STATE(801), 1, + sym_primary_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(573), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [39705] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(650), 1, + anon_sym_LPAREN, + ACTIONS(656), 1, + anon_sym_LBRACK, + ACTIONS(658), 1, + anon_sym_LBRACE, + ACTIONS(662), 1, + anon_sym_await, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + STATE(790), 1, + sym_string, + STATE(791), 1, + sym_template_string, + STATE(845), 1, + sym_primary_expression, + ACTIONS(660), 2, + sym_ellipsis, + sym_float, + ACTIONS(654), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(646), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(648), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(985), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [39779] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(628), 1, + anon_sym_await, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + STATE(781), 1, + sym_string, + STATE(782), 1, + sym_template_string, + STATE(804), 1, + sym_primary_expression, + ACTIONS(626), 2, + sym_ellipsis, + sym_float, + ACTIONS(620), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(612), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(614), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(949), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [39853] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + ACTIONS(581), 1, + anon_sym_await, + STATE(772), 1, + sym_template_string, + STATE(779), 1, + sym_string, + STATE(818), 1, + sym_primary_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(573), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [39927] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + ACTIONS(581), 1, + anon_sym_await, + STATE(772), 1, + sym_template_string, + STATE(779), 1, + sym_string, + STATE(796), 1, + sym_primary_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(573), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [40001] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(610), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(751), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [40075] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + ACTIONS(581), 1, + anon_sym_await, + STATE(772), 1, + sym_template_string, + STATE(779), 1, + sym_string, + STATE(803), 1, + sym_primary_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(573), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [40149] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + ACTIONS(581), 1, + anon_sym_await, + STATE(772), 1, + sym_template_string, + STATE(779), 1, + sym_string, + STATE(788), 1, + sym_primary_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(573), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [40223] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + ACTIONS(581), 1, + anon_sym_await, + STATE(772), 1, + sym_template_string, + STATE(779), 1, + sym_string, + STATE(800), 1, + sym_primary_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(573), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [40297] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(610), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(752), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [40371] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(610), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(764), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [40445] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(628), 1, + anon_sym_await, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + STATE(781), 1, + sym_string, + STATE(782), 1, sym_template_string, STATE(816), 1, sym_primary_expression, - ACTIONS(304), 2, + ACTIONS(626), 2, sym_ellipsis, sym_float, - ACTIONS(657), 3, + ACTIONS(620), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 5, + ACTIONS(612), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(583), 5, + ACTIONS(614), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(724), 17, + STATE(949), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -58967,47 +57874,48 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [42374] = 15, + [40519] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(653), 1, + ACTIONS(616), 1, anon_sym_LPAREN, - ACTIONS(659), 1, + ACTIONS(622), 1, anon_sym_LBRACK, - ACTIONS(661), 1, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(628), 1, anon_sym_await, - STATE(621), 1, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + STATE(781), 1, sym_string, - STATE(624), 1, + STATE(782), 1, sym_template_string, STATE(817), 1, sym_primary_expression, - ACTIONS(304), 2, + ACTIONS(626), 2, sym_ellipsis, sym_float, - ACTIONS(657), 3, + ACTIONS(620), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 5, + ACTIONS(612), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(583), 5, + ACTIONS(614), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(724), 17, + STATE(949), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -59025,47 +57933,48 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [42447] = 15, + [40593] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, + ACTIONS(53), 1, anon_sym_LBRACE, - ACTIONS(310), 1, + ACTIONS(83), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(85), 1, sym__template_string_start, - ACTIONS(653), 1, + ACTIONS(575), 1, anon_sym_LPAREN, - ACTIONS(659), 1, + ACTIONS(579), 1, anon_sym_LBRACK, - ACTIONS(661), 1, + ACTIONS(581), 1, anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, + STATE(772), 1, sym_template_string, - STATE(818), 1, + STATE(779), 1, + sym_string, + STATE(806), 1, sym_primary_expression, - ACTIONS(304), 2, + ACTIONS(77), 2, sym_ellipsis, sym_float, - ACTIONS(657), 3, + ACTIONS(49), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 5, + ACTIONS(79), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(583), 5, + ACTIONS(573), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(724), 17, + STATE(950), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -59083,105 +57992,48 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [42520] = 15, + [40667] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(653), 1, + ACTIONS(602), 1, anon_sym_LPAREN, - ACTIONS(659), 1, + ACTIONS(608), 1, anon_sym_LBRACK, - ACTIONS(661), 1, + ACTIONS(610), 1, anon_sym_await, - STATE(621), 1, + STATE(694), 1, sym_string, - STATE(624), 1, - sym_template_string, - STATE(819), 1, - sym_primary_expression, - ACTIONS(304), 2, - sym_ellipsis, - sym_float, - ACTIONS(657), 3, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_TILDE, - ACTIONS(306), 5, - sym_integer, - sym_identifier, - sym_true, - sym_false, - sym_none, - ACTIONS(583), 5, - anon_sym_print, - anon_sym_async, - anon_sym_match, - anon_sym_exec, - anon_sym_type, - STATE(724), 17, - sym_binary_operator, - sym_unary_operator, - sym_attribute, - sym_subscript, - sym_call, - sym_list, - sym_set, - sym_tuple, - sym_dictionary, - sym_list_comprehension, - sym_dictionary_comprehension, - sym_set_comprehension, - sym_generator_expression, - sym_parenthesized_expression, - sym_concatenated_string, - sym_concatenated_template_string, - sym_await, - [42593] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(288), 1, - anon_sym_LBRACE, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(597), 1, - anon_sym_LPAREN, - ACTIONS(603), 1, - anon_sym_LBRACK, - ACTIONS(605), 1, - anon_sym_await, - STATE(621), 1, - sym_string, - STATE(624), 1, + STATE(698), 1, sym_template_string, STATE(742), 1, sym_primary_expression, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(601), 3, + ACTIONS(606), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 5, + ACTIONS(311), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(583), 5, + ACTIONS(583), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(724), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -59199,47 +58051,1582 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [42666] = 15, + [40741] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(653), 1, + ACTIONS(602), 1, anon_sym_LPAREN, - ACTIONS(659), 1, + ACTIONS(608), 1, anon_sym_LBRACK, - ACTIONS(661), 1, + ACTIONS(610), 1, anon_sym_await, - STATE(621), 1, + STATE(694), 1, sym_string, - STATE(624), 1, + STATE(698), 1, sym_template_string, - STATE(820), 1, + STATE(743), 1, sym_primary_expression, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(657), 3, + ACTIONS(606), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 5, + ACTIONS(311), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(583), 5, + ACTIONS(583), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(724), 17, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [40815] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(610), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(744), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [40889] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(628), 1, + anon_sym_await, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + STATE(781), 1, + sym_string, + STATE(782), 1, + sym_template_string, + STATE(830), 1, + sym_primary_expression, + ACTIONS(626), 2, + sym_ellipsis, + sym_float, + ACTIONS(620), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(612), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(614), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(949), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [40963] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(650), 1, + anon_sym_LPAREN, + ACTIONS(656), 1, + anon_sym_LBRACK, + ACTIONS(658), 1, + anon_sym_LBRACE, + ACTIONS(662), 1, + anon_sym_await, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + STATE(790), 1, + sym_string, + STATE(791), 1, + sym_template_string, + STATE(867), 1, + sym_primary_expression, + ACTIONS(660), 2, + sym_ellipsis, + sym_float, + ACTIONS(654), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(646), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(648), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(985), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [41037] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(610), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(746), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [41111] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(650), 1, + anon_sym_LPAREN, + ACTIONS(656), 1, + anon_sym_LBRACK, + ACTIONS(658), 1, + anon_sym_LBRACE, + ACTIONS(662), 1, + anon_sym_await, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + STATE(790), 1, + sym_string, + STATE(791), 1, + sym_template_string, + STATE(866), 1, + sym_primary_expression, + ACTIONS(660), 2, + sym_ellipsis, + sym_float, + ACTIONS(654), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(646), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(648), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(985), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [41185] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(636), 1, + anon_sym_LPAREN, + ACTIONS(642), 1, + anon_sym_LBRACK, + ACTIONS(644), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(819), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(640), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [41259] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(636), 1, + anon_sym_LPAREN, + ACTIONS(642), 1, + anon_sym_LBRACK, + ACTIONS(644), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(820), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(640), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [41333] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(636), 1, + anon_sym_LPAREN, + ACTIONS(642), 1, + anon_sym_LBRACK, + ACTIONS(644), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(821), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(640), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [41407] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(636), 1, + anon_sym_LPAREN, + ACTIONS(642), 1, + anon_sym_LBRACK, + ACTIONS(644), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(823), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(640), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [41481] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(636), 1, + anon_sym_LPAREN, + ACTIONS(642), 1, + anon_sym_LBRACK, + ACTIONS(644), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(824), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(640), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [41555] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(636), 1, + anon_sym_LPAREN, + ACTIONS(642), 1, + anon_sym_LBRACK, + ACTIONS(644), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(825), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(640), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [41629] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(636), 1, + anon_sym_LPAREN, + ACTIONS(642), 1, + anon_sym_LBRACK, + ACTIONS(644), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(826), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(640), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [41703] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + ACTIONS(581), 1, + anon_sym_await, + STATE(772), 1, + sym_template_string, + STATE(779), 1, + sym_string, + STATE(802), 1, + sym_primary_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(573), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [41777] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(610), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(740), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [41851] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(636), 1, + anon_sym_LPAREN, + ACTIONS(642), 1, + anon_sym_LBRACK, + ACTIONS(644), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(827), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(640), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [41925] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(636), 1, + anon_sym_LPAREN, + ACTIONS(642), 1, + anon_sym_LBRACK, + ACTIONS(644), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(828), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(640), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [41999] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(628), 1, + anon_sym_await, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + STATE(781), 1, + sym_string, + STATE(782), 1, + sym_template_string, + STATE(809), 1, + sym_primary_expression, + ACTIONS(626), 2, + sym_ellipsis, + sym_float, + ACTIONS(620), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(612), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(614), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(949), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [42073] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(636), 1, + anon_sym_LPAREN, + ACTIONS(642), 1, + anon_sym_LBRACK, + ACTIONS(644), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(829), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(640), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [42147] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(600), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(755), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [42221] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(610), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(741), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [42295] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(600), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(756), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [42369] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(600), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(757), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [42443] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(600), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(739), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [42517] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(628), 1, + anon_sym_await, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + STATE(781), 1, + sym_string, + STATE(782), 1, + sym_template_string, + STATE(811), 1, + sym_primary_expression, + ACTIONS(626), 2, + sym_ellipsis, + sym_float, + ACTIONS(620), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(612), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(614), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(949), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [42591] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(600), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(758), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [42665] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(600), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(759), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -59260,44 +59647,45 @@ static const uint16_t ts_small_parse_table[] = { [42739] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(653), 1, + ACTIONS(585), 1, anon_sym_LPAREN, - ACTIONS(659), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(661), 1, + ACTIONS(600), 1, anon_sym_await, - STATE(621), 1, + STATE(694), 1, sym_string, - STATE(624), 1, + STATE(698), 1, sym_template_string, - STATE(821), 1, + STATE(760), 1, sym_primary_expression, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(657), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 5, + ACTIONS(311), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(583), 5, + ACTIONS(583), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(724), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -59315,47 +59703,48 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [42812] = 15, + [42813] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(288), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(653), 1, + ACTIONS(585), 1, anon_sym_LPAREN, - ACTIONS(659), 1, + ACTIONS(596), 1, anon_sym_LBRACK, - ACTIONS(661), 1, + ACTIONS(600), 1, anon_sym_await, - STATE(621), 1, + STATE(694), 1, sym_string, - STATE(624), 1, + STATE(698), 1, sym_template_string, - STATE(803), 1, + STATE(761), 1, sym_primary_expression, - ACTIONS(304), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(657), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(306), 5, + ACTIONS(311), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(583), 5, + ACTIONS(583), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(724), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -59373,47 +59762,215 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [42885] = 15, + [42887] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(51), 1, - anon_sym_LBRACE, - ACTIONS(81), 1, - sym__string_start, - ACTIONS(83), 1, - sym__template_string_start, - ACTIONS(568), 1, + ACTIONS(650), 1, anon_sym_LPAREN, - ACTIONS(574), 1, + ACTIONS(656), 1, anon_sym_LBRACK, - ACTIONS(576), 1, + ACTIONS(658), 1, + anon_sym_LBRACE, + ACTIONS(662), 1, anon_sym_await, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + STATE(790), 1, + sym_string, + STATE(791), 1, + sym_template_string, + STATE(862), 1, + sym_primary_expression, + ACTIONS(660), 2, + sym_ellipsis, + sym_float, + ACTIONS(654), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(646), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(648), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(985), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [42961] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1527), 1, + sym__string_start, + STATE(685), 2, + sym_string, + aux_sym_concatenated_string_repeat1, + ACTIONS(1525), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1523), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [43015] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(600), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(762), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(301), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [43089] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(600), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, STATE(763), 1, - sym_template_string, - STATE(782), 1, - sym_string, - STATE(825), 1, sym_primary_expression, - ACTIONS(75), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(47), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(77), 5, + ACTIONS(311), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(570), 5, + ACTIONS(583), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(908), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -59431,47 +59988,48 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [42958] = 15, + [43163] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(609), 1, - anon_sym_LPAREN, - ACTIONS(617), 1, - anon_sym_LBRACK, - ACTIONS(619), 1, + ACTIONS(293), 1, anon_sym_LBRACE, - ACTIONS(623), 1, - anon_sym_await, - ACTIONS(625), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(627), 1, + ACTIONS(317), 1, sym__template_string_start, - STATE(767), 1, + ACTIONS(585), 1, + anon_sym_LPAREN, + ACTIONS(596), 1, + anon_sym_LBRACK, + ACTIONS(600), 1, + anon_sym_await, + STATE(694), 1, sym_string, - STATE(768), 1, + STATE(698), 1, sym_template_string, - STATE(783), 1, + STATE(765), 1, sym_primary_expression, - ACTIONS(621), 2, + ACTIONS(309), 2, sym_ellipsis, sym_float, - ACTIONS(615), 3, + ACTIONS(301), 3, anon_sym_DASH, anon_sym_PLUS, anon_sym_TILDE, - ACTIONS(607), 5, + ACTIONS(311), 5, sym_integer, sym_identifier, sym_true, sym_false, sym_none, - ACTIONS(611), 5, + ACTIONS(583), 6, + anon_sym_lazy, anon_sym_print, anon_sym_async, anon_sym_match, anon_sym_exec, anon_sym_type, - STATE(924), 17, + STATE(720), 17, sym_binary_operator, sym_unary_operator, sym_attribute, @@ -59489,18 +60047,81 @@ static const uint16_t ts_small_parse_table[] = { sym_concatenated_string, sym_concatenated_template_string, sym_await, - [43031] = 3, + [43237] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(1519), 6, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(628), 1, + anon_sym_await, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + STATE(781), 1, + sym_string, + STATE(782), 1, + sym_template_string, + STATE(812), 1, + sym_primary_expression, + ACTIONS(626), 2, + sym_ellipsis, + sym_float, + ACTIONS(620), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(612), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(614), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(949), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [43311] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(315), 1, + sym__string_start, + STATE(685), 2, + sym_string, + aux_sym_concatenated_string_repeat1, + ACTIONS(1532), 6, anon_sym_as, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1517), 34, - sym__string_start, + ACTIONS(1530), 33, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -59534,17 +60155,518 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [43079] = 3, + [43365] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(1523), 6, + ACTIONS(53), 1, + anon_sym_LBRACE, + ACTIONS(83), 1, + sym__string_start, + ACTIONS(85), 1, + sym__template_string_start, + ACTIONS(575), 1, + anon_sym_LPAREN, + ACTIONS(579), 1, + anon_sym_LBRACK, + ACTIONS(581), 1, + anon_sym_await, + STATE(772), 1, + sym_template_string, + STATE(779), 1, + sym_string, + STATE(807), 1, + sym_primary_expression, + ACTIONS(77), 2, + sym_ellipsis, + sym_float, + ACTIONS(49), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(79), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(573), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(950), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [43439] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(602), 1, + anon_sym_LPAREN, + ACTIONS(608), 1, + anon_sym_LBRACK, + ACTIONS(610), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(748), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(606), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [43513] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(317), 1, + sym__template_string_start, + STATE(627), 2, + sym_template_string, + aux_sym_concatenated_template_string_repeat1, + ACTIONS(1536), 6, anon_sym_as, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1521), 34, + ACTIONS(1534), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [43567] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(315), 1, + sym__string_start, + STATE(690), 2, + sym_string, + aux_sym_concatenated_string_repeat1, + ACTIONS(1209), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1204), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [43621] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(616), 1, + anon_sym_LPAREN, + ACTIONS(622), 1, + anon_sym_LBRACK, + ACTIONS(624), 1, + anon_sym_LBRACE, + ACTIONS(628), 1, + anon_sym_await, + ACTIONS(630), 1, + sym__string_start, + ACTIONS(632), 1, + sym__template_string_start, + STATE(781), 1, + sym_string, + STATE(782), 1, + sym_template_string, + STATE(810), 1, + sym_primary_expression, + ACTIONS(626), 2, + sym_ellipsis, + sym_float, + ACTIONS(620), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(612), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(614), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(949), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [43695] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(650), 1, + anon_sym_LPAREN, + ACTIONS(656), 1, + anon_sym_LBRACK, + ACTIONS(658), 1, + anon_sym_LBRACE, + ACTIONS(662), 1, + anon_sym_await, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + STATE(790), 1, + sym_string, + STATE(791), 1, + sym_template_string, + STATE(856), 1, + sym_primary_expression, + ACTIONS(660), 2, + sym_ellipsis, + sym_float, + ACTIONS(654), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(646), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(648), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(985), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [43769] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(650), 1, + anon_sym_LPAREN, + ACTIONS(656), 1, + anon_sym_LBRACK, + ACTIONS(658), 1, + anon_sym_LBRACE, + ACTIONS(662), 1, + anon_sym_await, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + STATE(790), 1, + sym_string, + STATE(791), 1, + sym_template_string, + STATE(844), 1, + sym_primary_expression, + ACTIONS(660), 2, + sym_ellipsis, + sym_float, + ACTIONS(654), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(646), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(648), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(985), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [43843] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(317), 1, + sym__template_string_start, + STATE(693), 2, + sym_template_string, + aux_sym_concatenated_template_string_repeat1, + ACTIONS(1209), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1204), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [43897] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(293), 1, + anon_sym_LBRACE, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(636), 1, + anon_sym_LPAREN, + ACTIONS(642), 1, + anon_sym_LBRACK, + ACTIONS(644), 1, + anon_sym_await, + STATE(694), 1, + sym_string, + STATE(698), 1, + sym_template_string, + STATE(822), 1, + sym_primary_expression, + ACTIONS(309), 2, + sym_ellipsis, + sym_float, + ACTIONS(640), 3, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_TILDE, + ACTIONS(311), 5, + sym_integer, + sym_identifier, + sym_true, + sym_false, + sym_none, + ACTIONS(583), 6, + anon_sym_lazy, + anon_sym_print, + anon_sym_async, + anon_sym_match, + anon_sym_exec, + anon_sym_type, + STATE(720), 17, + sym_binary_operator, + sym_unary_operator, + sym_attribute, + sym_subscript, + sym_call, + sym_list, + sym_set, + sym_tuple, + sym_dictionary, + sym_list_comprehension, + sym_dictionary_comprehension, + sym_set_comprehension, + sym_generator_expression, + sym_parenthesized_expression, + sym_concatenated_string, + sym_concatenated_template_string, + sym_await, + [43971] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1540), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1538), 34, sym__template_string_start, anon_sym_DOT, anon_sym_LPAREN, @@ -59579,62 +60701,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [43127] = 3, + [44019] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1527), 6, + ACTIONS(1544), 6, anon_sym_as, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1525), 34, - sym__string_start, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [43175] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1531), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1529), 34, + ACTIONS(1542), 34, sym__template_string_start, anon_sym_DOT, anon_sym_LPAREN, @@ -59669,17 +60746,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [43223] = 3, + [44067] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1535), 6, + ACTIONS(1548), 6, anon_sym_as, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1533), 33, + ACTIONS(1546), 34, + sym__string_start, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -59713,809 +60791,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [43270] = 3, + [44115] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1539), 6, + ACTIONS(1552), 6, anon_sym_as, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1537), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [43317] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1543), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1541), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [43364] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1547), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1545), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [43411] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1551), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1549), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [43458] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1543), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1541), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [43505] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1555), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1553), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [43552] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1559), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1557), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [43599] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1563), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1561), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [43646] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1567), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1565), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [43693] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1571), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1569), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [43740] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1575), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1573), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [43787] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1579), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1577), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [43834] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1272), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1267), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [43881] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1283), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1278), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [43928] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1583), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1581), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [43975] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1587), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1585), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [44022] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1591), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1589), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [44069] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1583), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1581), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [44116] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1579), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1577), 33, + ACTIONS(1550), 34, + sym__string_start, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -60552,55 +60839,55 @@ static const uint16_t ts_small_parse_table[] = { [44163] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(1593), 1, + ACTIONS(1554), 1, anon_sym_DOT, - ACTIONS(1595), 1, + ACTIONS(1556), 1, anon_sym_LPAREN, - ACTIONS(1605), 1, + ACTIONS(1566), 1, anon_sym_PIPE, - ACTIONS(1609), 1, + ACTIONS(1570), 1, anon_sym_LBRACK, - ACTIONS(1611), 1, + ACTIONS(1572), 1, anon_sym_STAR_STAR, - ACTIONS(1613), 1, + ACTIONS(1574), 1, anon_sym_EQ, - ACTIONS(1617), 1, + ACTIONS(1578), 1, anon_sym_not, - ACTIONS(1619), 1, + ACTIONS(1580), 1, anon_sym_AMP, - ACTIONS(1621), 1, + ACTIONS(1582), 1, anon_sym_CARET, - ACTIONS(1625), 1, + ACTIONS(1586), 1, anon_sym_is, - STATE(991), 1, + STATE(997), 1, aux_sym_comparison_operator_repeat1, - ACTIONS(1599), 2, + ACTIONS(1560), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(1601), 2, + ACTIONS(1562), 2, anon_sym_GT_GT, anon_sym_LT_LT, - ACTIONS(1607), 2, + ACTIONS(1568), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(1623), 2, + ACTIONS(1584), 2, anon_sym_LT, anon_sym_GT, - STATE(733), 2, + STATE(708), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1615), 3, + ACTIONS(1576), 3, anon_sym_AT, anon_sym_PERCENT, anon_sym_SLASH_SLASH, - ACTIONS(1603), 6, + ACTIONS(1564), 6, anon_sym_in, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_GT_EQ, anon_sym_LT_GT, - ACTIONS(1597), 9, + ACTIONS(1558), 9, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_if, @@ -60610,278 +60897,58 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_and, anon_sym_or, - [44244] = 3, + [44244] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(1629), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1627), 33, + ACTIONS(1554), 1, anon_sym_DOT, + ACTIONS(1556), 1, anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, + ACTIONS(1570), 1, anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [44291] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1633), 6, + ACTIONS(1574), 1, anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1631), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, + ACTIONS(1594), 1, anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, + ACTIONS(1598), 1, anon_sym_STAR_STAR, - anon_sym_AT, + ACTIONS(1602), 1, anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, + ACTIONS(1604), 1, anon_sym_AMP, + ACTIONS(1606), 1, anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, + ACTIONS(1610), 1, anon_sym_is, - [44338] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1637), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1635), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [44385] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(265), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(298), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [44432] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1178), 6, - anon_sym_as, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1173), 33, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [44479] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1593), 1, - anon_sym_DOT, - ACTIONS(1595), 1, - anon_sym_LPAREN, - ACTIONS(1609), 1, - anon_sym_LBRACK, - ACTIONS(1613), 1, - anon_sym_as, - ACTIONS(1645), 1, - anon_sym_PIPE, - ACTIONS(1649), 1, - anon_sym_STAR_STAR, - ACTIONS(1653), 1, - anon_sym_not, - ACTIONS(1655), 1, - anon_sym_AMP, - ACTIONS(1657), 1, - anon_sym_CARET, - ACTIONS(1661), 1, - anon_sym_is, - STATE(992), 1, + STATE(998), 1, aux_sym_comparison_operator_repeat1, - ACTIONS(1639), 2, + ACTIONS(1588), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(1641), 2, + ACTIONS(1590), 2, anon_sym_GT_GT, anon_sym_LT_LT, - ACTIONS(1647), 2, + ACTIONS(1596), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(1659), 2, + ACTIONS(1608), 2, anon_sym_LT, anon_sym_GT, - STATE(733), 2, + STATE(708), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1651), 3, + ACTIONS(1600), 3, anon_sym_AT, anon_sym_PERCENT, anon_sym_SLASH_SLASH, - ACTIONS(1643), 6, + ACTIONS(1592), 6, anon_sym_in, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_GT_EQ, anon_sym_LT_GT, - ACTIONS(1597), 9, + ACTIONS(1558), 9, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_if, @@ -60891,17 +60958,237 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_and, anon_sym_or, + [44325] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(272), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(303), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [44372] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1614), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1612), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [44419] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1618), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1616), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [44466] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1622), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1620), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [44513] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1626), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1624), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, [44560] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1665), 6, + ACTIONS(1630), 6, anon_sym_as, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1663), 33, + ACTIONS(1628), 33, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -60938,14 +61225,14 @@ static const uint16_t ts_small_parse_table[] = { [44607] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1669), 6, + ACTIONS(1634), 6, anon_sym_as, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1667), 33, + ACTIONS(1632), 33, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -60982,14 +61269,14 @@ static const uint16_t ts_small_parse_table[] = { [44654] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1673), 6, + ACTIONS(1638), 6, anon_sym_as, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1671), 33, + ACTIONS(1636), 33, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -61026,14 +61313,14 @@ static const uint16_t ts_small_parse_table[] = { [44701] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1677), 6, + ACTIONS(1642), 6, anon_sym_as, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1675), 33, + ACTIONS(1640), 33, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -61070,14 +61357,14 @@ static const uint16_t ts_small_parse_table[] = { [44748] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1681), 6, + ACTIONS(1646), 6, anon_sym_as, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1679), 33, + ACTIONS(1644), 33, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -61114,14 +61401,14 @@ static const uint16_t ts_small_parse_table[] = { [44795] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1673), 6, + ACTIONS(1650), 6, anon_sym_as, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1671), 33, + ACTIONS(1648), 33, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -61158,14 +61445,14 @@ static const uint16_t ts_small_parse_table[] = { [44842] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1685), 6, + ACTIONS(1654), 6, anon_sym_as, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1683), 33, + ACTIONS(1652), 33, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -61202,14 +61489,14 @@ static const uint16_t ts_small_parse_table[] = { [44889] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1689), 6, + ACTIONS(1658), 6, anon_sym_as, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1687), 33, + ACTIONS(1656), 33, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -61243,47 +61530,41 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [44936] = 10, + [44936] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1593), 1, - anon_sym_DOT, - ACTIONS(1595), 1, - anon_sym_LPAREN, - ACTIONS(1609), 1, - anon_sym_LBRACK, - ACTIONS(1611), 1, - anon_sym_STAR_STAR, - ACTIONS(1599), 2, + ACTIONS(1662), 6, + anon_sym_as, anon_sym_STAR, - anon_sym_SLASH, - STATE(733), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1615), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1693), 3, anon_sym_EQ, + anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1691), 24, + ACTIONS(1660), 33, + anon_sym_DOT, + anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_GT_GT, anon_sym_if, anon_sym_COLON, anon_sym_else, + anon_sym_async, + anon_sym_for, anon_sym_in, anon_sym_PIPE, anon_sym_DASH, anon_sym_PLUS, + anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, anon_sym_not, anon_sym_and, anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, anon_sym_AMP, anon_sym_CARET, anon_sym_LT_LT, @@ -61293,39 +61574,35 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [44996] = 8, + [44983] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1593), 1, - anon_sym_DOT, - ACTIONS(1595), 1, - anon_sym_LPAREN, - ACTIONS(1609), 1, - anon_sym_LBRACK, - ACTIONS(1611), 1, - anon_sym_STAR_STAR, - STATE(733), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1697), 5, + ACTIONS(1209), 6, + anon_sym_as, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1695), 27, + ACTIONS(1204), 33, + anon_sym_DOT, + anon_sym_LPAREN, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_GT_GT, anon_sym_if, anon_sym_COLON, anon_sym_else, + anon_sym_async, + anon_sym_for, anon_sym_in, anon_sym_PIPE, anon_sym_DASH, anon_sym_PLUS, + anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_RBRACE, + anon_sym_STAR_STAR, anon_sym_AT, anon_sym_not, anon_sym_and, @@ -61341,27 +61618,1087 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [45052] = 8, + [45030] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1593), 1, + ACTIONS(1666), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1664), 33, anon_sym_DOT, - ACTIONS(1595), 1, anon_sym_LPAREN, - ACTIONS(1609), 1, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, anon_sym_LBRACK, - ACTIONS(1649), 1, + anon_sym_RBRACK, + anon_sym_RBRACE, anon_sym_STAR_STAR, - STATE(733), 2, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [45077] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1670), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1668), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [45124] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1674), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1672), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [45171] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1678), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1676), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [45218] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1682), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1680), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [45265] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1686), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1684), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [45312] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1690), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1688), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [45359] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1690), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1688), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [45406] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1694), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1692), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [45453] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1698), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1696), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [45500] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1690), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1688), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [45547] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1702), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1700), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [45594] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1702), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1700), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [45641] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1706), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1704), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [45688] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1702), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1700), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [45735] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1338), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1333), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [45782] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1295), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1290), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [45829] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1710), 6, + anon_sym_as, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1708), 33, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [45876] = 14, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1554), 1, + anon_sym_DOT, + ACTIONS(1556), 1, + anon_sym_LPAREN, + ACTIONS(1570), 1, + anon_sym_LBRACK, + ACTIONS(1572), 1, + anon_sym_STAR_STAR, + ACTIONS(1580), 1, + anon_sym_AMP, + ACTIONS(1582), 1, + anon_sym_CARET, + ACTIONS(1560), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1562), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1568), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(708), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1693), 5, + ACTIONS(1576), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1714), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1712), 18, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_in, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [45944] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1554), 1, + anon_sym_DOT, + ACTIONS(1556), 1, + anon_sym_LPAREN, + ACTIONS(1570), 1, + anon_sym_LBRACK, + ACTIONS(1594), 1, + anon_sym_PIPE, + ACTIONS(1598), 1, + anon_sym_STAR_STAR, + ACTIONS(1604), 1, + anon_sym_AMP, + ACTIONS(1606), 1, + anon_sym_CARET, + ACTIONS(1588), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1590), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1596), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(708), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1600), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1718), 3, + anon_sym_as, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1716), 17, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [46014] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1554), 1, + anon_sym_DOT, + ACTIONS(1556), 1, + anon_sym_LPAREN, + ACTIONS(1570), 1, + anon_sym_LBRACK, + ACTIONS(1594), 1, + anon_sym_PIPE, + ACTIONS(1598), 1, + anon_sym_STAR_STAR, + ACTIONS(1604), 1, + anon_sym_AMP, + ACTIONS(1606), 1, + anon_sym_CARET, + ACTIONS(1588), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1590), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1596), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(708), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1600), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1722), 3, + anon_sym_as, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1720), 17, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [46084] = 14, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1554), 1, + anon_sym_DOT, + ACTIONS(1556), 1, + anon_sym_LPAREN, + ACTIONS(1570), 1, + anon_sym_LBRACK, + ACTIONS(1598), 1, + anon_sym_STAR_STAR, + ACTIONS(1604), 1, + anon_sym_AMP, + ACTIONS(1606), 1, + anon_sym_CARET, + ACTIONS(1588), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1590), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1596), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(708), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1600), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1714), 3, + anon_sym_as, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1712), 18, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [46152] = 10, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1554), 1, + anon_sym_DOT, + ACTIONS(1556), 1, + anon_sym_LPAREN, + ACTIONS(1570), 1, + anon_sym_LBRACK, + ACTIONS(1598), 1, + anon_sym_STAR_STAR, + ACTIONS(1588), 2, + anon_sym_STAR, + anon_sym_SLASH, + STATE(708), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1600), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1714), 3, + anon_sym_as, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1712), 24, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [46212] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1554), 1, + anon_sym_DOT, + ACTIONS(1556), 1, + anon_sym_LPAREN, + ACTIONS(1570), 1, + anon_sym_LBRACK, + ACTIONS(1598), 1, + anon_sym_STAR_STAR, + STATE(708), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1714), 5, anon_sym_as, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1691), 27, + ACTIONS(1712), 27, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_GT_GT, @@ -61389,148 +62726,40 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [45108] = 11, + [46268] = 13, ACTIONS(3), 1, sym_comment, - ACTIONS(1593), 1, + ACTIONS(1554), 1, anon_sym_DOT, - ACTIONS(1595), 1, + ACTIONS(1556), 1, anon_sym_LPAREN, - ACTIONS(1609), 1, + ACTIONS(1570), 1, anon_sym_LBRACK, - ACTIONS(1649), 1, + ACTIONS(1598), 1, anon_sym_STAR_STAR, - ACTIONS(1639), 2, + ACTIONS(1606), 1, + anon_sym_CARET, + ACTIONS(1588), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(1647), 2, + ACTIONS(1590), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1596), 2, anon_sym_DASH, anon_sym_PLUS, - STATE(733), 2, + STATE(708), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1651), 3, + ACTIONS(1600), 3, anon_sym_AT, anon_sym_PERCENT, anon_sym_SLASH_SLASH, - ACTIONS(1693), 3, + ACTIONS(1714), 3, anon_sym_as, anon_sym_LT, anon_sym_GT, - ACTIONS(1691), 22, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [45170] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1593), 1, - anon_sym_DOT, - ACTIONS(1595), 1, - anon_sym_LPAREN, - ACTIONS(1609), 1, - anon_sym_LBRACK, - ACTIONS(1645), 1, - anon_sym_PIPE, - ACTIONS(1649), 1, - anon_sym_STAR_STAR, - ACTIONS(1655), 1, - anon_sym_AMP, - ACTIONS(1657), 1, - anon_sym_CARET, - ACTIONS(1639), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1641), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1647), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(733), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1651), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1701), 3, - anon_sym_as, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1699), 17, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [45240] = 14, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1593), 1, - anon_sym_DOT, - ACTIONS(1595), 1, - anon_sym_LPAREN, - ACTIONS(1609), 1, - anon_sym_LBRACK, - ACTIONS(1649), 1, - anon_sym_STAR_STAR, - ACTIONS(1655), 1, - anon_sym_AMP, - ACTIONS(1657), 1, - anon_sym_CARET, - ACTIONS(1639), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1641), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1647), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(733), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1651), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1693), 3, - anon_sym_as, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1691), 18, + ACTIONS(1712), 19, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_if, @@ -61543,48 +62772,52 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_not, anon_sym_and, anon_sym_or, + anon_sym_AMP, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [45308] = 10, + [46334] = 12, ACTIONS(3), 1, sym_comment, - ACTIONS(1593), 1, + ACTIONS(1554), 1, anon_sym_DOT, - ACTIONS(1595), 1, + ACTIONS(1556), 1, anon_sym_LPAREN, - ACTIONS(1609), 1, + ACTIONS(1570), 1, anon_sym_LBRACK, - ACTIONS(1649), 1, + ACTIONS(1598), 1, anon_sym_STAR_STAR, - ACTIONS(1639), 2, + ACTIONS(1588), 2, anon_sym_STAR, anon_sym_SLASH, - STATE(733), 2, + ACTIONS(1590), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1596), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(708), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1651), 3, + ACTIONS(1600), 3, anon_sym_AT, anon_sym_PERCENT, anon_sym_SLASH_SLASH, - ACTIONS(1693), 3, + ACTIONS(1714), 3, anon_sym_as, anon_sym_LT, anon_sym_GT, - ACTIONS(1691), 24, + ACTIONS(1712), 20, anon_sym_RPAREN, anon_sym_COMMA, - anon_sym_GT_GT, anon_sym_if, anon_sym_async, anon_sym_for, anon_sym_in, anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, anon_sym_RBRACK, anon_sym_RBRACE, anon_sym_not, @@ -61592,34 +62825,33 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_or, anon_sym_AMP, anon_sym_CARET, - anon_sym_LT_LT, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [45368] = 8, + [46398] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(1593), 1, + ACTIONS(1554), 1, anon_sym_DOT, - ACTIONS(1595), 1, + ACTIONS(1556), 1, anon_sym_LPAREN, - ACTIONS(1609), 1, + ACTIONS(1570), 1, anon_sym_LBRACK, - ACTIONS(1649), 1, + ACTIONS(1598), 1, anon_sym_STAR_STAR, - STATE(733), 2, + STATE(708), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1693), 5, + ACTIONS(1726), 5, anon_sym_as, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1691), 27, + ACTIONS(1724), 27, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_GT_GT, @@ -61647,125 +62879,68 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [45424] = 13, + [46454] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(1593), 1, + ACTIONS(1554), 1, anon_sym_DOT, - ACTIONS(1595), 1, + ACTIONS(1556), 1, anon_sym_LPAREN, - ACTIONS(1609), 1, + ACTIONS(1570), 1, anon_sym_LBRACK, - ACTIONS(1649), 1, + ACTIONS(1598), 1, anon_sym_STAR_STAR, - ACTIONS(1657), 1, - anon_sym_CARET, - ACTIONS(1639), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1641), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1647), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(733), 2, + STATE(708), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1651), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1693), 3, + ACTIONS(1730), 5, anon_sym_as, + anon_sym_STAR, + anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1691), 19, + ACTIONS(1728), 27, anon_sym_RPAREN, anon_sym_COMMA, + anon_sym_GT_GT, anon_sym_if, anon_sym_async, anon_sym_for, anon_sym_in, anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, anon_sym_RBRACK, anon_sym_RBRACE, + anon_sym_AT, anon_sym_not, anon_sym_and, anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [45490] = 12, + [46510] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1593), 1, - anon_sym_DOT, - ACTIONS(1595), 1, - anon_sym_LPAREN, - ACTIONS(1609), 1, - anon_sym_LBRACK, - ACTIONS(1649), 1, - anon_sym_STAR_STAR, - ACTIONS(1639), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1641), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1647), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(733), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1651), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1693), 3, - anon_sym_as, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1691), 20, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [45554] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(647), 1, + ACTIONS(664), 1, sym__string_start, - STATE(746), 2, + STATE(753), 2, sym_string, aux_sym_concatenated_string_repeat1, - ACTIONS(1481), 4, + ACTIONS(1532), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1479), 31, + ACTIONS(1530), 31, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -61797,20 +62972,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [45604] = 5, + [46560] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(649), 1, + ACTIONS(666), 1, sym__template_string_start, - STATE(747), 2, + STATE(754), 2, sym_template_string, aux_sym_concatenated_template_string_repeat1, - ACTIONS(1485), 4, + ACTIONS(1536), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1483), 31, + ACTIONS(1534), 31, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -61842,20 +63017,119 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [45654] = 5, + [46610] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(1703), 1, + ACTIONS(1554), 1, + anon_sym_DOT, + ACTIONS(1556), 1, + anon_sym_LPAREN, + ACTIONS(1570), 1, + anon_sym_LBRACK, + ACTIONS(1598), 1, + anon_sym_STAR_STAR, + STATE(708), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1714), 5, + anon_sym_as, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1712), 27, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [46666] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1554), 1, + anon_sym_DOT, + ACTIONS(1556), 1, + anon_sym_LPAREN, + ACTIONS(1570), 1, + anon_sym_LBRACK, + ACTIONS(1598), 1, + anon_sym_STAR_STAR, + ACTIONS(1588), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1596), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(708), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1600), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1714), 3, + anon_sym_as, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1712), 22, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [46728] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1732), 1, sym__string_start, - STATE(746), 2, + STATE(753), 2, sym_string, aux_sym_concatenated_string_repeat1, - ACTIONS(1491), 4, + ACTIONS(1525), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1489), 31, + ACTIONS(1523), 31, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -61887,20 +63161,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [45704] = 5, + [46778] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1706), 1, + ACTIONS(1735), 1, sym__template_string_start, - STATE(747), 2, + STATE(754), 2, sym_template_string, aux_sym_concatenated_template_string_repeat1, - ACTIONS(1498), 4, + ACTIONS(1512), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1496), 31, + ACTIONS(1510), 31, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -61932,44 +63206,511 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [45754] = 15, + [46828] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(1593), 1, + ACTIONS(1554), 1, anon_sym_DOT, - ACTIONS(1595), 1, + ACTIONS(1556), 1, anon_sym_LPAREN, - ACTIONS(1609), 1, + ACTIONS(1570), 1, anon_sym_LBRACK, - ACTIONS(1645), 1, - anon_sym_PIPE, - ACTIONS(1649), 1, + ACTIONS(1572), 1, anon_sym_STAR_STAR, - ACTIONS(1655), 1, - anon_sym_AMP, - ACTIONS(1657), 1, - anon_sym_CARET, - ACTIONS(1639), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1641), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1647), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(733), 2, + STATE(708), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1651), 3, + ACTIONS(1714), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1712), 27, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [46884] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1554), 1, + anon_sym_DOT, + ACTIONS(1556), 1, + anon_sym_LPAREN, + ACTIONS(1570), 1, + anon_sym_LBRACK, + ACTIONS(1572), 1, + anon_sym_STAR_STAR, + ACTIONS(1560), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1568), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(708), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1576), 3, anon_sym_AT, anon_sym_PERCENT, anon_sym_SLASH_SLASH, - ACTIONS(1711), 3, + ACTIONS(1714), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1712), 22, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_in, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [46946] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1554), 1, + anon_sym_DOT, + ACTIONS(1556), 1, + anon_sym_LPAREN, + ACTIONS(1566), 1, + anon_sym_PIPE, + ACTIONS(1570), 1, + anon_sym_LBRACK, + ACTIONS(1572), 1, + anon_sym_STAR_STAR, + ACTIONS(1580), 1, + anon_sym_AMP, + ACTIONS(1582), 1, + anon_sym_CARET, + ACTIONS(1560), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1562), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1568), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(708), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1576), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1740), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1738), 17, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_in, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [47016] = 10, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1554), 1, + anon_sym_DOT, + ACTIONS(1556), 1, + anon_sym_LPAREN, + ACTIONS(1570), 1, + anon_sym_LBRACK, + ACTIONS(1572), 1, + anon_sym_STAR_STAR, + ACTIONS(1560), 2, + anon_sym_STAR, + anon_sym_SLASH, + STATE(708), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1576), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1714), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1712), 24, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [47076] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1554), 1, + anon_sym_DOT, + ACTIONS(1556), 1, + anon_sym_LPAREN, + ACTIONS(1570), 1, + anon_sym_LBRACK, + ACTIONS(1572), 1, + anon_sym_STAR_STAR, + STATE(708), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1714), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1712), 27, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [47132] = 13, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1554), 1, + anon_sym_DOT, + ACTIONS(1556), 1, + anon_sym_LPAREN, + ACTIONS(1570), 1, + anon_sym_LBRACK, + ACTIONS(1572), 1, + anon_sym_STAR_STAR, + ACTIONS(1582), 1, + anon_sym_CARET, + ACTIONS(1560), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1562), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1568), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(708), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1576), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1714), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1712), 19, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_in, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [47198] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1554), 1, + anon_sym_DOT, + ACTIONS(1556), 1, + anon_sym_LPAREN, + ACTIONS(1570), 1, + anon_sym_LBRACK, + ACTIONS(1572), 1, + anon_sym_STAR_STAR, + ACTIONS(1560), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1562), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1568), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(708), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1576), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1714), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1712), 20, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_in, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [47262] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1554), 1, + anon_sym_DOT, + ACTIONS(1556), 1, + anon_sym_LPAREN, + ACTIONS(1566), 1, + anon_sym_PIPE, + ACTIONS(1570), 1, + anon_sym_LBRACK, + ACTIONS(1572), 1, + anon_sym_STAR_STAR, + ACTIONS(1580), 1, + anon_sym_AMP, + ACTIONS(1582), 1, + anon_sym_CARET, + ACTIONS(1560), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1562), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1568), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(708), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1576), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1718), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1716), 17, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_in, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [47332] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1554), 1, + anon_sym_DOT, + ACTIONS(1556), 1, + anon_sym_LPAREN, + ACTIONS(1566), 1, + anon_sym_PIPE, + ACTIONS(1570), 1, + anon_sym_LBRACK, + ACTIONS(1572), 1, + anon_sym_STAR_STAR, + ACTIONS(1580), 1, + anon_sym_AMP, + ACTIONS(1582), 1, + anon_sym_CARET, + ACTIONS(1560), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1562), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1568), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(708), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1576), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1722), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1720), 17, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_in, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [47402] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1554), 1, + anon_sym_DOT, + ACTIONS(1556), 1, + anon_sym_LPAREN, + ACTIONS(1570), 1, + anon_sym_LBRACK, + ACTIONS(1594), 1, + anon_sym_PIPE, + ACTIONS(1598), 1, + anon_sym_STAR_STAR, + ACTIONS(1604), 1, + anon_sym_AMP, + ACTIONS(1606), 1, + anon_sym_CARET, + ACTIONS(1588), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1590), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1596), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(708), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1600), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1740), 3, anon_sym_as, anon_sym_LT, anon_sym_GT, - ACTIONS(1709), 17, + ACTIONS(1738), 17, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_if, @@ -61987,84 +63728,117 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [45824] = 15, + [47472] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(1593), 1, + ACTIONS(1554), 1, anon_sym_DOT, - ACTIONS(1595), 1, + ACTIONS(1556), 1, anon_sym_LPAREN, - ACTIONS(1609), 1, + ACTIONS(1570), 1, anon_sym_LBRACK, - ACTIONS(1645), 1, - anon_sym_PIPE, - ACTIONS(1649), 1, + ACTIONS(1572), 1, anon_sym_STAR_STAR, - ACTIONS(1655), 1, - anon_sym_AMP, - ACTIONS(1657), 1, - anon_sym_CARET, - ACTIONS(1639), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1641), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1647), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(733), 2, + STATE(708), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1651), 3, + ACTIONS(1730), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1728), 27, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_RBRACK, + anon_sym_RBRACE, anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, anon_sym_PERCENT, anon_sym_SLASH_SLASH, - ACTIONS(1715), 3, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [47528] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1554), 1, + anon_sym_DOT, + ACTIONS(1556), 1, + anon_sym_LPAREN, + ACTIONS(1570), 1, + anon_sym_LBRACK, + ACTIONS(1572), 1, + anon_sym_STAR_STAR, + STATE(708), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1726), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1724), 27, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [47584] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1338), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1333), 32, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, anon_sym_as, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1713), 17, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [45894] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1593), 1, - anon_sym_DOT, - ACTIONS(1595), 1, - anon_sym_LPAREN, - ACTIONS(1609), 1, - anon_sym_LBRACK, - ACTIONS(1611), 1, - anon_sym_STAR_STAR, - STATE(733), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1693), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1691), 27, - anon_sym_RPAREN, - anon_sym_COMMA, anon_sym_GT_GT, anon_sym_if, anon_sym_COLON, @@ -62073,8 +63847,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_DASH, anon_sym_PLUS, + anon_sym_LBRACK, anon_sym_RBRACK, anon_sym_RBRACE, + anon_sym_STAR_STAR, anon_sym_AT, anon_sym_not, anon_sym_and, @@ -62090,588 +63866,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [45950] = 11, + [47629] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1593), 1, - anon_sym_DOT, - ACTIONS(1595), 1, - anon_sym_LPAREN, - ACTIONS(1609), 1, - anon_sym_LBRACK, - ACTIONS(1611), 1, - anon_sym_STAR_STAR, - ACTIONS(1599), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1607), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(733), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1615), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1693), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1691), 22, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_in, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [46012] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1593), 1, - anon_sym_DOT, - ACTIONS(1595), 1, - anon_sym_LPAREN, - ACTIONS(1605), 1, - anon_sym_PIPE, - ACTIONS(1609), 1, - anon_sym_LBRACK, - ACTIONS(1611), 1, - anon_sym_STAR_STAR, - ACTIONS(1619), 1, - anon_sym_AMP, - ACTIONS(1621), 1, - anon_sym_CARET, - ACTIONS(1599), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1601), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1607), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(733), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1615), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1701), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1699), 17, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_in, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [46082] = 14, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1593), 1, - anon_sym_DOT, - ACTIONS(1595), 1, - anon_sym_LPAREN, - ACTIONS(1609), 1, - anon_sym_LBRACK, - ACTIONS(1611), 1, - anon_sym_STAR_STAR, - ACTIONS(1619), 1, - anon_sym_AMP, - ACTIONS(1621), 1, - anon_sym_CARET, - ACTIONS(1599), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1601), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1607), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(733), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1615), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1693), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1691), 18, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_in, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [46150] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1593), 1, - anon_sym_DOT, - ACTIONS(1595), 1, - anon_sym_LPAREN, - ACTIONS(1609), 1, - anon_sym_LBRACK, - ACTIONS(1611), 1, - anon_sym_STAR_STAR, - STATE(733), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1693), 5, + ACTIONS(1742), 1, + sym__string_start, + STATE(768), 2, + sym_string, + aux_sym_concatenated_string_repeat1, + ACTIONS(1525), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1691), 27, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [46206] = 13, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1593), 1, - anon_sym_DOT, - ACTIONS(1595), 1, - anon_sym_LPAREN, - ACTIONS(1609), 1, - anon_sym_LBRACK, - ACTIONS(1611), 1, - anon_sym_STAR_STAR, - ACTIONS(1621), 1, - anon_sym_CARET, - ACTIONS(1599), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1601), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1607), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(733), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1615), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1693), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1691), 19, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_in, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_AMP, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [46272] = 12, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1593), 1, - anon_sym_DOT, - ACTIONS(1595), 1, - anon_sym_LPAREN, - ACTIONS(1609), 1, - anon_sym_LBRACK, - ACTIONS(1611), 1, - anon_sym_STAR_STAR, - ACTIONS(1599), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1601), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1607), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(733), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1615), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1693), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1691), 20, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_in, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [46336] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1593), 1, - anon_sym_DOT, - ACTIONS(1595), 1, - anon_sym_LPAREN, - ACTIONS(1605), 1, - anon_sym_PIPE, - ACTIONS(1609), 1, - anon_sym_LBRACK, - ACTIONS(1611), 1, - anon_sym_STAR_STAR, - ACTIONS(1619), 1, - anon_sym_AMP, - ACTIONS(1621), 1, - anon_sym_CARET, - ACTIONS(1599), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1601), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1607), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(733), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1615), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1711), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1709), 17, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_in, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [46406] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1593), 1, - anon_sym_DOT, - ACTIONS(1595), 1, - anon_sym_LPAREN, - ACTIONS(1605), 1, - anon_sym_PIPE, - ACTIONS(1609), 1, - anon_sym_LBRACK, - ACTIONS(1611), 1, - anon_sym_STAR_STAR, - ACTIONS(1619), 1, - anon_sym_AMP, - ACTIONS(1621), 1, - anon_sym_CARET, - ACTIONS(1599), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1601), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1607), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(733), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1615), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1715), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1713), 17, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_in, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [46476] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1593), 1, - anon_sym_DOT, - ACTIONS(1595), 1, - anon_sym_LPAREN, - ACTIONS(1609), 1, - anon_sym_LBRACK, - ACTIONS(1649), 1, - anon_sym_STAR_STAR, - STATE(733), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1719), 5, - anon_sym_as, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1717), 27, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [46532] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1593), 1, - anon_sym_DOT, - ACTIONS(1595), 1, - anon_sym_LPAREN, - ACTIONS(1609), 1, - anon_sym_LBRACK, - ACTIONS(1649), 1, - anon_sym_STAR_STAR, - STATE(733), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1697), 5, - anon_sym_as, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1695), 27, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [46588] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1593), 1, - anon_sym_DOT, - ACTIONS(1595), 1, - anon_sym_LPAREN, - ACTIONS(1609), 1, - anon_sym_LBRACK, - ACTIONS(1611), 1, - anon_sym_STAR_STAR, - STATE(733), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1719), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1717), 27, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [46644] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1721), 1, - sym__template_string_start, - STATE(762), 2, - sym_template_string, - aux_sym_concatenated_template_string_repeat1, - ACTIONS(1498), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1496), 29, + ACTIONS(1523), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_COMMA, @@ -62701,254 +63910,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_is, anon_sym_COLON2, sym_type_conversion, - [46693] = 5, + [47678] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(83), 1, + ACTIONS(1745), 1, sym__template_string_start, - STATE(778), 2, - sym_template_string, - aux_sym_concatenated_template_string_repeat1, - ACTIONS(1178), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1173), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [46742] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1283), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1278), 32, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [46787] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(81), 1, - sym__string_start, - STATE(775), 2, - sym_string, - aux_sym_concatenated_string_repeat1, - ACTIONS(1481), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1479), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [46836] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1613), 1, - anon_sym_EQ, - ACTIONS(1724), 1, - anon_sym_DOT, - ACTIONS(1726), 1, - anon_sym_LPAREN, - ACTIONS(1734), 1, - anon_sym_PIPE, - ACTIONS(1738), 1, - anon_sym_LBRACK, - ACTIONS(1740), 1, - anon_sym_STAR_STAR, - ACTIONS(1744), 1, - anon_sym_not, - ACTIONS(1746), 1, - anon_sym_AMP, - ACTIONS(1748), 1, - anon_sym_CARET, - ACTIONS(1752), 1, - anon_sym_is, - STATE(1006), 1, - aux_sym_comparison_operator_repeat1, - ACTIONS(1728), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1730), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1736), 2, - anon_sym_DASH, - anon_sym_PLUS, - ACTIONS(1750), 2, - anon_sym_LT, - anon_sym_GT, - STATE(906), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1742), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1732), 6, - anon_sym_in, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - ACTIONS(1597), 7, - anon_sym_COMMA, - anon_sym_if, - anon_sym_RBRACE, - anon_sym_and, - anon_sym_or, - anon_sym_COLON2, - sym_type_conversion, - [46915] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(625), 1, - sym__string_start, STATE(769), 2, - sym_string, - aux_sym_concatenated_string_repeat1, - ACTIONS(1178), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1173), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [46964] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(627), 1, - sym__template_string_start, - STATE(770), 2, sym_template_string, aux_sym_concatenated_template_string_repeat1, - ACTIONS(1178), 5, + ACTIONS(1512), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1173), 29, + ACTIONS(1510), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_COMMA, @@ -62978,616 +63954,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_is, anon_sym_COLON2, sym_type_conversion, - [47013] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(625), 1, - sym__string_start, - STATE(771), 2, - sym_string, - aux_sym_concatenated_string_repeat1, - ACTIONS(1481), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1479), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [47062] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(627), 1, - sym__template_string_start, - STATE(762), 2, - sym_template_string, - aux_sym_concatenated_template_string_repeat1, - ACTIONS(1485), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1483), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [47111] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1754), 1, - sym__string_start, - STATE(771), 2, - sym_string, - aux_sym_concatenated_string_repeat1, - ACTIONS(1491), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1489), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [47160] = 19, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1593), 1, - anon_sym_DOT, - ACTIONS(1595), 1, - anon_sym_LPAREN, - ACTIONS(1609), 1, - anon_sym_LBRACK, - ACTIONS(1763), 1, - anon_sym_PIPE, - ACTIONS(1767), 1, - anon_sym_STAR_STAR, - ACTIONS(1771), 1, - anon_sym_not, - ACTIONS(1773), 1, - anon_sym_AMP, - ACTIONS(1775), 1, - anon_sym_CARET, - ACTIONS(1779), 1, - anon_sym_is, - STATE(997), 1, - aux_sym_comparison_operator_repeat1, - ACTIONS(1757), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1759), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1765), 2, - anon_sym_DASH, - anon_sym_PLUS, - ACTIONS(1777), 2, - anon_sym_LT, - anon_sym_GT, - STATE(733), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1769), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1761), 6, - anon_sym_in, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - ACTIONS(1597), 8, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACE, - anon_sym_and, - anon_sym_or, - [47237] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(585), 1, - anon_sym_COLON_EQ, - ACTIONS(265), 6, - anon_sym_STAR, - anon_sym_COLON, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(298), 30, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_else, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [47284] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1219), 1, - anon_sym_COLON_EQ, - ACTIONS(1178), 6, - anon_sym_STAR, - anon_sym_COLON, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1173), 30, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_else, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [47331] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1781), 1, - sym__string_start, - STATE(775), 2, - sym_string, - aux_sym_concatenated_string_repeat1, - ACTIONS(1491), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1489), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [47380] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1784), 1, - sym__template_string_start, - STATE(776), 2, - sym_template_string, - aux_sym_concatenated_template_string_repeat1, - ACTIONS(1498), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1496), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [47429] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1272), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1267), 32, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [47474] = 5, + [47727] = 5, ACTIONS(3), 1, sym_comment, ACTIONS(83), 1, - sym__template_string_start, + sym__string_start, STATE(776), 2, - sym_template_string, - aux_sym_concatenated_template_string_repeat1, - ACTIONS(1485), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1483), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [47523] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1613), 1, - anon_sym_EQ, - ACTIONS(1787), 1, - anon_sym_DOT, - ACTIONS(1789), 1, - anon_sym_LPAREN, - ACTIONS(1797), 1, - anon_sym_PIPE, - ACTIONS(1801), 1, - anon_sym_LBRACK, - ACTIONS(1803), 1, - anon_sym_STAR_STAR, - ACTIONS(1807), 1, - anon_sym_not, - ACTIONS(1809), 1, - anon_sym_AMP, - ACTIONS(1811), 1, - anon_sym_CARET, - ACTIONS(1815), 1, - anon_sym_is, - STATE(1002), 1, - aux_sym_comparison_operator_repeat1, - ACTIONS(1791), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1793), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1799), 2, - anon_sym_DASH, - anon_sym_PLUS, - ACTIONS(1813), 2, - anon_sym_LT, - anon_sym_GT, - STATE(904), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1805), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1795), 6, - anon_sym_in, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - ACTIONS(1597), 7, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_if, - anon_sym_and, - anon_sym_or, - anon_sym_SEMI, - [47602] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(599), 1, - anon_sym_COLON_EQ, - ACTIONS(265), 5, - anon_sym_as, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(298), 31, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [47649] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1817), 1, - anon_sym_COLON_EQ, - ACTIONS(1178), 5, - anon_sym_as, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1173), 31, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [47696] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(81), 1, - sym__string_start, - STATE(765), 2, sym_string, aux_sym_concatenated_string_repeat1, - ACTIONS(1178), 5, + ACTIONS(1532), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1173), 29, + ACTIONS(1530), 29, sym__newline, anon_sym_DOT, anon_sym_from, @@ -63617,648 +63998,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, anon_sym_SEMI, - [47745] = 10, + [47776] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1724), 1, - anon_sym_DOT, - ACTIONS(1726), 1, - anon_sym_LPAREN, - ACTIONS(1738), 1, - anon_sym_LBRACK, - ACTIONS(1740), 1, - anon_sym_STAR_STAR, - ACTIONS(1728), 2, - anon_sym_STAR, - anon_sym_SLASH, - STATE(906), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1693), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1742), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1691), 22, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [47803] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1724), 1, - anon_sym_DOT, - ACTIONS(1726), 1, - anon_sym_LPAREN, - ACTIONS(1738), 1, - anon_sym_LBRACK, - ACTIONS(1740), 1, - anon_sym_STAR_STAR, - STATE(906), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1719), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1717), 25, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_RBRACE, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [47857] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1724), 1, - anon_sym_DOT, - ACTIONS(1726), 1, - anon_sym_LPAREN, - ACTIONS(1738), 1, - anon_sym_LBRACK, - ACTIONS(1740), 1, - anon_sym_STAR_STAR, - STATE(906), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1697), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1695), 25, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_RBRACE, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [47911] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1724), 1, - anon_sym_DOT, - ACTIONS(1726), 1, - anon_sym_LPAREN, - ACTIONS(1738), 1, - anon_sym_LBRACK, - ACTIONS(1740), 1, - anon_sym_STAR_STAR, - STATE(906), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1693), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1691), 25, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_RBRACE, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [47965] = 11, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1724), 1, - anon_sym_DOT, - ACTIONS(1726), 1, - anon_sym_LPAREN, - ACTIONS(1738), 1, - anon_sym_LBRACK, - ACTIONS(1740), 1, - anon_sym_STAR_STAR, - ACTIONS(1728), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1736), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(906), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1693), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1742), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1691), 20, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [48025] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1724), 1, - anon_sym_DOT, - ACTIONS(1726), 1, - anon_sym_LPAREN, - ACTIONS(1734), 1, - anon_sym_PIPE, - ACTIONS(1738), 1, - anon_sym_LBRACK, - ACTIONS(1740), 1, - anon_sym_STAR_STAR, - ACTIONS(1746), 1, - anon_sym_AMP, - ACTIONS(1748), 1, - anon_sym_CARET, - ACTIONS(1728), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1730), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1736), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(906), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1701), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1742), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1699), 15, - anon_sym_COMMA, - anon_sym_if, - anon_sym_in, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [48093] = 14, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1724), 1, - anon_sym_DOT, - ACTIONS(1726), 1, - anon_sym_LPAREN, - ACTIONS(1738), 1, - anon_sym_LBRACK, - ACTIONS(1740), 1, - anon_sym_STAR_STAR, - ACTIONS(1746), 1, - anon_sym_AMP, - ACTIONS(1748), 1, - anon_sym_CARET, - ACTIONS(1728), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1730), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1736), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(906), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1693), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1742), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1691), 16, - anon_sym_COMMA, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [48159] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1593), 1, - anon_sym_DOT, - ACTIONS(1595), 1, - anon_sym_LPAREN, - ACTIONS(1609), 1, - anon_sym_LBRACK, - ACTIONS(1767), 1, - anon_sym_STAR_STAR, - STATE(733), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1697), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1695), 26, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_RBRACE, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [48213] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1724), 1, - anon_sym_DOT, - ACTIONS(1726), 1, - anon_sym_LPAREN, - ACTIONS(1738), 1, - anon_sym_LBRACK, - ACTIONS(1740), 1, - anon_sym_STAR_STAR, - STATE(906), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1693), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1691), 25, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_RBRACE, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [48267] = 13, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1724), 1, - anon_sym_DOT, - ACTIONS(1726), 1, - anon_sym_LPAREN, - ACTIONS(1738), 1, - anon_sym_LBRACK, - ACTIONS(1740), 1, - anon_sym_STAR_STAR, - ACTIONS(1748), 1, - anon_sym_CARET, - ACTIONS(1728), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1730), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1736), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(906), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1693), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1742), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1691), 17, - anon_sym_COMMA, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_AMP, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [48331] = 12, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1724), 1, - anon_sym_DOT, - ACTIONS(1726), 1, - anon_sym_LPAREN, - ACTIONS(1738), 1, - anon_sym_LBRACK, - ACTIONS(1740), 1, - anon_sym_STAR_STAR, - ACTIONS(1728), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1730), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1736), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(906), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1693), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1742), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1691), 18, - anon_sym_COMMA, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [48393] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(647), 1, - sym__string_start, - STATE(744), 2, - sym_string, - aux_sym_concatenated_string_repeat1, - ACTIONS(1178), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1173), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [48441] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(649), 1, + ACTIONS(85), 1, sym__template_string_start, - STATE(745), 2, + STATE(777), 2, sym_template_string, aux_sym_concatenated_template_string_repeat1, - ACTIONS(1178), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1173), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [48489] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1787), 1, - anon_sym_DOT, - ACTIONS(1789), 1, - anon_sym_LPAREN, - ACTIONS(1801), 1, - anon_sym_LBRACK, - ACTIONS(1803), 1, - anon_sym_STAR_STAR, - STATE(904), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1693), 5, + ACTIONS(1536), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1691), 25, + ACTIONS(1534), 29, sym__newline, + anon_sym_DOT, anon_sym_from, + anon_sym_LPAREN, anon_sym_COMMA, anon_sym_GT_GT, anon_sym_if, @@ -64266,6 +64024,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_DASH, anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, anon_sym_AT, anon_sym_not, anon_sym_and, @@ -64282,648 +64042,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, anon_sym_SEMI, - [48543] = 15, + [47825] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1724), 1, - anon_sym_DOT, - ACTIONS(1726), 1, - anon_sym_LPAREN, - ACTIONS(1734), 1, - anon_sym_PIPE, - ACTIONS(1738), 1, - anon_sym_LBRACK, - ACTIONS(1740), 1, - anon_sym_STAR_STAR, - ACTIONS(1746), 1, - anon_sym_AMP, - ACTIONS(1748), 1, - anon_sym_CARET, - ACTIONS(1728), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1730), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1736), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(906), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1711), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1742), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1709), 15, - anon_sym_COMMA, - anon_sym_if, - anon_sym_in, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [48611] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1724), 1, - anon_sym_DOT, - ACTIONS(1726), 1, - anon_sym_LPAREN, - ACTIONS(1734), 1, - anon_sym_PIPE, - ACTIONS(1738), 1, - anon_sym_LBRACK, - ACTIONS(1740), 1, - anon_sym_STAR_STAR, - ACTIONS(1746), 1, - anon_sym_AMP, - ACTIONS(1748), 1, - anon_sym_CARET, - ACTIONS(1728), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1730), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1736), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(906), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1715), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1742), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1713), 15, - anon_sym_COMMA, - anon_sym_if, - anon_sym_in, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [48679] = 11, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1787), 1, - anon_sym_DOT, - ACTIONS(1789), 1, - anon_sym_LPAREN, - ACTIONS(1801), 1, - anon_sym_LBRACK, - ACTIONS(1803), 1, - anon_sym_STAR_STAR, - ACTIONS(1791), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1799), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(904), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1693), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1805), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1691), 20, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [48739] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1787), 1, - anon_sym_DOT, - ACTIONS(1789), 1, - anon_sym_LPAREN, - ACTIONS(1797), 1, - anon_sym_PIPE, - ACTIONS(1801), 1, - anon_sym_LBRACK, - ACTIONS(1803), 1, - anon_sym_STAR_STAR, - ACTIONS(1809), 1, - anon_sym_AMP, - ACTIONS(1811), 1, - anon_sym_CARET, - ACTIONS(1791), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1793), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1799), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(904), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1701), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1805), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1699), 15, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_if, - anon_sym_in, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [48807] = 14, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1787), 1, - anon_sym_DOT, - ACTIONS(1789), 1, - anon_sym_LPAREN, - ACTIONS(1801), 1, - anon_sym_LBRACK, - ACTIONS(1803), 1, - anon_sym_STAR_STAR, - ACTIONS(1809), 1, - anon_sym_AMP, - ACTIONS(1811), 1, - anon_sym_CARET, - ACTIONS(1791), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1793), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1799), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(904), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1693), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1805), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1691), 16, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [48873] = 10, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1787), 1, - anon_sym_DOT, - ACTIONS(1789), 1, - anon_sym_LPAREN, - ACTIONS(1801), 1, - anon_sym_LBRACK, - ACTIONS(1803), 1, - anon_sym_STAR_STAR, - ACTIONS(1791), 2, - anon_sym_STAR, - anon_sym_SLASH, - STATE(904), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1693), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1805), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1691), 22, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [48931] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1593), 1, - anon_sym_DOT, - ACTIONS(1595), 1, - anon_sym_LPAREN, - ACTIONS(1609), 1, - anon_sym_LBRACK, - ACTIONS(1767), 1, - anon_sym_STAR_STAR, - STATE(733), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1719), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1717), 26, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_RBRACE, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [48985] = 13, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1787), 1, - anon_sym_DOT, - ACTIONS(1789), 1, - anon_sym_LPAREN, - ACTIONS(1801), 1, - anon_sym_LBRACK, - ACTIONS(1803), 1, - anon_sym_STAR_STAR, - ACTIONS(1811), 1, - anon_sym_CARET, - ACTIONS(1791), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1793), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1799), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(904), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1693), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1805), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1691), 17, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_AMP, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [49049] = 12, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1787), 1, - anon_sym_DOT, - ACTIONS(1789), 1, - anon_sym_LPAREN, - ACTIONS(1801), 1, - anon_sym_LBRACK, - ACTIONS(1803), 1, - anon_sym_STAR_STAR, - ACTIONS(1791), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1793), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1799), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(904), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1693), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1805), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1691), 18, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [49111] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1519), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1517), 32, - sym__string_start, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [49155] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1523), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1521), 32, + ACTIONS(85), 1, sym__template_string_start, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [49199] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1527), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1525), 32, - sym__string_start, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [49243] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1531), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1529), 32, - sym__template_string_start, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [49287] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1787), 1, - anon_sym_DOT, - ACTIONS(1789), 1, - anon_sym_LPAREN, - ACTIONS(1801), 1, - anon_sym_LBRACK, - ACTIONS(1803), 1, - anon_sym_STAR_STAR, - STATE(904), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1697), 5, + STATE(771), 2, + sym_template_string, + aux_sym_concatenated_template_string_repeat1, + ACTIONS(1209), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1695), 25, + ACTIONS(1204), 29, sym__newline, + anon_sym_DOT, anon_sym_from, + anon_sym_LPAREN, anon_sym_COMMA, anon_sym_GT_GT, anon_sym_if, @@ -64931,6 +64068,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_DASH, anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, anon_sym_AT, anon_sym_not, anon_sym_and, @@ -64947,1197 +64086,93 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, anon_sym_SEMI, - [49341] = 8, + [47874] = 20, ACTIONS(3), 1, sym_comment, - ACTIONS(1787), 1, - anon_sym_DOT, - ACTIONS(1789), 1, - anon_sym_LPAREN, - ACTIONS(1801), 1, - anon_sym_LBRACK, - ACTIONS(1803), 1, - anon_sym_STAR_STAR, - STATE(904), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1719), 5, - anon_sym_STAR, + ACTIONS(1574), 1, anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1717), 25, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [49395] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1593), 1, + ACTIONS(1748), 1, anon_sym_DOT, - ACTIONS(1595), 1, + ACTIONS(1750), 1, anon_sym_LPAREN, - ACTIONS(1609), 1, - anon_sym_LBRACK, - ACTIONS(1767), 1, - anon_sym_STAR_STAR, - STATE(733), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1693), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1691), 26, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_in, + ACTIONS(1758), 1, anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_RBRACE, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [49449] = 11, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1593), 1, - anon_sym_DOT, - ACTIONS(1595), 1, - anon_sym_LPAREN, - ACTIONS(1609), 1, + ACTIONS(1762), 1, anon_sym_LBRACK, - ACTIONS(1767), 1, + ACTIONS(1764), 1, anon_sym_STAR_STAR, - ACTIONS(1693), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1757), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1765), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(733), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1769), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1691), 21, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_RBRACE, + ACTIONS(1768), 1, anon_sym_not, - anon_sym_and, - anon_sym_or, + ACTIONS(1770), 1, anon_sym_AMP, + ACTIONS(1772), 1, anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, + ACTIONS(1776), 1, anon_sym_is, - [49509] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1593), 1, - anon_sym_DOT, - ACTIONS(1595), 1, - anon_sym_LPAREN, - ACTIONS(1609), 1, - anon_sym_LBRACK, - ACTIONS(1763), 1, - anon_sym_PIPE, - ACTIONS(1767), 1, - anon_sym_STAR_STAR, - ACTIONS(1773), 1, - anon_sym_AMP, - ACTIONS(1775), 1, - anon_sym_CARET, - ACTIONS(1701), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1757), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1759), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1765), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(733), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1769), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1699), 16, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [49577] = 14, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1593), 1, - anon_sym_DOT, - ACTIONS(1595), 1, - anon_sym_LPAREN, - ACTIONS(1609), 1, - anon_sym_LBRACK, - ACTIONS(1767), 1, - anon_sym_STAR_STAR, - ACTIONS(1773), 1, - anon_sym_AMP, - ACTIONS(1775), 1, - anon_sym_CARET, - ACTIONS(1693), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1757), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1759), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1765), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(733), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1769), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1691), 17, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [49643] = 10, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1593), 1, - anon_sym_DOT, - ACTIONS(1595), 1, - anon_sym_LPAREN, - ACTIONS(1609), 1, - anon_sym_LBRACK, - ACTIONS(1767), 1, - anon_sym_STAR_STAR, - ACTIONS(1693), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1757), 2, - anon_sym_STAR, - anon_sym_SLASH, - STATE(733), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1769), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1691), 23, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [49701] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1593), 1, - anon_sym_DOT, - ACTIONS(1595), 1, - anon_sym_LPAREN, - ACTIONS(1609), 1, - anon_sym_LBRACK, - ACTIONS(1767), 1, - anon_sym_STAR_STAR, - STATE(733), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1693), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1691), 26, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_RBRACE, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [49755] = 13, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1593), 1, - anon_sym_DOT, - ACTIONS(1595), 1, - anon_sym_LPAREN, - ACTIONS(1609), 1, - anon_sym_LBRACK, - ACTIONS(1767), 1, - anon_sym_STAR_STAR, - ACTIONS(1775), 1, - anon_sym_CARET, - ACTIONS(1693), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1757), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1759), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1765), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(733), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1769), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1691), 18, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_AMP, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [49819] = 12, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1593), 1, - anon_sym_DOT, - ACTIONS(1595), 1, - anon_sym_LPAREN, - ACTIONS(1609), 1, - anon_sym_LBRACK, - ACTIONS(1767), 1, - anon_sym_STAR_STAR, - ACTIONS(1693), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1757), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1759), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1765), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(733), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1769), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1691), 19, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [49881] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1593), 1, - anon_sym_DOT, - ACTIONS(1595), 1, - anon_sym_LPAREN, - ACTIONS(1609), 1, - anon_sym_LBRACK, - ACTIONS(1763), 1, - anon_sym_PIPE, - ACTIONS(1767), 1, - anon_sym_STAR_STAR, - ACTIONS(1773), 1, - anon_sym_AMP, - ACTIONS(1775), 1, - anon_sym_CARET, - ACTIONS(1711), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1757), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1759), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1765), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(733), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1769), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1709), 16, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [49949] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1593), 1, - anon_sym_DOT, - ACTIONS(1595), 1, - anon_sym_LPAREN, - ACTIONS(1609), 1, - anon_sym_LBRACK, - ACTIONS(1763), 1, - anon_sym_PIPE, - ACTIONS(1767), 1, - anon_sym_STAR_STAR, - ACTIONS(1773), 1, - anon_sym_AMP, - ACTIONS(1775), 1, - anon_sym_CARET, - ACTIONS(1715), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1757), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1759), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1765), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(733), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1769), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1713), 16, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_RBRACE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [50017] = 19, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1819), 1, - anon_sym_DOT, - ACTIONS(1821), 1, - anon_sym_LPAREN, - ACTIONS(1829), 1, - anon_sym_PIPE, - ACTIONS(1833), 1, - anon_sym_LBRACK, - ACTIONS(1835), 1, - anon_sym_STAR_STAR, - ACTIONS(1839), 1, - anon_sym_not, - ACTIONS(1841), 1, - anon_sym_AMP, - ACTIONS(1843), 1, - anon_sym_CARET, - ACTIONS(1847), 1, - anon_sym_is, - STATE(1009), 1, + STATE(1008), 1, aux_sym_comparison_operator_repeat1, - ACTIONS(1823), 2, + ACTIONS(1752), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(1825), 2, + ACTIONS(1754), 2, anon_sym_GT_GT, anon_sym_LT_LT, - ACTIONS(1831), 2, + ACTIONS(1760), 2, anon_sym_DASH, anon_sym_PLUS, - ACTIONS(1845), 2, + ACTIONS(1774), 2, anon_sym_LT, anon_sym_GT, - STATE(977), 2, + STATE(895), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1837), 3, + ACTIONS(1766), 3, anon_sym_AT, anon_sym_PERCENT, anon_sym_SLASH_SLASH, - ACTIONS(1827), 6, + ACTIONS(1756), 6, anon_sym_in, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_GT_EQ, anon_sym_LT_GT, - ACTIONS(1597), 7, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_and, - anon_sym_or, - [50093] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1787), 1, - anon_sym_DOT, - ACTIONS(1789), 1, - anon_sym_LPAREN, - ACTIONS(1797), 1, - anon_sym_PIPE, - ACTIONS(1801), 1, - anon_sym_LBRACK, - ACTIONS(1803), 1, - anon_sym_STAR_STAR, - ACTIONS(1809), 1, - anon_sym_AMP, - ACTIONS(1811), 1, - anon_sym_CARET, - ACTIONS(1791), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1793), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1799), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(904), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1711), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1805), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1709), 15, + ACTIONS(1558), 7, sym__newline, anon_sym_from, anon_sym_COMMA, anon_sym_if, - anon_sym_in, - anon_sym_not, anon_sym_and, anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, anon_sym_SEMI, - [50161] = 15, + [47953] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1787), 1, - anon_sym_DOT, - ACTIONS(1789), 1, - anon_sym_LPAREN, - ACTIONS(1797), 1, - anon_sym_PIPE, - ACTIONS(1801), 1, - anon_sym_LBRACK, - ACTIONS(1803), 1, - anon_sym_STAR_STAR, - ACTIONS(1809), 1, - anon_sym_AMP, - ACTIONS(1811), 1, - anon_sym_CARET, - ACTIONS(1791), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1793), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1799), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(904), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1715), 3, - anon_sym_EQ, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1805), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1713), 15, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_if, - anon_sym_in, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [50229] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1787), 1, - anon_sym_DOT, - ACTIONS(1789), 1, - anon_sym_LPAREN, - ACTIONS(1801), 1, - anon_sym_LBRACK, - ACTIONS(1803), 1, - anon_sym_STAR_STAR, - STATE(904), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1693), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1691), 25, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [50283] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(278), 1, + ACTIONS(590), 1, anon_sym_COLON_EQ, - ACTIONS(265), 5, + ACTIONS(272), 6, anon_sym_STAR, + anon_sym_COLON, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(298), 29, - sym__newline, + ACTIONS(303), 30, anon_sym_DOT, - anon_sym_from, anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [50328] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1523), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1521), 30, - sym__newline, - sym__template_string_start, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [50371] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1819), 1, - anon_sym_DOT, - ACTIONS(1821), 1, - anon_sym_LPAREN, - ACTIONS(1833), 1, - anon_sym_LBRACK, - ACTIONS(1835), 1, - anon_sym_STAR_STAR, - STATE(977), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1693), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1691), 25, anon_sym_RPAREN, anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [50424] = 11, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1819), 1, - anon_sym_DOT, - ACTIONS(1821), 1, - anon_sym_LPAREN, - ACTIONS(1833), 1, - anon_sym_LBRACK, - ACTIONS(1835), 1, - anon_sym_STAR_STAR, - ACTIONS(1693), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1823), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1831), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(977), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1837), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1691), 20, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [50483] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1531), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1529), 30, - sym__newline, - sym__template_string_start, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, anon_sym_GT_GT, anon_sym_if, + anon_sym_else, anon_sym_in, anon_sym_PIPE, anon_sym_DASH, anon_sym_PLUS, anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [50526] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1819), 1, - anon_sym_DOT, - ACTIONS(1821), 1, - anon_sym_LPAREN, - ACTIONS(1829), 1, - anon_sym_PIPE, - ACTIONS(1833), 1, - anon_sym_LBRACK, - ACTIONS(1835), 1, - anon_sym_STAR_STAR, - ACTIONS(1841), 1, - anon_sym_AMP, - ACTIONS(1843), 1, - anon_sym_CARET, - ACTIONS(1701), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1823), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1825), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1831), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(977), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1837), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1699), 15, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [50593] = 14, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1819), 1, - anon_sym_DOT, - ACTIONS(1821), 1, - anon_sym_LPAREN, - ACTIONS(1833), 1, - anon_sym_LBRACK, - ACTIONS(1835), 1, - anon_sym_STAR_STAR, - ACTIONS(1841), 1, - anon_sym_AMP, - ACTIONS(1843), 1, - anon_sym_CARET, - ACTIONS(1693), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1823), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1825), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1831), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(977), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1837), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1691), 16, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [50658] = 10, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1819), 1, - anon_sym_DOT, - ACTIONS(1821), 1, - anon_sym_LPAREN, - ACTIONS(1833), 1, - anon_sym_LBRACK, - ACTIONS(1835), 1, - anon_sym_STAR_STAR, - ACTIONS(1693), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1823), 2, - anon_sym_STAR, - anon_sym_SLASH, - STATE(977), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1837), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1691), 22, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [50715] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1173), 3, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_LBRACK, - ACTIONS(1178), 13, - anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - ACTIONS(1223), 19, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_in, anon_sym_RBRACK, - anon_sym_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - [50760] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1819), 1, - anon_sym_DOT, - ACTIONS(1821), 1, - anon_sym_LPAREN, - ACTIONS(1833), 1, - anon_sym_LBRACK, - ACTIONS(1835), 1, + anon_sym_RBRACE, anon_sym_STAR_STAR, - STATE(977), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1693), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1691), 25, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, anon_sym_AT, anon_sym_not, anon_sym_and, @@ -66153,510 +64188,3155 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [50813] = 13, + [48000] = 19, ACTIONS(3), 1, sym_comment, - ACTIONS(1819), 1, + ACTIONS(1554), 1, anon_sym_DOT, - ACTIONS(1821), 1, + ACTIONS(1556), 1, anon_sym_LPAREN, - ACTIONS(1833), 1, + ACTIONS(1570), 1, anon_sym_LBRACK, - ACTIONS(1835), 1, + ACTIONS(1784), 1, + anon_sym_PIPE, + ACTIONS(1788), 1, anon_sym_STAR_STAR, - ACTIONS(1843), 1, + ACTIONS(1792), 1, + anon_sym_not, + ACTIONS(1794), 1, + anon_sym_AMP, + ACTIONS(1796), 1, anon_sym_CARET, - ACTIONS(1693), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1823), 2, + ACTIONS(1800), 1, + anon_sym_is, + STATE(1014), 1, + aux_sym_comparison_operator_repeat1, + ACTIONS(1778), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(1825), 2, + ACTIONS(1780), 2, anon_sym_GT_GT, anon_sym_LT_LT, - ACTIONS(1831), 2, + ACTIONS(1786), 2, anon_sym_DASH, anon_sym_PLUS, - STATE(977), 2, + ACTIONS(1798), 2, + anon_sym_LT, + anon_sym_GT, + STATE(708), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1837), 3, + ACTIONS(1790), 3, anon_sym_AT, anon_sym_PERCENT, anon_sym_SLASH_SLASH, - ACTIONS(1691), 17, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, + ACTIONS(1782), 6, anon_sym_in, - anon_sym_PIPE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_AMP, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_GT_EQ, anon_sym_LT_GT, - anon_sym_is, - [50876] = 12, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1819), 1, - anon_sym_DOT, - ACTIONS(1821), 1, - anon_sym_LPAREN, - ACTIONS(1833), 1, - anon_sym_LBRACK, - ACTIONS(1835), 1, - anon_sym_STAR_STAR, - ACTIONS(1693), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1823), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1825), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1831), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(977), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1837), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1691), 18, - anon_sym_RPAREN, + ACTIONS(1558), 8, anon_sym_COMMA, - anon_sym_as, anon_sym_if, anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [50937] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1267), 3, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_LBRACK, - ACTIONS(1272), 13, - anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - ACTIONS(1274), 19, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_in, - anon_sym_RBRACK, - anon_sym_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - [50982] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(599), 1, - anon_sym_COLON_EQ, - ACTIONS(651), 1, - anon_sym_EQ, - ACTIONS(265), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(298), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, anon_sym_async, anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [51029] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(613), 1, - anon_sym_COLON_EQ, - ACTIONS(265), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(298), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, anon_sym_and, anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [51074] = 3, + [48077] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1527), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1525), 30, + ACTIONS(1802), 1, sym__string_start, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [51117] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1849), 1, - anon_sym_COLON_EQ, - ACTIONS(1178), 5, - anon_sym_STAR, - anon_sym_COLON, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1173), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [51162] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1819), 1, - anon_sym_DOT, - ACTIONS(1821), 1, - anon_sym_LPAREN, - ACTIONS(1829), 1, - anon_sym_PIPE, - ACTIONS(1833), 1, - anon_sym_LBRACK, - ACTIONS(1835), 1, - anon_sym_STAR_STAR, - ACTIONS(1841), 1, - anon_sym_AMP, - ACTIONS(1843), 1, - anon_sym_CARET, - ACTIONS(1711), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1823), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1825), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1831), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(977), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1837), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1709), 15, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [51229] = 15, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1819), 1, - anon_sym_DOT, - ACTIONS(1821), 1, - anon_sym_LPAREN, - ACTIONS(1829), 1, - anon_sym_PIPE, - ACTIONS(1833), 1, - anon_sym_LBRACK, - ACTIONS(1835), 1, - anon_sym_STAR_STAR, - ACTIONS(1841), 1, - anon_sym_AMP, - ACTIONS(1843), 1, - anon_sym_CARET, - ACTIONS(1715), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1823), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1825), 2, - anon_sym_GT_GT, - anon_sym_LT_LT, - ACTIONS(1831), 2, - anon_sym_DASH, - anon_sym_PLUS, - STATE(977), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1837), 3, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - ACTIONS(1713), 15, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [51296] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1819), 1, - anon_sym_DOT, - ACTIONS(1821), 1, - anon_sym_LPAREN, - ACTIONS(1833), 1, - anon_sym_LBRACK, - ACTIONS(1835), 1, - anon_sym_STAR_STAR, - STATE(977), 2, - sym_argument_list, - sym_generator_expression, - ACTIONS(1719), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1717), 25, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [51349] = 22, - ACTIONS(3), 1, - sym_comment, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - ACTIONS(1851), 1, - sym_identifier, - ACTIONS(1853), 1, - anon_sym_LPAREN, - ACTIONS(1855), 1, - anon_sym_STAR, - ACTIONS(1857), 1, - anon_sym_if, - ACTIONS(1859), 1, - anon_sym_COLON, - ACTIONS(1861), 1, - anon_sym_DASH, - ACTIONS(1863), 1, - sym_match_wildcard_pattern, - ACTIONS(1865), 1, - anon_sym_LBRACK, - ACTIONS(1867), 1, - anon_sym_LBRACE, - ACTIONS(1869), 1, - sym_integer, - ACTIONS(1871), 1, - sym_float, - STATE(1039), 1, + STATE(776), 2, sym_string, - STATE(1040), 1, + aux_sym_concatenated_string_repeat1, + ACTIONS(1525), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1523), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [48126] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1805), 1, + sym__template_string_start, + STATE(777), 2, sym_template_string, - STATE(1680), 1, + aux_sym_concatenated_template_string_repeat1, + ACTIONS(1512), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1510), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [48175] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1488), 1, + anon_sym_COLON_EQ, + ACTIONS(1209), 6, + anon_sym_STAR, + anon_sym_COLON, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1204), 30, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_else, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [48222] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(83), 1, + sym__string_start, + STATE(770), 2, + sym_string, + aux_sym_concatenated_string_repeat1, + ACTIONS(1209), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1204), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [48271] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1574), 1, + anon_sym_EQ, + ACTIONS(1808), 1, + anon_sym_DOT, + ACTIONS(1810), 1, + anon_sym_LPAREN, + ACTIONS(1818), 1, + anon_sym_PIPE, + ACTIONS(1822), 1, + anon_sym_LBRACK, + ACTIONS(1824), 1, + anon_sym_STAR_STAR, + ACTIONS(1828), 1, + anon_sym_not, + ACTIONS(1830), 1, + anon_sym_AMP, + ACTIONS(1832), 1, + anon_sym_CARET, + ACTIONS(1836), 1, + anon_sym_is, + STATE(1004), 1, + aux_sym_comparison_operator_repeat1, + ACTIONS(1812), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1814), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1820), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1834), 2, + anon_sym_LT, + anon_sym_GT, + STATE(925), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1826), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1816), 6, + anon_sym_in, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + ACTIONS(1558), 7, + anon_sym_COMMA, + anon_sym_if, + anon_sym_RBRACE, + anon_sym_and, + anon_sym_or, + anon_sym_COLON2, + sym_type_conversion, + [48350] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(630), 1, + sym__string_start, + STATE(784), 2, + sym_string, + aux_sym_concatenated_string_repeat1, + ACTIONS(1209), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1204), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [48399] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(632), 1, + sym__template_string_start, + STATE(785), 2, + sym_template_string, + aux_sym_concatenated_template_string_repeat1, + ACTIONS(1209), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1204), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [48448] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1295), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1290), 32, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [48493] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(630), 1, + sym__string_start, + STATE(768), 2, + sym_string, + aux_sym_concatenated_string_repeat1, + ACTIONS(1532), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1530), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [48542] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(632), 1, + sym__template_string_start, + STATE(769), 2, + sym_template_string, + aux_sym_concatenated_template_string_repeat1, + ACTIONS(1536), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1534), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [48591] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1838), 1, + anon_sym_COLON_EQ, + ACTIONS(1209), 5, + anon_sym_as, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1204), 31, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [48638] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(604), 1, + anon_sym_COLON_EQ, + ACTIONS(272), 5, + anon_sym_as, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(303), 31, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [48685] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1748), 1, + anon_sym_DOT, + ACTIONS(1750), 1, + anon_sym_LPAREN, + ACTIONS(1758), 1, + anon_sym_PIPE, + ACTIONS(1762), 1, + anon_sym_LBRACK, + ACTIONS(1764), 1, + anon_sym_STAR_STAR, + ACTIONS(1770), 1, + anon_sym_AMP, + ACTIONS(1772), 1, + anon_sym_CARET, + ACTIONS(1752), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1754), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1760), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(895), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1722), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1766), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1720), 15, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_if, + anon_sym_in, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [48753] = 19, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1840), 1, + anon_sym_DOT, + ACTIONS(1842), 1, + anon_sym_LPAREN, + ACTIONS(1850), 1, + anon_sym_PIPE, + ACTIONS(1854), 1, + anon_sym_LBRACK, + ACTIONS(1856), 1, + anon_sym_STAR_STAR, + ACTIONS(1860), 1, + anon_sym_not, + ACTIONS(1862), 1, + anon_sym_AMP, + ACTIONS(1864), 1, + anon_sym_CARET, + ACTIONS(1868), 1, + anon_sym_is, + STATE(1016), 1, + aux_sym_comparison_operator_repeat1, + ACTIONS(1844), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1846), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1852), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(1866), 2, + anon_sym_LT, + anon_sym_GT, + STATE(953), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1858), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1848), 6, + anon_sym_in, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + ACTIONS(1558), 7, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_and, + anon_sym_or, + [48829] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(664), 1, + sym__string_start, + STATE(749), 2, + sym_string, + aux_sym_concatenated_string_repeat1, + ACTIONS(1209), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1204), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [48877] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(666), 1, + sym__template_string_start, + STATE(750), 2, + sym_template_string, + aux_sym_concatenated_template_string_repeat1, + ACTIONS(1209), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1204), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [48925] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1548), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1546), 32, + sym__string_start, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [48969] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1544), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1542), 32, + sym__template_string_start, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [49013] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1552), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1550), 32, + sym__string_start, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [49057] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1540), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1538), 32, + sym__template_string_start, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [49101] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1748), 1, + anon_sym_DOT, + ACTIONS(1750), 1, + anon_sym_LPAREN, + ACTIONS(1762), 1, + anon_sym_LBRACK, + ACTIONS(1764), 1, + anon_sym_STAR_STAR, + STATE(895), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1714), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1712), 25, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [49155] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1748), 1, + anon_sym_DOT, + ACTIONS(1750), 1, + anon_sym_LPAREN, + ACTIONS(1762), 1, + anon_sym_LBRACK, + ACTIONS(1764), 1, + anon_sym_STAR_STAR, + ACTIONS(1752), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1760), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(895), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1714), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1766), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1712), 20, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [49215] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1748), 1, + anon_sym_DOT, + ACTIONS(1750), 1, + anon_sym_LPAREN, + ACTIONS(1758), 1, + anon_sym_PIPE, + ACTIONS(1762), 1, + anon_sym_LBRACK, + ACTIONS(1764), 1, + anon_sym_STAR_STAR, + ACTIONS(1770), 1, + anon_sym_AMP, + ACTIONS(1772), 1, + anon_sym_CARET, + ACTIONS(1752), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1754), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1760), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(895), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1740), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1766), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1738), 15, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_if, + anon_sym_in, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [49283] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1748), 1, + anon_sym_DOT, + ACTIONS(1750), 1, + anon_sym_LPAREN, + ACTIONS(1762), 1, + anon_sym_LBRACK, + ACTIONS(1764), 1, + anon_sym_STAR_STAR, + STATE(895), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1726), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1724), 25, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [49337] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1748), 1, + anon_sym_DOT, + ACTIONS(1750), 1, + anon_sym_LPAREN, + ACTIONS(1758), 1, + anon_sym_PIPE, + ACTIONS(1762), 1, + anon_sym_LBRACK, + ACTIONS(1764), 1, + anon_sym_STAR_STAR, + ACTIONS(1770), 1, + anon_sym_AMP, + ACTIONS(1772), 1, + anon_sym_CARET, + ACTIONS(1752), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1754), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1760), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(895), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1718), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1766), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1716), 15, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_if, + anon_sym_in, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [49405] = 14, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1748), 1, + anon_sym_DOT, + ACTIONS(1750), 1, + anon_sym_LPAREN, + ACTIONS(1762), 1, + anon_sym_LBRACK, + ACTIONS(1764), 1, + anon_sym_STAR_STAR, + ACTIONS(1770), 1, + anon_sym_AMP, + ACTIONS(1772), 1, + anon_sym_CARET, + ACTIONS(1752), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1754), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1760), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(895), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1714), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1766), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1712), 16, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [49471] = 10, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1748), 1, + anon_sym_DOT, + ACTIONS(1750), 1, + anon_sym_LPAREN, + ACTIONS(1762), 1, + anon_sym_LBRACK, + ACTIONS(1764), 1, + anon_sym_STAR_STAR, + ACTIONS(1752), 2, + anon_sym_STAR, + anon_sym_SLASH, + STATE(895), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1714), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1766), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1712), 22, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [49529] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1748), 1, + anon_sym_DOT, + ACTIONS(1750), 1, + anon_sym_LPAREN, + ACTIONS(1762), 1, + anon_sym_LBRACK, + ACTIONS(1764), 1, + anon_sym_STAR_STAR, + STATE(895), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1714), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1712), 25, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [49583] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1808), 1, + anon_sym_DOT, + ACTIONS(1810), 1, + anon_sym_LPAREN, + ACTIONS(1822), 1, + anon_sym_LBRACK, + ACTIONS(1824), 1, + anon_sym_STAR_STAR, + STATE(925), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1730), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1728), 25, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_RBRACE, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [49637] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1808), 1, + anon_sym_DOT, + ACTIONS(1810), 1, + anon_sym_LPAREN, + ACTIONS(1822), 1, + anon_sym_LBRACK, + ACTIONS(1824), 1, + anon_sym_STAR_STAR, + STATE(925), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1726), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1724), 25, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_RBRACE, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [49691] = 13, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1748), 1, + anon_sym_DOT, + ACTIONS(1750), 1, + anon_sym_LPAREN, + ACTIONS(1762), 1, + anon_sym_LBRACK, + ACTIONS(1764), 1, + anon_sym_STAR_STAR, + ACTIONS(1772), 1, + anon_sym_CARET, + ACTIONS(1752), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1754), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1760), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(895), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1714), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1766), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1712), 17, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [49755] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1748), 1, + anon_sym_DOT, + ACTIONS(1750), 1, + anon_sym_LPAREN, + ACTIONS(1762), 1, + anon_sym_LBRACK, + ACTIONS(1764), 1, + anon_sym_STAR_STAR, + ACTIONS(1752), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1754), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1760), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(895), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1714), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1766), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1712), 18, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [49817] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1554), 1, + anon_sym_DOT, + ACTIONS(1556), 1, + anon_sym_LPAREN, + ACTIONS(1570), 1, + anon_sym_LBRACK, + ACTIONS(1788), 1, + anon_sym_STAR_STAR, + STATE(708), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1726), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1724), 26, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_RBRACE, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [49871] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1808), 1, + anon_sym_DOT, + ACTIONS(1810), 1, + anon_sym_LPAREN, + ACTIONS(1822), 1, + anon_sym_LBRACK, + ACTIONS(1824), 1, + anon_sym_STAR_STAR, + ACTIONS(1812), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1820), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(925), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1714), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1826), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1712), 20, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [49931] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1808), 1, + anon_sym_DOT, + ACTIONS(1810), 1, + anon_sym_LPAREN, + ACTIONS(1818), 1, + anon_sym_PIPE, + ACTIONS(1822), 1, + anon_sym_LBRACK, + ACTIONS(1824), 1, + anon_sym_STAR_STAR, + ACTIONS(1830), 1, + anon_sym_AMP, + ACTIONS(1832), 1, + anon_sym_CARET, + ACTIONS(1812), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1814), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1820), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(925), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1740), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1826), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1738), 15, + anon_sym_COMMA, + anon_sym_if, + anon_sym_in, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [49999] = 14, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1808), 1, + anon_sym_DOT, + ACTIONS(1810), 1, + anon_sym_LPAREN, + ACTIONS(1822), 1, + anon_sym_LBRACK, + ACTIONS(1824), 1, + anon_sym_STAR_STAR, + ACTIONS(1830), 1, + anon_sym_AMP, + ACTIONS(1832), 1, + anon_sym_CARET, + ACTIONS(1812), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1814), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1820), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(925), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1714), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1826), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1712), 16, + anon_sym_COMMA, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [50065] = 10, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1808), 1, + anon_sym_DOT, + ACTIONS(1810), 1, + anon_sym_LPAREN, + ACTIONS(1822), 1, + anon_sym_LBRACK, + ACTIONS(1824), 1, + anon_sym_STAR_STAR, + ACTIONS(1812), 2, + anon_sym_STAR, + anon_sym_SLASH, + STATE(925), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1714), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1826), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1712), 22, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [50123] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1808), 1, + anon_sym_DOT, + ACTIONS(1810), 1, + anon_sym_LPAREN, + ACTIONS(1822), 1, + anon_sym_LBRACK, + ACTIONS(1824), 1, + anon_sym_STAR_STAR, + STATE(925), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1714), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1712), 25, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_RBRACE, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [50177] = 13, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1808), 1, + anon_sym_DOT, + ACTIONS(1810), 1, + anon_sym_LPAREN, + ACTIONS(1822), 1, + anon_sym_LBRACK, + ACTIONS(1824), 1, + anon_sym_STAR_STAR, + ACTIONS(1832), 1, + anon_sym_CARET, + ACTIONS(1812), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1814), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1820), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(925), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1714), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1826), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1712), 17, + anon_sym_COMMA, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [50241] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1808), 1, + anon_sym_DOT, + ACTIONS(1810), 1, + anon_sym_LPAREN, + ACTIONS(1822), 1, + anon_sym_LBRACK, + ACTIONS(1824), 1, + anon_sym_STAR_STAR, + ACTIONS(1812), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1814), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1820), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(925), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1714), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1826), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1712), 18, + anon_sym_COMMA, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [50303] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1808), 1, + anon_sym_DOT, + ACTIONS(1810), 1, + anon_sym_LPAREN, + ACTIONS(1818), 1, + anon_sym_PIPE, + ACTIONS(1822), 1, + anon_sym_LBRACK, + ACTIONS(1824), 1, + anon_sym_STAR_STAR, + ACTIONS(1830), 1, + anon_sym_AMP, + ACTIONS(1832), 1, + anon_sym_CARET, + ACTIONS(1812), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1814), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1820), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(925), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1718), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1826), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1716), 15, + anon_sym_COMMA, + anon_sym_if, + anon_sym_in, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [50371] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1808), 1, + anon_sym_DOT, + ACTIONS(1810), 1, + anon_sym_LPAREN, + ACTIONS(1818), 1, + anon_sym_PIPE, + ACTIONS(1822), 1, + anon_sym_LBRACK, + ACTIONS(1824), 1, + anon_sym_STAR_STAR, + ACTIONS(1830), 1, + anon_sym_AMP, + ACTIONS(1832), 1, + anon_sym_CARET, + ACTIONS(1812), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1814), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1820), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(925), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1722), 3, + anon_sym_EQ, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1826), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1720), 15, + anon_sym_COMMA, + anon_sym_if, + anon_sym_in, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [50439] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1748), 1, + anon_sym_DOT, + ACTIONS(1750), 1, + anon_sym_LPAREN, + ACTIONS(1762), 1, + anon_sym_LBRACK, + ACTIONS(1764), 1, + anon_sym_STAR_STAR, + STATE(895), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1730), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1728), 25, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [50493] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1554), 1, + anon_sym_DOT, + ACTIONS(1556), 1, + anon_sym_LPAREN, + ACTIONS(1570), 1, + anon_sym_LBRACK, + ACTIONS(1788), 1, + anon_sym_STAR_STAR, + STATE(708), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1714), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1712), 26, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_RBRACE, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [50547] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1554), 1, + anon_sym_DOT, + ACTIONS(1556), 1, + anon_sym_LPAREN, + ACTIONS(1570), 1, + anon_sym_LBRACK, + ACTIONS(1788), 1, + anon_sym_STAR_STAR, + ACTIONS(1714), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1778), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1786), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(708), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1790), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1712), 21, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [50607] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1554), 1, + anon_sym_DOT, + ACTIONS(1556), 1, + anon_sym_LPAREN, + ACTIONS(1570), 1, + anon_sym_LBRACK, + ACTIONS(1784), 1, + anon_sym_PIPE, + ACTIONS(1788), 1, + anon_sym_STAR_STAR, + ACTIONS(1794), 1, + anon_sym_AMP, + ACTIONS(1796), 1, + anon_sym_CARET, + ACTIONS(1740), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1778), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1780), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1786), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(708), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1790), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1738), 16, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [50675] = 14, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1554), 1, + anon_sym_DOT, + ACTIONS(1556), 1, + anon_sym_LPAREN, + ACTIONS(1570), 1, + anon_sym_LBRACK, + ACTIONS(1788), 1, + anon_sym_STAR_STAR, + ACTIONS(1794), 1, + anon_sym_AMP, + ACTIONS(1796), 1, + anon_sym_CARET, + ACTIONS(1714), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1778), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1780), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1786), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(708), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1790), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1712), 17, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [50741] = 10, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1554), 1, + anon_sym_DOT, + ACTIONS(1556), 1, + anon_sym_LPAREN, + ACTIONS(1570), 1, + anon_sym_LBRACK, + ACTIONS(1788), 1, + anon_sym_STAR_STAR, + ACTIONS(1714), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1778), 2, + anon_sym_STAR, + anon_sym_SLASH, + STATE(708), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1790), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1712), 23, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [50799] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1554), 1, + anon_sym_DOT, + ACTIONS(1556), 1, + anon_sym_LPAREN, + ACTIONS(1570), 1, + anon_sym_LBRACK, + ACTIONS(1788), 1, + anon_sym_STAR_STAR, + STATE(708), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1714), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1712), 26, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_RBRACE, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [50853] = 13, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1554), 1, + anon_sym_DOT, + ACTIONS(1556), 1, + anon_sym_LPAREN, + ACTIONS(1570), 1, + anon_sym_LBRACK, + ACTIONS(1788), 1, + anon_sym_STAR_STAR, + ACTIONS(1796), 1, + anon_sym_CARET, + ACTIONS(1714), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1778), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1780), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1786), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(708), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1790), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1712), 18, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [50917] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1554), 1, + anon_sym_DOT, + ACTIONS(1556), 1, + anon_sym_LPAREN, + ACTIONS(1570), 1, + anon_sym_LBRACK, + ACTIONS(1788), 1, + anon_sym_STAR_STAR, + ACTIONS(1714), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1778), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1780), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1786), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(708), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1790), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1712), 19, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [50979] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1554), 1, + anon_sym_DOT, + ACTIONS(1556), 1, + anon_sym_LPAREN, + ACTIONS(1570), 1, + anon_sym_LBRACK, + ACTIONS(1784), 1, + anon_sym_PIPE, + ACTIONS(1788), 1, + anon_sym_STAR_STAR, + ACTIONS(1794), 1, + anon_sym_AMP, + ACTIONS(1796), 1, + anon_sym_CARET, + ACTIONS(1718), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1778), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1780), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1786), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(708), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1790), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1716), 16, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [51047] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1554), 1, + anon_sym_DOT, + ACTIONS(1556), 1, + anon_sym_LPAREN, + ACTIONS(1570), 1, + anon_sym_LBRACK, + ACTIONS(1784), 1, + anon_sym_PIPE, + ACTIONS(1788), 1, + anon_sym_STAR_STAR, + ACTIONS(1794), 1, + anon_sym_AMP, + ACTIONS(1796), 1, + anon_sym_CARET, + ACTIONS(1722), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1778), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1780), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1786), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(708), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1790), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1720), 16, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_RBRACE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [51115] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1554), 1, + anon_sym_DOT, + ACTIONS(1556), 1, + anon_sym_LPAREN, + ACTIONS(1570), 1, + anon_sym_LBRACK, + ACTIONS(1788), 1, + anon_sym_STAR_STAR, + STATE(708), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1730), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1728), 26, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_RBRACE, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [51169] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1808), 1, + anon_sym_DOT, + ACTIONS(1810), 1, + anon_sym_LPAREN, + ACTIONS(1822), 1, + anon_sym_LBRACK, + ACTIONS(1824), 1, + anon_sym_STAR_STAR, + STATE(925), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1714), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1712), 25, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_RBRACE, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [51223] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1268), 1, + anon_sym_COLON_EQ, + ACTIONS(1209), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1204), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [51268] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1870), 1, + anon_sym_COLON_EQ, + ACTIONS(1209), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1204), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [51313] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1840), 1, + anon_sym_DOT, + ACTIONS(1842), 1, + anon_sym_LPAREN, + ACTIONS(1854), 1, + anon_sym_LBRACK, + ACTIONS(1856), 1, + anon_sym_STAR_STAR, + STATE(953), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1730), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1728), 25, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [51366] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1544), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1542), 30, + sym__template_string_start, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [51409] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(283), 1, + anon_sym_COLON_EQ, + ACTIONS(272), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(303), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [51454] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(618), 1, + anon_sym_COLON_EQ, + ACTIONS(272), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(303), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [51499] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1872), 1, + anon_sym_COLON_EQ, + ACTIONS(1209), 5, + anon_sym_STAR, + anon_sym_COLON, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1204), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [51544] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1290), 3, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_LBRACK, + ACTIONS(1295), 13, + anon_sym_STAR, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + ACTIONS(1297), 19, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_in, + anon_sym_RBRACK, + anon_sym_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [51589] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1840), 1, + anon_sym_DOT, + ACTIONS(1842), 1, + anon_sym_LPAREN, + ACTIONS(1854), 1, + anon_sym_LBRACK, + ACTIONS(1856), 1, + anon_sym_STAR_STAR, + STATE(953), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1726), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1724), 25, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [51642] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1540), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1538), 30, + sym__template_string_start, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [51685] = 22, + ACTIONS(3), 1, + sym_comment, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(1874), 1, + sym_identifier, + ACTIONS(1876), 1, + anon_sym_LPAREN, + ACTIONS(1878), 1, + anon_sym_STAR, + ACTIONS(1880), 1, + anon_sym_if, + ACTIONS(1882), 1, + anon_sym_COLON, + ACTIONS(1884), 1, + anon_sym_DASH, + ACTIONS(1886), 1, + sym_match_wildcard_pattern, + ACTIONS(1888), 1, + anon_sym_LBRACK, + ACTIONS(1890), 1, + anon_sym_LBRACE, + ACTIONS(1892), 1, + sym_integer, + ACTIONS(1894), 1, + sym_float, + STATE(1043), 1, + sym_template_string, + STATE(1068), 1, + sym_string, + STATE(1650), 1, sym_pattern_class_name, - STATE(1140), 2, + STATE(1116), 2, sym_concatenated_string, sym_concatenated_template_string, - STATE(1184), 2, + STATE(1240), 2, sym__match_or_pattern, sym_match_or_pattern, - ACTIONS(1873), 3, + ACTIONS(1896), 3, sym_true, sym_false, sym_none, - STATE(1277), 4, + STATE(1307), 4, sym__match_pattern, sym_match_as_pattern, sym__match_maybe_star_pattern, sym_match_star_pattern, - STATE(1142), 8, + STATE(1117), 8, sym__closed_pattern, sym_match_literal_pattern, sym_match_capture_pattern, @@ -66665,16 +67345,57 @@ static const uint16_t ts_small_parse_table[] = { sym_match_sequence_pattern, sym_match_mapping_pattern, sym_match_class_pattern, - [51430] = 3, + [51766] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1519), 5, + ACTIONS(1204), 3, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_LBRACK, + ACTIONS(1209), 13, + anon_sym_STAR, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + ACTIONS(1272), 19, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_in, + anon_sym_RBRACK, + anon_sym_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [51811] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1548), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1517), 30, + ACTIONS(1546), 30, sym__newline, sym__string_start, anon_sym_DOT, @@ -66705,26 +67426,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, anon_sym_SEMI, - [51473] = 8, + [51854] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(1819), 1, + ACTIONS(1840), 1, anon_sym_DOT, - ACTIONS(1821), 1, + ACTIONS(1842), 1, anon_sym_LPAREN, - ACTIONS(1833), 1, + ACTIONS(1854), 1, anon_sym_LBRACK, - ACTIONS(1835), 1, + ACTIONS(1856), 1, anon_sym_STAR_STAR, - STATE(977), 2, + STATE(953), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1697), 4, + ACTIONS(1714), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1695), 25, + ACTIONS(1712), 25, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, @@ -66750,57 +67471,64 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [51526] = 4, + [51907] = 11, ACTIONS(3), 1, sym_comment, - ACTIONS(1173), 3, + ACTIONS(1840), 1, anon_sym_DOT, + ACTIONS(1842), 1, anon_sym_LPAREN, + ACTIONS(1854), 1, anon_sym_LBRACK, - ACTIONS(1178), 13, + ACTIONS(1856), 1, + anon_sym_STAR_STAR, + ACTIONS(1714), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1844), 2, anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_PIPE, + anon_sym_SLASH, + ACTIONS(1852), 2, anon_sym_DASH, anon_sym_PLUS, - anon_sym_STAR_STAR, + STATE(953), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1858), 3, anon_sym_AT, - anon_sym_SLASH, anon_sym_PERCENT, anon_sym_SLASH_SLASH, + ACTIONS(1712), 20, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_not, + anon_sym_and, + anon_sym_or, anon_sym_AMP, anon_sym_CARET, anon_sym_LT_LT, - ACTIONS(1184), 19, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_in, - anon_sym_RBRACK, - anon_sym_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - [51571] = 3, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [51966] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1519), 5, + ACTIONS(1548), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1517), 30, + ACTIONS(1546), 30, sym__string_start, anon_sym_DOT, anon_sym_LPAREN, @@ -66831,18 +67559,58 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_is, anon_sym_COLON2, sym_type_conversion, - [51614] = 3, + [52009] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1531), 5, + ACTIONS(1544), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1529), 30, + ACTIONS(1542), 30, + sym__newline, sym__template_string_start, anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [52052] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1552), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1550), 30, + sym__string_start, + anon_sym_DOT, anon_sym_LPAREN, anon_sym_COMMA, anon_sym_GT_GT, @@ -66871,19 +67639,358 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_is, anon_sym_COLON2, sym_type_conversion, - [51657] = 5, + [52095] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1817), 1, + ACTIONS(1838), 1, anon_sym_COLON_EQ, - ACTIONS(1875), 1, - anon_sym_EQ, - ACTIONS(1178), 4, + ACTIONS(1206), 3, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACK, + ACTIONS(1209), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1173), 29, + ACTIONS(1204), 27, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [52142] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(604), 1, + anon_sym_COLON_EQ, + ACTIONS(277), 3, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACK, + ACTIONS(272), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(303), 27, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [52189] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1333), 3, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_LBRACK, + ACTIONS(1338), 13, + anon_sym_STAR, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + ACTIONS(1340), 19, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_in, + anon_sym_RBRACK, + anon_sym_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [52234] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1552), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1550), 30, + sym__newline, + sym__string_start, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [52277] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1540), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1538), 30, + sym__newline, + sym__template_string_start, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [52320] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(638), 1, + anon_sym_COLON_EQ, + ACTIONS(272), 5, + anon_sym_STAR, + anon_sym_COLON, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(303), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [52365] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(303), 3, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_LBRACK, + ACTIONS(272), 13, + anon_sym_STAR, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + ACTIONS(307), 19, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_in, + anon_sym_RBRACK, + anon_sym_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [52410] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1840), 1, + anon_sym_DOT, + ACTIONS(1842), 1, + anon_sym_LPAREN, + ACTIONS(1850), 1, + anon_sym_PIPE, + ACTIONS(1854), 1, + anon_sym_LBRACK, + ACTIONS(1856), 1, + anon_sym_STAR_STAR, + ACTIONS(1862), 1, + anon_sym_AMP, + ACTIONS(1864), 1, + anon_sym_CARET, + ACTIONS(1740), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1844), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1846), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1852), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(953), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1858), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1738), 15, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [52477] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(604), 1, + anon_sym_COLON_EQ, + ACTIONS(634), 1, + anon_sym_EQ, + ACTIONS(272), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(303), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -66913,25 +68020,27 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [51704] = 4, + [52524] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(1180), 1, + ACTIONS(1838), 1, anon_sym_COLON_EQ, - ACTIONS(1178), 5, - anon_sym_STAR, + ACTIONS(1898), 1, anon_sym_EQ, + ACTIONS(1209), 4, + anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1173), 29, - sym__newline, + ACTIONS(1204), 29, anon_sym_DOT, - anon_sym_from, anon_sym_LPAREN, + anon_sym_RPAREN, anon_sym_COMMA, anon_sym_GT_GT, anon_sym_if, + anon_sym_async, + anon_sym_for, anon_sym_in, anon_sym_PIPE, anon_sym_DASH, @@ -66953,74 +68062,56 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - anon_sym_SEMI, - [51749] = 22, + [52571] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - ACTIONS(1851), 1, - sym_identifier, - ACTIONS(1853), 1, - anon_sym_LPAREN, - ACTIONS(1855), 1, + ACTIONS(604), 1, + anon_sym_COLON_EQ, + ACTIONS(587), 3, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACK, + ACTIONS(272), 4, anon_sym_STAR, - ACTIONS(1861), 1, - anon_sym_DASH, - ACTIONS(1863), 1, - sym_match_wildcard_pattern, - ACTIONS(1865), 1, - anon_sym_LBRACK, - ACTIONS(1867), 1, - anon_sym_LBRACE, - ACTIONS(1869), 1, - sym_integer, - ACTIONS(1871), 1, - sym_float, - ACTIONS(1877), 1, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(303), 27, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_GT_GT, anon_sym_if, - ACTIONS(1879), 1, - anon_sym_COLON, - STATE(1039), 1, - sym_string, - STATE(1040), 1, - sym_template_string, - STATE(1680), 1, - sym_pattern_class_name, - STATE(1140), 2, - sym_concatenated_string, - sym_concatenated_template_string, - STATE(1184), 2, - sym__match_or_pattern, - sym_match_or_pattern, - ACTIONS(1873), 3, - sym_true, - sym_false, - sym_none, - STATE(1277), 4, - sym__match_pattern, - sym_match_as_pattern, - sym__match_maybe_star_pattern, - sym_match_star_pattern, - STATE(1142), 8, - sym__closed_pattern, - sym_match_literal_pattern, - sym_match_capture_pattern, - sym_match_value_pattern, - sym_match_group_pattern, - sym_match_sequence_pattern, - sym_match_mapping_pattern, - sym_match_class_pattern, - [51830] = 4, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [52618] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(298), 3, + ACTIONS(1204), 3, anon_sym_DOT, anon_sym_LPAREN, anon_sym_LBRACK, - ACTIONS(265), 13, + ACTIONS(1209), 13, anon_sym_STAR, anon_sym_GT_GT, anon_sym_PIPE, @@ -67034,7 +68125,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP, anon_sym_CARET, anon_sym_LT_LT, - ACTIONS(302), 19, + ACTIONS(1211), 19, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_COLON, @@ -67054,57 +68145,462 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_EQ, anon_sym_CARET_EQ, anon_sym_PIPE_EQ, - [51875] = 22, + [52663] = 22, ACTIONS(3), 1, sym_comment, - ACTIONS(647), 1, + ACTIONS(664), 1, sym__string_start, - ACTIONS(649), 1, + ACTIONS(666), 1, sym__template_string_start, - ACTIONS(1851), 1, + ACTIONS(1874), 1, sym_identifier, - ACTIONS(1853), 1, + ACTIONS(1876), 1, anon_sym_LPAREN, - ACTIONS(1855), 1, + ACTIONS(1878), 1, anon_sym_STAR, - ACTIONS(1861), 1, + ACTIONS(1884), 1, anon_sym_DASH, - ACTIONS(1863), 1, + ACTIONS(1886), 1, sym_match_wildcard_pattern, - ACTIONS(1865), 1, + ACTIONS(1888), 1, anon_sym_LBRACK, - ACTIONS(1867), 1, + ACTIONS(1890), 1, anon_sym_LBRACE, - ACTIONS(1869), 1, + ACTIONS(1892), 1, sym_integer, - ACTIONS(1871), 1, + ACTIONS(1894), 1, sym_float, - STATE(1039), 1, - sym_string, - STATE(1040), 1, + ACTIONS(1900), 1, + anon_sym_if, + ACTIONS(1902), 1, + anon_sym_COLON, + STATE(1043), 1, sym_template_string, - STATE(1680), 1, + STATE(1068), 1, + sym_string, + STATE(1650), 1, sym_pattern_class_name, - STATE(1140), 2, + STATE(1116), 2, sym_concatenated_string, sym_concatenated_template_string, - STATE(1184), 2, + STATE(1240), 2, sym__match_or_pattern, sym_match_or_pattern, - STATE(1390), 2, + ACTIONS(1896), 3, + sym_true, + sym_false, + sym_none, + STATE(1307), 4, + sym__match_pattern, + sym_match_as_pattern, + sym__match_maybe_star_pattern, + sym_match_star_pattern, + STATE(1117), 8, + sym__closed_pattern, + sym_match_literal_pattern, + sym_match_capture_pattern, + sym_match_value_pattern, + sym_match_group_pattern, + sym_match_sequence_pattern, + sym_match_mapping_pattern, + sym_match_class_pattern, + [52744] = 14, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1840), 1, + anon_sym_DOT, + ACTIONS(1842), 1, + anon_sym_LPAREN, + ACTIONS(1854), 1, + anon_sym_LBRACK, + ACTIONS(1856), 1, + anon_sym_STAR_STAR, + ACTIONS(1862), 1, + anon_sym_AMP, + ACTIONS(1864), 1, + anon_sym_CARET, + ACTIONS(1714), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1844), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1846), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1852), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(953), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1858), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1712), 16, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [52809] = 10, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1840), 1, + anon_sym_DOT, + ACTIONS(1842), 1, + anon_sym_LPAREN, + ACTIONS(1854), 1, + anon_sym_LBRACK, + ACTIONS(1856), 1, + anon_sym_STAR_STAR, + ACTIONS(1714), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1844), 2, + anon_sym_STAR, + anon_sym_SLASH, + STATE(953), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1858), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1712), 22, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [52866] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1840), 1, + anon_sym_DOT, + ACTIONS(1842), 1, + anon_sym_LPAREN, + ACTIONS(1854), 1, + anon_sym_LBRACK, + ACTIONS(1856), 1, + anon_sym_STAR_STAR, + STATE(953), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1714), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1712), 25, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [52919] = 13, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1840), 1, + anon_sym_DOT, + ACTIONS(1842), 1, + anon_sym_LPAREN, + ACTIONS(1854), 1, + anon_sym_LBRACK, + ACTIONS(1856), 1, + anon_sym_STAR_STAR, + ACTIONS(1864), 1, + anon_sym_CARET, + ACTIONS(1714), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1844), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1846), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1852), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(953), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1858), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1712), 17, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [52982] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1840), 1, + anon_sym_DOT, + ACTIONS(1842), 1, + anon_sym_LPAREN, + ACTIONS(1854), 1, + anon_sym_LBRACK, + ACTIONS(1856), 1, + anon_sym_STAR_STAR, + ACTIONS(1714), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1844), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1846), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1852), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(953), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1858), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1712), 18, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [53043] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1840), 1, + anon_sym_DOT, + ACTIONS(1842), 1, + anon_sym_LPAREN, + ACTIONS(1850), 1, + anon_sym_PIPE, + ACTIONS(1854), 1, + anon_sym_LBRACK, + ACTIONS(1856), 1, + anon_sym_STAR_STAR, + ACTIONS(1862), 1, + anon_sym_AMP, + ACTIONS(1864), 1, + anon_sym_CARET, + ACTIONS(1718), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1844), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1846), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1852), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(953), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1858), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1716), 15, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [53110] = 15, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1840), 1, + anon_sym_DOT, + ACTIONS(1842), 1, + anon_sym_LPAREN, + ACTIONS(1850), 1, + anon_sym_PIPE, + ACTIONS(1854), 1, + anon_sym_LBRACK, + ACTIONS(1856), 1, + anon_sym_STAR_STAR, + ACTIONS(1862), 1, + anon_sym_AMP, + ACTIONS(1864), 1, + anon_sym_CARET, + ACTIONS(1722), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1844), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(1846), 2, + anon_sym_GT_GT, + anon_sym_LT_LT, + ACTIONS(1852), 2, + anon_sym_DASH, + anon_sym_PLUS, + STATE(953), 2, + sym_argument_list, + sym_generator_expression, + ACTIONS(1858), 3, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + ACTIONS(1720), 15, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [53177] = 22, + ACTIONS(3), 1, + sym_comment, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(1874), 1, + sym_identifier, + ACTIONS(1876), 1, + anon_sym_LPAREN, + ACTIONS(1878), 1, + anon_sym_STAR, + ACTIONS(1884), 1, + anon_sym_DASH, + ACTIONS(1886), 1, + sym_match_wildcard_pattern, + ACTIONS(1888), 1, + anon_sym_LBRACK, + ACTIONS(1890), 1, + anon_sym_LBRACE, + ACTIONS(1892), 1, + sym_integer, + ACTIONS(1894), 1, + sym_float, + STATE(1043), 1, + sym_template_string, + STATE(1068), 1, + sym_string, + STATE(1650), 1, + sym_pattern_class_name, + STATE(1116), 2, + sym_concatenated_string, + sym_concatenated_template_string, + STATE(1240), 2, + sym__match_or_pattern, + sym_match_or_pattern, + STATE(1407), 2, sym__match_patterns, sym_open_sequence_match_pattern, - STATE(1391), 2, + STATE(1408), 2, sym__match_pattern, sym_match_as_pattern, - STATE(1509), 2, + STATE(1595), 2, sym__match_maybe_star_pattern, sym_match_star_pattern, - ACTIONS(1873), 3, + ACTIONS(1896), 3, sym_true, sym_false, sym_none, - STATE(1142), 8, + STATE(1117), 8, sym__closed_pattern, sym_match_literal_pattern, sym_match_capture_pattern, @@ -67113,261 +68609,57 @@ static const uint16_t ts_small_parse_table[] = { sym_match_sequence_pattern, sym_match_mapping_pattern, sym_match_class_pattern, - [51956] = 4, + [53258] = 22, ACTIONS(3), 1, sym_comment, - ACTIONS(1278), 3, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_LBRACK, - ACTIONS(1283), 13, - anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - ACTIONS(1285), 19, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_in, - anon_sym_RBRACK, - anon_sym_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - [52001] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1817), 1, - anon_sym_COLON_EQ, - ACTIONS(1175), 3, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACK, - ACTIONS(1178), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1173), 27, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [52048] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1523), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1521), 30, - sym__template_string_start, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [52091] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(298), 3, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_LBRACK, - ACTIONS(265), 13, - anon_sym_STAR, - anon_sym_GT_GT, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_SLASH, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - ACTIONS(593), 19, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_in, - anon_sym_RBRACK, - anon_sym_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - [52136] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1527), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1525), 30, - sym__newline, + ACTIONS(664), 1, sym__string_start, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [52179] = 22, - ACTIONS(3), 1, - sym_comment, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, + ACTIONS(666), 1, sym__template_string_start, - ACTIONS(1851), 1, + ACTIONS(1874), 1, sym_identifier, - ACTIONS(1853), 1, + ACTIONS(1876), 1, anon_sym_LPAREN, - ACTIONS(1855), 1, + ACTIONS(1878), 1, anon_sym_STAR, - ACTIONS(1861), 1, + ACTIONS(1884), 1, anon_sym_DASH, - ACTIONS(1863), 1, + ACTIONS(1886), 1, sym_match_wildcard_pattern, - ACTIONS(1865), 1, + ACTIONS(1888), 1, anon_sym_LBRACK, - ACTIONS(1867), 1, + ACTIONS(1890), 1, anon_sym_LBRACE, - ACTIONS(1869), 1, + ACTIONS(1892), 1, sym_integer, - ACTIONS(1871), 1, + ACTIONS(1894), 1, sym_float, - STATE(1039), 1, - sym_string, - STATE(1040), 1, + STATE(1043), 1, sym_template_string, - STATE(1680), 1, + STATE(1068), 1, + sym_string, + STATE(1650), 1, sym_pattern_class_name, - STATE(1140), 2, + STATE(1116), 2, sym_concatenated_string, sym_concatenated_template_string, - STATE(1184), 2, + STATE(1240), 2, sym__match_or_pattern, sym_match_or_pattern, - STATE(1391), 2, + STATE(1408), 2, sym__match_pattern, sym_match_as_pattern, - STATE(1456), 2, + STATE(1495), 2, sym__match_patterns, sym_open_sequence_match_pattern, - STATE(1509), 2, + STATE(1595), 2, sym__match_maybe_star_pattern, sym_match_star_pattern, - ACTIONS(1873), 3, + ACTIONS(1896), 3, sym_true, sym_false, sym_none, - STATE(1142), 8, + STATE(1117), 8, sym__closed_pattern, sym_match_literal_pattern, sym_match_capture_pattern, @@ -67376,23 +68668,845 @@ static const uint16_t ts_small_parse_table[] = { sym_match_sequence_pattern, sym_match_mapping_pattern, sym_match_class_pattern, - [52260] = 4, + [53339] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(655), 1, + ACTIONS(303), 3, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_LBRACK, + ACTIONS(272), 13, + anon_sym_STAR, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_SLASH, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + ACTIONS(598), 19, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_in, + anon_sym_RBRACK, + anon_sym_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [53384] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1838), 1, anon_sym_COLON_EQ, - ACTIONS(265), 5, + ACTIONS(1265), 3, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACK, + ACTIONS(1209), 4, anon_sym_STAR, - anon_sym_COLON, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(298), 29, + ACTIONS(1204), 27, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [53431] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1706), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1704), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [53473] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1674), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1672), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_COMMA, anon_sym_GT_GT, anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [53515] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1678), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1676), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [53557] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1032), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1030), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [53599] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1674), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1672), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [53641] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1614), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1612), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [53683] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1682), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1680), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [53725] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1686), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1684), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [53767] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1690), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1688), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [53809] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1690), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1688), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [53851] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1694), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1692), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [53893] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1698), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1696), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [53935] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1690), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1688), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [53977] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1702), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1700), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [54019] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1702), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1700), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [54061] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1706), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1704), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [54103] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1702), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1700), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [54145] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1622), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1620), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [54187] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1626), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1624), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [54229] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1338), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1333), 30, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, anon_sym_async, anon_sym_for, anon_sym_in, @@ -67417,27 +69531,608 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [52305] = 5, + [54271] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(599), 1, + ACTIONS(1295), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1290), 30, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [54313] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1630), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1628), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [54355] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1618), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1616), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [54397] = 22, + ACTIONS(3), 1, + sym_comment, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(1874), 1, + sym_identifier, + ACTIONS(1876), 1, + anon_sym_LPAREN, + ACTIONS(1878), 1, + anon_sym_STAR, + ACTIONS(1884), 1, + anon_sym_DASH, + ACTIONS(1886), 1, + sym_match_wildcard_pattern, + ACTIONS(1888), 1, + anon_sym_LBRACK, + ACTIONS(1890), 1, + anon_sym_LBRACE, + ACTIONS(1892), 1, + sym_integer, + ACTIONS(1894), 1, + sym_float, + ACTIONS(1904), 1, + anon_sym_RPAREN, + STATE(1043), 1, + sym_template_string, + STATE(1068), 1, + sym_string, + STATE(1650), 1, + sym_pattern_class_name, + STATE(1116), 2, + sym_concatenated_string, + sym_concatenated_template_string, + STATE(1240), 2, + sym__match_or_pattern, + sym_match_or_pattern, + STATE(1601), 2, + sym__match_pattern, + sym_match_as_pattern, + STATE(1602), 2, + sym__match_maybe_star_pattern, + sym_match_star_pattern, + ACTIONS(1896), 3, + sym_true, + sym_false, + sym_none, + STATE(1117), 8, + sym__closed_pattern, + sym_match_literal_pattern, + sym_match_capture_pattern, + sym_match_value_pattern, + sym_match_group_pattern, + sym_match_sequence_pattern, + sym_match_mapping_pattern, + sym_match_class_pattern, + [54477] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(1874), 1, + sym_identifier, + ACTIONS(1876), 1, + anon_sym_LPAREN, + ACTIONS(1878), 1, + anon_sym_STAR, + ACTIONS(1884), 1, + anon_sym_DASH, + ACTIONS(1886), 1, + sym_match_wildcard_pattern, + ACTIONS(1888), 1, + anon_sym_LBRACK, + ACTIONS(1890), 1, + anon_sym_LBRACE, + ACTIONS(1892), 1, + sym_integer, + ACTIONS(1894), 1, + sym_float, + ACTIONS(1904), 1, + anon_sym_RBRACK, + STATE(1043), 1, + sym_template_string, + STATE(1068), 1, + sym_string, + STATE(1650), 1, + sym_pattern_class_name, + STATE(1116), 2, + sym_concatenated_string, + sym_concatenated_template_string, + STATE(1240), 2, + sym__match_or_pattern, + sym_match_or_pattern, + ACTIONS(1896), 3, + sym_true, + sym_false, + sym_none, + STATE(1489), 4, + sym__match_pattern, + sym_match_as_pattern, + sym__match_maybe_star_pattern, + sym_match_star_pattern, + STATE(1117), 8, + sym__closed_pattern, + sym_match_literal_pattern, + sym_match_capture_pattern, + sym_match_value_pattern, + sym_match_group_pattern, + sym_match_sequence_pattern, + sym_match_mapping_pattern, + sym_match_class_pattern, + [54555] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1682), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1680), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [54597] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1634), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1632), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [54639] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1650), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1648), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [54681] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1638), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1636), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [54723] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1642), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1640), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [54765] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1686), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1684), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [54807] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1690), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1688), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [54849] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1690), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1688), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [54891] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1050), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1048), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [54933] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1906), 1, anon_sym_COLON_EQ, - ACTIONS(270), 3, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACK, - ACTIONS(265), 4, + ACTIONS(1209), 5, anon_sym_STAR, + anon_sym_COLON, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(298), 27, + ACTIONS(1204), 28, anon_sym_DOT, anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, anon_sym_GT_GT, anon_sym_if, - anon_sym_async, - anon_sym_for, anon_sym_in, anon_sym_PIPE, anon_sym_DASH, @@ -67459,1814 +70154,213 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [52352] = 4, + [54977] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1881), 1, + ACTIONS(1694), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1692), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [55019] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1698), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1696), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [55061] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1690), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1688), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [55103] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(272), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(303), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [55145] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1646), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1644), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [55187] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(652), 1, anon_sym_COLON_EQ, - ACTIONS(1178), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1173), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [52397] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1629), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1627), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [52439] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1591), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1589), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [52481] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1575), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1573), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [52523] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1555), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1553), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [52565] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1272), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1267), 30, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [52607] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1283), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1278), 30, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [52649] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1559), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1557), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [52691] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1563), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1561), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [52733] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1567), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1565), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [52775] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1571), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1569), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [52817] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1001), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(999), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [52859] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1535), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1533), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [52901] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1685), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1683), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [52943] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1633), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1631), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [52985] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1665), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1663), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [53027] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1669), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1667), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [53069] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1673), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1671), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [53111] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1677), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1675), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [53153] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1681), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1679), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [53195] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1673), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1671), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [53237] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1559), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1557), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [53279] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1637), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1635), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [53321] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1539), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1537), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [53363] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1547), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1545), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [53405] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1015), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1013), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [53447] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1555), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1553), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [53489] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1583), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1581), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [53531] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1583), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1581), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [53573] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1591), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1589), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [53615] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1579), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1577), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [53657] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1685), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1683), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [53699] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1579), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1577), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [53741] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1543), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1541), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [53783] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1551), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1549), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [53825] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1543), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1541), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [53867] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1575), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1573), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [53909] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1567), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1565), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [53951] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1579), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1577), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [53993] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1689), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1687), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [54035] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1272), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1267), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [54077] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1689), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1687), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_RBRACE, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_COLON2, - sym_type_conversion, - [54119] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1633), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1631), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [54161] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1178), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1173), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [54203] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1583), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1581), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [54245] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1665), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1663), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [54287] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(635), 1, - anon_sym_COLON_EQ, - ACTIONS(265), 5, + ACTIONS(272), 5, anon_sym_STAR, anon_sym_COLON, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(298), 28, + ACTIONS(303), 28, anon_sym_DOT, anon_sym_LPAREN, anon_sym_RPAREN, @@ -69295,137 +70389,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [54331] = 4, + [55231] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1883), 1, - anon_sym_COLON_EQ, - ACTIONS(1178), 5, - anon_sym_STAR, - anon_sym_COLON, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1173), 28, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [54375] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1669), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1667), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [54417] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1543), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1541), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [54459] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1175), 3, + ACTIONS(1292), 3, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_RBRACK, - ACTIONS(1178), 4, + ACTIONS(1295), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1173), 27, + ACTIONS(1290), 27, anon_sym_DOT, anon_sym_LPAREN, anon_sym_GT_GT, @@ -69453,16 +70429,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [54503] = 3, + [55275] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1551), 5, + ACTIONS(1338), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1549), 29, + ACTIONS(1333), 29, sym__newline, anon_sym_DOT, anon_sym_from, @@ -69492,16 +70468,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, anon_sym_SEMI, - [54545] = 3, + [55317] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1543), 5, + ACTIONS(1295), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1541), 29, + ACTIONS(1290), 29, sym__newline, anon_sym_DOT, anon_sym_from, @@ -69531,58 +70507,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, anon_sym_SEMI, - [54587] = 3, + [55359] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1283), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1278), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [54629] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1269), 3, + ACTIONS(1265), 3, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_RBRACK, - ACTIONS(1272), 4, + ACTIONS(1209), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1267), 27, + ACTIONS(1204), 27, anon_sym_DOT, anon_sym_LPAREN, anon_sym_GT_GT, @@ -69610,172 +70547,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [54673] = 3, + [55403] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1673), 5, + ACTIONS(272), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1671), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [54715] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1677), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1675), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [54757] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1681), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1679), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [54799] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1673), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1671), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [54841] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1178), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1173), 29, + ACTIONS(303), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_COMMA, @@ -69805,19 +70586,214 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_is, anon_sym_COLON2, sym_type_conversion, - [54883] = 4, + [55445] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1280), 3, + ACTIONS(1646), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1644), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [55487] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1662), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1660), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [55529] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1622), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1620), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [55571] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1626), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1624), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [55613] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1614), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1612), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [55655] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1335), 3, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_RBRACK, - ACTIONS(1283), 4, + ACTIONS(1338), 4, anon_sym_STAR, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1278), 27, + ACTIONS(1333), 27, anon_sym_DOT, anon_sym_LPAREN, anon_sym_GT_GT, @@ -69845,593 +70821,16 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [54927] = 3, + [55699] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(265), 5, + ACTIONS(1618), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(298), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [54969] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - ACTIONS(1851), 1, - sym_identifier, - ACTIONS(1853), 1, - anon_sym_LPAREN, - ACTIONS(1855), 1, - anon_sym_STAR, - ACTIONS(1861), 1, - anon_sym_DASH, - ACTIONS(1863), 1, - sym_match_wildcard_pattern, - ACTIONS(1865), 1, - anon_sym_LBRACK, - ACTIONS(1867), 1, - anon_sym_LBRACE, - ACTIONS(1869), 1, - sym_integer, - ACTIONS(1871), 1, - sym_float, - ACTIONS(1885), 1, - anon_sym_RPAREN, - STATE(1039), 1, - sym_string, - STATE(1040), 1, - sym_template_string, - STATE(1680), 1, - sym_pattern_class_name, - STATE(1140), 2, - sym_concatenated_string, - sym_concatenated_template_string, - STATE(1184), 2, - sym__match_or_pattern, - sym_match_or_pattern, - ACTIONS(1873), 3, - sym_true, - sym_false, - sym_none, - STATE(1277), 4, - sym__match_pattern, - sym_match_as_pattern, - sym__match_maybe_star_pattern, - sym_match_star_pattern, - STATE(1142), 8, - sym__closed_pattern, - sym_match_literal_pattern, - sym_match_capture_pattern, - sym_match_value_pattern, - sym_match_group_pattern, - sym_match_sequence_pattern, - sym_match_mapping_pattern, - sym_match_class_pattern, - [55047] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - ACTIONS(1851), 1, - sym_identifier, - ACTIONS(1853), 1, - anon_sym_LPAREN, - ACTIONS(1855), 1, - anon_sym_STAR, - ACTIONS(1861), 1, - anon_sym_DASH, - ACTIONS(1863), 1, - sym_match_wildcard_pattern, - ACTIONS(1865), 1, - anon_sym_LBRACK, - ACTIONS(1867), 1, - anon_sym_LBRACE, - ACTIONS(1869), 1, - sym_integer, - ACTIONS(1871), 1, - sym_float, - ACTIONS(1885), 1, - anon_sym_RBRACK, - STATE(1039), 1, - sym_string, - STATE(1040), 1, - sym_template_string, - STATE(1680), 1, - sym_pattern_class_name, - STATE(1140), 2, - sym_concatenated_string, - sym_concatenated_template_string, - STATE(1184), 2, - sym__match_or_pattern, - sym_match_or_pattern, - ACTIONS(1873), 3, - sym_true, - sym_false, - sym_none, - STATE(1277), 4, - sym__match_pattern, - sym_match_as_pattern, - sym__match_maybe_star_pattern, - sym_match_star_pattern, - STATE(1142), 8, - sym__closed_pattern, - sym_match_literal_pattern, - sym_match_capture_pattern, - sym_match_value_pattern, - sym_match_group_pattern, - sym_match_sequence_pattern, - sym_match_mapping_pattern, - sym_match_class_pattern, - [55125] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1637), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1635), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [55167] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1539), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1537), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [55209] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1535), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1533), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [55251] = 22, - ACTIONS(3), 1, - sym_comment, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - ACTIONS(1851), 1, - sym_identifier, - ACTIONS(1853), 1, - anon_sym_LPAREN, - ACTIONS(1855), 1, - anon_sym_STAR, - ACTIONS(1861), 1, - anon_sym_DASH, - ACTIONS(1863), 1, - sym_match_wildcard_pattern, - ACTIONS(1865), 1, - anon_sym_LBRACK, - ACTIONS(1867), 1, - anon_sym_LBRACE, - ACTIONS(1869), 1, - sym_integer, - ACTIONS(1871), 1, - sym_float, - ACTIONS(1887), 1, - anon_sym_RPAREN, - STATE(1039), 1, - sym_string, - STATE(1040), 1, - sym_template_string, - STATE(1680), 1, - sym_pattern_class_name, - STATE(1140), 2, - sym_concatenated_string, - sym_concatenated_template_string, - STATE(1184), 2, - sym__match_or_pattern, - sym_match_or_pattern, - STATE(1553), 2, - sym__match_pattern, - sym_match_as_pattern, - STATE(1556), 2, - sym__match_maybe_star_pattern, - sym_match_star_pattern, - ACTIONS(1873), 3, - sym_true, - sym_false, - sym_none, - STATE(1142), 8, - sym__closed_pattern, - sym_match_literal_pattern, - sym_match_capture_pattern, - sym_match_value_pattern, - sym_match_group_pattern, - sym_match_sequence_pattern, - sym_match_mapping_pattern, - sym_match_class_pattern, - [55331] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - ACTIONS(1851), 1, - sym_identifier, - ACTIONS(1853), 1, - anon_sym_LPAREN, - ACTIONS(1855), 1, - anon_sym_STAR, - ACTIONS(1861), 1, - anon_sym_DASH, - ACTIONS(1863), 1, - sym_match_wildcard_pattern, - ACTIONS(1865), 1, - anon_sym_LBRACK, - ACTIONS(1867), 1, - anon_sym_LBRACE, - ACTIONS(1869), 1, - sym_integer, - ACTIONS(1871), 1, - sym_float, - ACTIONS(1887), 1, - anon_sym_RBRACK, - STATE(1039), 1, - sym_string, - STATE(1040), 1, - sym_template_string, - STATE(1680), 1, - sym_pattern_class_name, - STATE(1140), 2, - sym_concatenated_string, - sym_concatenated_template_string, - STATE(1184), 2, - sym__match_or_pattern, - sym_match_or_pattern, - ACTIONS(1873), 3, - sym_true, - sym_false, - sym_none, - STATE(1469), 4, - sym__match_pattern, - sym_match_as_pattern, - sym__match_maybe_star_pattern, - sym_match_star_pattern, - STATE(1142), 8, - sym__closed_pattern, - sym_match_literal_pattern, - sym_match_capture_pattern, - sym_match_value_pattern, - sym_match_group_pattern, - sym_match_sequence_pattern, - sym_match_mapping_pattern, - sym_match_class_pattern, - [55409] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - ACTIONS(1851), 1, - sym_identifier, - ACTIONS(1853), 1, - anon_sym_LPAREN, - ACTIONS(1855), 1, - anon_sym_STAR, - ACTIONS(1861), 1, - anon_sym_DASH, - ACTIONS(1863), 1, - sym_match_wildcard_pattern, - ACTIONS(1865), 1, - anon_sym_LBRACK, - ACTIONS(1867), 1, - anon_sym_LBRACE, - ACTIONS(1869), 1, - sym_integer, - ACTIONS(1871), 1, - sym_float, - ACTIONS(1889), 1, - anon_sym_RPAREN, - STATE(1039), 1, - sym_string, - STATE(1040), 1, - sym_template_string, - STATE(1680), 1, - sym_pattern_class_name, - STATE(1140), 2, - sym_concatenated_string, - sym_concatenated_template_string, - STATE(1184), 2, - sym__match_or_pattern, - sym_match_or_pattern, - ACTIONS(1873), 3, - sym_true, - sym_false, - sym_none, - STATE(1277), 4, - sym__match_pattern, - sym_match_as_pattern, - sym__match_maybe_star_pattern, - sym_match_star_pattern, - STATE(1142), 8, - sym__closed_pattern, - sym_match_literal_pattern, - sym_match_capture_pattern, - sym_match_value_pattern, - sym_match_group_pattern, - sym_match_sequence_pattern, - sym_match_mapping_pattern, - sym_match_class_pattern, - [55487] = 21, - ACTIONS(3), 1, - sym_comment, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - ACTIONS(1851), 1, - sym_identifier, - ACTIONS(1853), 1, - anon_sym_LPAREN, - ACTIONS(1855), 1, - anon_sym_STAR, - ACTIONS(1861), 1, - anon_sym_DASH, - ACTIONS(1863), 1, - sym_match_wildcard_pattern, - ACTIONS(1865), 1, - anon_sym_LBRACK, - ACTIONS(1867), 1, - anon_sym_LBRACE, - ACTIONS(1869), 1, - sym_integer, - ACTIONS(1871), 1, - sym_float, - ACTIONS(1889), 1, - anon_sym_RBRACK, - STATE(1039), 1, - sym_string, - STATE(1040), 1, - sym_template_string, - STATE(1680), 1, - sym_pattern_class_name, - STATE(1140), 2, - sym_concatenated_string, - sym_concatenated_template_string, - STATE(1184), 2, - sym__match_or_pattern, - sym_match_or_pattern, - ACTIONS(1873), 3, - sym_true, - sym_false, - sym_none, - STATE(1277), 4, - sym__match_pattern, - sym_match_as_pattern, - sym__match_maybe_star_pattern, - sym_match_star_pattern, - STATE(1142), 8, - sym__closed_pattern, - sym_match_literal_pattern, - sym_match_capture_pattern, - sym_match_value_pattern, - sym_match_group_pattern, - sym_match_sequence_pattern, - sym_match_mapping_pattern, - sym_match_class_pattern, - [55565] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1547), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1545), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [55607] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1563), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1561), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [55649] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(265), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(298), 29, + ACTIONS(1616), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_COMMA, @@ -70461,16 +70860,307 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_is, anon_sym_COLON2, sym_type_conversion, - [55691] = 3, + [55741] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1587), 5, + ACTIONS(1710), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1585), 29, + ACTIONS(1708), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [55783] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1638), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1636), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [55825] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1666), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1664), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [55867] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1678), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1676), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [55909] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1670), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1668), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [55951] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(1874), 1, + sym_identifier, + ACTIONS(1876), 1, + anon_sym_LPAREN, + ACTIONS(1878), 1, + anon_sym_STAR, + ACTIONS(1884), 1, + anon_sym_DASH, + ACTIONS(1886), 1, + sym_match_wildcard_pattern, + ACTIONS(1888), 1, + anon_sym_LBRACK, + ACTIONS(1890), 1, + anon_sym_LBRACE, + ACTIONS(1892), 1, + sym_integer, + ACTIONS(1894), 1, + sym_float, + ACTIONS(1908), 1, + anon_sym_RBRACK, + STATE(1043), 1, + sym_template_string, + STATE(1068), 1, + sym_string, + STATE(1650), 1, + sym_pattern_class_name, + STATE(1116), 2, + sym_concatenated_string, + sym_concatenated_template_string, + STATE(1240), 2, + sym__match_or_pattern, + sym_match_or_pattern, + ACTIONS(1896), 3, + sym_true, + sym_false, + sym_none, + STATE(1307), 4, + sym__match_pattern, + sym_match_as_pattern, + sym__match_maybe_star_pattern, + sym_match_star_pattern, + STATE(1117), 8, + sym__closed_pattern, + sym_match_literal_pattern, + sym_match_capture_pattern, + sym_match_value_pattern, + sym_match_group_pattern, + sym_match_sequence_pattern, + sym_match_mapping_pattern, + sym_match_class_pattern, + [56029] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1630), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1628), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [56071] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1650), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1648), 29, anon_sym_DOT, anon_sym_LPAREN, anon_sym_COMMA, @@ -70500,16 +71190,130 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_is, anon_sym_COLON2, sym_type_conversion, - [55733] = 3, + [56113] = 21, ACTIONS(3), 1, sym_comment, - ACTIONS(1583), 5, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(1874), 1, + sym_identifier, + ACTIONS(1876), 1, + anon_sym_LPAREN, + ACTIONS(1878), 1, + anon_sym_STAR, + ACTIONS(1884), 1, + anon_sym_DASH, + ACTIONS(1886), 1, + sym_match_wildcard_pattern, + ACTIONS(1888), 1, + anon_sym_LBRACK, + ACTIONS(1890), 1, + anon_sym_LBRACE, + ACTIONS(1892), 1, + sym_integer, + ACTIONS(1894), 1, + sym_float, + ACTIONS(1908), 1, + anon_sym_RPAREN, + STATE(1043), 1, + sym_template_string, + STATE(1068), 1, + sym_string, + STATE(1650), 1, + sym_pattern_class_name, + STATE(1116), 2, + sym_concatenated_string, + sym_concatenated_template_string, + STATE(1240), 2, + sym__match_or_pattern, + sym_match_or_pattern, + ACTIONS(1896), 3, + sym_true, + sym_false, + sym_none, + STATE(1307), 4, + sym__match_pattern, + sym_match_as_pattern, + sym__match_maybe_star_pattern, + sym_match_star_pattern, + STATE(1117), 8, + sym__closed_pattern, + sym_match_literal_pattern, + sym_match_capture_pattern, + sym_match_value_pattern, + sym_match_group_pattern, + sym_match_sequence_pattern, + sym_match_mapping_pattern, + sym_match_class_pattern, + [56191] = 21, + ACTIONS(3), 1, + sym_comment, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(1874), 1, + sym_identifier, + ACTIONS(1876), 1, + anon_sym_LPAREN, + ACTIONS(1878), 1, + anon_sym_STAR, + ACTIONS(1884), 1, + anon_sym_DASH, + ACTIONS(1886), 1, + sym_match_wildcard_pattern, + ACTIONS(1888), 1, + anon_sym_LBRACK, + ACTIONS(1890), 1, + anon_sym_LBRACE, + ACTIONS(1892), 1, + sym_integer, + ACTIONS(1894), 1, + sym_float, + ACTIONS(1910), 1, + anon_sym_RBRACK, + STATE(1043), 1, + sym_template_string, + STATE(1068), 1, + sym_string, + STATE(1650), 1, + sym_pattern_class_name, + STATE(1116), 2, + sym_concatenated_string, + sym_concatenated_template_string, + STATE(1240), 2, + sym__match_or_pattern, + sym_match_or_pattern, + ACTIONS(1896), 3, + sym_true, + sym_false, + sym_none, + STATE(1307), 4, + sym__match_pattern, + sym_match_as_pattern, + sym__match_maybe_star_pattern, + sym_match_star_pattern, + STATE(1117), 8, + sym__closed_pattern, + sym_match_literal_pattern, + sym_match_capture_pattern, + sym_match_value_pattern, + sym_match_group_pattern, + sym_match_sequence_pattern, + sym_match_mapping_pattern, + sym_match_class_pattern, + [56269] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1642), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1581), 29, + ACTIONS(1640), 29, sym__newline, anon_sym_DOT, anon_sym_from, @@ -70539,19 +71343,17 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_GT, anon_sym_is, anon_sym_SEMI, - [55775] = 3, + [56311] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1629), 5, + ACTIONS(1654), 5, anon_sym_STAR, anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1627), 29, - sym__newline, + ACTIONS(1652), 29, anon_sym_DOT, - anon_sym_from, anon_sym_LPAREN, anon_sym_COMMA, anon_sym_GT_GT, @@ -70561,6 +71363,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DASH, anon_sym_PLUS, anon_sym_LBRACK, + anon_sym_RBRACE, anon_sym_STAR_STAR, anon_sym_AT, anon_sym_not, @@ -70577,526 +71380,29 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - anon_sym_SEMI, - [55817] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1587), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1585), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [55859] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1579), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1577), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [55901] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1571), 5, - anon_sym_STAR, - anon_sym_EQ, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1569), 29, - sym__newline, - anon_sym_DOT, - anon_sym_from, - anon_sym_LPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - anon_sym_SEMI, - [55943] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1559), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1557), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [55984] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1575), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1573), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [56025] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1001), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(999), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [56066] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1637), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1635), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [56107] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1535), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1533), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [56148] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1547), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1545), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [56189] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1015), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1013), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [56230] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1587), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1585), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [56271] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1178), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1173), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [56312] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1583), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1581), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, [56353] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1583), 4, + ACTIONS(1658), 5, anon_sym_STAR, + anon_sym_EQ, anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1581), 29, + ACTIONS(1656), 29, anon_sym_DOT, anon_sym_LPAREN, - anon_sym_RPAREN, anon_sym_COMMA, - anon_sym_as, anon_sym_GT_GT, anon_sym_if, - anon_sym_COLON, anon_sym_in, anon_sym_PIPE, anon_sym_DASH, anon_sym_PLUS, anon_sym_LBRACK, + anon_sym_RBRACE, anon_sym_STAR_STAR, anon_sym_AT, anon_sym_not, @@ -71113,950 +71419,57 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT_EQ, anon_sym_LT_GT, anon_sym_is, - [56394] = 3, + anon_sym_COLON2, + sym_type_conversion, + [56395] = 21, ACTIONS(3), 1, sym_comment, - ACTIONS(1591), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1589), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [56435] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1579), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1577), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [56476] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1629), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1627), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [56517] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1685), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1683), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [56558] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1579), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1577), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [56599] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1543), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1541), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [56640] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1551), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1549), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [56681] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(265), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(298), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [56722] = 22, - ACTIONS(3), 1, - sym_comment, - ACTIONS(647), 1, + ACTIONS(664), 1, sym__string_start, - ACTIONS(649), 1, + ACTIONS(666), 1, sym__template_string_start, - ACTIONS(1853), 1, - anon_sym_LPAREN, - ACTIONS(1861), 1, - anon_sym_DASH, - ACTIONS(1863), 1, - sym_match_wildcard_pattern, - ACTIONS(1865), 1, - anon_sym_LBRACK, - ACTIONS(1867), 1, - anon_sym_LBRACE, - ACTIONS(1869), 1, - sym_integer, - ACTIONS(1871), 1, - sym_float, - ACTIONS(1891), 1, + ACTIONS(1874), 1, sym_identifier, - ACTIONS(1893), 1, + ACTIONS(1876), 1, + anon_sym_LPAREN, + ACTIONS(1878), 1, + anon_sym_STAR, + ACTIONS(1884), 1, + anon_sym_DASH, + ACTIONS(1886), 1, + sym_match_wildcard_pattern, + ACTIONS(1888), 1, + anon_sym_LBRACK, + ACTIONS(1890), 1, + anon_sym_LBRACE, + ACTIONS(1892), 1, + sym_integer, + ACTIONS(1894), 1, + sym_float, + ACTIONS(1910), 1, anon_sym_RPAREN, - STATE(1039), 1, - sym_string, - STATE(1040), 1, + STATE(1043), 1, sym_template_string, - STATE(1459), 1, - sym_match_keyword_pattern, - STATE(1534), 1, - sym_match_positional_pattern, - STATE(1680), 1, + STATE(1068), 1, + sym_string, + STATE(1650), 1, sym_pattern_class_name, - STATE(1140), 2, + STATE(1116), 2, sym_concatenated_string, sym_concatenated_template_string, - STATE(1184), 2, + STATE(1240), 2, sym__match_or_pattern, sym_match_or_pattern, - STATE(1526), 2, - sym__match_pattern, - sym_match_as_pattern, - ACTIONS(1873), 3, + ACTIONS(1896), 3, sym_true, sym_false, sym_none, - STATE(1142), 8, - sym__closed_pattern, - sym_match_literal_pattern, - sym_match_capture_pattern, - sym_match_value_pattern, - sym_match_group_pattern, - sym_match_sequence_pattern, - sym_match_mapping_pattern, - sym_match_class_pattern, - [56801] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1543), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1541), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [56842] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1563), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1561), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [56883] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1633), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1631), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [56924] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1567), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1565), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [56965] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1555), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1553), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [57006] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1665), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1663), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [57047] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1669), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1667), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [57088] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(585), 1, - anon_sym_COLON_EQ, - ACTIONS(651), 1, - anon_sym_EQ, - ACTIONS(265), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(298), 27, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [57133] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1219), 1, - anon_sym_COLON_EQ, - ACTIONS(1875), 1, - anon_sym_EQ, - ACTIONS(1178), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1173), 27, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [57178] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1673), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1671), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [57219] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1571), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1569), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [57260] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1677), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1675), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [57301] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1689), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1687), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [57342] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1681), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1679), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [57383] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - ACTIONS(1851), 1, - sym_identifier, - ACTIONS(1853), 1, - anon_sym_LPAREN, - ACTIONS(1855), 1, - anon_sym_STAR, - ACTIONS(1861), 1, - anon_sym_DASH, - ACTIONS(1863), 1, - sym_match_wildcard_pattern, - ACTIONS(1865), 1, - anon_sym_LBRACK, - ACTIONS(1867), 1, - anon_sym_LBRACE, - ACTIONS(1869), 1, - sym_integer, - ACTIONS(1871), 1, - sym_float, - STATE(1039), 1, - sym_string, - STATE(1040), 1, - sym_template_string, - STATE(1680), 1, - sym_pattern_class_name, - STATE(1140), 2, - sym_concatenated_string, - sym_concatenated_template_string, - STATE(1184), 2, - sym__match_or_pattern, - sym_match_or_pattern, - ACTIONS(1873), 3, - sym_true, - sym_false, - sym_none, - STATE(1277), 4, + STATE(1307), 4, sym__match_pattern, sym_match_as_pattern, sym__match_maybe_star_pattern, sym_match_star_pattern, - STATE(1142), 8, + STATE(1117), 8, sym__closed_pattern, sym_match_literal_pattern, sym_match_capture_pattern, @@ -72065,494 +71478,2301 @@ static const uint16_t ts_small_parse_table[] = { sym_match_sequence_pattern, sym_match_mapping_pattern, sym_match_class_pattern, - [57458] = 22, + [56473] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - ACTIONS(1853), 1, - anon_sym_LPAREN, - ACTIONS(1861), 1, - anon_sym_DASH, - ACTIONS(1863), 1, - sym_match_wildcard_pattern, - ACTIONS(1865), 1, - anon_sym_LBRACK, - ACTIONS(1867), 1, - anon_sym_LBRACE, - ACTIONS(1869), 1, - sym_integer, - ACTIONS(1871), 1, - sym_float, - ACTIONS(1891), 1, - sym_identifier, - ACTIONS(1895), 1, - anon_sym_RPAREN, - STATE(1039), 1, - sym_string, - STATE(1040), 1, - sym_template_string, - STATE(1438), 1, - sym_match_keyword_pattern, - STATE(1534), 1, - sym_match_positional_pattern, - STATE(1680), 1, - sym_pattern_class_name, - STATE(1140), 2, - sym_concatenated_string, - sym_concatenated_template_string, - STATE(1184), 2, - sym__match_or_pattern, - sym_match_or_pattern, - STATE(1526), 2, - sym__match_pattern, - sym_match_as_pattern, - ACTIONS(1873), 3, - sym_true, - sym_false, - sym_none, - STATE(1142), 8, - sym__closed_pattern, - sym_match_literal_pattern, - sym_match_capture_pattern, - sym_match_value_pattern, - sym_match_group_pattern, - sym_match_sequence_pattern, - sym_match_mapping_pattern, - sym_match_class_pattern, - [57537] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1673), 4, + ACTIONS(1662), 5, anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1671), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [57578] = 22, - ACTIONS(3), 1, - sym_comment, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - ACTIONS(1853), 1, - anon_sym_LPAREN, - ACTIONS(1861), 1, - anon_sym_DASH, - ACTIONS(1863), 1, - sym_match_wildcard_pattern, - ACTIONS(1865), 1, - anon_sym_LBRACK, - ACTIONS(1867), 1, - anon_sym_LBRACE, - ACTIONS(1869), 1, - sym_integer, - ACTIONS(1871), 1, - sym_float, - ACTIONS(1891), 1, - sym_identifier, - ACTIONS(1897), 1, - anon_sym_RPAREN, - STATE(1039), 1, - sym_string, - STATE(1040), 1, - sym_template_string, - STATE(1381), 1, - sym_match_keyword_pattern, - STATE(1466), 1, - sym_match_positional_pattern, - STATE(1680), 1, - sym_pattern_class_name, - STATE(1140), 2, - sym_concatenated_string, - sym_concatenated_template_string, - STATE(1184), 2, - sym__match_or_pattern, - sym_match_or_pattern, - STATE(1526), 2, - sym__match_pattern, - sym_match_as_pattern, - ACTIONS(1873), 3, - sym_true, - sym_false, - sym_none, - STATE(1142), 8, - sym__closed_pattern, - sym_match_literal_pattern, - sym_match_capture_pattern, - sym_match_value_pattern, - sym_match_group_pattern, - sym_match_sequence_pattern, - sym_match_mapping_pattern, - sym_match_class_pattern, - [57657] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1539), 4, - anon_sym_STAR, - anon_sym_SLASH, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1537), 29, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_GT_GT, - anon_sym_if, - anon_sym_COLON, - anon_sym_in, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_not, - anon_sym_and, - anon_sym_or, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - anon_sym_is, - [57698] = 20, - ACTIONS(3), 1, - sym_comment, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - ACTIONS(1851), 1, - sym_identifier, - ACTIONS(1853), 1, - anon_sym_LPAREN, - ACTIONS(1861), 1, - anon_sym_DASH, - ACTIONS(1863), 1, - sym_match_wildcard_pattern, - ACTIONS(1865), 1, - anon_sym_LBRACK, - ACTIONS(1867), 1, - anon_sym_LBRACE, - ACTIONS(1869), 1, - sym_integer, - ACTIONS(1871), 1, - sym_float, - STATE(1039), 1, - sym_string, - STATE(1040), 1, - sym_template_string, - STATE(1534), 1, - sym_match_positional_pattern, - STATE(1680), 1, - sym_pattern_class_name, - STATE(1140), 2, - sym_concatenated_string, - sym_concatenated_template_string, - STATE(1184), 2, - sym__match_or_pattern, - sym_match_or_pattern, - STATE(1526), 2, - sym__match_pattern, - sym_match_as_pattern, - ACTIONS(1873), 3, - sym_true, - sym_false, - sym_none, - STATE(1142), 8, - sym__closed_pattern, - sym_match_literal_pattern, - sym_match_capture_pattern, - sym_match_value_pattern, - sym_match_group_pattern, - sym_match_sequence_pattern, - sym_match_mapping_pattern, - sym_match_class_pattern, - [57771] = 19, - ACTIONS(3), 1, - sym_comment, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - ACTIONS(1851), 1, - sym_identifier, - ACTIONS(1853), 1, - anon_sym_LPAREN, - ACTIONS(1861), 1, - anon_sym_DASH, - ACTIONS(1863), 1, - sym_match_wildcard_pattern, - ACTIONS(1865), 1, - anon_sym_LBRACK, - ACTIONS(1867), 1, - anon_sym_LBRACE, - ACTIONS(1869), 1, - sym_integer, - ACTIONS(1871), 1, - sym_float, - STATE(1039), 1, - sym_string, - STATE(1040), 1, - sym_template_string, - STATE(1680), 1, - sym_pattern_class_name, - STATE(1140), 2, - sym_concatenated_string, - sym_concatenated_template_string, - STATE(1184), 2, - sym__match_or_pattern, - sym_match_or_pattern, - STATE(1542), 2, - sym__match_pattern, - sym_match_as_pattern, - ACTIONS(1873), 3, - sym_true, - sym_false, - sym_none, - STATE(1142), 8, - sym__closed_pattern, - sym_match_literal_pattern, - sym_match_capture_pattern, - sym_match_value_pattern, - sym_match_group_pattern, - sym_match_sequence_pattern, - sym_match_mapping_pattern, - sym_match_class_pattern, - [57841] = 19, - ACTIONS(3), 1, - sym_comment, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - ACTIONS(1851), 1, - sym_identifier, - ACTIONS(1853), 1, - anon_sym_LPAREN, - ACTIONS(1861), 1, - anon_sym_DASH, - ACTIONS(1863), 1, - sym_match_wildcard_pattern, - ACTIONS(1865), 1, - anon_sym_LBRACK, - ACTIONS(1867), 1, - anon_sym_LBRACE, - ACTIONS(1869), 1, - sym_integer, - ACTIONS(1871), 1, - sym_float, - STATE(1039), 1, - sym_string, - STATE(1040), 1, - sym_template_string, - STATE(1680), 1, - sym_pattern_class_name, - STATE(1140), 2, - sym_concatenated_string, - sym_concatenated_template_string, - STATE(1184), 2, - sym__match_or_pattern, - sym_match_or_pattern, - STATE(1575), 2, - sym__match_pattern, - sym_match_as_pattern, - ACTIONS(1873), 3, - sym_true, - sym_false, - sym_none, - STATE(1142), 8, - sym__closed_pattern, - sym_match_literal_pattern, - sym_match_capture_pattern, - sym_match_value_pattern, - sym_match_group_pattern, - sym_match_sequence_pattern, - sym_match_mapping_pattern, - sym_match_class_pattern, - [57911] = 17, - ACTIONS(3), 1, - sym_comment, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - ACTIONS(1851), 1, - sym_identifier, - ACTIONS(1853), 1, - anon_sym_LPAREN, - ACTIONS(1861), 1, - anon_sym_DASH, - ACTIONS(1865), 1, - anon_sym_LBRACK, - ACTIONS(1867), 1, - anon_sym_LBRACE, - ACTIONS(1869), 1, - sym_integer, - ACTIONS(1871), 1, - sym_float, - ACTIONS(1899), 1, - sym_match_wildcard_pattern, - STATE(1039), 1, - sym_string, - STATE(1040), 1, - sym_template_string, - STATE(1680), 1, - sym_pattern_class_name, - STATE(1140), 2, - sym_concatenated_string, - sym_concatenated_template_string, - ACTIONS(1873), 3, - sym_true, - sym_false, - sym_none, - STATE(1116), 8, - sym__closed_pattern, - sym_match_literal_pattern, - sym_match_capture_pattern, - sym_match_value_pattern, - sym_match_group_pattern, - sym_match_sequence_pattern, - sym_match_mapping_pattern, - sym_match_class_pattern, - [57973] = 17, - ACTIONS(3), 1, - sym_comment, - ACTIONS(647), 1, - sym__string_start, - ACTIONS(649), 1, - sym__template_string_start, - ACTIONS(1851), 1, - sym_identifier, - ACTIONS(1853), 1, - anon_sym_LPAREN, - ACTIONS(1861), 1, - anon_sym_DASH, - ACTIONS(1865), 1, - anon_sym_LBRACK, - ACTIONS(1867), 1, - anon_sym_LBRACE, - ACTIONS(1869), 1, - sym_integer, - ACTIONS(1871), 1, - sym_float, - ACTIONS(1901), 1, - sym_match_wildcard_pattern, - STATE(1039), 1, - sym_string, - STATE(1040), 1, - sym_template_string, - STATE(1680), 1, - sym_pattern_class_name, - STATE(1140), 2, - sym_concatenated_string, - sym_concatenated_template_string, - ACTIONS(1873), 3, - sym_true, - sym_false, - sym_none, - STATE(1091), 8, - sym__closed_pattern, - sym_match_literal_pattern, - sym_match_capture_pattern, - sym_match_value_pattern, - sym_match_group_pattern, - sym_match_sequence_pattern, - sym_match_mapping_pattern, - sym_match_class_pattern, - [58035] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1908), 1, anon_sym_EQ, - ACTIONS(1910), 1, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1660), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [56515] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1702), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1700), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [56557] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1702), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1700), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [56599] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1658), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1656), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [56641] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1710), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1708), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [56683] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1702), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1700), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [56725] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1666), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1664), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [56767] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1654), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1652), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [56809] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1670), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1668), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [56851] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1209), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1204), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_RBRACE, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_COLON2, + sym_type_conversion, + [56893] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1209), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1204), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [56935] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1634), 5, + anon_sym_STAR, + anon_sym_EQ, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1632), 29, + sym__newline, + anon_sym_DOT, + anon_sym_from, + anon_sym_LPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + anon_sym_SEMI, + [56977] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1670), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1668), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [57018] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1618), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1616), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [57059] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1622), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1620), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [57100] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1626), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1624), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [57141] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1630), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1628), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [57182] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1634), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1632), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [57223] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1638), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1636), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [57264] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1050), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1048), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [57305] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1646), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1644), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [57346] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1650), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1648), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [57387] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1654), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1652), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [57428] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1658), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1656), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [57469] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1662), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1660), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [57510] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1710), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1708), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [57551] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1666), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1664), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [57592] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1674), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1672), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [57633] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1678), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1676), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [57674] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1032), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1030), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [57715] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1682), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1680), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [57756] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1686), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1684), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [57797] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1690), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1688), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [57838] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1690), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1688), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [57879] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1694), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1692), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [57920] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1698), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1696), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [57961] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1690), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1688), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [58002] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1702), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1700), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [58043] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1702), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1700), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [58084] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1706), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1704), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [58125] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1702), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1700), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [58166] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(1874), 1, + sym_identifier, + ACTIONS(1876), 1, + anon_sym_LPAREN, + ACTIONS(1878), 1, + anon_sym_STAR, + ACTIONS(1884), 1, + anon_sym_DASH, + ACTIONS(1886), 1, + sym_match_wildcard_pattern, + ACTIONS(1888), 1, + anon_sym_LBRACK, + ACTIONS(1890), 1, + anon_sym_LBRACE, + ACTIONS(1892), 1, + sym_integer, + ACTIONS(1894), 1, + sym_float, + STATE(1043), 1, + sym_template_string, + STATE(1068), 1, + sym_string, + STATE(1650), 1, + sym_pattern_class_name, + STATE(1116), 2, + sym_concatenated_string, + sym_concatenated_template_string, + STATE(1240), 2, + sym__match_or_pattern, + sym_match_or_pattern, + ACTIONS(1896), 3, + sym_true, + sym_false, + sym_none, + STATE(1307), 4, + sym__match_pattern, + sym_match_as_pattern, + sym__match_maybe_star_pattern, + sym_match_star_pattern, + STATE(1117), 8, + sym__closed_pattern, + sym_match_literal_pattern, + sym_match_capture_pattern, + sym_match_value_pattern, + sym_match_group_pattern, + sym_match_sequence_pattern, + sym_match_mapping_pattern, + sym_match_class_pattern, + [58241] = 22, + ACTIONS(3), 1, + sym_comment, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(1876), 1, + anon_sym_LPAREN, + ACTIONS(1884), 1, + anon_sym_DASH, + ACTIONS(1886), 1, + sym_match_wildcard_pattern, + ACTIONS(1888), 1, + anon_sym_LBRACK, + ACTIONS(1890), 1, + anon_sym_LBRACE, + ACTIONS(1892), 1, + sym_integer, + ACTIONS(1894), 1, + sym_float, + ACTIONS(1912), 1, + sym_identifier, + ACTIONS(1914), 1, + anon_sym_RPAREN, + STATE(1043), 1, + sym_template_string, + STATE(1068), 1, + sym_string, + STATE(1424), 1, + sym_match_keyword_pattern, + STATE(1558), 1, + sym_match_positional_pattern, + STATE(1650), 1, + sym_pattern_class_name, + STATE(1116), 2, + sym_concatenated_string, + sym_concatenated_template_string, + STATE(1240), 2, + sym__match_or_pattern, + sym_match_or_pattern, + STATE(1611), 2, + sym__match_pattern, + sym_match_as_pattern, + ACTIONS(1896), 3, + sym_true, + sym_false, + sym_none, + STATE(1117), 8, + sym__closed_pattern, + sym_match_literal_pattern, + sym_match_capture_pattern, + sym_match_value_pattern, + sym_match_group_pattern, + sym_match_sequence_pattern, + sym_match_mapping_pattern, + sym_match_class_pattern, + [58320] = 22, + ACTIONS(3), 1, + sym_comment, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(1876), 1, + anon_sym_LPAREN, + ACTIONS(1884), 1, + anon_sym_DASH, + ACTIONS(1886), 1, + sym_match_wildcard_pattern, + ACTIONS(1888), 1, + anon_sym_LBRACK, + ACTIONS(1890), 1, + anon_sym_LBRACE, + ACTIONS(1892), 1, + sym_integer, + ACTIONS(1894), 1, + sym_float, + ACTIONS(1912), 1, + sym_identifier, ACTIONS(1916), 1, - anon_sym_is, - STATE(989), 1, - aux_sym_comparison_operator_repeat1, - ACTIONS(1913), 2, + anon_sym_RPAREN, + STATE(1043), 1, + sym_template_string, + STATE(1068), 1, + sym_string, + STATE(1421), 1, + sym_match_keyword_pattern, + STATE(1558), 1, + sym_match_positional_pattern, + STATE(1650), 1, + sym_pattern_class_name, + STATE(1116), 2, + sym_concatenated_string, + sym_concatenated_template_string, + STATE(1240), 2, + sym__match_or_pattern, + sym_match_or_pattern, + STATE(1611), 2, + sym__match_pattern, + sym_match_as_pattern, + ACTIONS(1896), 3, + sym_true, + sym_false, + sym_none, + STATE(1117), 8, + sym__closed_pattern, + sym_match_literal_pattern, + sym_match_capture_pattern, + sym_match_value_pattern, + sym_match_group_pattern, + sym_match_sequence_pattern, + sym_match_mapping_pattern, + sym_match_class_pattern, + [58399] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1488), 1, + anon_sym_COLON_EQ, + ACTIONS(1898), 1, + anon_sym_EQ, + ACTIONS(1209), 4, + anon_sym_STAR, + anon_sym_SLASH, anon_sym_LT, anon_sym_GT, - ACTIONS(1905), 6, + ACTIONS(1204), 27, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_GT_EQ, anon_sym_LT_GT, - ACTIONS(1903), 9, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_and, - anon_sym_or, - [58074] = 8, + anon_sym_is, + [58444] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1908), 1, + ACTIONS(1209), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1204), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [58485] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(590), 1, + anon_sym_COLON_EQ, + ACTIONS(634), 1, + anon_sym_EQ, + ACTIONS(272), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(303), 27, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [58530] = 22, + ACTIONS(3), 1, + sym_comment, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(1876), 1, + anon_sym_LPAREN, + ACTIONS(1884), 1, + anon_sym_DASH, + ACTIONS(1886), 1, + sym_match_wildcard_pattern, + ACTIONS(1888), 1, + anon_sym_LBRACK, + ACTIONS(1890), 1, + anon_sym_LBRACE, + ACTIONS(1892), 1, + sym_integer, + ACTIONS(1894), 1, + sym_float, + ACTIONS(1912), 1, + sym_identifier, + ACTIONS(1918), 1, + anon_sym_RPAREN, + STATE(1043), 1, + sym_template_string, + STATE(1068), 1, + sym_string, + STATE(1488), 1, + sym_match_positional_pattern, + STATE(1493), 1, + sym_match_keyword_pattern, + STATE(1650), 1, + sym_pattern_class_name, + STATE(1116), 2, + sym_concatenated_string, + sym_concatenated_template_string, + STATE(1240), 2, + sym__match_or_pattern, + sym_match_or_pattern, + STATE(1611), 2, + sym__match_pattern, + sym_match_as_pattern, + ACTIONS(1896), 3, + sym_true, + sym_false, + sym_none, + STATE(1117), 8, + sym__closed_pattern, + sym_match_literal_pattern, + sym_match_capture_pattern, + sym_match_value_pattern, + sym_match_group_pattern, + sym_match_sequence_pattern, + sym_match_mapping_pattern, + sym_match_class_pattern, + [58609] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(272), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(303), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [58650] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1614), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1612), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [58691] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1642), 4, + anon_sym_STAR, + anon_sym_SLASH, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1640), 29, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_GT_GT, + anon_sym_if, + anon_sym_COLON, + anon_sym_in, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_not, + anon_sym_and, + anon_sym_or, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + anon_sym_is, + [58732] = 20, + ACTIONS(3), 1, + sym_comment, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(1874), 1, + sym_identifier, + ACTIONS(1876), 1, + anon_sym_LPAREN, + ACTIONS(1884), 1, + anon_sym_DASH, + ACTIONS(1886), 1, + sym_match_wildcard_pattern, + ACTIONS(1888), 1, + anon_sym_LBRACK, + ACTIONS(1890), 1, + anon_sym_LBRACE, + ACTIONS(1892), 1, + sym_integer, + ACTIONS(1894), 1, + sym_float, + STATE(1043), 1, + sym_template_string, + STATE(1068), 1, + sym_string, + STATE(1558), 1, + sym_match_positional_pattern, + STATE(1650), 1, + sym_pattern_class_name, + STATE(1116), 2, + sym_concatenated_string, + sym_concatenated_template_string, + STATE(1240), 2, + sym__match_or_pattern, + sym_match_or_pattern, + STATE(1611), 2, + sym__match_pattern, + sym_match_as_pattern, + ACTIONS(1896), 3, + sym_true, + sym_false, + sym_none, + STATE(1117), 8, + sym__closed_pattern, + sym_match_literal_pattern, + sym_match_capture_pattern, + sym_match_value_pattern, + sym_match_group_pattern, + sym_match_sequence_pattern, + sym_match_mapping_pattern, + sym_match_class_pattern, + [58805] = 19, + ACTIONS(3), 1, + sym_comment, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(1874), 1, + sym_identifier, + ACTIONS(1876), 1, + anon_sym_LPAREN, + ACTIONS(1884), 1, + anon_sym_DASH, + ACTIONS(1886), 1, + sym_match_wildcard_pattern, + ACTIONS(1888), 1, + anon_sym_LBRACK, + ACTIONS(1890), 1, + anon_sym_LBRACE, + ACTIONS(1892), 1, + sym_integer, + ACTIONS(1894), 1, + sym_float, + STATE(1043), 1, + sym_template_string, + STATE(1068), 1, + sym_string, + STATE(1650), 1, + sym_pattern_class_name, + STATE(1116), 2, + sym_concatenated_string, + sym_concatenated_template_string, + STATE(1240), 2, + sym__match_or_pattern, + sym_match_or_pattern, + STATE(1534), 2, + sym__match_pattern, + sym_match_as_pattern, + ACTIONS(1896), 3, + sym_true, + sym_false, + sym_none, + STATE(1117), 8, + sym__closed_pattern, + sym_match_literal_pattern, + sym_match_capture_pattern, + sym_match_value_pattern, + sym_match_group_pattern, + sym_match_sequence_pattern, + sym_match_mapping_pattern, + sym_match_class_pattern, + [58875] = 19, + ACTIONS(3), 1, + sym_comment, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(1874), 1, + sym_identifier, + ACTIONS(1876), 1, + anon_sym_LPAREN, + ACTIONS(1884), 1, + anon_sym_DASH, + ACTIONS(1886), 1, + sym_match_wildcard_pattern, + ACTIONS(1888), 1, + anon_sym_LBRACK, + ACTIONS(1890), 1, + anon_sym_LBRACE, + ACTIONS(1892), 1, + sym_integer, + ACTIONS(1894), 1, + sym_float, + STATE(1043), 1, + sym_template_string, + STATE(1068), 1, + sym_string, + STATE(1650), 1, + sym_pattern_class_name, + STATE(1116), 2, + sym_concatenated_string, + sym_concatenated_template_string, + STATE(1240), 2, + sym__match_or_pattern, + sym_match_or_pattern, + STATE(1549), 2, + sym__match_pattern, + sym_match_as_pattern, + ACTIONS(1896), 3, + sym_true, + sym_false, + sym_none, + STATE(1117), 8, + sym__closed_pattern, + sym_match_literal_pattern, + sym_match_capture_pattern, + sym_match_value_pattern, + sym_match_group_pattern, + sym_match_sequence_pattern, + sym_match_mapping_pattern, + sym_match_class_pattern, + [58945] = 17, + ACTIONS(3), 1, + sym_comment, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(1874), 1, + sym_identifier, + ACTIONS(1876), 1, + anon_sym_LPAREN, + ACTIONS(1884), 1, + anon_sym_DASH, + ACTIONS(1888), 1, + anon_sym_LBRACK, + ACTIONS(1890), 1, + anon_sym_LBRACE, + ACTIONS(1892), 1, + sym_integer, + ACTIONS(1894), 1, + sym_float, + ACTIONS(1920), 1, + sym_match_wildcard_pattern, + STATE(1043), 1, + sym_template_string, + STATE(1068), 1, + sym_string, + STATE(1650), 1, + sym_pattern_class_name, + STATE(1116), 2, + sym_concatenated_string, + sym_concatenated_template_string, + ACTIONS(1896), 3, + sym_true, + sym_false, + sym_none, + STATE(1136), 8, + sym__closed_pattern, + sym_match_literal_pattern, + sym_match_capture_pattern, + sym_match_value_pattern, + sym_match_group_pattern, + sym_match_sequence_pattern, + sym_match_mapping_pattern, + sym_match_class_pattern, + [59007] = 17, + ACTIONS(3), 1, + sym_comment, + ACTIONS(664), 1, + sym__string_start, + ACTIONS(666), 1, + sym__template_string_start, + ACTIONS(1874), 1, + sym_identifier, + ACTIONS(1876), 1, + anon_sym_LPAREN, + ACTIONS(1884), 1, + anon_sym_DASH, + ACTIONS(1888), 1, + anon_sym_LBRACK, + ACTIONS(1890), 1, + anon_sym_LBRACE, + ACTIONS(1892), 1, + sym_integer, + ACTIONS(1894), 1, + sym_float, ACTIONS(1922), 1, + sym_match_wildcard_pattern, + STATE(1043), 1, + sym_template_string, + STATE(1068), 1, + sym_string, + STATE(1650), 1, + sym_pattern_class_name, + STATE(1116), 2, + sym_concatenated_string, + sym_concatenated_template_string, + ACTIONS(1896), 3, + sym_true, + sym_false, + sym_none, + STATE(1101), 8, + sym__closed_pattern, + sym_match_literal_pattern, + sym_match_capture_pattern, + sym_match_value_pattern, + sym_match_group_pattern, + sym_match_sequence_pattern, + sym_match_mapping_pattern, + sym_match_class_pattern, + [59069] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1926), 1, + anon_sym_as, + ACTIONS(1931), 1, anon_sym_not, - ACTIONS(1928), 1, + ACTIONS(1937), 1, anon_sym_is, - STATE(990), 1, + STATE(996), 1, aux_sym_comparison_operator_repeat1, - ACTIONS(1925), 2, + ACTIONS(1934), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(1919), 6, + ACTIONS(1928), 6, anon_sym_in, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_GT_EQ, anon_sym_LT_GT, - ACTIONS(1903), 9, + ACTIONS(1924), 9, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_if, @@ -72562,28 +73782,28 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_and, anon_sym_or, - [58113] = 8, + [59108] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(1617), 1, + ACTIONS(1578), 1, anon_sym_not, - ACTIONS(1625), 1, + ACTIONS(1586), 1, anon_sym_is, - ACTIONS(1933), 1, + ACTIONS(1942), 1, anon_sym_EQ, - STATE(989), 1, + STATE(999), 1, aux_sym_comparison_operator_repeat1, - ACTIONS(1623), 2, + ACTIONS(1584), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(1603), 6, + ACTIONS(1564), 6, anon_sym_in, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_GT_EQ, anon_sym_LT_GT, - ACTIONS(1931), 9, + ACTIONS(1940), 9, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_if, @@ -72593,200 +73813,77 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACE, anon_sym_and, anon_sym_or, - [58152] = 8, + [59147] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(1653), 1, + ACTIONS(1602), 1, anon_sym_not, - ACTIONS(1661), 1, + ACTIONS(1610), 1, anon_sym_is, - ACTIONS(1933), 1, - anon_sym_as, - STATE(990), 1, - aux_sym_comparison_operator_repeat1, - ACTIONS(1659), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1643), 6, - anon_sym_in, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - ACTIONS(1931), 9, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_and, - anon_sym_or, - [58191] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1937), 1, - anon_sym_COMMA, - STATE(993), 1, - aux_sym__patterns_repeat1, - ACTIONS(1935), 18, - anon_sym_RPAREN, - anon_sym_COLON, - anon_sym_in, - anon_sym_RBRACK, - anon_sym_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - [58221] = 16, - ACTIONS(3), 1, - sym_comment, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(1861), 1, - anon_sym_DASH, - ACTIONS(1869), 1, - sym_integer, - ACTIONS(1871), 1, - sym_float, - ACTIONS(1940), 1, - sym_identifier, ACTIONS(1942), 1, - anon_sym_RBRACE, - ACTIONS(1944), 1, - anon_sym_STAR_STAR, - STATE(1317), 1, - sym_string, - STATE(1318), 1, - sym_template_string, - STATE(1477), 1, - sym_match_key_value_pattern, - STATE(1564), 1, - sym_match_double_star_pattern, - STATE(1140), 2, - sym_concatenated_string, - sym_concatenated_template_string, - STATE(1722), 2, - sym_match_literal_pattern, - sym_match_value_pattern, - ACTIONS(1873), 3, - sym_true, - sym_false, - sym_none, - [58274] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1908), 1, - anon_sym_EQ, - ACTIONS(1949), 1, - anon_sym_not, - ACTIONS(1955), 1, - anon_sym_is, - STATE(995), 1, + anon_sym_as, + STATE(996), 1, aux_sym_comparison_operator_repeat1, - ACTIONS(1952), 2, + ACTIONS(1608), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(1946), 6, + ACTIONS(1592), 6, anon_sym_in, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_GT_EQ, anon_sym_LT_GT, - ACTIONS(1903), 7, + ACTIONS(1940), 9, + anon_sym_RPAREN, anon_sym_COMMA, anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACK, anon_sym_RBRACE, anon_sym_and, anon_sym_or, - anon_sym_COLON2, - sym_type_conversion, - [58311] = 16, + [59186] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1926), 1, + anon_sym_EQ, + ACTIONS(1947), 1, + anon_sym_not, + ACTIONS(1953), 1, + anon_sym_is, + STATE(999), 1, + aux_sym_comparison_operator_repeat1, + ACTIONS(1950), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1944), 6, + anon_sym_in, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + ACTIONS(1924), 9, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_and, + anon_sym_or, + [59225] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(1861), 1, - anon_sym_DASH, - ACTIONS(1869), 1, - sym_integer, - ACTIONS(1871), 1, - sym_float, - ACTIONS(1940), 1, - sym_identifier, - ACTIONS(1944), 1, - anon_sym_STAR_STAR, ACTIONS(1958), 1, - anon_sym_RBRACE, - STATE(1317), 1, - sym_string, - STATE(1318), 1, - sym_template_string, - STATE(1569), 1, - sym_match_double_star_pattern, - STATE(1573), 1, - sym_match_key_value_pattern, - STATE(1140), 2, - sym_concatenated_string, - sym_concatenated_template_string, - STATE(1722), 2, - sym_match_literal_pattern, - sym_match_value_pattern, - ACTIONS(1873), 3, - sym_true, - sym_false, - sym_none, - [58364] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1771), 1, - anon_sym_not, - ACTIONS(1779), 1, - anon_sym_is, - STATE(1007), 1, - aux_sym_comparison_operator_repeat1, - ACTIONS(1777), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1761), 6, - anon_sym_in, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - ACTIONS(1931), 8, anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACE, - anon_sym_and, - anon_sym_or, - [58399] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1960), 19, + STATE(1000), 1, + aux_sym__patterns_repeat1, + ACTIONS(1956), 18, anon_sym_RPAREN, - anon_sym_COMMA, anon_sym_COLON, anon_sym_in, anon_sym_RBRACK, @@ -72804,101 +73901,28 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_EQ, anon_sym_CARET_EQ, anon_sym_PIPE_EQ, - [58424] = 2, + [59255] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(1184), 19, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_in, - anon_sym_RBRACK, + ACTIONS(1926), 1, anon_sym_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - [58449] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1178), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(1962), 3, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - ACTIONS(1173), 14, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_GT_GT, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - [58478] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(265), 2, - anon_sym_STAR, - anon_sym_SLASH, - ACTIONS(911), 3, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - ACTIONS(298), 14, - anon_sym_DOT, - anon_sym_LPAREN, - anon_sym_GT_GT, - anon_sym_PIPE, - anon_sym_DASH, - anon_sym_PLUS, - anon_sym_LBRACK, - anon_sym_STAR_STAR, - anon_sym_AT, - anon_sym_PERCENT, - anon_sym_SLASH_SLASH, - anon_sym_AMP, - anon_sym_CARET, - anon_sym_LT_LT, - [58507] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1807), 1, + ACTIONS(1964), 1, anon_sym_not, - ACTIONS(1815), 1, + ACTIONS(1970), 1, anon_sym_is, - ACTIONS(1933), 1, - anon_sym_EQ, - STATE(1003), 1, + STATE(1001), 1, aux_sym_comparison_operator_repeat1, - ACTIONS(1813), 2, + ACTIONS(1967), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(1795), 6, + ACTIONS(1961), 6, anon_sym_in, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_GT_EQ, anon_sym_LT_GT, - ACTIONS(1931), 7, + ACTIONS(1924), 7, sym__newline, anon_sym_from, anon_sym_COMMA, @@ -72906,103 +73930,51 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_and, anon_sym_or, anon_sym_SEMI, - [58544] = 8, + [59292] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1908), 1, + ACTIONS(1973), 19, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_in, + anon_sym_RBRACK, anon_sym_EQ, - ACTIONS(1967), 1, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [59317] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1926), 1, + anon_sym_EQ, + ACTIONS(1978), 1, anon_sym_not, - ACTIONS(1973), 1, + ACTIONS(1984), 1, anon_sym_is, STATE(1003), 1, aux_sym_comparison_operator_repeat1, - ACTIONS(1970), 2, + ACTIONS(1981), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(1964), 6, + ACTIONS(1975), 6, anon_sym_in, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_GT_EQ, anon_sym_LT_GT, - ACTIONS(1903), 7, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_if, - anon_sym_and, - anon_sym_or, - anon_sym_SEMI, - [58581] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1976), 19, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_in, - anon_sym_RBRACK, - anon_sym_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - [58606] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1978), 19, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_in, - anon_sym_RBRACK, - anon_sym_EQ, - anon_sym_PLUS_EQ, - anon_sym_DASH_EQ, - anon_sym_STAR_EQ, - anon_sym_SLASH_EQ, - anon_sym_AT_EQ, - anon_sym_SLASH_SLASH_EQ, - anon_sym_PERCENT_EQ, - anon_sym_STAR_STAR_EQ, - anon_sym_GT_GT_EQ, - anon_sym_LT_LT_EQ, - anon_sym_AMP_EQ, - anon_sym_CARET_EQ, - anon_sym_PIPE_EQ, - [58631] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1744), 1, - anon_sym_not, - ACTIONS(1752), 1, - anon_sym_is, - ACTIONS(1933), 1, - anon_sym_EQ, - STATE(995), 1, - aux_sym_comparison_operator_repeat1, - ACTIONS(1750), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1732), 6, - anon_sym_in, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - ACTIONS(1931), 7, + ACTIONS(1924), 7, anon_sym_COMMA, anon_sym_if, anon_sym_RBRACE, @@ -73010,108 +73982,44 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_or, anon_sym_COLON2, sym_type_conversion, - [58668] = 7, + [59354] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(1983), 1, + ACTIONS(1828), 1, anon_sym_not, - ACTIONS(1989), 1, + ACTIONS(1836), 1, anon_sym_is, - STATE(1007), 1, + ACTIONS(1942), 1, + anon_sym_EQ, + STATE(1003), 1, aux_sym_comparison_operator_repeat1, - ACTIONS(1986), 2, + ACTIONS(1834), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(1980), 6, + ACTIONS(1816), 6, anon_sym_in, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_GT_EQ, anon_sym_LT_GT, - ACTIONS(1903), 8, + ACTIONS(1940), 7, anon_sym_COMMA, anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, anon_sym_RBRACE, anon_sym_and, anon_sym_or, - [58703] = 16, + anon_sym_COLON2, + sym_type_conversion, + [59391] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(1861), 1, - anon_sym_DASH, - ACTIONS(1869), 1, - sym_integer, - ACTIONS(1871), 1, - sym_float, - ACTIONS(1940), 1, - sym_identifier, - ACTIONS(1944), 1, - anon_sym_STAR_STAR, - ACTIONS(1992), 1, - anon_sym_RBRACE, - STATE(1317), 1, - sym_string, - STATE(1318), 1, - sym_template_string, - STATE(1544), 1, - sym_match_double_star_pattern, - STATE(1573), 1, - sym_match_key_value_pattern, - STATE(1140), 2, - sym_concatenated_string, - sym_concatenated_template_string, - STATE(1722), 2, - sym_match_literal_pattern, - sym_match_value_pattern, - ACTIONS(1873), 3, - sym_true, - sym_false, - sym_none, - [58756] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1839), 1, - anon_sym_not, - ACTIONS(1847), 1, - anon_sym_is, - STATE(1011), 1, - aux_sym_comparison_operator_repeat1, - ACTIONS(1845), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(1827), 6, - anon_sym_in, - anon_sym_LT_EQ, - anon_sym_EQ_EQ, - anon_sym_BANG_EQ, - anon_sym_GT_EQ, - anon_sym_LT_GT, - ACTIONS(1931), 7, + ACTIONS(1272), 19, anon_sym_RPAREN, anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_and, - anon_sym_or, - [58790] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1994), 1, - anon_sym_COMMA, - STATE(993), 1, - aux_sym__patterns_repeat1, - ACTIONS(1996), 16, anon_sym_COLON, anon_sym_in, + anon_sym_RBRACK, anon_sym_EQ, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, @@ -73126,26 +74034,318 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_EQ, anon_sym_CARET_EQ, anon_sym_PIPE_EQ, - [58818] = 7, + [59416] = 16, ACTIONS(3), 1, sym_comment, - ACTIONS(2001), 1, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(1884), 1, + anon_sym_DASH, + ACTIONS(1892), 1, + sym_integer, + ACTIONS(1894), 1, + sym_float, + ACTIONS(1987), 1, + sym_identifier, + ACTIONS(1989), 1, + anon_sym_RBRACE, + ACTIONS(1991), 1, + anon_sym_STAR_STAR, + STATE(1369), 1, + sym_string, + STATE(1373), 1, + sym_template_string, + STATE(1557), 1, + sym_match_key_value_pattern, + STATE(1568), 1, + sym_match_double_star_pattern, + STATE(1116), 2, + sym_concatenated_string, + sym_concatenated_template_string, + STATE(1652), 2, + sym_match_literal_pattern, + sym_match_value_pattern, + ACTIONS(1896), 3, + sym_true, + sym_false, + sym_none, + [59469] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(1884), 1, + anon_sym_DASH, + ACTIONS(1892), 1, + sym_integer, + ACTIONS(1894), 1, + sym_float, + ACTIONS(1987), 1, + sym_identifier, + ACTIONS(1991), 1, + anon_sym_STAR_STAR, + ACTIONS(1993), 1, + anon_sym_RBRACE, + STATE(1369), 1, + sym_string, + STATE(1373), 1, + sym_template_string, + STATE(1498), 1, + sym_match_key_value_pattern, + STATE(1553), 1, + sym_match_double_star_pattern, + STATE(1116), 2, + sym_concatenated_string, + sym_concatenated_template_string, + STATE(1652), 2, + sym_match_literal_pattern, + sym_match_value_pattern, + ACTIONS(1896), 3, + sym_true, + sym_false, + sym_none, + [59522] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1768), 1, anon_sym_not, - ACTIONS(2007), 1, + ACTIONS(1776), 1, anon_sym_is, - STATE(1011), 1, + ACTIONS(1942), 1, + anon_sym_EQ, + STATE(1001), 1, aux_sym_comparison_operator_repeat1, - ACTIONS(2004), 2, + ACTIONS(1774), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(1998), 6, + ACTIONS(1756), 6, anon_sym_in, anon_sym_LT_EQ, anon_sym_EQ_EQ, anon_sym_BANG_EQ, anon_sym_GT_EQ, anon_sym_LT_GT, - ACTIONS(1903), 7, + ACTIONS(1940), 7, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_if, + anon_sym_and, + anon_sym_or, + anon_sym_SEMI, + [59559] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1995), 19, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_in, + anon_sym_RBRACK, + anon_sym_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [59584] = 16, + ACTIONS(3), 1, + sym_comment, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(1884), 1, + anon_sym_DASH, + ACTIONS(1892), 1, + sym_integer, + ACTIONS(1894), 1, + sym_float, + ACTIONS(1987), 1, + sym_identifier, + ACTIONS(1991), 1, + anon_sym_STAR_STAR, + ACTIONS(1997), 1, + anon_sym_RBRACE, + STATE(1369), 1, + sym_string, + STATE(1373), 1, + sym_template_string, + STATE(1555), 1, + sym_match_double_star_pattern, + STATE(1557), 1, + sym_match_key_value_pattern, + STATE(1116), 2, + sym_concatenated_string, + sym_concatenated_template_string, + STATE(1652), 2, + sym_match_literal_pattern, + sym_match_value_pattern, + ACTIONS(1896), 3, + sym_true, + sym_false, + sym_none, + [59637] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(272), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(928), 3, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + ACTIONS(303), 14, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + [59666] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1999), 19, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_in, + anon_sym_RBRACK, + anon_sym_EQ, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [59691] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1209), 2, + anon_sym_STAR, + anon_sym_SLASH, + ACTIONS(2001), 3, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + ACTIONS(1204), 14, + anon_sym_DOT, + anon_sym_LPAREN, + anon_sym_GT_GT, + anon_sym_PIPE, + anon_sym_DASH, + anon_sym_PLUS, + anon_sym_LBRACK, + anon_sym_STAR_STAR, + anon_sym_AT, + anon_sym_PERCENT, + anon_sym_SLASH_SLASH, + anon_sym_AMP, + anon_sym_CARET, + anon_sym_LT_LT, + [59720] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1792), 1, + anon_sym_not, + ACTIONS(1800), 1, + anon_sym_is, + STATE(1015), 1, + aux_sym_comparison_operator_repeat1, + ACTIONS(1798), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1782), 6, + anon_sym_in, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + ACTIONS(1940), 8, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACE, + anon_sym_and, + anon_sym_or, + [59755] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2006), 1, + anon_sym_not, + ACTIONS(2012), 1, + anon_sym_is, + STATE(1015), 1, + aux_sym_comparison_operator_repeat1, + ACTIONS(2009), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(2003), 6, + anon_sym_in, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + ACTIONS(1924), 8, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACE, + anon_sym_and, + anon_sym_or, + [59790] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1860), 1, + anon_sym_not, + ACTIONS(1868), 1, + anon_sym_is, + STATE(1019), 1, + aux_sym_comparison_operator_repeat1, + ACTIONS(1866), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(1848), 6, + anon_sym_in, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + ACTIONS(1940), 7, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, @@ -73153,51 +74353,50 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COLON, anon_sym_and, anon_sym_or, - [58852] = 13, + [59824] = 13, ACTIONS(3), 1, sym_comment, - ACTIONS(1593), 1, + ACTIONS(1554), 1, anon_sym_DOT, - ACTIONS(1595), 1, + ACTIONS(1556), 1, anon_sym_LPAREN, - ACTIONS(1605), 1, + ACTIONS(1566), 1, anon_sym_PIPE, - ACTIONS(1609), 1, + ACTIONS(1570), 1, anon_sym_LBRACK, - ACTIONS(1611), 1, + ACTIONS(1572), 1, anon_sym_STAR_STAR, - ACTIONS(1619), 1, + ACTIONS(1580), 1, anon_sym_AMP, - ACTIONS(1621), 1, + ACTIONS(1582), 1, anon_sym_CARET, - ACTIONS(1599), 2, + ACTIONS(1560), 2, anon_sym_STAR, anon_sym_SLASH, - ACTIONS(1601), 2, + ACTIONS(1562), 2, anon_sym_GT_GT, anon_sym_LT_LT, - ACTIONS(1607), 2, + ACTIONS(1568), 2, anon_sym_DASH, anon_sym_PLUS, - STATE(733), 2, + STATE(708), 2, sym_argument_list, sym_generator_expression, - ACTIONS(1615), 3, + ACTIONS(1576), 3, anon_sym_AT, anon_sym_PERCENT, anon_sym_SLASH_SLASH, - [58898] = 6, + [59870] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2010), 1, + ACTIONS(2015), 1, anon_sym_COMMA, - ACTIONS(2012), 1, - anon_sym_COLON, - ACTIONS(2014), 1, - anon_sym_EQ, - STATE(1010), 1, + STATE(1000), 1, aux_sym__patterns_repeat1, - ACTIONS(2016), 13, + ACTIONS(2017), 16, + anon_sym_COLON, + anon_sym_in, + anon_sym_EQ, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, anon_sym_STAR_EQ, @@ -73211,318 +74410,343 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_EQ, anon_sym_CARET_EQ, anon_sym_PIPE_EQ, - [58929] = 12, + [59898] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(2018), 1, - sym_identifier, - ACTIONS(2020), 1, - anon_sym_LPAREN, ACTIONS(2022), 1, - anon_sym_STAR, - ACTIONS(2024), 1, - anon_sym_COLON, - ACTIONS(2026), 1, - anon_sym_STAR_STAR, + anon_sym_not, ACTIONS(2028), 1, + anon_sym_is, + STATE(1019), 1, + aux_sym_comparison_operator_repeat1, + ACTIONS(2025), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(2019), 6, + anon_sym_in, + anon_sym_LT_EQ, + anon_sym_EQ_EQ, + anon_sym_BANG_EQ, + anon_sym_GT_EQ, + anon_sym_LT_GT, + ACTIONS(1924), 7, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_and, + anon_sym_or, + [59932] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2031), 1, + anon_sym_COMMA, + ACTIONS(2033), 1, + anon_sym_COLON, + ACTIONS(2035), 1, + anon_sym_EQ, + STATE(1018), 1, + aux_sym__patterns_repeat1, + ACTIONS(2037), 13, + anon_sym_PLUS_EQ, + anon_sym_DASH_EQ, + anon_sym_STAR_EQ, + anon_sym_SLASH_EQ, + anon_sym_AT_EQ, + anon_sym_SLASH_SLASH_EQ, + anon_sym_PERCENT_EQ, + anon_sym_STAR_STAR_EQ, + anon_sym_GT_GT_EQ, + anon_sym_LT_LT_EQ, + anon_sym_AMP_EQ, + anon_sym_CARET_EQ, + anon_sym_PIPE_EQ, + [59963] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2039), 1, + sym_identifier, + ACTIONS(2041), 1, + anon_sym_LPAREN, + ACTIONS(2043), 1, + anon_sym_STAR, + ACTIONS(2045), 1, + anon_sym_COLON, + ACTIONS(2047), 1, + anon_sym_STAR_STAR, + ACTIONS(2049), 1, anon_sym_SLASH, - STATE(1385), 1, + STATE(1406), 1, sym_parameter, - STATE(1593), 1, - sym_lambda_parameters, - STATE(1598), 1, + STATE(1689), 1, sym__parameters, - STATE(1520), 2, + STATE(1691), 1, + sym_lambda_parameters, + STATE(1606), 2, sym_list_splat_pattern, sym_dictionary_splat_pattern, - STATE(1394), 6, + STATE(1410), 6, sym_tuple_pattern, sym_default_parameter, sym_typed_default_parameter, sym_typed_parameter, sym_positional_separator, sym_keyword_separator, - [58972] = 12, + [60006] = 12, ACTIONS(3), 1, sym_comment, - ACTIONS(2018), 1, + ACTIONS(2039), 1, sym_identifier, - ACTIONS(2020), 1, + ACTIONS(2041), 1, anon_sym_LPAREN, - ACTIONS(2022), 1, + ACTIONS(2043), 1, anon_sym_STAR, - ACTIONS(2026), 1, + ACTIONS(2047), 1, anon_sym_STAR_STAR, - ACTIONS(2028), 1, + ACTIONS(2049), 1, anon_sym_SLASH, - ACTIONS(2030), 1, + ACTIONS(2051), 1, anon_sym_COLON, - STATE(1385), 1, + STATE(1406), 1, sym_parameter, - STATE(1598), 1, + STATE(1689), 1, sym__parameters, - STATE(1690), 1, + STATE(1752), 1, sym_lambda_parameters, - STATE(1520), 2, + STATE(1606), 2, sym_list_splat_pattern, sym_dictionary_splat_pattern, - STATE(1394), 6, + STATE(1410), 6, sym_tuple_pattern, sym_default_parameter, sym_typed_default_parameter, sym_typed_parameter, sym_positional_separator, sym_keyword_separator, - [59015] = 12, + [60049] = 12, ACTIONS(3), 1, sym_comment, - ACTIONS(2018), 1, + ACTIONS(2039), 1, sym_identifier, - ACTIONS(2020), 1, + ACTIONS(2041), 1, anon_sym_LPAREN, - ACTIONS(2022), 1, + ACTIONS(2043), 1, anon_sym_STAR, - ACTIONS(2026), 1, + ACTIONS(2047), 1, anon_sym_STAR_STAR, - ACTIONS(2028), 1, + ACTIONS(2049), 1, anon_sym_SLASH, - ACTIONS(2032), 1, + ACTIONS(2053), 1, anon_sym_COLON, - STATE(1385), 1, + STATE(1406), 1, sym_parameter, - STATE(1598), 1, - sym__parameters, - STATE(1668), 1, + STATE(1639), 1, sym_lambda_parameters, - STATE(1520), 2, + STATE(1689), 1, + sym__parameters, + STATE(1606), 2, sym_list_splat_pattern, sym_dictionary_splat_pattern, - STATE(1394), 6, + STATE(1410), 6, sym_tuple_pattern, sym_default_parameter, sym_typed_default_parameter, sym_typed_parameter, sym_positional_separator, sym_keyword_separator, - [59058] = 12, + [60092] = 12, ACTIONS(3), 1, sym_comment, - ACTIONS(2018), 1, + ACTIONS(2039), 1, sym_identifier, - ACTIONS(2020), 1, + ACTIONS(2041), 1, anon_sym_LPAREN, - ACTIONS(2022), 1, + ACTIONS(2043), 1, anon_sym_STAR, - ACTIONS(2026), 1, + ACTIONS(2047), 1, anon_sym_STAR_STAR, - ACTIONS(2028), 1, + ACTIONS(2049), 1, anon_sym_SLASH, - ACTIONS(2034), 1, + ACTIONS(2055), 1, anon_sym_COLON, - STATE(1385), 1, + STATE(1406), 1, sym_parameter, - STATE(1598), 1, + STATE(1689), 1, sym__parameters, - STATE(1604), 1, + STATE(1729), 1, sym_lambda_parameters, - STATE(1520), 2, + STATE(1606), 2, sym_list_splat_pattern, sym_dictionary_splat_pattern, - STATE(1394), 6, + STATE(1410), 6, sym_tuple_pattern, sym_default_parameter, sym_typed_default_parameter, sym_typed_parameter, sym_positional_separator, sym_keyword_separator, - [59101] = 12, + [60135] = 12, ACTIONS(3), 1, sym_comment, - ACTIONS(2018), 1, + ACTIONS(2039), 1, sym_identifier, - ACTIONS(2020), 1, + ACTIONS(2041), 1, anon_sym_LPAREN, - ACTIONS(2022), 1, + ACTIONS(2043), 1, anon_sym_STAR, - ACTIONS(2026), 1, + ACTIONS(2047), 1, anon_sym_STAR_STAR, - ACTIONS(2028), 1, + ACTIONS(2049), 1, anon_sym_SLASH, - ACTIONS(2036), 1, + ACTIONS(2057), 1, anon_sym_COLON, - STATE(1385), 1, + STATE(1406), 1, sym_parameter, - STATE(1598), 1, - sym__parameters, - STATE(1673), 1, + STATE(1667), 1, sym_lambda_parameters, - STATE(1520), 2, + STATE(1689), 1, + sym__parameters, + STATE(1606), 2, sym_list_splat_pattern, sym_dictionary_splat_pattern, - STATE(1394), 6, + STATE(1410), 6, sym_tuple_pattern, sym_default_parameter, sym_typed_default_parameter, sym_typed_parameter, sym_positional_separator, sym_keyword_separator, - [59144] = 12, + [60178] = 12, ACTIONS(3), 1, sym_comment, - ACTIONS(2018), 1, + ACTIONS(2039), 1, sym_identifier, - ACTIONS(2020), 1, + ACTIONS(2041), 1, anon_sym_LPAREN, - ACTIONS(2022), 1, + ACTIONS(2043), 1, anon_sym_STAR, - ACTIONS(2026), 1, + ACTIONS(2047), 1, anon_sym_STAR_STAR, - ACTIONS(2028), 1, + ACTIONS(2049), 1, anon_sym_SLASH, - ACTIONS(2038), 1, + ACTIONS(2059), 1, anon_sym_COLON, - STATE(1385), 1, + STATE(1406), 1, sym_parameter, - STATE(1598), 1, + STATE(1689), 1, sym__parameters, + STATE(1697), 1, + sym_lambda_parameters, + STATE(1606), 2, + sym_list_splat_pattern, + sym_dictionary_splat_pattern, + STATE(1410), 6, + sym_tuple_pattern, + sym_default_parameter, + sym_typed_default_parameter, + sym_typed_parameter, + sym_positional_separator, + sym_keyword_separator, + [60221] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2039), 1, + sym_identifier, + ACTIONS(2041), 1, + anon_sym_LPAREN, + ACTIONS(2043), 1, + anon_sym_STAR, + ACTIONS(2047), 1, + anon_sym_STAR_STAR, + ACTIONS(2049), 1, + anon_sym_SLASH, + ACTIONS(2061), 1, + anon_sym_COLON, + STATE(1406), 1, + sym_parameter, + STATE(1689), 1, + sym__parameters, + STATE(1732), 1, + sym_lambda_parameters, + STATE(1606), 2, + sym_list_splat_pattern, + sym_dictionary_splat_pattern, + STATE(1410), 6, + sym_tuple_pattern, + sym_default_parameter, + sym_typed_default_parameter, + sym_typed_parameter, + sym_positional_separator, + sym_keyword_separator, + [60264] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2041), 1, + anon_sym_LPAREN, + ACTIONS(2043), 1, + anon_sym_STAR, + ACTIONS(2047), 1, + anon_sym_STAR_STAR, + ACTIONS(2049), 1, + anon_sym_SLASH, + ACTIONS(2063), 1, + sym_identifier, + ACTIONS(2065), 1, + anon_sym_RPAREN, + STATE(1445), 1, + sym_parameter, STATE(1682), 1, - sym_lambda_parameters, - STATE(1520), 2, - sym_list_splat_pattern, - sym_dictionary_splat_pattern, - STATE(1394), 6, - sym_tuple_pattern, - sym_default_parameter, - sym_typed_default_parameter, - sym_typed_parameter, - sym_positional_separator, - sym_keyword_separator, - [59187] = 12, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2018), 1, - sym_identifier, - ACTIONS(2020), 1, - anon_sym_LPAREN, - ACTIONS(2022), 1, - anon_sym_STAR, - ACTIONS(2026), 1, - anon_sym_STAR_STAR, - ACTIONS(2028), 1, - anon_sym_SLASH, - ACTIONS(2040), 1, - anon_sym_COLON, - STATE(1385), 1, - sym_parameter, - STATE(1598), 1, sym__parameters, - STATE(1711), 1, - sym_lambda_parameters, - STATE(1520), 2, + STATE(1507), 2, sym_list_splat_pattern, sym_dictionary_splat_pattern, - STATE(1394), 6, + STATE(1410), 6, sym_tuple_pattern, sym_default_parameter, sym_typed_default_parameter, sym_typed_parameter, sym_positional_separator, sym_keyword_separator, - [59230] = 13, + [60304] = 13, ACTIONS(3), 1, sym_comment, - ACTIONS(310), 1, + ACTIONS(315), 1, sym__string_start, - ACTIONS(312), 1, + ACTIONS(317), 1, sym__template_string_start, - ACTIONS(1861), 1, + ACTIONS(1884), 1, anon_sym_DASH, - ACTIONS(1869), 1, + ACTIONS(1892), 1, sym_integer, - ACTIONS(1871), 1, + ACTIONS(1894), 1, sym_float, - ACTIONS(1940), 1, + ACTIONS(1987), 1, sym_identifier, - STATE(1317), 1, + STATE(1369), 1, sym_string, - STATE(1318), 1, + STATE(1373), 1, sym_template_string, - STATE(1573), 1, + STATE(1557), 1, sym_match_key_value_pattern, - STATE(1140), 2, + STATE(1116), 2, sym_concatenated_string, sym_concatenated_template_string, - STATE(1722), 2, + STATE(1652), 2, sym_match_literal_pattern, sym_match_value_pattern, - ACTIONS(1873), 3, + ACTIONS(1896), 3, sym_true, sym_false, sym_none, - [59274] = 11, + [60348] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2020), 1, - anon_sym_LPAREN, - ACTIONS(2022), 1, - anon_sym_STAR, - ACTIONS(2026), 1, - anon_sym_STAR_STAR, - ACTIONS(2028), 1, - anon_sym_SLASH, - ACTIONS(2042), 1, - sym_identifier, - ACTIONS(2044), 1, - anon_sym_RPAREN, - STATE(1428), 1, - sym_parameter, - STATE(1684), 1, - sym__parameters, - STATE(1442), 2, - sym_list_splat_pattern, - sym_dictionary_splat_pattern, - STATE(1394), 6, - sym_tuple_pattern, - sym_default_parameter, - sym_typed_default_parameter, - sym_typed_parameter, - sym_positional_separator, - sym_keyword_separator, - [59314] = 10, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2018), 1, - sym_identifier, - ACTIONS(2020), 1, - anon_sym_LPAREN, - ACTIONS(2022), 1, - anon_sym_STAR, - ACTIONS(2026), 1, - anon_sym_STAR_STAR, - ACTIONS(2028), 1, - anon_sym_SLASH, - ACTIONS(2046), 1, + ACTIONS(2033), 1, anon_sym_COLON, - STATE(1444), 1, - sym_parameter, - STATE(1520), 2, - sym_list_splat_pattern, - sym_dictionary_splat_pattern, - STATE(1394), 6, - sym_tuple_pattern, - sym_default_parameter, - sym_typed_default_parameter, - sym_typed_parameter, - sym_positional_separator, - sym_keyword_separator, - [59351] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2012), 1, - anon_sym_COLON, - ACTIONS(2014), 1, + ACTIONS(2035), 1, anon_sym_EQ, - ACTIONS(2016), 13, + ACTIONS(2037), 13, anon_sym_PLUS_EQ, anon_sym_DASH_EQ, anon_sym_STAR_EQ, @@ -73536,143 +74760,170 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_AMP_EQ, anon_sym_CARET_EQ, anon_sym_PIPE_EQ, - [59376] = 10, + [60373] = 10, ACTIONS(3), 1, sym_comment, - ACTIONS(2018), 1, - sym_identifier, - ACTIONS(2020), 1, + ACTIONS(2041), 1, anon_sym_LPAREN, - ACTIONS(2022), 1, + ACTIONS(2043), 1, anon_sym_STAR, - ACTIONS(2026), 1, + ACTIONS(2047), 1, anon_sym_STAR_STAR, - ACTIONS(2028), 1, + ACTIONS(2049), 1, anon_sym_SLASH, - ACTIONS(2048), 1, + ACTIONS(2063), 1, + sym_identifier, + ACTIONS(2067), 1, + anon_sym_RPAREN, + STATE(1437), 1, + sym_parameter, + STATE(1507), 2, + sym_list_splat_pattern, + sym_dictionary_splat_pattern, + STATE(1410), 6, + sym_tuple_pattern, + sym_default_parameter, + sym_typed_default_parameter, + sym_typed_parameter, + sym_positional_separator, + sym_keyword_separator, + [60410] = 10, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2039), 1, + sym_identifier, + ACTIONS(2041), 1, + anon_sym_LPAREN, + ACTIONS(2043), 1, + anon_sym_STAR, + ACTIONS(2047), 1, + anon_sym_STAR_STAR, + ACTIONS(2049), 1, + anon_sym_SLASH, + ACTIONS(2067), 1, anon_sym_COLON, - STATE(1444), 1, + STATE(1437), 1, sym_parameter, - STATE(1520), 2, + STATE(1606), 2, sym_list_splat_pattern, sym_dictionary_splat_pattern, - STATE(1394), 6, + STATE(1410), 6, sym_tuple_pattern, sym_default_parameter, sym_typed_default_parameter, sym_typed_parameter, sym_positional_separator, sym_keyword_separator, - [59413] = 10, + [60447] = 10, ACTIONS(3), 1, sym_comment, - ACTIONS(2020), 1, + ACTIONS(2041), 1, anon_sym_LPAREN, - ACTIONS(2022), 1, + ACTIONS(2043), 1, anon_sym_STAR, - ACTIONS(2026), 1, + ACTIONS(2047), 1, anon_sym_STAR_STAR, - ACTIONS(2028), 1, + ACTIONS(2049), 1, anon_sym_SLASH, - ACTIONS(2042), 1, + ACTIONS(2063), 1, sym_identifier, - ACTIONS(2048), 1, + ACTIONS(2069), 1, anon_sym_RPAREN, - STATE(1444), 1, + STATE(1437), 1, sym_parameter, - STATE(1442), 2, + STATE(1507), 2, sym_list_splat_pattern, sym_dictionary_splat_pattern, - STATE(1394), 6, + STATE(1410), 6, sym_tuple_pattern, sym_default_parameter, sym_typed_default_parameter, sym_typed_parameter, sym_positional_separator, sym_keyword_separator, - [59450] = 10, + [60484] = 10, ACTIONS(3), 1, sym_comment, - ACTIONS(2020), 1, - anon_sym_LPAREN, - ACTIONS(2022), 1, - anon_sym_STAR, - ACTIONS(2026), 1, - anon_sym_STAR_STAR, - ACTIONS(2028), 1, - anon_sym_SLASH, - ACTIONS(2042), 1, + ACTIONS(2039), 1, sym_identifier, - ACTIONS(2046), 1, - anon_sym_RPAREN, - STATE(1444), 1, - sym_parameter, - STATE(1442), 2, - sym_list_splat_pattern, - sym_dictionary_splat_pattern, - STATE(1394), 6, - sym_tuple_pattern, - sym_default_parameter, - sym_typed_default_parameter, - sym_typed_parameter, - sym_positional_separator, - sym_keyword_separator, - [59487] = 9, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2020), 1, + ACTIONS(2041), 1, anon_sym_LPAREN, - ACTIONS(2022), 1, + ACTIONS(2043), 1, anon_sym_STAR, - ACTIONS(2026), 1, + ACTIONS(2047), 1, anon_sym_STAR_STAR, - ACTIONS(2028), 1, + ACTIONS(2049), 1, anon_sym_SLASH, - ACTIONS(2042), 1, - sym_identifier, - STATE(1444), 1, + ACTIONS(2069), 1, + anon_sym_COLON, + STATE(1437), 1, sym_parameter, - STATE(1442), 2, + STATE(1606), 2, sym_list_splat_pattern, sym_dictionary_splat_pattern, - STATE(1394), 6, + STATE(1410), 6, sym_tuple_pattern, sym_default_parameter, sym_typed_default_parameter, sym_typed_parameter, sym_positional_separator, sym_keyword_separator, - [59521] = 9, + [60521] = 9, ACTIONS(3), 1, sym_comment, - ACTIONS(2018), 1, - sym_identifier, - ACTIONS(2020), 1, + ACTIONS(2041), 1, anon_sym_LPAREN, - ACTIONS(2022), 1, + ACTIONS(2043), 1, anon_sym_STAR, - ACTIONS(2026), 1, + ACTIONS(2047), 1, anon_sym_STAR_STAR, - ACTIONS(2028), 1, + ACTIONS(2049), 1, anon_sym_SLASH, - STATE(1444), 1, + ACTIONS(2063), 1, + sym_identifier, + STATE(1437), 1, sym_parameter, - STATE(1520), 2, + STATE(1507), 2, sym_list_splat_pattern, sym_dictionary_splat_pattern, - STATE(1394), 6, + STATE(1410), 6, sym_tuple_pattern, sym_default_parameter, sym_typed_default_parameter, sym_typed_parameter, sym_positional_separator, sym_keyword_separator, - [59555] = 3, + [60555] = 9, ACTIONS(3), 1, sym_comment, - ACTIONS(2052), 1, + ACTIONS(2039), 1, + sym_identifier, + ACTIONS(2041), 1, + anon_sym_LPAREN, + ACTIONS(2043), 1, + anon_sym_STAR, + ACTIONS(2047), 1, + anon_sym_STAR_STAR, + ACTIONS(2049), 1, + anon_sym_SLASH, + STATE(1437), 1, + sym_parameter, + STATE(1606), 2, + sym_list_splat_pattern, + sym_dictionary_splat_pattern, + STATE(1410), 6, + sym_tuple_pattern, + sym_default_parameter, + sym_typed_default_parameter, + sym_typed_parameter, + sym_positional_separator, + sym_keyword_separator, + [60589] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1574), 1, anon_sym_as, - ACTIONS(2050), 12, + ACTIONS(1558), 12, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_if, @@ -73685,12 +74936,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_and, anon_sym_or, - [59576] = 3, + [60610] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1613), 1, + ACTIONS(2073), 1, anon_sym_as, - ACTIONS(1597), 12, + ACTIONS(2071), 12, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_if, @@ -73703,14 +74954,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_EQ, anon_sym_and, anon_sym_or, - [59597] = 4, + [60631] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2056), 1, + ACTIONS(2077), 1, anon_sym_DOT, - STATE(1032), 1, + STATE(1039), 1, aux_sym_match_value_pattern_repeat1, - ACTIONS(2054), 10, + ACTIONS(2075), 10, anon_sym_import, anon_sym_LPAREN, anon_sym_RPAREN, @@ -73721,129 +74972,63 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [59619] = 9, - ACTIONS(2059), 1, + [60653] = 9, + ACTIONS(2080), 1, anon_sym_LBRACE2, - ACTIONS(2063), 1, + ACTIONS(2084), 1, anon_sym_BSLASH, - ACTIONS(2065), 1, + ACTIONS(2086), 1, sym_comment, - ACTIONS(2067), 1, + ACTIONS(2088), 1, sym__string_end, - STATE(1052), 1, + STATE(1056), 1, aux_sym_string_repeat1, - STATE(1245), 1, - sym_interpolation, - STATE(1252), 1, + STATE(1248), 1, sym_string_content, - STATE(1147), 2, + STATE(1252), 1, + sym_interpolation, + STATE(1149), 2, sym__not_escape_sequence, aux_sym_string_content_repeat1, - ACTIONS(2061), 3, + ACTIONS(2082), 3, sym__string_content, sym__escape_interpolation, sym_escape_sequence, - [59650] = 12, + [60684] = 12, ACTIONS(3), 1, sym_comment, - ACTIONS(2069), 1, + ACTIONS(2090), 1, anon_sym_COMMA, - ACTIONS(2071), 1, + ACTIONS(2092), 1, anon_sym_if, - ACTIONS(2073), 1, + ACTIONS(2094), 1, anon_sym_COLON, - ACTIONS(2075), 1, + ACTIONS(2096), 1, anon_sym_async, - ACTIONS(2077), 1, + ACTIONS(2098), 1, anon_sym_for, - ACTIONS(2079), 1, + ACTIONS(2100), 1, anon_sym_RBRACE, - ACTIONS(2081), 1, + ACTIONS(2102), 1, anon_sym_and, - ACTIONS(2083), 1, + ACTIONS(2104), 1, anon_sym_or, - STATE(1100), 1, + STATE(1106), 1, sym_for_in_clause, - STATE(1270), 1, + STATE(1310), 1, aux_sym__collection_elements_repeat1, - STATE(1627), 1, + STATE(1676), 1, sym__comprehension_clauses, - [59687] = 9, - ACTIONS(2059), 1, - anon_sym_LBRACE2, - ACTIONS(2063), 1, - anon_sym_BSLASH, - ACTIONS(2065), 1, - sym_comment, - ACTIONS(2085), 1, - sym__string_end, - STATE(1043), 1, - aux_sym_string_repeat1, - STATE(1245), 1, - sym_interpolation, - STATE(1252), 1, - sym_string_content, - STATE(1147), 2, - sym__not_escape_sequence, - aux_sym_string_content_repeat1, - ACTIONS(2061), 3, - sym__string_content, - sym__escape_interpolation, - sym_escape_sequence, - [59718] = 9, - ACTIONS(2059), 1, - anon_sym_LBRACE2, - ACTIONS(2063), 1, - anon_sym_BSLASH, - ACTIONS(2065), 1, - sym_comment, - ACTIONS(2087), 1, - sym__string_end, - STATE(1052), 1, - aux_sym_string_repeat1, - STATE(1245), 1, - sym_interpolation, - STATE(1252), 1, - sym_string_content, - STATE(1147), 2, - sym__not_escape_sequence, - aux_sym_string_content_repeat1, - ACTIONS(2061), 3, - sym__string_content, - sym__escape_interpolation, - sym_escape_sequence, - [59749] = 9, - ACTIONS(2059), 1, - anon_sym_LBRACE2, - ACTIONS(2063), 1, - anon_sym_BSLASH, - ACTIONS(2065), 1, - sym_comment, - ACTIONS(2089), 1, - sym__string_end, - STATE(1036), 1, - aux_sym_string_repeat1, - STATE(1245), 1, - sym_interpolation, - STATE(1252), 1, - sym_string_content, - STATE(1147), 2, - sym__not_escape_sequence, - aux_sym_string_content_repeat1, - ACTIONS(2061), 3, - sym__string_content, - sym__escape_interpolation, - sym_escape_sequence, - [59780] = 5, + [60721] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2091), 1, + ACTIONS(2106), 1, anon_sym_DOT, - ACTIONS(2093), 1, + ACTIONS(2108), 1, anon_sym_LPAREN, - STATE(1042), 1, + STATE(1064), 1, aux_sym_match_value_pattern_repeat1, - ACTIONS(2095), 8, + ACTIONS(2110), 8, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, @@ -73852,32 +75037,15 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [59803] = 4, + [60744] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(647), 1, - sym__string_start, - STATE(744), 2, - sym_string, - aux_sym_concatenated_string_repeat1, - ACTIONS(2097), 8, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - [59824] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(649), 1, + ACTIONS(666), 1, sym__template_string_start, - STATE(745), 2, + STATE(750), 2, sym_template_string, aux_sym_concatenated_template_string_repeat1, - ACTIONS(2097), 8, + ACTIONS(2112), 8, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, @@ -73886,188 +75054,214 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [59845] = 12, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2075), 1, - anon_sym_async, - ACTIONS(2077), 1, - anon_sym_for, - ACTIONS(2099), 1, - anon_sym_RPAREN, - ACTIONS(2101), 1, - anon_sym_COMMA, - ACTIONS(2104), 1, - anon_sym_as, - ACTIONS(2106), 1, - anon_sym_if, - ACTIONS(2108), 1, - anon_sym_and, - ACTIONS(2110), 1, - anon_sym_or, - STATE(1100), 1, - sym_for_in_clause, - STATE(1270), 1, - aux_sym__collection_elements_repeat1, - STATE(1706), 1, - sym__comprehension_clauses, - [59882] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2091), 1, - anon_sym_DOT, - ACTIONS(2112), 1, - anon_sym_LPAREN, - STATE(1032), 1, - aux_sym_match_value_pattern_repeat1, - ACTIONS(2114), 8, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - [59905] = 9, - ACTIONS(2059), 1, + [60765] = 9, + ACTIONS(2080), 1, anon_sym_LBRACE2, - ACTIONS(2063), 1, + ACTIONS(2084), 1, anon_sym_BSLASH, - ACTIONS(2065), 1, + ACTIONS(2086), 1, + sym_comment, + ACTIONS(2114), 1, + sym__string_end, + STATE(1046), 1, + aux_sym_string_repeat1, + STATE(1248), 1, + sym_string_content, + STATE(1252), 1, + sym_interpolation, + STATE(1149), 2, + sym__not_escape_sequence, + aux_sym_string_content_repeat1, + ACTIONS(2082), 3, + sym__string_content, + sym__escape_interpolation, + sym_escape_sequence, + [60796] = 9, + ACTIONS(2086), 1, sym_comment, ACTIONS(2116), 1, - sym__string_end, - STATE(1052), 1, - aux_sym_string_repeat1, - STATE(1245), 1, - sym_interpolation, - STATE(1252), 1, - sym_string_content, - STATE(1147), 2, - sym__not_escape_sequence, - aux_sym_string_content_repeat1, - ACTIONS(2061), 3, - sym__string_content, - sym__escape_interpolation, - sym_escape_sequence, - [59936] = 9, - ACTIONS(2059), 1, anon_sym_LBRACE2, - ACTIONS(2063), 1, - anon_sym_BSLASH, - ACTIONS(2065), 1, - sym_comment, - ACTIONS(2118), 1, - sym__string_end, - STATE(1047), 1, - aux_sym_string_repeat1, - STATE(1245), 1, - sym_interpolation, - STATE(1252), 1, - sym_string_content, - STATE(1147), 2, - sym__not_escape_sequence, - aux_sym_string_content_repeat1, - ACTIONS(2061), 3, - sym__string_content, - sym__escape_interpolation, - sym_escape_sequence, - [59967] = 9, - ACTIONS(2059), 1, - anon_sym_LBRACE2, - ACTIONS(2063), 1, - anon_sym_BSLASH, - ACTIONS(2065), 1, - sym_comment, - ACTIONS(2120), 1, - sym__string_end, - STATE(1048), 1, - aux_sym_string_repeat1, - STATE(1245), 1, - sym_interpolation, - STATE(1252), 1, - sym_string_content, - STATE(1147), 2, - sym__not_escape_sequence, - aux_sym_string_content_repeat1, - ACTIONS(2061), 3, - sym__string_content, - sym__escape_interpolation, - sym_escape_sequence, - [59998] = 12, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2069), 1, - anon_sym_COMMA, - ACTIONS(2071), 1, - anon_sym_if, - ACTIONS(2073), 1, - anon_sym_COLON, - ACTIONS(2075), 1, - anon_sym_async, - ACTIONS(2077), 1, - anon_sym_for, - ACTIONS(2079), 1, - anon_sym_RBRACE, - ACTIONS(2081), 1, - anon_sym_and, - ACTIONS(2083), 1, - anon_sym_or, - STATE(1100), 1, - sym_for_in_clause, - STATE(1270), 1, - aux_sym__collection_elements_repeat1, - STATE(1645), 1, - sym__comprehension_clauses, - [60035] = 9, - ACTIONS(2059), 1, - anon_sym_LBRACE2, - ACTIONS(2063), 1, - anon_sym_BSLASH, - ACTIONS(2065), 1, - sym_comment, ACTIONS(2122), 1, - sym__string_end, - STATE(1052), 1, - aux_sym_string_repeat1, - STATE(1245), 1, - sym_interpolation, - STATE(1252), 1, - sym_string_content, - STATE(1147), 2, - sym__not_escape_sequence, - aux_sym_string_content_repeat1, - ACTIONS(2061), 3, - sym__string_content, - sym__escape_interpolation, - sym_escape_sequence, - [60066] = 9, - ACTIONS(2059), 1, - anon_sym_LBRACE2, - ACTIONS(2063), 1, anon_sym_BSLASH, - ACTIONS(2065), 1, - sym_comment, - ACTIONS(2124), 1, + ACTIONS(2125), 1, sym__string_end, - STATE(1052), 1, + STATE(1045), 1, aux_sym_string_repeat1, - STATE(1245), 1, - sym_interpolation, - STATE(1252), 1, + STATE(1248), 1, sym_string_content, - STATE(1147), 2, + STATE(1252), 1, + sym_interpolation, + STATE(1149), 2, sym__not_escape_sequence, aux_sym_string_content_repeat1, - ACTIONS(2061), 3, + ACTIONS(2119), 3, sym__string_content, sym__escape_interpolation, sym_escape_sequence, - [60097] = 2, + [60827] = 9, + ACTIONS(2080), 1, + anon_sym_LBRACE2, + ACTIONS(2084), 1, + anon_sym_BSLASH, + ACTIONS(2086), 1, + sym_comment, + ACTIONS(2127), 1, + sym__string_end, + STATE(1045), 1, + aux_sym_string_repeat1, + STATE(1248), 1, + sym_string_content, + STATE(1252), 1, + sym_interpolation, + STATE(1149), 2, + sym__not_escape_sequence, + aux_sym_string_content_repeat1, + ACTIONS(2082), 3, + sym__string_content, + sym__escape_interpolation, + sym_escape_sequence, + [60858] = 12, ACTIONS(3), 1, sym_comment, - ACTIONS(2054), 11, + ACTIONS(2090), 1, + anon_sym_COMMA, + ACTIONS(2092), 1, + anon_sym_if, + ACTIONS(2094), 1, + anon_sym_COLON, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2100), 1, + anon_sym_RBRACE, + ACTIONS(2102), 1, + anon_sym_and, + ACTIONS(2104), 1, + anon_sym_or, + STATE(1106), 1, + sym_for_in_clause, + STATE(1310), 1, + aux_sym__collection_elements_repeat1, + STATE(1728), 1, + sym__comprehension_clauses, + [60895] = 12, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2129), 1, + anon_sym_RPAREN, + ACTIONS(2131), 1, + anon_sym_COMMA, + ACTIONS(2134), 1, + anon_sym_as, + ACTIONS(2136), 1, + anon_sym_if, + ACTIONS(2138), 1, + anon_sym_and, + ACTIONS(2140), 1, + anon_sym_or, + STATE(1106), 1, + sym_for_in_clause, + STATE(1310), 1, + aux_sym__collection_elements_repeat1, + STATE(1711), 1, + sym__comprehension_clauses, + [60932] = 9, + ACTIONS(2080), 1, + anon_sym_LBRACE2, + ACTIONS(2084), 1, + anon_sym_BSLASH, + ACTIONS(2086), 1, + sym_comment, + ACTIONS(2142), 1, + sym__string_end, + STATE(1051), 1, + aux_sym_string_repeat1, + STATE(1248), 1, + sym_string_content, + STATE(1252), 1, + sym_interpolation, + STATE(1149), 2, + sym__not_escape_sequence, + aux_sym_string_content_repeat1, + ACTIONS(2082), 3, + sym__string_content, + sym__escape_interpolation, + sym_escape_sequence, + [60963] = 9, + ACTIONS(2080), 1, + anon_sym_LBRACE2, + ACTIONS(2084), 1, + anon_sym_BSLASH, + ACTIONS(2086), 1, + sym_comment, + ACTIONS(2144), 1, + sym__string_end, + STATE(1052), 1, + aux_sym_string_repeat1, + STATE(1248), 1, + sym_string_content, + STATE(1252), 1, + sym_interpolation, + STATE(1149), 2, + sym__not_escape_sequence, + aux_sym_string_content_repeat1, + ACTIONS(2082), 3, + sym__string_content, + sym__escape_interpolation, + sym_escape_sequence, + [60994] = 9, + ACTIONS(2080), 1, + anon_sym_LBRACE2, + ACTIONS(2084), 1, + anon_sym_BSLASH, + ACTIONS(2086), 1, + sym_comment, + ACTIONS(2146), 1, + sym__string_end, + STATE(1045), 1, + aux_sym_string_repeat1, + STATE(1248), 1, + sym_string_content, + STATE(1252), 1, + sym_interpolation, + STATE(1149), 2, + sym__not_escape_sequence, + aux_sym_string_content_repeat1, + ACTIONS(2082), 3, + sym__string_content, + sym__escape_interpolation, + sym_escape_sequence, + [61025] = 9, + ACTIONS(2080), 1, + anon_sym_LBRACE2, + ACTIONS(2084), 1, + anon_sym_BSLASH, + ACTIONS(2086), 1, + sym_comment, + ACTIONS(2148), 1, + sym__string_end, + STATE(1045), 1, + aux_sym_string_repeat1, + STATE(1248), 1, + sym_string_content, + STATE(1252), 1, + sym_interpolation, + STATE(1149), 2, + sym__not_escape_sequence, + aux_sym_string_content_repeat1, + ACTIONS(2082), 3, + sym__string_content, + sym__escape_interpolation, + sym_escape_sequence, + [61056] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2075), 11, anon_sym_import, anon_sym_DOT, anon_sym_LPAREN, @@ -74079,462 +75273,239 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [60114] = 9, - ACTIONS(2059), 1, + [61073] = 9, + ACTIONS(2080), 1, anon_sym_LBRACE2, - ACTIONS(2063), 1, + ACTIONS(2084), 1, anon_sym_BSLASH, - ACTIONS(2065), 1, + ACTIONS(2086), 1, sym_comment, - ACTIONS(2126), 1, - sym__string_end, - STATE(1053), 1, - aux_sym_string_repeat1, - STATE(1245), 1, - sym_interpolation, - STATE(1252), 1, - sym_string_content, - STATE(1147), 2, - sym__not_escape_sequence, - aux_sym_string_content_repeat1, - ACTIONS(2061), 3, - sym__string_content, - sym__escape_interpolation, - sym_escape_sequence, - [60145] = 9, - ACTIONS(2059), 1, - anon_sym_LBRACE2, - ACTIONS(2063), 1, - anon_sym_BSLASH, - ACTIONS(2065), 1, - sym_comment, - ACTIONS(2128), 1, - sym__string_end, - STATE(1054), 1, - aux_sym_string_repeat1, - STATE(1245), 1, - sym_interpolation, - STATE(1252), 1, - sym_string_content, - STATE(1147), 2, - sym__not_escape_sequence, - aux_sym_string_content_repeat1, - ACTIONS(2061), 3, - sym__string_content, - sym__escape_interpolation, - sym_escape_sequence, - [60176] = 9, - ACTIONS(2065), 1, - sym_comment, - ACTIONS(2130), 1, - anon_sym_LBRACE2, - ACTIONS(2136), 1, - anon_sym_BSLASH, - ACTIONS(2139), 1, - sym__string_end, - STATE(1052), 1, - aux_sym_string_repeat1, - STATE(1245), 1, - sym_interpolation, - STATE(1252), 1, - sym_string_content, - STATE(1147), 2, - sym__not_escape_sequence, - aux_sym_string_content_repeat1, - ACTIONS(2133), 3, - sym__string_content, - sym__escape_interpolation, - sym_escape_sequence, - [60207] = 9, - ACTIONS(2059), 1, - anon_sym_LBRACE2, - ACTIONS(2063), 1, - anon_sym_BSLASH, - ACTIONS(2065), 1, - sym_comment, - ACTIONS(2141), 1, - sym__string_end, - STATE(1052), 1, - aux_sym_string_repeat1, - STATE(1245), 1, - sym_interpolation, - STATE(1252), 1, - sym_string_content, - STATE(1147), 2, - sym__not_escape_sequence, - aux_sym_string_content_repeat1, - ACTIONS(2061), 3, - sym__string_content, - sym__escape_interpolation, - sym_escape_sequence, - [60238] = 9, - ACTIONS(2059), 1, - anon_sym_LBRACE2, - ACTIONS(2063), 1, - anon_sym_BSLASH, - ACTIONS(2065), 1, - sym_comment, - ACTIONS(2143), 1, - sym__string_end, - STATE(1052), 1, - aux_sym_string_repeat1, - STATE(1245), 1, - sym_interpolation, - STATE(1252), 1, - sym_string_content, - STATE(1147), 2, - sym__not_escape_sequence, - aux_sym_string_content_repeat1, - ACTIONS(2061), 3, - sym__string_content, - sym__escape_interpolation, - sym_escape_sequence, - [60269] = 9, - ACTIONS(2059), 1, - anon_sym_LBRACE2, - ACTIONS(2063), 1, - anon_sym_BSLASH, - ACTIONS(2065), 1, - sym_comment, - ACTIONS(2145), 1, + ACTIONS(2150), 1, sym__string_end, STATE(1057), 1, aux_sym_string_repeat1, - STATE(1245), 1, - sym_interpolation, - STATE(1252), 1, + STATE(1248), 1, sym_string_content, - STATE(1147), 2, + STATE(1252), 1, + sym_interpolation, + STATE(1149), 2, sym__not_escape_sequence, aux_sym_string_content_repeat1, - ACTIONS(2061), 3, + ACTIONS(2082), 3, sym__string_content, sym__escape_interpolation, sym_escape_sequence, - [60300] = 9, - ACTIONS(2059), 1, + [61104] = 9, + ACTIONS(2080), 1, anon_sym_LBRACE2, - ACTIONS(2063), 1, + ACTIONS(2084), 1, anon_sym_BSLASH, - ACTIONS(2065), 1, + ACTIONS(2086), 1, sym_comment, - ACTIONS(2147), 1, + ACTIONS(2152), 1, sym__string_end, STATE(1058), 1, aux_sym_string_repeat1, - STATE(1245), 1, - sym_interpolation, - STATE(1252), 1, + STATE(1248), 1, sym_string_content, - STATE(1147), 2, + STATE(1252), 1, + sym_interpolation, + STATE(1149), 2, sym__not_escape_sequence, aux_sym_string_content_repeat1, - ACTIONS(2061), 3, + ACTIONS(2082), 3, sym__string_content, sym__escape_interpolation, sym_escape_sequence, - [60331] = 9, - ACTIONS(2059), 1, + [61135] = 9, + ACTIONS(2080), 1, anon_sym_LBRACE2, - ACTIONS(2063), 1, + ACTIONS(2084), 1, anon_sym_BSLASH, - ACTIONS(2065), 1, + ACTIONS(2086), 1, sym_comment, - ACTIONS(2149), 1, + ACTIONS(2154), 1, sym__string_end, - STATE(1052), 1, + STATE(1045), 1, aux_sym_string_repeat1, - STATE(1245), 1, - sym_interpolation, - STATE(1252), 1, + STATE(1248), 1, sym_string_content, - STATE(1147), 2, + STATE(1252), 1, + sym_interpolation, + STATE(1149), 2, sym__not_escape_sequence, aux_sym_string_content_repeat1, - ACTIONS(2061), 3, + ACTIONS(2082), 3, sym__string_content, sym__escape_interpolation, sym_escape_sequence, - [60362] = 9, - ACTIONS(2059), 1, + [61166] = 9, + ACTIONS(2080), 1, anon_sym_LBRACE2, - ACTIONS(2063), 1, + ACTIONS(2084), 1, anon_sym_BSLASH, - ACTIONS(2065), 1, + ACTIONS(2086), 1, sym_comment, - ACTIONS(2151), 1, + ACTIONS(2156), 1, sym__string_end, - STATE(1052), 1, + STATE(1045), 1, aux_sym_string_repeat1, - STATE(1245), 1, - sym_interpolation, - STATE(1252), 1, + STATE(1248), 1, sym_string_content, - STATE(1147), 2, + STATE(1252), 1, + sym_interpolation, + STATE(1149), 2, sym__not_escape_sequence, aux_sym_string_content_repeat1, - ACTIONS(2061), 3, + ACTIONS(2082), 3, sym__string_content, sym__escape_interpolation, sym_escape_sequence, - [60393] = 9, - ACTIONS(2059), 1, + [61197] = 9, + ACTIONS(2080), 1, anon_sym_LBRACE2, - ACTIONS(2063), 1, + ACTIONS(2084), 1, anon_sym_BSLASH, - ACTIONS(2065), 1, + ACTIONS(2086), 1, sym_comment, - ACTIONS(2153), 1, + ACTIONS(2158), 1, sym__string_end, - STATE(1033), 1, + STATE(1045), 1, aux_sym_string_repeat1, - STATE(1245), 1, - sym_interpolation, - STATE(1252), 1, + STATE(1248), 1, sym_string_content, - STATE(1147), 2, + STATE(1252), 1, + sym_interpolation, + STATE(1149), 2, sym__not_escape_sequence, aux_sym_string_content_repeat1, - ACTIONS(2061), 3, + ACTIONS(2082), 3, sym__string_content, sym__escape_interpolation, sym_escape_sequence, - [60424] = 12, + [61228] = 9, + ACTIONS(2080), 1, + anon_sym_LBRACE2, + ACTIONS(2084), 1, + anon_sym_BSLASH, + ACTIONS(2086), 1, + sym_comment, + ACTIONS(2160), 1, + sym__string_end, + STATE(1065), 1, + aux_sym_string_repeat1, + STATE(1248), 1, + sym_string_content, + STATE(1252), 1, + sym_interpolation, + STATE(1149), 2, + sym__not_escape_sequence, + aux_sym_string_content_repeat1, + ACTIONS(2082), 3, + sym__string_content, + sym__escape_interpolation, + sym_escape_sequence, + [61259] = 9, + ACTIONS(2080), 1, + anon_sym_LBRACE2, + ACTIONS(2084), 1, + anon_sym_BSLASH, + ACTIONS(2086), 1, + sym_comment, + ACTIONS(2162), 1, + sym__string_end, + STATE(1062), 1, + aux_sym_string_repeat1, + STATE(1248), 1, + sym_string_content, + STATE(1252), 1, + sym_interpolation, + STATE(1149), 2, + sym__not_escape_sequence, + aux_sym_string_content_repeat1, + ACTIONS(2082), 3, + sym__string_content, + sym__escape_interpolation, + sym_escape_sequence, + [61290] = 9, + ACTIONS(2080), 1, + anon_sym_LBRACE2, + ACTIONS(2084), 1, + anon_sym_BSLASH, + ACTIONS(2086), 1, + sym_comment, + ACTIONS(2164), 1, + sym__string_end, + STATE(1066), 1, + aux_sym_string_repeat1, + STATE(1248), 1, + sym_string_content, + STATE(1252), 1, + sym_interpolation, + STATE(1149), 2, + sym__not_escape_sequence, + aux_sym_string_content_repeat1, + ACTIONS(2082), 3, + sym__string_content, + sym__escape_interpolation, + sym_escape_sequence, + [61321] = 9, + ACTIONS(2080), 1, + anon_sym_LBRACE2, + ACTIONS(2084), 1, + anon_sym_BSLASH, + ACTIONS(2086), 1, + sym_comment, + ACTIONS(2166), 1, + sym__string_end, + STATE(1045), 1, + aux_sym_string_repeat1, + STATE(1248), 1, + sym_string_content, + STATE(1252), 1, + sym_interpolation, + STATE(1149), 2, + sym__not_escape_sequence, + aux_sym_string_content_repeat1, + ACTIONS(2082), 3, + sym__string_content, + sym__escape_interpolation, + sym_escape_sequence, + [61352] = 12, ACTIONS(3), 1, sym_comment, - ACTIONS(2069), 1, + ACTIONS(2090), 1, anon_sym_COMMA, - ACTIONS(2071), 1, + ACTIONS(2092), 1, anon_sym_if, - ACTIONS(2073), 1, + ACTIONS(2094), 1, anon_sym_COLON, - ACTIONS(2075), 1, + ACTIONS(2096), 1, anon_sym_async, - ACTIONS(2077), 1, + ACTIONS(2098), 1, anon_sym_for, - ACTIONS(2079), 1, + ACTIONS(2100), 1, anon_sym_RBRACE, - ACTIONS(2081), 1, + ACTIONS(2102), 1, anon_sym_and, - ACTIONS(2083), 1, + ACTIONS(2104), 1, anon_sym_or, - STATE(1100), 1, + STATE(1106), 1, sym_for_in_clause, - STATE(1270), 1, + STATE(1310), 1, aux_sym__collection_elements_repeat1, - STATE(1649), 1, + STATE(1695), 1, sym__comprehension_clauses, - [60461] = 12, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2069), 1, - anon_sym_COMMA, - ACTIONS(2071), 1, - anon_sym_if, - ACTIONS(2073), 1, - anon_sym_COLON, - ACTIONS(2075), 1, - anon_sym_async, - ACTIONS(2077), 1, - anon_sym_for, - ACTIONS(2079), 1, - anon_sym_RBRACE, - ACTIONS(2081), 1, - anon_sym_and, - ACTIONS(2083), 1, - anon_sym_or, - STATE(1100), 1, - sym_for_in_clause, - STATE(1270), 1, - aux_sym__collection_elements_repeat1, - STATE(1715), 1, - sym__comprehension_clauses, - [60498] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2108), 1, - anon_sym_and, - ACTIONS(2110), 1, - anon_sym_or, - ACTIONS(2157), 1, - anon_sym_as, - ACTIONS(2155), 7, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACK, - anon_sym_RBRACE, - [60520] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2159), 9, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_or, - [60538] = 6, + [61389] = 5, ACTIONS(3), 1, sym_comment, ACTIONS(2106), 1, - anon_sym_if, - ACTIONS(2108), 1, - anon_sym_and, - ACTIONS(2110), 1, - anon_sym_or, - ACTIONS(2165), 1, - anon_sym_as, - ACTIONS(2163), 6, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACK, - anon_sym_RBRACE, - [60562] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2159), 8, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_EQ, - [60582] = 11, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2069), 1, - anon_sym_COMMA, - ACTIONS(2075), 1, - anon_sym_async, - ACTIONS(2077), 1, - anon_sym_for, - ACTIONS(2106), 1, - anon_sym_if, - ACTIONS(2108), 1, - anon_sym_and, - ACTIONS(2110), 1, - anon_sym_or, - ACTIONS(2169), 1, - anon_sym_RPAREN, - STATE(1100), 1, - sym_for_in_clause, - STATE(1270), 1, - aux_sym__collection_elements_repeat1, - STATE(1686), 1, - sym__comprehension_clauses, - [60616] = 11, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2075), 1, - anon_sym_async, - ACTIONS(2077), 1, - anon_sym_for, - ACTIONS(2106), 1, - anon_sym_if, - ACTIONS(2108), 1, - anon_sym_and, - ACTIONS(2110), 1, - anon_sym_or, - ACTIONS(2171), 1, - anon_sym_RPAREN, - ACTIONS(2173), 1, - anon_sym_COMMA, - STATE(1100), 1, - sym_for_in_clause, - STATE(1451), 1, - aux_sym_argument_list_repeat1, - STATE(1686), 1, - sym__comprehension_clauses, - [60650] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2108), 1, - anon_sym_and, - ACTIONS(2175), 1, - anon_sym_as, - ACTIONS(2159), 8, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_or, - [60670] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2108), 1, - anon_sym_and, - ACTIONS(2110), 1, - anon_sym_or, - ACTIONS(2175), 1, - anon_sym_as, - ACTIONS(2159), 7, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACK, - anon_sym_RBRACE, - [60692] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2177), 7, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_else, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_EQ, - [60714] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2181), 7, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_else, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_EQ, - [60736] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2185), 2, - anon_sym_DASH, - anon_sym_PLUS, - ACTIONS(2183), 8, + anon_sym_DOT, + ACTIONS(2168), 1, + anon_sym_LPAREN, + STATE(1039), 1, + aux_sym_match_value_pattern_repeat1, + ACTIONS(2170), 8, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, @@ -74543,101 +75514,139 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [60754] = 11, + [61412] = 9, + ACTIONS(2080), 1, + anon_sym_LBRACE2, + ACTIONS(2084), 1, + anon_sym_BSLASH, + ACTIONS(2086), 1, + sym_comment, + ACTIONS(2172), 1, + sym__string_end, + STATE(1045), 1, + aux_sym_string_repeat1, + STATE(1248), 1, + sym_string_content, + STATE(1252), 1, + sym_interpolation, + STATE(1149), 2, + sym__not_escape_sequence, + aux_sym_string_content_repeat1, + ACTIONS(2082), 3, + sym__string_content, + sym__escape_interpolation, + sym_escape_sequence, + [61443] = 9, + ACTIONS(2080), 1, + anon_sym_LBRACE2, + ACTIONS(2084), 1, + anon_sym_BSLASH, + ACTIONS(2086), 1, + sym_comment, + ACTIONS(2174), 1, + sym__string_end, + STATE(1045), 1, + aux_sym_string_repeat1, + STATE(1248), 1, + sym_string_content, + STATE(1252), 1, + sym_interpolation, + STATE(1149), 2, + sym__not_escape_sequence, + aux_sym_string_content_repeat1, + ACTIONS(2082), 3, + sym__string_content, + sym__escape_interpolation, + sym_escape_sequence, + [61474] = 12, ACTIONS(3), 1, sym_comment, - ACTIONS(2069), 1, + ACTIONS(2090), 1, anon_sym_COMMA, - ACTIONS(2075), 1, + ACTIONS(2092), 1, + anon_sym_if, + ACTIONS(2094), 1, + anon_sym_COLON, + ACTIONS(2096), 1, anon_sym_async, - ACTIONS(2077), 1, + ACTIONS(2098), 1, anon_sym_for, - ACTIONS(2106), 1, - anon_sym_if, - ACTIONS(2108), 1, + ACTIONS(2100), 1, + anon_sym_RBRACE, + ACTIONS(2102), 1, anon_sym_and, - ACTIONS(2110), 1, + ACTIONS(2104), 1, anon_sym_or, - ACTIONS(2187), 1, - anon_sym_RPAREN, - STATE(1100), 1, + STATE(1106), 1, sym_for_in_clause, - STATE(1270), 1, + STATE(1310), 1, aux_sym__collection_elements_repeat1, - STATE(1613), 1, + STATE(1717), 1, sym__comprehension_clauses, - [60788] = 6, + [61511] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2106), 1, - anon_sym_if, - ACTIONS(2108), 1, - anon_sym_and, - ACTIONS(2110), 1, - anon_sym_or, - ACTIONS(2189), 1, - anon_sym_as, - ACTIONS(2177), 6, + ACTIONS(664), 1, + sym__string_start, + STATE(749), 2, + sym_string, + aux_sym_concatenated_string_repeat1, + ACTIONS(2112), 8, anon_sym_RPAREN, anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + [61532] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2138), 1, + anon_sym_and, + ACTIONS(2178), 1, + anon_sym_as, + ACTIONS(2176), 8, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, anon_sym_async, anon_sym_for, anon_sym_RBRACK, anon_sym_RBRACE, - [60812] = 11, + anon_sym_or, + [61552] = 11, ACTIONS(3), 1, sym_comment, - ACTIONS(2075), 1, - anon_sym_async, - ACTIONS(2077), 1, - anon_sym_for, - ACTIONS(2106), 1, - anon_sym_if, - ACTIONS(2108), 1, - anon_sym_and, - ACTIONS(2110), 1, - anon_sym_or, - ACTIONS(2191), 1, - anon_sym_RPAREN, - ACTIONS(2193), 1, + ACTIONS(2090), 1, anon_sym_COMMA, - STATE(1100), 1, - sym_for_in_clause, - STATE(1418), 1, - aux_sym_argument_list_repeat1, - STATE(1706), 1, - sym__comprehension_clauses, - [60846] = 11, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2075), 1, + ACTIONS(2096), 1, anon_sym_async, - ACTIONS(2077), 1, + ACTIONS(2098), 1, anon_sym_for, - ACTIONS(2106), 1, + ACTIONS(2136), 1, anon_sym_if, - ACTIONS(2108), 1, + ACTIONS(2138), 1, anon_sym_and, - ACTIONS(2110), 1, + ACTIONS(2140), 1, anon_sym_or, - ACTIONS(2195), 1, + ACTIONS(2180), 1, anon_sym_RPAREN, - ACTIONS(2197), 1, - anon_sym_COMMA, - STATE(1100), 1, + STATE(1106), 1, sym_for_in_clause, - STATE(1483), 1, - aux_sym_argument_list_repeat1, - STATE(1592), 1, + STATE(1310), 1, + aux_sym__collection_elements_repeat1, + STATE(1628), 1, sym__comprehension_clauses, - [60880] = 4, + [61586] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2161), 1, + ACTIONS(2182), 1, anon_sym_and, - ACTIONS(2167), 1, + ACTIONS(2184), 1, anon_sym_or, - ACTIONS(2199), 8, + ACTIONS(2176), 8, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_if, @@ -74646,835 +75655,783 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_RBRACK, anon_sym_RBRACE, anon_sym_EQ, - [60900] = 3, + [61606] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(2203), 2, - anon_sym_DASH, - anon_sym_PLUS, - ACTIONS(2201), 8, - anon_sym_RPAREN, - anon_sym_COMMA, + ACTIONS(2136), 1, + anon_sym_if, + ACTIONS(2138), 1, + anon_sym_and, + ACTIONS(2140), 1, + anon_sym_or, + ACTIONS(2188), 1, anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - [60918] = 11, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2069), 1, - anon_sym_COMMA, - ACTIONS(2075), 1, - anon_sym_async, - ACTIONS(2077), 1, - anon_sym_for, - ACTIONS(2099), 1, - anon_sym_RPAREN, - ACTIONS(2106), 1, - anon_sym_if, - ACTIONS(2108), 1, - anon_sym_and, - ACTIONS(2110), 1, - anon_sym_or, - STATE(1100), 1, - sym_for_in_clause, - STATE(1270), 1, - aux_sym__collection_elements_repeat1, - STATE(1706), 1, - sym__comprehension_clauses, - [60952] = 11, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2075), 1, - anon_sym_async, - ACTIONS(2077), 1, - anon_sym_for, - ACTIONS(2106), 1, - anon_sym_if, - ACTIONS(2108), 1, - anon_sym_and, - ACTIONS(2110), 1, - anon_sym_or, - ACTIONS(2205), 1, - anon_sym_RPAREN, - ACTIONS(2207), 1, - anon_sym_COMMA, - STATE(1100), 1, - sym_for_in_clause, - STATE(1437), 1, - aux_sym_argument_list_repeat1, - STATE(1613), 1, - sym__comprehension_clauses, - [60986] = 11, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2069), 1, - anon_sym_COMMA, - ACTIONS(2075), 1, - anon_sym_async, - ACTIONS(2077), 1, - anon_sym_for, - ACTIONS(2079), 1, - anon_sym_RBRACK, - ACTIONS(2106), 1, - anon_sym_if, - ACTIONS(2108), 1, - anon_sym_and, - ACTIONS(2110), 1, - anon_sym_or, - STATE(1100), 1, - sym_for_in_clause, - STATE(1270), 1, - aux_sym__collection_elements_repeat1, - STATE(1624), 1, - sym__comprehension_clauses, - [61020] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2163), 7, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_else, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_EQ, - [61042] = 11, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2069), 1, - anon_sym_COMMA, - ACTIONS(2075), 1, - anon_sym_async, - ACTIONS(2077), 1, - anon_sym_for, - ACTIONS(2079), 1, - anon_sym_RBRACK, - ACTIONS(2106), 1, - anon_sym_if, - ACTIONS(2108), 1, - anon_sym_and, - ACTIONS(2110), 1, - anon_sym_or, - STATE(1100), 1, - sym_for_in_clause, - STATE(1270), 1, - aux_sym__collection_elements_repeat1, - STATE(1677), 1, - sym__comprehension_clauses, - [61076] = 11, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2069), 1, - anon_sym_COMMA, - ACTIONS(2075), 1, - anon_sym_async, - ACTIONS(2077), 1, - anon_sym_for, - ACTIONS(2106), 1, - anon_sym_if, - ACTIONS(2108), 1, - anon_sym_and, - ACTIONS(2110), 1, - anon_sym_or, - ACTIONS(2209), 1, - anon_sym_RPAREN, - STATE(1100), 1, - sym_for_in_clause, - STATE(1270), 1, - aux_sym__collection_elements_repeat1, - STATE(1592), 1, - sym__comprehension_clauses, - [61110] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2106), 1, - anon_sym_if, - ACTIONS(2108), 1, - anon_sym_and, - ACTIONS(2110), 1, - anon_sym_or, - ACTIONS(2211), 1, - anon_sym_as, - ACTIONS(2181), 6, + ACTIONS(2186), 6, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_async, anon_sym_for, anon_sym_RBRACK, anon_sym_RBRACE, - [61134] = 11, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2069), 1, - anon_sym_COMMA, - ACTIONS(2075), 1, - anon_sym_async, - ACTIONS(2077), 1, - anon_sym_for, - ACTIONS(2079), 1, - anon_sym_RBRACK, - ACTIONS(2106), 1, - anon_sym_if, - ACTIONS(2108), 1, - anon_sym_and, - ACTIONS(2110), 1, - anon_sym_or, - STATE(1100), 1, - sym_for_in_clause, - STATE(1270), 1, - aux_sym__collection_elements_repeat1, - STATE(1708), 1, - sym__comprehension_clauses, - [61168] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2108), 1, - anon_sym_and, - ACTIONS(2110), 1, - anon_sym_or, - ACTIONS(2213), 1, - anon_sym_as, - ACTIONS(2199), 7, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACK, - anon_sym_RBRACE, - [61190] = 11, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2069), 1, - anon_sym_COMMA, - ACTIONS(2075), 1, - anon_sym_async, - ACTIONS(2077), 1, - anon_sym_for, - ACTIONS(2079), 1, - anon_sym_RBRACK, - ACTIONS(2106), 1, - anon_sym_if, - ACTIONS(2108), 1, - anon_sym_and, - ACTIONS(2110), 1, - anon_sym_or, - STATE(1100), 1, - sym_for_in_clause, - STATE(1270), 1, - aux_sym__collection_elements_repeat1, - STATE(1614), 1, - sym__comprehension_clauses, - [61224] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2155), 8, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_else, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_EQ, - [61244] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2108), 1, - anon_sym_and, - ACTIONS(2110), 1, - anon_sym_or, - ACTIONS(2215), 7, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACK, - anon_sym_RBRACE, - [61263] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2219), 1, - anon_sym_PIPE, - STATE(1101), 1, - aux_sym_match_or_pattern_repeat1, - ACTIONS(2217), 7, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_RBRACE, - [61282] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2223), 1, - anon_sym_if, - ACTIONS(2226), 1, - anon_sym_async, - ACTIONS(2229), 1, - anon_sym_for, - ACTIONS(2221), 3, - anon_sym_RPAREN, - anon_sym_RBRACK, - anon_sym_RBRACE, - STATE(1092), 3, - sym_for_in_clause, - sym_if_clause, - aux_sym__comprehension_clauses_repeat1, - [61305] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2232), 1, - anon_sym_COMMA, - ACTIONS(2234), 1, - anon_sym_if, - ACTIONS(2238), 1, - anon_sym_and, - ACTIONS(2240), 1, - anon_sym_or, - STATE(1215), 1, - aux_sym_expression_list_repeat1, - ACTIONS(2236), 4, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COLON2, - sym_type_conversion, - [61330] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2108), 1, - anon_sym_and, - ACTIONS(2110), 1, - anon_sym_or, - ACTIONS(2215), 7, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACK, - anon_sym_RBRACE, - [61349] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2232), 1, - anon_sym_COMMA, - ACTIONS(2234), 1, - anon_sym_if, - ACTIONS(2238), 1, - anon_sym_and, - ACTIONS(2240), 1, - anon_sym_or, - STATE(1215), 1, - aux_sym_expression_list_repeat1, - ACTIONS(2242), 4, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COLON2, - sym_type_conversion, - [61374] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2244), 6, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_EQ, - [61395] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2248), 1, - anon_sym_PIPE, - STATE(1097), 1, - aux_sym_match_or_pattern_repeat1, - ACTIONS(2246), 7, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_RBRACE, - [61414] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2108), 1, - anon_sym_and, - ACTIONS(2110), 1, - anon_sym_or, - ACTIONS(2215), 7, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACK, - anon_sym_RBRACE, - [61433] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2075), 1, - anon_sym_async, - ACTIONS(2077), 1, - anon_sym_for, - ACTIONS(2253), 1, - anon_sym_if, - ACTIONS(2251), 3, - anon_sym_RPAREN, - anon_sym_RBRACK, - anon_sym_RBRACE, - STATE(1092), 3, - sym_for_in_clause, - sym_if_clause, - aux_sym__comprehension_clauses_repeat1, - [61456] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2075), 1, - anon_sym_async, - ACTIONS(2077), 1, - anon_sym_for, - ACTIONS(2253), 1, - anon_sym_if, - ACTIONS(2255), 3, - anon_sym_RPAREN, - anon_sym_RBRACK, - anon_sym_RBRACE, - STATE(1099), 3, - sym_for_in_clause, - sym_if_clause, - aux_sym__comprehension_clauses_repeat1, - [61479] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2219), 1, - anon_sym_PIPE, - STATE(1097), 1, - aux_sym_match_or_pattern_repeat1, - ACTIONS(2257), 7, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_RBRACE, - [61498] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2071), 1, - anon_sym_if, - ACTIONS(2081), 1, - anon_sym_and, - ACTIONS(2083), 1, - anon_sym_or, - ACTIONS(2181), 5, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACE, - [61518] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2234), 1, - anon_sym_if, - ACTIONS(2238), 1, - anon_sym_and, - ACTIONS(2240), 1, - anon_sym_or, - ACTIONS(2163), 5, - anon_sym_COMMA, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COLON2, - sym_type_conversion, - [61538] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2238), 1, - anon_sym_and, - ACTIONS(2240), 1, - anon_sym_or, - ACTIONS(2155), 6, - anon_sym_COMMA, - anon_sym_if, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COLON2, - sym_type_conversion, - [61556] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2238), 1, - anon_sym_and, - ACTIONS(2159), 7, - anon_sym_COMMA, - anon_sym_if, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_or, - anon_sym_COLON2, - sym_type_conversion, - [61572] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2238), 1, - anon_sym_and, - ACTIONS(2240), 1, - anon_sym_or, - ACTIONS(2159), 6, - anon_sym_COMMA, - anon_sym_if, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COLON2, - sym_type_conversion, - [61590] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2234), 1, - anon_sym_if, - ACTIONS(2238), 1, - anon_sym_and, - ACTIONS(2240), 1, - anon_sym_or, - ACTIONS(2177), 5, - anon_sym_COMMA, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COLON2, - sym_type_conversion, - [61610] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2234), 1, - anon_sym_if, - ACTIONS(2238), 1, - anon_sym_and, - ACTIONS(2240), 1, - anon_sym_or, - ACTIONS(2181), 5, - anon_sym_COMMA, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COLON2, - sym_type_conversion, [61630] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2259), 1, - anon_sym_if, - ACTIONS(2261), 1, + ACTIONS(2138), 1, anon_sym_and, - ACTIONS(2263), 1, + ACTIONS(2140), 1, anon_sym_or, - ACTIONS(2181), 5, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_EQ, - anon_sym_SEMI, - [61650] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2265), 8, - anon_sym_RPAREN, - anon_sym_COMMA, + ACTIONS(2192), 1, anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - [61664] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2269), 1, - anon_sym_COMMA, - STATE(1136), 1, - aux_sym_for_in_clause_repeat1, - ACTIONS(2267), 6, + ACTIONS(2190), 7, anon_sym_RPAREN, + anon_sym_COMMA, anon_sym_if, anon_sym_async, anon_sym_for, anon_sym_RBRACK, anon_sym_RBRACE, - [61682] = 5, + [61652] = 11, ACTIONS(3), 1, sym_comment, + ACTIONS(2090), 1, + anon_sym_COMMA, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2129), 1, + anon_sym_RPAREN, + ACTIONS(2136), 1, + anon_sym_if, + ACTIONS(2138), 1, + anon_sym_and, + ACTIONS(2140), 1, + anon_sym_or, + STATE(1106), 1, + sym_for_in_clause, + STATE(1310), 1, + aux_sym__collection_elements_repeat1, + STATE(1711), 1, + sym__comprehension_clauses, + [61686] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2136), 1, + anon_sym_if, + ACTIONS(2138), 1, + anon_sym_and, + ACTIONS(2140), 1, + anon_sym_or, + ACTIONS(2194), 1, + anon_sym_RPAREN, + ACTIONS(2196), 1, + anon_sym_COMMA, + STATE(1106), 1, + sym_for_in_clause, + STATE(1476), 1, + aux_sym_argument_list_repeat1, + STATE(1673), 1, + sym__comprehension_clauses, + [61720] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2186), 7, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_else, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_EQ, + [61742] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2136), 1, + anon_sym_if, + ACTIONS(2138), 1, + anon_sym_and, + ACTIONS(2140), 1, + anon_sym_or, + ACTIONS(2202), 1, + anon_sym_as, + ACTIONS(2200), 6, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACK, + anon_sym_RBRACE, + [61766] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2206), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2204), 8, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + [61784] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2210), 2, + anon_sym_DASH, + anon_sym_PLUS, + ACTIONS(2208), 8, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + [61802] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2090), 1, + anon_sym_COMMA, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2100), 1, + anon_sym_RBRACK, + ACTIONS(2136), 1, + anon_sym_if, + ACTIONS(2138), 1, + anon_sym_and, + ACTIONS(2140), 1, + anon_sym_or, + STATE(1106), 1, + sym_for_in_clause, + STATE(1310), 1, + aux_sym__collection_elements_repeat1, + STATE(1754), 1, + sym__comprehension_clauses, + [61836] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2212), 8, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_EQ, + [61856] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2136), 1, + anon_sym_if, + ACTIONS(2138), 1, + anon_sym_and, + ACTIONS(2140), 1, + anon_sym_or, + ACTIONS(2216), 1, + anon_sym_as, + ACTIONS(2214), 6, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACK, + anon_sym_RBRACE, + [61880] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2138), 1, + anon_sym_and, + ACTIONS(2140), 1, + anon_sym_or, + ACTIONS(2178), 1, + anon_sym_as, + ACTIONS(2176), 7, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACK, + anon_sym_RBRACE, + [61902] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2090), 1, + anon_sym_COMMA, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2136), 1, + anon_sym_if, + ACTIONS(2138), 1, + anon_sym_and, + ACTIONS(2140), 1, + anon_sym_or, + ACTIONS(2218), 1, + anon_sym_RPAREN, + STATE(1106), 1, + sym_for_in_clause, + STATE(1310), 1, + aux_sym__collection_elements_repeat1, + STATE(1673), 1, + sym__comprehension_clauses, + [61936] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2200), 7, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_else, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_EQ, + [61958] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2090), 1, + anon_sym_COMMA, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2136), 1, + anon_sym_if, + ACTIONS(2138), 1, + anon_sym_and, + ACTIONS(2140), 1, + anon_sym_or, + ACTIONS(2220), 1, + anon_sym_RPAREN, + STATE(1106), 1, + sym_for_in_clause, + STATE(1310), 1, + aux_sym__collection_elements_repeat1, + STATE(1618), 1, + sym__comprehension_clauses, + [61992] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2136), 1, + anon_sym_if, + ACTIONS(2138), 1, + anon_sym_and, + ACTIONS(2140), 1, + anon_sym_or, + ACTIONS(2222), 1, + anon_sym_RPAREN, + ACTIONS(2224), 1, + anon_sym_COMMA, + STATE(1106), 1, + sym_for_in_clause, + STATE(1441), 1, + aux_sym_argument_list_repeat1, + STATE(1628), 1, + sym__comprehension_clauses, + [62026] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2190), 8, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_EQ, + [62046] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2214), 7, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_else, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_EQ, + [62068] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2090), 1, + anon_sym_COMMA, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2100), 1, + anon_sym_RBRACK, + ACTIONS(2136), 1, + anon_sym_if, + ACTIONS(2138), 1, + anon_sym_and, + ACTIONS(2140), 1, + anon_sym_or, + STATE(1106), 1, + sym_for_in_clause, + STATE(1310), 1, + aux_sym__collection_elements_repeat1, + STATE(1713), 1, + sym__comprehension_clauses, + [62102] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2138), 1, + anon_sym_and, + ACTIONS(2140), 1, + anon_sym_or, + ACTIONS(2226), 1, + anon_sym_as, + ACTIONS(2212), 7, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACK, + anon_sym_RBRACE, + [62124] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2090), 1, + anon_sym_COMMA, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2100), 1, + anon_sym_RBRACK, + ACTIONS(2136), 1, + anon_sym_if, + ACTIONS(2138), 1, + anon_sym_and, + ACTIONS(2140), 1, + anon_sym_or, + STATE(1106), 1, + sym_for_in_clause, + STATE(1310), 1, + aux_sym__collection_elements_repeat1, + STATE(1675), 1, + sym__comprehension_clauses, + [62158] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2136), 1, + anon_sym_if, + ACTIONS(2138), 1, + anon_sym_and, + ACTIONS(2140), 1, + anon_sym_or, + ACTIONS(2228), 1, + anon_sym_RPAREN, + ACTIONS(2230), 1, + anon_sym_COMMA, + STATE(1106), 1, + sym_for_in_clause, + STATE(1459), 1, + aux_sym_argument_list_repeat1, + STATE(1711), 1, + sym__comprehension_clauses, + [62192] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2136), 1, + anon_sym_if, + ACTIONS(2138), 1, + anon_sym_and, + ACTIONS(2140), 1, + anon_sym_or, + ACTIONS(2232), 1, + anon_sym_RPAREN, ACTIONS(2234), 1, - anon_sym_if, - ACTIONS(2238), 1, - anon_sym_and, - ACTIONS(2240), 1, - anon_sym_or, - ACTIONS(2244), 5, anon_sym_COMMA, + STATE(1106), 1, + sym_for_in_clause, + STATE(1526), 1, + aux_sym_argument_list_repeat1, + STATE(1618), 1, + sym__comprehension_clauses, + [62226] = 11, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2090), 1, + anon_sym_COMMA, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2100), 1, + anon_sym_RBRACK, + ACTIONS(2136), 1, + anon_sym_if, + ACTIONS(2138), 1, + anon_sym_and, + ACTIONS(2140), 1, + anon_sym_or, + STATE(1106), 1, + sym_for_in_clause, + STATE(1310), 1, + aux_sym__collection_elements_repeat1, + STATE(1722), 1, + sym__comprehension_clauses, + [62260] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2176), 9, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_else, + anon_sym_RBRACK, anon_sym_RBRACE, anon_sym_EQ, - anon_sym_COLON2, - sym_type_conversion, - [61702] = 7, + anon_sym_or, + [62278] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(67), 1, - anon_sym_AT, - ACTIONS(2271), 1, + ACTIONS(2138), 1, + anon_sym_and, + ACTIONS(2140), 1, + anon_sym_or, + ACTIONS(2236), 7, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, anon_sym_async, - ACTIONS(2273), 1, - anon_sym_def, - ACTIONS(2275), 1, - anon_sym_class, - STATE(552), 2, - sym_function_definition, - sym_class_definition, - STATE(1248), 2, - sym_decorator, - aux_sym_decorated_definition_repeat1, - [61726] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2277), 8, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_PIPE, + anon_sym_for, anon_sym_RBRACK, anon_sym_RBRACE, - [61740] = 2, + [62297] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2279), 8, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, + ACTIONS(2136), 1, anon_sym_if, - anon_sym_COLON, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - [61754] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2246), 8, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - [61768] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, + ACTIONS(2138), 1, anon_sym_and, - ACTIONS(2167), 1, + ACTIONS(2140), 1, anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2281), 5, + ACTIONS(2238), 6, anon_sym_RPAREN, anon_sym_COMMA, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_RBRACE, - [61788] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(67), 1, - anon_sym_AT, - ACTIONS(2283), 1, anon_sym_async, - ACTIONS(2285), 1, - anon_sym_def, - ACTIONS(2287), 1, - anon_sym_class, - STATE(521), 2, - sym_function_definition, - sym_class_definition, - STATE(1248), 2, - sym_decorator, - aux_sym_decorated_definition_repeat1, - [61812] = 2, + anon_sym_for, + anon_sym_RBRACK, + anon_sym_RBRACE, + [62318] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2289), 8, + ACTIONS(2138), 1, + anon_sym_and, + ACTIONS(2140), 1, + anon_sym_or, + ACTIONS(2236), 7, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACK, + anon_sym_RBRACE, + [62337] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2242), 1, + anon_sym_if, + ACTIONS(2245), 1, + anon_sym_async, + ACTIONS(2248), 1, + anon_sym_for, + ACTIONS(2240), 3, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_RBRACE, + STATE(1100), 3, + sym_for_in_clause, + sym_if_clause, + aux_sym__comprehension_clauses_repeat1, + [62360] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2253), 1, + anon_sym_PIPE, + STATE(1105), 1, + aux_sym_match_or_pattern_repeat1, + ACTIONS(2251), 7, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, anon_sym_if, anon_sym_COLON, - anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [61826] = 2, + [62379] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2291), 8, + ACTIONS(2257), 1, + anon_sym_PIPE, + STATE(1102), 1, + aux_sym_match_or_pattern_repeat1, + ACTIONS(2255), 7, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, anon_sym_if, anon_sym_COLON, - anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [61840] = 3, + [62398] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(2261), 1, - anon_sym_and, - ACTIONS(2159), 7, - sym__newline, - anon_sym_from, + ACTIONS(2260), 1, anon_sym_COMMA, + ACTIONS(2262), 1, anon_sym_if, - anon_sym_EQ, - anon_sym_or, - anon_sym_SEMI, - [61856] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2259), 1, - anon_sym_if, - ACTIONS(2261), 1, + ACTIONS(2266), 1, anon_sym_and, - ACTIONS(2263), 1, + ACTIONS(2268), 1, anon_sym_or, - ACTIONS(2293), 1, - anon_sym_from, - ACTIONS(2295), 1, - anon_sym_COMMA, - STATE(1260), 1, + STATE(1274), 1, aux_sym_expression_list_repeat1, - ACTIONS(2297), 2, - sym__newline, - anon_sym_SEMI, - [61882] = 4, + ACTIONS(2264), 4, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_COLON2, + sym_type_conversion, + [62423] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2261), 1, + ACTIONS(2138), 1, anon_sym_and, - ACTIONS(2263), 1, + ACTIONS(2140), 1, anon_sym_or, - ACTIONS(2159), 6, + ACTIONS(2236), 7, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACK, + anon_sym_RBRACE, + [62442] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2253), 1, + anon_sym_PIPE, + STATE(1102), 1, + aux_sym_match_or_pattern_repeat1, + ACTIONS(2270), 7, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_RBRACE, + [62461] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2274), 1, + anon_sym_if, + ACTIONS(2272), 3, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_RBRACE, + STATE(1108), 3, + sym_for_in_clause, + sym_if_clause, + aux_sym__comprehension_clauses_repeat1, + [62484] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2260), 1, + anon_sym_COMMA, + ACTIONS(2262), 1, + anon_sym_if, + ACTIONS(2266), 1, + anon_sym_and, + ACTIONS(2268), 1, + anon_sym_or, + STATE(1274), 1, + aux_sym_expression_list_repeat1, + ACTIONS(2276), 4, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_COLON2, + sym_type_conversion, + [62509] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2274), 1, + anon_sym_if, + ACTIONS(2278), 3, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_RBRACE, + STATE(1100), 3, + sym_for_in_clause, + sym_if_clause, + aux_sym__comprehension_clauses_repeat1, + [62532] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2238), 6, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_RBRACE, + anon_sym_EQ, + [62553] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2280), 8, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + [62567] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2282), 8, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + [62581] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2284), 1, + anon_sym_and, + ACTIONS(2286), 1, + anon_sym_or, + ACTIONS(2176), 6, sym__newline, anon_sym_from, anon_sym_COMMA, anon_sym_if, anon_sym_EQ, anon_sym_SEMI, - [61900] = 2, + [62599] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2299), 8, - anon_sym_RPAREN, + ACTIONS(2290), 1, anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - [61914] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2234), 1, - anon_sym_if, - ACTIONS(2238), 1, - anon_sym_and, - ACTIONS(2240), 1, - anon_sym_or, - ACTIONS(2301), 5, - anon_sym_COMMA, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COLON2, - sym_type_conversion, - [61934] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2303), 8, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - [61948] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2305), 8, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - [61962] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2309), 1, - anon_sym_COMMA, - STATE(1146), 1, + STATE(1113), 1, aux_sym_for_in_clause_repeat1, - ACTIONS(2307), 6, + ACTIONS(2288), 6, anon_sym_RPAREN, anon_sym_if, anon_sym_async, anon_sym_for, anon_sym_RBRACK, anon_sym_RBRACE, - [61980] = 2, + [62617] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1597), 8, + ACTIONS(2293), 8, + anon_sym_RPAREN, anon_sym_COMMA, + anon_sym_as, anon_sym_if, + anon_sym_COLON, + anon_sym_PIPE, + anon_sym_RBRACK, anon_sym_RBRACE, - anon_sym_EQ, + [62631] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2284), 1, anon_sym_and, + ACTIONS(2286), 1, anon_sym_or, - anon_sym_COLON2, - sym_type_conversion, - [61994] = 2, + ACTIONS(2190), 6, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_if, + anon_sym_EQ, + anon_sym_SEMI, + [62649] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2311), 8, + ACTIONS(2112), 8, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, @@ -75483,47 +76440,208 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [62008] = 2, + [62663] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(2313), 8, + ACTIONS(2297), 1, + anon_sym_PIPE, + ACTIONS(2295), 7, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, anon_sym_if, anon_sym_COLON, - anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [62022] = 2, + [62679] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2315), 8, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, + ACTIONS(2284), 1, + anon_sym_and, + ACTIONS(2286), 1, + anon_sym_or, + ACTIONS(2299), 1, anon_sym_if, - anon_sym_COLON, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - [62036] = 6, - ACTIONS(2065), 1, + ACTIONS(2200), 5, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_EQ, + anon_sym_SEMI, + [62699] = 6, + ACTIONS(2086), 1, sym_comment, - ACTIONS(2317), 1, + ACTIONS(2301), 1, anon_sym_LBRACE2, - ACTIONS(2322), 1, + ACTIONS(2306), 1, anon_sym_BSLASH, - ACTIONS(2325), 1, + ACTIONS(2309), 1, sym__string_end, - STATE(1133), 2, + STATE(1119), 2, sym__not_escape_sequence, aux_sym_string_content_repeat1, - ACTIONS(2319), 3, + ACTIONS(2303), 3, sym__string_content, sym__escape_interpolation, sym_escape_sequence, - [62058] = 2, + [62721] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2262), 1, + anon_sym_if, + ACTIONS(2266), 1, + anon_sym_and, + ACTIONS(2268), 1, + anon_sym_or, + ACTIONS(2311), 5, + anon_sym_COMMA, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_COLON2, + sym_type_conversion, + [62741] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2284), 1, + anon_sym_and, + ACTIONS(2286), 1, + anon_sym_or, + ACTIONS(2299), 1, + anon_sym_if, + ACTIONS(2186), 5, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_EQ, + anon_sym_SEMI, + [62761] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2315), 1, + anon_sym_COMMA, + STATE(1113), 1, + aux_sym_for_in_clause_repeat1, + ACTIONS(2313), 6, + anon_sym_RPAREN, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACK, + anon_sym_RBRACE, + [62779] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2284), 1, + anon_sym_and, + ACTIONS(2286), 1, + anon_sym_or, + ACTIONS(2212), 6, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_if, + anon_sym_EQ, + anon_sym_SEMI, + [62797] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2317), 8, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + [62811] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2319), 5, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_RBRACE, + [62831] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1558), 8, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_if, + anon_sym_EQ, + anon_sym_and, + anon_sym_or, + anon_sym_SEMI, + [62845] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2321), 8, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + [62859] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2323), 8, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + [62873] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2071), 8, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_if, + anon_sym_EQ, + anon_sym_and, + anon_sym_or, + anon_sym_SEMI, + [62887] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2325), 8, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + [62901] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1558), 8, + anon_sym_COMMA, + anon_sym_if, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_and, + anon_sym_or, + anon_sym_COLON2, + sym_type_conversion, + [62915] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(2327), 8, @@ -75535,36 +76653,48 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [62072] = 2, + [62929] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2050), 8, - sym__newline, - anon_sym_from, + ACTIONS(2329), 8, + anon_sym_RPAREN, anon_sym_COMMA, + anon_sym_as, anon_sym_if, - anon_sym_EQ, - anon_sym_and, - anon_sym_or, - anon_sym_SEMI, - [62086] = 4, + anon_sym_COLON, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + [62943] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2331), 1, + ACTIONS(2331), 8, + anon_sym_RPAREN, anon_sym_COMMA, - STATE(1162), 1, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + [62957] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2335), 1, + anon_sym_COMMA, + STATE(1173), 1, aux_sym_for_in_clause_repeat1, - ACTIONS(2329), 6, + ACTIONS(2333), 6, anon_sym_RPAREN, anon_sym_if, anon_sym_async, anon_sym_for, anon_sym_RBRACK, anon_sym_RBRACE, - [62104] = 2, + [62975] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2333), 8, + ACTIONS(2255), 8, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, @@ -75573,75 +76703,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [62118] = 2, + [62989] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(2335), 8, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - [62132] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2091), 1, - anon_sym_DOT, - ACTIONS(2093), 1, - anon_sym_LPAREN, - ACTIONS(2337), 1, - anon_sym_EQ, - STATE(1042), 1, - aux_sym_match_value_pattern_repeat1, - ACTIONS(2095), 4, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_PIPE, - [62154] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2097), 8, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - [62168] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2259), 1, - anon_sym_if, - ACTIONS(2261), 1, + ACTIONS(2284), 1, anon_sym_and, - ACTIONS(2263), 1, + ACTIONS(2286), 1, anon_sym_or, - ACTIONS(2244), 5, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_EQ, - anon_sym_SEMI, - [62188] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2341), 1, - anon_sym_PIPE, - ACTIONS(2339), 7, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, + ACTIONS(2299), 1, anon_sym_if, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_RBRACE, - [62204] = 2, + ACTIONS(2337), 1, + anon_sym_from, + ACTIONS(2339), 1, + anon_sym_COMMA, + STATE(1288), 1, + aux_sym_expression_list_repeat1, + ACTIONS(2341), 2, + sym__newline, + anon_sym_SEMI, + [63015] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(2343), 8, @@ -75653,153 +76733,127 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [62218] = 5, + [63029] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2259), 1, - anon_sym_if, - ACTIONS(2261), 1, + ACTIONS(2284), 1, anon_sym_and, - ACTIONS(2263), 1, + ACTIONS(2286), 1, anon_sym_or, - ACTIONS(2177), 5, + ACTIONS(2299), 1, + anon_sym_if, + ACTIONS(2238), 5, sym__newline, anon_sym_from, anon_sym_COMMA, anon_sym_EQ, anon_sym_SEMI, - [62238] = 4, + [63049] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2261), 1, - anon_sym_and, - ACTIONS(2263), 1, - anon_sym_or, - ACTIONS(2199), 6, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_if, - anon_sym_EQ, - anon_sym_SEMI, - [62256] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2347), 1, - anon_sym_COMMA, - STATE(1162), 1, - aux_sym_for_in_clause_repeat1, - ACTIONS(2345), 6, + ACTIONS(2345), 8, anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, anon_sym_if, - anon_sym_async, - anon_sym_for, + anon_sym_COLON, + anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [62274] = 6, - ACTIONS(2065), 1, + [63063] = 2, + ACTIONS(3), 1, sym_comment, - ACTIONS(2349), 1, - anon_sym_LBRACE2, + ACTIONS(2347), 8, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + [63077] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2349), 8, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + [63091] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2351), 8, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + [63105] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2311), 5, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_RBRACE, + [63125] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2071), 8, + anon_sym_COMMA, + anon_sym_if, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_and, + anon_sym_or, + anon_sym_COLON2, + sym_type_conversion, + [63139] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(69), 1, + anon_sym_AT, ACTIONS(2353), 1, - anon_sym_BSLASH, + anon_sym_async, ACTIONS(2355), 1, - sym__string_end, - STATE(1133), 2, - sym__not_escape_sequence, - aux_sym_string_content_repeat1, - ACTIONS(2351), 3, - sym__string_content, - sym__escape_interpolation, - sym_escape_sequence, - [62296] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, + anon_sym_def, ACTIONS(2357), 1, - anon_sym_COMMA, - STATE(1232), 1, - aux_sym_expression_list_repeat1, - ACTIONS(2236), 3, - anon_sym_RPAREN, - anon_sym_RBRACK, - anon_sym_RBRACE, - [62320] = 4, + anon_sym_class, + STATE(534), 2, + sym_function_definition, + sym_class_definition, + STATE(1257), 2, + sym_decorator, + aux_sym_decorated_definition_repeat1, + [63163] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(2081), 1, + ACTIONS(2284), 1, anon_sym_and, - ACTIONS(2083), 1, - anon_sym_or, - ACTIONS(2199), 6, + ACTIONS(2176), 7, + sym__newline, + anon_sym_from, anon_sym_COMMA, anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACE, - [62338] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2071), 1, - anon_sym_if, - ACTIONS(2081), 1, - anon_sym_and, - ACTIONS(2083), 1, + anon_sym_EQ, anon_sym_or, - ACTIONS(2163), 5, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACE, - [62358] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2081), 1, - anon_sym_and, - ACTIONS(2083), 1, - anon_sym_or, - ACTIONS(2155), 6, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACE, - [62376] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2081), 1, - anon_sym_and, - ACTIONS(2159), 7, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACE, - anon_sym_or, - [62392] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2081), 1, - anon_sym_and, - ACTIONS(2083), 1, - anon_sym_or, - ACTIONS(2159), 6, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACE, - [62410] = 2, + anon_sym_SEMI, + [63179] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(2359), 8, @@ -75811,66 +76865,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [62424] = 4, + [63193] = 6, + ACTIONS(2086), 1, + sym_comment, + ACTIONS(2361), 1, + anon_sym_LBRACE2, + ACTIONS(2365), 1, + anon_sym_BSLASH, + ACTIONS(2367), 1, + sym__string_end, + STATE(1119), 2, + sym__not_escape_sequence, + aux_sym_string_content_repeat1, + ACTIONS(2363), 3, + sym__string_content, + sym__escape_interpolation, + sym_escape_sequence, + [63215] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2108), 1, - anon_sym_and, - ACTIONS(2110), 1, - anon_sym_or, - ACTIONS(2361), 6, - anon_sym_RPAREN, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACK, - anon_sym_RBRACE, - [62442] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2259), 1, - anon_sym_if, - ACTIONS(2261), 1, - anon_sym_and, - ACTIONS(2263), 1, - anon_sym_or, - ACTIONS(2163), 5, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_EQ, - anon_sym_SEMI, - [62462] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2071), 1, - anon_sym_if, - ACTIONS(2081), 1, - anon_sym_and, - ACTIONS(2083), 1, - anon_sym_or, - ACTIONS(2177), 5, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACE, - [62482] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1597), 8, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_if, - anon_sym_EQ, - anon_sym_and, - anon_sym_or, - anon_sym_SEMI, - [62496] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2363), 8, + ACTIONS(2369), 8, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, @@ -75879,10 +76893,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [62510] = 2, + [63229] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2365), 8, + ACTIONS(2371), 8, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, @@ -75891,10 +76905,94 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [62524] = 2, + [63243] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2367), 8, + ACTIONS(2266), 1, + anon_sym_and, + ACTIONS(2268), 1, + anon_sym_or, + ACTIONS(2212), 6, + anon_sym_COMMA, + anon_sym_if, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_COLON2, + sym_type_conversion, + [63261] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2102), 1, + anon_sym_and, + ACTIONS(2104), 1, + anon_sym_or, + ACTIONS(2212), 6, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACE, + [63279] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2092), 1, + anon_sym_if, + ACTIONS(2102), 1, + anon_sym_and, + ACTIONS(2104), 1, + anon_sym_or, + ACTIONS(2200), 5, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACE, + [63299] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2102), 1, + anon_sym_and, + ACTIONS(2104), 1, + anon_sym_or, + ACTIONS(2190), 6, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACE, + [63317] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2102), 1, + anon_sym_and, + ACTIONS(2176), 7, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACE, + anon_sym_or, + [63333] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2102), 1, + anon_sym_and, + ACTIONS(2104), 1, + anon_sym_or, + ACTIONS(2176), 6, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACE, + [63351] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2373), 8, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_as, @@ -75903,6467 +77001,7023 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE, anon_sym_RBRACK, anon_sym_RBRACE, - [62538] = 4, + [63365] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2371), 1, - anon_sym_COMMA, - STATE(1162), 1, - aux_sym_for_in_clause_repeat1, - ACTIONS(2369), 6, - anon_sym_RPAREN, + ACTIONS(2262), 1, anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACK, - anon_sym_RBRACE, - [62556] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2261), 1, + ACTIONS(2266), 1, anon_sym_and, - ACTIONS(2263), 1, + ACTIONS(2268), 1, anon_sym_or, - ACTIONS(2155), 6, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_if, - anon_sym_EQ, - anon_sym_SEMI, - [62574] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2234), 1, - anon_sym_if, - ACTIONS(2238), 1, - anon_sym_and, - ACTIONS(2240), 1, - anon_sym_or, - ACTIONS(2281), 5, + ACTIONS(2238), 5, anon_sym_COMMA, anon_sym_RBRACE, anon_sym_EQ, anon_sym_COLON2, sym_type_conversion, - [62594] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2238), 1, - anon_sym_and, - ACTIONS(2240), 1, - anon_sym_or, - ACTIONS(2199), 6, - anon_sym_COMMA, - anon_sym_if, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COLON2, - sym_type_conversion, - [62612] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2301), 5, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_RBRACE, - [62632] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2374), 8, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_PIPE, - anon_sym_RBRACK, - anon_sym_RBRACE, - [62646] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2050), 8, - anon_sym_COMMA, - anon_sym_if, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_and, - anon_sym_or, - anon_sym_COLON2, - sym_type_conversion, - [62660] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2376), 1, - sym_identifier, - ACTIONS(2378), 1, - anon_sym_LPAREN, - ACTIONS(2380), 1, - anon_sym_STAR, - STATE(1290), 1, - sym_dotted_name, - STATE(1368), 1, - sym_aliased_import, - STATE(1532), 1, - sym__import_list, - STATE(1533), 1, - sym_wildcard_import, - [62685] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2075), 1, - anon_sym_async, - ACTIONS(2077), 1, - anon_sym_for, - ACTIONS(2382), 1, - anon_sym_COMMA, - ACTIONS(2384), 1, - anon_sym_RBRACE, - STATE(1100), 1, - sym_for_in_clause, - STATE(1491), 1, - aux_sym_dictionary_repeat1, - STATE(1650), 1, - sym__comprehension_clauses, - [62710] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2386), 1, - anon_sym_except, - ACTIONS(2388), 1, - anon_sym_finally, - STATE(553), 1, - sym_finally_clause, - STATE(279), 2, - sym_except_clause, - aux_sym_try_statement_repeat1, - STATE(283), 2, - sym_except_group_clause, - aux_sym_try_statement_repeat2, - [62731] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2390), 4, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_EQ, - [62750] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2386), 1, - anon_sym_except, - ACTIONS(2388), 1, - anon_sym_finally, - STATE(562), 1, - sym_finally_clause, - STATE(266), 2, - sym_except_clause, - aux_sym_try_statement_repeat1, - STATE(267), 2, - sym_except_group_clause, - aux_sym_try_statement_repeat2, - [62771] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2392), 4, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACK, - anon_sym_RBRACE, - [62790] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2259), 1, - anon_sym_if, - ACTIONS(2261), 1, - anon_sym_and, - ACTIONS(2263), 1, - anon_sym_or, - ACTIONS(2394), 1, - anon_sym_COMMA, - STATE(1360), 1, - aux_sym_print_statement_repeat1, - ACTIONS(2396), 2, - sym__newline, - anon_sym_SEMI, - [62813] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1597), 7, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_and, - anon_sym_or, - [62826] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2259), 1, - anon_sym_if, - ACTIONS(2261), 1, - anon_sym_and, - ACTIONS(2263), 1, - anon_sym_or, - ACTIONS(2398), 1, - anon_sym_COMMA, - STATE(1365), 1, - aux_sym_assert_statement_repeat1, - ACTIONS(2400), 2, - sym__newline, - anon_sym_SEMI, - [62849] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2402), 7, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACK, - anon_sym_RBRACE, - [62862] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2259), 1, - anon_sym_if, - ACTIONS(2261), 1, - anon_sym_and, - ACTIONS(2263), 1, - anon_sym_or, - ACTIONS(2295), 1, - anon_sym_COMMA, - STATE(1260), 1, - aux_sym_expression_list_repeat1, - ACTIONS(2404), 2, - sym__newline, - anon_sym_SEMI, - [62885] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2259), 1, - anon_sym_if, - ACTIONS(2261), 1, - anon_sym_and, - ACTIONS(2263), 1, - anon_sym_or, - ACTIONS(2295), 1, - anon_sym_COMMA, - STATE(1260), 1, - aux_sym_expression_list_repeat1, - ACTIONS(2406), 2, - sym__newline, - anon_sym_SEMI, - [62908] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2408), 1, - anon_sym_except, - ACTIONS(2410), 1, - anon_sym_finally, - STATE(535), 1, - sym_finally_clause, - STATE(268), 2, - sym_except_clause, - aux_sym_try_statement_repeat1, - STATE(280), 2, - sym_except_group_clause, - aux_sym_try_statement_repeat2, - [62929] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2412), 1, - sym_identifier, - ACTIONS(2414), 1, - anon_sym_STAR, - ACTIONS(2416), 1, - anon_sym_STAR_STAR, - STATE(1524), 4, - sym_typevar_parameter, - sym_typevartuple_parameter, - sym_paramspec_parameter, - sym__type_parameter, - [62948] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2234), 1, - anon_sym_if, - ACTIONS(2238), 1, - anon_sym_and, - ACTIONS(2240), 1, - anon_sym_or, - ACTIONS(2418), 4, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COLON2, - sym_type_conversion, - [62967] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2422), 1, - anon_sym_as, - ACTIONS(2420), 6, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_RBRACE, - [62982] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2259), 1, - anon_sym_if, - ACTIONS(2261), 1, - anon_sym_and, - ACTIONS(2263), 1, - anon_sym_or, - ACTIONS(2295), 1, - anon_sym_COMMA, - STATE(1260), 1, - aux_sym_expression_list_repeat1, - ACTIONS(2424), 2, - sym__newline, - anon_sym_SEMI, - [63005] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2426), 1, - anon_sym_COMMA, - ACTIONS(2428), 1, - anon_sym_as, - ACTIONS(2430), 1, - anon_sym_if, - ACTIONS(2432), 1, - anon_sym_COLON, - ACTIONS(2434), 1, - anon_sym_and, - ACTIONS(2436), 1, - anon_sym_or, - STATE(1338), 1, - aux_sym_exception_list_repeat1, - [63030] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2408), 1, - anon_sym_except, - ACTIONS(2410), 1, - anon_sym_finally, - STATE(607), 1, - sym_finally_clause, - STATE(275), 2, - sym_except_clause, - aux_sym_try_statement_repeat1, - STATE(287), 2, - sym_except_group_clause, - aux_sym_try_statement_repeat2, - [63051] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2434), 1, - anon_sym_and, - ACTIONS(2436), 1, - anon_sym_or, - ACTIONS(2199), 5, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - [63068] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2418), 4, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACK, - anon_sym_RBRACE, - [63087] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2075), 1, - anon_sym_async, - ACTIONS(2077), 1, - anon_sym_for, - ACTIONS(2438), 1, - anon_sym_COMMA, - ACTIONS(2440), 1, - anon_sym_RBRACE, - STATE(1100), 1, - sym_for_in_clause, - STATE(1409), 1, - aux_sym_dictionary_repeat1, - STATE(1718), 1, - sym__comprehension_clauses, - [63112] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2259), 1, - anon_sym_if, - ACTIONS(2261), 1, - anon_sym_and, - ACTIONS(2263), 1, - anon_sym_or, - ACTIONS(2301), 4, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_SEMI, - [63131] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2430), 1, - anon_sym_if, - ACTIONS(2434), 1, - anon_sym_and, - ACTIONS(2436), 1, - anon_sym_or, - ACTIONS(2163), 4, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_COLON, - [63150] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2434), 1, - anon_sym_and, - ACTIONS(2436), 1, - anon_sym_or, - ACTIONS(2155), 5, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - [63167] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2434), 1, - anon_sym_and, - ACTIONS(2159), 6, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_or, - [63182] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2434), 1, - anon_sym_and, - ACTIONS(2436), 1, - anon_sym_or, - ACTIONS(2159), 5, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - [63199] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2236), 7, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACK, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COLON2, - sym_type_conversion, - [63212] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2259), 1, - anon_sym_if, - ACTIONS(2261), 1, - anon_sym_and, - ACTIONS(2263), 1, - anon_sym_or, - ACTIONS(2398), 1, - anon_sym_COMMA, - STATE(1344), 1, - aux_sym_assert_statement_repeat1, - ACTIONS(2442), 2, - sym__newline, - anon_sym_SEMI, - [63235] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2075), 1, - anon_sym_async, - ACTIONS(2077), 1, - anon_sym_for, - ACTIONS(2444), 1, - anon_sym_COMMA, - ACTIONS(2446), 1, - anon_sym_RBRACE, - STATE(1100), 1, - sym_for_in_clause, - STATE(1427), 1, - aux_sym_dictionary_repeat1, - STATE(1631), 1, - sym__comprehension_clauses, - [63260] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2259), 1, - anon_sym_if, - ACTIONS(2261), 1, - anon_sym_and, - ACTIONS(2263), 1, - anon_sym_or, - ACTIONS(2281), 4, - sym__newline, - anon_sym_from, - anon_sym_COMMA, - anon_sym_SEMI, - [63279] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2430), 1, - anon_sym_if, - ACTIONS(2434), 1, - anon_sym_and, - ACTIONS(2436), 1, - anon_sym_or, - ACTIONS(2450), 1, - anon_sym_as, - ACTIONS(2448), 3, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - [63300] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2452), 1, - sym_identifier, - ACTIONS(2454), 1, - anon_sym_DOT, - ACTIONS(2456), 1, - anon_sym___future__, - STATE(1336), 1, - aux_sym_import_prefix_repeat1, - STATE(1402), 1, - sym_import_prefix, - STATE(1709), 2, - sym_relative_import, - sym_dotted_name, - [63323] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2259), 1, - anon_sym_if, - ACTIONS(2261), 1, - anon_sym_and, - ACTIONS(2263), 1, - anon_sym_or, - ACTIONS(2295), 1, - anon_sym_COMMA, - STATE(1260), 1, - aux_sym_expression_list_repeat1, - ACTIONS(2236), 2, - sym__newline, - anon_sym_SEMI, - [63346] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2458), 7, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACK, - anon_sym_RBRACE, - [63359] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2426), 1, - anon_sym_COMMA, - ACTIONS(2430), 1, - anon_sym_if, - ACTIONS(2434), 1, - anon_sym_and, - ACTIONS(2436), 1, - anon_sym_or, - ACTIONS(2460), 1, - anon_sym_as, - ACTIONS(2462), 1, - anon_sym_COLON, - STATE(1338), 1, - aux_sym_exception_list_repeat1, - [63384] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2426), 1, - anon_sym_COMMA, - ACTIONS(2430), 1, - anon_sym_if, - ACTIONS(2434), 1, - anon_sym_and, - ACTIONS(2436), 1, - anon_sym_or, - ACTIONS(2464), 1, - anon_sym_as, - ACTIONS(2466), 1, - anon_sym_COLON, - STATE(1338), 1, - aux_sym_exception_list_repeat1, - [63409] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2412), 1, - sym_identifier, - ACTIONS(2414), 1, - anon_sym_STAR, - ACTIONS(2416), 1, - anon_sym_STAR_STAR, - STATE(1416), 4, - sym_typevar_parameter, - sym_typevartuple_parameter, - sym_paramspec_parameter, - sym__type_parameter, - [63428] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2426), 1, - anon_sym_COMMA, - ACTIONS(2430), 1, - anon_sym_if, - ACTIONS(2434), 1, - anon_sym_and, - ACTIONS(2436), 1, - anon_sym_or, - ACTIONS(2468), 1, - anon_sym_as, - ACTIONS(2470), 1, - anon_sym_COLON, - STATE(1338), 1, - aux_sym_exception_list_repeat1, - [63453] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2430), 1, - anon_sym_if, - ACTIONS(2434), 1, - anon_sym_and, - ACTIONS(2436), 1, - anon_sym_or, - ACTIONS(2177), 4, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_COLON, - [63472] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2430), 1, - anon_sym_if, - ACTIONS(2434), 1, - anon_sym_and, - ACTIONS(2436), 1, - anon_sym_or, - ACTIONS(2181), 4, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_COLON, - [63491] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2050), 7, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - anon_sym_if, - anon_sym_COLON, - anon_sym_and, - anon_sym_or, - [63504] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2369), 7, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_async, - anon_sym_for, - anon_sym_RBRACK, - anon_sym_RBRACE, - [63517] = 8, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2075), 1, - anon_sym_async, - ACTIONS(2077), 1, - anon_sym_for, - ACTIONS(2472), 1, - anon_sym_COMMA, - ACTIONS(2474), 1, - anon_sym_RBRACE, - STATE(1100), 1, - sym_for_in_clause, - STATE(1433), 1, - aux_sym_dictionary_repeat1, - STATE(1721), 1, - sym__comprehension_clauses, - [63542] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2259), 1, - anon_sym_if, - ACTIONS(2261), 1, - anon_sym_and, - ACTIONS(2263), 1, - anon_sym_or, - ACTIONS(2295), 1, - anon_sym_COMMA, - STATE(1260), 1, - aux_sym_expression_list_repeat1, - ACTIONS(2476), 2, - sym__newline, - anon_sym_SEMI, - [63565] = 5, + [63385] = 6, ACTIONS(3), 1, sym_comment, ACTIONS(2106), 1, - anon_sym_if, + anon_sym_DOT, ACTIONS(2108), 1, + anon_sym_LPAREN, + ACTIONS(2375), 1, + anon_sym_EQ, + STATE(1064), 1, + aux_sym_match_value_pattern_repeat1, + ACTIONS(2110), 4, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_PIPE, + [63407] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2284), 1, anon_sym_and, - ACTIONS(2110), 1, + ACTIONS(2286), 1, anon_sym_or, - ACTIONS(2478), 4, + ACTIONS(2299), 1, + anon_sym_if, + ACTIONS(2214), 5, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_EQ, + anon_sym_SEMI, + [63427] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2262), 1, + anon_sym_if, + ACTIONS(2266), 1, + anon_sym_and, + ACTIONS(2268), 1, + anon_sym_or, + ACTIONS(2200), 5, + anon_sym_COMMA, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_COLON2, + sym_type_conversion, + [63447] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2092), 1, + anon_sym_if, + ACTIONS(2102), 1, + anon_sym_and, + ACTIONS(2104), 1, + anon_sym_or, + ACTIONS(2214), 5, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACE, + [63467] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2266), 1, + anon_sym_and, + ACTIONS(2268), 1, + anon_sym_or, + ACTIONS(2190), 6, + anon_sym_COMMA, + anon_sym_if, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_COLON2, + sym_type_conversion, + [63485] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2266), 1, + anon_sym_and, + ACTIONS(2176), 7, + anon_sym_COMMA, + anon_sym_if, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_or, + anon_sym_COLON2, + sym_type_conversion, + [63501] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2092), 1, + anon_sym_if, + ACTIONS(2102), 1, + anon_sym_and, + ACTIONS(2104), 1, + anon_sym_or, + ACTIONS(2186), 5, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACE, + [63521] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2266), 1, + anon_sym_and, + ACTIONS(2268), 1, + anon_sym_or, + ACTIONS(2176), 6, + anon_sym_COMMA, + anon_sym_if, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_COLON2, + sym_type_conversion, + [63539] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2262), 1, + anon_sym_if, + ACTIONS(2266), 1, + anon_sym_and, + ACTIONS(2268), 1, + anon_sym_or, + ACTIONS(2214), 5, + anon_sym_COMMA, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_COLON2, + sym_type_conversion, + [63559] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2262), 1, + anon_sym_if, + ACTIONS(2266), 1, + anon_sym_and, + ACTIONS(2268), 1, + anon_sym_or, + ACTIONS(2319), 5, + anon_sym_COMMA, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_COLON2, + sym_type_conversion, + [63579] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2262), 1, + anon_sym_if, + ACTIONS(2266), 1, + anon_sym_and, + ACTIONS(2268), 1, + anon_sym_or, + ACTIONS(2186), 5, + anon_sym_COMMA, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_COLON2, + sym_type_conversion, + [63599] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2138), 1, + anon_sym_and, + ACTIONS(2140), 1, + anon_sym_or, + ACTIONS(2377), 6, + anon_sym_RPAREN, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACK, + anon_sym_RBRACE, + [63617] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(69), 1, + anon_sym_AT, + ACTIONS(2379), 1, + anon_sym_async, + ACTIONS(2381), 1, + anon_sym_def, + ACTIONS(2383), 1, + anon_sym_class, + STATE(605), 2, + sym_function_definition, + sym_class_definition, + STATE(1257), 2, + sym_decorator, + aux_sym_decorated_definition_repeat1, + [63641] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2387), 1, + anon_sym_COMMA, + STATE(1113), 1, + aux_sym_for_in_clause_repeat1, + ACTIONS(2385), 6, + anon_sym_RPAREN, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACK, + anon_sym_RBRACE, + [63659] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2391), 1, + anon_sym_COMMA, + STATE(1122), 1, + aux_sym_for_in_clause_repeat1, + ACTIONS(2389), 6, + anon_sym_RPAREN, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACK, + anon_sym_RBRACE, + [63677] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2393), 1, + anon_sym_COMMA, + STATE(1243), 1, + aux_sym_expression_list_repeat1, + ACTIONS(2276), 3, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_RBRACE, + [63701] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2395), 8, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_PIPE, + anon_sym_RBRACK, + anon_sym_RBRACE, + [63715] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2397), 1, + anon_sym_COMMA, + ACTIONS(2399), 1, + anon_sym_as, + ACTIONS(2401), 1, + anon_sym_if, + ACTIONS(2403), 1, + anon_sym_COLON, + ACTIONS(2405), 1, + anon_sym_and, + ACTIONS(2407), 1, + anon_sym_or, + STATE(1364), 1, + aux_sym_exception_list_repeat1, + [63740] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2409), 7, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACK, + anon_sym_RBRACE, + [63753] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2411), 4, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACK, + anon_sym_RBRACE, + [63772] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2413), 1, + sym_identifier, + ACTIONS(2415), 1, + anon_sym_LPAREN, + ACTIONS(2417), 1, + anon_sym_STAR, + STATE(1290), 1, + sym_dotted_name, + STATE(1327), 1, + sym_aliased_import, + STATE(1559), 1, + sym__import_list, + STATE(1561), 1, + sym_wildcard_import, + [63797] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2284), 1, + anon_sym_and, + ACTIONS(2286), 1, + anon_sym_or, + ACTIONS(2299), 1, + anon_sym_if, + ACTIONS(2339), 1, + anon_sym_COMMA, + STATE(1288), 1, + aux_sym_expression_list_repeat1, + ACTIONS(2419), 2, + sym__newline, + anon_sym_SEMI, + [63820] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2401), 1, + anon_sym_if, + ACTIONS(2405), 1, + anon_sym_and, + ACTIONS(2407), 1, + anon_sym_or, + ACTIONS(2200), 4, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_COLON, + [63839] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2421), 1, + anon_sym_except, + ACTIONS(2423), 1, + anon_sym_finally, + STATE(540), 1, + sym_finally_clause, + STATE(266), 2, + sym_except_group_clause, + aux_sym_try_statement_repeat2, + STATE(283), 2, + sym_except_clause, + aux_sym_try_statement_repeat1, + [63860] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2425), 1, + anon_sym_COMMA, + ACTIONS(2427), 1, + anon_sym_RBRACE, + STATE(1106), 1, + sym_for_in_clause, + STATE(1450), 1, + aux_sym_dictionary_repeat1, + STATE(1724), 1, + sym__comprehension_clauses, + [63885] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2413), 1, + sym_identifier, + ACTIONS(2417), 1, + anon_sym_STAR, + ACTIONS(2429), 1, + anon_sym_LPAREN, + STATE(1290), 1, + sym_dotted_name, + STATE(1327), 1, + sym_aliased_import, + STATE(1579), 1, + sym__import_list, + STATE(1580), 1, + sym_wildcard_import, + [63910] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2228), 1, + anon_sym_RPAREN, + ACTIONS(2230), 1, + anon_sym_COMMA, + STATE(1106), 1, + sym_for_in_clause, + STATE(1456), 1, + aux_sym_argument_list_repeat1, + STATE(1711), 1, + sym__comprehension_clauses, + [63935] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2090), 1, + anon_sym_COMMA, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2431), 1, + anon_sym_RPAREN, + STATE(1106), 1, + sym_for_in_clause, + STATE(1308), 1, + aux_sym__collection_elements_repeat1, + STATE(1618), 1, + sym__comprehension_clauses, + [63960] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2401), 1, + anon_sym_if, + ACTIONS(2405), 1, + anon_sym_and, + ACTIONS(2407), 1, + anon_sym_or, + ACTIONS(2214), 4, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_COLON, + [63979] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2405), 1, + anon_sym_and, + ACTIONS(2407), 1, + anon_sym_or, + ACTIONS(2190), 5, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + [63996] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2405), 1, + anon_sym_and, + ACTIONS(2176), 6, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_or, + [64011] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2284), 1, + anon_sym_and, + ACTIONS(2286), 1, + anon_sym_or, + ACTIONS(2299), 1, + anon_sym_if, + ACTIONS(2339), 1, + anon_sym_COMMA, + STATE(1288), 1, + aux_sym_expression_list_repeat1, + ACTIONS(2433), 2, + sym__newline, + anon_sym_SEMI, + [64034] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2401), 1, + anon_sym_if, + ACTIONS(2405), 1, + anon_sym_and, + ACTIONS(2407), 1, + anon_sym_or, + ACTIONS(2437), 1, + anon_sym_as, + ACTIONS(2435), 3, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + [64055] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2397), 1, + anon_sym_COMMA, + ACTIONS(2401), 1, + anon_sym_if, + ACTIONS(2405), 1, + anon_sym_and, + ACTIONS(2407), 1, + anon_sym_or, + ACTIONS(2439), 1, + anon_sym_as, + ACTIONS(2441), 1, + anon_sym_COLON, + STATE(1364), 1, + aux_sym_exception_list_repeat1, + [64080] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2443), 1, + anon_sym_COMMA, + ACTIONS(2445), 1, + anon_sym_RBRACE, + STATE(1106), 1, + sym_for_in_clause, + STATE(1466), 1, + aux_sym_dictionary_repeat1, + STATE(1680), 1, + sym__comprehension_clauses, + [64105] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2447), 1, + anon_sym_except, + ACTIONS(2449), 1, + anon_sym_finally, + STATE(564), 1, + sym_finally_clause, + STATE(281), 2, + sym_except_clause, + aux_sym_try_statement_repeat1, + STATE(282), 2, + sym_except_group_clause, + aux_sym_try_statement_repeat2, + [64126] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2194), 1, + anon_sym_RPAREN, + ACTIONS(2196), 1, + anon_sym_COMMA, + STATE(1106), 1, + sym_for_in_clause, + STATE(1472), 1, + aux_sym_argument_list_repeat1, + STATE(1673), 1, + sym__comprehension_clauses, + [64151] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2401), 1, + anon_sym_if, + ACTIONS(2405), 1, + anon_sym_and, + ACTIONS(2407), 1, + anon_sym_or, + ACTIONS(2186), 4, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_COLON, + [64170] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1558), 7, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_and, + anon_sym_or, + [64183] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2451), 4, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACK, + anon_sym_RBRACE, + [64202] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2453), 1, + sym_identifier, + ACTIONS(2455), 1, + anon_sym_STAR, + ACTIONS(2457), 1, + anon_sym_STAR_STAR, + STATE(1577), 4, + sym_typevar_parameter, + sym_typevartuple_parameter, + sym_paramspec_parameter, + sym__type_parameter, + [64221] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2405), 1, + anon_sym_and, + ACTIONS(2407), 1, + anon_sym_or, + ACTIONS(2176), 5, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + [64238] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2090), 1, + anon_sym_COMMA, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2100), 1, + anon_sym_RPAREN, + STATE(1106), 1, + sym_for_in_clause, + STATE(1308), 1, + aux_sym__collection_elements_repeat1, + STATE(1618), 1, + sym__comprehension_clauses, + [64263] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2090), 1, + anon_sym_COMMA, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2100), 1, + anon_sym_RBRACE, + STATE(1106), 1, + sym_for_in_clause, + STATE(1308), 1, + aux_sym__collection_elements_repeat1, + STATE(1728), 1, + sym__comprehension_clauses, + [64288] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2090), 1, + anon_sym_COMMA, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2100), 1, + anon_sym_RBRACK, + STATE(1106), 1, + sym_for_in_clause, + STATE(1308), 1, + aux_sym__collection_elements_repeat1, + STATE(1754), 1, + sym__comprehension_clauses, + [64313] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2459), 7, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACK, + anon_sym_RBRACE, + [64326] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2090), 1, + anon_sym_COMMA, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2100), 1, + anon_sym_RBRACE, + STATE(1106), 1, + sym_for_in_clause, + STATE(1308), 1, + aux_sym__collection_elements_repeat1, + STATE(1695), 1, + sym__comprehension_clauses, + [64351] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2461), 1, + anon_sym_COMMA, + ACTIONS(2463), 1, + anon_sym_RBRACE, + STATE(1106), 1, + sym_for_in_clause, + STATE(1449), 1, + aux_sym_dictionary_repeat1, + STATE(1665), 1, + sym__comprehension_clauses, + [64376] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2397), 1, + anon_sym_COMMA, + ACTIONS(2401), 1, + anon_sym_if, + ACTIONS(2405), 1, + anon_sym_and, + ACTIONS(2407), 1, + anon_sym_or, + ACTIONS(2465), 1, + anon_sym_as, + ACTIONS(2467), 1, + anon_sym_COLON, + STATE(1364), 1, + aux_sym_exception_list_repeat1, + [64401] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2397), 1, + anon_sym_COMMA, + ACTIONS(2401), 1, + anon_sym_if, + ACTIONS(2405), 1, + anon_sym_and, + ACTIONS(2407), 1, + anon_sym_or, + ACTIONS(2469), 1, + anon_sym_as, + ACTIONS(2471), 1, + anon_sym_COLON, + STATE(1364), 1, + aux_sym_exception_list_repeat1, + [64426] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2284), 1, + anon_sym_and, + ACTIONS(2286), 1, + anon_sym_or, + ACTIONS(2299), 1, + anon_sym_if, + ACTIONS(2339), 1, + anon_sym_COMMA, + STATE(1288), 1, + aux_sym_expression_list_repeat1, + ACTIONS(2276), 2, + sym__newline, + anon_sym_SEMI, + [64449] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2232), 1, + anon_sym_RPAREN, + ACTIONS(2234), 1, + anon_sym_COMMA, + STATE(1106), 1, + sym_for_in_clause, + STATE(1521), 1, + aux_sym_argument_list_repeat1, + STATE(1618), 1, + sym__comprehension_clauses, + [64474] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2222), 1, + anon_sym_RPAREN, + ACTIONS(2224), 1, + anon_sym_COMMA, + STATE(1106), 1, + sym_for_in_clause, + STATE(1412), 1, + aux_sym_argument_list_repeat1, + STATE(1628), 1, + sym__comprehension_clauses, + [64499] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2473), 1, + sym_identifier, + ACTIONS(2475), 1, + anon_sym_DOT, + ACTIONS(2477), 1, + anon_sym___future__, + STATE(1343), 1, + aux_sym_import_prefix_repeat1, + STATE(1462), 1, + sym_import_prefix, + STATE(1712), 2, + sym_relative_import, + sym_dotted_name, + [64522] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2405), 1, + anon_sym_and, + ACTIONS(2407), 1, + anon_sym_or, + ACTIONS(2212), 5, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + [64539] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2421), 1, + anon_sym_except, + ACTIONS(2423), 1, + anon_sym_finally, + STATE(556), 1, + sym_finally_clause, + STATE(267), 2, + sym_except_group_clause, + aux_sym_try_statement_repeat2, + STATE(275), 2, + sym_except_clause, + aux_sym_try_statement_repeat1, + [64560] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2447), 1, + anon_sym_except, + ACTIONS(2449), 1, + anon_sym_finally, + STATE(533), 1, + sym_finally_clause, + STATE(272), 2, + sym_except_group_clause, + aux_sym_try_statement_repeat2, + STATE(278), 2, + sym_except_clause, + aux_sym_try_statement_repeat1, + [64581] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2090), 1, + anon_sym_COMMA, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2100), 1, + anon_sym_RPAREN, + STATE(1106), 1, + sym_for_in_clause, + STATE(1308), 1, + aux_sym__collection_elements_repeat1, + STATE(1628), 1, + sym__comprehension_clauses, + [64606] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2090), 1, + anon_sym_COMMA, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2100), 1, + anon_sym_RBRACK, + STATE(1106), 1, + sym_for_in_clause, + STATE(1308), 1, + aux_sym__collection_elements_repeat1, + STATE(1722), 1, + sym__comprehension_clauses, + [64631] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2284), 1, + anon_sym_and, + ACTIONS(2286), 1, + anon_sym_or, + ACTIONS(2299), 1, + anon_sym_if, + ACTIONS(2311), 4, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_SEMI, + [64650] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2284), 1, + anon_sym_and, + ACTIONS(2286), 1, + anon_sym_or, + ACTIONS(2299), 1, + anon_sym_if, + ACTIONS(2319), 4, + sym__newline, + anon_sym_from, + anon_sym_COMMA, + anon_sym_SEMI, + [64669] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2262), 1, + anon_sym_if, + ACTIONS(2266), 1, + anon_sym_and, + ACTIONS(2268), 1, + anon_sym_or, + ACTIONS(2451), 4, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_COLON2, + sym_type_conversion, + [64688] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2288), 7, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACK, + anon_sym_RBRACE, + [64701] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2284), 1, + anon_sym_and, + ACTIONS(2286), 1, + anon_sym_or, + ACTIONS(2299), 1, + anon_sym_if, + ACTIONS(2479), 1, + anon_sym_COMMA, + STATE(1380), 1, + aux_sym_print_statement_repeat1, + ACTIONS(2481), 2, + sym__newline, + anon_sym_SEMI, + [64724] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2136), 1, + anon_sym_if, + ACTIONS(2138), 1, + anon_sym_and, + ACTIONS(2140), 1, + anon_sym_or, + ACTIONS(2483), 4, anon_sym_COMMA, anon_sym_async, anon_sym_for, anon_sym_RBRACE, - [63584] = 4, + [64743] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(2480), 1, + ACTIONS(2284), 1, + anon_sym_and, + ACTIONS(2286), 1, + anon_sym_or, + ACTIONS(2299), 1, + anon_sym_if, + ACTIONS(2485), 1, anon_sym_COMMA, - STATE(1221), 1, - aux_sym_expression_list_repeat1, - ACTIONS(2482), 4, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COLON2, - sym_type_conversion, - [63600] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2091), 1, - anon_sym_DOT, - STATE(1241), 1, - aux_sym_match_value_pattern_repeat1, - ACTIONS(2484), 4, - anon_sym_import, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - [63616] = 3, - ACTIONS(2065), 1, - sym_comment, - ACTIONS(2486), 2, - anon_sym_LBRACE2, - anon_sym_BSLASH, - ACTIONS(2488), 4, - sym__string_content, - sym__string_end, - sym__escape_interpolation, - sym_escape_sequence, - [63630] = 3, - ACTIONS(2065), 1, - sym_comment, - ACTIONS(2490), 2, - anon_sym_LBRACE2, - anon_sym_BSLASH, - ACTIONS(2492), 4, - sym__string_content, - sym__string_end, - sym__escape_interpolation, - sym_escape_sequence, - [63644] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2494), 1, - anon_sym_DOT, - STATE(1233), 1, - aux_sym_match_value_pattern_repeat1, - ACTIONS(2484), 4, + STATE(1401), 1, + aux_sym_assert_statement_repeat1, + ACTIONS(2487), 2, sym__newline, - anon_sym_COMMA, - anon_sym_as, anon_sym_SEMI, - [63660] = 6, + [64766] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(2498), 1, - anon_sym_COLON, - ACTIONS(2500), 1, - anon_sym_EQ, - STATE(1327), 1, - sym__type_bound, - STATE(1529), 1, - sym__type_param_default, - ACTIONS(2496), 2, + ACTIONS(2090), 1, anon_sym_COMMA, - anon_sym_RBRACK, - [63680] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2502), 1, - anon_sym_COMMA, - STATE(1221), 1, - aux_sym_expression_list_repeat1, - ACTIONS(2505), 4, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COLON2, - sym_type_conversion, - [63696] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2507), 1, - anon_sym_COMMA, - STATE(1222), 1, - aux_sym_expression_list_repeat1, - ACTIONS(2505), 4, - anon_sym_RPAREN, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_RBRACE, - [63712] = 3, - ACTIONS(2065), 1, - sym_comment, - ACTIONS(2510), 2, - anon_sym_LBRACE2, - anon_sym_BSLASH, - ACTIONS(2512), 4, - sym__string_content, - sym__string_end, - sym__escape_interpolation, - sym_escape_sequence, - [63726] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2259), 1, - anon_sym_if, - ACTIONS(2261), 1, - anon_sym_and, - ACTIONS(2263), 1, - anon_sym_or, - ACTIONS(2514), 3, - sym__newline, - anon_sym_COMMA, - anon_sym_SEMI, - [63744] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2171), 1, - anon_sym_RPAREN, - ACTIONS(2173), 1, - anon_sym_COMMA, - ACTIONS(2179), 1, - anon_sym_if, - STATE(1451), 1, - aux_sym_argument_list_repeat1, - [63766] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2259), 1, - anon_sym_if, - ACTIONS(2261), 1, - anon_sym_and, - ACTIONS(2263), 1, - anon_sym_or, - ACTIONS(2516), 3, - sym__newline, - anon_sym_COMMA, - anon_sym_SEMI, - [63784] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2259), 1, - anon_sym_if, - ACTIONS(2261), 1, - anon_sym_and, - ACTIONS(2263), 1, - anon_sym_or, - ACTIONS(2518), 3, - sym__newline, - anon_sym_COMMA, - anon_sym_SEMI, - [63802] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2520), 3, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - [63820] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2522), 1, - anon_sym_COMMA, - STATE(1222), 1, - aux_sym_expression_list_repeat1, - ACTIONS(2482), 4, - anon_sym_RPAREN, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_RBRACE, - [63836] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2357), 1, - anon_sym_COMMA, - ACTIONS(2524), 1, - anon_sym_COLON, - STATE(1232), 1, - aux_sym_expression_list_repeat1, - [63858] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2526), 3, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - [63876] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2528), 1, - anon_sym_COMMA, - STATE(1222), 1, - aux_sym_expression_list_repeat1, - ACTIONS(2482), 4, - anon_sym_RPAREN, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_RBRACE, - [63892] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2494), 1, - anon_sym_DOT, - STATE(1234), 1, - aux_sym_match_value_pattern_repeat1, - ACTIONS(2530), 4, - sym__newline, - anon_sym_COMMA, - anon_sym_as, - anon_sym_SEMI, - [63908] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2532), 1, - anon_sym_DOT, - STATE(1234), 1, - aux_sym_match_value_pattern_repeat1, - ACTIONS(2054), 4, - sym__newline, - anon_sym_COMMA, - anon_sym_as, - anon_sym_SEMI, - [63924] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2357), 1, - anon_sym_COMMA, - ACTIONS(2535), 1, - anon_sym_COLON, - STATE(1232), 1, - aux_sym_expression_list_repeat1, - [63946] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2357), 1, - anon_sym_COMMA, - ACTIONS(2537), 1, - anon_sym_COLON, - STATE(1232), 1, - aux_sym_expression_list_repeat1, - [63968] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2357), 1, - anon_sym_COMMA, - ACTIONS(2539), 1, - anon_sym_COLON, - STATE(1232), 1, - aux_sym_expression_list_repeat1, - [63990] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2541), 3, - anon_sym_COMMA, - anon_sym_RBRACK, - anon_sym_EQ, - [64008] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2095), 6, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_RBRACE, - [64020] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2357), 1, - anon_sym_COMMA, - ACTIONS(2543), 1, - anon_sym_COLON, - STATE(1232), 1, - aux_sym_expression_list_repeat1, - [64042] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2091), 1, - anon_sym_DOT, - STATE(1032), 1, - aux_sym_match_value_pattern_repeat1, - ACTIONS(2530), 4, - anon_sym_import, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_as, - [64058] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2547), 1, - anon_sym_COMMA, - STATE(1242), 1, - aux_sym_open_sequence_match_pattern_repeat1, - ACTIONS(2545), 4, - anon_sym_RPAREN, - anon_sym_if, - anon_sym_COLON, - anon_sym_RBRACK, - [64074] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2430), 1, - anon_sym_if, - ACTIONS(2434), 1, - anon_sym_and, - ACTIONS(2436), 1, - anon_sym_or, - ACTIONS(2550), 3, - anon_sym_COMMA, - anon_sym_as, - anon_sym_COLON, - [64092] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2552), 6, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_RBRACE, - [64104] = 3, - ACTIONS(2065), 1, - sym_comment, - ACTIONS(2554), 2, - anon_sym_LBRACE2, - anon_sym_BSLASH, - ACTIONS(2556), 4, - sym__string_content, - sym__string_end, - sym__escape_interpolation, - sym_escape_sequence, - [64118] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2560), 1, - anon_sym_COLON, - ACTIONS(2558), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - [64138] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2564), 1, - anon_sym_COLON, - ACTIONS(2562), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - [64158] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2568), 1, - anon_sym_AT, - STATE(1248), 2, - sym_decorator, - aux_sym_decorated_definition_repeat1, - ACTIONS(2566), 3, + ACTIONS(2096), 1, anon_sym_async, - anon_sym_def, - anon_sym_class, - [64174] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2573), 1, - anon_sym_COLON, - ACTIONS(2571), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - [64194] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2259), 1, - anon_sym_if, - ACTIONS(2261), 1, - anon_sym_and, - ACTIONS(2263), 1, - anon_sym_or, - ACTIONS(2390), 3, - sym__newline, - anon_sym_EQ, - anon_sym_SEMI, - [64212] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2575), 1, - anon_sym_COMMA, - STATE(1221), 1, - aux_sym_expression_list_repeat1, - ACTIONS(2482), 4, - anon_sym_RBRACE, - anon_sym_EQ, - anon_sym_COLON2, - sym_type_conversion, - [64228] = 3, - ACTIONS(2065), 1, - sym_comment, - ACTIONS(2577), 2, - anon_sym_LBRACE2, - anon_sym_BSLASH, - ACTIONS(2579), 4, - sym__string_content, - sym__string_end, - sym__escape_interpolation, - sym_escape_sequence, - [64242] = 3, - ACTIONS(2065), 1, - sym_comment, - ACTIONS(2581), 2, - anon_sym_LBRACE2, - anon_sym_BSLASH, - ACTIONS(2583), 4, - sym__string_content, - sym__string_end, - sym__escape_interpolation, - sym_escape_sequence, - [64256] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2357), 1, - anon_sym_COMMA, - ACTIONS(2585), 1, - anon_sym_COLON, - STATE(1232), 1, - aux_sym_expression_list_repeat1, - [64278] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2376), 1, - sym_identifier, - STATE(1306), 1, - sym_dotted_name, - STATE(1486), 1, - sym_aliased_import, - ACTIONS(2587), 2, - sym__newline, - anon_sym_SEMI, - [64295] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2589), 1, - anon_sym_LPAREN, - ACTIONS(2591), 1, - anon_sym_COLON, - ACTIONS(2593), 1, - anon_sym_LBRACK, - STATE(1453), 1, - sym_type_parameters, - STATE(1601), 1, - sym_argument_list, - [64314] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2069), 1, - anon_sym_COMMA, - STATE(1259), 1, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2100), 1, + anon_sym_RPAREN, + STATE(1106), 1, + sym_for_in_clause, + STATE(1308), 1, aux_sym__collection_elements_repeat1, - ACTIONS(2079), 3, - anon_sym_RPAREN, - anon_sym_RBRACK, - anon_sym_RBRACE, - [64329] = 5, + STATE(1711), 1, + sym__comprehension_clauses, + [64791] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(2259), 1, - anon_sym_if, - ACTIONS(2261), 1, - anon_sym_and, - ACTIONS(2263), 1, - anon_sym_or, - ACTIONS(2418), 2, - sym__newline, - anon_sym_SEMI, - [64346] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2597), 1, + ACTIONS(2090), 1, anon_sym_COMMA, - STATE(1286), 1, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2100), 1, + anon_sym_RBRACK, + STATE(1106), 1, + sym_for_in_clause, + STATE(1308), 1, aux_sym__collection_elements_repeat1, - ACTIONS(2595), 3, - anon_sym_RPAREN, - anon_sym_RBRACK, + STATE(1713), 1, + sym__comprehension_clauses, + [64816] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2090), 1, + anon_sym_COMMA, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2100), 1, anon_sym_RBRACE, - [64361] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2599), 1, - anon_sym_COMMA, - STATE(1280), 1, - aux_sym_expression_list_repeat1, - ACTIONS(2482), 3, - sym__newline, - anon_sym_from, - anon_sym_SEMI, - [64376] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2601), 2, - anon_sym_RPAREN, - anon_sym_COMMA, - [64393] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2603), 2, - anon_sym_RPAREN, - anon_sym_COMMA, - [64410] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2605), 5, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_RBRACK, - [64421] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2607), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - [64438] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2609), 1, - anon_sym_RBRACE, - ACTIONS(2611), 1, - anon_sym_EQ, - ACTIONS(2613), 1, - anon_sym_COLON2, - ACTIONS(2615), 1, - sym_type_conversion, - STATE(1652), 1, - sym_format_specifier, - [64457] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2617), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - [64474] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2281), 5, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - anon_sym_RBRACK, - anon_sym_RBRACE, - [64485] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2619), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - [64502] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2259), 1, - anon_sym_if, - ACTIONS(2261), 1, - anon_sym_and, - ACTIONS(2263), 1, - anon_sym_or, - ACTIONS(2621), 2, - sym__newline, - anon_sym_SEMI, - [64519] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2623), 1, - anon_sym_COMMA, - STATE(1286), 1, + STATE(1106), 1, + sym_for_in_clause, + STATE(1308), 1, aux_sym__collection_elements_repeat1, - ACTIONS(2595), 3, - anon_sym_RPAREN, - anon_sym_RBRACK, - anon_sym_RBRACE, - [64534] = 5, + STATE(1717), 1, + sym__comprehension_clauses, + [64841] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(2376), 1, - sym_identifier, - STATE(1306), 1, - sym_dotted_name, - STATE(1486), 1, - sym_aliased_import, - ACTIONS(2625), 2, - sym__newline, - anon_sym_SEMI, - [64551] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2376), 1, - sym_identifier, - ACTIONS(2627), 1, - anon_sym_LPAREN, - STATE(1290), 1, - sym_dotted_name, - STATE(1368), 1, - sym_aliased_import, - STATE(1527), 1, - sym__import_list, - [64570] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2281), 5, + ACTIONS(2090), 1, anon_sym_COMMA, - anon_sym_RBRACE, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2100), 1, + anon_sym_RPAREN, + STATE(1106), 1, + sym_for_in_clause, + STATE(1308), 1, + aux_sym__collection_elements_repeat1, + STATE(1673), 1, + sym__comprehension_clauses, + [64866] = 8, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2090), 1, + anon_sym_COMMA, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2100), 1, + anon_sym_RBRACK, + STATE(1106), 1, + sym_for_in_clause, + STATE(1308), 1, + aux_sym__collection_elements_repeat1, + STATE(1675), 1, + sym__comprehension_clauses, + [64891] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2489), 4, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, anon_sym_EQ, - anon_sym_COLON2, - sym_type_conversion, - [64581] = 5, + [64910] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2629), 2, + ACTIONS(2090), 1, + anon_sym_COMMA, + ACTIONS(2096), 1, + anon_sym_async, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2100), 1, + anon_sym_RBRACE, + STATE(1106), 1, + sym_for_in_clause, + STATE(1308), 1, + aux_sym__collection_elements_repeat1, + STATE(1676), 1, + sym__comprehension_clauses, + [64935] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2071), 7, anon_sym_RPAREN, anon_sym_COMMA, - [64598] = 5, + anon_sym_as, + anon_sym_if, + anon_sym_COLON, + anon_sym_and, + anon_sym_or, + [64948] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2376), 1, + ACTIONS(2453), 1, sym_identifier, - STATE(1306), 1, - sym_dotted_name, - STATE(1486), 1, - sym_aliased_import, - ACTIONS(2625), 2, - sym__newline, - anon_sym_SEMI, - [64615] = 5, + ACTIONS(2455), 1, + anon_sym_STAR, + ACTIONS(2457), 1, + anon_sym_STAR_STAR, + STATE(1409), 4, + sym_typevar_parameter, + sym_typevartuple_parameter, + sym_paramspec_parameter, + sym__type_parameter, + [64967] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(2161), 1, + ACTIONS(2284), 1, anon_sym_and, - ACTIONS(2167), 1, + ACTIONS(2286), 1, anon_sym_or, - ACTIONS(2179), 1, + ACTIONS(2299), 1, anon_sym_if, - ACTIONS(2631), 2, + ACTIONS(2339), 1, anon_sym_COMMA, - anon_sym_RBRACK, - [64632] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2545), 5, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_if, - anon_sym_COLON, - anon_sym_RBRACK, - [64643] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2633), 1, - anon_sym_COMMA, - STATE(1280), 1, - aux_sym_expression_list_repeat1, - ACTIONS(2482), 3, - sym__newline, - anon_sym_from, - anon_sym_SEMI, - [64658] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2259), 1, - anon_sym_if, - ACTIONS(2261), 1, - anon_sym_and, - ACTIONS(2263), 1, - anon_sym_or, - ACTIONS(2635), 2, - sym__newline, - anon_sym_SEMI, - [64675] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2637), 1, - anon_sym_COMMA, - STATE(1280), 1, - aux_sym_expression_list_repeat1, - ACTIONS(2505), 3, - sym__newline, - anon_sym_from, - anon_sym_SEMI, - [64690] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2589), 1, - anon_sym_LPAREN, - ACTIONS(2593), 1, - anon_sym_LBRACK, - ACTIONS(2640), 1, - anon_sym_COLON, - STATE(1493), 1, - sym_type_parameters, - STATE(1710), 1, - sym_argument_list, - [64709] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2478), 2, - anon_sym_COMMA, - anon_sym_RBRACE, - [64726] = 6, - ACTIONS(2065), 1, - sym_comment, - ACTIONS(2642), 1, - anon_sym_RBRACE, - ACTIONS(2644), 1, - anon_sym_LBRACE2, - ACTIONS(2646), 1, - aux_sym_format_specifier_token1, STATE(1288), 1, - aux_sym_format_specifier_repeat1, - STATE(1497), 1, - sym_interpolation, - [64745] = 6, - ACTIONS(2065), 1, - sym_comment, - ACTIONS(2648), 1, - anon_sym_RBRACE, - ACTIONS(2650), 1, - anon_sym_LBRACE2, - ACTIONS(2653), 1, - aux_sym_format_specifier_token1, - STATE(1284), 1, - aux_sym_format_specifier_repeat1, - STATE(1497), 1, - sym_interpolation, - [64764] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2259), 1, - anon_sym_if, - ACTIONS(2261), 1, - anon_sym_and, - ACTIONS(2263), 1, - anon_sym_or, - ACTIONS(2656), 2, + aux_sym_expression_list_repeat1, + ACTIONS(2491), 2, sym__newline, anon_sym_SEMI, - [64781] = 4, + [64990] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(2660), 1, - anon_sym_COMMA, - STATE(1286), 1, - aux_sym__collection_elements_repeat1, - ACTIONS(2658), 3, - anon_sym_RPAREN, - anon_sym_RBRACK, - anon_sym_RBRACE, - [64796] = 6, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2613), 1, - anon_sym_COLON2, - ACTIONS(2663), 1, - anon_sym_RBRACE, - ACTIONS(2665), 1, - anon_sym_EQ, - ACTIONS(2667), 1, - sym_type_conversion, - STATE(1587), 1, - sym_format_specifier, - [64815] = 6, - ACTIONS(2065), 1, - sym_comment, - ACTIONS(2644), 1, - anon_sym_LBRACE2, - ACTIONS(2669), 1, - anon_sym_RBRACE, - ACTIONS(2671), 1, - aux_sym_format_specifier_token1, - STATE(1284), 1, - aux_sym_format_specifier_repeat1, - STATE(1497), 1, - sym_interpolation, - [64834] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2054), 5, - sym__newline, - anon_sym_DOT, - anon_sym_COMMA, - anon_sym_as, - anon_sym_SEMI, - [64845] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2673), 1, - anon_sym_COMMA, - ACTIONS(2675), 1, - anon_sym_as, - STATE(1359), 1, - aux_sym__import_list_repeat1, - ACTIONS(2677), 2, - sym__newline, - anon_sym_SEMI, - [64862] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2679), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - [64879] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2259), 1, - anon_sym_if, - ACTIONS(2261), 1, - anon_sym_and, - ACTIONS(2263), 1, - anon_sym_or, - ACTIONS(2681), 2, - sym__newline, - anon_sym_SEMI, - [64896] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2685), 1, - anon_sym_COMMA, - STATE(993), 1, - aux_sym__patterns_repeat1, - ACTIONS(2683), 2, - anon_sym_RPAREN, - anon_sym_RBRACK, - [64910] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2687), 1, - anon_sym_COMMA, - STATE(1242), 1, - aux_sym_open_sequence_match_pattern_repeat1, - ACTIONS(1859), 2, - anon_sym_if, - anon_sym_COLON, - [64924] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2689), 1, - anon_sym_COLON, - [64940] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2691), 1, - anon_sym_COLON, - [64956] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2693), 1, - anon_sym_else, - [64972] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2695), 1, - anon_sym_case, - STATE(610), 1, - sym_cases, - STATE(453), 2, - sym_case_block, - aux_sym_cases_repeat1, - [64986] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2697), 1, - anon_sym_COMMA, - STATE(1355), 1, - aux_sym_global_statement_repeat1, - ACTIONS(2699), 2, - sym__newline, - anon_sym_SEMI, - [65000] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2701), 4, + ACTIONS(2096), 1, anon_sym_async, - anon_sym_def, - anon_sym_class, - anon_sym_AT, - [65010] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2593), 1, - anon_sym_LBRACK, - ACTIONS(2703), 1, - anon_sym_LPAREN, - STATE(1554), 1, - sym_parameters, - STATE(1557), 1, - sym_type_parameters, - [65026] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2613), 1, - anon_sym_COLON2, - ACTIONS(2705), 1, - anon_sym_RBRACE, - ACTIONS(2707), 1, - sym_type_conversion, - STATE(1692), 1, - sym_format_specifier, - [65042] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(562), 1, - sym__newline, - ACTIONS(2709), 1, - anon_sym_SEMI, - STATE(129), 1, - sym__semicolon, - STATE(1357), 1, - aux_sym__simple_statements_repeat1, - [65058] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2711), 1, - anon_sym_case, - STATE(555), 1, - sym_cases, - STATE(452), 2, - sym_case_block, - aux_sym_cases_repeat1, - [65072] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2711), 1, - anon_sym_case, - STATE(556), 1, - sym_cases, - STATE(452), 2, - sym_case_block, - aux_sym_cases_repeat1, - [65086] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2675), 1, - anon_sym_as, - ACTIONS(2713), 3, - sym__newline, + ACTIONS(2098), 1, + anon_sym_for, + ACTIONS(2493), 1, anon_sym_COMMA, - anon_sym_SEMI, - [65098] = 5, + ACTIONS(2495), 1, + anon_sym_RBRACE, + STATE(1106), 1, + sym_for_in_clause, + STATE(1479), 1, + aux_sym_dictionary_repeat1, + STATE(1714), 1, + sym__comprehension_clauses, + [65015] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2715), 1, - anon_sym_else, - [65114] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2390), 4, + ACTIONS(2276), 7, anon_sym_RPAREN, anon_sym_COMMA, - anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_RBRACE, anon_sym_EQ, + anon_sym_COLON2, + sym_type_conversion, + [65028] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2136), 1, + anon_sym_if, + ACTIONS(2138), 1, + anon_sym_and, + ACTIONS(2140), 1, + anon_sym_or, + ACTIONS(2319), 4, + anon_sym_COMMA, + anon_sym_async, + anon_sym_for, + anon_sym_RBRACE, + [65047] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2284), 1, + anon_sym_and, + ACTIONS(2286), 1, + anon_sym_or, + ACTIONS(2299), 1, + anon_sym_if, + ACTIONS(2339), 1, + anon_sym_COMMA, + STATE(1288), 1, + aux_sym_expression_list_repeat1, + ACTIONS(2497), 2, + sym__newline, + anon_sym_SEMI, + [65070] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2501), 1, + anon_sym_as, + ACTIONS(2499), 6, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_RBRACE, + [65085] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2284), 1, + anon_sym_and, + ACTIONS(2286), 1, + anon_sym_or, + ACTIONS(2299), 1, + anon_sym_if, + ACTIONS(2485), 1, + anon_sym_COMMA, + STATE(1390), 1, + aux_sym_assert_statement_repeat1, + ACTIONS(2503), 2, + sym__newline, + anon_sym_SEMI, + [65108] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2505), 1, + anon_sym_DOT, + STATE(1242), 1, + aux_sym_match_value_pattern_repeat1, + ACTIONS(2075), 4, + sym__newline, + anon_sym_COMMA, + anon_sym_as, + anon_sym_SEMI, [65124] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2717), 1, + ACTIONS(2510), 1, anon_sym_COMMA, - STATE(1309), 1, - aux_sym__import_list_repeat1, - ACTIONS(2720), 2, - sym__newline, - anon_sym_SEMI, - [65138] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2613), 1, - anon_sym_COLON2, - ACTIONS(2722), 1, - anon_sym_RBRACE, - ACTIONS(2724), 1, - sym_type_conversion, - STATE(1641), 1, - sym_format_specifier, - [65154] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2726), 1, - sym_identifier, - STATE(1330), 1, - sym_dotted_name, - STATE(1395), 1, - sym_aliased_import, - STATE(1701), 1, - sym__import_list, - [65170] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2726), 1, - sym_identifier, - STATE(1330), 1, - sym_dotted_name, - STATE(1395), 1, - sym_aliased_import, - STATE(1702), 1, - sym__import_list, - [65186] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2728), 4, + STATE(1249), 1, + aux_sym_expression_list_repeat1, + ACTIONS(2508), 4, anon_sym_RPAREN, - anon_sym_COMMA, + anon_sym_COLON, anon_sym_RBRACK, anon_sym_RBRACE, - [65196] = 2, + [65140] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(2730), 4, - anon_sym_RPAREN, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2514), 1, + anon_sym_COLON, + ACTIONS(2512), 2, anon_sym_COMMA, anon_sym_RBRACK, - anon_sym_RBRACE, - [65206] = 2, + [65160] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2392), 4, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_RBRACK, - anon_sym_RBRACE, - [65216] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2732), 1, - anon_sym_COMMA, - STATE(1340), 1, - aux_sym_print_statement_repeat1, - ACTIONS(2734), 2, - sym__newline, - anon_sym_SEMI, - [65230] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(310), 1, - sym__string_start, - ACTIONS(2097), 1, - anon_sym_COLON, - STATE(616), 2, - sym_string, - aux_sym_concatenated_string_repeat1, - [65244] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(312), 1, - sym__template_string_start, - ACTIONS(2097), 1, - anon_sym_COLON, - STATE(617), 2, - sym_template_string, - aux_sym_concatenated_template_string_repeat1, - [65258] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2736), 1, - anon_sym_COMMA, - STATE(1319), 1, - aux_sym_print_statement_repeat1, - ACTIONS(2739), 2, - sym__newline, - anon_sym_SEMI, - [65272] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2741), 1, - anon_sym_COMMA, - STATE(1320), 1, - aux_sym_assert_statement_repeat1, - ACTIONS(2518), 2, - sym__newline, - anon_sym_SEMI, - [65286] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2376), 1, - sym_identifier, - STATE(1290), 1, - sym_dotted_name, - STATE(1368), 1, - sym_aliased_import, - STATE(1507), 1, - sym__import_list, - [65302] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2744), 1, - anon_sym_COLON, - [65318] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2593), 1, - anon_sym_LBRACK, - ACTIONS(2703), 1, - anon_sym_LPAREN, - STATE(1511), 1, - sym_parameters, - STATE(1512), 1, - sym_type_parameters, - [65334] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2259), 1, - anon_sym_if, - ACTIONS(2261), 1, - anon_sym_and, - ACTIONS(2263), 1, - anon_sym_or, - ACTIONS(2746), 1, - sym__newline, - [65350] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2750), 1, - anon_sym_COMMA, - STATE(1325), 1, - aux_sym_with_clause_repeat1, - ACTIONS(2748), 2, - anon_sym_RPAREN, - anon_sym_COLON, - [65364] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2697), 1, - anon_sym_COMMA, - STATE(1354), 1, - aux_sym_global_statement_repeat1, - ACTIONS(2753), 2, - sym__newline, - anon_sym_SEMI, - [65378] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2500), 1, - anon_sym_EQ, - STATE(1522), 1, - sym__type_param_default, - ACTIONS(2755), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - [65392] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2625), 1, - anon_sym_RPAREN, - ACTIONS(2726), 1, - sym_identifier, - STATE(1382), 1, - sym_dotted_name, - STATE(1540), 1, - sym_aliased_import, - [65408] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2625), 1, - anon_sym_RPAREN, - ACTIONS(2726), 1, - sym_identifier, - STATE(1382), 1, - sym_dotted_name, - STATE(1540), 1, - sym_aliased_import, - [65424] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2677), 1, - anon_sym_RPAREN, - ACTIONS(2757), 1, - anon_sym_COMMA, - ACTIONS(2759), 1, - anon_sym_as, - STATE(1488), 1, - aux_sym__import_list_repeat1, - [65440] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2761), 1, - anon_sym_COLON, - [65456] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2763), 1, - anon_sym_SEMI, - ACTIONS(2765), 1, - sym__newline, - STATE(132), 1, - sym__semicolon, - STATE(1333), 1, - aux_sym__simple_statements_repeat1, - [65472] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(566), 1, - sym__newline, - ACTIONS(2767), 1, - anon_sym_SEMI, - STATE(131), 1, - sym__semicolon, - STATE(1357), 1, - aux_sym__simple_statements_repeat1, - [65488] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2769), 1, - anon_sym_COLON, - [65504] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2771), 1, - anon_sym_else, - [65520] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2775), 1, + ACTIONS(2516), 1, anon_sym_DOT, - STATE(1362), 1, - aux_sym_import_prefix_repeat1, - ACTIONS(2773), 2, - anon_sym_import, - sym_identifier, - [65534] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2777), 1, - anon_sym_COMMA, - STATE(1337), 1, - aux_sym_global_statement_repeat1, - ACTIONS(2780), 2, + STATE(1262), 1, + aux_sym_match_value_pattern_repeat1, + ACTIONS(2518), 4, sym__newline, + anon_sym_COMMA, + anon_sym_as, anon_sym_SEMI, - [65548] = 4, + [65176] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(2426), 1, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2522), 1, + anon_sym_COLON, + ACTIONS(2520), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [65196] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2284), 1, + anon_sym_and, + ACTIONS(2286), 1, + anon_sym_or, + ACTIONS(2299), 1, + anon_sym_if, + ACTIONS(2524), 3, + sym__newline, + anon_sym_COMMA, + anon_sym_SEMI, + [65214] = 3, + ACTIONS(2086), 1, + sym_comment, + ACTIONS(2526), 2, + anon_sym_LBRACE2, + anon_sym_BSLASH, + ACTIONS(2528), 4, + sym__string_content, + sym__string_end, + sym__escape_interpolation, + sym_escape_sequence, + [65228] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2532), 1, + anon_sym_COMMA, + STATE(1249), 1, + aux_sym_expression_list_repeat1, + ACTIONS(2530), 4, + anon_sym_RPAREN, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_RBRACE, + [65244] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2393), 1, + anon_sym_COMMA, + ACTIONS(2535), 1, + anon_sym_COLON, + STATE(1243), 1, + aux_sym_expression_list_repeat1, + [65266] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2106), 1, + anon_sym_DOT, + STATE(1256), 1, + aux_sym_match_value_pattern_repeat1, + ACTIONS(2518), 4, + anon_sym_import, + anon_sym_RPAREN, anon_sym_COMMA, - STATE(1364), 1, - aux_sym_exception_list_repeat1, - ACTIONS(2782), 2, anon_sym_as, + [65282] = 3, + ACTIONS(2086), 1, + sym_comment, + ACTIONS(2537), 2, + anon_sym_LBRACE2, + anon_sym_BSLASH, + ACTIONS(2539), 4, + sym__string_content, + sym__string_end, + sym__escape_interpolation, + sym_escape_sequence, + [65296] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2393), 1, + anon_sym_COMMA, + ACTIONS(2541), 1, + anon_sym_COLON, + STATE(1243), 1, + aux_sym_expression_list_repeat1, + [65318] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2545), 1, + anon_sym_COLON, + ACTIONS(2547), 1, + anon_sym_EQ, + STATE(1389), 1, + sym__type_bound, + STATE(1570), 1, + sym__type_param_default, + ACTIONS(2543), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [65338] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2284), 1, + anon_sym_and, + ACTIONS(2286), 1, + anon_sym_or, + ACTIONS(2299), 1, + anon_sym_if, + ACTIONS(2549), 3, + sym__newline, + anon_sym_COMMA, + anon_sym_SEMI, + [65356] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2106), 1, + anon_sym_DOT, + STATE(1039), 1, + aux_sym_match_value_pattern_repeat1, + ACTIONS(2551), 4, + anon_sym_import, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_as, + [65372] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2555), 1, + anon_sym_AT, + STATE(1257), 2, + sym_decorator, + aux_sym_decorated_definition_repeat1, + ACTIONS(2553), 3, + anon_sym_async, + anon_sym_def, + anon_sym_class, + [65388] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2232), 1, + anon_sym_RPAREN, + ACTIONS(2234), 1, + anon_sym_COMMA, + STATE(1526), 1, + aux_sym_argument_list_repeat1, + [65410] = 3, + ACTIONS(2086), 1, + sym_comment, + ACTIONS(2558), 2, + anon_sym_LBRACE2, + anon_sym_BSLASH, + ACTIONS(2560), 4, + sym__string_content, + sym__string_end, + sym__escape_interpolation, + sym_escape_sequence, + [65424] = 3, + ACTIONS(2086), 1, + sym_comment, + ACTIONS(2562), 2, + anon_sym_LBRACE2, + anon_sym_BSLASH, + ACTIONS(2564), 4, + sym__string_content, + sym__string_end, + sym__escape_interpolation, + sym_escape_sequence, + [65438] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2566), 3, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + [65456] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2516), 1, + anon_sym_DOT, + STATE(1242), 1, + aux_sym_match_value_pattern_repeat1, + ACTIONS(2551), 4, + sym__newline, + anon_sym_COMMA, + anon_sym_as, + anon_sym_SEMI, + [65472] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2110), 6, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_RBRACE, + [65484] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2570), 1, + anon_sym_COLON, + ACTIONS(2568), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [65504] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2393), 1, + anon_sym_COMMA, + ACTIONS(2572), 1, + anon_sym_COLON, + STATE(1243), 1, + aux_sym_expression_list_repeat1, + [65526] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2401), 1, + anon_sym_if, + ACTIONS(2405), 1, + anon_sym_and, + ACTIONS(2407), 1, + anon_sym_or, + ACTIONS(2574), 3, + anon_sym_COMMA, + anon_sym_as, + anon_sym_COLON, + [65544] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2576), 3, + anon_sym_RPAREN, + anon_sym_COMMA, anon_sym_COLON, [65562] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2161), 1, + ACTIONS(2182), 1, anon_sym_and, - ACTIONS(2167), 1, + ACTIONS(2184), 1, anon_sym_or, - ACTIONS(2179), 1, + ACTIONS(2198), 1, anon_sym_if, - ACTIONS(2784), 1, - anon_sym_else, - [65578] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2786), 1, + ACTIONS(2578), 3, anon_sym_COMMA, - STATE(1319), 1, - aux_sym_print_statement_repeat1, - ACTIONS(2788), 2, - sym__newline, - anon_sym_SEMI, - [65592] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2792), 1, + anon_sym_RBRACK, anon_sym_EQ, - ACTIONS(2790), 3, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - [65604] = 4, + [65580] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(2796), 1, - anon_sym_COLON, - ACTIONS(2798), 1, + ACTIONS(2475), 1, + anon_sym_DOT, + ACTIONS(2580), 1, + sym_identifier, + STATE(1343), 1, + aux_sym_import_prefix_repeat1, + STATE(1462), 1, + sym_import_prefix, + STATE(1620), 2, + sym_relative_import, + sym_dotted_name, + [65600] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2582), 1, + anon_sym_COMMA, + STATE(1270), 1, + aux_sym_expression_list_repeat1, + ACTIONS(2530), 4, + anon_sym_RBRACE, anon_sym_EQ, - ACTIONS(2794), 2, - anon_sym_RPAREN, - anon_sym_COMMA, - [65618] = 5, + anon_sym_COLON2, + sym_type_conversion, + [65616] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(556), 1, + ACTIONS(2284), 1, + anon_sym_and, + ACTIONS(2286), 1, + anon_sym_or, + ACTIONS(2299), 1, + anon_sym_if, + ACTIONS(2489), 3, sym__newline, - ACTIONS(2800), 1, + anon_sym_EQ, anon_sym_SEMI, - STATE(128), 1, - sym__semicolon, - STATE(1357), 1, - aux_sym__simple_statements_repeat1, [65634] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2398), 1, + ACTIONS(2585), 1, anon_sym_COMMA, - STATE(1320), 1, - aux_sym_assert_statement_repeat1, - ACTIONS(2802), 2, + STATE(1270), 1, + aux_sym_expression_list_repeat1, + ACTIONS(2508), 4, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_COLON2, + sym_type_conversion, + [65650] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2587), 1, + anon_sym_COMMA, + STATE(1249), 1, + aux_sym_expression_list_repeat1, + ACTIONS(2508), 4, + anon_sym_RPAREN, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_RBRACE, + [65666] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2589), 1, + anon_sym_COMMA, + STATE(1270), 1, + aux_sym_expression_list_repeat1, + ACTIONS(2508), 4, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_COLON2, + sym_type_conversion, + [65682] = 3, + ACTIONS(2086), 1, + sym_comment, + ACTIONS(2591), 2, + anon_sym_LBRACE2, + anon_sym_BSLASH, + ACTIONS(2593), 4, + sym__string_content, + sym__string_end, + sym__escape_interpolation, + sym_escape_sequence, + [65696] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2393), 1, + anon_sym_COMMA, + ACTIONS(2595), 1, + anon_sym_COLON, + STATE(1243), 1, + aux_sym_expression_list_repeat1, + [65718] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2393), 1, + anon_sym_COMMA, + ACTIONS(2597), 1, + anon_sym_COLON, + STATE(1243), 1, + aux_sym_expression_list_repeat1, + [65740] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2284), 1, + anon_sym_and, + ACTIONS(2286), 1, + anon_sym_or, + ACTIONS(2299), 1, + anon_sym_if, + ACTIONS(2599), 3, + sym__newline, + anon_sym_COMMA, + anon_sym_SEMI, + [65758] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2393), 1, + anon_sym_COMMA, + ACTIONS(2601), 1, + anon_sym_COLON, + STATE(1243), 1, + aux_sym_expression_list_repeat1, + [65780] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2605), 1, + anon_sym_COMMA, + STATE(1280), 1, + aux_sym_open_sequence_match_pattern_repeat1, + ACTIONS(2603), 4, + anon_sym_RPAREN, + anon_sym_if, + anon_sym_COLON, + anon_sym_RBRACK, + [65796] = 3, + ACTIONS(2086), 1, + sym_comment, + ACTIONS(2608), 2, + anon_sym_LBRACE2, + anon_sym_BSLASH, + ACTIONS(2610), 4, + sym__string_content, + sym__string_end, + sym__escape_interpolation, + sym_escape_sequence, + [65810] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2612), 6, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_RBRACK, + anon_sym_RBRACE, + [65822] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2614), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [65839] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2284), 1, + anon_sym_and, + ACTIONS(2286), 1, + anon_sym_or, + ACTIONS(2299), 1, + anon_sym_if, + ACTIONS(2616), 2, sym__newline, anon_sym_SEMI, - [65648] = 5, + [65856] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2804), 1, - anon_sym_else, - [65664] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2806), 1, + ACTIONS(2618), 1, + anon_sym_LPAREN, + ACTIONS(2620), 1, anon_sym_COLON, - [65680] = 5, + ACTIONS(2622), 1, + anon_sym_LBRACK, + STATE(1520), 1, + sym_type_parameters, + STATE(1701), 1, + sym_argument_list, + [65875] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2808), 1, - anon_sym_COLON, - [65696] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2810), 1, - anon_sym_SEMI, - ACTIONS(2812), 1, + ACTIONS(2624), 1, + anon_sym_COMMA, + STATE(1299), 1, + aux_sym_expression_list_repeat1, + ACTIONS(2508), 3, sym__newline, - STATE(127), 1, - sym__semicolon, - STATE(1343), 1, - aux_sym__simple_statements_repeat1, - [65712] = 5, + anon_sym_from, + anon_sym_SEMI, + [65890] = 6, + ACTIONS(2086), 1, + sym_comment, + ACTIONS(2626), 1, + anon_sym_RBRACE, + ACTIONS(2628), 1, + anon_sym_LBRACE2, + ACTIONS(2630), 1, + aux_sym_format_specifier_token1, + STATE(1315), 1, + aux_sym_format_specifier_repeat1, + STATE(1499), 1, + sym_interpolation, + [65909] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2814), 1, + ACTIONS(2632), 1, + anon_sym_COMMA, + STATE(1299), 1, + aux_sym_expression_list_repeat1, + ACTIONS(2508), 3, + sym__newline, + anon_sym_from, + anon_sym_SEMI, + [65924] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2634), 1, + anon_sym_RBRACE, + ACTIONS(2636), 1, + anon_sym_EQ, + ACTIONS(2638), 1, + anon_sym_COLON2, + ACTIONS(2640), 1, + sym_type_conversion, + STATE(1677), 1, + sym_format_specifier, + [65943] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2642), 1, + anon_sym_COMMA, + ACTIONS(2644), 1, + anon_sym_as, + STATE(1336), 1, + aux_sym__import_list_repeat1, + ACTIONS(2646), 2, + sym__newline, + anon_sym_SEMI, + [65960] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2311), 5, + anon_sym_RPAREN, + anon_sym_COMMA, anon_sym_COLON, - [65728] = 5, + anon_sym_RBRACK, + anon_sym_RBRACE, + [65971] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2161), 1, + ACTIONS(2182), 1, anon_sym_and, - ACTIONS(2167), 1, + ACTIONS(2184), 1, anon_sym_or, - ACTIONS(2179), 1, + ACTIONS(2198), 1, anon_sym_if, - ACTIONS(2816), 1, - anon_sym_COLON, - [65744] = 5, + ACTIONS(2483), 2, + anon_sym_COMMA, + anon_sym_RBRACE, + [65988] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2818), 1, - anon_sym_COLON, - [65760] = 5, + ACTIONS(2075), 5, + sym__newline, + anon_sym_DOT, + anon_sym_COMMA, + anon_sym_as, + anon_sym_SEMI, + [65999] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2820), 1, - anon_sym_COLON, - [65776] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2822), 1, + ACTIONS(2090), 1, anon_sym_COMMA, STATE(1309), 1, - aux_sym__import_list_repeat1, - ACTIONS(2824), 2, - sym__newline, - anon_sym_SEMI, - [65790] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2697), 1, - anon_sym_COMMA, - STATE(1337), 1, - aux_sym_global_statement_repeat1, - ACTIONS(2826), 2, - sym__newline, - anon_sym_SEMI, - [65804] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2697), 1, - anon_sym_COMMA, - STATE(1337), 1, - aux_sym_global_statement_repeat1, - ACTIONS(2828), 2, - sym__newline, - anon_sym_SEMI, - [65818] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2832), 1, - anon_sym_COMMA, - STATE(1293), 1, - aux_sym__patterns_repeat1, - ACTIONS(2830), 2, + aux_sym__collection_elements_repeat1, + ACTIONS(2100), 3, anon_sym_RPAREN, anon_sym_RBRACK, - [65832] = 5, + anon_sym_RBRACE, + [66014] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2834), 1, + ACTIONS(2284), 1, + anon_sym_and, + ACTIONS(2286), 1, + anon_sym_or, + ACTIONS(2299), 1, + anon_sym_if, + ACTIONS(2648), 2, + sym__newline, anon_sym_SEMI, - ACTIONS(2837), 1, + [66031] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2638), 1, + anon_sym_COLON2, + ACTIONS(2650), 1, + anon_sym_RBRACE, + ACTIONS(2652), 1, + anon_sym_EQ, + ACTIONS(2654), 1, + sym_type_conversion, + STATE(1651), 1, + sym_format_specifier, + [66050] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2656), 2, + anon_sym_RPAREN, + anon_sym_COMMA, + [66067] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2658), 2, + anon_sym_RPAREN, + anon_sym_COMMA, + [66084] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2660), 1, + anon_sym_COMMA, + STATE(1299), 1, + aux_sym_expression_list_repeat1, + ACTIONS(2530), 3, + sym__newline, + anon_sym_from, + anon_sym_SEMI, + [66099] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2413), 1, + sym_identifier, + STATE(1329), 1, + sym_dotted_name, + STATE(1428), 1, + sym_aliased_import, + ACTIONS(2663), 2, + sym__newline, + anon_sym_SEMI, + [66116] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2311), 5, + anon_sym_COMMA, + anon_sym_RBRACE, + anon_sym_EQ, + anon_sym_COLON2, + sym_type_conversion, + [66127] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2413), 1, + sym_identifier, + STATE(1329), 1, + sym_dotted_name, + STATE(1428), 1, + sym_aliased_import, + ACTIONS(2665), 2, + sym__newline, + anon_sym_SEMI, + [66144] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2667), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [66161] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2413), 1, + sym_identifier, + STATE(1329), 1, + sym_dotted_name, + STATE(1428), 1, + sym_aliased_import, + ACTIONS(2663), 2, + sym__newline, + anon_sym_SEMI, + [66178] = 6, + ACTIONS(2086), 1, + sym_comment, + ACTIONS(2669), 1, + anon_sym_RBRACE, + ACTIONS(2671), 1, + anon_sym_LBRACE2, + ACTIONS(2674), 1, + aux_sym_format_specifier_token1, + STATE(1305), 1, + aux_sym_format_specifier_repeat1, + STATE(1499), 1, + sym_interpolation, + [66197] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2413), 1, + sym_identifier, + ACTIONS(2677), 1, + anon_sym_LPAREN, + STATE(1290), 1, + sym_dotted_name, + STATE(1327), 1, + sym_aliased_import, + STATE(1565), 1, + sym__import_list, + [66216] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2603), 5, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_RBRACK, + [66227] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2681), 1, + anon_sym_COMMA, + STATE(1311), 1, + aux_sym__collection_elements_repeat1, + ACTIONS(2679), 3, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_RBRACE, + [66242] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2683), 1, + anon_sym_COMMA, + STATE(1311), 1, + aux_sym__collection_elements_repeat1, + ACTIONS(2679), 3, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_RBRACE, + [66257] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2685), 1, + anon_sym_COMMA, + STATE(1311), 1, + aux_sym__collection_elements_repeat1, + ACTIONS(2679), 3, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_RBRACE, + [66272] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2689), 1, + anon_sym_COMMA, + STATE(1311), 1, + aux_sym__collection_elements_repeat1, + ACTIONS(2687), 3, + anon_sym_RPAREN, + anon_sym_RBRACK, + anon_sym_RBRACE, + [66287] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2692), 5, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_if, + anon_sym_COLON, + anon_sym_RBRACK, + [66298] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2284), 1, + anon_sym_and, + ACTIONS(2286), 1, + anon_sym_or, + ACTIONS(2299), 1, + anon_sym_if, + ACTIONS(2694), 2, + sym__newline, + anon_sym_SEMI, + [66315] = 6, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2618), 1, + anon_sym_LPAREN, + ACTIONS(2622), 1, + anon_sym_LBRACK, + ACTIONS(2696), 1, + anon_sym_COLON, + STATE(1491), 1, + sym_type_parameters, + STATE(1626), 1, + sym_argument_list, + [66334] = 6, + ACTIONS(2086), 1, + sym_comment, + ACTIONS(2628), 1, + anon_sym_LBRACE2, + ACTIONS(2698), 1, + anon_sym_RBRACE, + ACTIONS(2700), 1, + aux_sym_format_specifier_token1, + STATE(1305), 1, + aux_sym_format_specifier_repeat1, + STATE(1499), 1, + sym_interpolation, + [66353] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2284), 1, + anon_sym_and, + ACTIONS(2286), 1, + anon_sym_or, + ACTIONS(2299), 1, + anon_sym_if, + ACTIONS(2451), 2, + sym__newline, + anon_sym_SEMI, + [66370] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2702), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [66387] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2704), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [66404] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2284), 1, + anon_sym_and, + ACTIONS(2286), 1, + anon_sym_or, + ACTIONS(2299), 1, + anon_sym_if, + ACTIONS(2706), 2, + sym__newline, + anon_sym_SEMI, + [66421] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2708), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [66438] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2710), 2, + anon_sym_RPAREN, + anon_sym_COMMA, + [66455] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2712), 1, + anon_sym_SEMI, + ACTIONS(2715), 1, sym__newline, STATE(133), 1, sym__semicolon, - STATE(1357), 1, + STATE(1322), 1, aux_sym__simple_statements_repeat1, - [65848] = 2, + [66471] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2281), 4, + ACTIONS(2717), 1, + anon_sym_COMMA, + STATE(1404), 1, + aux_sym_print_statement_repeat1, + ACTIONS(2719), 2, + sym__newline, + anon_sym_SEMI, + [66485] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2721), 1, + anon_sym_case, + STATE(593), 1, + sym_cases, + STATE(461), 2, + sym_case_block, + aux_sym_cases_repeat1, + [66499] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2723), 1, + anon_sym_COLON, + [66515] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2284), 1, + anon_sym_and, + ACTIONS(2286), 1, + anon_sym_or, + ACTIONS(2299), 1, + anon_sym_if, + ACTIONS(2725), 1, + sym__newline, + [66531] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2642), 1, + anon_sym_COMMA, + STATE(1335), 1, + aux_sym__import_list_repeat1, + ACTIONS(2646), 2, + sym__newline, + anon_sym_SEMI, + [66545] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(567), 1, + sym__newline, + ACTIONS(2727), 1, + anon_sym_SEMI, + STATE(128), 1, + sym__semicolon, + STATE(1322), 1, + aux_sym__simple_statements_repeat1, + [66561] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2644), 1, + anon_sym_as, + ACTIONS(2729), 3, + sym__newline, + anon_sym_COMMA, + anon_sym_SEMI, + [66573] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2638), 1, + anon_sym_COLON2, + ACTIONS(2731), 1, + anon_sym_RBRACE, + ACTIONS(2733), 1, + sym_type_conversion, + STATE(1646), 1, + sym_format_specifier, + [66589] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2735), 1, + anon_sym_COLON, + [66605] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2737), 1, + anon_sym_COMMA, + STATE(1332), 1, + aux_sym_global_statement_repeat1, + ACTIONS(2740), 2, + sym__newline, + anon_sym_SEMI, + [66619] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2744), 1, + anon_sym_EQ, + ACTIONS(2742), 3, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + [66631] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2746), 1, + anon_sym_case, + STATE(545), 1, + sym_cases, + STATE(440), 2, + sym_case_block, + aux_sym_cases_repeat1, + [66645] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2748), 1, + anon_sym_COMMA, + STATE(1339), 1, + aux_sym__import_list_repeat1, + ACTIONS(2750), 2, + sym__newline, + anon_sym_SEMI, + [66659] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2752), 1, + anon_sym_COMMA, + STATE(1339), 1, + aux_sym__import_list_repeat1, + ACTIONS(2750), 2, + sym__newline, + anon_sym_SEMI, + [66673] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2580), 1, + sym_identifier, + ACTIONS(2663), 1, + anon_sym_RPAREN, + STATE(1438), 1, + sym_dotted_name, + STATE(1600), 1, + sym_aliased_import, + [66689] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2580), 1, + sym_identifier, + ACTIONS(2663), 1, + anon_sym_RPAREN, + STATE(1438), 1, + sym_dotted_name, + STATE(1600), 1, + sym_aliased_import, + [66705] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2754), 1, + anon_sym_COMMA, + STATE(1339), 1, + aux_sym__import_list_repeat1, + ACTIONS(2757), 2, + sym__newline, + anon_sym_SEMI, + [66719] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2746), 1, + anon_sym_case, + STATE(546), 1, + sym_cases, + STATE(440), 2, + sym_case_block, + aux_sym_cases_repeat1, + [66733] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2580), 1, + sym_identifier, + STATE(1362), 1, + sym_dotted_name, + STATE(1467), 1, + sym_aliased_import, + STATE(1670), 1, + sym__import_list, + [66749] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2580), 1, + sym_identifier, + STATE(1362), 1, + sym_dotted_name, + STATE(1467), 1, + sym_aliased_import, + STATE(1671), 1, + sym__import_list, + [66765] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2761), 1, + anon_sym_DOT, + STATE(1352), 1, + aux_sym_import_prefix_repeat1, + ACTIONS(2759), 2, + anon_sym_import, + sym_identifier, + [66779] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2763), 4, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACK, + anon_sym_RBRACE, + [66789] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2765), 1, + anon_sym_SEMI, + ACTIONS(2767), 1, + sym__newline, + STATE(129), 1, + sym__semicolon, + STATE(1351), 1, + aux_sym__simple_statements_repeat1, + [66805] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2769), 1, + anon_sym_SEMI, + ACTIONS(2771), 1, + sym__newline, + STATE(127), 1, + sym__semicolon, + STATE(1399), 1, + aux_sym__simple_statements_repeat1, + [66821] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2773), 1, + anon_sym_else, + [66837] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2775), 1, + anon_sym_COMMA, + STATE(1348), 1, + aux_sym_exception_list_repeat1, + ACTIONS(2778), 2, + anon_sym_as, + anon_sym_COLON, + [66851] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2780), 4, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACK, + anon_sym_RBRACE, + [66861] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2782), 1, + anon_sym_COLON, + [66877] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(565), 1, + sym__newline, + ACTIONS(2784), 1, + anon_sym_SEMI, + STATE(131), 1, + sym__semicolon, + STATE(1322), 1, + aux_sym__simple_statements_repeat1, + [66893] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2788), 1, + anon_sym_DOT, + STATE(1352), 1, + aux_sym_import_prefix_repeat1, + ACTIONS(2786), 2, + anon_sym_import, + sym_identifier, + [66907] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2791), 1, + anon_sym_else, + [66923] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2411), 4, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_RBRACK, + anon_sym_RBRACE, + [66933] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2795), 1, + anon_sym_COMMA, + STATE(1360), 1, + aux_sym__patterns_repeat1, + ACTIONS(2793), 2, + anon_sym_RPAREN, + anon_sym_RBRACK, + [66947] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2638), 1, + anon_sym_COLON2, + ACTIONS(2797), 1, + anon_sym_RBRACE, + ACTIONS(2799), 1, + sym_type_conversion, + STATE(1741), 1, + sym_format_specifier, + [66963] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2413), 1, + sym_identifier, + STATE(1290), 1, + sym_dotted_name, + STATE(1327), 1, + sym_aliased_import, + STATE(1552), 1, + sym__import_list, + [66979] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2489), 4, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + anon_sym_EQ, + [66989] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2801), 1, + anon_sym_COLON, + [67005] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2805), 1, + anon_sym_COMMA, + STATE(1000), 1, + aux_sym__patterns_repeat1, + ACTIONS(2803), 2, + anon_sym_RPAREN, + anon_sym_RBRACK, + [67019] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2807), 1, + anon_sym_else, + [67035] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2646), 1, + anon_sym_RPAREN, + ACTIONS(2809), 1, + anon_sym_COMMA, + ACTIONS(2811), 1, + anon_sym_as, + STATE(1415), 1, + aux_sym__import_list_repeat1, + [67051] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2813), 1, + anon_sym_COLON, + [67067] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2397), 1, + anon_sym_COMMA, + STATE(1348), 1, + aux_sym_exception_list_repeat1, + ACTIONS(2815), 2, + anon_sym_as, + anon_sym_COLON, + [67081] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2817), 1, + anon_sym_else, + [67097] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2819), 1, + anon_sym_COMMA, + STATE(1394), 1, + aux_sym_global_statement_repeat1, + ACTIONS(2821), 2, + sym__newline, + anon_sym_SEMI, + [67111] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2823), 1, + anon_sym_else, + [67127] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2825), 1, + anon_sym_COMMA, + STATE(1368), 1, + aux_sym_print_statement_repeat1, + ACTIONS(2828), 2, + sym__newline, + anon_sym_SEMI, + [67141] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(315), 1, + sym__string_start, + ACTIONS(2112), 1, + anon_sym_COLON, + STATE(690), 2, + sym_string, + aux_sym_concatenated_string_repeat1, + [67155] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2830), 1, + anon_sym_COLON, + [67171] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2832), 1, + anon_sym_COLON, + [67187] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2834), 1, + anon_sym_COMMA, + STATE(1372), 1, + aux_sym_assert_statement_repeat1, + ACTIONS(2549), 2, + sym__newline, + anon_sym_SEMI, + [67201] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(317), 1, + sym__template_string_start, + ACTIONS(2112), 1, + anon_sym_COLON, + STATE(693), 2, + sym_template_string, + aux_sym_concatenated_template_string_repeat1, + [67215] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2547), 1, + anon_sym_EQ, + STATE(1562), 1, + sym__type_param_default, + ACTIONS(2837), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [67229] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2721), 1, + anon_sym_case, + STATE(558), 1, + sym_cases, + STATE(461), 2, + sym_case_block, + aux_sym_cases_repeat1, + [67243] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2839), 1, + anon_sym_COLON, + [67259] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2841), 1, + anon_sym_COLON, + [67275] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2843), 1, + anon_sym_COLON, + [67291] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2547), 1, + anon_sym_EQ, + STATE(1563), 1, + sym__type_param_default, + ACTIONS(2845), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [67305] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2847), 1, + anon_sym_COMMA, + STATE(1368), 1, + aux_sym_print_statement_repeat1, + ACTIONS(2849), 2, + sym__newline, + anon_sym_SEMI, + [67319] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2580), 1, + sym_identifier, + STATE(1362), 1, + sym_dotted_name, + STATE(1467), 1, + sym_aliased_import, + STATE(1625), 1, + sym__import_list, + [67335] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2851), 1, + anon_sym_COMMA, + STATE(1280), 1, + aux_sym_open_sequence_match_pattern_repeat1, + ACTIONS(1902), 2, + anon_sym_if, + anon_sym_COLON, + [67349] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2855), 1, + anon_sym_COLON, + ACTIONS(2857), 1, + anon_sym_EQ, + ACTIONS(2853), 2, + anon_sym_RPAREN, + anon_sym_COMMA, + [67363] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2580), 1, + sym_identifier, + ACTIONS(2665), 1, + anon_sym_RPAREN, + STATE(1438), 1, + sym_dotted_name, + STATE(1600), 1, + sym_aliased_import, + [67379] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2413), 1, + sym_identifier, + STATE(1290), 1, + sym_dotted_name, + STATE(1327), 1, + sym_aliased_import, + STATE(1596), 1, + sym__import_list, + [67395] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2859), 1, + anon_sym_COLON, + [67411] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2182), 1, + anon_sym_and, + ACTIONS(2184), 1, + anon_sym_or, + ACTIONS(2198), 1, + anon_sym_if, + ACTIONS(2861), 1, + anon_sym_else, + [67427] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2819), 1, + anon_sym_COMMA, + STATE(1332), 1, + aux_sym_global_statement_repeat1, + ACTIONS(2863), 2, + sym__newline, + anon_sym_SEMI, + [67441] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2547), 1, + anon_sym_EQ, + STATE(1575), 1, + sym__type_param_default, + ACTIONS(2865), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [67455] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2485), 1, + anon_sym_COMMA, + STATE(1372), 1, + aux_sym_assert_statement_repeat1, + ACTIONS(2867), 2, + sym__newline, + anon_sym_SEMI, + [67469] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2869), 4, + anon_sym_async, + anon_sym_def, + anon_sym_class, + anon_sym_AT, + [67479] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2819), 1, + anon_sym_COMMA, + STATE(1388), 1, + aux_sym_global_statement_repeat1, + ACTIONS(2871), 2, + sym__newline, + anon_sym_SEMI, + [67493] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2311), 4, sym__newline, anon_sym_from, anon_sym_COMMA, anon_sym_SEMI, - [65858] = 4, + [67503] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2839), 1, + ACTIONS(2819), 1, anon_sym_COMMA, - STATE(1309), 1, - aux_sym__import_list_repeat1, - ACTIONS(2824), 2, + STATE(1332), 1, + aux_sym_global_statement_repeat1, + ACTIONS(2873), 2, sym__newline, anon_sym_SEMI, - [65872] = 4, + [67517] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2841), 1, - anon_sym_COMMA, - STATE(1319), 1, - aux_sym_print_statement_repeat1, - ACTIONS(2843), 2, - sym__newline, - anon_sym_SEMI, - [65886] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, + ACTIONS(2182), 1, anon_sym_and, - ACTIONS(2167), 1, + ACTIONS(2184), 1, anon_sym_or, - ACTIONS(2179), 1, + ACTIONS(2198), 1, anon_sym_if, - ACTIONS(2845), 1, + ACTIONS(2875), 1, anon_sym_COLON, - [65902] = 4, + [67533] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2849), 1, - anon_sym_DOT, - STATE(1362), 1, - aux_sym_import_prefix_repeat1, - ACTIONS(2847), 2, - anon_sym_import, - sym_identifier, - [65916] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2695), 1, - anon_sym_case, - STATE(609), 1, - sym_cases, - STATE(453), 2, - sym_case_block, - aux_sym_cases_repeat1, - [65930] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2852), 1, - anon_sym_COMMA, - STATE(1364), 1, - aux_sym_exception_list_repeat1, - ACTIONS(2855), 2, - anon_sym_as, - anon_sym_COLON, - [65944] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2398), 1, - anon_sym_COMMA, - STATE(1320), 1, - aux_sym_assert_statement_repeat1, - ACTIONS(2857), 2, - sym__newline, - anon_sym_SEMI, - [65958] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2161), 1, - anon_sym_and, - ACTIONS(2167), 1, - anon_sym_or, - ACTIONS(2179), 1, - anon_sym_if, - ACTIONS(2859), 1, - anon_sym_else, - [65974] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2587), 1, - anon_sym_RPAREN, - ACTIONS(2726), 1, - sym_identifier, - STATE(1382), 1, - sym_dotted_name, - STATE(1540), 1, - sym_aliased_import, - [65990] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2673), 1, - anon_sym_COMMA, - STATE(1353), 1, - aux_sym__import_list_repeat1, - ACTIONS(2677), 2, - sym__newline, - anon_sym_SEMI, - [66004] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2593), 1, + ACTIONS(2622), 1, anon_sym_LBRACK, - ACTIONS(2703), 1, + ACTIONS(2877), 1, + anon_sym_LPAREN, + STATE(1574), 1, + sym_type_parameters, + STATE(1612), 1, + sym_parameters, + [67549] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2622), 1, + anon_sym_LBRACK, + ACTIONS(2877), 1, + anon_sym_LPAREN, + STATE(1538), 1, + sym_parameters, + STATE(1597), 1, + sym_type_parameters, + [67565] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2622), 1, + anon_sym_LBRACK, + ACTIONS(2877), 1, anon_sym_LPAREN, STATE(1541), 1, sym_parameters, - STATE(1576), 1, + STATE(1599), 1, sym_type_parameters, - [66020] = 5, + [67581] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2593), 1, - anon_sym_LBRACK, - ACTIONS(2703), 1, - anon_sym_LPAREN, - STATE(1543), 1, - sym_parameters, - STATE(1578), 1, - sym_type_parameters, - [66036] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2500), 1, - anon_sym_EQ, - STATE(1555), 1, - sym__type_param_default, - ACTIONS(2861), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - [66050] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2500), 1, - anon_sym_EQ, - STATE(1516), 1, - sym__type_param_default, - ACTIONS(2863), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - [66064] = 5, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2865), 1, + ACTIONS(561), 1, + sym__newline, + ACTIONS(2879), 1, anon_sym_SEMI, - ACTIONS(2867), 1, + STATE(132), 1, + sym__semicolon, + STATE(1322), 1, + aux_sym__simple_statements_repeat1, + [67597] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2883), 1, + anon_sym_COMMA, + STATE(1400), 1, + aux_sym_with_clause_repeat1, + ACTIONS(2881), 2, + anon_sym_RPAREN, + anon_sym_COLON, + [67611] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2485), 1, + anon_sym_COMMA, + STATE(1372), 1, + aux_sym_assert_statement_repeat1, + ACTIONS(2886), 2, + sym__newline, + anon_sym_SEMI, + [67625] = 5, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2888), 1, + anon_sym_SEMI, + ACTIONS(2890), 1, sym__newline, STATE(130), 1, sym__semicolon, - STATE(1303), 1, + STATE(1328), 1, aux_sym__simple_statements_repeat1, - [66080] = 4, + [67641] = 5, ACTIONS(3), 1, sym_comment, - ACTIONS(2869), 1, - sym_identifier, - ACTIONS(2871), 1, - sym_match_wildcard_pattern, - STATE(1263), 1, - sym_match_capture_pattern, - [66093] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2873), 1, - anon_sym_COMMA, - ACTIONS(2876), 1, - anon_sym_RBRACK, - STATE(1375), 1, - aux_sym_type_parameters_repeat1, - [66106] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2048), 1, - anon_sym_RPAREN, - ACTIONS(2878), 1, - anon_sym_COMMA, - STATE(1443), 1, - aux_sym__parameters_repeat1, - [66119] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2880), 1, - anon_sym_COMMA, - ACTIONS(2882), 1, - anon_sym_RBRACK, - STATE(1492), 1, - aux_sym_index_expression_list_repeat1, - [66132] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2884), 1, - anon_sym_COMMA, - ACTIONS(2887), 1, - anon_sym_RBRACK, - STATE(1378), 1, - aux_sym_index_expression_list_repeat1, - [66145] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2889), 3, + ACTIONS(2622), 1, + anon_sym_LBRACK, + ACTIONS(2877), 1, anon_sym_LPAREN, - anon_sym_COLON, - anon_sym_EQ, - [66154] = 3, - ACTIONS(2065), 1, - sym_comment, - ACTIONS(2510), 1, - anon_sym_RBRACE, - ACTIONS(2512), 2, - anon_sym_LBRACE2, - aux_sym_format_specifier_token1, - [66165] = 4, + STATE(1548), 1, + sym_parameters, + STATE(1572), 1, + sym_type_parameters, + [67657] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2891), 1, - anon_sym_RPAREN, - ACTIONS(2893), 1, + ACTIONS(2892), 1, anon_sym_COMMA, - STATE(1413), 1, - aux_sym_match_class_pattern_repeat2, - [66178] = 3, + STATE(1368), 1, + aux_sym_print_statement_repeat1, + ACTIONS(2894), 2, + sym__newline, + anon_sym_SEMI, + [67671] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2759), 1, - anon_sym_as, - ACTIONS(2713), 2, - anon_sym_RPAREN, + ACTIONS(2031), 1, anon_sym_COMMA, - [66189] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2069), 1, - anon_sym_COMMA, - ACTIONS(2169), 1, - anon_sym_RPAREN, - STATE(1454), 1, - aux_sym__collection_elements_repeat1, - [66202] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2720), 1, - anon_sym_RPAREN, - ACTIONS(2895), 1, - anon_sym_COMMA, - STATE(1384), 1, - aux_sym__import_list_repeat1, - [66215] = 4, + ACTIONS(2896), 1, + anon_sym_in, + STATE(1018), 1, + aux_sym__patterns_repeat1, + [67684] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(2898), 1, anon_sym_COMMA, ACTIONS(2900), 1, anon_sym_COLON, - STATE(1471), 1, + STATE(1481), 1, aux_sym__parameters_repeat1, - [66228] = 4, + [67697] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(2902), 1, - anon_sym_COMMA, + anon_sym_if, ACTIONS(2904), 1, - anon_sym_RBRACK, - STATE(1375), 1, - aux_sym_type_parameters_repeat1, - [66241] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2195), 1, - anon_sym_RPAREN, - ACTIONS(2197), 1, - anon_sym_COMMA, - STATE(1462), 1, - aux_sym_argument_list_repeat1, - [66254] = 4, + anon_sym_COLON, + STATE(1661), 1, + sym_guard, + [67710] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(2906), 1, - anon_sym_RPAREN, - ACTIONS(2908), 1, anon_sym_COMMA, - STATE(1481), 1, - aux_sym_argument_list_repeat1, - [66267] = 4, + ACTIONS(2908), 2, + anon_sym_if, + anon_sym_COLON, + [67721] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(2910), 1, anon_sym_COMMA, ACTIONS(2912), 1, - anon_sym_RBRACE, - STATE(1401), 1, - aux_sym_dictionary_repeat1, - [66280] = 4, + anon_sym_RBRACK, + STATE(1418), 1, + aux_sym_type_parameters_repeat1, + [67734] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2853), 3, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + [67743] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(2914), 1, - anon_sym_if, - ACTIONS(2916), 1, - anon_sym_COLON, - STATE(1689), 1, - sym_guard, - [66293] = 3, + anon_sym_in, + ACTIONS(2916), 2, + sym__newline, + anon_sym_SEMI, + [67754] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(2918), 1, + anon_sym_RPAREN, + ACTIONS(2920), 1, anon_sym_COMMA, - ACTIONS(2920), 2, - anon_sym_if, - anon_sym_COLON, - [66304] = 4, + STATE(1430), 1, + aux_sym_argument_list_repeat1, + [67767] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(2922), 1, anon_sym_RPAREN, ACTIONS(2924), 1, anon_sym_COMMA, - STATE(1392), 1, + STATE(1430), 1, aux_sym_argument_list_repeat1, - [66317] = 3, + [67780] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2927), 1, - anon_sym_in, - ACTIONS(2929), 2, - sym__newline, - anon_sym_SEMI, - [66328] = 2, + ACTIONS(2750), 1, + anon_sym_RPAREN, + ACTIONS(2926), 1, + anon_sym_COMMA, + STATE(1440), 1, + aux_sym__import_list_repeat1, + [67793] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2794), 3, + ACTIONS(2750), 1, + anon_sym_RPAREN, + ACTIONS(2928), 1, + anon_sym_COMMA, + STATE(1440), 1, + aux_sym__import_list_repeat1, + [67806] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2622), 1, + anon_sym_LBRACK, + ACTIONS(2930), 1, + anon_sym_EQ, + STATE(1738), 1, + sym_type_parameters, + [67819] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2932), 3, + anon_sym_LPAREN, + anon_sym_COLON, + anon_sym_EQ, + [67828] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2910), 1, + anon_sym_COMMA, + ACTIONS(2934), 1, + anon_sym_RBRACK, + STATE(1511), 1, + aux_sym_type_parameters_repeat1, + [67841] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2936), 1, + sym_identifier, + ACTIONS(2938), 1, + anon_sym_RPAREN, + STATE(1592), 1, + sym_match_keyword_pattern, + [67854] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2938), 1, + anon_sym_RPAREN, + ACTIONS(2940), 1, + anon_sym_COMMA, + STATE(1444), 1, + aux_sym_match_class_pattern_repeat2, + [67867] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2938), 1, + anon_sym_RPAREN, + ACTIONS(2940), 1, + anon_sym_COMMA, + STATE(1429), 1, + aux_sym_match_class_pattern_repeat2, + [67880] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1340), 3, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_COLON, - [66337] = 4, + [67889] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2677), 1, - anon_sym_RPAREN, - ACTIONS(2757), 1, - anon_sym_COMMA, - STATE(1487), 1, - aux_sym__import_list_repeat1, - [66350] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1893), 1, - anon_sym_RPAREN, - ACTIONS(2931), 1, - sym_identifier, - STATE(1558), 1, - sym_match_keyword_pattern, - [66363] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2171), 1, - anon_sym_RPAREN, - ACTIONS(2173), 1, - anon_sym_COMMA, - STATE(1448), 1, - aux_sym_argument_list_repeat1, - [66376] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2933), 1, - anon_sym_RPAREN, - ACTIONS(2935), 1, - anon_sym_COMMA, - STATE(1450), 1, - aux_sym_argument_list_repeat1, - [66389] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1895), 1, - anon_sym_RPAREN, - ACTIONS(2937), 1, - anon_sym_COMMA, - STATE(1468), 1, - aux_sym_match_class_pattern_repeat1, - [66402] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2069), 1, - anon_sym_COMMA, - ACTIONS(2099), 1, - anon_sym_RPAREN, - STATE(1454), 1, - aux_sym__collection_elements_repeat1, - [66415] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2939), 1, - anon_sym_COMMA, + ACTIONS(1997), 1, + anon_sym_RBRACE, ACTIONS(2942), 1, - anon_sym_RBRACE, - STATE(1401), 1, - aux_sym_dictionary_repeat1, - [66428] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2452), 1, - sym_identifier, - ACTIONS(2944), 1, - anon_sym_import, - STATE(1654), 1, - sym_dotted_name, - [66441] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2438), 1, anon_sym_COMMA, - ACTIONS(2440), 1, - anon_sym_RBRACE, - STATE(1408), 1, - aux_sym_dictionary_repeat1, - [66454] = 2, + STATE(1477), 1, + aux_sym_match_mapping_pattern_repeat1, + [67902] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1525), 3, - sym__newline, - anon_sym_in, - anon_sym_SEMI, - [66463] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1895), 1, + ACTIONS(1916), 1, anon_sym_RPAREN, - ACTIONS(2931), 1, + ACTIONS(2944), 1, + anon_sym_COMMA, + STATE(1420), 1, + aux_sym_match_class_pattern_repeat2, + [67915] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2740), 3, + sym__newline, + anon_sym_COMMA, + anon_sym_SEMI, + [67924] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2936), 1, sym_identifier, - STATE(1558), 1, + ACTIONS(2946), 1, + anon_sym_RPAREN, + STATE(1592), 1, sym_match_keyword_pattern, - [66476] = 3, + [67937] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2948), 1, + anon_sym_RPAREN, + ACTIONS(2950), 1, + anon_sym_COMMA, + STATE(1427), 1, + aux_sym_match_class_pattern_repeat1, + [67950] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2729), 3, + sym__newline, + anon_sym_COMMA, + anon_sym_SEMI, + [67959] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(2946), 1, - anon_sym_EQ, - ACTIONS(2948), 2, - sym__newline, - anon_sym_SEMI, - [66487] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2880), 1, - anon_sym_COMMA, - ACTIONS(2950), 1, - anon_sym_RBRACK, - STATE(1492), 1, - aux_sym_index_expression_list_repeat1, - [66500] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2952), 1, - anon_sym_COMMA, - ACTIONS(2954), 1, - anon_sym_RBRACE, - STATE(1401), 1, - aux_sym_dictionary_repeat1, - [66513] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2956), 1, - anon_sym_COMMA, - ACTIONS(2958), 1, - anon_sym_RBRACE, - STATE(1401), 1, - aux_sym_dictionary_repeat1, - [66526] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2382), 1, - anon_sym_COMMA, - ACTIONS(2384), 1, - anon_sym_RBRACE, - STATE(1485), 1, - aux_sym_dictionary_repeat1, - [66539] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2191), 1, anon_sym_RPAREN, - ACTIONS(2193), 1, + ACTIONS(2953), 1, anon_sym_COMMA, - STATE(1415), 1, - aux_sym_argument_list_repeat1, - [66552] = 4, + STATE(1444), 1, + aux_sym_match_class_pattern_repeat2, + [67972] = 4, ACTIONS(3), 1, sym_comment, + ACTIONS(2955), 1, + anon_sym_RPAREN, + ACTIONS(2957), 1, + anon_sym_COMMA, + STATE(1430), 1, + aux_sym_argument_list_repeat1, + [67985] = 3, + ACTIONS(2086), 1, + sym_comment, + ACTIONS(2608), 1, + anon_sym_RBRACE, + ACTIONS(2610), 2, + anon_sym_LBRACE2, + aux_sym_format_specifier_token1, + [67996] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2090), 1, + anon_sym_COMMA, + ACTIONS(2220), 1, + anon_sym_RPAREN, + STATE(1471), 1, + aux_sym__collection_elements_repeat1, + [68009] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2936), 1, + sym_identifier, ACTIONS(2960), 1, anon_sym_RPAREN, - ACTIONS(2962), 1, - anon_sym_COMMA, - STATE(1417), 1, - aux_sym_argument_list_repeat1, - [66565] = 4, + STATE(1592), 1, + sym_match_keyword_pattern, + [68022] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1895), 1, + ACTIONS(2962), 1, anon_sym_RPAREN, ACTIONS(2964), 1, anon_sym_COMMA, - STATE(1422), 1, - aux_sym_match_class_pattern_repeat2, - [66578] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2880), 1, - anon_sym_COMMA, - ACTIONS(2966), 1, - anon_sym_RBRACK, - STATE(1492), 1, - aux_sym_index_expression_list_repeat1, - [66591] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2968), 1, - anon_sym_RPAREN, - ACTIONS(2970), 1, - anon_sym_COMMA, - STATE(1392), 1, + STATE(1430), 1, aux_sym_argument_list_repeat1, - [66604] = 4, + [68035] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2902), 1, - anon_sym_COMMA, - ACTIONS(2972), 1, - anon_sym_RBRACK, - STATE(1386), 1, - aux_sym_type_parameters_repeat1, - [66617] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2974), 1, - anon_sym_RPAREN, - ACTIONS(2976), 1, - anon_sym_COMMA, - STATE(1392), 1, - aux_sym_argument_list_repeat1, - [66630] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2978), 1, - anon_sym_RPAREN, - ACTIONS(2980), 1, - anon_sym_COMMA, - STATE(1392), 1, - aux_sym_argument_list_repeat1, - [66643] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2613), 1, + ACTIONS(2638), 1, anon_sym_COLON2, - ACTIONS(2722), 1, + ACTIONS(2731), 1, anon_sym_RBRACE, - STATE(1641), 1, + STATE(1646), 1, sym_format_specifier, - [66656] = 2, + [68048] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(2780), 3, + ACTIONS(2966), 1, + anon_sym_EQ, + ACTIONS(2968), 2, + sym__newline, + anon_sym_SEMI, + [68059] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2970), 3, + anon_sym_RPAREN, + anon_sym_COMMA, + anon_sym_COLON, + [68068] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2811), 1, + anon_sym_as, + ACTIONS(2729), 2, + anon_sym_RPAREN, + anon_sym_COMMA, + [68079] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1916), 1, + anon_sym_RPAREN, + ACTIONS(2936), 1, + sym_identifier, + STATE(1592), 1, + sym_match_keyword_pattern, + [68092] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2757), 1, + anon_sym_RPAREN, + ACTIONS(2972), 1, + anon_sym_COMMA, + STATE(1440), 1, + aux_sym__import_list_repeat1, + [68105] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2975), 1, + anon_sym_RPAREN, + ACTIONS(2977), 1, + anon_sym_COMMA, + STATE(1430), 1, + aux_sym_argument_list_repeat1, + [68118] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2979), 3, sym__newline, anon_sym_COMMA, anon_sym_SEMI, - [66665] = 2, + [68127] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2982), 3, - sym__newline, + ACTIONS(2981), 1, anon_sym_COMMA, - anon_sym_SEMI, - [66674] = 4, - ACTIONS(3), 1, - sym_comment, ACTIONS(2984), 1, - anon_sym_RPAREN, + anon_sym_RBRACK, + STATE(1443), 1, + aux_sym_index_expression_list_repeat1, + [68140] = 4, + ACTIONS(3), 1, + sym_comment, ACTIONS(2986), 1, - anon_sym_COMMA, - STATE(1422), 1, - aux_sym_match_class_pattern_repeat2, - [66687] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2069), 1, - anon_sym_COMMA, - ACTIONS(2187), 1, anon_sym_RPAREN, - STATE(1454), 1, - aux_sym__collection_elements_repeat1, - [66700] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1958), 1, - anon_sym_RBRACE, - ACTIONS(2989), 1, + ACTIONS(2988), 1, anon_sym_COMMA, - STATE(1480), 1, - aux_sym_match_mapping_pattern_repeat1, - [66713] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2444), 1, - anon_sym_COMMA, - ACTIONS(2446), 1, - anon_sym_RBRACE, - STATE(1426), 1, - aux_sym_dictionary_repeat1, - [66726] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2991), 1, - anon_sym_COMMA, - ACTIONS(2993), 1, - anon_sym_RBRACE, - STATE(1401), 1, - aux_sym_dictionary_repeat1, - [66739] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2995), 1, - anon_sym_COMMA, - ACTIONS(2997), 1, - anon_sym_RBRACE, - STATE(1401), 1, - aux_sym_dictionary_repeat1, - [66752] = 4, + STATE(1444), 1, + aux_sym_match_class_pattern_repeat2, + [68153] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(2900), 1, anon_sym_RPAREN, - ACTIONS(2999), 1, + ACTIONS(2991), 1, anon_sym_COMMA, - STATE(1376), 1, + STATE(1483), 1, aux_sym__parameters_repeat1, - [66765] = 4, + [68166] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(2205), 1, + ACTIONS(2337), 1, + anon_sym_from, + ACTIONS(2341), 2, + sym__newline, + anon_sym_SEMI, + [68177] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2090), 1, + anon_sym_COMMA, + ACTIONS(2129), 1, anon_sym_RPAREN, - ACTIONS(2207), 1, - anon_sym_COMMA, - STATE(1435), 1, - aux_sym_argument_list_repeat1, - [66778] = 4, + STATE(1471), 1, + aux_sym__collection_elements_repeat1, + [68190] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(3001), 1, - anon_sym_RPAREN, - ACTIONS(3003), 1, + ACTIONS(2993), 1, anon_sym_COMMA, - STATE(1436), 1, - aux_sym_argument_list_repeat1, - [66791] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2931), 1, - sym_identifier, - ACTIONS(3005), 1, - anon_sym_RPAREN, - STATE(1558), 1, - sym_match_keyword_pattern, - [66804] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2880), 1, - anon_sym_COMMA, - ACTIONS(3007), 1, - anon_sym_RBRACK, - STATE(1492), 1, - aux_sym_index_expression_list_repeat1, - [66817] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3009), 1, - anon_sym_COMMA, - ACTIONS(3011), 1, + ACTIONS(2996), 1, anon_sym_RBRACE, - STATE(1401), 1, + STATE(1448), 1, aux_sym_dictionary_repeat1, - [66830] = 4, + [68203] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(3013), 1, + ACTIONS(2998), 1, anon_sym_COMMA, - ACTIONS(3015), 1, + ACTIONS(3000), 1, + anon_sym_RBRACE, + STATE(1448), 1, + aux_sym_dictionary_repeat1, + [68216] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3002), 1, + anon_sym_COMMA, + ACTIONS(3004), 1, + anon_sym_RBRACE, + STATE(1448), 1, + aux_sym_dictionary_repeat1, + [68229] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2106), 1, + anon_sym_DOT, + ACTIONS(2170), 1, anon_sym_COLON, - STATE(1452), 1, - aux_sym_with_clause_repeat1, - [66843] = 4, + STATE(1039), 1, + aux_sym_match_value_pattern_repeat1, + [68242] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(3017), 1, + ACTIONS(2228), 1, anon_sym_RPAREN, - ACTIONS(3019), 1, + ACTIONS(2230), 1, anon_sym_COMMA, - STATE(1392), 1, + STATE(1457), 1, aux_sym_argument_list_repeat1, - [66856] = 4, + [68255] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(3021), 1, + ACTIONS(3006), 1, anon_sym_RPAREN, - ACTIONS(3023), 1, + ACTIONS(3008), 1, anon_sym_COMMA, - STATE(1392), 1, + STATE(1458), 1, aux_sym_argument_list_repeat1, - [66869] = 4, + [68268] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(3025), 1, - anon_sym_RPAREN, - ACTIONS(3027), 1, + ACTIONS(3010), 1, anon_sym_COMMA, - STATE(1392), 1, - aux_sym_argument_list_repeat1, - [66882] = 4, + ACTIONS(3012), 1, + anon_sym_RBRACK, + STATE(1460), 1, + aux_sym_index_expression_list_repeat1, + [68281] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1893), 1, - anon_sym_RPAREN, - ACTIONS(3029), 1, + ACTIONS(2090), 1, anon_sym_COMMA, - STATE(1449), 1, - aux_sym_match_class_pattern_repeat2, - [66895] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3031), 1, + ACTIONS(3014), 1, anon_sym_RPAREN, - ACTIONS(3033), 1, - anon_sym_COMMA, - STATE(1495), 1, - aux_sym_with_clause_repeat1, - [66908] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2069), 1, - anon_sym_COMMA, - ACTIONS(3035), 1, - anon_sym_RPAREN, - STATE(1441), 1, + STATE(1309), 1, aux_sym__collection_elements_repeat1, - [66921] = 4, + [68294] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2595), 1, + ACTIONS(3016), 1, anon_sym_RPAREN, - ACTIONS(3037), 1, + ACTIONS(3018), 1, anon_sym_COMMA, - STATE(1286), 1, - aux_sym__collection_elements_repeat1, - [66934] = 3, + STATE(1430), 1, + aux_sym_argument_list_repeat1, + [68307] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(3039), 1, - anon_sym_COLON, - ACTIONS(2794), 2, + ACTIONS(3020), 1, anon_sym_RPAREN, + ACTIONS(3022), 1, anon_sym_COMMA, - [66945] = 4, + STATE(1430), 1, + aux_sym_argument_list_repeat1, + [68320] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(3041), 1, + ACTIONS(3024), 1, anon_sym_RPAREN, - ACTIONS(3043), 1, + ACTIONS(3026), 1, anon_sym_COMMA, + STATE(1430), 1, + aux_sym_argument_list_repeat1, + [68333] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3028), 1, + anon_sym_RPAREN, + ACTIONS(3030), 1, + anon_sym_COMMA, + STATE(1430), 1, + aux_sym_argument_list_repeat1, + [68346] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3032), 1, + anon_sym_COMMA, + ACTIONS(3034), 1, + anon_sym_RBRACK, STATE(1443), 1, - aux_sym__parameters_repeat1, - [66958] = 2, + aux_sym_index_expression_list_repeat1, + [68359] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(3041), 3, - anon_sym_RPAREN, + ACTIONS(2090), 1, anon_sym_COMMA, - anon_sym_COLON, - [66967] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3046), 3, + ACTIONS(2180), 1, anon_sym_RPAREN, + STATE(1471), 1, + aux_sym__collection_elements_repeat1, + [68372] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2473), 1, + sym_identifier, + ACTIONS(3036), 1, + anon_sym_import, + STATE(1709), 1, + sym_dotted_name, + [68385] = 3, + ACTIONS(2086), 1, + sym_comment, + ACTIONS(2558), 1, + anon_sym_RBRACE, + ACTIONS(2560), 2, + anon_sym_LBRACE2, + aux_sym_format_specifier_token1, + [68396] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2090), 1, anon_sym_COMMA, - anon_sym_COLON, - [66976] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3048), 3, - anon_sym_LPAREN, - anon_sym_COLON, - anon_sym_EQ, - [66985] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2790), 3, + ACTIONS(2218), 1, anon_sym_RPAREN, + STATE(1471), 1, + aux_sym__collection_elements_repeat1, + [68409] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2580), 1, + sym_identifier, + STATE(1438), 1, + sym_dotted_name, + STATE(1600), 1, + sym_aliased_import, + [68422] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3038), 1, anon_sym_COMMA, - anon_sym_COLON, - [66994] = 4, + ACTIONS(3040), 1, + anon_sym_RBRACE, + STATE(1448), 1, + aux_sym_dictionary_repeat1, + [68435] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2646), 1, + anon_sym_RPAREN, + ACTIONS(2809), 1, + anon_sym_COMMA, + STATE(1414), 1, + aux_sym__import_list_repeat1, + [68448] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2232), 1, + anon_sym_RPAREN, + ACTIONS(2234), 1, + anon_sym_COMMA, + STATE(1521), 1, + aux_sym_argument_list_repeat1, + [68461] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3042), 1, + anon_sym_RPAREN, + ACTIONS(3044), 1, + anon_sym_COMMA, + STATE(1475), 1, + aux_sym_argument_list_repeat1, + [68474] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3010), 1, + anon_sym_COMMA, + ACTIONS(3046), 1, + anon_sym_RBRACK, + STATE(1460), 1, + aux_sym_index_expression_list_repeat1, + [68487] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2679), 1, + anon_sym_RPAREN, + ACTIONS(3048), 1, + anon_sym_COMMA, + STATE(1311), 1, + aux_sym__collection_elements_repeat1, + [68500] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(3050), 1, anon_sym_RPAREN, ACTIONS(3052), 1, anon_sym_COMMA, - STATE(1392), 1, + STATE(1430), 1, aux_sym_argument_list_repeat1, - [67007] = 4, + [68513] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(3005), 1, - anon_sym_RPAREN, ACTIONS(3054), 1, + anon_sym_RPAREN, + ACTIONS(3056), 1, anon_sym_COMMA, - STATE(1422), 1, - aux_sym_match_class_pattern_repeat2, - [67020] = 4, + STATE(1430), 1, + aux_sym_argument_list_repeat1, + [68526] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(3056), 1, - anon_sym_RPAREN, ACTIONS(3058), 1, anon_sym_COMMA, - STATE(1392), 1, - aux_sym_argument_list_repeat1, - [67033] = 4, - ACTIONS(3), 1, - sym_comment, ACTIONS(3060), 1, - anon_sym_RPAREN, - ACTIONS(3062), 1, - anon_sym_COMMA, - STATE(1392), 1, - aux_sym_argument_list_repeat1, - [67046] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3013), 1, - anon_sym_COMMA, - ACTIONS(3064), 1, anon_sym_COLON, - STATE(1325), 1, + STATE(1400), 1, aux_sym_with_clause_repeat1, - [67059] = 4, + [68539] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3062), 1, + anon_sym_RPAREN, + ACTIONS(3064), 1, + anon_sym_COMMA, + STATE(1430), 1, + aux_sym_argument_list_repeat1, + [68552] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2589), 1, - anon_sym_LPAREN, ACTIONS(3066), 1, - anon_sym_COLON, - STATE(1608), 1, - sym_argument_list, - [67072] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2595), 1, anon_sym_RPAREN, ACTIONS(3068), 1, anon_sym_COMMA, - STATE(1286), 1, - aux_sym__collection_elements_repeat1, - [67085] = 3, - ACTIONS(2065), 1, - sym_comment, - ACTIONS(2581), 1, - anon_sym_RBRACE, - ACTIONS(2583), 2, - anon_sym_LBRACE2, - aux_sym_format_specifier_token1, - [67096] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2914), 1, - anon_sym_if, - ACTIONS(3070), 1, - anon_sym_COLON, - STATE(1621), 1, - sym_guard, - [67109] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2613), 1, - anon_sym_COLON2, - ACTIONS(3072), 1, - anon_sym_RBRACE, - STATE(1699), 1, - sym_format_specifier, - [67122] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2613), 1, - anon_sym_COLON2, - ACTIONS(2705), 1, - anon_sym_RBRACE, - STATE(1692), 1, - sym_format_specifier, - [67135] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3005), 1, - anon_sym_RPAREN, - ACTIONS(3054), 1, - anon_sym_COMMA, - STATE(1472), 1, - aux_sym_match_class_pattern_repeat2, - [67148] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2726), 1, - sym_identifier, - STATE(1382), 1, - sym_dotted_name, - STATE(1540), 1, - sym_aliased_import, - [67161] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2010), 1, - anon_sym_COMMA, - ACTIONS(3074), 1, - anon_sym_in, - STATE(1010), 1, - aux_sym__patterns_repeat1, - [67174] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3076), 1, - anon_sym_RPAREN, - ACTIONS(3078), 1, - anon_sym_COMMA, - STATE(1392), 1, + STATE(1430), 1, aux_sym_argument_list_repeat1, - [67187] = 2, + [68565] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2390), 3, + ACTIONS(3070), 1, + anon_sym_COMMA, + ACTIONS(3073), 1, + anon_sym_RBRACE, + STATE(1477), 1, + aux_sym_match_mapping_pattern_repeat1, + [68578] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3058), 1, + anon_sym_COMMA, + ACTIONS(3075), 1, + anon_sym_COLON, + STATE(1474), 1, + aux_sym_with_clause_repeat1, + [68591] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3077), 1, + anon_sym_COMMA, + ACTIONS(3079), 1, + anon_sym_RBRACE, + STATE(1448), 1, + aux_sym_dictionary_repeat1, + [68604] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1910), 1, + anon_sym_RPAREN, + ACTIONS(3081), 1, + anon_sym_COMMA, + STATE(1280), 1, + aux_sym_open_sequence_match_pattern_repeat1, + [68617] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2067), 1, + anon_sym_COLON, + ACTIONS(3083), 1, + anon_sym_COMMA, + STATE(1487), 1, + aux_sym__parameters_repeat1, + [68630] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2194), 1, + anon_sym_RPAREN, + ACTIONS(2196), 1, + anon_sym_COMMA, + STATE(1473), 1, + aux_sym_argument_list_repeat1, + [68643] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2067), 1, + anon_sym_RPAREN, + ACTIONS(3085), 1, + anon_sym_COMMA, + STATE(1519), 1, + aux_sym__parameters_repeat1, + [68656] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3087), 1, + anon_sym_RPAREN, + ACTIONS(3089), 1, + anon_sym_COMMA, + STATE(1513), 1, + aux_sym_with_clause_repeat1, + [68669] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1546), 3, sym__newline, - anon_sym_EQ, + anon_sym_in, anon_sym_SEMI, - [67196] = 2, + [68678] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1274), 3, + ACTIONS(2222), 1, anon_sym_RPAREN, + ACTIONS(2224), 1, anon_sym_COMMA, + STATE(1413), 1, + aux_sym_argument_list_repeat1, + [68691] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2970), 1, anon_sym_COLON, - [67205] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3080), 3, - anon_sym_RPAREN, - anon_sym_COMMA, - anon_sym_COLON, - [67214] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2891), 1, - anon_sym_RPAREN, - ACTIONS(3082), 1, - anon_sym_COMMA, - STATE(1399), 1, - aux_sym_match_class_pattern_repeat1, - [67227] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2931), 1, - sym_identifier, - ACTIONS(3084), 1, - anon_sym_RPAREN, - STATE(1558), 1, - sym_match_keyword_pattern, - [67240] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3086), 1, - anon_sym_RPAREN, - ACTIONS(3088), 1, - anon_sym_COMMA, - STATE(1468), 1, - aux_sym_match_class_pattern_repeat1, - [67253] = 4, - ACTIONS(3), 1, - sym_comment, ACTIONS(3091), 1, anon_sym_COMMA, - ACTIONS(3093), 1, + STATE(1487), 1, + aux_sym__parameters_repeat1, + [68704] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3094), 1, + anon_sym_RPAREN, + ACTIONS(3096), 1, + anon_sym_COMMA, + STATE(1500), 1, + aux_sym_match_class_pattern_repeat1, + [68717] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3098), 1, + anon_sym_COMMA, + ACTIONS(3100), 1, anon_sym_RBRACK, - STATE(1503), 1, + STATE(1528), 1, aux_sym_open_sequence_match_pattern_repeat1, - [67266] = 2, + [68730] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1517), 3, - sym__newline, - anon_sym_in, - anon_sym_SEMI, - [67275] = 4, + ACTIONS(3102), 1, + anon_sym_RPAREN, + ACTIONS(3104), 1, + anon_sym_COMMA, + STATE(1434), 1, + aux_sym_argument_list_repeat1, + [68743] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2048), 1, + ACTIONS(2618), 1, + anon_sym_LPAREN, + ACTIONS(3106), 1, anon_sym_COLON, - ACTIONS(3095), 1, + STATE(1634), 1, + sym_argument_list, + [68756] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2638), 1, + anon_sym_COLON2, + ACTIONS(3108), 1, + anon_sym_RBRACE, + STATE(1621), 1, + sym_format_specifier, + [68769] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3094), 1, + anon_sym_RPAREN, + ACTIONS(3110), 1, anon_sym_COMMA, STATE(1506), 1, - aux_sym__parameters_repeat1, - [67288] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3084), 1, - anon_sym_RPAREN, - ACTIONS(3097), 1, - anon_sym_COMMA, - STATE(1422), 1, aux_sym_match_class_pattern_repeat2, - [67301] = 4, + [68782] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2010), 1, - anon_sym_COMMA, - ACTIONS(3099), 1, - anon_sym_in, - STATE(1010), 1, - aux_sym__patterns_repeat1, - [67314] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2069), 1, - anon_sym_COMMA, - ACTIONS(3101), 1, + ACTIONS(2742), 3, anon_sym_RPAREN, - STATE(1259), 1, - aux_sym__collection_elements_repeat1, - [67327] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2293), 1, - anon_sym_from, - ACTIONS(2297), 2, - sym__newline, - anon_sym_SEMI, - [67338] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2931), 1, - sym_identifier, - ACTIONS(3103), 1, - anon_sym_RPAREN, - STATE(1558), 1, - sym_match_keyword_pattern, - [67351] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3105), 1, - anon_sym_COMMA, - ACTIONS(3107), 1, - anon_sym_RBRACE, - STATE(1424), 1, - aux_sym_match_mapping_pattern_repeat1, - [67364] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2091), 1, - anon_sym_DOT, - ACTIONS(2114), 1, - anon_sym_COLON, - STATE(1032), 1, - aux_sym_match_value_pattern_repeat1, - [67377] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2798), 1, - anon_sym_EQ, - ACTIONS(2794), 2, anon_sym_COMMA, anon_sym_COLON, - [67388] = 4, + [68791] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(3109), 1, - anon_sym_COMMA, + ACTIONS(2902), 1, + anon_sym_if, ACTIONS(3112), 1, - anon_sym_RBRACE, - STATE(1480), 1, - aux_sym_match_mapping_pattern_repeat1, - [67401] = 4, + anon_sym_COLON, + STATE(1647), 1, + sym_guard, + [68804] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2232), 1, + anon_sym_RPAREN, + ACTIONS(2234), 1, + anon_sym_COMMA, + STATE(1523), 1, + aux_sym_argument_list_repeat1, + [68817] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(3114), 1, anon_sym_RPAREN, ACTIONS(3116), 1, anon_sym_COMMA, - STATE(1392), 1, + STATE(1525), 1, aux_sym_argument_list_repeat1, - [67414] = 3, - ACTIONS(2065), 1, - sym_comment, - ACTIONS(2490), 1, - anon_sym_RBRACE, - ACTIONS(2492), 2, - anon_sym_LBRACE2, - aux_sym_format_specifier_token1, - [67425] = 4, + [68830] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(3118), 1, - anon_sym_RPAREN, + anon_sym_COMMA, ACTIONS(3120), 1, - anon_sym_COMMA, - STATE(1392), 1, - aux_sym_argument_list_repeat1, - [67438] = 4, - ACTIONS(3), 1, + anon_sym_RBRACE, + STATE(1423), 1, + aux_sym_match_mapping_pattern_repeat1, + [68843] = 3, + ACTIONS(2086), 1, sym_comment, - ACTIONS(1889), 1, - anon_sym_RPAREN, ACTIONS(3122), 1, - anon_sym_COMMA, - STATE(1242), 1, - aux_sym_open_sequence_match_pattern_repeat1, - [67451] = 4, + anon_sym_RBRACE, + ACTIONS(3124), 2, + anon_sym_LBRACE2, + aux_sym_format_specifier_token1, + [68854] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(3124), 1, - anon_sym_COMMA, + ACTIONS(1914), 1, + anon_sym_RPAREN, ACTIONS(3126), 1, - anon_sym_RBRACE, - STATE(1401), 1, - aux_sym_dictionary_repeat1, - [67464] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2713), 3, - sym__newline, anon_sym_COMMA, - anon_sym_SEMI, - [67473] = 4, + STATE(1427), 1, + aux_sym_match_class_pattern_repeat1, + [68867] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2824), 1, - anon_sym_RPAREN, + ACTIONS(3010), 1, + anon_sym_COMMA, ACTIONS(3128), 1, - anon_sym_COMMA, - STATE(1384), 1, - aux_sym__import_list_repeat1, - [67486] = 4, + anon_sym_RBRACK, + STATE(1460), 1, + aux_sym_index_expression_list_repeat1, + [68880] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2824), 1, - anon_sym_RPAREN, - ACTIONS(3130), 1, - anon_sym_COMMA, - STATE(1384), 1, - aux_sym__import_list_repeat1, - [67499] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2069), 1, - anon_sym_COMMA, - ACTIONS(2209), 1, - anon_sym_RPAREN, - STATE(1454), 1, - aux_sym__collection_elements_repeat1, - [67512] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2472), 1, - anon_sym_COMMA, - ACTIONS(2474), 1, + ACTIONS(2638), 1, + anon_sym_COLON2, + ACTIONS(2797), 1, anon_sym_RBRACE, - STATE(1389), 1, - aux_sym_dictionary_repeat1, - [67525] = 4, + STATE(1741), 1, + sym_format_specifier, + [68893] = 4, ACTIONS(3), 1, sym_comment, + ACTIONS(2413), 1, + sym_identifier, + STATE(1329), 1, + sym_dotted_name, + STATE(1428), 1, + sym_aliased_import, + [68906] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2031), 1, + anon_sym_COMMA, + ACTIONS(3130), 1, + anon_sym_in, + STATE(1018), 1, + aux_sym__patterns_repeat1, + [68919] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1914), 1, + anon_sym_RPAREN, + ACTIONS(2936), 1, + sym_identifier, + STATE(1592), 1, + sym_match_keyword_pattern, + [68932] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1914), 1, + anon_sym_RPAREN, ACTIONS(3132), 1, anon_sym_COMMA, + STATE(1444), 1, + aux_sym_match_class_pattern_repeat2, + [68945] = 3, + ACTIONS(3), 1, + sym_comment, ACTIONS(3134), 1, - anon_sym_RBRACE, - STATE(1401), 1, - aux_sym_dictionary_repeat1, - [67538] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3136), 1, + anon_sym_COLON, + ACTIONS(2853), 2, + anon_sym_RPAREN, anon_sym_COMMA, - ACTIONS(3138), 1, - anon_sym_RBRACK, - STATE(1378), 1, - aux_sym_index_expression_list_repeat1, - [67551] = 4, + [68956] = 3, + ACTIONS(2086), 1, + sym_comment, + ACTIONS(2562), 1, + anon_sym_RBRACE, + ACTIONS(2564), 2, + anon_sym_LBRACE2, + aux_sym_format_specifier_token1, + [68967] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2589), 1, + ACTIONS(1550), 3, + sym__newline, + anon_sym_in, + anon_sym_SEMI, + [68976] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3136), 3, anon_sym_LPAREN, - ACTIONS(3140), 1, anon_sym_COLON, - STATE(1666), 1, - sym_argument_list, - [67564] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2613), 1, - anon_sym_COLON2, - ACTIONS(3142), 1, - anon_sym_RBRACE, - STATE(1644), 1, - sym_format_specifier, - [67577] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1017), 1, - anon_sym_RPAREN, - ACTIONS(3144), 1, - anon_sym_COMMA, - STATE(1325), 1, - aux_sym_with_clause_repeat1, - [67590] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2010), 1, - anon_sym_COMMA, - ACTIONS(3146), 1, - anon_sym_in, - STATE(1010), 1, - aux_sym__patterns_repeat1, - [67603] = 3, - ACTIONS(2065), 1, - sym_comment, - ACTIONS(3148), 1, - anon_sym_RBRACE, - ACTIONS(3150), 2, - anon_sym_LBRACE2, - aux_sym_format_specifier_token1, - [67614] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2593), 1, - anon_sym_LBRACK, - ACTIONS(3152), 1, anon_sym_EQ, - STATE(1647), 1, - sym_type_parameters, - [67627] = 4, + [68985] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2376), 1, - sym_identifier, - STATE(1306), 1, - sym_dotted_name, - STATE(1486), 1, - sym_aliased_import, - [67640] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2010), 1, + ACTIONS(3138), 1, anon_sym_COMMA, - ACTIONS(3154), 1, - anon_sym_in, - STATE(1010), 1, - aux_sym__patterns_repeat1, - [67653] = 2, + ACTIONS(3141), 1, + anon_sym_RBRACK, + STATE(1511), 1, + aux_sym_type_parameters_repeat1, + [68998] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2748), 3, + ACTIONS(3143), 3, anon_sym_RPAREN, anon_sym_COMMA, anon_sym_COLON, - [67662] = 3, - ACTIONS(2065), 1, + [69007] = 4, + ACTIONS(3), 1, sym_comment, - ACTIONS(2486), 1, + ACTIONS(1018), 1, + anon_sym_RPAREN, + ACTIONS(3145), 1, + anon_sym_COMMA, + STATE(1400), 1, + aux_sym_with_clause_repeat1, + [69020] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3147), 1, + sym_identifier, + ACTIONS(3149), 1, + sym_match_wildcard_pattern, + STATE(1312), 1, + sym_match_capture_pattern, + [69033] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2031), 1, + anon_sym_COMMA, + ACTIONS(3151), 1, + anon_sym_in, + STATE(1018), 1, + aux_sym__patterns_repeat1, + [69046] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2857), 1, + anon_sym_EQ, + ACTIONS(2853), 2, + anon_sym_COMMA, + anon_sym_COLON, + [69057] = 3, + ACTIONS(2086), 1, + sym_comment, + ACTIONS(2591), 1, anon_sym_RBRACE, - ACTIONS(2488), 2, + ACTIONS(2593), 2, anon_sym_LBRACE2, aux_sym_format_specifier_token1, - [67673] = 4, + [69068] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(1889), 1, + ACTIONS(3010), 1, + anon_sym_COMMA, + ACTIONS(3153), 1, anon_sym_RBRACK, - ACTIONS(3156), 1, - anon_sym_COMMA, - STATE(1242), 1, - aux_sym_open_sequence_match_pattern_repeat1, - [67686] = 4, + STATE(1460), 1, + aux_sym_index_expression_list_repeat1, + [69081] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2010), 1, + ACTIONS(2970), 1, + anon_sym_RPAREN, + ACTIONS(3155), 1, anon_sym_COMMA, + STATE(1519), 1, + aux_sym__parameters_repeat1, + [69094] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2618), 1, + anon_sym_LPAREN, ACTIONS(3158), 1, - anon_sym_in, - STATE(1010), 1, - aux_sym__patterns_repeat1, - [67699] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2010), 1, - anon_sym_COMMA, - ACTIONS(3160), 1, - anon_sym_in, - STATE(1010), 1, - aux_sym__patterns_repeat1, - [67712] = 4, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3041), 1, anon_sym_COLON, + STATE(1663), 1, + sym_argument_list, + [69107] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3160), 1, + anon_sym_RPAREN, ACTIONS(3162), 1, anon_sym_COMMA, - STATE(1506), 1, - aux_sym__parameters_repeat1, - [67725] = 2, + STATE(1430), 1, + aux_sym_argument_list_repeat1, + [69120] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3165), 2, - sym__newline, - anon_sym_SEMI, - [67733] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3167), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - [67741] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3169), 1, - anon_sym_COMMA, - STATE(1294), 1, - aux_sym_open_sequence_match_pattern_repeat1, - [67751] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2357), 1, - anon_sym_COMMA, - STATE(1229), 1, - aux_sym_expression_list_repeat1, - [67761] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3171), 1, - anon_sym_COLON, - ACTIONS(3173), 1, - anon_sym_DASH_GT, - [67771] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2703), 1, - anon_sym_LPAREN, - STATE(1539), 1, - sym_parameters, - [67781] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3175), 1, - anon_sym_COLON, - ACTIONS(3177), 1, - anon_sym_DASH_GT, - [67791] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3179), 2, - sym__newline, - anon_sym_SEMI, - [67799] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1027), 2, - anon_sym_except, - anon_sym_finally, - [67807] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3181), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - [67815] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2837), 2, - sym__newline, - anon_sym_SEMI, - [67823] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3183), 2, - sym__newline, - anon_sym_SEMI, - [67831] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2607), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - [67839] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2794), 2, - anon_sym_COMMA, - anon_sym_COLON, - [67847] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1045), 2, - anon_sym_except, - anon_sym_finally, - [67855] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3185), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - [67863] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3187), 2, - sym__newline, - anon_sym_SEMI, - [67871] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3189), 2, - anon_sym_COMMA, - anon_sym_RBRACK, - [67879] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3191), 2, - sym__newline, - anon_sym_SEMI, - [67887] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3193), 2, + ACTIONS(2881), 3, anon_sym_RPAREN, anon_sym_COMMA, - [67895] = 2, + anon_sym_COLON, + [69129] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(3195), 2, - sym__newline, - anon_sym_SEMI, - [67903] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3197), 2, - sym__newline, - anon_sym_SEMI, - [67911] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3199), 2, + ACTIONS(3164), 1, + anon_sym_RPAREN, + ACTIONS(3166), 1, anon_sym_COMMA, - anon_sym_RBRACK, - [67919] = 2, + STATE(1430), 1, + aux_sym_argument_list_repeat1, + [69142] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3201), 2, - sym__newline, - anon_sym_SEMI, - [67927] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3203), 2, - sym__newline, - anon_sym_SEMI, - [67935] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3205), 2, - sym__newline, - anon_sym_SEMI, - [67943] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3207), 2, - sym__newline, - anon_sym_SEMI, - [67951] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3086), 2, + ACTIONS(3168), 3, anon_sym_RPAREN, anon_sym_COMMA, - [67959] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3209), 2, - sym__newline, - anon_sym_SEMI, - [67967] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1031), 2, - anon_sym_except, - anon_sym_finally, - [67975] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2236), 2, - sym__newline, - anon_sym_SEMI, - [67983] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1037), 2, - anon_sym_except, - anon_sym_finally, - [67991] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3211), 1, anon_sym_COLON, - ACTIONS(3213), 1, - anon_sym_DASH_GT, - [68001] = 2, + [69151] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2713), 2, + ACTIONS(3170), 1, anon_sym_RPAREN, + ACTIONS(3172), 1, anon_sym_COMMA, - [68009] = 3, + STATE(1430), 1, + aux_sym_argument_list_repeat1, + [69164] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(3215), 1, - anon_sym_COLON, - ACTIONS(3217), 1, - anon_sym_DASH_GT, - [68019] = 2, + ACTIONS(3174), 1, + anon_sym_RPAREN, + ACTIONS(3176), 1, + anon_sym_COMMA, + STATE(1430), 1, + aux_sym_argument_list_repeat1, + [69177] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(3219), 2, - anon_sym_COMMA, + ACTIONS(2638), 1, + anon_sym_COLON2, + ACTIONS(3178), 1, anon_sym_RBRACE, - [68027] = 3, + STATE(1656), 1, + sym_format_specifier, + [69190] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(3221), 1, - anon_sym_COLON, - ACTIONS(3223), 1, - anon_sym_DASH_GT, - [68037] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3225), 1, + ACTIONS(1910), 1, + anon_sym_RBRACK, + ACTIONS(3180), 1, anon_sym_COMMA, - ACTIONS(3227), 1, - anon_sym_RBRACE, - [68047] = 2, + STATE(1280), 1, + aux_sym_open_sequence_match_pattern_repeat1, + [69203] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2982), 2, - anon_sym_RPAREN, - anon_sym_COMMA, - [68055] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3229), 1, - anon_sym_COLON, - ACTIONS(3231), 1, - anon_sym_DASH_GT, - [68065] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3233), 2, - anon_sym_COLON, - anon_sym_DASH_GT, - [68073] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2460), 1, - anon_sym_as, - ACTIONS(2462), 1, - anon_sym_COLON, - [68083] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2295), 1, - anon_sym_COMMA, - STATE(1278), 1, - aux_sym_expression_list_repeat1, - [68093] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2464), 1, - anon_sym_as, - ACTIONS(2466), 1, - anon_sym_COLON, - [68103] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2424), 2, + ACTIONS(2489), 3, sym__newline, + anon_sym_EQ, anon_sym_SEMI, - [68111] = 3, + [69212] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(2468), 1, - anon_sym_as, - ACTIONS(2470), 1, - anon_sym_COLON, - [68121] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2918), 1, + ACTIONS(2031), 1, anon_sym_COMMA, - ACTIONS(3235), 1, + ACTIONS(3182), 1, + anon_sym_in, + STATE(1018), 1, + aux_sym__patterns_repeat1, + [69225] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2031), 1, + anon_sym_COMMA, + ACTIONS(3184), 1, + anon_sym_in, + STATE(1018), 1, + aux_sym__patterns_repeat1, + [69238] = 4, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2031), 1, + anon_sym_COMMA, + ACTIONS(3186), 1, + anon_sym_in, + STATE(1018), 1, + aux_sym__patterns_repeat1, + [69251] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1088), 2, + anon_sym_except, + anon_sym_finally, + [69259] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3188), 2, anon_sym_RPAREN, - [68131] = 3, + anon_sym_COMMA, + [69267] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3237), 1, - anon_sym_COLON, - ACTIONS(3239), 1, - anon_sym_DASH_GT, - [68141] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3241), 2, + ACTIONS(3190), 2, anon_sym_COMMA, anon_sym_RBRACK, - [68149] = 3, + [69275] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3243), 1, - anon_sym_COMMA, - STATE(1484), 1, - aux_sym_open_sequence_match_pattern_repeat1, - [68159] = 3, + ACTIONS(3192), 2, + anon_sym_COLON, + anon_sym_DASH_GT, + [69283] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(2703), 1, - anon_sym_LPAREN, - STATE(1513), 1, - sym_parameters, - [68169] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2984), 2, - anon_sym_RPAREN, - anon_sym_COMMA, - [68177] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3245), 1, - sym_integer, - ACTIONS(3247), 1, - sym_float, - [68187] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2931), 1, + ACTIONS(3194), 1, sym_identifier, - STATE(1558), 1, - sym_match_keyword_pattern, - [68197] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3249), 1, - sym_identifier, - STATE(1581), 1, + STATE(1609), 1, sym_match_capture_pattern, - [68207] = 3, + [69293] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(2091), 1, - anon_sym_DOT, - STATE(1478), 1, - aux_sym_match_value_pattern_repeat1, - [68217] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3251), 2, - anon_sym_COMMA, - anon_sym_RBRACE, - [68225] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3107), 1, - anon_sym_RBRACE, - ACTIONS(3253), 1, - anon_sym_COMMA, - [68235] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2428), 1, - anon_sym_as, - ACTIONS(2432), 1, + ACTIONS(3196), 1, anon_sym_COLON, - [68245] = 3, + ACTIONS(3198), 1, + anon_sym_DASH_GT, + [69303] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3255), 1, - sym_integer, - ACTIONS(3257), 1, - sym_float, - [68255] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2232), 1, - anon_sym_COMMA, - STATE(1251), 1, - aux_sym_expression_list_repeat1, - [68265] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3259), 2, - sym__newline, - anon_sym_SEMI, - [68273] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1992), 1, - anon_sym_RBRACE, - ACTIONS(3261), 1, - anon_sym_COMMA, - [68283] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2601), 2, + ACTIONS(2710), 2, anon_sym_RPAREN, anon_sym_COMMA, - [68291] = 2, + [69311] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3263), 2, + ACTIONS(3200), 2, + anon_sym_RPAREN, + anon_sym_COMMA, + [69319] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3202), 1, + anon_sym_COLON, + ACTIONS(3204), 1, + anon_sym_DASH_GT, + [69329] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2979), 2, + anon_sym_RPAREN, + anon_sym_COMMA, + [69337] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2106), 1, + anon_sym_DOT, + STATE(1451), 1, + aux_sym_match_value_pattern_repeat1, + [69347] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3206), 1, + anon_sym_COLON, + ACTIONS(3208), 1, + anon_sym_DASH_GT, + [69357] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2433), 2, + sym__newline, + anon_sym_SEMI, + [69365] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3210), 1, + anon_sym_COLON, + ACTIONS(3212), 1, + anon_sym_DASH_GT, + [69375] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2465), 1, + anon_sym_as, + ACTIONS(2467), 1, + anon_sym_COLON, + [69385] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3214), 1, + anon_sym_COLON, + ACTIONS(3216), 1, + anon_sym_DASH_GT, + [69395] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3218), 2, + anon_sym_COMMA, + anon_sym_RBRACE, + [69403] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3220), 2, anon_sym_COLON, anon_sym_DASH_GT, - [68299] = 2, + [69411] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(2404), 2, + ACTIONS(2469), 1, + anon_sym_as, + ACTIONS(2471), 1, + anon_sym_COLON, + [69421] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3222), 2, sym__newline, anon_sym_SEMI, - [68307] = 2, + [69429] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(3112), 2, + ACTIONS(3120), 1, + anon_sym_RBRACE, + ACTIONS(3224), 1, + anon_sym_COMMA, + [69439] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2497), 2, + sym__newline, + anon_sym_SEMI, + [69447] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1989), 1, + anon_sym_RBRACE, + ACTIONS(3226), 1, + anon_sym_COMMA, + [69457] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3228), 1, + sym_integer, + ACTIONS(3230), 1, + sym_float, + [69467] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3073), 2, anon_sym_COMMA, anon_sym_RBRACE, - [68315] = 3, + [69475] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3265), 1, - sym_integer, - ACTIONS(3267), 1, - sym_float, - [68325] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3269), 2, + ACTIONS(2948), 2, anon_sym_RPAREN, anon_sym_COMMA, - [68333] = 3, + [69483] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2703), 1, + ACTIONS(3232), 2, + sym__newline, + anon_sym_SEMI, + [69491] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3234), 1, + anon_sym_COLON, + ACTIONS(3236), 1, + anon_sym_DASH_GT, + [69501] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3238), 2, + sym__newline, + anon_sym_SEMI, + [69509] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3240), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [69517] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3242), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [69525] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2439), 1, + anon_sym_as, + ACTIONS(2441), 1, + anon_sym_COLON, + [69535] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3244), 2, + sym__newline, + anon_sym_SEMI, + [69543] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2702), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [69551] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3246), 2, + anon_sym_COMMA, + anon_sym_RBRACE, + [69559] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3248), 1, + anon_sym_COMMA, + ACTIONS(3250), 1, + anon_sym_RBRACE, + [69569] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2276), 2, + sym__newline, + anon_sym_SEMI, + [69577] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3252), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [69585] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3254), 2, + sym__newline, + anon_sym_SEMI, + [69593] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2877), 1, + anon_sym_LPAREN, + STATE(1576), 1, + sym_parameters, + [69603] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2393), 1, + anon_sym_COMMA, + STATE(1273), 1, + aux_sym_expression_list_repeat1, + [69613] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2877), 1, + anon_sym_LPAREN, + STATE(1560), 1, + sym_parameters, + [69623] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3256), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [69631] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3258), 1, + anon_sym_COLON, + ACTIONS(3260), 1, + anon_sym_DASH_GT, + [69641] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3262), 2, + anon_sym_COMMA, + anon_sym_RBRACK, + [69649] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2715), 2, + sym__newline, + anon_sym_SEMI, + [69657] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3264), 2, + sym__newline, + anon_sym_SEMI, + [69665] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3266), 2, + sym__newline, + anon_sym_SEMI, + [69673] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3268), 2, + sym__newline, + anon_sym_SEMI, + [69681] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1054), 2, + anon_sym_except, + anon_sym_finally, + [69689] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1022), 2, + anon_sym_except, + anon_sym_finally, + [69697] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3270), 2, + sym__newline, + anon_sym_SEMI, + [69705] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3272), 2, + sym__newline, + anon_sym_SEMI, + [69713] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3274), 2, + sym__newline, + anon_sym_SEMI, + [69721] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3276), 1, + sym_integer, + ACTIONS(3278), 1, + sym_float, + [69731] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2260), 1, + anon_sym_COMMA, + STATE(1272), 1, + aux_sym_expression_list_repeat1, + [69741] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3280), 2, + sym__newline, + anon_sym_SEMI, + [69749] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2339), 1, + anon_sym_COMMA, + STATE(1286), 1, + aux_sym_expression_list_repeat1, + [69759] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2491), 2, + sym__newline, + anon_sym_SEMI, + [69767] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2986), 2, + anon_sym_RPAREN, + anon_sym_COMMA, + [69775] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2936), 1, + sym_identifier, + STATE(1592), 1, + sym_match_keyword_pattern, + [69785] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2399), 1, + anon_sym_as, + ACTIONS(2403), 1, + anon_sym_COLON, + [69795] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3282), 1, + anon_sym_COMMA, + STATE(1382), 1, + aux_sym_open_sequence_match_pattern_repeat1, + [69805] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3284), 2, + sym__newline, + anon_sym_SEMI, + [69813] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2877), 1, + anon_sym_LPAREN, + STATE(1544), 1, + sym_parameters, + [69823] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1026), 2, + anon_sym_except, + anon_sym_finally, + [69831] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2877), 1, anon_sym_LPAREN, STATE(1546), 1, sym_parameters, - [68343] = 2, + [69841] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3271), 2, + ACTIONS(2729), 2, anon_sym_RPAREN, anon_sym_COMMA, - [68351] = 3, + [69849] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(2703), 1, - anon_sym_LPAREN, - STATE(1582), 1, - sym_parameters, - [68361] = 2, + ACTIONS(2906), 1, + anon_sym_COMMA, + ACTIONS(3286), 1, + anon_sym_RPAREN, + [69859] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(2406), 2, + ACTIONS(3288), 1, + anon_sym_COMMA, + STATE(1480), 1, + aux_sym_open_sequence_match_pattern_repeat1, + [69869] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3290), 2, sym__newline, anon_sym_SEMI, - [68369] = 2, + [69877] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(1081), 2, + ACTIONS(3292), 1, + sym_integer, + ACTIONS(3294), 1, + sym_float, + [69887] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3296), 2, + sym__newline, + anon_sym_SEMI, + [69895] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2853), 2, + anon_sym_COMMA, + anon_sym_COLON, + [69903] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1079), 2, anon_sym_except, anon_sym_finally, - [68377] = 2, + [69911] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3273), 2, + ACTIONS(3298), 2, + sym__newline, + anon_sym_SEMI, + [69919] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3300), 2, anon_sym_COMMA, anon_sym_RBRACE, - [68385] = 3, + [69927] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3275), 1, + ACTIONS(3302), 2, + sym__newline, + anon_sym_SEMI, + [69935] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3304), 2, + anon_sym_RPAREN, + anon_sym_COMMA, + [69943] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3306), 1, anon_sym_COLON, - ACTIONS(3277), 1, + ACTIONS(3308), 1, anon_sym_DASH_GT, - [68395] = 2, + [69953] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3279), 1, + ACTIONS(3310), 1, anon_sym_COLON, - [68402] = 2, + [69960] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3281), 1, - anon_sym_RPAREN, - [68409] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3283), 1, - sym_identifier, - [68416] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3285), 1, - anon_sym_RPAREN, - [68423] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2705), 1, - anon_sym_RBRACE, - [68430] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3287), 1, - anon_sym_COLON, - [68437] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3289), 1, - anon_sym_COLON, - [68444] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3291), 1, - anon_sym_COLON, - [68451] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3293), 1, - anon_sym_RPAREN, - [68458] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3295), 1, - anon_sym_RPAREN, - [68465] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3297), 1, - anon_sym_COLON, - [68472] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3299), 1, + ACTIONS(3012), 1, anon_sym_RBRACK, - [68479] = 2, + [69967] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3301), 1, - anon_sym_for, - [68486] = 2, + ACTIONS(3312), 1, + anon_sym_RPAREN, + [69974] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3303), 1, - anon_sym_RBRACE, - [68493] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3305), 1, - anon_sym_COLON, - [68500] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3307), 1, - anon_sym_COLON, - [68507] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3309), 1, + ACTIONS(3314), 1, sym_identifier, - [68514] = 2, + [69981] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3311), 1, + ACTIONS(3316), 1, + sym_identifier, + [69988] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3318), 1, + anon_sym_RPAREN, + [69995] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3320), 1, + anon_sym_in, + [70002] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3322), 1, + anon_sym_import, + [70009] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3324), 1, anon_sym_RBRACE, - [68521] = 2, + [70016] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3313), 1, + ACTIONS(3326), 1, anon_sym_COLON, - [68528] = 2, + [70023] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3315), 1, + ACTIONS(3328), 1, + anon_sym_for, + [70030] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3330), 1, anon_sym_RBRACE, - [68535] = 2, + [70037] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3332), 1, + anon_sym_RPAREN, + [70044] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3334), 1, + anon_sym_COLON, + [70051] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3336), 1, + anon_sym_RBRACE, + [70058] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3338), 1, + anon_sym_RPAREN, + [70065] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(2535), 1, anon_sym_COLON, - [68542] = 2, + [70072] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3317), 1, + ACTIONS(3340), 1, anon_sym_COLON, - [68549] = 2, + [70079] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3319), 1, + ACTIONS(3342), 1, sym_identifier, - [68556] = 2, + [70086] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3321), 1, + ACTIONS(3344), 1, anon_sym_COLON, - [68563] = 2, + [70093] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3323), 1, - anon_sym_COLON, - [68570] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3325), 1, - anon_sym_COLON, - [68577] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3327), 1, - anon_sym_COLON, - [68584] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2537), 1, - anon_sym_COLON, - [68591] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(963), 1, - anon_sym_STAR, - [68598] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3329), 1, - anon_sym_in, - [68605] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3331), 1, - anon_sym_RPAREN, - [68612] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3333), 1, - anon_sym_RBRACK, - [68619] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3335), 1, - anon_sym_RPAREN, - [68626] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3337), 1, - anon_sym_COLON, - [68633] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3339), 1, - anon_sym_COLON, - [68640] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3341), 1, - anon_sym_COLON, - [68647] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3343), 1, - sym_identifier, - [68654] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3345), 1, - anon_sym_COLON, - [68661] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3347), 1, - anon_sym_COLON, - [68668] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3349), 1, - anon_sym_COLON, - [68675] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3227), 1, - anon_sym_RBRACE, - [68682] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3351), 1, - anon_sym_RBRACK, - [68689] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2543), 1, - anon_sym_COLON, - [68696] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3353), 1, - anon_sym_RPAREN, - [68703] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3355), 1, - anon_sym_RBRACE, - [68710] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3357), 1, - anon_sym_RBRACK, - [68717] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3359), 1, - sym_identifier, - [68724] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3361), 1, - anon_sym_COLON, - [68731] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3363), 1, - anon_sym_RBRACE, - [68738] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3365), 1, - sym_identifier, - [68745] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3367), 1, - anon_sym_RBRACK, - [68752] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3369), 1, - anon_sym_in, - [68759] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3371), 1, - anon_sym_RPAREN, - [68766] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3373), 1, - sym_identifier, - [68773] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2539), 1, - anon_sym_COLON, - [68780] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3375), 1, - sym_identifier, - [68787] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3377), 1, - anon_sym_COLON, - [68794] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3379), 1, - anon_sym_COLON, - [68801] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3072), 1, - anon_sym_RBRACE, - [68808] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3381), 1, - anon_sym_COLON, - [68815] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3383), 1, - anon_sym_RPAREN, - [68822] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3385), 1, - anon_sym_RBRACE, - [68829] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3387), 1, - anon_sym_RBRACE, - [68836] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3389), 1, - anon_sym_COLON, - [68843] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3391), 1, + ACTIONS(2375), 1, anon_sym_EQ, - [68850] = 2, + [70100] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3393), 1, - sym_identifier, - [68857] = 2, + ACTIONS(3346), 1, + anon_sym_COLON, + [70107] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3395), 1, - anon_sym_RBRACE, - [68864] = 2, + ACTIONS(3348), 1, + anon_sym_COLON, + [70114] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3397), 1, - anon_sym_RBRACE, - [68871] = 2, + ACTIONS(2541), 1, + anon_sym_COLON, + [70121] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3399), 1, - sym_identifier, - [68878] = 2, + ACTIONS(3350), 1, + anon_sym_COLON, + [70128] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(2722), 1, - anon_sym_RBRACE, - [68885] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3007), 1, - anon_sym_RBRACK, - [68892] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3401), 1, + ACTIONS(3352), 1, anon_sym_import, - [68899] = 2, + [70135] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3403), 1, - ts_builtin_sym_end, - [68906] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3405), 1, - anon_sym_RBRACK, - [68913] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3074), 1, - anon_sym_in, - [68920] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2337), 1, - anon_sym_EQ, - [68927] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3407), 1, - sym_identifier, - [68934] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2882), 1, - anon_sym_RBRACK, - [68941] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3146), 1, - anon_sym_in, - [68948] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(1958), 1, - anon_sym_RBRACE, - [68955] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3409), 1, - anon_sym_RBRACE, - [68962] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3411), 1, - anon_sym_import, - [68969] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3413), 1, - anon_sym_RBRACE, - [68976] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3415), 1, + ACTIONS(3354), 1, anon_sym_COLON, - [68983] = 2, + [70142] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3417), 1, - sym_identifier, - [68990] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3419), 1, - anon_sym_COLON, - [68997] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2966), 1, - anon_sym_RBRACK, - [69004] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3421), 1, - anon_sym_COLON, - [69011] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3423), 1, - anon_sym_in, - [69018] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3099), 1, - anon_sym_in, - [69025] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3425), 1, - anon_sym_COLON, - [69032] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3427), 1, - anon_sym_in, - [69039] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3429), 1, + ACTIONS(3356), 1, anon_sym_RPAREN, - [69046] = 2, + [70149] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3431), 1, + ACTIONS(3358), 1, + sym_identifier, + [70156] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3360), 1, anon_sym_COLON, - [69053] = 2, + [70163] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3433), 1, - anon_sym_RBRACK, - [69060] = 2, + ACTIONS(3362), 1, + anon_sym_COLON, + [70170] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3435), 1, + ACTIONS(3364), 1, + anon_sym_COLON, + [70177] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2572), 1, + anon_sym_COLON, + [70184] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3108), 1, anon_sym_RBRACE, - [69067] = 2, + [70191] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3437), 1, - anon_sym_RBRACK, - [69074] = 2, + ACTIONS(3366), 1, + anon_sym_COLON, + [70198] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3439), 1, + ACTIONS(3368), 1, + anon_sym_COLON, + [70205] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3370), 1, + anon_sym_COLON, + [70212] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3372), 1, anon_sym_LPAREN, - [69081] = 2, + [70219] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3441), 1, + ACTIONS(2731), 1, + anon_sym_RBRACE, + [70226] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3374), 1, + anon_sym_COLON, + [70233] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3376), 1, sym_identifier, - [69088] = 2, + [70240] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3443), 1, - anon_sym_COLON, - [69095] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3445), 1, - anon_sym_RBRACE, - [69102] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3447), 1, + ACTIONS(3378), 1, anon_sym_RPAREN, - [69109] = 2, + [70247] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1059), 1, - anon_sym_def, - [69116] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3449), 1, + ACTIONS(3380), 1, anon_sym_RPAREN, - [69123] = 2, + [70254] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3451), 1, + ACTIONS(3382), 1, anon_sym_RBRACE, - [69130] = 2, + [70261] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3453), 1, - anon_sym_COLON, - [69137] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3455), 1, - anon_sym_COLON, - [69144] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3457), 1, - anon_sym_COLON, - [69151] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3459), 1, - sym_identifier, - [69158] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3142), 1, - anon_sym_RBRACE, - [69165] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(2950), 1, + ACTIONS(3384), 1, anon_sym_RBRACK, - [69172] = 2, + [70268] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3461), 1, - anon_sym_RPAREN, - [69179] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3463), 1, - sym_identifier, - [69186] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3465), 1, - sym_identifier, - [69193] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3467), 1, - anon_sym_COLON, - [69200] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3469), 1, - sym_identifier, - [69207] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3471), 1, - anon_sym_RBRACE, - [69214] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3473), 1, - anon_sym_in, - [69221] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3475), 1, - anon_sym_RPAREN, - [69228] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3477), 1, - anon_sym_RPAREN, - [69235] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3479), 1, - sym_identifier, - [69242] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(985), 1, - anon_sym_STAR, - [69249] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3481), 1, - anon_sym_RBRACE, - [69256] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3483), 1, - anon_sym_RPAREN, - [69263] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3154), 1, - anon_sym_in, - [69270] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3485), 1, + ACTIONS(3386), 1, anon_sym_RBRACK, - [69277] = 2, + [70275] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3487), 1, + ACTIONS(3388), 1, + sym_identifier, + [70282] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3128), 1, + anon_sym_RBRACK, + [70289] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3390), 1, + anon_sym_COLON, + [70296] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3392), 1, + sym_identifier, + [70303] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3394), 1, + anon_sym_COLON, + [70310] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3396), 1, + anon_sym_RBRACE, + [70317] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3398), 1, + anon_sym_RBRACE, + [70324] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3400), 1, + anon_sym_RBRACE, + [70331] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3402), 1, + anon_sym_COLON, + [70338] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3404), 1, + sym_identifier, + [70345] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3406), 1, + anon_sym_RBRACK, + [70352] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3408), 1, + anon_sym_RPAREN, + [70359] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3410), 1, + anon_sym_RPAREN, + [70366] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3412), 1, + anon_sym_in, + [70373] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3414), 1, + anon_sym_RPAREN, + [70380] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3130), 1, + anon_sym_in, + [70387] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3416), 1, + anon_sym_RBRACK, + [70394] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3418), 1, + anon_sym_RBRACE, + [70401] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2797), 1, + anon_sym_RBRACE, + [70408] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3186), 1, + anon_sym_in, + [70415] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3420), 1, + sym_identifier, + [70422] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3422), 1, + anon_sym_RBRACE, + [70429] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3424), 1, + sym_identifier, + [70436] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3426), 1, + anon_sym_RPAREN, + [70443] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3428), 1, + anon_sym_COLON, + [70450] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3430), 1, + anon_sym_RPAREN, + [70457] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3432), 1, + anon_sym_RBRACE, + [70464] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3434), 1, + anon_sym_RPAREN, + [70471] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2601), 1, + anon_sym_COLON, + [70478] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3436), 1, + anon_sym_RBRACE, + [70485] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3438), 1, + anon_sym_COLON, + [70492] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3440), 1, + anon_sym_RBRACK, + [70499] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3442), 1, + anon_sym_COLON, + [70506] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3444), 1, + anon_sym_RBRACK, + [70513] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3446), 1, + anon_sym_COLON, + [70520] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3046), 1, + anon_sym_RBRACK, + [70527] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3448), 1, + anon_sym_RBRACE, + [70534] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3450), 1, + sym_identifier, + [70541] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3452), 1, + anon_sym_COLON, + [70548] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3454), 1, + anon_sym_in, + [70555] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3456), 1, + sym_identifier, + [70562] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3458), 1, + anon_sym_RBRACE, + [70569] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3460), 1, + anon_sym_COLON, + [70576] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3462), 1, + anon_sym_in, + [70583] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3464), 1, + sym_identifier, + [70590] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3466), 1, + anon_sym_COLON, + [70597] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3468), 1, + sym_identifier, + [70604] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3470), 1, + anon_sym_COLON, + [70611] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3250), 1, + anon_sym_RBRACE, + [70618] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3472), 1, + ts_builtin_sym_end, + [70625] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3474), 1, anon_sym_import, - [69284] = 2, + [70632] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3489), 1, - anon_sym_COLON, - [69291] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3491), 1, - anon_sym_COLON, - [69298] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3493), 1, - anon_sym_COLON, - [69305] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3495), 1, - sym_identifier, - [69312] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3497), 1, - sym_identifier, - [69319] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3499), 1, - anon_sym_RBRACE, - [69326] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(3158), 1, + ACTIONS(3476), 1, anon_sym_in, - [69333] = 2, + [70639] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(1089), 1, + ACTIONS(3478), 1, + anon_sym_RPAREN, + [70646] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3480), 1, + anon_sym_import, + [70653] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3482), 1, + anon_sym_RBRACK, + [70660] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3484), 1, + anon_sym_RBRACE, + [70667] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3486), 1, + anon_sym_COLON, + [70674] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3488), 1, + anon_sym_COLON, + [70681] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3490), 1, + anon_sym_RBRACE, + [70688] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(2896), 1, + anon_sym_in, + [70695] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3492), 1, + anon_sym_COLON, + [70702] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3494), 1, + anon_sym_COLON, + [70709] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3496), 1, + anon_sym_RPAREN, + [70716] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3498), 1, + anon_sym_RBRACK, + [70723] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3500), 1, + sym_identifier, + [70730] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3502), 1, + anon_sym_RBRACE, + [70737] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3504), 1, + anon_sym_COLON, + [70744] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3506), 1, + anon_sym_COLON, + [70751] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3508), 1, + anon_sym_RBRACE, + [70758] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3510), 1, + anon_sym_RBRACE, + [70765] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3512), 1, + anon_sym_COLON, + [70772] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3514), 1, + anon_sym_in, + [70779] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1997), 1, + anon_sym_RBRACE, + [70786] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3516), 1, + anon_sym_COLON, + [70793] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3518), 1, + anon_sym_RBRACE, + [70800] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3520), 1, + sym_identifier, + [70807] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3153), 1, + anon_sym_RBRACK, + [70814] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(990), 1, + anon_sym_STAR, + [70821] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3522), 1, + anon_sym_RPAREN, + [70828] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3524), 1, + anon_sym_EQ, + [70835] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(968), 1, + anon_sym_STAR, + [70842] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1100), 1, anon_sym_def, - [69340] = 2, + [70849] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3501), 1, + ACTIONS(3178), 1, anon_sym_RBRACE, - [69347] = 2, + [70856] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3160), 1, - anon_sym_in, - [69354] = 2, + ACTIONS(3526), 1, + anon_sym_RPAREN, + [70863] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3503), 1, - anon_sym_in, - [69361] = 2, + ACTIONS(3528), 1, + sym_identifier, + [70870] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3505), 1, - anon_sym_RBRACE, - [69368] = 2, + ACTIONS(3530), 1, + sym_identifier, + [70877] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(3507), 1, + ACTIONS(3532), 1, + sym_identifier, + [70884] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3534), 1, + sym_identifier, + [70891] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3536), 1, anon_sym_COLON, + [70898] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3182), 1, + anon_sym_in, + [70905] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(1122), 1, + anon_sym_def, + [70912] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3151), 1, + anon_sym_in, + [70919] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3184), 1, + anon_sym_in, + [70926] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3538), 1, + anon_sym_COLON, + [70933] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3540), 1, + anon_sym_COLON, + [70940] = 2, + ACTIONS(3), 1, + sym_comment, + ACTIONS(3542), 1, + anon_sym_RBRACK, }; static const uint32_t ts_small_parse_table_map[] = { - [SMALL_STATE(156)] = 0, - [SMALL_STATE(157)] = 110, - [SMALL_STATE(158)] = 232, - [SMALL_STATE(159)] = 342, - [SMALL_STATE(160)] = 466, - [SMALL_STATE(161)] = 588, - [SMALL_STATE(162)] = 714, - [SMALL_STATE(163)] = 838, - [SMALL_STATE(164)] = 960, - [SMALL_STATE(165)] = 1081, - [SMALL_STATE(166)] = 1202, - [SMALL_STATE(167)] = 1323, - [SMALL_STATE(168)] = 1444, - [SMALL_STATE(169)] = 1558, - [SMALL_STATE(170)] = 1672, - [SMALL_STATE(171)] = 1781, - [SMALL_STATE(172)] = 1890, - [SMALL_STATE(173)] = 1999, - [SMALL_STATE(174)] = 2109, - [SMALL_STATE(175)] = 2221, - [SMALL_STATE(176)] = 2329, - [SMALL_STATE(177)] = 2441, - [SMALL_STATE(178)] = 2553, - [SMALL_STATE(179)] = 2661, - [SMALL_STATE(180)] = 2769, - [SMALL_STATE(181)] = 2877, - [SMALL_STATE(182)] = 2987, - [SMALL_STATE(183)] = 3099, - [SMALL_STATE(184)] = 3213, - [SMALL_STATE(185)] = 3325, - [SMALL_STATE(186)] = 3433, - [SMALL_STATE(187)] = 3541, - [SMALL_STATE(188)] = 3653, - [SMALL_STATE(189)] = 3765, - [SMALL_STATE(190)] = 3874, - [SMALL_STATE(191)] = 3979, - [SMALL_STATE(192)] = 4088, - [SMALL_STATE(193)] = 4193, - [SMALL_STATE(194)] = 4302, - [SMALL_STATE(195)] = 4413, - [SMALL_STATE(196)] = 4522, - [SMALL_STATE(197)] = 4631, - [SMALL_STATE(198)] = 4740, - [SMALL_STATE(199)] = 4849, - [SMALL_STATE(200)] = 4962, - [SMALL_STATE(201)] = 5071, - [SMALL_STATE(202)] = 5180, - [SMALL_STATE(203)] = 5289, - [SMALL_STATE(204)] = 5398, - [SMALL_STATE(205)] = 5503, - [SMALL_STATE(206)] = 5608, - [SMALL_STATE(207)] = 5719, - [SMALL_STATE(208)] = 5828, - [SMALL_STATE(209)] = 5939, - [SMALL_STATE(210)] = 6048, - [SMALL_STATE(211)] = 6161, - [SMALL_STATE(212)] = 6274, - [SMALL_STATE(213)] = 6383, - [SMALL_STATE(214)] = 6492, - [SMALL_STATE(215)] = 6601, - [SMALL_STATE(216)] = 6710, - [SMALL_STATE(217)] = 6819, - [SMALL_STATE(218)] = 6928, - [SMALL_STATE(219)] = 7039, - [SMALL_STATE(220)] = 7148, - [SMALL_STATE(221)] = 7257, - [SMALL_STATE(222)] = 7366, - [SMALL_STATE(223)] = 7475, - [SMALL_STATE(224)] = 7584, - [SMALL_STATE(225)] = 7693, - [SMALL_STATE(226)] = 7802, - [SMALL_STATE(227)] = 7913, - [SMALL_STATE(228)] = 8022, - [SMALL_STATE(229)] = 8131, - [SMALL_STATE(230)] = 8242, - [SMALL_STATE(231)] = 8351, - [SMALL_STATE(232)] = 8460, - [SMALL_STATE(233)] = 8566, - [SMALL_STATE(234)] = 8672, - [SMALL_STATE(235)] = 8778, - [SMALL_STATE(236)] = 8884, - [SMALL_STATE(237)] = 8990, - [SMALL_STATE(238)] = 9096, - [SMALL_STATE(239)] = 9202, - [SMALL_STATE(240)] = 9296, - [SMALL_STATE(241)] = 9402, - [SMALL_STATE(242)] = 9508, - [SMALL_STATE(243)] = 9611, - [SMALL_STATE(244)] = 9716, - [SMALL_STATE(245)] = 9821, - [SMALL_STATE(246)] = 9924, - [SMALL_STATE(247)] = 10029, - [SMALL_STATE(248)] = 10134, - [SMALL_STATE(249)] = 10239, - [SMALL_STATE(250)] = 10341, - [SMALL_STATE(251)] = 10443, - [SMALL_STATE(252)] = 10545, - [SMALL_STATE(253)] = 10647, - [SMALL_STATE(254)] = 10749, - [SMALL_STATE(255)] = 10851, - [SMALL_STATE(256)] = 10953, - [SMALL_STATE(257)] = 11055, - [SMALL_STATE(258)] = 11157, - [SMALL_STATE(259)] = 11259, - [SMALL_STATE(260)] = 11361, - [SMALL_STATE(261)] = 11463, - [SMALL_STATE(262)] = 11565, - [SMALL_STATE(263)] = 11667, - [SMALL_STATE(264)] = 11769, - [SMALL_STATE(265)] = 11870, - [SMALL_STATE(266)] = 11971, - [SMALL_STATE(267)] = 12044, - [SMALL_STATE(268)] = 12117, - [SMALL_STATE(269)] = 12190, - [SMALL_STATE(270)] = 12289, - [SMALL_STATE(271)] = 12390, - [SMALL_STATE(272)] = 12491, - [SMALL_STATE(273)] = 12592, - [SMALL_STATE(274)] = 12693, - [SMALL_STATE(275)] = 12792, - [SMALL_STATE(276)] = 12865, - [SMALL_STATE(277)] = 12966, - [SMALL_STATE(278)] = 13067, - [SMALL_STATE(279)] = 13168, - [SMALL_STATE(280)] = 13241, - [SMALL_STATE(281)] = 13314, - [SMALL_STATE(282)] = 13415, - [SMALL_STATE(283)] = 13514, - [SMALL_STATE(284)] = 13587, - [SMALL_STATE(285)] = 13688, - [SMALL_STATE(286)] = 13789, - [SMALL_STATE(287)] = 13890, - [SMALL_STATE(288)] = 13963, - [SMALL_STATE(289)] = 14061, - [SMALL_STATE(290)] = 14157, - [SMALL_STATE(291)] = 14253, - [SMALL_STATE(292)] = 14349, - [SMALL_STATE(293)] = 14445, - [SMALL_STATE(294)] = 14541, - [SMALL_STATE(295)] = 14601, - [SMALL_STATE(296)] = 14699, - [SMALL_STATE(297)] = 14795, - [SMALL_STATE(298)] = 14891, - [SMALL_STATE(299)] = 14989, - [SMALL_STATE(300)] = 15087, - [SMALL_STATE(301)] = 15183, - [SMALL_STATE(302)] = 15279, - [SMALL_STATE(303)] = 15375, - [SMALL_STATE(304)] = 15471, - [SMALL_STATE(305)] = 15569, - [SMALL_STATE(306)] = 15667, - [SMALL_STATE(307)] = 15763, - [SMALL_STATE(308)] = 15823, - [SMALL_STATE(309)] = 15921, - [SMALL_STATE(310)] = 16017, - [SMALL_STATE(311)] = 16115, - [SMALL_STATE(312)] = 16213, - [SMALL_STATE(313)] = 16282, - [SMALL_STATE(314)] = 16341, - [SMALL_STATE(315)] = 16400, - [SMALL_STATE(316)] = 16495, - [SMALL_STATE(317)] = 16564, - [SMALL_STATE(318)] = 16623, - [SMALL_STATE(319)] = 16682, - [SMALL_STATE(320)] = 16751, - [SMALL_STATE(321)] = 16810, - [SMALL_STATE(322)] = 16879, - [SMALL_STATE(323)] = 16948, - [SMALL_STATE(324)] = 17043, - [SMALL_STATE(325)] = 17116, - [SMALL_STATE(326)] = 17175, - [SMALL_STATE(327)] = 17244, - [SMALL_STATE(328)] = 17313, - [SMALL_STATE(329)] = 17376, - [SMALL_STATE(330)] = 17439, - [SMALL_STATE(331)] = 17502, - [SMALL_STATE(332)] = 17565, - [SMALL_STATE(333)] = 17624, - [SMALL_STATE(334)] = 17693, - [SMALL_STATE(335)] = 17752, - [SMALL_STATE(336)] = 17811, - [SMALL_STATE(337)] = 17870, - [SMALL_STATE(338)] = 17965, - [SMALL_STATE(339)] = 18038, - [SMALL_STATE(340)] = 18130, - [SMALL_STATE(341)] = 18222, - [SMALL_STATE(342)] = 18314, - [SMALL_STATE(343)] = 18406, - [SMALL_STATE(344)] = 18498, - [SMALL_STATE(345)] = 18590, - [SMALL_STATE(346)] = 18682, - [SMALL_STATE(347)] = 18774, - [SMALL_STATE(348)] = 18866, - [SMALL_STATE(349)] = 18958, - [SMALL_STATE(350)] = 19050, - [SMALL_STATE(351)] = 19142, - [SMALL_STATE(352)] = 19234, - [SMALL_STATE(353)] = 19326, - [SMALL_STATE(354)] = 19418, - [SMALL_STATE(355)] = 19482, - [SMALL_STATE(356)] = 19574, - [SMALL_STATE(357)] = 19666, - [SMALL_STATE(358)] = 19758, - [SMALL_STATE(359)] = 19850, - [SMALL_STATE(360)] = 19942, - [SMALL_STATE(361)] = 20034, - [SMALL_STATE(362)] = 20126, - [SMALL_STATE(363)] = 20218, - [SMALL_STATE(364)] = 20310, - [SMALL_STATE(365)] = 20402, - [SMALL_STATE(366)] = 20494, - [SMALL_STATE(367)] = 20586, - [SMALL_STATE(368)] = 20656, - [SMALL_STATE(369)] = 20748, - [SMALL_STATE(370)] = 20840, - [SMALL_STATE(371)] = 20932, - [SMALL_STATE(372)] = 21024, - [SMALL_STATE(373)] = 21116, - [SMALL_STATE(374)] = 21208, - [SMALL_STATE(375)] = 21300, - [SMALL_STATE(376)] = 21392, - [SMALL_STATE(377)] = 21484, - [SMALL_STATE(378)] = 21576, - [SMALL_STATE(379)] = 21668, - [SMALL_STATE(380)] = 21760, - [SMALL_STATE(381)] = 21852, - [SMALL_STATE(382)] = 21944, - [SMALL_STATE(383)] = 22036, - [SMALL_STATE(384)] = 22128, - [SMALL_STATE(385)] = 22222, - [SMALL_STATE(386)] = 22314, - [SMALL_STATE(387)] = 22406, - [SMALL_STATE(388)] = 22498, - [SMALL_STATE(389)] = 22590, - [SMALL_STATE(390)] = 22682, - [SMALL_STATE(391)] = 22774, - [SMALL_STATE(392)] = 22866, - [SMALL_STATE(393)] = 22958, - [SMALL_STATE(394)] = 23050, - [SMALL_STATE(395)] = 23142, - [SMALL_STATE(396)] = 23234, - [SMALL_STATE(397)] = 23326, - [SMALL_STATE(398)] = 23418, - [SMALL_STATE(399)] = 23510, - [SMALL_STATE(400)] = 23574, - [SMALL_STATE(401)] = 23666, - [SMALL_STATE(402)] = 23758, - [SMALL_STATE(403)] = 23850, - [SMALL_STATE(404)] = 23942, - [SMALL_STATE(405)] = 24034, - [SMALL_STATE(406)] = 24126, - [SMALL_STATE(407)] = 24218, - [SMALL_STATE(408)] = 24310, - [SMALL_STATE(409)] = 24402, - [SMALL_STATE(410)] = 24494, - [SMALL_STATE(411)] = 24586, - [SMALL_STATE(412)] = 24678, - [SMALL_STATE(413)] = 24770, - [SMALL_STATE(414)] = 24862, - [SMALL_STATE(415)] = 24954, - [SMALL_STATE(416)] = 25046, - [SMALL_STATE(417)] = 25138, - [SMALL_STATE(418)] = 25230, - [SMALL_STATE(419)] = 25322, - [SMALL_STATE(420)] = 25414, - [SMALL_STATE(421)] = 25506, - [SMALL_STATE(422)] = 25598, - [SMALL_STATE(423)] = 25690, - [SMALL_STATE(424)] = 25782, - [SMALL_STATE(425)] = 25874, - [SMALL_STATE(426)] = 25966, - [SMALL_STATE(427)] = 26058, - [SMALL_STATE(428)] = 26150, - [SMALL_STATE(429)] = 26242, - [SMALL_STATE(430)] = 26334, - [SMALL_STATE(431)] = 26426, - [SMALL_STATE(432)] = 26518, - [SMALL_STATE(433)] = 26610, - [SMALL_STATE(434)] = 26702, - [SMALL_STATE(435)] = 26794, - [SMALL_STATE(436)] = 26886, - [SMALL_STATE(437)] = 26943, - [SMALL_STATE(438)] = 27000, - [SMALL_STATE(439)] = 27057, - [SMALL_STATE(440)] = 27114, - [SMALL_STATE(441)] = 27171, - [SMALL_STATE(442)] = 27228, - [SMALL_STATE(443)] = 27285, - [SMALL_STATE(444)] = 27342, - [SMALL_STATE(445)] = 27399, - [SMALL_STATE(446)] = 27456, - [SMALL_STATE(447)] = 27513, - [SMALL_STATE(448)] = 27570, - [SMALL_STATE(449)] = 27627, - [SMALL_STATE(450)] = 27684, - [SMALL_STATE(451)] = 27745, - [SMALL_STATE(452)] = 27802, - [SMALL_STATE(453)] = 27863, - [SMALL_STATE(454)] = 27924, - [SMALL_STATE(455)] = 27981, - [SMALL_STATE(456)] = 28038, - [SMALL_STATE(457)] = 28095, - [SMALL_STATE(458)] = 28152, - [SMALL_STATE(459)] = 28219, - [SMALL_STATE(460)] = 28276, - [SMALL_STATE(461)] = 28337, - [SMALL_STATE(462)] = 28429, - [SMALL_STATE(463)] = 28493, - [SMALL_STATE(464)] = 28549, - [SMALL_STATE(465)] = 28605, - [SMALL_STATE(466)] = 28669, - [SMALL_STATE(467)] = 28729, - [SMALL_STATE(468)] = 28821, - [SMALL_STATE(469)] = 28881, - [SMALL_STATE(470)] = 28941, - [SMALL_STATE(471)] = 29001, - [SMALL_STATE(472)] = 29057, - [SMALL_STATE(473)] = 29117, - [SMALL_STATE(474)] = 29173, - [SMALL_STATE(475)] = 29237, - [SMALL_STATE(476)] = 29293, - [SMALL_STATE(477)] = 29353, - [SMALL_STATE(478)] = 29413, - [SMALL_STATE(479)] = 29507, - [SMALL_STATE(480)] = 29567, - [SMALL_STATE(481)] = 29627, - [SMALL_STATE(482)] = 29687, - [SMALL_STATE(483)] = 29747, - [SMALL_STATE(484)] = 29803, - [SMALL_STATE(485)] = 29863, - [SMALL_STATE(486)] = 29923, - [SMALL_STATE(487)] = 29979, - [SMALL_STATE(488)] = 30043, - [SMALL_STATE(489)] = 30099, - [SMALL_STATE(490)] = 30159, - [SMALL_STATE(491)] = 30219, - [SMALL_STATE(492)] = 30279, - [SMALL_STATE(493)] = 30334, - [SMALL_STATE(494)] = 30425, - [SMALL_STATE(495)] = 30486, - [SMALL_STATE(496)] = 30541, - [SMALL_STATE(497)] = 30596, - [SMALL_STATE(498)] = 30687, - [SMALL_STATE(499)] = 30742, - [SMALL_STATE(500)] = 30797, - [SMALL_STATE(501)] = 30852, - [SMALL_STATE(502)] = 30907, - [SMALL_STATE(503)] = 30968, - [SMALL_STATE(504)] = 31023, - [SMALL_STATE(505)] = 31078, - [SMALL_STATE(506)] = 31133, - [SMALL_STATE(507)] = 31188, - [SMALL_STATE(508)] = 31243, - [SMALL_STATE(509)] = 31334, - [SMALL_STATE(510)] = 31395, - [SMALL_STATE(511)] = 31486, - [SMALL_STATE(512)] = 31577, - [SMALL_STATE(513)] = 31668, - [SMALL_STATE(514)] = 31729, - [SMALL_STATE(515)] = 31783, - [SMALL_STATE(516)] = 31837, - [SMALL_STATE(517)] = 31891, - [SMALL_STATE(518)] = 31945, - [SMALL_STATE(519)] = 31999, - [SMALL_STATE(520)] = 32053, - [SMALL_STATE(521)] = 32107, - [SMALL_STATE(522)] = 32161, - [SMALL_STATE(523)] = 32215, - [SMALL_STATE(524)] = 32269, - [SMALL_STATE(525)] = 32323, - [SMALL_STATE(526)] = 32377, - [SMALL_STATE(527)] = 32431, - [SMALL_STATE(528)] = 32485, - [SMALL_STATE(529)] = 32539, - [SMALL_STATE(530)] = 32593, - [SMALL_STATE(531)] = 32647, - [SMALL_STATE(532)] = 32701, - [SMALL_STATE(533)] = 32755, - [SMALL_STATE(534)] = 32809, - [SMALL_STATE(535)] = 32863, - [SMALL_STATE(536)] = 32917, - [SMALL_STATE(537)] = 32971, - [SMALL_STATE(538)] = 33025, - [SMALL_STATE(539)] = 33079, - [SMALL_STATE(540)] = 33133, - [SMALL_STATE(541)] = 33187, - [SMALL_STATE(542)] = 33241, - [SMALL_STATE(543)] = 33295, - [SMALL_STATE(544)] = 33349, - [SMALL_STATE(545)] = 33403, - [SMALL_STATE(546)] = 33457, - [SMALL_STATE(547)] = 33511, - [SMALL_STATE(548)] = 33565, - [SMALL_STATE(549)] = 33619, - [SMALL_STATE(550)] = 33673, - [SMALL_STATE(551)] = 33727, - [SMALL_STATE(552)] = 33815, - [SMALL_STATE(553)] = 33869, - [SMALL_STATE(554)] = 33923, - [SMALL_STATE(555)] = 33977, - [SMALL_STATE(556)] = 34031, - [SMALL_STATE(557)] = 34085, - [SMALL_STATE(558)] = 34139, - [SMALL_STATE(559)] = 34193, - [SMALL_STATE(560)] = 34247, - [SMALL_STATE(561)] = 34301, - [SMALL_STATE(562)] = 34355, - [SMALL_STATE(563)] = 34409, - [SMALL_STATE(564)] = 34463, - [SMALL_STATE(565)] = 34517, - [SMALL_STATE(566)] = 34571, - [SMALL_STATE(567)] = 34625, - [SMALL_STATE(568)] = 34679, - [SMALL_STATE(569)] = 34733, - [SMALL_STATE(570)] = 34787, - [SMALL_STATE(571)] = 34841, - [SMALL_STATE(572)] = 34895, - [SMALL_STATE(573)] = 34949, - [SMALL_STATE(574)] = 35003, - [SMALL_STATE(575)] = 35057, - [SMALL_STATE(576)] = 35111, - [SMALL_STATE(577)] = 35165, - [SMALL_STATE(578)] = 35219, - [SMALL_STATE(579)] = 35273, - [SMALL_STATE(580)] = 35327, - [SMALL_STATE(581)] = 35381, - [SMALL_STATE(582)] = 35435, - [SMALL_STATE(583)] = 35489, - [SMALL_STATE(584)] = 35543, - [SMALL_STATE(585)] = 35597, - [SMALL_STATE(586)] = 35651, - [SMALL_STATE(587)] = 35705, - [SMALL_STATE(588)] = 35759, - [SMALL_STATE(589)] = 35813, - [SMALL_STATE(590)] = 35867, - [SMALL_STATE(591)] = 35921, - [SMALL_STATE(592)] = 35975, - [SMALL_STATE(593)] = 36029, - [SMALL_STATE(594)] = 36083, - [SMALL_STATE(595)] = 36137, - [SMALL_STATE(596)] = 36191, - [SMALL_STATE(597)] = 36245, - [SMALL_STATE(598)] = 36299, - [SMALL_STATE(599)] = 36353, - [SMALL_STATE(600)] = 36407, - [SMALL_STATE(601)] = 36461, - [SMALL_STATE(602)] = 36515, - [SMALL_STATE(603)] = 36569, - [SMALL_STATE(604)] = 36623, - [SMALL_STATE(605)] = 36677, - [SMALL_STATE(606)] = 36731, - [SMALL_STATE(607)] = 36785, - [SMALL_STATE(608)] = 36839, - [SMALL_STATE(609)] = 36893, - [SMALL_STATE(610)] = 36947, - [SMALL_STATE(611)] = 37001, - [SMALL_STATE(612)] = 37055, - [SMALL_STATE(613)] = 37143, - [SMALL_STATE(614)] = 37197, - [SMALL_STATE(615)] = 37279, - [SMALL_STATE(616)] = 37355, - [SMALL_STATE(617)] = 37409, - [SMALL_STATE(618)] = 37463, - [SMALL_STATE(619)] = 37539, - [SMALL_STATE(620)] = 37593, - [SMALL_STATE(621)] = 37647, - [SMALL_STATE(622)] = 37701, - [SMALL_STATE(623)] = 37777, - [SMALL_STATE(624)] = 37853, - [SMALL_STATE(625)] = 37907, - [SMALL_STATE(626)] = 37983, - [SMALL_STATE(627)] = 38059, - [SMALL_STATE(628)] = 38132, - [SMALL_STATE(629)] = 38205, - [SMALL_STATE(630)] = 38278, - [SMALL_STATE(631)] = 38351, - [SMALL_STATE(632)] = 38424, - [SMALL_STATE(633)] = 38497, - [SMALL_STATE(634)] = 38570, - [SMALL_STATE(635)] = 38643, - [SMALL_STATE(636)] = 38716, - [SMALL_STATE(637)] = 38789, - [SMALL_STATE(638)] = 38862, - [SMALL_STATE(639)] = 38935, - [SMALL_STATE(640)] = 39008, - [SMALL_STATE(641)] = 39081, - [SMALL_STATE(642)] = 39154, - [SMALL_STATE(643)] = 39227, - [SMALL_STATE(644)] = 39300, - [SMALL_STATE(645)] = 39373, - [SMALL_STATE(646)] = 39446, - [SMALL_STATE(647)] = 39519, - [SMALL_STATE(648)] = 39592, - [SMALL_STATE(649)] = 39665, - [SMALL_STATE(650)] = 39738, - [SMALL_STATE(651)] = 39811, - [SMALL_STATE(652)] = 39884, - [SMALL_STATE(653)] = 39957, - [SMALL_STATE(654)] = 40030, - [SMALL_STATE(655)] = 40103, - [SMALL_STATE(656)] = 40176, - [SMALL_STATE(657)] = 40249, - [SMALL_STATE(658)] = 40322, - [SMALL_STATE(659)] = 40395, - [SMALL_STATE(660)] = 40468, - [SMALL_STATE(661)] = 40541, - [SMALL_STATE(662)] = 40614, - [SMALL_STATE(663)] = 40691, - [SMALL_STATE(664)] = 40764, - [SMALL_STATE(665)] = 40837, - [SMALL_STATE(666)] = 40910, - [SMALL_STATE(667)] = 40983, - [SMALL_STATE(668)] = 41056, - [SMALL_STATE(669)] = 41129, - [SMALL_STATE(670)] = 41202, - [SMALL_STATE(671)] = 41275, - [SMALL_STATE(672)] = 41348, - [SMALL_STATE(673)] = 41421, - [SMALL_STATE(674)] = 41494, - [SMALL_STATE(675)] = 41567, - [SMALL_STATE(676)] = 41640, - [SMALL_STATE(677)] = 41713, - [SMALL_STATE(678)] = 41786, - [SMALL_STATE(679)] = 41863, - [SMALL_STATE(680)] = 41936, - [SMALL_STATE(681)] = 42009, - [SMALL_STATE(682)] = 42082, - [SMALL_STATE(683)] = 42155, - [SMALL_STATE(684)] = 42228, - [SMALL_STATE(685)] = 42301, - [SMALL_STATE(686)] = 42374, - [SMALL_STATE(687)] = 42447, - [SMALL_STATE(688)] = 42520, - [SMALL_STATE(689)] = 42593, - [SMALL_STATE(690)] = 42666, - [SMALL_STATE(691)] = 42739, - [SMALL_STATE(692)] = 42812, - [SMALL_STATE(693)] = 42885, - [SMALL_STATE(694)] = 42958, - [SMALL_STATE(695)] = 43031, - [SMALL_STATE(696)] = 43079, - [SMALL_STATE(697)] = 43127, - [SMALL_STATE(698)] = 43175, - [SMALL_STATE(699)] = 43223, - [SMALL_STATE(700)] = 43270, - [SMALL_STATE(701)] = 43317, - [SMALL_STATE(702)] = 43364, - [SMALL_STATE(703)] = 43411, - [SMALL_STATE(704)] = 43458, - [SMALL_STATE(705)] = 43505, - [SMALL_STATE(706)] = 43552, - [SMALL_STATE(707)] = 43599, - [SMALL_STATE(708)] = 43646, - [SMALL_STATE(709)] = 43693, - [SMALL_STATE(710)] = 43740, - [SMALL_STATE(711)] = 43787, - [SMALL_STATE(712)] = 43834, - [SMALL_STATE(713)] = 43881, - [SMALL_STATE(714)] = 43928, - [SMALL_STATE(715)] = 43975, - [SMALL_STATE(716)] = 44022, - [SMALL_STATE(717)] = 44069, - [SMALL_STATE(718)] = 44116, - [SMALL_STATE(719)] = 44163, - [SMALL_STATE(720)] = 44244, - [SMALL_STATE(721)] = 44291, - [SMALL_STATE(722)] = 44338, - [SMALL_STATE(723)] = 44385, - [SMALL_STATE(724)] = 44432, - [SMALL_STATE(725)] = 44479, - [SMALL_STATE(726)] = 44560, - [SMALL_STATE(727)] = 44607, - [SMALL_STATE(728)] = 44654, - [SMALL_STATE(729)] = 44701, - [SMALL_STATE(730)] = 44748, - [SMALL_STATE(731)] = 44795, - [SMALL_STATE(732)] = 44842, - [SMALL_STATE(733)] = 44889, - [SMALL_STATE(734)] = 44936, - [SMALL_STATE(735)] = 44996, - [SMALL_STATE(736)] = 45052, - [SMALL_STATE(737)] = 45108, - [SMALL_STATE(738)] = 45170, - [SMALL_STATE(739)] = 45240, - [SMALL_STATE(740)] = 45308, - [SMALL_STATE(741)] = 45368, - [SMALL_STATE(742)] = 45424, - [SMALL_STATE(743)] = 45490, - [SMALL_STATE(744)] = 45554, - [SMALL_STATE(745)] = 45604, - [SMALL_STATE(746)] = 45654, - [SMALL_STATE(747)] = 45704, - [SMALL_STATE(748)] = 45754, - [SMALL_STATE(749)] = 45824, - [SMALL_STATE(750)] = 45894, - [SMALL_STATE(751)] = 45950, - [SMALL_STATE(752)] = 46012, - [SMALL_STATE(753)] = 46082, - [SMALL_STATE(754)] = 46150, - [SMALL_STATE(755)] = 46206, - [SMALL_STATE(756)] = 46272, - [SMALL_STATE(757)] = 46336, - [SMALL_STATE(758)] = 46406, - [SMALL_STATE(759)] = 46476, - [SMALL_STATE(760)] = 46532, - [SMALL_STATE(761)] = 46588, - [SMALL_STATE(762)] = 46644, - [SMALL_STATE(763)] = 46693, - [SMALL_STATE(764)] = 46742, - [SMALL_STATE(765)] = 46787, - [SMALL_STATE(766)] = 46836, - [SMALL_STATE(767)] = 46915, - [SMALL_STATE(768)] = 46964, - [SMALL_STATE(769)] = 47013, - [SMALL_STATE(770)] = 47062, - [SMALL_STATE(771)] = 47111, - [SMALL_STATE(772)] = 47160, - [SMALL_STATE(773)] = 47237, - [SMALL_STATE(774)] = 47284, - [SMALL_STATE(775)] = 47331, - [SMALL_STATE(776)] = 47380, - [SMALL_STATE(777)] = 47429, - [SMALL_STATE(778)] = 47474, - [SMALL_STATE(779)] = 47523, - [SMALL_STATE(780)] = 47602, - [SMALL_STATE(781)] = 47649, - [SMALL_STATE(782)] = 47696, - [SMALL_STATE(783)] = 47745, - [SMALL_STATE(784)] = 47803, - [SMALL_STATE(785)] = 47857, - [SMALL_STATE(786)] = 47911, - [SMALL_STATE(787)] = 47965, - [SMALL_STATE(788)] = 48025, - [SMALL_STATE(789)] = 48093, - [SMALL_STATE(790)] = 48159, - [SMALL_STATE(791)] = 48213, - [SMALL_STATE(792)] = 48267, - [SMALL_STATE(793)] = 48331, - [SMALL_STATE(794)] = 48393, - [SMALL_STATE(795)] = 48441, - [SMALL_STATE(796)] = 48489, - [SMALL_STATE(797)] = 48543, - [SMALL_STATE(798)] = 48611, - [SMALL_STATE(799)] = 48679, - [SMALL_STATE(800)] = 48739, - [SMALL_STATE(801)] = 48807, - [SMALL_STATE(802)] = 48873, - [SMALL_STATE(803)] = 48931, - [SMALL_STATE(804)] = 48985, - [SMALL_STATE(805)] = 49049, - [SMALL_STATE(806)] = 49111, - [SMALL_STATE(807)] = 49155, - [SMALL_STATE(808)] = 49199, - [SMALL_STATE(809)] = 49243, - [SMALL_STATE(810)] = 49287, - [SMALL_STATE(811)] = 49341, - [SMALL_STATE(812)] = 49395, - [SMALL_STATE(813)] = 49449, - [SMALL_STATE(814)] = 49509, - [SMALL_STATE(815)] = 49577, - [SMALL_STATE(816)] = 49643, - [SMALL_STATE(817)] = 49701, - [SMALL_STATE(818)] = 49755, - [SMALL_STATE(819)] = 49819, - [SMALL_STATE(820)] = 49881, - [SMALL_STATE(821)] = 49949, - [SMALL_STATE(822)] = 50017, - [SMALL_STATE(823)] = 50093, - [SMALL_STATE(824)] = 50161, - [SMALL_STATE(825)] = 50229, - [SMALL_STATE(826)] = 50283, - [SMALL_STATE(827)] = 50328, - [SMALL_STATE(828)] = 50371, - [SMALL_STATE(829)] = 50424, - [SMALL_STATE(830)] = 50483, - [SMALL_STATE(831)] = 50526, - [SMALL_STATE(832)] = 50593, - [SMALL_STATE(833)] = 50658, - [SMALL_STATE(834)] = 50715, - [SMALL_STATE(835)] = 50760, - [SMALL_STATE(836)] = 50813, - [SMALL_STATE(837)] = 50876, - [SMALL_STATE(838)] = 50937, - [SMALL_STATE(839)] = 50982, - [SMALL_STATE(840)] = 51029, - [SMALL_STATE(841)] = 51074, - [SMALL_STATE(842)] = 51117, - [SMALL_STATE(843)] = 51162, - [SMALL_STATE(844)] = 51229, - [SMALL_STATE(845)] = 51296, - [SMALL_STATE(846)] = 51349, - [SMALL_STATE(847)] = 51430, - [SMALL_STATE(848)] = 51473, - [SMALL_STATE(849)] = 51526, - [SMALL_STATE(850)] = 51571, - [SMALL_STATE(851)] = 51614, - [SMALL_STATE(852)] = 51657, - [SMALL_STATE(853)] = 51704, - [SMALL_STATE(854)] = 51749, - [SMALL_STATE(855)] = 51830, - [SMALL_STATE(856)] = 51875, - [SMALL_STATE(857)] = 51956, - [SMALL_STATE(858)] = 52001, - [SMALL_STATE(859)] = 52048, - [SMALL_STATE(860)] = 52091, - [SMALL_STATE(861)] = 52136, - [SMALL_STATE(862)] = 52179, - [SMALL_STATE(863)] = 52260, - [SMALL_STATE(864)] = 52305, - [SMALL_STATE(865)] = 52352, - [SMALL_STATE(866)] = 52397, - [SMALL_STATE(867)] = 52439, - [SMALL_STATE(868)] = 52481, - [SMALL_STATE(869)] = 52523, - [SMALL_STATE(870)] = 52565, - [SMALL_STATE(871)] = 52607, - [SMALL_STATE(872)] = 52649, - [SMALL_STATE(873)] = 52691, - [SMALL_STATE(874)] = 52733, - [SMALL_STATE(875)] = 52775, - [SMALL_STATE(876)] = 52817, - [SMALL_STATE(877)] = 52859, - [SMALL_STATE(878)] = 52901, - [SMALL_STATE(879)] = 52943, - [SMALL_STATE(880)] = 52985, - [SMALL_STATE(881)] = 53027, - [SMALL_STATE(882)] = 53069, - [SMALL_STATE(883)] = 53111, - [SMALL_STATE(884)] = 53153, - [SMALL_STATE(885)] = 53195, - [SMALL_STATE(886)] = 53237, - [SMALL_STATE(887)] = 53279, - [SMALL_STATE(888)] = 53321, - [SMALL_STATE(889)] = 53363, - [SMALL_STATE(890)] = 53405, - [SMALL_STATE(891)] = 53447, - [SMALL_STATE(892)] = 53489, - [SMALL_STATE(893)] = 53531, - [SMALL_STATE(894)] = 53573, - [SMALL_STATE(895)] = 53615, - [SMALL_STATE(896)] = 53657, - [SMALL_STATE(897)] = 53699, - [SMALL_STATE(898)] = 53741, - [SMALL_STATE(899)] = 53783, - [SMALL_STATE(900)] = 53825, - [SMALL_STATE(901)] = 53867, - [SMALL_STATE(902)] = 53909, - [SMALL_STATE(903)] = 53951, - [SMALL_STATE(904)] = 53993, - [SMALL_STATE(905)] = 54035, - [SMALL_STATE(906)] = 54077, - [SMALL_STATE(907)] = 54119, - [SMALL_STATE(908)] = 54161, - [SMALL_STATE(909)] = 54203, - [SMALL_STATE(910)] = 54245, - [SMALL_STATE(911)] = 54287, - [SMALL_STATE(912)] = 54331, - [SMALL_STATE(913)] = 54375, - [SMALL_STATE(914)] = 54417, - [SMALL_STATE(915)] = 54459, - [SMALL_STATE(916)] = 54503, - [SMALL_STATE(917)] = 54545, - [SMALL_STATE(918)] = 54587, - [SMALL_STATE(919)] = 54629, - [SMALL_STATE(920)] = 54673, - [SMALL_STATE(921)] = 54715, - [SMALL_STATE(922)] = 54757, - [SMALL_STATE(923)] = 54799, - [SMALL_STATE(924)] = 54841, - [SMALL_STATE(925)] = 54883, - [SMALL_STATE(926)] = 54927, - [SMALL_STATE(927)] = 54969, - [SMALL_STATE(928)] = 55047, - [SMALL_STATE(929)] = 55125, - [SMALL_STATE(930)] = 55167, - [SMALL_STATE(931)] = 55209, - [SMALL_STATE(932)] = 55251, - [SMALL_STATE(933)] = 55331, - [SMALL_STATE(934)] = 55409, - [SMALL_STATE(935)] = 55487, - [SMALL_STATE(936)] = 55565, - [SMALL_STATE(937)] = 55607, - [SMALL_STATE(938)] = 55649, - [SMALL_STATE(939)] = 55691, - [SMALL_STATE(940)] = 55733, - [SMALL_STATE(941)] = 55775, - [SMALL_STATE(942)] = 55817, - [SMALL_STATE(943)] = 55859, - [SMALL_STATE(944)] = 55901, - [SMALL_STATE(945)] = 55943, - [SMALL_STATE(946)] = 55984, - [SMALL_STATE(947)] = 56025, - [SMALL_STATE(948)] = 56066, - [SMALL_STATE(949)] = 56107, - [SMALL_STATE(950)] = 56148, - [SMALL_STATE(951)] = 56189, - [SMALL_STATE(952)] = 56230, - [SMALL_STATE(953)] = 56271, - [SMALL_STATE(954)] = 56312, - [SMALL_STATE(955)] = 56353, - [SMALL_STATE(956)] = 56394, - [SMALL_STATE(957)] = 56435, - [SMALL_STATE(958)] = 56476, - [SMALL_STATE(959)] = 56517, - [SMALL_STATE(960)] = 56558, - [SMALL_STATE(961)] = 56599, - [SMALL_STATE(962)] = 56640, - [SMALL_STATE(963)] = 56681, - [SMALL_STATE(964)] = 56722, - [SMALL_STATE(965)] = 56801, - [SMALL_STATE(966)] = 56842, - [SMALL_STATE(967)] = 56883, - [SMALL_STATE(968)] = 56924, - [SMALL_STATE(969)] = 56965, - [SMALL_STATE(970)] = 57006, - [SMALL_STATE(971)] = 57047, - [SMALL_STATE(972)] = 57088, - [SMALL_STATE(973)] = 57133, - [SMALL_STATE(974)] = 57178, - [SMALL_STATE(975)] = 57219, - [SMALL_STATE(976)] = 57260, - [SMALL_STATE(977)] = 57301, - [SMALL_STATE(978)] = 57342, - [SMALL_STATE(979)] = 57383, - [SMALL_STATE(980)] = 57458, - [SMALL_STATE(981)] = 57537, - [SMALL_STATE(982)] = 57578, - [SMALL_STATE(983)] = 57657, - [SMALL_STATE(984)] = 57698, - [SMALL_STATE(985)] = 57771, - [SMALL_STATE(986)] = 57841, - [SMALL_STATE(987)] = 57911, - [SMALL_STATE(988)] = 57973, - [SMALL_STATE(989)] = 58035, - [SMALL_STATE(990)] = 58074, - [SMALL_STATE(991)] = 58113, - [SMALL_STATE(992)] = 58152, - [SMALL_STATE(993)] = 58191, - [SMALL_STATE(994)] = 58221, - [SMALL_STATE(995)] = 58274, - [SMALL_STATE(996)] = 58311, - [SMALL_STATE(997)] = 58364, - [SMALL_STATE(998)] = 58399, - [SMALL_STATE(999)] = 58424, - [SMALL_STATE(1000)] = 58449, - [SMALL_STATE(1001)] = 58478, - [SMALL_STATE(1002)] = 58507, - [SMALL_STATE(1003)] = 58544, - [SMALL_STATE(1004)] = 58581, - [SMALL_STATE(1005)] = 58606, - [SMALL_STATE(1006)] = 58631, - [SMALL_STATE(1007)] = 58668, - [SMALL_STATE(1008)] = 58703, - [SMALL_STATE(1009)] = 58756, - [SMALL_STATE(1010)] = 58790, - [SMALL_STATE(1011)] = 58818, - [SMALL_STATE(1012)] = 58852, - [SMALL_STATE(1013)] = 58898, - [SMALL_STATE(1014)] = 58929, - [SMALL_STATE(1015)] = 58972, - [SMALL_STATE(1016)] = 59015, - [SMALL_STATE(1017)] = 59058, - [SMALL_STATE(1018)] = 59101, - [SMALL_STATE(1019)] = 59144, - [SMALL_STATE(1020)] = 59187, - [SMALL_STATE(1021)] = 59230, - [SMALL_STATE(1022)] = 59274, - [SMALL_STATE(1023)] = 59314, - [SMALL_STATE(1024)] = 59351, - [SMALL_STATE(1025)] = 59376, - [SMALL_STATE(1026)] = 59413, - [SMALL_STATE(1027)] = 59450, - [SMALL_STATE(1028)] = 59487, - [SMALL_STATE(1029)] = 59521, - [SMALL_STATE(1030)] = 59555, - [SMALL_STATE(1031)] = 59576, - [SMALL_STATE(1032)] = 59597, - [SMALL_STATE(1033)] = 59619, - [SMALL_STATE(1034)] = 59650, - [SMALL_STATE(1035)] = 59687, - [SMALL_STATE(1036)] = 59718, - [SMALL_STATE(1037)] = 59749, - [SMALL_STATE(1038)] = 59780, - [SMALL_STATE(1039)] = 59803, - [SMALL_STATE(1040)] = 59824, - [SMALL_STATE(1041)] = 59845, - [SMALL_STATE(1042)] = 59882, - [SMALL_STATE(1043)] = 59905, - [SMALL_STATE(1044)] = 59936, - [SMALL_STATE(1045)] = 59967, - [SMALL_STATE(1046)] = 59998, - [SMALL_STATE(1047)] = 60035, - [SMALL_STATE(1048)] = 60066, - [SMALL_STATE(1049)] = 60097, - [SMALL_STATE(1050)] = 60114, - [SMALL_STATE(1051)] = 60145, - [SMALL_STATE(1052)] = 60176, - [SMALL_STATE(1053)] = 60207, - [SMALL_STATE(1054)] = 60238, - [SMALL_STATE(1055)] = 60269, - [SMALL_STATE(1056)] = 60300, - [SMALL_STATE(1057)] = 60331, - [SMALL_STATE(1058)] = 60362, - [SMALL_STATE(1059)] = 60393, - [SMALL_STATE(1060)] = 60424, - [SMALL_STATE(1061)] = 60461, - [SMALL_STATE(1062)] = 60498, - [SMALL_STATE(1063)] = 60520, - [SMALL_STATE(1064)] = 60538, - [SMALL_STATE(1065)] = 60562, - [SMALL_STATE(1066)] = 60582, - [SMALL_STATE(1067)] = 60616, - [SMALL_STATE(1068)] = 60650, - [SMALL_STATE(1069)] = 60670, - [SMALL_STATE(1070)] = 60692, - [SMALL_STATE(1071)] = 60714, - [SMALL_STATE(1072)] = 60736, - [SMALL_STATE(1073)] = 60754, - [SMALL_STATE(1074)] = 60788, - [SMALL_STATE(1075)] = 60812, - [SMALL_STATE(1076)] = 60846, - [SMALL_STATE(1077)] = 60880, - [SMALL_STATE(1078)] = 60900, - [SMALL_STATE(1079)] = 60918, - [SMALL_STATE(1080)] = 60952, - [SMALL_STATE(1081)] = 60986, - [SMALL_STATE(1082)] = 61020, - [SMALL_STATE(1083)] = 61042, - [SMALL_STATE(1084)] = 61076, - [SMALL_STATE(1085)] = 61110, - [SMALL_STATE(1086)] = 61134, - [SMALL_STATE(1087)] = 61168, - [SMALL_STATE(1088)] = 61190, - [SMALL_STATE(1089)] = 61224, - [SMALL_STATE(1090)] = 61244, - [SMALL_STATE(1091)] = 61263, - [SMALL_STATE(1092)] = 61282, - [SMALL_STATE(1093)] = 61305, - [SMALL_STATE(1094)] = 61330, - [SMALL_STATE(1095)] = 61349, - [SMALL_STATE(1096)] = 61374, - [SMALL_STATE(1097)] = 61395, - [SMALL_STATE(1098)] = 61414, - [SMALL_STATE(1099)] = 61433, - [SMALL_STATE(1100)] = 61456, - [SMALL_STATE(1101)] = 61479, - [SMALL_STATE(1102)] = 61498, - [SMALL_STATE(1103)] = 61518, - [SMALL_STATE(1104)] = 61538, - [SMALL_STATE(1105)] = 61556, - [SMALL_STATE(1106)] = 61572, - [SMALL_STATE(1107)] = 61590, - [SMALL_STATE(1108)] = 61610, - [SMALL_STATE(1109)] = 61630, - [SMALL_STATE(1110)] = 61650, - [SMALL_STATE(1111)] = 61664, - [SMALL_STATE(1112)] = 61682, - [SMALL_STATE(1113)] = 61702, - [SMALL_STATE(1114)] = 61726, - [SMALL_STATE(1115)] = 61740, - [SMALL_STATE(1116)] = 61754, - [SMALL_STATE(1117)] = 61768, - [SMALL_STATE(1118)] = 61788, - [SMALL_STATE(1119)] = 61812, - [SMALL_STATE(1120)] = 61826, - [SMALL_STATE(1121)] = 61840, - [SMALL_STATE(1122)] = 61856, - [SMALL_STATE(1123)] = 61882, - [SMALL_STATE(1124)] = 61900, - [SMALL_STATE(1125)] = 61914, - [SMALL_STATE(1126)] = 61934, - [SMALL_STATE(1127)] = 61948, - [SMALL_STATE(1128)] = 61962, - [SMALL_STATE(1129)] = 61980, - [SMALL_STATE(1130)] = 61994, - [SMALL_STATE(1131)] = 62008, - [SMALL_STATE(1132)] = 62022, - [SMALL_STATE(1133)] = 62036, - [SMALL_STATE(1134)] = 62058, - [SMALL_STATE(1135)] = 62072, - [SMALL_STATE(1136)] = 62086, - [SMALL_STATE(1137)] = 62104, - [SMALL_STATE(1138)] = 62118, - [SMALL_STATE(1139)] = 62132, - [SMALL_STATE(1140)] = 62154, - [SMALL_STATE(1141)] = 62168, - [SMALL_STATE(1142)] = 62188, - [SMALL_STATE(1143)] = 62204, - [SMALL_STATE(1144)] = 62218, - [SMALL_STATE(1145)] = 62238, - [SMALL_STATE(1146)] = 62256, - [SMALL_STATE(1147)] = 62274, - [SMALL_STATE(1148)] = 62296, - [SMALL_STATE(1149)] = 62320, - [SMALL_STATE(1150)] = 62338, - [SMALL_STATE(1151)] = 62358, - [SMALL_STATE(1152)] = 62376, - [SMALL_STATE(1153)] = 62392, - [SMALL_STATE(1154)] = 62410, - [SMALL_STATE(1155)] = 62424, - [SMALL_STATE(1156)] = 62442, - [SMALL_STATE(1157)] = 62462, - [SMALL_STATE(1158)] = 62482, - [SMALL_STATE(1159)] = 62496, - [SMALL_STATE(1160)] = 62510, - [SMALL_STATE(1161)] = 62524, - [SMALL_STATE(1162)] = 62538, - [SMALL_STATE(1163)] = 62556, - [SMALL_STATE(1164)] = 62574, - [SMALL_STATE(1165)] = 62594, - [SMALL_STATE(1166)] = 62612, - [SMALL_STATE(1167)] = 62632, - [SMALL_STATE(1168)] = 62646, - [SMALL_STATE(1169)] = 62660, - [SMALL_STATE(1170)] = 62685, - [SMALL_STATE(1171)] = 62710, - [SMALL_STATE(1172)] = 62731, - [SMALL_STATE(1173)] = 62750, - [SMALL_STATE(1174)] = 62771, - [SMALL_STATE(1175)] = 62790, - [SMALL_STATE(1176)] = 62813, - [SMALL_STATE(1177)] = 62826, - [SMALL_STATE(1178)] = 62849, - [SMALL_STATE(1179)] = 62862, - [SMALL_STATE(1180)] = 62885, - [SMALL_STATE(1181)] = 62908, - [SMALL_STATE(1182)] = 62929, - [SMALL_STATE(1183)] = 62948, - [SMALL_STATE(1184)] = 62967, - [SMALL_STATE(1185)] = 62982, - [SMALL_STATE(1186)] = 63005, - [SMALL_STATE(1187)] = 63030, - [SMALL_STATE(1188)] = 63051, - [SMALL_STATE(1189)] = 63068, - [SMALL_STATE(1190)] = 63087, - [SMALL_STATE(1191)] = 63112, - [SMALL_STATE(1192)] = 63131, - [SMALL_STATE(1193)] = 63150, - [SMALL_STATE(1194)] = 63167, - [SMALL_STATE(1195)] = 63182, - [SMALL_STATE(1196)] = 63199, - [SMALL_STATE(1197)] = 63212, - [SMALL_STATE(1198)] = 63235, - [SMALL_STATE(1199)] = 63260, - [SMALL_STATE(1200)] = 63279, - [SMALL_STATE(1201)] = 63300, - [SMALL_STATE(1202)] = 63323, - [SMALL_STATE(1203)] = 63346, - [SMALL_STATE(1204)] = 63359, - [SMALL_STATE(1205)] = 63384, - [SMALL_STATE(1206)] = 63409, - [SMALL_STATE(1207)] = 63428, - [SMALL_STATE(1208)] = 63453, - [SMALL_STATE(1209)] = 63472, - [SMALL_STATE(1210)] = 63491, - [SMALL_STATE(1211)] = 63504, - [SMALL_STATE(1212)] = 63517, - [SMALL_STATE(1213)] = 63542, - [SMALL_STATE(1214)] = 63565, - [SMALL_STATE(1215)] = 63584, - [SMALL_STATE(1216)] = 63600, - [SMALL_STATE(1217)] = 63616, - [SMALL_STATE(1218)] = 63630, - [SMALL_STATE(1219)] = 63644, - [SMALL_STATE(1220)] = 63660, - [SMALL_STATE(1221)] = 63680, - [SMALL_STATE(1222)] = 63696, - [SMALL_STATE(1223)] = 63712, - [SMALL_STATE(1224)] = 63726, - [SMALL_STATE(1225)] = 63744, - [SMALL_STATE(1226)] = 63766, - [SMALL_STATE(1227)] = 63784, - [SMALL_STATE(1228)] = 63802, - [SMALL_STATE(1229)] = 63820, - [SMALL_STATE(1230)] = 63836, - [SMALL_STATE(1231)] = 63858, - [SMALL_STATE(1232)] = 63876, - [SMALL_STATE(1233)] = 63892, - [SMALL_STATE(1234)] = 63908, - [SMALL_STATE(1235)] = 63924, - [SMALL_STATE(1236)] = 63946, - [SMALL_STATE(1237)] = 63968, - [SMALL_STATE(1238)] = 63990, - [SMALL_STATE(1239)] = 64008, - [SMALL_STATE(1240)] = 64020, - [SMALL_STATE(1241)] = 64042, - [SMALL_STATE(1242)] = 64058, - [SMALL_STATE(1243)] = 64074, - [SMALL_STATE(1244)] = 64092, - [SMALL_STATE(1245)] = 64104, - [SMALL_STATE(1246)] = 64118, - [SMALL_STATE(1247)] = 64138, - [SMALL_STATE(1248)] = 64158, - [SMALL_STATE(1249)] = 64174, - [SMALL_STATE(1250)] = 64194, - [SMALL_STATE(1251)] = 64212, - [SMALL_STATE(1252)] = 64228, - [SMALL_STATE(1253)] = 64242, - [SMALL_STATE(1254)] = 64256, - [SMALL_STATE(1255)] = 64278, - [SMALL_STATE(1256)] = 64295, - [SMALL_STATE(1257)] = 64314, - [SMALL_STATE(1258)] = 64329, - [SMALL_STATE(1259)] = 64346, - [SMALL_STATE(1260)] = 64361, - [SMALL_STATE(1261)] = 64376, - [SMALL_STATE(1262)] = 64393, - [SMALL_STATE(1263)] = 64410, - [SMALL_STATE(1264)] = 64421, - [SMALL_STATE(1265)] = 64438, - [SMALL_STATE(1266)] = 64457, - [SMALL_STATE(1267)] = 64474, - [SMALL_STATE(1268)] = 64485, - [SMALL_STATE(1269)] = 64502, - [SMALL_STATE(1270)] = 64519, - [SMALL_STATE(1271)] = 64534, - [SMALL_STATE(1272)] = 64551, - [SMALL_STATE(1273)] = 64570, - [SMALL_STATE(1274)] = 64581, - [SMALL_STATE(1275)] = 64598, - [SMALL_STATE(1276)] = 64615, - [SMALL_STATE(1277)] = 64632, - [SMALL_STATE(1278)] = 64643, - [SMALL_STATE(1279)] = 64658, - [SMALL_STATE(1280)] = 64675, - [SMALL_STATE(1281)] = 64690, - [SMALL_STATE(1282)] = 64709, - [SMALL_STATE(1283)] = 64726, - [SMALL_STATE(1284)] = 64745, - [SMALL_STATE(1285)] = 64764, - [SMALL_STATE(1286)] = 64781, - [SMALL_STATE(1287)] = 64796, - [SMALL_STATE(1288)] = 64815, - [SMALL_STATE(1289)] = 64834, - [SMALL_STATE(1290)] = 64845, - [SMALL_STATE(1291)] = 64862, - [SMALL_STATE(1292)] = 64879, - [SMALL_STATE(1293)] = 64896, - [SMALL_STATE(1294)] = 64910, - [SMALL_STATE(1295)] = 64924, - [SMALL_STATE(1296)] = 64940, - [SMALL_STATE(1297)] = 64956, - [SMALL_STATE(1298)] = 64972, - [SMALL_STATE(1299)] = 64986, - [SMALL_STATE(1300)] = 65000, - [SMALL_STATE(1301)] = 65010, - [SMALL_STATE(1302)] = 65026, - [SMALL_STATE(1303)] = 65042, - [SMALL_STATE(1304)] = 65058, - [SMALL_STATE(1305)] = 65072, - [SMALL_STATE(1306)] = 65086, - [SMALL_STATE(1307)] = 65098, - [SMALL_STATE(1308)] = 65114, - [SMALL_STATE(1309)] = 65124, - [SMALL_STATE(1310)] = 65138, - [SMALL_STATE(1311)] = 65154, - [SMALL_STATE(1312)] = 65170, - [SMALL_STATE(1313)] = 65186, - [SMALL_STATE(1314)] = 65196, - [SMALL_STATE(1315)] = 65206, - [SMALL_STATE(1316)] = 65216, - [SMALL_STATE(1317)] = 65230, - [SMALL_STATE(1318)] = 65244, - [SMALL_STATE(1319)] = 65258, - [SMALL_STATE(1320)] = 65272, - [SMALL_STATE(1321)] = 65286, - [SMALL_STATE(1322)] = 65302, - [SMALL_STATE(1323)] = 65318, - [SMALL_STATE(1324)] = 65334, - [SMALL_STATE(1325)] = 65350, - [SMALL_STATE(1326)] = 65364, - [SMALL_STATE(1327)] = 65378, - [SMALL_STATE(1328)] = 65392, - [SMALL_STATE(1329)] = 65408, - [SMALL_STATE(1330)] = 65424, - [SMALL_STATE(1331)] = 65440, - [SMALL_STATE(1332)] = 65456, - [SMALL_STATE(1333)] = 65472, - [SMALL_STATE(1334)] = 65488, - [SMALL_STATE(1335)] = 65504, - [SMALL_STATE(1336)] = 65520, - [SMALL_STATE(1337)] = 65534, - [SMALL_STATE(1338)] = 65548, - [SMALL_STATE(1339)] = 65562, - [SMALL_STATE(1340)] = 65578, - [SMALL_STATE(1341)] = 65592, - [SMALL_STATE(1342)] = 65604, - [SMALL_STATE(1343)] = 65618, - [SMALL_STATE(1344)] = 65634, - [SMALL_STATE(1345)] = 65648, - [SMALL_STATE(1346)] = 65664, - [SMALL_STATE(1347)] = 65680, - [SMALL_STATE(1348)] = 65696, - [SMALL_STATE(1349)] = 65712, - [SMALL_STATE(1350)] = 65728, - [SMALL_STATE(1351)] = 65744, - [SMALL_STATE(1352)] = 65760, - [SMALL_STATE(1353)] = 65776, - [SMALL_STATE(1354)] = 65790, - [SMALL_STATE(1355)] = 65804, - [SMALL_STATE(1356)] = 65818, - [SMALL_STATE(1357)] = 65832, - [SMALL_STATE(1358)] = 65848, - [SMALL_STATE(1359)] = 65858, - [SMALL_STATE(1360)] = 65872, - [SMALL_STATE(1361)] = 65886, - [SMALL_STATE(1362)] = 65902, - [SMALL_STATE(1363)] = 65916, - [SMALL_STATE(1364)] = 65930, - [SMALL_STATE(1365)] = 65944, - [SMALL_STATE(1366)] = 65958, - [SMALL_STATE(1367)] = 65974, - [SMALL_STATE(1368)] = 65990, - [SMALL_STATE(1369)] = 66004, - [SMALL_STATE(1370)] = 66020, - [SMALL_STATE(1371)] = 66036, - [SMALL_STATE(1372)] = 66050, - [SMALL_STATE(1373)] = 66064, - [SMALL_STATE(1374)] = 66080, - [SMALL_STATE(1375)] = 66093, - [SMALL_STATE(1376)] = 66106, - [SMALL_STATE(1377)] = 66119, - [SMALL_STATE(1378)] = 66132, - [SMALL_STATE(1379)] = 66145, - [SMALL_STATE(1380)] = 66154, - [SMALL_STATE(1381)] = 66165, - [SMALL_STATE(1382)] = 66178, - [SMALL_STATE(1383)] = 66189, - [SMALL_STATE(1384)] = 66202, - [SMALL_STATE(1385)] = 66215, - [SMALL_STATE(1386)] = 66228, - [SMALL_STATE(1387)] = 66241, - [SMALL_STATE(1388)] = 66254, - [SMALL_STATE(1389)] = 66267, - [SMALL_STATE(1390)] = 66280, - [SMALL_STATE(1391)] = 66293, - [SMALL_STATE(1392)] = 66304, - [SMALL_STATE(1393)] = 66317, - [SMALL_STATE(1394)] = 66328, - [SMALL_STATE(1395)] = 66337, - [SMALL_STATE(1396)] = 66350, - [SMALL_STATE(1397)] = 66363, - [SMALL_STATE(1398)] = 66376, - [SMALL_STATE(1399)] = 66389, - [SMALL_STATE(1400)] = 66402, - [SMALL_STATE(1401)] = 66415, - [SMALL_STATE(1402)] = 66428, - [SMALL_STATE(1403)] = 66441, - [SMALL_STATE(1404)] = 66454, - [SMALL_STATE(1405)] = 66463, - [SMALL_STATE(1406)] = 66476, - [SMALL_STATE(1407)] = 66487, - [SMALL_STATE(1408)] = 66500, - [SMALL_STATE(1409)] = 66513, - [SMALL_STATE(1410)] = 66526, - [SMALL_STATE(1411)] = 66539, - [SMALL_STATE(1412)] = 66552, - [SMALL_STATE(1413)] = 66565, - [SMALL_STATE(1414)] = 66578, - [SMALL_STATE(1415)] = 66591, - [SMALL_STATE(1416)] = 66604, - [SMALL_STATE(1417)] = 66617, - [SMALL_STATE(1418)] = 66630, - [SMALL_STATE(1419)] = 66643, - [SMALL_STATE(1420)] = 66656, - [SMALL_STATE(1421)] = 66665, - [SMALL_STATE(1422)] = 66674, - [SMALL_STATE(1423)] = 66687, - [SMALL_STATE(1424)] = 66700, - [SMALL_STATE(1425)] = 66713, - [SMALL_STATE(1426)] = 66726, - [SMALL_STATE(1427)] = 66739, - [SMALL_STATE(1428)] = 66752, - [SMALL_STATE(1429)] = 66765, - [SMALL_STATE(1430)] = 66778, - [SMALL_STATE(1431)] = 66791, - [SMALL_STATE(1432)] = 66804, - [SMALL_STATE(1433)] = 66817, - [SMALL_STATE(1434)] = 66830, - [SMALL_STATE(1435)] = 66843, - [SMALL_STATE(1436)] = 66856, - [SMALL_STATE(1437)] = 66869, - [SMALL_STATE(1438)] = 66882, - [SMALL_STATE(1439)] = 66895, - [SMALL_STATE(1440)] = 66908, - [SMALL_STATE(1441)] = 66921, - [SMALL_STATE(1442)] = 66934, - [SMALL_STATE(1443)] = 66945, - [SMALL_STATE(1444)] = 66958, - [SMALL_STATE(1445)] = 66967, - [SMALL_STATE(1446)] = 66976, - [SMALL_STATE(1447)] = 66985, - [SMALL_STATE(1448)] = 66994, - [SMALL_STATE(1449)] = 67007, - [SMALL_STATE(1450)] = 67020, - [SMALL_STATE(1451)] = 67033, - [SMALL_STATE(1452)] = 67046, - [SMALL_STATE(1453)] = 67059, - [SMALL_STATE(1454)] = 67072, - [SMALL_STATE(1455)] = 67085, - [SMALL_STATE(1456)] = 67096, - [SMALL_STATE(1457)] = 67109, - [SMALL_STATE(1458)] = 67122, - [SMALL_STATE(1459)] = 67135, - [SMALL_STATE(1460)] = 67148, - [SMALL_STATE(1461)] = 67161, - [SMALL_STATE(1462)] = 67174, - [SMALL_STATE(1463)] = 67187, - [SMALL_STATE(1464)] = 67196, - [SMALL_STATE(1465)] = 67205, - [SMALL_STATE(1466)] = 67214, - [SMALL_STATE(1467)] = 67227, - [SMALL_STATE(1468)] = 67240, - [SMALL_STATE(1469)] = 67253, - [SMALL_STATE(1470)] = 67266, - [SMALL_STATE(1471)] = 67275, - [SMALL_STATE(1472)] = 67288, - [SMALL_STATE(1473)] = 67301, - [SMALL_STATE(1474)] = 67314, - [SMALL_STATE(1475)] = 67327, - [SMALL_STATE(1476)] = 67338, - [SMALL_STATE(1477)] = 67351, - [SMALL_STATE(1478)] = 67364, - [SMALL_STATE(1479)] = 67377, - [SMALL_STATE(1480)] = 67388, - [SMALL_STATE(1481)] = 67401, - [SMALL_STATE(1482)] = 67414, - [SMALL_STATE(1483)] = 67425, - [SMALL_STATE(1484)] = 67438, - [SMALL_STATE(1485)] = 67451, - [SMALL_STATE(1486)] = 67464, - [SMALL_STATE(1487)] = 67473, - [SMALL_STATE(1488)] = 67486, - [SMALL_STATE(1489)] = 67499, - [SMALL_STATE(1490)] = 67512, - [SMALL_STATE(1491)] = 67525, - [SMALL_STATE(1492)] = 67538, - [SMALL_STATE(1493)] = 67551, - [SMALL_STATE(1494)] = 67564, - [SMALL_STATE(1495)] = 67577, - [SMALL_STATE(1496)] = 67590, - [SMALL_STATE(1497)] = 67603, - [SMALL_STATE(1498)] = 67614, - [SMALL_STATE(1499)] = 67627, - [SMALL_STATE(1500)] = 67640, - [SMALL_STATE(1501)] = 67653, - [SMALL_STATE(1502)] = 67662, - [SMALL_STATE(1503)] = 67673, - [SMALL_STATE(1504)] = 67686, - [SMALL_STATE(1505)] = 67699, - [SMALL_STATE(1506)] = 67712, - [SMALL_STATE(1507)] = 67725, - [SMALL_STATE(1508)] = 67733, - [SMALL_STATE(1509)] = 67741, - [SMALL_STATE(1510)] = 67751, - [SMALL_STATE(1511)] = 67761, - [SMALL_STATE(1512)] = 67771, - [SMALL_STATE(1513)] = 67781, - [SMALL_STATE(1514)] = 67791, - [SMALL_STATE(1515)] = 67799, - [SMALL_STATE(1516)] = 67807, - [SMALL_STATE(1517)] = 67815, - [SMALL_STATE(1518)] = 67823, - [SMALL_STATE(1519)] = 67831, - [SMALL_STATE(1520)] = 67839, - [SMALL_STATE(1521)] = 67847, - [SMALL_STATE(1522)] = 67855, - [SMALL_STATE(1523)] = 67863, - [SMALL_STATE(1524)] = 67871, - [SMALL_STATE(1525)] = 67879, - [SMALL_STATE(1526)] = 67887, - [SMALL_STATE(1527)] = 67895, - [SMALL_STATE(1528)] = 67903, - [SMALL_STATE(1529)] = 67911, - [SMALL_STATE(1530)] = 67919, - [SMALL_STATE(1531)] = 67927, - [SMALL_STATE(1532)] = 67935, - [SMALL_STATE(1533)] = 67943, - [SMALL_STATE(1534)] = 67951, - [SMALL_STATE(1535)] = 67959, - [SMALL_STATE(1536)] = 67967, - [SMALL_STATE(1537)] = 67975, - [SMALL_STATE(1538)] = 67983, - [SMALL_STATE(1539)] = 67991, - [SMALL_STATE(1540)] = 68001, - [SMALL_STATE(1541)] = 68009, - [SMALL_STATE(1542)] = 68019, - [SMALL_STATE(1543)] = 68027, - [SMALL_STATE(1544)] = 68037, - [SMALL_STATE(1545)] = 68047, - [SMALL_STATE(1546)] = 68055, - [SMALL_STATE(1547)] = 68065, - [SMALL_STATE(1548)] = 68073, - [SMALL_STATE(1549)] = 68083, - [SMALL_STATE(1550)] = 68093, - [SMALL_STATE(1551)] = 68103, - [SMALL_STATE(1552)] = 68111, - [SMALL_STATE(1553)] = 68121, - [SMALL_STATE(1554)] = 68131, - [SMALL_STATE(1555)] = 68141, - [SMALL_STATE(1556)] = 68149, - [SMALL_STATE(1557)] = 68159, - [SMALL_STATE(1558)] = 68169, - [SMALL_STATE(1559)] = 68177, - [SMALL_STATE(1560)] = 68187, - [SMALL_STATE(1561)] = 68197, - [SMALL_STATE(1562)] = 68207, - [SMALL_STATE(1563)] = 68217, - [SMALL_STATE(1564)] = 68225, - [SMALL_STATE(1565)] = 68235, - [SMALL_STATE(1566)] = 68245, - [SMALL_STATE(1567)] = 68255, - [SMALL_STATE(1568)] = 68265, - [SMALL_STATE(1569)] = 68273, - [SMALL_STATE(1570)] = 68283, - [SMALL_STATE(1571)] = 68291, - [SMALL_STATE(1572)] = 68299, - [SMALL_STATE(1573)] = 68307, - [SMALL_STATE(1574)] = 68315, - [SMALL_STATE(1575)] = 68325, - [SMALL_STATE(1576)] = 68333, - [SMALL_STATE(1577)] = 68343, - [SMALL_STATE(1578)] = 68351, - [SMALL_STATE(1579)] = 68361, - [SMALL_STATE(1580)] = 68369, - [SMALL_STATE(1581)] = 68377, - [SMALL_STATE(1582)] = 68385, - [SMALL_STATE(1583)] = 68395, - [SMALL_STATE(1584)] = 68402, - [SMALL_STATE(1585)] = 68409, - [SMALL_STATE(1586)] = 68416, - [SMALL_STATE(1587)] = 68423, - [SMALL_STATE(1588)] = 68430, - [SMALL_STATE(1589)] = 68437, - [SMALL_STATE(1590)] = 68444, - [SMALL_STATE(1591)] = 68451, - [SMALL_STATE(1592)] = 68458, - [SMALL_STATE(1593)] = 68465, - [SMALL_STATE(1594)] = 68472, - [SMALL_STATE(1595)] = 68479, - [SMALL_STATE(1596)] = 68486, - [SMALL_STATE(1597)] = 68493, - [SMALL_STATE(1598)] = 68500, - [SMALL_STATE(1599)] = 68507, - [SMALL_STATE(1600)] = 68514, - [SMALL_STATE(1601)] = 68521, - [SMALL_STATE(1602)] = 68528, - [SMALL_STATE(1603)] = 68535, - [SMALL_STATE(1604)] = 68542, - [SMALL_STATE(1605)] = 68549, - [SMALL_STATE(1606)] = 68556, - [SMALL_STATE(1607)] = 68563, - [SMALL_STATE(1608)] = 68570, - [SMALL_STATE(1609)] = 68577, - [SMALL_STATE(1610)] = 68584, - [SMALL_STATE(1611)] = 68591, - [SMALL_STATE(1612)] = 68598, - [SMALL_STATE(1613)] = 68605, - [SMALL_STATE(1614)] = 68612, - [SMALL_STATE(1615)] = 68619, - [SMALL_STATE(1616)] = 68626, - [SMALL_STATE(1617)] = 68633, - [SMALL_STATE(1618)] = 68640, - [SMALL_STATE(1619)] = 68647, - [SMALL_STATE(1620)] = 68654, - [SMALL_STATE(1621)] = 68661, - [SMALL_STATE(1622)] = 68668, - [SMALL_STATE(1623)] = 68675, - [SMALL_STATE(1624)] = 68682, - [SMALL_STATE(1625)] = 68689, - [SMALL_STATE(1626)] = 68696, - [SMALL_STATE(1627)] = 68703, - [SMALL_STATE(1628)] = 68710, - [SMALL_STATE(1629)] = 68717, - [SMALL_STATE(1630)] = 68724, - [SMALL_STATE(1631)] = 68731, - [SMALL_STATE(1632)] = 68738, - [SMALL_STATE(1633)] = 68745, - [SMALL_STATE(1634)] = 68752, - [SMALL_STATE(1635)] = 68759, - [SMALL_STATE(1636)] = 68766, - [SMALL_STATE(1637)] = 68773, - [SMALL_STATE(1638)] = 68780, - [SMALL_STATE(1639)] = 68787, - [SMALL_STATE(1640)] = 68794, - [SMALL_STATE(1641)] = 68801, - [SMALL_STATE(1642)] = 68808, - [SMALL_STATE(1643)] = 68815, - [SMALL_STATE(1644)] = 68822, - [SMALL_STATE(1645)] = 68829, - [SMALL_STATE(1646)] = 68836, - [SMALL_STATE(1647)] = 68843, - [SMALL_STATE(1648)] = 68850, - [SMALL_STATE(1649)] = 68857, - [SMALL_STATE(1650)] = 68864, - [SMALL_STATE(1651)] = 68871, - [SMALL_STATE(1652)] = 68878, - [SMALL_STATE(1653)] = 68885, - [SMALL_STATE(1654)] = 68892, - [SMALL_STATE(1655)] = 68899, - [SMALL_STATE(1656)] = 68906, - [SMALL_STATE(1657)] = 68913, - [SMALL_STATE(1658)] = 68920, - [SMALL_STATE(1659)] = 68927, - [SMALL_STATE(1660)] = 68934, - [SMALL_STATE(1661)] = 68941, - [SMALL_STATE(1662)] = 68948, - [SMALL_STATE(1663)] = 68955, - [SMALL_STATE(1664)] = 68962, - [SMALL_STATE(1665)] = 68969, - [SMALL_STATE(1666)] = 68976, - [SMALL_STATE(1667)] = 68983, - [SMALL_STATE(1668)] = 68990, - [SMALL_STATE(1669)] = 68997, - [SMALL_STATE(1670)] = 69004, - [SMALL_STATE(1671)] = 69011, - [SMALL_STATE(1672)] = 69018, - [SMALL_STATE(1673)] = 69025, - [SMALL_STATE(1674)] = 69032, - [SMALL_STATE(1675)] = 69039, - [SMALL_STATE(1676)] = 69046, - [SMALL_STATE(1677)] = 69053, - [SMALL_STATE(1678)] = 69060, - [SMALL_STATE(1679)] = 69067, - [SMALL_STATE(1680)] = 69074, - [SMALL_STATE(1681)] = 69081, - [SMALL_STATE(1682)] = 69088, - [SMALL_STATE(1683)] = 69095, - [SMALL_STATE(1684)] = 69102, - [SMALL_STATE(1685)] = 69109, - [SMALL_STATE(1686)] = 69116, - [SMALL_STATE(1687)] = 69123, - [SMALL_STATE(1688)] = 69130, - [SMALL_STATE(1689)] = 69137, - [SMALL_STATE(1690)] = 69144, - [SMALL_STATE(1691)] = 69151, - [SMALL_STATE(1692)] = 69158, - [SMALL_STATE(1693)] = 69165, - [SMALL_STATE(1694)] = 69172, - [SMALL_STATE(1695)] = 69179, - [SMALL_STATE(1696)] = 69186, - [SMALL_STATE(1697)] = 69193, - [SMALL_STATE(1698)] = 69200, - [SMALL_STATE(1699)] = 69207, - [SMALL_STATE(1700)] = 69214, - [SMALL_STATE(1701)] = 69221, - [SMALL_STATE(1702)] = 69228, - [SMALL_STATE(1703)] = 69235, - [SMALL_STATE(1704)] = 69242, - [SMALL_STATE(1705)] = 69249, - [SMALL_STATE(1706)] = 69256, - [SMALL_STATE(1707)] = 69263, - [SMALL_STATE(1708)] = 69270, - [SMALL_STATE(1709)] = 69277, - [SMALL_STATE(1710)] = 69284, - [SMALL_STATE(1711)] = 69291, - [SMALL_STATE(1712)] = 69298, - [SMALL_STATE(1713)] = 69305, - [SMALL_STATE(1714)] = 69312, - [SMALL_STATE(1715)] = 69319, - [SMALL_STATE(1716)] = 69326, - [SMALL_STATE(1717)] = 69333, - [SMALL_STATE(1718)] = 69340, - [SMALL_STATE(1719)] = 69347, - [SMALL_STATE(1720)] = 69354, - [SMALL_STATE(1721)] = 69361, - [SMALL_STATE(1722)] = 69368, + [SMALL_STATE(157)] = 0, + [SMALL_STATE(158)] = 127, + [SMALL_STATE(159)] = 254, + [SMALL_STATE(160)] = 379, + [SMALL_STATE(161)] = 504, + [SMALL_STATE(162)] = 615, + [SMALL_STATE(163)] = 726, + [SMALL_STATE(164)] = 851, + [SMALL_STATE(165)] = 978, + [SMALL_STATE(166)] = 1100, + [SMALL_STATE(167)] = 1222, + [SMALL_STATE(168)] = 1344, + [SMALL_STATE(169)] = 1466, + [SMALL_STATE(170)] = 1581, + [SMALL_STATE(171)] = 1696, + [SMALL_STATE(172)] = 1806, + [SMALL_STATE(173)] = 1916, + [SMALL_STATE(174)] = 2026, + [SMALL_STATE(175)] = 2135, + [SMALL_STATE(176)] = 2244, + [SMALL_STATE(177)] = 2353, + [SMALL_STATE(178)] = 2462, + [SMALL_STATE(179)] = 2577, + [SMALL_STATE(180)] = 2690, + [SMALL_STATE(181)] = 2799, + [SMALL_STATE(182)] = 2914, + [SMALL_STATE(183)] = 3027, + [SMALL_STATE(184)] = 3144, + [SMALL_STATE(185)] = 3255, + [SMALL_STATE(186)] = 3364, + [SMALL_STATE(187)] = 3479, + [SMALL_STATE(188)] = 3588, + [SMALL_STATE(189)] = 3703, + [SMALL_STATE(190)] = 3814, + [SMALL_STATE(191)] = 3927, + [SMALL_STATE(192)] = 4037, + [SMALL_STATE(193)] = 4151, + [SMALL_STATE(194)] = 4261, + [SMALL_STATE(195)] = 4371, + [SMALL_STATE(196)] = 4481, + [SMALL_STATE(197)] = 4591, + [SMALL_STATE(198)] = 4701, + [SMALL_STATE(199)] = 4811, + [SMALL_STATE(200)] = 4921, + [SMALL_STATE(201)] = 5031, + [SMALL_STATE(202)] = 5141, + [SMALL_STATE(203)] = 5247, + [SMALL_STATE(204)] = 5357, + [SMALL_STATE(205)] = 5467, + [SMALL_STATE(206)] = 5577, + [SMALL_STATE(207)] = 5687, + [SMALL_STATE(208)] = 5797, + [SMALL_STATE(209)] = 5909, + [SMALL_STATE(210)] = 6023, + [SMALL_STATE(211)] = 6135, + [SMALL_STATE(212)] = 6245, + [SMALL_STATE(213)] = 6357, + [SMALL_STATE(214)] = 6471, + [SMALL_STATE(215)] = 6577, + [SMALL_STATE(216)] = 6691, + [SMALL_STATE(217)] = 6801, + [SMALL_STATE(218)] = 6911, + [SMALL_STATE(219)] = 7021, + [SMALL_STATE(220)] = 7131, + [SMALL_STATE(221)] = 7241, + [SMALL_STATE(222)] = 7351, + [SMALL_STATE(223)] = 7465, + [SMALL_STATE(224)] = 7577, + [SMALL_STATE(225)] = 7683, + [SMALL_STATE(226)] = 7793, + [SMALL_STATE(227)] = 7903, + [SMALL_STATE(228)] = 8013, + [SMALL_STATE(229)] = 8119, + [SMALL_STATE(230)] = 8229, + [SMALL_STATE(231)] = 8339, + [SMALL_STATE(232)] = 8453, + [SMALL_STATE(233)] = 8565, + [SMALL_STATE(234)] = 8675, + [SMALL_STATE(235)] = 8789, + [SMALL_STATE(236)] = 8901, + [SMALL_STATE(237)] = 9015, + [SMALL_STATE(238)] = 9129, + [SMALL_STATE(239)] = 9236, + [SMALL_STATE(240)] = 9343, + [SMALL_STATE(241)] = 9450, + [SMALL_STATE(242)] = 9557, + [SMALL_STATE(243)] = 9664, + [SMALL_STATE(244)] = 9771, + [SMALL_STATE(245)] = 9866, + [SMALL_STATE(246)] = 9973, + [SMALL_STATE(247)] = 10080, + [SMALL_STATE(248)] = 10186, + [SMALL_STATE(249)] = 10292, + [SMALL_STATE(250)] = 10398, + [SMALL_STATE(251)] = 10502, + [SMALL_STATE(252)] = 10608, + [SMALL_STATE(253)] = 10712, + [SMALL_STATE(254)] = 10818, + [SMALL_STATE(255)] = 10921, + [SMALL_STATE(256)] = 11024, + [SMALL_STATE(257)] = 11127, + [SMALL_STATE(258)] = 11230, + [SMALL_STATE(259)] = 11333, + [SMALL_STATE(260)] = 11436, + [SMALL_STATE(261)] = 11539, + [SMALL_STATE(262)] = 11642, + [SMALL_STATE(263)] = 11745, + [SMALL_STATE(264)] = 11848, + [SMALL_STATE(265)] = 11951, + [SMALL_STATE(266)] = 12051, + [SMALL_STATE(267)] = 12125, + [SMALL_STATE(268)] = 12199, + [SMALL_STATE(269)] = 12301, + [SMALL_STATE(270)] = 12403, + [SMALL_STATE(271)] = 12505, + [SMALL_STATE(272)] = 12607, + [SMALL_STATE(273)] = 12681, + [SMALL_STATE(274)] = 12783, + [SMALL_STATE(275)] = 12885, + [SMALL_STATE(276)] = 12959, + [SMALL_STATE(277)] = 13059, + [SMALL_STATE(278)] = 13161, + [SMALL_STATE(279)] = 13235, + [SMALL_STATE(280)] = 13335, + [SMALL_STATE(281)] = 13437, + [SMALL_STATE(282)] = 13511, + [SMALL_STATE(283)] = 13585, + [SMALL_STATE(284)] = 13659, + [SMALL_STATE(285)] = 13761, + [SMALL_STATE(286)] = 13863, + [SMALL_STATE(287)] = 13965, + [SMALL_STATE(288)] = 14067, + [SMALL_STATE(289)] = 14169, + [SMALL_STATE(290)] = 14268, + [SMALL_STATE(291)] = 14367, + [SMALL_STATE(292)] = 14464, + [SMALL_STATE(293)] = 14563, + [SMALL_STATE(294)] = 14660, + [SMALL_STATE(295)] = 14759, + [SMALL_STATE(296)] = 14858, + [SMALL_STATE(297)] = 14955, + [SMALL_STATE(298)] = 15052, + [SMALL_STATE(299)] = 15149, + [SMALL_STATE(300)] = 15246, + [SMALL_STATE(301)] = 15343, + [SMALL_STATE(302)] = 15440, + [SMALL_STATE(303)] = 15537, + [SMALL_STATE(304)] = 15634, + [SMALL_STATE(305)] = 15733, + [SMALL_STATE(306)] = 15832, + [SMALL_STATE(307)] = 15931, + [SMALL_STATE(308)] = 16028, + [SMALL_STATE(309)] = 16125, + [SMALL_STATE(310)] = 16224, + [SMALL_STATE(311)] = 16321, + [SMALL_STATE(312)] = 16381, + [SMALL_STATE(313)] = 16441, + [SMALL_STATE(314)] = 16501, + [SMALL_STATE(315)] = 16565, + [SMALL_STATE(316)] = 16629, + [SMALL_STATE(317)] = 16689, + [SMALL_STATE(318)] = 16749, + [SMALL_STATE(319)] = 16809, + [SMALL_STATE(320)] = 16879, + [SMALL_STATE(321)] = 16949, + [SMALL_STATE(322)] = 17019, + [SMALL_STATE(323)] = 17089, + [SMALL_STATE(324)] = 17185, + [SMALL_STATE(325)] = 17249, + [SMALL_STATE(326)] = 17309, + [SMALL_STATE(327)] = 17369, + [SMALL_STATE(328)] = 17439, + [SMALL_STATE(329)] = 17499, + [SMALL_STATE(330)] = 17569, + [SMALL_STATE(331)] = 17629, + [SMALL_STATE(332)] = 17693, + [SMALL_STATE(333)] = 17763, + [SMALL_STATE(334)] = 17823, + [SMALL_STATE(335)] = 17883, + [SMALL_STATE(336)] = 17979, + [SMALL_STATE(337)] = 18075, + [SMALL_STATE(338)] = 18145, + [SMALL_STATE(339)] = 18238, + [SMALL_STATE(340)] = 18331, + [SMALL_STATE(341)] = 18424, + [SMALL_STATE(342)] = 18517, + [SMALL_STATE(343)] = 18610, + [SMALL_STATE(344)] = 18705, + [SMALL_STATE(345)] = 18798, + [SMALL_STATE(346)] = 18891, + [SMALL_STATE(347)] = 18984, + [SMALL_STATE(348)] = 19057, + [SMALL_STATE(349)] = 19150, + [SMALL_STATE(350)] = 19243, + [SMALL_STATE(351)] = 19308, + [SMALL_STATE(352)] = 19401, + [SMALL_STATE(353)] = 19494, + [SMALL_STATE(354)] = 19587, + [SMALL_STATE(355)] = 19680, + [SMALL_STATE(356)] = 19773, + [SMALL_STATE(357)] = 19866, + [SMALL_STATE(358)] = 19959, + [SMALL_STATE(359)] = 20052, + [SMALL_STATE(360)] = 20145, + [SMALL_STATE(361)] = 20238, + [SMALL_STATE(362)] = 20331, + [SMALL_STATE(363)] = 20424, + [SMALL_STATE(364)] = 20517, + [SMALL_STATE(365)] = 20610, + [SMALL_STATE(366)] = 20703, + [SMALL_STATE(367)] = 20796, + [SMALL_STATE(368)] = 20889, + [SMALL_STATE(369)] = 20982, + [SMALL_STATE(370)] = 21075, + [SMALL_STATE(371)] = 21168, + [SMALL_STATE(372)] = 21261, + [SMALL_STATE(373)] = 21354, + [SMALL_STATE(374)] = 21447, + [SMALL_STATE(375)] = 21540, + [SMALL_STATE(376)] = 21633, + [SMALL_STATE(377)] = 21726, + [SMALL_STATE(378)] = 21819, + [SMALL_STATE(379)] = 21912, + [SMALL_STATE(380)] = 22005, + [SMALL_STATE(381)] = 22098, + [SMALL_STATE(382)] = 22191, + [SMALL_STATE(383)] = 22284, + [SMALL_STATE(384)] = 22377, + [SMALL_STATE(385)] = 22470, + [SMALL_STATE(386)] = 22563, + [SMALL_STATE(387)] = 22656, + [SMALL_STATE(388)] = 22749, + [SMALL_STATE(389)] = 22842, + [SMALL_STATE(390)] = 22935, + [SMALL_STATE(391)] = 23028, + [SMALL_STATE(392)] = 23121, + [SMALL_STATE(393)] = 23186, + [SMALL_STATE(394)] = 23279, + [SMALL_STATE(395)] = 23372, + [SMALL_STATE(396)] = 23465, + [SMALL_STATE(397)] = 23558, + [SMALL_STATE(398)] = 23651, + [SMALL_STATE(399)] = 23744, + [SMALL_STATE(400)] = 23837, + [SMALL_STATE(401)] = 23930, + [SMALL_STATE(402)] = 24025, + [SMALL_STATE(403)] = 24118, + [SMALL_STATE(404)] = 24211, + [SMALL_STATE(405)] = 24304, + [SMALL_STATE(406)] = 24397, + [SMALL_STATE(407)] = 24490, + [SMALL_STATE(408)] = 24583, + [SMALL_STATE(409)] = 24676, + [SMALL_STATE(410)] = 24769, + [SMALL_STATE(411)] = 24862, + [SMALL_STATE(412)] = 24955, + [SMALL_STATE(413)] = 25048, + [SMALL_STATE(414)] = 25141, + [SMALL_STATE(415)] = 25234, + [SMALL_STATE(416)] = 25327, + [SMALL_STATE(417)] = 25420, + [SMALL_STATE(418)] = 25513, + [SMALL_STATE(419)] = 25606, + [SMALL_STATE(420)] = 25699, + [SMALL_STATE(421)] = 25792, + [SMALL_STATE(422)] = 25885, + [SMALL_STATE(423)] = 25978, + [SMALL_STATE(424)] = 26071, + [SMALL_STATE(425)] = 26164, + [SMALL_STATE(426)] = 26257, + [SMALL_STATE(427)] = 26350, + [SMALL_STATE(428)] = 26443, + [SMALL_STATE(429)] = 26536, + [SMALL_STATE(430)] = 26629, + [SMALL_STATE(431)] = 26722, + [SMALL_STATE(432)] = 26815, + [SMALL_STATE(433)] = 26908, + [SMALL_STATE(434)] = 27001, + [SMALL_STATE(435)] = 27094, + [SMALL_STATE(436)] = 27187, + [SMALL_STATE(437)] = 27280, + [SMALL_STATE(438)] = 27353, + [SMALL_STATE(439)] = 27446, + [SMALL_STATE(440)] = 27504, + [SMALL_STATE(441)] = 27566, + [SMALL_STATE(442)] = 27624, + [SMALL_STATE(443)] = 27682, + [SMALL_STATE(444)] = 27740, + [SMALL_STATE(445)] = 27802, + [SMALL_STATE(446)] = 27864, + [SMALL_STATE(447)] = 27922, + [SMALL_STATE(448)] = 27980, + [SMALL_STATE(449)] = 28038, + [SMALL_STATE(450)] = 28096, + [SMALL_STATE(451)] = 28154, + [SMALL_STATE(452)] = 28212, + [SMALL_STATE(453)] = 28282, + [SMALL_STATE(454)] = 28352, + [SMALL_STATE(455)] = 28410, + [SMALL_STATE(456)] = 28468, + [SMALL_STATE(457)] = 28526, + [SMALL_STATE(458)] = 28584, + [SMALL_STATE(459)] = 28642, + [SMALL_STATE(460)] = 28700, + [SMALL_STATE(461)] = 28758, + [SMALL_STATE(462)] = 28820, + [SMALL_STATE(463)] = 28878, + [SMALL_STATE(464)] = 28936, + [SMALL_STATE(465)] = 28994, + [SMALL_STATE(466)] = 29089, + [SMALL_STATE(467)] = 29182, + [SMALL_STATE(468)] = 29239, + [SMALL_STATE(469)] = 29300, + [SMALL_STATE(470)] = 29367, + [SMALL_STATE(471)] = 29430, + [SMALL_STATE(472)] = 29523, + [SMALL_STATE(473)] = 29580, + [SMALL_STATE(474)] = 29637, + [SMALL_STATE(475)] = 29698, + [SMALL_STATE(476)] = 29759, + [SMALL_STATE(477)] = 29820, + [SMALL_STATE(478)] = 29881, + [SMALL_STATE(479)] = 29942, + [SMALL_STATE(480)] = 29999, + [SMALL_STATE(481)] = 30060, + [SMALL_STATE(482)] = 30121, + [SMALL_STATE(483)] = 30182, + [SMALL_STATE(484)] = 30243, + [SMALL_STATE(485)] = 30304, + [SMALL_STATE(486)] = 30365, + [SMALL_STATE(487)] = 30426, + [SMALL_STATE(488)] = 30483, + [SMALL_STATE(489)] = 30544, + [SMALL_STATE(490)] = 30601, + [SMALL_STATE(491)] = 30662, + [SMALL_STATE(492)] = 30723, + [SMALL_STATE(493)] = 30779, + [SMALL_STATE(494)] = 30835, + [SMALL_STATE(495)] = 30899, + [SMALL_STATE(496)] = 30991, + [SMALL_STATE(497)] = 31047, + [SMALL_STATE(498)] = 31103, + [SMALL_STATE(499)] = 31159, + [SMALL_STATE(500)] = 31223, + [SMALL_STATE(501)] = 31279, + [SMALL_STATE(502)] = 31371, + [SMALL_STATE(503)] = 31427, + [SMALL_STATE(504)] = 31483, + [SMALL_STATE(505)] = 31539, + [SMALL_STATE(506)] = 31595, + [SMALL_STATE(507)] = 31687, + [SMALL_STATE(508)] = 31743, + [SMALL_STATE(509)] = 31799, + [SMALL_STATE(510)] = 31891, + [SMALL_STATE(511)] = 31983, + [SMALL_STATE(512)] = 32039, + [SMALL_STATE(513)] = 32095, + [SMALL_STATE(514)] = 32187, + [SMALL_STATE(515)] = 32242, + [SMALL_STATE(516)] = 32303, + [SMALL_STATE(517)] = 32358, + [SMALL_STATE(518)] = 32413, + [SMALL_STATE(519)] = 32468, + [SMALL_STATE(520)] = 32523, + [SMALL_STATE(521)] = 32578, + [SMALL_STATE(522)] = 32633, + [SMALL_STATE(523)] = 32688, + [SMALL_STATE(524)] = 32743, + [SMALL_STATE(525)] = 32804, + [SMALL_STATE(526)] = 32859, + [SMALL_STATE(527)] = 32914, + [SMALL_STATE(528)] = 33003, + [SMALL_STATE(529)] = 33058, + [SMALL_STATE(530)] = 33113, + [SMALL_STATE(531)] = 33168, + [SMALL_STATE(532)] = 33223, + [SMALL_STATE(533)] = 33278, + [SMALL_STATE(534)] = 33333, + [SMALL_STATE(535)] = 33388, + [SMALL_STATE(536)] = 33443, + [SMALL_STATE(537)] = 33498, + [SMALL_STATE(538)] = 33553, + [SMALL_STATE(539)] = 33608, + [SMALL_STATE(540)] = 33663, + [SMALL_STATE(541)] = 33718, + [SMALL_STATE(542)] = 33773, + [SMALL_STATE(543)] = 33828, + [SMALL_STATE(544)] = 33883, + [SMALL_STATE(545)] = 33938, + [SMALL_STATE(546)] = 33993, + [SMALL_STATE(547)] = 34048, + [SMALL_STATE(548)] = 34103, + [SMALL_STATE(549)] = 34158, + [SMALL_STATE(550)] = 34213, + [SMALL_STATE(551)] = 34268, + [SMALL_STATE(552)] = 34323, + [SMALL_STATE(553)] = 34378, + [SMALL_STATE(554)] = 34433, + [SMALL_STATE(555)] = 34488, + [SMALL_STATE(556)] = 34543, + [SMALL_STATE(557)] = 34598, + [SMALL_STATE(558)] = 34653, + [SMALL_STATE(559)] = 34708, + [SMALL_STATE(560)] = 34763, + [SMALL_STATE(561)] = 34818, + [SMALL_STATE(562)] = 34873, + [SMALL_STATE(563)] = 34928, + [SMALL_STATE(564)] = 34983, + [SMALL_STATE(565)] = 35038, + [SMALL_STATE(566)] = 35093, + [SMALL_STATE(567)] = 35148, + [SMALL_STATE(568)] = 35203, + [SMALL_STATE(569)] = 35258, + [SMALL_STATE(570)] = 35313, + [SMALL_STATE(571)] = 35368, + [SMALL_STATE(572)] = 35423, + [SMALL_STATE(573)] = 35478, + [SMALL_STATE(574)] = 35533, + [SMALL_STATE(575)] = 35588, + [SMALL_STATE(576)] = 35643, + [SMALL_STATE(577)] = 35698, + [SMALL_STATE(578)] = 35753, + [SMALL_STATE(579)] = 35808, + [SMALL_STATE(580)] = 35863, + [SMALL_STATE(581)] = 35918, + [SMALL_STATE(582)] = 35973, + [SMALL_STATE(583)] = 36028, + [SMALL_STATE(584)] = 36083, + [SMALL_STATE(585)] = 36138, + [SMALL_STATE(586)] = 36193, + [SMALL_STATE(587)] = 36248, + [SMALL_STATE(588)] = 36303, + [SMALL_STATE(589)] = 36358, + [SMALL_STATE(590)] = 36447, + [SMALL_STATE(591)] = 36502, + [SMALL_STATE(592)] = 36557, + [SMALL_STATE(593)] = 36612, + [SMALL_STATE(594)] = 36667, + [SMALL_STATE(595)] = 36722, + [SMALL_STATE(596)] = 36777, + [SMALL_STATE(597)] = 36832, + [SMALL_STATE(598)] = 36887, + [SMALL_STATE(599)] = 36942, + [SMALL_STATE(600)] = 36997, + [SMALL_STATE(601)] = 37052, + [SMALL_STATE(602)] = 37107, + [SMALL_STATE(603)] = 37162, + [SMALL_STATE(604)] = 37217, + [SMALL_STATE(605)] = 37272, + [SMALL_STATE(606)] = 37327, + [SMALL_STATE(607)] = 37382, + [SMALL_STATE(608)] = 37437, + [SMALL_STATE(609)] = 37492, + [SMALL_STATE(610)] = 37547, + [SMALL_STATE(611)] = 37602, + [SMALL_STATE(612)] = 37657, + [SMALL_STATE(613)] = 37712, + [SMALL_STATE(614)] = 37767, + [SMALL_STATE(615)] = 37828, + [SMALL_STATE(616)] = 37883, + [SMALL_STATE(617)] = 37938, + [SMALL_STATE(618)] = 38000, + [SMALL_STATE(619)] = 38062, + [SMALL_STATE(620)] = 38145, + [SMALL_STATE(621)] = 38222, + [SMALL_STATE(622)] = 38299, + [SMALL_STATE(623)] = 38376, + [SMALL_STATE(624)] = 38453, + [SMALL_STATE(625)] = 38530, + [SMALL_STATE(626)] = 38607, + [SMALL_STATE(627)] = 38681, + [SMALL_STATE(628)] = 38735, + [SMALL_STATE(629)] = 38809, + [SMALL_STATE(630)] = 38883, + [SMALL_STATE(631)] = 38957, + [SMALL_STATE(632)] = 39031, + [SMALL_STATE(633)] = 39109, + [SMALL_STATE(634)] = 39183, + [SMALL_STATE(635)] = 39257, + [SMALL_STATE(636)] = 39331, + [SMALL_STATE(637)] = 39405, + [SMALL_STATE(638)] = 39479, + [SMALL_STATE(639)] = 39553, + [SMALL_STATE(640)] = 39631, + [SMALL_STATE(641)] = 39705, + [SMALL_STATE(642)] = 39779, + [SMALL_STATE(643)] = 39853, + [SMALL_STATE(644)] = 39927, + [SMALL_STATE(645)] = 40001, + [SMALL_STATE(646)] = 40075, + [SMALL_STATE(647)] = 40149, + [SMALL_STATE(648)] = 40223, + [SMALL_STATE(649)] = 40297, + [SMALL_STATE(650)] = 40371, + [SMALL_STATE(651)] = 40445, + [SMALL_STATE(652)] = 40519, + [SMALL_STATE(653)] = 40593, + [SMALL_STATE(654)] = 40667, + [SMALL_STATE(655)] = 40741, + [SMALL_STATE(656)] = 40815, + [SMALL_STATE(657)] = 40889, + [SMALL_STATE(658)] = 40963, + [SMALL_STATE(659)] = 41037, + [SMALL_STATE(660)] = 41111, + [SMALL_STATE(661)] = 41185, + [SMALL_STATE(662)] = 41259, + [SMALL_STATE(663)] = 41333, + [SMALL_STATE(664)] = 41407, + [SMALL_STATE(665)] = 41481, + [SMALL_STATE(666)] = 41555, + [SMALL_STATE(667)] = 41629, + [SMALL_STATE(668)] = 41703, + [SMALL_STATE(669)] = 41777, + [SMALL_STATE(670)] = 41851, + [SMALL_STATE(671)] = 41925, + [SMALL_STATE(672)] = 41999, + [SMALL_STATE(673)] = 42073, + [SMALL_STATE(674)] = 42147, + [SMALL_STATE(675)] = 42221, + [SMALL_STATE(676)] = 42295, + [SMALL_STATE(677)] = 42369, + [SMALL_STATE(678)] = 42443, + [SMALL_STATE(679)] = 42517, + [SMALL_STATE(680)] = 42591, + [SMALL_STATE(681)] = 42665, + [SMALL_STATE(682)] = 42739, + [SMALL_STATE(683)] = 42813, + [SMALL_STATE(684)] = 42887, + [SMALL_STATE(685)] = 42961, + [SMALL_STATE(686)] = 43015, + [SMALL_STATE(687)] = 43089, + [SMALL_STATE(688)] = 43163, + [SMALL_STATE(689)] = 43237, + [SMALL_STATE(690)] = 43311, + [SMALL_STATE(691)] = 43365, + [SMALL_STATE(692)] = 43439, + [SMALL_STATE(693)] = 43513, + [SMALL_STATE(694)] = 43567, + [SMALL_STATE(695)] = 43621, + [SMALL_STATE(696)] = 43695, + [SMALL_STATE(697)] = 43769, + [SMALL_STATE(698)] = 43843, + [SMALL_STATE(699)] = 43897, + [SMALL_STATE(700)] = 43971, + [SMALL_STATE(701)] = 44019, + [SMALL_STATE(702)] = 44067, + [SMALL_STATE(703)] = 44115, + [SMALL_STATE(704)] = 44163, + [SMALL_STATE(705)] = 44244, + [SMALL_STATE(706)] = 44325, + [SMALL_STATE(707)] = 44372, + [SMALL_STATE(708)] = 44419, + [SMALL_STATE(709)] = 44466, + [SMALL_STATE(710)] = 44513, + [SMALL_STATE(711)] = 44560, + [SMALL_STATE(712)] = 44607, + [SMALL_STATE(713)] = 44654, + [SMALL_STATE(714)] = 44701, + [SMALL_STATE(715)] = 44748, + [SMALL_STATE(716)] = 44795, + [SMALL_STATE(717)] = 44842, + [SMALL_STATE(718)] = 44889, + [SMALL_STATE(719)] = 44936, + [SMALL_STATE(720)] = 44983, + [SMALL_STATE(721)] = 45030, + [SMALL_STATE(722)] = 45077, + [SMALL_STATE(723)] = 45124, + [SMALL_STATE(724)] = 45171, + [SMALL_STATE(725)] = 45218, + [SMALL_STATE(726)] = 45265, + [SMALL_STATE(727)] = 45312, + [SMALL_STATE(728)] = 45359, + [SMALL_STATE(729)] = 45406, + [SMALL_STATE(730)] = 45453, + [SMALL_STATE(731)] = 45500, + [SMALL_STATE(732)] = 45547, + [SMALL_STATE(733)] = 45594, + [SMALL_STATE(734)] = 45641, + [SMALL_STATE(735)] = 45688, + [SMALL_STATE(736)] = 45735, + [SMALL_STATE(737)] = 45782, + [SMALL_STATE(738)] = 45829, + [SMALL_STATE(739)] = 45876, + [SMALL_STATE(740)] = 45944, + [SMALL_STATE(741)] = 46014, + [SMALL_STATE(742)] = 46084, + [SMALL_STATE(743)] = 46152, + [SMALL_STATE(744)] = 46212, + [SMALL_STATE(745)] = 46268, + [SMALL_STATE(746)] = 46334, + [SMALL_STATE(747)] = 46398, + [SMALL_STATE(748)] = 46454, + [SMALL_STATE(749)] = 46510, + [SMALL_STATE(750)] = 46560, + [SMALL_STATE(751)] = 46610, + [SMALL_STATE(752)] = 46666, + [SMALL_STATE(753)] = 46728, + [SMALL_STATE(754)] = 46778, + [SMALL_STATE(755)] = 46828, + [SMALL_STATE(756)] = 46884, + [SMALL_STATE(757)] = 46946, + [SMALL_STATE(758)] = 47016, + [SMALL_STATE(759)] = 47076, + [SMALL_STATE(760)] = 47132, + [SMALL_STATE(761)] = 47198, + [SMALL_STATE(762)] = 47262, + [SMALL_STATE(763)] = 47332, + [SMALL_STATE(764)] = 47402, + [SMALL_STATE(765)] = 47472, + [SMALL_STATE(766)] = 47528, + [SMALL_STATE(767)] = 47584, + [SMALL_STATE(768)] = 47629, + [SMALL_STATE(769)] = 47678, + [SMALL_STATE(770)] = 47727, + [SMALL_STATE(771)] = 47776, + [SMALL_STATE(772)] = 47825, + [SMALL_STATE(773)] = 47874, + [SMALL_STATE(774)] = 47953, + [SMALL_STATE(775)] = 48000, + [SMALL_STATE(776)] = 48077, + [SMALL_STATE(777)] = 48126, + [SMALL_STATE(778)] = 48175, + [SMALL_STATE(779)] = 48222, + [SMALL_STATE(780)] = 48271, + [SMALL_STATE(781)] = 48350, + [SMALL_STATE(782)] = 48399, + [SMALL_STATE(783)] = 48448, + [SMALL_STATE(784)] = 48493, + [SMALL_STATE(785)] = 48542, + [SMALL_STATE(786)] = 48591, + [SMALL_STATE(787)] = 48638, + [SMALL_STATE(788)] = 48685, + [SMALL_STATE(789)] = 48753, + [SMALL_STATE(790)] = 48829, + [SMALL_STATE(791)] = 48877, + [SMALL_STATE(792)] = 48925, + [SMALL_STATE(793)] = 48969, + [SMALL_STATE(794)] = 49013, + [SMALL_STATE(795)] = 49057, + [SMALL_STATE(796)] = 49101, + [SMALL_STATE(797)] = 49155, + [SMALL_STATE(798)] = 49215, + [SMALL_STATE(799)] = 49283, + [SMALL_STATE(800)] = 49337, + [SMALL_STATE(801)] = 49405, + [SMALL_STATE(802)] = 49471, + [SMALL_STATE(803)] = 49529, + [SMALL_STATE(804)] = 49583, + [SMALL_STATE(805)] = 49637, + [SMALL_STATE(806)] = 49691, + [SMALL_STATE(807)] = 49755, + [SMALL_STATE(808)] = 49817, + [SMALL_STATE(809)] = 49871, + [SMALL_STATE(810)] = 49931, + [SMALL_STATE(811)] = 49999, + [SMALL_STATE(812)] = 50065, + [SMALL_STATE(813)] = 50123, + [SMALL_STATE(814)] = 50177, + [SMALL_STATE(815)] = 50241, + [SMALL_STATE(816)] = 50303, + [SMALL_STATE(817)] = 50371, + [SMALL_STATE(818)] = 50439, + [SMALL_STATE(819)] = 50493, + [SMALL_STATE(820)] = 50547, + [SMALL_STATE(821)] = 50607, + [SMALL_STATE(822)] = 50675, + [SMALL_STATE(823)] = 50741, + [SMALL_STATE(824)] = 50799, + [SMALL_STATE(825)] = 50853, + [SMALL_STATE(826)] = 50917, + [SMALL_STATE(827)] = 50979, + [SMALL_STATE(828)] = 51047, + [SMALL_STATE(829)] = 51115, + [SMALL_STATE(830)] = 51169, + [SMALL_STATE(831)] = 51223, + [SMALL_STATE(832)] = 51268, + [SMALL_STATE(833)] = 51313, + [SMALL_STATE(834)] = 51366, + [SMALL_STATE(835)] = 51409, + [SMALL_STATE(836)] = 51454, + [SMALL_STATE(837)] = 51499, + [SMALL_STATE(838)] = 51544, + [SMALL_STATE(839)] = 51589, + [SMALL_STATE(840)] = 51642, + [SMALL_STATE(841)] = 51685, + [SMALL_STATE(842)] = 51766, + [SMALL_STATE(843)] = 51811, + [SMALL_STATE(844)] = 51854, + [SMALL_STATE(845)] = 51907, + [SMALL_STATE(846)] = 51966, + [SMALL_STATE(847)] = 52009, + [SMALL_STATE(848)] = 52052, + [SMALL_STATE(849)] = 52095, + [SMALL_STATE(850)] = 52142, + [SMALL_STATE(851)] = 52189, + [SMALL_STATE(852)] = 52234, + [SMALL_STATE(853)] = 52277, + [SMALL_STATE(854)] = 52320, + [SMALL_STATE(855)] = 52365, + [SMALL_STATE(856)] = 52410, + [SMALL_STATE(857)] = 52477, + [SMALL_STATE(858)] = 52524, + [SMALL_STATE(859)] = 52571, + [SMALL_STATE(860)] = 52618, + [SMALL_STATE(861)] = 52663, + [SMALL_STATE(862)] = 52744, + [SMALL_STATE(863)] = 52809, + [SMALL_STATE(864)] = 52866, + [SMALL_STATE(865)] = 52919, + [SMALL_STATE(866)] = 52982, + [SMALL_STATE(867)] = 53043, + [SMALL_STATE(868)] = 53110, + [SMALL_STATE(869)] = 53177, + [SMALL_STATE(870)] = 53258, + [SMALL_STATE(871)] = 53339, + [SMALL_STATE(872)] = 53384, + [SMALL_STATE(873)] = 53431, + [SMALL_STATE(874)] = 53473, + [SMALL_STATE(875)] = 53515, + [SMALL_STATE(876)] = 53557, + [SMALL_STATE(877)] = 53599, + [SMALL_STATE(878)] = 53641, + [SMALL_STATE(879)] = 53683, + [SMALL_STATE(880)] = 53725, + [SMALL_STATE(881)] = 53767, + [SMALL_STATE(882)] = 53809, + [SMALL_STATE(883)] = 53851, + [SMALL_STATE(884)] = 53893, + [SMALL_STATE(885)] = 53935, + [SMALL_STATE(886)] = 53977, + [SMALL_STATE(887)] = 54019, + [SMALL_STATE(888)] = 54061, + [SMALL_STATE(889)] = 54103, + [SMALL_STATE(890)] = 54145, + [SMALL_STATE(891)] = 54187, + [SMALL_STATE(892)] = 54229, + [SMALL_STATE(893)] = 54271, + [SMALL_STATE(894)] = 54313, + [SMALL_STATE(895)] = 54355, + [SMALL_STATE(896)] = 54397, + [SMALL_STATE(897)] = 54477, + [SMALL_STATE(898)] = 54555, + [SMALL_STATE(899)] = 54597, + [SMALL_STATE(900)] = 54639, + [SMALL_STATE(901)] = 54681, + [SMALL_STATE(902)] = 54723, + [SMALL_STATE(903)] = 54765, + [SMALL_STATE(904)] = 54807, + [SMALL_STATE(905)] = 54849, + [SMALL_STATE(906)] = 54891, + [SMALL_STATE(907)] = 54933, + [SMALL_STATE(908)] = 54977, + [SMALL_STATE(909)] = 55019, + [SMALL_STATE(910)] = 55061, + [SMALL_STATE(911)] = 55103, + [SMALL_STATE(912)] = 55145, + [SMALL_STATE(913)] = 55187, + [SMALL_STATE(914)] = 55231, + [SMALL_STATE(915)] = 55275, + [SMALL_STATE(916)] = 55317, + [SMALL_STATE(917)] = 55359, + [SMALL_STATE(918)] = 55403, + [SMALL_STATE(919)] = 55445, + [SMALL_STATE(920)] = 55487, + [SMALL_STATE(921)] = 55529, + [SMALL_STATE(922)] = 55571, + [SMALL_STATE(923)] = 55613, + [SMALL_STATE(924)] = 55655, + [SMALL_STATE(925)] = 55699, + [SMALL_STATE(926)] = 55741, + [SMALL_STATE(927)] = 55783, + [SMALL_STATE(928)] = 55825, + [SMALL_STATE(929)] = 55867, + [SMALL_STATE(930)] = 55909, + [SMALL_STATE(931)] = 55951, + [SMALL_STATE(932)] = 56029, + [SMALL_STATE(933)] = 56071, + [SMALL_STATE(934)] = 56113, + [SMALL_STATE(935)] = 56191, + [SMALL_STATE(936)] = 56269, + [SMALL_STATE(937)] = 56311, + [SMALL_STATE(938)] = 56353, + [SMALL_STATE(939)] = 56395, + [SMALL_STATE(940)] = 56473, + [SMALL_STATE(941)] = 56515, + [SMALL_STATE(942)] = 56557, + [SMALL_STATE(943)] = 56599, + [SMALL_STATE(944)] = 56641, + [SMALL_STATE(945)] = 56683, + [SMALL_STATE(946)] = 56725, + [SMALL_STATE(947)] = 56767, + [SMALL_STATE(948)] = 56809, + [SMALL_STATE(949)] = 56851, + [SMALL_STATE(950)] = 56893, + [SMALL_STATE(951)] = 56935, + [SMALL_STATE(952)] = 56977, + [SMALL_STATE(953)] = 57018, + [SMALL_STATE(954)] = 57059, + [SMALL_STATE(955)] = 57100, + [SMALL_STATE(956)] = 57141, + [SMALL_STATE(957)] = 57182, + [SMALL_STATE(958)] = 57223, + [SMALL_STATE(959)] = 57264, + [SMALL_STATE(960)] = 57305, + [SMALL_STATE(961)] = 57346, + [SMALL_STATE(962)] = 57387, + [SMALL_STATE(963)] = 57428, + [SMALL_STATE(964)] = 57469, + [SMALL_STATE(965)] = 57510, + [SMALL_STATE(966)] = 57551, + [SMALL_STATE(967)] = 57592, + [SMALL_STATE(968)] = 57633, + [SMALL_STATE(969)] = 57674, + [SMALL_STATE(970)] = 57715, + [SMALL_STATE(971)] = 57756, + [SMALL_STATE(972)] = 57797, + [SMALL_STATE(973)] = 57838, + [SMALL_STATE(974)] = 57879, + [SMALL_STATE(975)] = 57920, + [SMALL_STATE(976)] = 57961, + [SMALL_STATE(977)] = 58002, + [SMALL_STATE(978)] = 58043, + [SMALL_STATE(979)] = 58084, + [SMALL_STATE(980)] = 58125, + [SMALL_STATE(981)] = 58166, + [SMALL_STATE(982)] = 58241, + [SMALL_STATE(983)] = 58320, + [SMALL_STATE(984)] = 58399, + [SMALL_STATE(985)] = 58444, + [SMALL_STATE(986)] = 58485, + [SMALL_STATE(987)] = 58530, + [SMALL_STATE(988)] = 58609, + [SMALL_STATE(989)] = 58650, + [SMALL_STATE(990)] = 58691, + [SMALL_STATE(991)] = 58732, + [SMALL_STATE(992)] = 58805, + [SMALL_STATE(993)] = 58875, + [SMALL_STATE(994)] = 58945, + [SMALL_STATE(995)] = 59007, + [SMALL_STATE(996)] = 59069, + [SMALL_STATE(997)] = 59108, + [SMALL_STATE(998)] = 59147, + [SMALL_STATE(999)] = 59186, + [SMALL_STATE(1000)] = 59225, + [SMALL_STATE(1001)] = 59255, + [SMALL_STATE(1002)] = 59292, + [SMALL_STATE(1003)] = 59317, + [SMALL_STATE(1004)] = 59354, + [SMALL_STATE(1005)] = 59391, + [SMALL_STATE(1006)] = 59416, + [SMALL_STATE(1007)] = 59469, + [SMALL_STATE(1008)] = 59522, + [SMALL_STATE(1009)] = 59559, + [SMALL_STATE(1010)] = 59584, + [SMALL_STATE(1011)] = 59637, + [SMALL_STATE(1012)] = 59666, + [SMALL_STATE(1013)] = 59691, + [SMALL_STATE(1014)] = 59720, + [SMALL_STATE(1015)] = 59755, + [SMALL_STATE(1016)] = 59790, + [SMALL_STATE(1017)] = 59824, + [SMALL_STATE(1018)] = 59870, + [SMALL_STATE(1019)] = 59898, + [SMALL_STATE(1020)] = 59932, + [SMALL_STATE(1021)] = 59963, + [SMALL_STATE(1022)] = 60006, + [SMALL_STATE(1023)] = 60049, + [SMALL_STATE(1024)] = 60092, + [SMALL_STATE(1025)] = 60135, + [SMALL_STATE(1026)] = 60178, + [SMALL_STATE(1027)] = 60221, + [SMALL_STATE(1028)] = 60264, + [SMALL_STATE(1029)] = 60304, + [SMALL_STATE(1030)] = 60348, + [SMALL_STATE(1031)] = 60373, + [SMALL_STATE(1032)] = 60410, + [SMALL_STATE(1033)] = 60447, + [SMALL_STATE(1034)] = 60484, + [SMALL_STATE(1035)] = 60521, + [SMALL_STATE(1036)] = 60555, + [SMALL_STATE(1037)] = 60589, + [SMALL_STATE(1038)] = 60610, + [SMALL_STATE(1039)] = 60631, + [SMALL_STATE(1040)] = 60653, + [SMALL_STATE(1041)] = 60684, + [SMALL_STATE(1042)] = 60721, + [SMALL_STATE(1043)] = 60744, + [SMALL_STATE(1044)] = 60765, + [SMALL_STATE(1045)] = 60796, + [SMALL_STATE(1046)] = 60827, + [SMALL_STATE(1047)] = 60858, + [SMALL_STATE(1048)] = 60895, + [SMALL_STATE(1049)] = 60932, + [SMALL_STATE(1050)] = 60963, + [SMALL_STATE(1051)] = 60994, + [SMALL_STATE(1052)] = 61025, + [SMALL_STATE(1053)] = 61056, + [SMALL_STATE(1054)] = 61073, + [SMALL_STATE(1055)] = 61104, + [SMALL_STATE(1056)] = 61135, + [SMALL_STATE(1057)] = 61166, + [SMALL_STATE(1058)] = 61197, + [SMALL_STATE(1059)] = 61228, + [SMALL_STATE(1060)] = 61259, + [SMALL_STATE(1061)] = 61290, + [SMALL_STATE(1062)] = 61321, + [SMALL_STATE(1063)] = 61352, + [SMALL_STATE(1064)] = 61389, + [SMALL_STATE(1065)] = 61412, + [SMALL_STATE(1066)] = 61443, + [SMALL_STATE(1067)] = 61474, + [SMALL_STATE(1068)] = 61511, + [SMALL_STATE(1069)] = 61532, + [SMALL_STATE(1070)] = 61552, + [SMALL_STATE(1071)] = 61586, + [SMALL_STATE(1072)] = 61606, + [SMALL_STATE(1073)] = 61630, + [SMALL_STATE(1074)] = 61652, + [SMALL_STATE(1075)] = 61686, + [SMALL_STATE(1076)] = 61720, + [SMALL_STATE(1077)] = 61742, + [SMALL_STATE(1078)] = 61766, + [SMALL_STATE(1079)] = 61784, + [SMALL_STATE(1080)] = 61802, + [SMALL_STATE(1081)] = 61836, + [SMALL_STATE(1082)] = 61856, + [SMALL_STATE(1083)] = 61880, + [SMALL_STATE(1084)] = 61902, + [SMALL_STATE(1085)] = 61936, + [SMALL_STATE(1086)] = 61958, + [SMALL_STATE(1087)] = 61992, + [SMALL_STATE(1088)] = 62026, + [SMALL_STATE(1089)] = 62046, + [SMALL_STATE(1090)] = 62068, + [SMALL_STATE(1091)] = 62102, + [SMALL_STATE(1092)] = 62124, + [SMALL_STATE(1093)] = 62158, + [SMALL_STATE(1094)] = 62192, + [SMALL_STATE(1095)] = 62226, + [SMALL_STATE(1096)] = 62260, + [SMALL_STATE(1097)] = 62278, + [SMALL_STATE(1098)] = 62297, + [SMALL_STATE(1099)] = 62318, + [SMALL_STATE(1100)] = 62337, + [SMALL_STATE(1101)] = 62360, + [SMALL_STATE(1102)] = 62379, + [SMALL_STATE(1103)] = 62398, + [SMALL_STATE(1104)] = 62423, + [SMALL_STATE(1105)] = 62442, + [SMALL_STATE(1106)] = 62461, + [SMALL_STATE(1107)] = 62484, + [SMALL_STATE(1108)] = 62509, + [SMALL_STATE(1109)] = 62532, + [SMALL_STATE(1110)] = 62553, + [SMALL_STATE(1111)] = 62567, + [SMALL_STATE(1112)] = 62581, + [SMALL_STATE(1113)] = 62599, + [SMALL_STATE(1114)] = 62617, + [SMALL_STATE(1115)] = 62631, + [SMALL_STATE(1116)] = 62649, + [SMALL_STATE(1117)] = 62663, + [SMALL_STATE(1118)] = 62679, + [SMALL_STATE(1119)] = 62699, + [SMALL_STATE(1120)] = 62721, + [SMALL_STATE(1121)] = 62741, + [SMALL_STATE(1122)] = 62761, + [SMALL_STATE(1123)] = 62779, + [SMALL_STATE(1124)] = 62797, + [SMALL_STATE(1125)] = 62811, + [SMALL_STATE(1126)] = 62831, + [SMALL_STATE(1127)] = 62845, + [SMALL_STATE(1128)] = 62859, + [SMALL_STATE(1129)] = 62873, + [SMALL_STATE(1130)] = 62887, + [SMALL_STATE(1131)] = 62901, + [SMALL_STATE(1132)] = 62915, + [SMALL_STATE(1133)] = 62929, + [SMALL_STATE(1134)] = 62943, + [SMALL_STATE(1135)] = 62957, + [SMALL_STATE(1136)] = 62975, + [SMALL_STATE(1137)] = 62989, + [SMALL_STATE(1138)] = 63015, + [SMALL_STATE(1139)] = 63029, + [SMALL_STATE(1140)] = 63049, + [SMALL_STATE(1141)] = 63063, + [SMALL_STATE(1142)] = 63077, + [SMALL_STATE(1143)] = 63091, + [SMALL_STATE(1144)] = 63105, + [SMALL_STATE(1145)] = 63125, + [SMALL_STATE(1146)] = 63139, + [SMALL_STATE(1147)] = 63163, + [SMALL_STATE(1148)] = 63179, + [SMALL_STATE(1149)] = 63193, + [SMALL_STATE(1150)] = 63215, + [SMALL_STATE(1151)] = 63229, + [SMALL_STATE(1152)] = 63243, + [SMALL_STATE(1153)] = 63261, + [SMALL_STATE(1154)] = 63279, + [SMALL_STATE(1155)] = 63299, + [SMALL_STATE(1156)] = 63317, + [SMALL_STATE(1157)] = 63333, + [SMALL_STATE(1158)] = 63351, + [SMALL_STATE(1159)] = 63365, + [SMALL_STATE(1160)] = 63385, + [SMALL_STATE(1161)] = 63407, + [SMALL_STATE(1162)] = 63427, + [SMALL_STATE(1163)] = 63447, + [SMALL_STATE(1164)] = 63467, + [SMALL_STATE(1165)] = 63485, + [SMALL_STATE(1166)] = 63501, + [SMALL_STATE(1167)] = 63521, + [SMALL_STATE(1168)] = 63539, + [SMALL_STATE(1169)] = 63559, + [SMALL_STATE(1170)] = 63579, + [SMALL_STATE(1171)] = 63599, + [SMALL_STATE(1172)] = 63617, + [SMALL_STATE(1173)] = 63641, + [SMALL_STATE(1174)] = 63659, + [SMALL_STATE(1175)] = 63677, + [SMALL_STATE(1176)] = 63701, + [SMALL_STATE(1177)] = 63715, + [SMALL_STATE(1178)] = 63740, + [SMALL_STATE(1179)] = 63753, + [SMALL_STATE(1180)] = 63772, + [SMALL_STATE(1181)] = 63797, + [SMALL_STATE(1182)] = 63820, + [SMALL_STATE(1183)] = 63839, + [SMALL_STATE(1184)] = 63860, + [SMALL_STATE(1185)] = 63885, + [SMALL_STATE(1186)] = 63910, + [SMALL_STATE(1187)] = 63935, + [SMALL_STATE(1188)] = 63960, + [SMALL_STATE(1189)] = 63979, + [SMALL_STATE(1190)] = 63996, + [SMALL_STATE(1191)] = 64011, + [SMALL_STATE(1192)] = 64034, + [SMALL_STATE(1193)] = 64055, + [SMALL_STATE(1194)] = 64080, + [SMALL_STATE(1195)] = 64105, + [SMALL_STATE(1196)] = 64126, + [SMALL_STATE(1197)] = 64151, + [SMALL_STATE(1198)] = 64170, + [SMALL_STATE(1199)] = 64183, + [SMALL_STATE(1200)] = 64202, + [SMALL_STATE(1201)] = 64221, + [SMALL_STATE(1202)] = 64238, + [SMALL_STATE(1203)] = 64263, + [SMALL_STATE(1204)] = 64288, + [SMALL_STATE(1205)] = 64313, + [SMALL_STATE(1206)] = 64326, + [SMALL_STATE(1207)] = 64351, + [SMALL_STATE(1208)] = 64376, + [SMALL_STATE(1209)] = 64401, + [SMALL_STATE(1210)] = 64426, + [SMALL_STATE(1211)] = 64449, + [SMALL_STATE(1212)] = 64474, + [SMALL_STATE(1213)] = 64499, + [SMALL_STATE(1214)] = 64522, + [SMALL_STATE(1215)] = 64539, + [SMALL_STATE(1216)] = 64560, + [SMALL_STATE(1217)] = 64581, + [SMALL_STATE(1218)] = 64606, + [SMALL_STATE(1219)] = 64631, + [SMALL_STATE(1220)] = 64650, + [SMALL_STATE(1221)] = 64669, + [SMALL_STATE(1222)] = 64688, + [SMALL_STATE(1223)] = 64701, + [SMALL_STATE(1224)] = 64724, + [SMALL_STATE(1225)] = 64743, + [SMALL_STATE(1226)] = 64766, + [SMALL_STATE(1227)] = 64791, + [SMALL_STATE(1228)] = 64816, + [SMALL_STATE(1229)] = 64841, + [SMALL_STATE(1230)] = 64866, + [SMALL_STATE(1231)] = 64891, + [SMALL_STATE(1232)] = 64910, + [SMALL_STATE(1233)] = 64935, + [SMALL_STATE(1234)] = 64948, + [SMALL_STATE(1235)] = 64967, + [SMALL_STATE(1236)] = 64990, + [SMALL_STATE(1237)] = 65015, + [SMALL_STATE(1238)] = 65028, + [SMALL_STATE(1239)] = 65047, + [SMALL_STATE(1240)] = 65070, + [SMALL_STATE(1241)] = 65085, + [SMALL_STATE(1242)] = 65108, + [SMALL_STATE(1243)] = 65124, + [SMALL_STATE(1244)] = 65140, + [SMALL_STATE(1245)] = 65160, + [SMALL_STATE(1246)] = 65176, + [SMALL_STATE(1247)] = 65196, + [SMALL_STATE(1248)] = 65214, + [SMALL_STATE(1249)] = 65228, + [SMALL_STATE(1250)] = 65244, + [SMALL_STATE(1251)] = 65266, + [SMALL_STATE(1252)] = 65282, + [SMALL_STATE(1253)] = 65296, + [SMALL_STATE(1254)] = 65318, + [SMALL_STATE(1255)] = 65338, + [SMALL_STATE(1256)] = 65356, + [SMALL_STATE(1257)] = 65372, + [SMALL_STATE(1258)] = 65388, + [SMALL_STATE(1259)] = 65410, + [SMALL_STATE(1260)] = 65424, + [SMALL_STATE(1261)] = 65438, + [SMALL_STATE(1262)] = 65456, + [SMALL_STATE(1263)] = 65472, + [SMALL_STATE(1264)] = 65484, + [SMALL_STATE(1265)] = 65504, + [SMALL_STATE(1266)] = 65526, + [SMALL_STATE(1267)] = 65544, + [SMALL_STATE(1268)] = 65562, + [SMALL_STATE(1269)] = 65580, + [SMALL_STATE(1270)] = 65600, + [SMALL_STATE(1271)] = 65616, + [SMALL_STATE(1272)] = 65634, + [SMALL_STATE(1273)] = 65650, + [SMALL_STATE(1274)] = 65666, + [SMALL_STATE(1275)] = 65682, + [SMALL_STATE(1276)] = 65696, + [SMALL_STATE(1277)] = 65718, + [SMALL_STATE(1278)] = 65740, + [SMALL_STATE(1279)] = 65758, + [SMALL_STATE(1280)] = 65780, + [SMALL_STATE(1281)] = 65796, + [SMALL_STATE(1282)] = 65810, + [SMALL_STATE(1283)] = 65822, + [SMALL_STATE(1284)] = 65839, + [SMALL_STATE(1285)] = 65856, + [SMALL_STATE(1286)] = 65875, + [SMALL_STATE(1287)] = 65890, + [SMALL_STATE(1288)] = 65909, + [SMALL_STATE(1289)] = 65924, + [SMALL_STATE(1290)] = 65943, + [SMALL_STATE(1291)] = 65960, + [SMALL_STATE(1292)] = 65971, + [SMALL_STATE(1293)] = 65988, + [SMALL_STATE(1294)] = 65999, + [SMALL_STATE(1295)] = 66014, + [SMALL_STATE(1296)] = 66031, + [SMALL_STATE(1297)] = 66050, + [SMALL_STATE(1298)] = 66067, + [SMALL_STATE(1299)] = 66084, + [SMALL_STATE(1300)] = 66099, + [SMALL_STATE(1301)] = 66116, + [SMALL_STATE(1302)] = 66127, + [SMALL_STATE(1303)] = 66144, + [SMALL_STATE(1304)] = 66161, + [SMALL_STATE(1305)] = 66178, + [SMALL_STATE(1306)] = 66197, + [SMALL_STATE(1307)] = 66216, + [SMALL_STATE(1308)] = 66227, + [SMALL_STATE(1309)] = 66242, + [SMALL_STATE(1310)] = 66257, + [SMALL_STATE(1311)] = 66272, + [SMALL_STATE(1312)] = 66287, + [SMALL_STATE(1313)] = 66298, + [SMALL_STATE(1314)] = 66315, + [SMALL_STATE(1315)] = 66334, + [SMALL_STATE(1316)] = 66353, + [SMALL_STATE(1317)] = 66370, + [SMALL_STATE(1318)] = 66387, + [SMALL_STATE(1319)] = 66404, + [SMALL_STATE(1320)] = 66421, + [SMALL_STATE(1321)] = 66438, + [SMALL_STATE(1322)] = 66455, + [SMALL_STATE(1323)] = 66471, + [SMALL_STATE(1324)] = 66485, + [SMALL_STATE(1325)] = 66499, + [SMALL_STATE(1326)] = 66515, + [SMALL_STATE(1327)] = 66531, + [SMALL_STATE(1328)] = 66545, + [SMALL_STATE(1329)] = 66561, + [SMALL_STATE(1330)] = 66573, + [SMALL_STATE(1331)] = 66589, + [SMALL_STATE(1332)] = 66605, + [SMALL_STATE(1333)] = 66619, + [SMALL_STATE(1334)] = 66631, + [SMALL_STATE(1335)] = 66645, + [SMALL_STATE(1336)] = 66659, + [SMALL_STATE(1337)] = 66673, + [SMALL_STATE(1338)] = 66689, + [SMALL_STATE(1339)] = 66705, + [SMALL_STATE(1340)] = 66719, + [SMALL_STATE(1341)] = 66733, + [SMALL_STATE(1342)] = 66749, + [SMALL_STATE(1343)] = 66765, + [SMALL_STATE(1344)] = 66779, + [SMALL_STATE(1345)] = 66789, + [SMALL_STATE(1346)] = 66805, + [SMALL_STATE(1347)] = 66821, + [SMALL_STATE(1348)] = 66837, + [SMALL_STATE(1349)] = 66851, + [SMALL_STATE(1350)] = 66861, + [SMALL_STATE(1351)] = 66877, + [SMALL_STATE(1352)] = 66893, + [SMALL_STATE(1353)] = 66907, + [SMALL_STATE(1354)] = 66923, + [SMALL_STATE(1355)] = 66933, + [SMALL_STATE(1356)] = 66947, + [SMALL_STATE(1357)] = 66963, + [SMALL_STATE(1358)] = 66979, + [SMALL_STATE(1359)] = 66989, + [SMALL_STATE(1360)] = 67005, + [SMALL_STATE(1361)] = 67019, + [SMALL_STATE(1362)] = 67035, + [SMALL_STATE(1363)] = 67051, + [SMALL_STATE(1364)] = 67067, + [SMALL_STATE(1365)] = 67081, + [SMALL_STATE(1366)] = 67097, + [SMALL_STATE(1367)] = 67111, + [SMALL_STATE(1368)] = 67127, + [SMALL_STATE(1369)] = 67141, + [SMALL_STATE(1370)] = 67155, + [SMALL_STATE(1371)] = 67171, + [SMALL_STATE(1372)] = 67187, + [SMALL_STATE(1373)] = 67201, + [SMALL_STATE(1374)] = 67215, + [SMALL_STATE(1375)] = 67229, + [SMALL_STATE(1376)] = 67243, + [SMALL_STATE(1377)] = 67259, + [SMALL_STATE(1378)] = 67275, + [SMALL_STATE(1379)] = 67291, + [SMALL_STATE(1380)] = 67305, + [SMALL_STATE(1381)] = 67319, + [SMALL_STATE(1382)] = 67335, + [SMALL_STATE(1383)] = 67349, + [SMALL_STATE(1384)] = 67363, + [SMALL_STATE(1385)] = 67379, + [SMALL_STATE(1386)] = 67395, + [SMALL_STATE(1387)] = 67411, + [SMALL_STATE(1388)] = 67427, + [SMALL_STATE(1389)] = 67441, + [SMALL_STATE(1390)] = 67455, + [SMALL_STATE(1391)] = 67469, + [SMALL_STATE(1392)] = 67479, + [SMALL_STATE(1393)] = 67493, + [SMALL_STATE(1394)] = 67503, + [SMALL_STATE(1395)] = 67517, + [SMALL_STATE(1396)] = 67533, + [SMALL_STATE(1397)] = 67549, + [SMALL_STATE(1398)] = 67565, + [SMALL_STATE(1399)] = 67581, + [SMALL_STATE(1400)] = 67597, + [SMALL_STATE(1401)] = 67611, + [SMALL_STATE(1402)] = 67625, + [SMALL_STATE(1403)] = 67641, + [SMALL_STATE(1404)] = 67657, + [SMALL_STATE(1405)] = 67671, + [SMALL_STATE(1406)] = 67684, + [SMALL_STATE(1407)] = 67697, + [SMALL_STATE(1408)] = 67710, + [SMALL_STATE(1409)] = 67721, + [SMALL_STATE(1410)] = 67734, + [SMALL_STATE(1411)] = 67743, + [SMALL_STATE(1412)] = 67754, + [SMALL_STATE(1413)] = 67767, + [SMALL_STATE(1414)] = 67780, + [SMALL_STATE(1415)] = 67793, + [SMALL_STATE(1416)] = 67806, + [SMALL_STATE(1417)] = 67819, + [SMALL_STATE(1418)] = 67828, + [SMALL_STATE(1419)] = 67841, + [SMALL_STATE(1420)] = 67854, + [SMALL_STATE(1421)] = 67867, + [SMALL_STATE(1422)] = 67880, + [SMALL_STATE(1423)] = 67889, + [SMALL_STATE(1424)] = 67902, + [SMALL_STATE(1425)] = 67915, + [SMALL_STATE(1426)] = 67924, + [SMALL_STATE(1427)] = 67937, + [SMALL_STATE(1428)] = 67950, + [SMALL_STATE(1429)] = 67959, + [SMALL_STATE(1430)] = 67972, + [SMALL_STATE(1431)] = 67985, + [SMALL_STATE(1432)] = 67996, + [SMALL_STATE(1433)] = 68009, + [SMALL_STATE(1434)] = 68022, + [SMALL_STATE(1435)] = 68035, + [SMALL_STATE(1436)] = 68048, + [SMALL_STATE(1437)] = 68059, + [SMALL_STATE(1438)] = 68068, + [SMALL_STATE(1439)] = 68079, + [SMALL_STATE(1440)] = 68092, + [SMALL_STATE(1441)] = 68105, + [SMALL_STATE(1442)] = 68118, + [SMALL_STATE(1443)] = 68127, + [SMALL_STATE(1444)] = 68140, + [SMALL_STATE(1445)] = 68153, + [SMALL_STATE(1446)] = 68166, + [SMALL_STATE(1447)] = 68177, + [SMALL_STATE(1448)] = 68190, + [SMALL_STATE(1449)] = 68203, + [SMALL_STATE(1450)] = 68216, + [SMALL_STATE(1451)] = 68229, + [SMALL_STATE(1452)] = 68242, + [SMALL_STATE(1453)] = 68255, + [SMALL_STATE(1454)] = 68268, + [SMALL_STATE(1455)] = 68281, + [SMALL_STATE(1456)] = 68294, + [SMALL_STATE(1457)] = 68307, + [SMALL_STATE(1458)] = 68320, + [SMALL_STATE(1459)] = 68333, + [SMALL_STATE(1460)] = 68346, + [SMALL_STATE(1461)] = 68359, + [SMALL_STATE(1462)] = 68372, + [SMALL_STATE(1463)] = 68385, + [SMALL_STATE(1464)] = 68396, + [SMALL_STATE(1465)] = 68409, + [SMALL_STATE(1466)] = 68422, + [SMALL_STATE(1467)] = 68435, + [SMALL_STATE(1468)] = 68448, + [SMALL_STATE(1469)] = 68461, + [SMALL_STATE(1470)] = 68474, + [SMALL_STATE(1471)] = 68487, + [SMALL_STATE(1472)] = 68500, + [SMALL_STATE(1473)] = 68513, + [SMALL_STATE(1474)] = 68526, + [SMALL_STATE(1475)] = 68539, + [SMALL_STATE(1476)] = 68552, + [SMALL_STATE(1477)] = 68565, + [SMALL_STATE(1478)] = 68578, + [SMALL_STATE(1479)] = 68591, + [SMALL_STATE(1480)] = 68604, + [SMALL_STATE(1481)] = 68617, + [SMALL_STATE(1482)] = 68630, + [SMALL_STATE(1483)] = 68643, + [SMALL_STATE(1484)] = 68656, + [SMALL_STATE(1485)] = 68669, + [SMALL_STATE(1486)] = 68678, + [SMALL_STATE(1487)] = 68691, + [SMALL_STATE(1488)] = 68704, + [SMALL_STATE(1489)] = 68717, + [SMALL_STATE(1490)] = 68730, + [SMALL_STATE(1491)] = 68743, + [SMALL_STATE(1492)] = 68756, + [SMALL_STATE(1493)] = 68769, + [SMALL_STATE(1494)] = 68782, + [SMALL_STATE(1495)] = 68791, + [SMALL_STATE(1496)] = 68804, + [SMALL_STATE(1497)] = 68817, + [SMALL_STATE(1498)] = 68830, + [SMALL_STATE(1499)] = 68843, + [SMALL_STATE(1500)] = 68854, + [SMALL_STATE(1501)] = 68867, + [SMALL_STATE(1502)] = 68880, + [SMALL_STATE(1503)] = 68893, + [SMALL_STATE(1504)] = 68906, + [SMALL_STATE(1505)] = 68919, + [SMALL_STATE(1506)] = 68932, + [SMALL_STATE(1507)] = 68945, + [SMALL_STATE(1508)] = 68956, + [SMALL_STATE(1509)] = 68967, + [SMALL_STATE(1510)] = 68976, + [SMALL_STATE(1511)] = 68985, + [SMALL_STATE(1512)] = 68998, + [SMALL_STATE(1513)] = 69007, + [SMALL_STATE(1514)] = 69020, + [SMALL_STATE(1515)] = 69033, + [SMALL_STATE(1516)] = 69046, + [SMALL_STATE(1517)] = 69057, + [SMALL_STATE(1518)] = 69068, + [SMALL_STATE(1519)] = 69081, + [SMALL_STATE(1520)] = 69094, + [SMALL_STATE(1521)] = 69107, + [SMALL_STATE(1522)] = 69120, + [SMALL_STATE(1523)] = 69129, + [SMALL_STATE(1524)] = 69142, + [SMALL_STATE(1525)] = 69151, + [SMALL_STATE(1526)] = 69164, + [SMALL_STATE(1527)] = 69177, + [SMALL_STATE(1528)] = 69190, + [SMALL_STATE(1529)] = 69203, + [SMALL_STATE(1530)] = 69212, + [SMALL_STATE(1531)] = 69225, + [SMALL_STATE(1532)] = 69238, + [SMALL_STATE(1533)] = 69251, + [SMALL_STATE(1534)] = 69259, + [SMALL_STATE(1535)] = 69267, + [SMALL_STATE(1536)] = 69275, + [SMALL_STATE(1537)] = 69283, + [SMALL_STATE(1538)] = 69293, + [SMALL_STATE(1539)] = 69303, + [SMALL_STATE(1540)] = 69311, + [SMALL_STATE(1541)] = 69319, + [SMALL_STATE(1542)] = 69329, + [SMALL_STATE(1543)] = 69337, + [SMALL_STATE(1544)] = 69347, + [SMALL_STATE(1545)] = 69357, + [SMALL_STATE(1546)] = 69365, + [SMALL_STATE(1547)] = 69375, + [SMALL_STATE(1548)] = 69385, + [SMALL_STATE(1549)] = 69395, + [SMALL_STATE(1550)] = 69403, + [SMALL_STATE(1551)] = 69411, + [SMALL_STATE(1552)] = 69421, + [SMALL_STATE(1553)] = 69429, + [SMALL_STATE(1554)] = 69439, + [SMALL_STATE(1555)] = 69447, + [SMALL_STATE(1556)] = 69457, + [SMALL_STATE(1557)] = 69467, + [SMALL_STATE(1558)] = 69475, + [SMALL_STATE(1559)] = 69483, + [SMALL_STATE(1560)] = 69491, + [SMALL_STATE(1561)] = 69501, + [SMALL_STATE(1562)] = 69509, + [SMALL_STATE(1563)] = 69517, + [SMALL_STATE(1564)] = 69525, + [SMALL_STATE(1565)] = 69535, + [SMALL_STATE(1566)] = 69543, + [SMALL_STATE(1567)] = 69551, + [SMALL_STATE(1568)] = 69559, + [SMALL_STATE(1569)] = 69569, + [SMALL_STATE(1570)] = 69577, + [SMALL_STATE(1571)] = 69585, + [SMALL_STATE(1572)] = 69593, + [SMALL_STATE(1573)] = 69603, + [SMALL_STATE(1574)] = 69613, + [SMALL_STATE(1575)] = 69623, + [SMALL_STATE(1576)] = 69631, + [SMALL_STATE(1577)] = 69641, + [SMALL_STATE(1578)] = 69649, + [SMALL_STATE(1579)] = 69657, + [SMALL_STATE(1580)] = 69665, + [SMALL_STATE(1581)] = 69673, + [SMALL_STATE(1582)] = 69681, + [SMALL_STATE(1583)] = 69689, + [SMALL_STATE(1584)] = 69697, + [SMALL_STATE(1585)] = 69705, + [SMALL_STATE(1586)] = 69713, + [SMALL_STATE(1587)] = 69721, + [SMALL_STATE(1588)] = 69731, + [SMALL_STATE(1589)] = 69741, + [SMALL_STATE(1590)] = 69749, + [SMALL_STATE(1591)] = 69759, + [SMALL_STATE(1592)] = 69767, + [SMALL_STATE(1593)] = 69775, + [SMALL_STATE(1594)] = 69785, + [SMALL_STATE(1595)] = 69795, + [SMALL_STATE(1596)] = 69805, + [SMALL_STATE(1597)] = 69813, + [SMALL_STATE(1598)] = 69823, + [SMALL_STATE(1599)] = 69831, + [SMALL_STATE(1600)] = 69841, + [SMALL_STATE(1601)] = 69849, + [SMALL_STATE(1602)] = 69859, + [SMALL_STATE(1603)] = 69869, + [SMALL_STATE(1604)] = 69877, + [SMALL_STATE(1605)] = 69887, + [SMALL_STATE(1606)] = 69895, + [SMALL_STATE(1607)] = 69903, + [SMALL_STATE(1608)] = 69911, + [SMALL_STATE(1609)] = 69919, + [SMALL_STATE(1610)] = 69927, + [SMALL_STATE(1611)] = 69935, + [SMALL_STATE(1612)] = 69943, + [SMALL_STATE(1613)] = 69953, + [SMALL_STATE(1614)] = 69960, + [SMALL_STATE(1615)] = 69967, + [SMALL_STATE(1616)] = 69974, + [SMALL_STATE(1617)] = 69981, + [SMALL_STATE(1618)] = 69988, + [SMALL_STATE(1619)] = 69995, + [SMALL_STATE(1620)] = 70002, + [SMALL_STATE(1621)] = 70009, + [SMALL_STATE(1622)] = 70016, + [SMALL_STATE(1623)] = 70023, + [SMALL_STATE(1624)] = 70030, + [SMALL_STATE(1625)] = 70037, + [SMALL_STATE(1626)] = 70044, + [SMALL_STATE(1627)] = 70051, + [SMALL_STATE(1628)] = 70058, + [SMALL_STATE(1629)] = 70065, + [SMALL_STATE(1630)] = 70072, + [SMALL_STATE(1631)] = 70079, + [SMALL_STATE(1632)] = 70086, + [SMALL_STATE(1633)] = 70093, + [SMALL_STATE(1634)] = 70100, + [SMALL_STATE(1635)] = 70107, + [SMALL_STATE(1636)] = 70114, + [SMALL_STATE(1637)] = 70121, + [SMALL_STATE(1638)] = 70128, + [SMALL_STATE(1639)] = 70135, + [SMALL_STATE(1640)] = 70142, + [SMALL_STATE(1641)] = 70149, + [SMALL_STATE(1642)] = 70156, + [SMALL_STATE(1643)] = 70163, + [SMALL_STATE(1644)] = 70170, + [SMALL_STATE(1645)] = 70177, + [SMALL_STATE(1646)] = 70184, + [SMALL_STATE(1647)] = 70191, + [SMALL_STATE(1648)] = 70198, + [SMALL_STATE(1649)] = 70205, + [SMALL_STATE(1650)] = 70212, + [SMALL_STATE(1651)] = 70219, + [SMALL_STATE(1652)] = 70226, + [SMALL_STATE(1653)] = 70233, + [SMALL_STATE(1654)] = 70240, + [SMALL_STATE(1655)] = 70247, + [SMALL_STATE(1656)] = 70254, + [SMALL_STATE(1657)] = 70261, + [SMALL_STATE(1658)] = 70268, + [SMALL_STATE(1659)] = 70275, + [SMALL_STATE(1660)] = 70282, + [SMALL_STATE(1661)] = 70289, + [SMALL_STATE(1662)] = 70296, + [SMALL_STATE(1663)] = 70303, + [SMALL_STATE(1664)] = 70310, + [SMALL_STATE(1665)] = 70317, + [SMALL_STATE(1666)] = 70324, + [SMALL_STATE(1667)] = 70331, + [SMALL_STATE(1668)] = 70338, + [SMALL_STATE(1669)] = 70345, + [SMALL_STATE(1670)] = 70352, + [SMALL_STATE(1671)] = 70359, + [SMALL_STATE(1672)] = 70366, + [SMALL_STATE(1673)] = 70373, + [SMALL_STATE(1674)] = 70380, + [SMALL_STATE(1675)] = 70387, + [SMALL_STATE(1676)] = 70394, + [SMALL_STATE(1677)] = 70401, + [SMALL_STATE(1678)] = 70408, + [SMALL_STATE(1679)] = 70415, + [SMALL_STATE(1680)] = 70422, + [SMALL_STATE(1681)] = 70429, + [SMALL_STATE(1682)] = 70436, + [SMALL_STATE(1683)] = 70443, + [SMALL_STATE(1684)] = 70450, + [SMALL_STATE(1685)] = 70457, + [SMALL_STATE(1686)] = 70464, + [SMALL_STATE(1687)] = 70471, + [SMALL_STATE(1688)] = 70478, + [SMALL_STATE(1689)] = 70485, + [SMALL_STATE(1690)] = 70492, + [SMALL_STATE(1691)] = 70499, + [SMALL_STATE(1692)] = 70506, + [SMALL_STATE(1693)] = 70513, + [SMALL_STATE(1694)] = 70520, + [SMALL_STATE(1695)] = 70527, + [SMALL_STATE(1696)] = 70534, + [SMALL_STATE(1697)] = 70541, + [SMALL_STATE(1698)] = 70548, + [SMALL_STATE(1699)] = 70555, + [SMALL_STATE(1700)] = 70562, + [SMALL_STATE(1701)] = 70569, + [SMALL_STATE(1702)] = 70576, + [SMALL_STATE(1703)] = 70583, + [SMALL_STATE(1704)] = 70590, + [SMALL_STATE(1705)] = 70597, + [SMALL_STATE(1706)] = 70604, + [SMALL_STATE(1707)] = 70611, + [SMALL_STATE(1708)] = 70618, + [SMALL_STATE(1709)] = 70625, + [SMALL_STATE(1710)] = 70632, + [SMALL_STATE(1711)] = 70639, + [SMALL_STATE(1712)] = 70646, + [SMALL_STATE(1713)] = 70653, + [SMALL_STATE(1714)] = 70660, + [SMALL_STATE(1715)] = 70667, + [SMALL_STATE(1716)] = 70674, + [SMALL_STATE(1717)] = 70681, + [SMALL_STATE(1718)] = 70688, + [SMALL_STATE(1719)] = 70695, + [SMALL_STATE(1720)] = 70702, + [SMALL_STATE(1721)] = 70709, + [SMALL_STATE(1722)] = 70716, + [SMALL_STATE(1723)] = 70723, + [SMALL_STATE(1724)] = 70730, + [SMALL_STATE(1725)] = 70737, + [SMALL_STATE(1726)] = 70744, + [SMALL_STATE(1727)] = 70751, + [SMALL_STATE(1728)] = 70758, + [SMALL_STATE(1729)] = 70765, + [SMALL_STATE(1730)] = 70772, + [SMALL_STATE(1731)] = 70779, + [SMALL_STATE(1732)] = 70786, + [SMALL_STATE(1733)] = 70793, + [SMALL_STATE(1734)] = 70800, + [SMALL_STATE(1735)] = 70807, + [SMALL_STATE(1736)] = 70814, + [SMALL_STATE(1737)] = 70821, + [SMALL_STATE(1738)] = 70828, + [SMALL_STATE(1739)] = 70835, + [SMALL_STATE(1740)] = 70842, + [SMALL_STATE(1741)] = 70849, + [SMALL_STATE(1742)] = 70856, + [SMALL_STATE(1743)] = 70863, + [SMALL_STATE(1744)] = 70870, + [SMALL_STATE(1745)] = 70877, + [SMALL_STATE(1746)] = 70884, + [SMALL_STATE(1747)] = 70891, + [SMALL_STATE(1748)] = 70898, + [SMALL_STATE(1749)] = 70905, + [SMALL_STATE(1750)] = 70912, + [SMALL_STATE(1751)] = 70919, + [SMALL_STATE(1752)] = 70926, + [SMALL_STATE(1753)] = 70933, + [SMALL_STATE(1754)] = 70940, }; static const TSParseActionEntry ts_parse_actions[] = { @@ -82371,1687 +84025,1704 @@ static const TSParseActionEntry ts_parse_actions[] = { [1] = {.entry = {.count = 1, .reusable = false}}, RECOVER(), [3] = {.entry = {.count = 1, .reusable = true}}, SHIFT_EXTRA(), [5] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 0, 0, 0), - [7] = {.entry = {.count = 1, .reusable = false}}, SHIFT(462), - [9] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1321), - [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1201), - [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(162), - [15] = {.entry = {.count = 1, .reusable = false}}, SHIFT(384), - [17] = {.entry = {.count = 1, .reusable = false}}, SHIFT(68), - [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(406), - [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(217), - [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(244), - [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(184), - [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1523), - [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1525), - [31] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1531), - [33] = {.entry = {.count = 1, .reusable = false}}, SHIFT(385), - [35] = {.entry = {.count = 1, .reusable = false}}, SHIFT(324), - [37] = {.entry = {.count = 1, .reusable = false}}, SHIFT(508), - [39] = {.entry = {.count = 1, .reusable = false}}, SHIFT(407), - [41] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1712), - [43] = {.entry = {.count = 1, .reusable = false}}, SHIFT(288), - [45] = {.entry = {.count = 1, .reusable = false}}, SHIFT(67), - [47] = {.entry = {.count = 1, .reusable = true}}, SHIFT(676), - [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(157), - [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(164), - [53] = {.entry = {.count = 1, .reusable = true}}, SHIFT(378), - [55] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1619), - [57] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1585), - [59] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1648), - [61] = {.entry = {.count = 1, .reusable = false}}, SHIFT(367), - [63] = {.entry = {.count = 1, .reusable = false}}, SHIFT(458), - [65] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1629), - [67] = {.entry = {.count = 1, .reusable = true}}, SHIFT(342), - [69] = {.entry = {.count = 1, .reusable = false}}, SHIFT(343), - [71] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1016), - [73] = {.entry = {.count = 1, .reusable = false}}, SHIFT(174), - [75] = {.entry = {.count = 1, .reusable = true}}, SHIFT(908), - [77] = {.entry = {.count = 1, .reusable = false}}, SHIFT(908), - [79] = {.entry = {.count = 1, .reusable = false}}, SHIFT(134), - [81] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1035), - [83] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1037), - [85] = {.entry = {.count = 1, .reusable = false}}, SHIFT(423), - [87] = {.entry = {.count = 1, .reusable = false}}, SHIFT(338), - [89] = {.entry = {.count = 1, .reusable = false}}, SHIFT(493), - [91] = {.entry = {.count = 1, .reusable = false}}, SHIFT(424), - [93] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1688), - [95] = {.entry = {.count = 1, .reusable = false}}, SHIFT(304), - [97] = {.entry = {.count = 1, .reusable = false}}, SHIFT(66), - [99] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1713), - [101] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1691), - [103] = {.entry = {.count = 1, .reusable = true}}, SHIFT(320), - [105] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1521), - [107] = {.entry = {.count = 1, .reusable = true}}, SHIFT(325), - [109] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), - [111] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(462), - [114] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1321), - [117] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1201), - [120] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(162), - [123] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(384), - [126] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(68), - [129] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(406), - [132] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(217), - [135] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(244), - [138] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(184), - [141] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1523), - [144] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1525), - [147] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1531), - [150] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(385), - [153] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(324), - [156] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(508), - [159] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(407), - [162] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1712), - [165] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(288), - [168] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(67), - [171] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(676), - [174] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(157), - [177] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(164), - [180] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(378), - [183] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1619), - [186] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1585), - [189] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1648), - [192] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(367), - [195] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(458), - [198] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1629), - [201] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(342), - [204] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(343), - [207] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1016), - [210] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(174), - [213] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(908), - [216] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(908), - [219] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(134), - [222] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1035), - [225] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1037), - [228] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1536), - [230] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 1, 0, 0), - [232] = {.entry = {.count = 1, .reusable = true}}, SHIFT(332), - [234] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(423), - [237] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(338), - [240] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(493), - [243] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(424), - [246] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1688), - [249] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(304), - [252] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(66), - [255] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1713), - [258] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1691), - [261] = {.entry = {.count = 1, .reusable = true}}, SHIFT(314), - [263] = {.entry = {.count = 1, .reusable = false}}, SHIFT(774), - [265] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_primary_expression, 1, 0, 1), - [267] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_primary_expression, 1, 0, 1), SHIFT(194), - [270] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_pattern, 1, 0, 1), REDUCE(sym_primary_expression, 1, 0, 1), - [273] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_primary_expression, 1, 0, 1), SHIFT(370), - [276] = {.entry = {.count = 1, .reusable = false}}, SHIFT(773), - [278] = {.entry = {.count = 1, .reusable = true}}, SHIFT(366), - [280] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pattern, 1, 0, 1), - [282] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_primary_expression, 1, 0, 1), SHIFT(675), - [285] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_primary_expression, 1, 0, 1), SHIFT(197), - [288] = {.entry = {.count = 1, .reusable = true}}, SHIFT(166), - [290] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_primary_expression, 1, 0, 1), SHIFT(378), - [293] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_primary_expression, 1, 0, 1), SHIFT(391), - [296] = {.entry = {.count = 1, .reusable = true}}, SHIFT(675), - [298] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_primary_expression, 1, 0, 1), - [300] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1015), - [302] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern, 1, 0, 1), - [304] = {.entry = {.count = 1, .reusable = true}}, SHIFT(724), - [306] = {.entry = {.count = 1, .reusable = false}}, SHIFT(724), - [308] = {.entry = {.count = 1, .reusable = false}}, SHIFT(136), - [310] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1044), - [312] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1045), - [314] = {.entry = {.count = 1, .reusable = false}}, SHIFT(853), - [316] = {.entry = {.count = 1, .reusable = false}}, SHIFT(826), - [318] = {.entry = {.count = 1, .reusable = false}}, SHIFT(365), - [320] = {.entry = {.count = 1, .reusable = false}}, SHIFT(140), - [322] = {.entry = {.count = 1, .reusable = false}}, SHIFT(465), - [324] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1171), - [326] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), - [328] = {.entry = {.count = 1, .reusable = true}}, SHIFT(436), - [330] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), - [332] = {.entry = {.count = 1, .reusable = true}}, SHIFT(550), - [334] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), - [336] = {.entry = {.count = 1, .reusable = true}}, SHIFT(581), - [338] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), - [340] = {.entry = {.count = 1, .reusable = true}}, SHIFT(442), - [342] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), - [344] = {.entry = {.count = 1, .reusable = true}}, SHIFT(606), - [346] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), - [348] = {.entry = {.count = 1, .reusable = true}}, SHIFT(482), - [350] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), - [352] = {.entry = {.count = 1, .reusable = true}}, SHIFT(319), - [354] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), - [356] = {.entry = {.count = 1, .reusable = true}}, SHIFT(489), - [358] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), - [360] = {.entry = {.count = 1, .reusable = true}}, SHIFT(554), - [362] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), - [364] = {.entry = {.count = 1, .reusable = true}}, SHIFT(557), - [366] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), - [368] = {.entry = {.count = 1, .reusable = true}}, SHIFT(454), - [370] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), - [372] = {.entry = {.count = 1, .reusable = true}}, SHIFT(559), - [374] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), - [376] = {.entry = {.count = 1, .reusable = true}}, SHIFT(516), - [378] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), - [380] = {.entry = {.count = 1, .reusable = true}}, SHIFT(520), - [382] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), - [384] = {.entry = {.count = 1, .reusable = true}}, SHIFT(564), - [386] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), - [388] = {.entry = {.count = 1, .reusable = true}}, SHIFT(566), - [390] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), - [392] = {.entry = {.count = 1, .reusable = true}}, SHIFT(567), - [394] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), - [396] = {.entry = {.count = 1, .reusable = true}}, SHIFT(523), - [398] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), - [400] = {.entry = {.count = 1, .reusable = true}}, SHIFT(571), - [402] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), - [404] = {.entry = {.count = 1, .reusable = true}}, SHIFT(491), - [406] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), - [408] = {.entry = {.count = 1, .reusable = true}}, SHIFT(437), - [410] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), - [412] = {.entry = {.count = 1, .reusable = true}}, SHIFT(573), - [414] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), - [416] = {.entry = {.count = 1, .reusable = true}}, SHIFT(546), - [418] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), - [420] = {.entry = {.count = 1, .reusable = true}}, SHIFT(577), - [422] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), - [424] = {.entry = {.count = 1, .reusable = true}}, SHIFT(495), - [426] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), - [428] = {.entry = {.count = 1, .reusable = true}}, SHIFT(579), - [430] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), - [432] = {.entry = {.count = 1, .reusable = true}}, SHIFT(541), - [434] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), - [436] = {.entry = {.count = 1, .reusable = true}}, SHIFT(503), - [438] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), - [440] = {.entry = {.count = 1, .reusable = true}}, SHIFT(480), - [442] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), - [444] = {.entry = {.count = 1, .reusable = true}}, SHIFT(312), - [446] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), - [448] = {.entry = {.count = 1, .reusable = true}}, SHIFT(584), - [450] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), - [452] = {.entry = {.count = 1, .reusable = true}}, SHIFT(527), - [454] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), - [456] = {.entry = {.count = 1, .reusable = true}}, SHIFT(439), - [458] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), - [460] = {.entry = {.count = 1, .reusable = true}}, SHIFT(485), - [462] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), - [464] = {.entry = {.count = 1, .reusable = true}}, SHIFT(504), - [466] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), - [468] = {.entry = {.count = 1, .reusable = true}}, SHIFT(589), - [470] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), - [472] = {.entry = {.count = 1, .reusable = true}}, SHIFT(459), - [474] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), - [476] = {.entry = {.count = 1, .reusable = true}}, SHIFT(488), - [478] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), - [480] = {.entry = {.count = 1, .reusable = true}}, SHIFT(496), - [482] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), - [484] = {.entry = {.count = 1, .reusable = true}}, SHIFT(531), - [486] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), - [488] = {.entry = {.count = 1, .reusable = true}}, SHIFT(593), - [490] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), - [492] = {.entry = {.count = 1, .reusable = true}}, SHIFT(608), - [494] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), - [496] = {.entry = {.count = 1, .reusable = true}}, SHIFT(440), - [498] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), - [500] = {.entry = {.count = 1, .reusable = true}}, SHIFT(611), - [502] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), - [504] = {.entry = {.count = 1, .reusable = true}}, SHIFT(464), - [506] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), - [508] = {.entry = {.count = 1, .reusable = true}}, SHIFT(506), - [510] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), - [512] = {.entry = {.count = 1, .reusable = true}}, SHIFT(599), - [514] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), - [516] = {.entry = {.count = 1, .reusable = true}}, SHIFT(537), - [518] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), - [520] = {.entry = {.count = 1, .reusable = true}}, SHIFT(602), - [522] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), - [524] = {.entry = {.count = 1, .reusable = true}}, SHIFT(444), - [526] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), - [528] = {.entry = {.count = 1, .reusable = true}}, SHIFT(451), - [530] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), - [532] = {.entry = {.count = 1, .reusable = true}}, SHIFT(613), - [534] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), - [536] = {.entry = {.count = 1, .reusable = true}}, SHIFT(445), - [538] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), - [540] = {.entry = {.count = 1, .reusable = true}}, SHIFT(500), - [542] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), - [544] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1187), - [546] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), - [548] = {.entry = {.count = 1, .reusable = true}}, SHIFT(543), - [550] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), - [552] = {.entry = {.count = 1, .reusable = true}}, SHIFT(481), - [554] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), - [556] = {.entry = {.count = 1, .reusable = true}}, SHIFT(334), - [558] = {.entry = {.count = 1, .reusable = true}}, SHIFT(318), - [560] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1515), - [562] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1580), - [564] = {.entry = {.count = 1, .reusable = true}}, SHIFT(313), - [566] = {.entry = {.count = 1, .reusable = true}}, SHIFT(336), - [568] = {.entry = {.count = 1, .reusable = true}}, SHIFT(206), - [570] = {.entry = {.count = 1, .reusable = false}}, SHIFT(926), - [572] = {.entry = {.count = 1, .reusable = false}}, SHIFT(676), - [574] = {.entry = {.count = 1, .reusable = true}}, SHIFT(207), - [576] = {.entry = {.count = 1, .reusable = false}}, SHIFT(149), - [578] = {.entry = {.count = 1, .reusable = true}}, SHIFT(194), - [580] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_primary_expression, 1, 0, 1), REDUCE(sym_list_splat_pattern, 2, 0, 8), - [583] = {.entry = {.count = 1, .reusable = false}}, SHIFT(723), - [585] = {.entry = {.count = 1, .reusable = true}}, SHIFT(405), - [587] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list_splat_pattern, 2, 0, 8), - [589] = {.entry = {.count = 1, .reusable = false}}, SHIFT(675), - [591] = {.entry = {.count = 1, .reusable = true}}, SHIFT(197), - [593] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_splat_pattern, 2, 0, 8), - [595] = {.entry = {.count = 1, .reusable = false}}, SHIFT(137), - [597] = {.entry = {.count = 1, .reusable = true}}, SHIFT(218), - [599] = {.entry = {.count = 1, .reusable = true}}, SHIFT(357), - [601] = {.entry = {.count = 1, .reusable = true}}, SHIFT(657), - [603] = {.entry = {.count = 1, .reusable = true}}, SHIFT(227), - [605] = {.entry = {.count = 1, .reusable = false}}, SHIFT(143), - [607] = {.entry = {.count = 1, .reusable = false}}, SHIFT(924), - [609] = {.entry = {.count = 1, .reusable = true}}, SHIFT(208), - [611] = {.entry = {.count = 1, .reusable = false}}, SHIFT(938), - [613] = {.entry = {.count = 1, .reusable = false}}, SHIFT(392), - [615] = {.entry = {.count = 1, .reusable = true}}, SHIFT(679), - [617] = {.entry = {.count = 1, .reusable = true}}, SHIFT(219), - [619] = {.entry = {.count = 1, .reusable = true}}, SHIFT(167), - [621] = {.entry = {.count = 1, .reusable = true}}, SHIFT(924), - [623] = {.entry = {.count = 1, .reusable = false}}, SHIFT(145), - [625] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1059), - [627] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1056), - [629] = {.entry = {.count = 1, .reusable = false}}, SHIFT(953), - [631] = {.entry = {.count = 1, .reusable = true}}, SHIFT(229), - [633] = {.entry = {.count = 1, .reusable = false}}, SHIFT(963), - [635] = {.entry = {.count = 1, .reusable = true}}, SHIFT(356), - [637] = {.entry = {.count = 1, .reusable = true}}, SHIFT(677), - [639] = {.entry = {.count = 1, .reusable = true}}, SHIFT(230), - [641] = {.entry = {.count = 1, .reusable = true}}, SHIFT(165), - [643] = {.entry = {.count = 1, .reusable = true}}, SHIFT(953), - [645] = {.entry = {.count = 1, .reusable = false}}, SHIFT(150), - [647] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1050), - [649] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1051), - [651] = {.entry = {.count = 1, .reusable = false}}, SHIFT(372), - [653] = {.entry = {.count = 1, .reusable = true}}, SHIFT(226), - [655] = {.entry = {.count = 1, .reusable = true}}, SHIFT(408), - [657] = {.entry = {.count = 1, .reusable = true}}, SHIFT(692), - [659] = {.entry = {.count = 1, .reusable = true}}, SHIFT(231), - [661] = {.entry = {.count = 1, .reusable = false}}, SHIFT(152), - [663] = {.entry = {.count = 1, .reusable = false}}, SHIFT(849), - [665] = {.entry = {.count = 1, .reusable = true}}, SHIFT(159), - [667] = {.entry = {.count = 1, .reusable = false}}, SHIFT(662), - [669] = {.entry = {.count = 1, .reusable = false}}, SHIFT(855), - [671] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern_list, 2, 0, 7), - [673] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pattern_list, 2, 0, 7), - [675] = {.entry = {.count = 1, .reusable = true}}, SHIFT(163), - [677] = {.entry = {.count = 1, .reusable = false}}, SHIFT(142), - [679] = {.entry = {.count = 1, .reusable = false}}, SHIFT(858), - [681] = {.entry = {.count = 1, .reusable = true}}, SHIFT(161), - [683] = {.entry = {.count = 1, .reusable = true}}, SHIFT(384), - [685] = {.entry = {.count = 1, .reusable = false}}, SHIFT(864), - [687] = {.entry = {.count = 1, .reusable = true}}, SHIFT(160), - [689] = {.entry = {.count = 1, .reusable = true}}, SHIFT(513), - [691] = {.entry = {.count = 1, .reusable = false}}, SHIFT(340), - [693] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1014), - [695] = {.entry = {.count = 1, .reusable = false}}, SHIFT(168), - [697] = {.entry = {.count = 1, .reusable = false}}, SHIFT(148), - [699] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern_list, 3, 0, 16), - [701] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pattern_list, 3, 0, 16), - [703] = {.entry = {.count = 1, .reusable = true}}, SHIFT(838), - [705] = {.entry = {.count = 1, .reusable = true}}, SHIFT(925), - [707] = {.entry = {.count = 1, .reusable = true}}, SHIFT(919), - [709] = {.entry = {.count = 1, .reusable = true}}, SHIFT(502), - [711] = {.entry = {.count = 1, .reusable = true}}, SHIFT(857), - [713] = {.entry = {.count = 1, .reusable = false}}, SHIFT(842), - [715] = {.entry = {.count = 1, .reusable = true}}, SHIFT(199), - [717] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1678), - [719] = {.entry = {.count = 1, .reusable = false}}, SHIFT(370), - [721] = {.entry = {.count = 1, .reusable = false}}, SHIFT(863), - [723] = {.entry = {.count = 1, .reusable = true}}, SHIFT(942), - [725] = {.entry = {.count = 1, .reusable = false}}, SHIFT(416), - [727] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1018), - [729] = {.entry = {.count = 1, .reusable = false}}, SHIFT(147), - [731] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1683), - [733] = {.entry = {.count = 1, .reusable = true}}, SHIFT(952), - [735] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1665), - [737] = {.entry = {.count = 1, .reusable = true}}, SHIFT(715), - [739] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1596), - [741] = {.entry = {.count = 1, .reusable = true}}, SHIFT(939), - [743] = {.entry = {.count = 1, .reusable = false}}, SHIFT(362), - [745] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_yield, 1, 0, 0), - [747] = {.entry = {.count = 1, .reusable = false}}, SHIFT(391), - [749] = {.entry = {.count = 1, .reusable = false}}, SHIFT(865), - [751] = {.entry = {.count = 1, .reusable = false}}, SHIFT(418), - [753] = {.entry = {.count = 1, .reusable = false}}, SHIFT(840), - [755] = {.entry = {.count = 1, .reusable = false}}, SHIFT(403), - [757] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1020), - [759] = {.entry = {.count = 1, .reusable = false}}, SHIFT(141), - [761] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_list, 2, 0, 7), - [763] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_list, 3, 0, 16), - [765] = {.entry = {.count = 1, .reusable = false}}, SHIFT(169), - [767] = {.entry = {.count = 1, .reusable = false}}, SHIFT(375), - [769] = {.entry = {.count = 1, .reusable = true}}, SHIFT(210), - [771] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__collection_elements, 2, 0, 24), - [773] = {.entry = {.count = 1, .reusable = true}}, SHIFT(370), - [775] = {.entry = {.count = 1, .reusable = false}}, SHIFT(852), - [777] = {.entry = {.count = 1, .reusable = true}}, SHIFT(211), - [779] = {.entry = {.count = 1, .reusable = true}}, SHIFT(931), - [781] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1584), - [783] = {.entry = {.count = 1, .reusable = false}}, SHIFT(839), - [785] = {.entry = {.count = 1, .reusable = false}}, SHIFT(146), - [787] = {.entry = {.count = 1, .reusable = false}}, SHIFT(973), - [789] = {.entry = {.count = 1, .reusable = true}}, SHIFT(699), - [791] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1694), - [793] = {.entry = {.count = 1, .reusable = false}}, SHIFT(972), - [795] = {.entry = {.count = 1, .reusable = false}}, SHIFT(151), - [797] = {.entry = {.count = 1, .reusable = false}}, SHIFT(341), - [799] = {.entry = {.count = 1, .reusable = true}}, SHIFT(390), - [801] = {.entry = {.count = 1, .reusable = false}}, SHIFT(781), - [803] = {.entry = {.count = 1, .reusable = true}}, SHIFT(777), - [805] = {.entry = {.count = 1, .reusable = false}}, SHIFT(780), - [807] = {.entry = {.count = 1, .reusable = false}}, SHIFT(138), - [809] = {.entry = {.count = 1, .reusable = false}}, SHIFT(383), - [811] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_raise_statement, 1, 0, 0), - [813] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__collection_elements, 3, 0, 50), - [815] = {.entry = {.count = 1, .reusable = true}}, SHIFT(949), - [817] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1586), - [819] = {.entry = {.count = 1, .reusable = true}}, SHIFT(877), - [821] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1635), - [823] = {.entry = {.count = 1, .reusable = true}}, SHIFT(703), - [825] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_in_clause, 7, 0, 141), - [827] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_in_clause, 7, 0, 141), - [829] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1019), - [831] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression_list, 2, 0, 7), - [833] = {.entry = {.count = 1, .reusable = false}}, SHIFT(359), - [835] = {.entry = {.count = 1, .reusable = true}}, SHIFT(431), - [837] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_in_clause, 5, 0, 98), - [839] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_in_clause, 5, 0, 98), - [841] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression_list, 3, 0, 16), - [843] = {.entry = {.count = 1, .reusable = true}}, SHIFT(716), - [845] = {.entry = {.count = 1, .reusable = true}}, SHIFT(720), - [847] = {.entry = {.count = 1, .reusable = true}}, SHIFT(764), - [849] = {.entry = {.count = 1, .reusable = true}}, SHIFT(701), - [851] = {.entry = {.count = 1, .reusable = true}}, SHIFT(870), - [853] = {.entry = {.count = 1, .reusable = true}}, SHIFT(704), - [855] = {.entry = {.count = 1, .reusable = true}}, SHIFT(916), - [857] = {.entry = {.count = 1, .reusable = true}}, SHIFT(867), - [859] = {.entry = {.count = 1, .reusable = true}}, SHIFT(941), - [861] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_in_clause, 6, 0, 122), - [863] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_in_clause, 6, 0, 122), - [865] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_in_clause, 6, 0, 123), - [867] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_in_clause, 6, 0, 123), - [869] = {.entry = {.count = 1, .reusable = true}}, SHIFT(905), - [871] = {.entry = {.count = 1, .reusable = true}}, SHIFT(918), - [873] = {.entry = {.count = 1, .reusable = true}}, SHIFT(712), - [875] = {.entry = {.count = 1, .reusable = true}}, SHIFT(914), - [877] = {.entry = {.count = 1, .reusable = true}}, SHIFT(956), - [879] = {.entry = {.count = 1, .reusable = true}}, SHIFT(958), - [881] = {.entry = {.count = 1, .reusable = true}}, SHIFT(961), - [883] = {.entry = {.count = 1, .reusable = true}}, SHIFT(962), - [885] = {.entry = {.count = 1, .reusable = true}}, SHIFT(965), - [887] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_return_statement, 1, 0, 0), - [889] = {.entry = {.count = 1, .reusable = true}}, SHIFT(713), - [891] = {.entry = {.count = 1, .reusable = true}}, SHIFT(894), - [893] = {.entry = {.count = 1, .reusable = true}}, SHIFT(866), - [895] = {.entry = {.count = 1, .reusable = true}}, SHIFT(898), - [897] = {.entry = {.count = 1, .reusable = true}}, SHIFT(899), - [899] = {.entry = {.count = 1, .reusable = true}}, SHIFT(900), - [901] = {.entry = {.count = 1, .reusable = true}}, SHIFT(917), - [903] = {.entry = {.count = 1, .reusable = true}}, SHIFT(871), - [905] = {.entry = {.count = 1, .reusable = true}}, SHIFT(274), - [907] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_index_expression_list, 3, 0, 16), - [909] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_index_expression_list, 2, 0, 7), - [911] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary_splat_pattern, 2, 0, 33), - [913] = {.entry = {.count = 1, .reusable = true}}, SHIFT(714), - [915] = {.entry = {.count = 1, .reusable = true}}, SHIFT(971), - [917] = {.entry = {.count = 1, .reusable = true}}, SHIFT(954), - [919] = {.entry = {.count = 1, .reusable = true}}, SHIFT(955), - [921] = {.entry = {.count = 1, .reusable = true}}, SHIFT(913), - [923] = {.entry = {.count = 1, .reusable = true}}, SHIFT(881), - [925] = {.entry = {.count = 1, .reusable = true}}, SHIFT(892), - [927] = {.entry = {.count = 1, .reusable = true}}, SHIFT(893), - [929] = {.entry = {.count = 1, .reusable = true}}, SHIFT(727), - [931] = {.entry = {.count = 1, .reusable = true}}, SHIFT(940), - [933] = {.entry = {.count = 1, .reusable = true}}, SHIFT(909), - [935] = {.entry = {.count = 1, .reusable = true}}, SHIFT(717), - [937] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_statement, 5, 0, 81), - [939] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_statement, 5, 0, 81), - [941] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1609), - [943] = {.entry = {.count = 1, .reusable = false}}, SHIFT(311), - [945] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1606), - [947] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1704), - [949] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1646), - [951] = {.entry = {.count = 1, .reusable = false}}, SHIFT(295), - [953] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1588), - [955] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 2, 0, 69), - [957] = {.entry = {.count = 1, .reusable = true}}, SHIFT(301), - [959] = {.entry = {.count = 1, .reusable = true}}, SHIFT(359), - [961] = {.entry = {.count = 1, .reusable = false}}, SHIFT(912), - [963] = {.entry = {.count = 1, .reusable = true}}, SHIFT(323), - [965] = {.entry = {.count = 1, .reusable = false}}, SHIFT(911), - [967] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), - [969] = {.entry = {.count = 1, .reusable = false}}, SHIFT(401), - [971] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1017), - [973] = {.entry = {.count = 1, .reusable = false}}, SHIFT(144), - [975] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 1, 0, 0), - [977] = {.entry = {.count = 1, .reusable = true}}, SHIFT(293), - [979] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_statement, 4, 0, 56), - [981] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_statement, 4, 0, 56), - [983] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1611), - [985] = {.entry = {.count = 1, .reusable = true}}, SHIFT(337), - [987] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), - [989] = {.entry = {.count = 1, .reusable = true}}, SHIFT(183), - [991] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_print_statement, 3, 0, 10), - [993] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_print_statement, 4, 0, 28), - [995] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_print_statement, 4, 0, 29), - [997] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 2, 0, 0), - [999] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attribute, 3, 0, 40), - [1001] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attribute, 3, 0, 40), - [1003] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 3, 0, 68), - [1005] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1620), - [1007] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_print_statement, 3, 0, 0), - [1009] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 3, 0, 69), - [1011] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 4, 0, 95), - [1013] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_subscript, 4, 0, 70), - [1015] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_subscript, 4, 0, 70), - [1017] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1630), - [1019] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 4, 0, 54), - [1021] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 4, 0, 54), - [1023] = {.entry = {.count = 1, .reusable = false}}, SHIFT(380), - [1025] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__simple_statements, 4, 0, 0), - [1027] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__simple_statements, 4, 0, 0), - [1029] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 2, 0, 0), - [1031] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2, 0, 0), - [1033] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 6, 0, 102), - [1035] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 6, 0, 102), - [1037] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__simple_statements, 2, 0, 0), - [1039] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__simple_statements, 2, 0, 0), - [1041] = {.entry = {.count = 1, .reusable = false}}, SHIFT(429), - [1043] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 1, 0, 0), - [1045] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 1, 0, 0), - [1047] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, 0, 76), - [1049] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, 0, 76), - [1051] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, 0, 77), - [1053] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, 0, 77), - [1055] = {.entry = {.count = 1, .reusable = true}}, SHIFT(511), - [1057] = {.entry = {.count = 1, .reusable = true}}, SHIFT(310), - [1059] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1599), - [1061] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_try_statement_repeat1, 2, 0, 0), - [1063] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_try_statement_repeat1, 2, 0, 0), - [1065] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_try_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(295), - [1068] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_try_statement_repeat2, 2, 0, 0), - [1070] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_try_statement_repeat2, 2, 0, 0), - [1072] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_try_statement_repeat2, 2, 0, 0), SHIFT_REPEAT(1611), - [1075] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_try_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(311), - [1078] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_try_statement_repeat2, 2, 0, 0), SHIFT_REPEAT(1704), - [1081] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__simple_statements, 3, 0, 0), - [1083] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__simple_statements, 3, 0, 0), - [1085] = {.entry = {.count = 1, .reusable = true}}, SHIFT(512), - [1087] = {.entry = {.count = 1, .reusable = true}}, SHIFT(305), - [1089] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1714), - [1091] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_if_statement_repeat1, 2, 0, 100), - [1093] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_if_statement_repeat1, 2, 0, 100), - [1095] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_if_statement_repeat1, 2, 0, 100), SHIFT_REPEAT(380), - [1098] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1055), - [1100] = {.entry = {.count = 1, .reusable = false}}, SHIFT(474), - [1102] = {.entry = {.count = 1, .reusable = false}}, SHIFT(487), - [1104] = {.entry = {.count = 1, .reusable = false}}, SHIFT(135), - [1106] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_if_statement_repeat1, 2, 0, 100), SHIFT_REPEAT(429), - [1109] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_clause, 6, 0, 158), - [1111] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_clause, 6, 0, 158), - [1113] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_clause, 3, 0, 56), - [1115] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_clause, 3, 0, 56), - [1117] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_clause, 4, 0, 81), - [1119] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_clause, 4, 0, 81), - [1121] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_clause, 4, 0, 130), - [1123] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_clause, 4, 0, 130), - [1125] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_group_clause, 5, 0, 147), - [1127] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_group_clause, 5, 0, 147), - [1129] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_clause, 5, 0, 148), - [1131] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_clause, 5, 0, 148), - [1133] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_group_clause, 7, 0, 163), - [1135] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_group_clause, 7, 0, 163), - [1137] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_group_clause, 6, 0, 157), - [1139] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_group_clause, 6, 0, 157), - [1141] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_clause, 7, 0, 164), - [1143] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_clause, 7, 0, 164), - [1145] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_group_clause, 8, 0, 165), - [1147] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_group_clause, 8, 0, 165), - [1149] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_cases_repeat1, 2, 0, 0), - [1151] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_cases_repeat1, 2, 0, 0), - [1153] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_cases_repeat1, 2, 0, 0), SHIFT_REPEAT(856), - [1156] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_cases, 1, 0, 0), - [1158] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cases, 1, 0, 0), - [1160] = {.entry = {.count = 1, .reusable = false}}, SHIFT(862), - [1162] = {.entry = {.count = 1, .reusable = false}}, SHIFT(856), - [1164] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1498), - [1166] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_cases_repeat1, 2, 0, 0), SHIFT_REPEAT(862), - [1169] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__patterns, 3, 0, 50), - [1171] = {.entry = {.count = 1, .reusable = true}}, SHIFT(662), - [1173] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_primary_expression, 1, 0, 0), - [1175] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_pattern, 1, 0, 0), REDUCE(sym_primary_expression, 1, 0, 0), - [1178] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_primary_expression, 1, 0, 0), - [1180] = {.entry = {.count = 1, .reusable = true}}, SHIFT(435), - [1182] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pattern, 1, 0, 0), - [1184] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern, 1, 0, 0), - [1186] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_if_statement_repeat1, 1, 0, 74), - [1188] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_if_statement_repeat1, 1, 0, 74), - [1190] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_elif_clause, 4, 0, 54), - [1192] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_elif_clause, 4, 0, 54), - [1194] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 8, 0, 143), - [1196] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 8, 0, 143), - [1198] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__patterns, 2, 0, 24), - [1200] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_statement, 5, 0, 56), - [1202] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_statement, 5, 0, 56), - [1204] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 7, 0, 129), - [1206] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, 0, 129), - [1208] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_statement, 6, 0, 81), - [1210] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_statement, 6, 0, 81), - [1212] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_elif_clause, 5, 0, 77), - [1214] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_elif_clause, 5, 0, 77), - [1216] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_primary_expression, 1, 0, 0), REDUCE(sym_list_splat_pattern, 2, 0, 9), - [1219] = {.entry = {.count = 1, .reusable = true}}, SHIFT(420), - [1221] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list_splat_pattern, 2, 0, 9), - [1223] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_splat_pattern, 2, 0, 9), - [1225] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_while_statement, 5, 0, 80), - [1227] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_while_statement, 5, 0, 80), - [1229] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1464), - [1231] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 7, 0, 125), - [1233] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, 0, 125), - [1235] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 6, 0, 105), - [1237] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 6, 0, 105), - [1239] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_while_statement, 4, 0, 55), - [1241] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_while_statement, 4, 0, 55), - [1243] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_else_clause, 4, 0, 81), - [1245] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_else_clause, 4, 0, 81), - [1247] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_else_clause, 3, 0, 56), - [1249] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_else_clause, 3, 0, 56), - [1251] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case_block, 4, 0, 134), - [1253] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_case_block, 4, 0, 134), - [1255] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case_block, 5, 0, 150), - [1257] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_case_block, 5, 0, 150), - [1259] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case_block, 5, 0, 151), - [1261] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_case_block, 5, 0, 151), - [1263] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case_block, 6, 0, 159), - [1265] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_case_block, 6, 0, 159), - [1267] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple, 2, 0, 0), - [1269] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_tuple_pattern, 2, 0, 0), REDUCE(sym_tuple, 2, 0, 0), - [1272] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple, 2, 0, 0), - [1274] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple_pattern, 2, 0, 0), - [1276] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple_pattern, 2, 0, 0), - [1278] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 2, 0, 0), - [1280] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_list_pattern, 2, 0, 0), REDUCE(sym_list, 2, 0, 0), - [1283] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list, 2, 0, 0), - [1285] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_pattern, 2, 0, 0), - [1287] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list_pattern, 2, 0, 0), - [1289] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, 0, 75), - [1291] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, 0, 75), - [1293] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_while_statement, 6, 0, 106), - [1295] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_while_statement, 6, 0, 106), - [1297] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_finally_clause, 3, 0, 56), - [1299] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_finally_clause, 3, 0, 56), - [1301] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_statement, 6, 0, 56), - [1303] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_statement, 6, 0, 56), - [1305] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 6, 0, 114), - [1307] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 6, 0, 114), - [1309] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 6, 0, 115), - [1311] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 6, 0, 115), - [1313] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decorated_definition, 2, 0, 19), - [1315] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_decorated_definition, 2, 0, 19), - [1317] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 6, 0, 116), - [1319] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 6, 0, 116), - [1321] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 6, 0, 117), - [1323] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 6, 0, 117), - [1325] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 6, 0, 118), - [1327] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 6, 0, 118), - [1329] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 7, 0, 124), - [1331] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 7, 0, 124), - [1333] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 7, 0, 126), - [1335] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 7, 0, 126), - [1337] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 7, 0, 127), - [1339] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 7, 0, 127), - [1341] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, 0, 128), - [1343] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 7, 0, 128), - [1345] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_finally_clause, 4, 0, 81), - [1347] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_finally_clause, 4, 0, 81), - [1349] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_statement, 7, 0, 81), - [1351] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_statement, 7, 0, 81), - [1353] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 7, 0, 137), - [1355] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 7, 0, 137), - [1357] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 7, 0, 138), - [1359] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 7, 0, 138), - [1361] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 7, 0, 139), - [1363] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 7, 0, 139), - [1365] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 8, 0, 142), - [1367] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 8, 0, 142), - [1369] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 8, 0, 144), - [1371] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 8, 0, 144), - [1373] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 8, 0, 145), - [1375] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 8, 0, 145), - [1377] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 8, 0, 146), - [1379] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 8, 0, 146), - [1381] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_statement, 5, 0, 82), - [1383] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_with_statement, 5, 0, 82), - [1385] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 5, 0, 87), - [1387] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 5, 0, 87), - [1389] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 8, 0, 152), - [1391] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 8, 0, 152), - [1393] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 8, 0, 153), - [1395] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 8, 0, 153), - [1397] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 9, 0, 154), - [1399] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 9, 0, 154), - [1401] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 9, 0, 155), - [1403] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 9, 0, 155), - [1405] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 9, 0, 156), - [1407] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 9, 0, 156), - [1409] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 5, 0, 89), - [1411] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 5, 0, 89), - [1413] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 9, 0, 161), - [1415] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 9, 0, 161), - [1417] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 10, 0, 162), - [1419] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 10, 0, 162), - [1421] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 5, 0, 90), - [1423] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 5, 0, 90), - [1425] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_with_statement, 4, 0, 57), - [1427] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_statement, 4, 0, 57), - [1429] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_match_statement, 4, 0, 59), - [1431] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_statement, 4, 0, 59), - [1433] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_match_statement, 4, 0, 60), - [1435] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_statement, 4, 0, 60), - [1437] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 4, 0, 64), - [1439] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 4, 0, 64), - [1441] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_with_statement, 5, 0, 78), - [1443] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_statement, 5, 0, 78), - [1445] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_while_statement, 5, 0, 79), - [1447] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_while_statement, 5, 0, 79), - [1449] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 5, 0, 91), - [1451] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 5, 0, 91), - [1453] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 6, 0, 99), - [1455] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 6, 0, 99), - [1457] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 6, 0, 101), - [1459] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 6, 0, 101), - [1461] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_with_statement, 6, 0, 103), - [1463] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_statement, 6, 0, 103), - [1465] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 6, 0, 104), - [1467] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 6, 0, 104), - [1469] = {.entry = {.count = 1, .reusable = false}}, SHIFT(834), - [1471] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_keyword_separator, 1, 0, 0), - [1473] = {.entry = {.count = 1, .reusable = false}}, SHIFT(860), - [1475] = {.entry = {.count = 1, .reusable = false}}, SHIFT(139), - [1477] = {.entry = {.count = 1, .reusable = false}}, SHIFT(632), - [1479] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_concatenated_string, 2, 0, 0), - [1481] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_concatenated_string, 2, 0, 0), - [1483] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_concatenated_template_string, 2, 0, 0), - [1485] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_concatenated_template_string, 2, 0, 0), - [1487] = {.entry = {.count = 1, .reusable = false}}, SHIFT(659), - [1489] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_concatenated_string_repeat1, 2, 0, 0), - [1491] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_concatenated_string_repeat1, 2, 0, 0), - [1493] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concatenated_string_repeat1, 2, 0, 0), SHIFT_REPEAT(1044), - [1496] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_concatenated_template_string_repeat1, 2, 0, 0), - [1498] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_concatenated_template_string_repeat1, 2, 0, 0), - [1500] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concatenated_template_string_repeat1, 2, 0, 0), SHIFT_REPEAT(1045), - [1503] = {.entry = {.count = 1, .reusable = false}}, SHIFT(645), - [1505] = {.entry = {.count = 1, .reusable = false}}, SHIFT(656), - [1507] = {.entry = {.count = 1, .reusable = false}}, SHIFT(674), - [1509] = {.entry = {.count = 1, .reusable = false}}, SHIFT(691), - [1511] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1000), - [1513] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1001), - [1515] = {.entry = {.count = 1, .reusable = false}}, SHIFT(239), - [1517] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string, 2, 0, 2), - [1519] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string, 2, 0, 2), - [1521] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_string, 2, 0, 2), - [1523] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_string, 2, 0, 2), - [1525] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string, 3, 0, 20), - [1527] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string, 3, 0, 20), - [1529] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_string, 3, 0, 20), - [1531] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_string, 3, 0, 20), - [1533] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 2, 0, 0), - [1535] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 2, 0, 0), - [1537] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 3, 0, 31), - [1539] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 3, 0, 31), - [1541] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 5, 0, 61), - [1543] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 5, 0, 61), - [1545] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 3, 0, 67), - [1547] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 3, 0, 67), - [1549] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 5, 0, 93), - [1551] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 5, 0, 93), - [1553] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple, 3, 0, 25), - [1555] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple, 3, 0, 25), - [1557] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 3, 0, 25), - [1559] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list, 3, 0, 25), - [1561] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary, 3, 0, 0), - [1563] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dictionary, 3, 0, 0), - [1565] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary, 3, 0, 31), - [1567] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dictionary, 3, 0, 31), - [1569] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_set, 3, 0, 25), - [1571] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_set, 3, 0, 25), - [1573] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_expression, 3, 0, 26), - [1575] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesized_expression, 3, 0, 26), - [1577] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 4, 0, 61), - [1579] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 4, 0, 61), - [1581] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary, 5, 0, 61), - [1583] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dictionary, 5, 0, 61), - [1585] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary, 2, 0, 0), - [1587] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dictionary, 2, 0, 0), - [1589] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 4, 0, 31), - [1591] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 4, 0, 31), - [1593] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1651), - [1595] = {.entry = {.count = 1, .reusable = true}}, SHIFT(182), - [1597] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression, 1, 0, 0), - [1599] = {.entry = {.count = 1, .reusable = false}}, SHIFT(663), - [1601] = {.entry = {.count = 1, .reusable = true}}, SHIFT(664), - [1603] = {.entry = {.count = 1, .reusable = true}}, SHIFT(665), - [1605] = {.entry = {.count = 1, .reusable = true}}, SHIFT(666), - [1607] = {.entry = {.count = 1, .reusable = true}}, SHIFT(667), - [1609] = {.entry = {.count = 1, .reusable = true}}, SHIFT(232), - [1611] = {.entry = {.count = 1, .reusable = true}}, SHIFT(668), - [1613] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression, 1, 0, 0), - [1615] = {.entry = {.count = 1, .reusable = true}}, SHIFT(663), - [1617] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1700), - [1619] = {.entry = {.count = 1, .reusable = true}}, SHIFT(669), - [1621] = {.entry = {.count = 1, .reusable = true}}, SHIFT(670), - [1623] = {.entry = {.count = 1, .reusable = false}}, SHIFT(665), - [1625] = {.entry = {.count = 1, .reusable = true}}, SHIFT(625), - [1627] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 4, 0, 67), - [1629] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 4, 0, 67), - [1631] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_generator_expression, 4, 0, 51), - [1633] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_generator_expression, 4, 0, 51), - [1635] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 3, 0, 0), - [1637] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 3, 0, 0), - [1639] = {.entry = {.count = 1, .reusable = false}}, SHIFT(628), - [1641] = {.entry = {.count = 1, .reusable = true}}, SHIFT(629), - [1643] = {.entry = {.count = 1, .reusable = true}}, SHIFT(630), - [1645] = {.entry = {.count = 1, .reusable = true}}, SHIFT(654), - [1647] = {.entry = {.count = 1, .reusable = true}}, SHIFT(660), - [1649] = {.entry = {.count = 1, .reusable = true}}, SHIFT(671), - [1651] = {.entry = {.count = 1, .reusable = true}}, SHIFT(628), - [1653] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1634), - [1655] = {.entry = {.count = 1, .reusable = true}}, SHIFT(689), - [1657] = {.entry = {.count = 1, .reusable = true}}, SHIFT(650), - [1659] = {.entry = {.count = 1, .reusable = false}}, SHIFT(630), - [1661] = {.entry = {.count = 1, .reusable = true}}, SHIFT(615), - [1663] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_comprehension, 4, 0, 51), - [1665] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list_comprehension, 4, 0, 51), - [1667] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary, 4, 0, 31), - [1669] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dictionary, 4, 0, 31), - [1671] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary, 4, 0, 61), - [1673] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dictionary, 4, 0, 61), - [1675] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_set_comprehension, 4, 0, 51), - [1677] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_set_comprehension, 4, 0, 51), - [1679] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary_comprehension, 4, 0, 51), - [1681] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dictionary_comprehension, 4, 0, 51), - [1683] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 4, 0, 93), - [1685] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 4, 0, 93), - [1687] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_call, 2, 0, 17), - [1689] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_call, 2, 0, 17), - [1691] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_operator, 3, 0, 39), - [1693] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_operator, 3, 0, 39), - [1695] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_await, 2, 0, 0), - [1697] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_await, 2, 0, 0), - [1699] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 41), - [1701] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 41), - [1703] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concatenated_string_repeat1, 2, 0, 0), SHIFT_REPEAT(1050), - [1706] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concatenated_template_string_repeat1, 2, 0, 0), SHIFT_REPEAT(1051), - [1709] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 3, 0, 71), - [1711] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 3, 0, 71), - [1713] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 3, 0, 72), - [1715] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 3, 0, 72), - [1717] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_operator, 2, 0, 13), - [1719] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_operator, 2, 0, 13), - [1721] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concatenated_template_string_repeat1, 2, 0, 0), SHIFT_REPEAT(1056), - [1724] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1605), - [1726] = {.entry = {.count = 1, .reusable = true}}, SHIFT(188), - [1728] = {.entry = {.count = 1, .reusable = false}}, SHIFT(646), - [1730] = {.entry = {.count = 1, .reusable = true}}, SHIFT(647), - [1732] = {.entry = {.count = 1, .reusable = true}}, SHIFT(648), - [1734] = {.entry = {.count = 1, .reusable = true}}, SHIFT(649), - [1736] = {.entry = {.count = 1, .reusable = true}}, SHIFT(694), - [1738] = {.entry = {.count = 1, .reusable = true}}, SHIFT(241), - [1740] = {.entry = {.count = 1, .reusable = true}}, SHIFT(651), - [1742] = {.entry = {.count = 1, .reusable = true}}, SHIFT(646), - [1744] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1720), - [1746] = {.entry = {.count = 1, .reusable = true}}, SHIFT(652), - [1748] = {.entry = {.count = 1, .reusable = true}}, SHIFT(653), - [1750] = {.entry = {.count = 1, .reusable = false}}, SHIFT(648), - [1752] = {.entry = {.count = 1, .reusable = true}}, SHIFT(623), - [1754] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concatenated_string_repeat1, 2, 0, 0), SHIFT_REPEAT(1059), - [1757] = {.entry = {.count = 1, .reusable = false}}, SHIFT(681), - [1759] = {.entry = {.count = 1, .reusable = true}}, SHIFT(682), - [1761] = {.entry = {.count = 1, .reusable = true}}, SHIFT(683), - [1763] = {.entry = {.count = 1, .reusable = true}}, SHIFT(684), - [1765] = {.entry = {.count = 1, .reusable = true}}, SHIFT(685), - [1767] = {.entry = {.count = 1, .reusable = true}}, SHIFT(686), - [1769] = {.entry = {.count = 1, .reusable = true}}, SHIFT(681), - [1771] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1674), - [1773] = {.entry = {.count = 1, .reusable = true}}, SHIFT(687), - [1775] = {.entry = {.count = 1, .reusable = true}}, SHIFT(688), - [1777] = {.entry = {.count = 1, .reusable = false}}, SHIFT(683), - [1779] = {.entry = {.count = 1, .reusable = true}}, SHIFT(626), - [1781] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concatenated_string_repeat1, 2, 0, 0), SHIFT_REPEAT(1035), - [1784] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concatenated_template_string_repeat1, 2, 0, 0), SHIFT_REPEAT(1037), - [1787] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1632), - [1789] = {.entry = {.count = 1, .reusable = true}}, SHIFT(176), - [1791] = {.entry = {.count = 1, .reusable = false}}, SHIFT(635), - [1793] = {.entry = {.count = 1, .reusable = true}}, SHIFT(636), - [1795] = {.entry = {.count = 1, .reusable = true}}, SHIFT(661), - [1797] = {.entry = {.count = 1, .reusable = true}}, SHIFT(672), - [1799] = {.entry = {.count = 1, .reusable = true}}, SHIFT(680), - [1801] = {.entry = {.count = 1, .reusable = true}}, SHIFT(238), - [1803] = {.entry = {.count = 1, .reusable = true}}, SHIFT(693), - [1805] = {.entry = {.count = 1, .reusable = true}}, SHIFT(635), - [1807] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1671), - [1809] = {.entry = {.count = 1, .reusable = true}}, SHIFT(633), - [1811] = {.entry = {.count = 1, .reusable = true}}, SHIFT(634), - [1813] = {.entry = {.count = 1, .reusable = false}}, SHIFT(661), - [1815] = {.entry = {.count = 1, .reusable = true}}, SHIFT(618), - [1817] = {.entry = {.count = 1, .reusable = true}}, SHIFT(364), - [1819] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1695), - [1821] = {.entry = {.count = 1, .reusable = true}}, SHIFT(187), - [1823] = {.entry = {.count = 1, .reusable = false}}, SHIFT(637), - [1825] = {.entry = {.count = 1, .reusable = true}}, SHIFT(638), - [1827] = {.entry = {.count = 1, .reusable = true}}, SHIFT(639), - [1829] = {.entry = {.count = 1, .reusable = true}}, SHIFT(640), - [1831] = {.entry = {.count = 1, .reusable = true}}, SHIFT(641), - [1833] = {.entry = {.count = 1, .reusable = true}}, SHIFT(240), - [1835] = {.entry = {.count = 1, .reusable = true}}, SHIFT(642), - [1837] = {.entry = {.count = 1, .reusable = true}}, SHIFT(637), - [1839] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1612), - [1841] = {.entry = {.count = 1, .reusable = true}}, SHIFT(643), - [1843] = {.entry = {.count = 1, .reusable = true}}, SHIFT(644), - [1845] = {.entry = {.count = 1, .reusable = false}}, SHIFT(639), - [1847] = {.entry = {.count = 1, .reusable = true}}, SHIFT(622), - [1849] = {.entry = {.count = 1, .reusable = true}}, SHIFT(410), - [1851] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1038), - [1853] = {.entry = {.count = 1, .reusable = true}}, SHIFT(932), - [1855] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1374), - [1857] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_open_sequence_match_pattern, 2, 0, 0), - [1859] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_open_sequence_match_pattern, 2, 0, 0), - [1861] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1559), - [1863] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1142), - [1865] = {.entry = {.count = 1, .reusable = true}}, SHIFT(933), - [1867] = {.entry = {.count = 1, .reusable = true}}, SHIFT(994), - [1869] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1072), - [1871] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1072), - [1873] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1140), - [1875] = {.entry = {.count = 1, .reusable = false}}, SHIFT(373), - [1877] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_open_sequence_match_pattern, 3, 0, 0), - [1879] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_open_sequence_match_pattern, 3, 0, 0), - [1881] = {.entry = {.count = 1, .reusable = false}}, SHIFT(394), - [1883] = {.entry = {.count = 1, .reusable = true}}, SHIFT(381), - [1885] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1114), - [1887] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1154), - [1889] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1120), - [1891] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1139), - [1893] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1127), - [1895] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1119), - [1897] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1110), - [1899] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1116), - [1901] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1091), - [1903] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 42), - [1905] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 42), SHIFT_REPEAT(665), - [1908] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 42), - [1910] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 42), SHIFT_REPEAT(1700), - [1913] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 42), SHIFT_REPEAT(665), - [1916] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 42), SHIFT_REPEAT(625), - [1919] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 42), SHIFT_REPEAT(630), - [1922] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 42), SHIFT_REPEAT(1634), - [1925] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 42), SHIFT_REPEAT(630), - [1928] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 42), SHIFT_REPEAT(615), - [1931] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comparison_operator, 2, 0, 18), - [1933] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_comparison_operator, 2, 0, 18), - [1935] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__patterns_repeat1, 2, 0, 36), - [1937] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__patterns_repeat1, 2, 0, 36), SHIFT_REPEAT(612), - [1940] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1562), - [1942] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1161), - [1944] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1561), - [1946] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 42), SHIFT_REPEAT(648), - [1949] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 42), SHIFT_REPEAT(1720), - [1952] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 42), SHIFT_REPEAT(648), - [1955] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 42), SHIFT_REPEAT(623), - [1958] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1137), - [1960] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_pattern, 3, 0, 25), - [1962] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary_splat_pattern, 2, 0, 34), - [1964] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 42), SHIFT_REPEAT(661), - [1967] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 42), SHIFT_REPEAT(1671), - [1970] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 42), SHIFT_REPEAT(661), - [1973] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 42), SHIFT_REPEAT(618), - [1976] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple_pattern, 3, 0, 25), - [1978] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__patterns_repeat1, 2, 0, 31), - [1980] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 42), SHIFT_REPEAT(683), - [1983] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 42), SHIFT_REPEAT(1674), - [1986] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 42), SHIFT_REPEAT(683), - [1989] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 42), SHIFT_REPEAT(626), - [1992] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1115), - [1994] = {.entry = {.count = 1, .reusable = true}}, SHIFT(158), - [1996] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern_list, 2, 0, 16), - [1998] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 42), SHIFT_REPEAT(639), - [2001] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 42), SHIFT_REPEAT(1612), - [2004] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 42), SHIFT_REPEAT(639), - [2007] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 42), SHIFT_REPEAT(622), - [2010] = {.entry = {.count = 1, .reusable = true}}, SHIFT(156), - [2012] = {.entry = {.count = 1, .reusable = true}}, SHIFT(272), - [2014] = {.entry = {.count = 1, .reusable = true}}, SHIFT(155), - [2016] = {.entry = {.count = 1, .reusable = true}}, SHIFT(153), - [2018] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1479), - [2020] = {.entry = {.count = 1, .reusable = true}}, SHIFT(478), - [2022] = {.entry = {.count = 1, .reusable = false}}, SHIFT(614), - [2024] = {.entry = {.count = 1, .reusable = true}}, SHIFT(361), - [2026] = {.entry = {.count = 1, .reusable = true}}, SHIFT(678), - [2028] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1465), - [2030] = {.entry = {.count = 1, .reusable = true}}, SHIFT(415), - [2032] = {.entry = {.count = 1, .reusable = true}}, SHIFT(368), - [2034] = {.entry = {.count = 1, .reusable = true}}, SHIFT(379), - [2036] = {.entry = {.count = 1, .reusable = true}}, SHIFT(409), - [2038] = {.entry = {.count = 1, .reusable = true}}, SHIFT(292), - [2040] = {.entry = {.count = 1, .reusable = true}}, SHIFT(393), - [2042] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1342), - [2044] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1547), - [2046] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__parameters, 3, 0, 0), - [2048] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__parameters, 2, 0, 0), - [2050] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_not_operator, 2, 0, 10), - [2052] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_not_operator, 2, 0, 10), - [2054] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_match_value_pattern_repeat1, 2, 0, 0), - [2056] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_match_value_pattern_repeat1, 2, 0, 0), SHIFT_REPEAT(1667), - [2059] = {.entry = {.count = 1, .reusable = false}}, SHIFT(181), - [2061] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1147), - [2063] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1147), - [2065] = {.entry = {.count = 1, .reusable = false}}, SHIFT_EXTRA(), - [2067] = {.entry = {.count = 1, .reusable = true}}, SHIFT(841), - [2069] = {.entry = {.count = 1, .reusable = true}}, SHIFT(175), - [2071] = {.entry = {.count = 1, .reusable = true}}, SHIFT(421), - [2073] = {.entry = {.count = 1, .reusable = true}}, SHIFT(348), - [2075] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1595), - [2077] = {.entry = {.count = 1, .reusable = true}}, SHIFT(497), - [2079] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__collection_elements, 1, 0, 7), - [2081] = {.entry = {.count = 1, .reusable = true}}, SHIFT(411), - [2083] = {.entry = {.count = 1, .reusable = true}}, SHIFT(412), - [2085] = {.entry = {.count = 1, .reusable = true}}, SHIFT(847), - [2087] = {.entry = {.count = 1, .reusable = true}}, SHIFT(830), - [2089] = {.entry = {.count = 1, .reusable = true}}, SHIFT(827), - [2091] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1667), - [2093] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern_class_name, 1, 0, 0), - [2095] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_capture_pattern, 1, 0, 0), - [2097] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_literal_pattern, 1, 0, 0), - [2099] = {.entry = {.count = 1, .reusable = true}}, SHIFT(946), - [2101] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_with_item, 1, -1, 12), SHIFT(175), - [2104] = {.entry = {.count = 1, .reusable = false}}, SHIFT(551), - [2106] = {.entry = {.count = 1, .reusable = true}}, SHIFT(404), - [2108] = {.entry = {.count = 1, .reusable = true}}, SHIFT(369), - [2110] = {.entry = {.count = 1, .reusable = true}}, SHIFT(374), - [2112] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern_class_name, 2, 0, 0), - [2114] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_value_pattern, 2, 0, 0), - [2116] = {.entry = {.count = 1, .reusable = true}}, SHIFT(861), - [2118] = {.entry = {.count = 1, .reusable = true}}, SHIFT(695), - [2120] = {.entry = {.count = 1, .reusable = true}}, SHIFT(696), - [2122] = {.entry = {.count = 1, .reusable = true}}, SHIFT(697), - [2124] = {.entry = {.count = 1, .reusable = true}}, SHIFT(698), - [2126] = {.entry = {.count = 1, .reusable = true}}, SHIFT(806), - [2128] = {.entry = {.count = 1, .reusable = true}}, SHIFT(807), - [2130] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_string_repeat1, 2, 0, 21), SHIFT_REPEAT(181), - [2133] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_string_repeat1, 2, 0, 21), SHIFT_REPEAT(1147), - [2136] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_string_repeat1, 2, 0, 21), SHIFT_REPEAT(1147), - [2139] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_string_repeat1, 2, 0, 21), - [2141] = {.entry = {.count = 1, .reusable = true}}, SHIFT(808), - [2143] = {.entry = {.count = 1, .reusable = true}}, SHIFT(809), - [2145] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1470), - [2147] = {.entry = {.count = 1, .reusable = true}}, SHIFT(859), - [2149] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1404), - [2151] = {.entry = {.count = 1, .reusable = true}}, SHIFT(851), - [2153] = {.entry = {.count = 1, .reusable = true}}, SHIFT(850), - [2155] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_named_expression, 3, 0, 35), - [2157] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_named_expression, 3, 0, 35), - [2159] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_boolean_operator, 3, 0, 39), - [2161] = {.entry = {.count = 1, .reusable = true}}, SHIFT(426), - [2163] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_lambda, 3, 0, 32), - [2165] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_lambda, 3, 0, 32), - [2167] = {.entry = {.count = 1, .reusable = true}}, SHIFT(427), - [2169] = {.entry = {.count = 1, .reusable = true}}, SHIFT(710), - [2171] = {.entry = {.count = 1, .reusable = true}}, SHIFT(700), - [2173] = {.entry = {.count = 1, .reusable = true}}, SHIFT(195), - [2175] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_boolean_operator, 3, 0, 39), - [2177] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_lambda, 4, 0, 66), - [2179] = {.entry = {.count = 1, .reusable = true}}, SHIFT(417), - [2181] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_conditional_expression, 5, 0, 0), - [2183] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_literal_pattern, 1, 0, 83), - [2185] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1566), - [2187] = {.entry = {.count = 1, .reusable = true}}, SHIFT(868), - [2189] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_lambda, 4, 0, 66), - [2191] = {.entry = {.count = 1, .reusable = true}}, SHIFT(983), - [2193] = {.entry = {.count = 1, .reusable = true}}, SHIFT(212), - [2195] = {.entry = {.count = 1, .reusable = true}}, SHIFT(930), - [2197] = {.entry = {.count = 1, .reusable = true}}, SHIFT(202), - [2199] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_named_expression, 3, 0, 27), - [2201] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_literal_pattern, 2, 0, 107), - [2203] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1574), - [2205] = {.entry = {.count = 1, .reusable = true}}, SHIFT(888), - [2207] = {.entry = {.count = 1, .reusable = true}}, SHIFT(221), - [2209] = {.entry = {.count = 1, .reusable = true}}, SHIFT(901), - [2211] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_conditional_expression, 5, 0, 0), - [2213] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_named_expression, 3, 0, 27), - [2215] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression_within_for_in_clause, 1, 0, 0), - [2217] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_or_pattern, 3, 0, 0), - [2219] = {.entry = {.count = 1, .reusable = true}}, SHIFT(987), - [2221] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__comprehension_clauses_repeat1, 2, 0, 0), - [2223] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__comprehension_clauses_repeat1, 2, 0, 0), SHIFT_REPEAT(346), - [2226] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__comprehension_clauses_repeat1, 2, 0, 0), SHIFT_REPEAT(1595), - [2229] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__comprehension_clauses_repeat1, 2, 0, 0), SHIFT_REPEAT(497), - [2232] = {.entry = {.count = 1, .reusable = true}}, SHIFT(178), - [2234] = {.entry = {.count = 1, .reusable = true}}, SHIFT(422), - [2236] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_yield, 2, 0, 0), - [2238] = {.entry = {.count = 1, .reusable = true}}, SHIFT(395), - [2240] = {.entry = {.count = 1, .reusable = true}}, SHIFT(396), - [2242] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__f_expression, 1, 0, 0), - [2244] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_splat, 2, 0, 0), - [2246] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_match_or_pattern_repeat1, 2, 0, 0), - [2248] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_match_or_pattern_repeat1, 2, 0, 0), SHIFT_REPEAT(987), - [2251] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comprehension_clauses, 2, 0, 0), - [2253] = {.entry = {.count = 1, .reusable = true}}, SHIFT(346), - [2255] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comprehension_clauses, 1, 0, 0), - [2257] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_or_pattern, 4, 0, 0), - [2259] = {.entry = {.count = 1, .reusable = true}}, SHIFT(350), - [2261] = {.entry = {.count = 1, .reusable = true}}, SHIFT(351), - [2263] = {.entry = {.count = 1, .reusable = true}}, SHIFT(353), - [2265] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_class_pattern, 3, 0, 136), - [2267] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_in_clause, 4, 0, 98), - [2269] = {.entry = {.count = 1, .reusable = true}}, SHIFT(192), - [2271] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1717), - [2273] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1713), - [2275] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1691), - [2277] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_sequence_pattern, 5, 0, 0), - [2279] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_mapping_pattern, 5, 0, 0), - [2281] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_expression_list_repeat1, 2, 0, 31), - [2283] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1685), - [2285] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1619), - [2287] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1629), - [2289] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_class_pattern, 5, 0, 136), - [2291] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_sequence_pattern, 4, 0, 0), - [2293] = {.entry = {.count = 1, .reusable = true}}, SHIFT(355), - [2295] = {.entry = {.count = 1, .reusable = true}}, SHIFT(191), - [2297] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_raise_statement, 2, 0, 0), - [2299] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_literal_pattern, 4, 0, 149), - [2301] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary_splat, 2, 0, 14), - [2303] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_mapping_pattern, 6, 0, 0), - [2305] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_class_pattern, 6, 0, 136), - [2307] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_in_clause, 5, 0, 122), - [2309] = {.entry = {.count = 1, .reusable = true}}, SHIFT(204), - [2311] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_mapping_pattern, 7, 0, 0), - [2313] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_class_pattern, 7, 0, 136), - [2315] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_class_pattern, 8, 0, 136), - [2317] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_string_content_repeat1, 2, 0, 0), - [2319] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_string_content_repeat1, 2, 0, 0), SHIFT_REPEAT(1133), - [2322] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_string_content_repeat1, 2, 0, 0), SHIFT_REPEAT(1133), - [2325] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_string_content_repeat1, 2, 0, 0), - [2327] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_class_pattern, 9, 0, 136), - [2329] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_in_clause, 5, 0, 123), - [2331] = {.entry = {.count = 1, .reusable = true}}, SHIFT(205), - [2333] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_mapping_pattern, 4, 0, 0), - [2335] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_literal_pattern, 3, 0, 132), - [2337] = {.entry = {.count = 1, .reusable = true}}, SHIFT(986), - [2339] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__match_or_pattern, 1, 0, 0), - [2341] = {.entry = {.count = 1, .reusable = true}}, SHIFT(988), - [2343] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_class_pattern, 4, 0, 136), - [2345] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_in_clause, 6, 0, 141), - [2347] = {.entry = {.count = 1, .reusable = true}}, SHIFT(190), - [2349] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string_content, 1, 0, 0), - [2351] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1133), - [2353] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1133), - [2355] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string_content, 1, 0, 0), - [2357] = {.entry = {.count = 1, .reusable = true}}, SHIFT(170), - [2359] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_sequence_pattern, 2, 0, 0), - [2361] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_clause, 2, 0, 0), - [2363] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_mapping_pattern, 3, 0, 0), - [2365] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_group_pattern, 3, 0, 131), - [2367] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_mapping_pattern, 2, 0, 0), - [2369] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_for_in_clause_repeat1, 2, 0, 0), - [2371] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_for_in_clause_repeat1, 2, 0, 0), SHIFT_REPEAT(297), - [2374] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_sequence_pattern, 3, 0, 0), - [2376] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1219), - [2378] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1312), - [2380] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1528), - [2382] = {.entry = {.count = 1, .reusable = true}}, SHIFT(259), - [2384] = {.entry = {.count = 1, .reusable = true}}, SHIFT(708), - [2386] = {.entry = {.count = 1, .reusable = true}}, SHIFT(281), - [2388] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1606), - [2390] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type, 1, 0, 0), - [2392] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__collection_elements_repeat1, 2, 0, 31), - [2394] = {.entry = {.count = 1, .reusable = true}}, SHIFT(289), - [2396] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_print_statement, 2, 0, 10), - [2398] = {.entry = {.count = 1, .reusable = true}}, SHIFT(432), - [2400] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assert_statement, 2, 0, 0), - [2402] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_lambda_within_for_in_clause, 4, 0, 66), - [2404] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_return_statement, 2, 0, 0), - [2406] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_delete_statement, 2, 0, 11), - [2408] = {.entry = {.count = 1, .reusable = true}}, SHIFT(273), - [2410] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1588), - [2412] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1220), - [2414] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1696), - [2416] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1659), - [2418] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_yield, 3, 0, 0), - [2420] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__match_pattern, 1, 0, 0), - [2422] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1703), - [2424] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_statement, 1, 0, 0), - [2426] = {.entry = {.count = 1, .reusable = true}}, SHIFT(430), - [2428] = {.entry = {.count = 1, .reusable = true}}, SHIFT(397), - [2430] = {.entry = {.count = 1, .reusable = true}}, SHIFT(419), - [2432] = {.entry = {.count = 1, .reusable = true}}, SHIFT(120), - [2434] = {.entry = {.count = 1, .reusable = true}}, SHIFT(382), - [2436] = {.entry = {.count = 1, .reusable = true}}, SHIFT(386), - [2438] = {.entry = {.count = 1, .reusable = true}}, SHIFT(252), - [2440] = {.entry = {.count = 1, .reusable = true}}, SHIFT(968), - [2442] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_exec_statement, 4, 0, 15), - [2444] = {.entry = {.count = 1, .reusable = true}}, SHIFT(256), - [2446] = {.entry = {.count = 1, .reusable = true}}, SHIFT(874), - [2448] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_item, 1, -1, 12), - [2450] = {.entry = {.count = 1, .reusable = true}}, SHIFT(551), - [2452] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1216), - [2454] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1336), - [2456] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1664), - [2458] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_lambda_within_for_in_clause, 3, 0, 32), - [2460] = {.entry = {.count = 1, .reusable = true}}, SHIFT(433), - [2462] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102), - [2464] = {.entry = {.count = 1, .reusable = true}}, SHIFT(434), - [2466] = {.entry = {.count = 1, .reusable = true}}, SHIFT(112), - [2468] = {.entry = {.count = 1, .reusable = true}}, SHIFT(402), - [2470] = {.entry = {.count = 1, .reusable = true}}, SHIFT(106), - [2472] = {.entry = {.count = 1, .reusable = true}}, SHIFT(255), - [2474] = {.entry = {.count = 1, .reusable = true}}, SHIFT(902), - [2476] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__right_hand_side, 1, 0, 0), - [2478] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pair, 3, 0, 62), - [2480] = {.entry = {.count = 1, .reusable = true}}, SHIFT(180), - [2482] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_list, 2, 0, 16), - [2484] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dotted_name, 1, 0, 0), - [2486] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_interpolation, 6, 0, 43), - [2488] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interpolation, 6, 0, 43), - [2490] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_interpolation, 5, 0, 43), - [2492] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interpolation, 5, 0, 43), - [2494] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1698), - [2496] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typevar_parameter, 1, 0, 6), - [2498] = {.entry = {.count = 1, .reusable = true}}, SHIFT(425), - [2500] = {.entry = {.count = 1, .reusable = true}}, SHIFT(298), - [2502] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_expression_list_repeat1, 2, 0, 36), SHIFT_REPEAT(251), - [2505] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_expression_list_repeat1, 2, 0, 36), - [2507] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_expression_list_repeat1, 2, 0, 36), SHIFT_REPEAT(263), - [2510] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_interpolation, 3, 0, 43), - [2512] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interpolation, 3, 0, 43), - [2514] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_print_statement_repeat1, 2, 0, 10), - [2516] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_chevron, 2, 0, 0), - [2518] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assert_statement_repeat1, 2, 0, 0), - [2520] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_default_parameter, 3, 0, 35), - [2522] = {.entry = {.count = 1, .reusable = true}}, SHIFT(171), - [2524] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1298), - [2526] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typed_default_parameter, 5, 0, 119), - [2528] = {.entry = {.count = 1, .reusable = true}}, SHIFT(172), - [2530] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dotted_name, 2, 0, 0), - [2532] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_match_value_pattern_repeat1, 2, 0, 0), SHIFT_REPEAT(1698), - [2535] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), - [2537] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), - [2539] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), - [2541] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type_bound, 2, 0, 109), - [2543] = {.entry = {.count = 1, .reusable = true}}, SHIFT(126), - [2545] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_open_sequence_match_pattern_repeat1, 2, 0, 0), - [2547] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_open_sequence_match_pattern_repeat1, 2, 0, 0), SHIFT_REPEAT(979), - [2550] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_exception_list_repeat1, 2, 0, 31), - [2552] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_as_pattern, 3, 0, 135), - [2554] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_string_repeat1, 1, 0, 4), - [2556] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_string_repeat1, 1, 0, 4), - [2558] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__index_expression, 1, 0, 0), - [2560] = {.entry = {.count = 1, .reusable = true}}, SHIFT(269), - [2562] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 3, 0, 95), - [2564] = {.entry = {.count = 1, .reusable = true}}, SHIFT(306), - [2566] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_decorated_definition_repeat1, 2, 0, 0), - [2568] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_decorated_definition_repeat1, 2, 0, 0), SHIFT_REPEAT(342), - [2571] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 2, 0, 68), - [2573] = {.entry = {.count = 1, .reusable = true}}, SHIFT(296), - [2575] = {.entry = {.count = 1, .reusable = true}}, SHIFT(179), - [2577] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_string_repeat1, 1, 0, 3), - [2579] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_string_repeat1, 1, 0, 3), - [2581] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_interpolation, 4, 0, 43), - [2583] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interpolation, 4, 0, 43), - [2585] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1305), - [2587] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__import_list, 2, 0, 6), - [2589] = {.entry = {.count = 1, .reusable = true}}, SHIFT(177), - [2591] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), - [2593] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1206), - [2595] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__collection_elements, 2, 0, 16), - [2597] = {.entry = {.count = 1, .reusable = true}}, SHIFT(185), - [2599] = {.entry = {.count = 1, .reusable = true}}, SHIFT(193), - [2601] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_argument_list_repeat1, 2, 0, 31), - [2603] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_keyword_argument, 3, 0, 27), - [2605] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_star_pattern, 2, 0, 11), - [2607] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type_param_default, 2, 0, 110), - [2609] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1380), - [2611] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1310), - [2613] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1283), - [2615] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1419), - [2617] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 4, 0, 120), - [2619] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 4, 0, 121), - [2621] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_raise_statement, 3, 0, 30), - [2623] = {.entry = {.count = 1, .reusable = true}}, SHIFT(186), - [2625] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__import_list, 3, 0, 22), - [2627] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1311), - [2629] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_keyword_argument, 3, 0, 35), - [2631] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 3, 0, 94), - [2633] = {.entry = {.count = 1, .reusable = true}}, SHIFT(220), - [2635] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_raise_statement, 4, 0, 53), - [2637] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_expression_list_repeat1, 2, 0, 36), SHIFT_REPEAT(250), - [2640] = {.entry = {.count = 1, .reusable = true}}, SHIFT(113), - [2642] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_format_specifier, 1, 0, 0), - [2644] = {.entry = {.count = 1, .reusable = true}}, SHIFT(173), - [2646] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1288), - [2648] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_format_specifier_repeat1, 2, 0, 0), - [2650] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_format_specifier_repeat1, 2, 0, 0), SHIFT_REPEAT(173), - [2653] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_format_specifier_repeat1, 2, 0, 0), SHIFT_REPEAT(1284), - [2656] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_alias_statement, 5, 0, 88), - [2658] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__collection_elements_repeat1, 2, 0, 36), - [2660] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__collection_elements_repeat1, 2, 0, 36), SHIFT_REPEAT(242), - [2663] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1223), - [2665] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1302), - [2667] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1458), - [2669] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_format_specifier, 2, 0, 0), - [2671] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1284), - [2673] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1255), - [2675] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1636), - [2677] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__import_list, 1, 0, 6), - [2679] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 5, 0, 140), - [2681] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_alias_statement, 4, 0, 63), - [2683] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__patterns, 2, 0, 16), - [2685] = {.entry = {.count = 1, .reusable = true}}, SHIFT(461), - [2687] = {.entry = {.count = 1, .reusable = true}}, SHIFT(854), - [2689] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114), - [2691] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_guard, 2, 0, 133), - [2693] = {.entry = {.count = 1, .reusable = true}}, SHIFT(371), - [2695] = {.entry = {.count = 1, .reusable = true}}, SHIFT(856), - [2697] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1638), - [2699] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_nonlocal_statement, 2, 0, 0), - [2701] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decorator, 3, 0, 0), - [2703] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1022), - [2705] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1253), - [2707] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1494), - [2709] = {.entry = {.count = 1, .reusable = true}}, SHIFT(129), - [2711] = {.entry = {.count = 1, .reusable = true}}, SHIFT(862), - [2713] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__import_list_repeat1, 2, 0, 23), - [2715] = {.entry = {.count = 1, .reusable = true}}, SHIFT(389), - [2717] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__import_list_repeat1, 2, 0, 44), SHIFT_REPEAT(1499), - [2720] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__import_list_repeat1, 2, 0, 44), - [2722] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1455), - [2724] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1457), - [2726] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1216), - [2728] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_list_splat, 3, 0, 0), - [2730] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_list_splat, 3, 0, 49), - [2732] = {.entry = {.count = 1, .reusable = true}}, SHIFT(300), - [2734] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_print_statement, 2, 0, 0), - [2736] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_print_statement_repeat1, 2, 0, 52), SHIFT_REPEAT(339), - [2739] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_print_statement_repeat1, 2, 0, 52), - [2741] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assert_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(432), - [2744] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), - [2746] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1300), - [2748] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_with_clause_repeat1, 2, 0, 0), - [2750] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_with_clause_repeat1, 2, 0, 0), SHIFT_REPEAT(315), - [2753] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_statement, 2, 0, 0), - [2755] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typevar_parameter, 2, 0, 84), - [2757] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1367), - [2759] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1681), - [2761] = {.entry = {.count = 1, .reusable = true}}, SHIFT(345), - [2763] = {.entry = {.count = 1, .reusable = true}}, SHIFT(132), - [2765] = {.entry = {.count = 1, .reusable = true}}, SHIFT(335), - [2767] = {.entry = {.count = 1, .reusable = true}}, SHIFT(131), - [2769] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), - [2771] = {.entry = {.count = 1, .reusable = true}}, SHIFT(344), - [2773] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_import_prefix, 1, 0, 0), - [2775] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1362), - [2777] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_global_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(1638), - [2780] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_statement_repeat1, 2, 0, 0), - [2782] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_exception_list, 2, 0, 16), - [2784] = {.entry = {.count = 1, .reusable = true}}, SHIFT(388), - [2786] = {.entry = {.count = 1, .reusable = true}}, SHIFT(290), - [2788] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_print_statement, 3, 0, 28), - [2790] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typed_parameter, 3, 0, 65), - [2792] = {.entry = {.count = 1, .reusable = true}}, SHIFT(377), - [2794] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter, 1, 0, 0), - [2796] = {.entry = {.count = 1, .reusable = true}}, SHIFT(277), - [2798] = {.entry = {.count = 1, .reusable = true}}, SHIFT(358), - [2800] = {.entry = {.count = 1, .reusable = true}}, SHIFT(128), - [2802] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_exec_statement, 5, 0, 15), - [2804] = {.entry = {.count = 1, .reusable = true}}, SHIFT(400), - [2806] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), - [2808] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), - [2810] = {.entry = {.count = 1, .reusable = true}}, SHIFT(127), - [2812] = {.entry = {.count = 1, .reusable = true}}, SHIFT(317), - [2814] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), - [2816] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), - [2818] = {.entry = {.count = 1, .reusable = true}}, SHIFT(119), - [2820] = {.entry = {.count = 1, .reusable = true}}, SHIFT(122), - [2822] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1271), - [2824] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__import_list, 2, 0, 22), - [2826] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_statement, 3, 0, 0), - [2828] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_nonlocal_statement, 3, 0, 0), - [2830] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__patterns, 1, 0, 7), - [2832] = {.entry = {.count = 1, .reusable = true}}, SHIFT(467), - [2834] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__simple_statements_repeat1, 2, 0, 0), SHIFT_REPEAT(133), - [2837] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__simple_statements_repeat1, 2, 0, 0), - [2839] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1275), - [2841] = {.entry = {.count = 1, .reusable = true}}, SHIFT(291), - [2843] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_print_statement, 3, 0, 29), - [2845] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), - [2847] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_import_prefix_repeat1, 2, 0, 0), - [2849] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_import_prefix_repeat1, 2, 0, 0), SHIFT_REPEAT(1362), - [2852] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_exception_list_repeat1, 2, 0, 36), SHIFT_REPEAT(430), - [2855] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_exception_list_repeat1, 2, 0, 36), - [2857] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assert_statement, 3, 0, 0), - [2859] = {.entry = {.count = 1, .reusable = true}}, SHIFT(414), - [2861] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typevartuple_parameter, 2, 0, 23), - [2863] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_paramspec_parameter, 2, 0, 23), - [2865] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130), - [2867] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1538), - [2869] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1239), - [2871] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1263), - [2873] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_parameters_repeat1, 2, 0, 113), SHIFT_REPEAT(1182), - [2876] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_parameters_repeat1, 2, 0, 113), - [2878] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1027), - [2880] = {.entry = {.count = 1, .reusable = true}}, SHIFT(236), - [2882] = {.entry = {.count = 1, .reusable = true}}, SHIFT(483), - [2884] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_index_expression_list_repeat1, 2, 0, 36), SHIFT_REPEAT(245), - [2887] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_index_expression_list_repeat1, 2, 0, 36), - [2889] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameters, 3, 0, 86), - [2891] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1143), - [2893] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1405), - [2895] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__import_list_repeat1, 2, 0, 44), SHIFT_REPEAT(1460), - [2898] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1025), + [7] = {.entry = {.count = 1, .reusable = false}}, SHIFT(499), + [9] = {.entry = {.count = 1, .reusable = false}}, SHIFT(453), + [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1357), + [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1213), + [15] = {.entry = {.count = 1, .reusable = true}}, SHIFT(157), + [17] = {.entry = {.count = 1, .reusable = false}}, SHIFT(343), + [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(78), + [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(340), + [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(233), + [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(247), + [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(182), + [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1581), + [31] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1589), + [33] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1603), + [35] = {.entry = {.count = 1, .reusable = false}}, SHIFT(345), + [37] = {.entry = {.count = 1, .reusable = false}}, SHIFT(347), + [39] = {.entry = {.count = 1, .reusable = false}}, SHIFT(501), + [41] = {.entry = {.count = 1, .reusable = false}}, SHIFT(427), + [43] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1683), + [45] = {.entry = {.count = 1, .reusable = false}}, SHIFT(295), + [47] = {.entry = {.count = 1, .reusable = false}}, SHIFT(66), + [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(643), + [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(160), + [53] = {.entry = {.count = 1, .reusable = true}}, SHIFT(165), + [55] = {.entry = {.count = 1, .reusable = true}}, SHIFT(349), + [57] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1699), + [59] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1743), + [61] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1653), + [63] = {.entry = {.count = 1, .reusable = false}}, SHIFT(452), + [65] = {.entry = {.count = 1, .reusable = false}}, SHIFT(469), + [67] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1659), + [69] = {.entry = {.count = 1, .reusable = true}}, SHIFT(386), + [71] = {.entry = {.count = 1, .reusable = false}}, SHIFT(396), + [73] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1027), + [75] = {.entry = {.count = 1, .reusable = false}}, SHIFT(179), + [77] = {.entry = {.count = 1, .reusable = true}}, SHIFT(950), + [79] = {.entry = {.count = 1, .reusable = false}}, SHIFT(950), + [81] = {.entry = {.count = 1, .reusable = false}}, SHIFT(134), + [83] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1044), + [85] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1040), + [87] = {.entry = {.count = 1, .reusable = false}}, SHIFT(424), + [89] = {.entry = {.count = 1, .reusable = false}}, SHIFT(437), + [91] = {.entry = {.count = 1, .reusable = false}}, SHIFT(513), + [93] = {.entry = {.count = 1, .reusable = false}}, SHIFT(425), + [95] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1720), + [97] = {.entry = {.count = 1, .reusable = false}}, SHIFT(305), + [99] = {.entry = {.count = 1, .reusable = false}}, SHIFT(67), + [101] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1745), + [103] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1723), + [105] = {.entry = {.count = 1, .reusable = true}}, SHIFT(325), + [107] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1583), + [109] = {.entry = {.count = 1, .reusable = true}}, SHIFT(311), + [111] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1533), + [113] = {.entry = {.count = 1, .reusable = true}}, SHIFT(334), + [115] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(499), + [118] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(453), + [121] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1357), + [124] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1213), + [127] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(157), + [130] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(343), + [133] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(78), + [136] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(340), + [139] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(233), + [142] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(247), + [145] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(182), + [148] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1581), + [151] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1589), + [154] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1603), + [157] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(424), + [160] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(437), + [163] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(513), + [166] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(425), + [169] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1720), + [172] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(305), + [175] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(67), + [178] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(643), + [181] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(160), + [184] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(165), + [187] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(349), + [190] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1745), + [193] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1743), + [196] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1653), + [199] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(452), + [202] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(469), + [205] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1723), + [208] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(386), + [211] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(396), + [214] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1027), + [217] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(179), + [220] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(950), + [223] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(950), + [226] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(134), + [229] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), + [231] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1044), + [234] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1040), + [237] = {.entry = {.count = 1, .reusable = true}}, SHIFT(333), + [239] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_module, 1, 0, 0), + [241] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(345), + [244] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(347), + [247] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(501), + [250] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(427), + [253] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1683), + [256] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(295), + [259] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(66), + [262] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1699), + [265] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_module_repeat1, 2, 0, 0), SHIFT_REPEAT(1659), + [268] = {.entry = {.count = 1, .reusable = false}}, SHIFT(778), + [270] = {.entry = {.count = 1, .reusable = false}}, SHIFT(774), + [272] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_primary_expression, 1, 0, 1), + [274] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_primary_expression, 1, 0, 1), SHIFT(236), + [277] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_pattern, 1, 0, 1), REDUCE(sym_primary_expression, 1, 0, 1), + [280] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_primary_expression, 1, 0, 1), SHIFT(397), + [283] = {.entry = {.count = 1, .reusable = true}}, SHIFT(346), + [285] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pattern, 1, 0, 1), + [287] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_primary_expression, 1, 0, 1), SHIFT(688), + [290] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_primary_expression, 1, 0, 1), SHIFT(208), + [293] = {.entry = {.count = 1, .reusable = true}}, SHIFT(166), + [295] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_primary_expression, 1, 0, 1), SHIFT(349), + [298] = {.entry = {.count = 2, .reusable = false}}, REDUCE(sym_primary_expression, 1, 0, 1), SHIFT(372), + [301] = {.entry = {.count = 1, .reusable = true}}, SHIFT(688), + [303] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_primary_expression, 1, 0, 1), + [305] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1021), + [307] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern, 1, 0, 1), + [309] = {.entry = {.count = 1, .reusable = true}}, SHIFT(720), + [311] = {.entry = {.count = 1, .reusable = false}}, SHIFT(720), + [313] = {.entry = {.count = 1, .reusable = false}}, SHIFT(136), + [315] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1059), + [317] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1061), + [319] = {.entry = {.count = 1, .reusable = false}}, SHIFT(494), + [321] = {.entry = {.count = 1, .reusable = true}}, SHIFT(616), + [323] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), + [325] = {.entry = {.count = 1, .reusable = true}}, SHIFT(493), + [327] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), + [329] = {.entry = {.count = 1, .reusable = true}}, SHIFT(320), + [331] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32), + [333] = {.entry = {.count = 1, .reusable = true}}, SHIFT(477), + [335] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), + [337] = {.entry = {.count = 1, .reusable = true}}, SHIFT(544), + [339] = {.entry = {.count = 1, .reusable = true}}, SHIFT(33), + [341] = {.entry = {.count = 1, .reusable = true}}, SHIFT(514), + [343] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), + [345] = {.entry = {.count = 1, .reusable = true}}, SHIFT(483), + [347] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), + [349] = {.entry = {.count = 1, .reusable = true}}, SHIFT(551), + [351] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34), + [353] = {.entry = {.count = 1, .reusable = true}}, SHIFT(594), + [355] = {.entry = {.count = 1, .reusable = true}}, SHIFT(20), + [357] = {.entry = {.count = 1, .reusable = true}}, SHIFT(531), + [359] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), + [361] = {.entry = {.count = 1, .reusable = false}}, SHIFT(831), + [363] = {.entry = {.count = 1, .reusable = false}}, SHIFT(835), + [365] = {.entry = {.count = 1, .reusable = false}}, SHIFT(387), + [367] = {.entry = {.count = 1, .reusable = false}}, SHIFT(140), + [369] = {.entry = {.count = 1, .reusable = true}}, SHIFT(561), + [371] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), + [373] = {.entry = {.count = 1, .reusable = true}}, SHIFT(562), + [375] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), + [377] = {.entry = {.count = 1, .reusable = true}}, SHIFT(441), + [379] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), + [381] = {.entry = {.count = 1, .reusable = true}}, SHIFT(568), + [383] = {.entry = {.count = 1, .reusable = true}}, SHIFT(38), + [385] = {.entry = {.count = 1, .reusable = true}}, SHIFT(482), + [387] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39), + [389] = {.entry = {.count = 1, .reusable = true}}, SHIFT(448), + [391] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40), + [393] = {.entry = {.count = 1, .reusable = true}}, SHIFT(570), + [395] = {.entry = {.count = 1, .reusable = true}}, SHIFT(41), + [397] = {.entry = {.count = 1, .reusable = true}}, SHIFT(574), + [399] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), + [401] = {.entry = {.count = 1, .reusable = true}}, SHIFT(511), + [403] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), + [405] = {.entry = {.count = 1, .reusable = true}}, SHIFT(576), + [407] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), + [409] = {.entry = {.count = 1, .reusable = true}}, SHIFT(613), + [411] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23), + [413] = {.entry = {.count = 1, .reusable = true}}, SHIFT(497), + [415] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44), + [417] = {.entry = {.count = 1, .reusable = true}}, SHIFT(485), + [419] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), + [421] = {.entry = {.count = 1, .reusable = true}}, SHIFT(332), + [423] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), + [425] = {.entry = {.count = 1, .reusable = true}}, SHIFT(580), + [427] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), + [429] = {.entry = {.count = 1, .reusable = true}}, SHIFT(611), + [431] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), + [433] = {.entry = {.count = 1, .reusable = true}}, SHIFT(467), + [435] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), + [437] = {.entry = {.count = 1, .reusable = true}}, SHIFT(456), + [439] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), + [441] = {.entry = {.count = 1, .reusable = true}}, SHIFT(475), + [443] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), + [445] = {.entry = {.count = 1, .reusable = true}}, SHIFT(500), + [447] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), + [449] = {.entry = {.count = 1, .reusable = true}}, SHIFT(519), + [451] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), + [453] = {.entry = {.count = 1, .reusable = true}}, SHIFT(536), + [455] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), + [457] = {.entry = {.count = 1, .reusable = true}}, SHIFT(487), + [459] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), + [461] = {.entry = {.count = 1, .reusable = true}}, SHIFT(539), + [463] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), + [465] = {.entry = {.count = 1, .reusable = true}}, SHIFT(457), + [467] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26), + [469] = {.entry = {.count = 1, .reusable = true}}, SHIFT(590), + [471] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), + [473] = {.entry = {.count = 1, .reusable = true}}, SHIFT(458), + [475] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), + [477] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1216), + [479] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3), + [481] = {.entry = {.count = 1, .reusable = true}}, SHIFT(498), + [483] = {.entry = {.count = 1, .reusable = true}}, SHIFT(27), + [485] = {.entry = {.count = 1, .reusable = true}}, SHIFT(505), + [487] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), + [489] = {.entry = {.count = 1, .reusable = true}}, SHIFT(526), + [491] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), + [493] = {.entry = {.count = 1, .reusable = true}}, SHIFT(596), + [495] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), + [497] = {.entry = {.count = 1, .reusable = true}}, SHIFT(607), + [499] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28), + [501] = {.entry = {.count = 1, .reusable = true}}, SHIFT(474), + [503] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), + [505] = {.entry = {.count = 1, .reusable = true}}, SHIFT(599), + [507] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), + [509] = {.entry = {.count = 1, .reusable = true}}, SHIFT(449), + [511] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14), + [513] = {.entry = {.count = 1, .reusable = true}}, SHIFT(462), + [515] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), + [517] = {.entry = {.count = 1, .reusable = true}}, SHIFT(518), + [519] = {.entry = {.count = 1, .reusable = true}}, SHIFT(29), + [521] = {.entry = {.count = 1, .reusable = true}}, SHIFT(532), + [523] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), + [525] = {.entry = {.count = 1, .reusable = true}}, SHIFT(443), + [527] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), + [529] = {.entry = {.count = 1, .reusable = true}}, SHIFT(463), + [531] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), + [533] = {.entry = {.count = 1, .reusable = true}}, SHIFT(555), + [535] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6), + [537] = {.entry = {.count = 1, .reusable = true}}, SHIFT(543), + [539] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), + [541] = {.entry = {.count = 1, .reusable = true}}, SHIFT(608), + [543] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), + [545] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1183), + [547] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), + [549] = {.entry = {.count = 1, .reusable = true}}, SHIFT(446), + [551] = {.entry = {.count = 1, .reusable = true}}, SHIFT(31), + [553] = {.entry = {.count = 1, .reusable = true}}, SHIFT(548), + [555] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), + [557] = {.entry = {.count = 1, .reusable = true}}, SHIFT(585), + [559] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), + [561] = {.entry = {.count = 1, .reusable = true}}, SHIFT(312), + [563] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1607), + [565] = {.entry = {.count = 1, .reusable = true}}, SHIFT(316), + [567] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1598), + [569] = {.entry = {.count = 1, .reusable = true}}, SHIFT(330), + [571] = {.entry = {.count = 1, .reusable = true}}, SHIFT(326), + [573] = {.entry = {.count = 1, .reusable = false}}, SHIFT(911), + [575] = {.entry = {.count = 1, .reusable = true}}, SHIFT(209), + [577] = {.entry = {.count = 1, .reusable = false}}, SHIFT(643), + [579] = {.entry = {.count = 1, .reusable = true}}, SHIFT(210), + [581] = {.entry = {.count = 1, .reusable = false}}, SHIFT(150), + [583] = {.entry = {.count = 1, .reusable = false}}, SHIFT(706), + [585] = {.entry = {.count = 1, .reusable = true}}, SHIFT(236), + [587] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_primary_expression, 1, 0, 1), REDUCE(sym_list_splat_pattern, 2, 0, 8), + [590] = {.entry = {.count = 1, .reusable = true}}, SHIFT(367), + [592] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list_splat_pattern, 2, 0, 8), + [594] = {.entry = {.count = 1, .reusable = false}}, SHIFT(688), + [596] = {.entry = {.count = 1, .reusable = true}}, SHIFT(208), + [598] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_splat_pattern, 2, 0, 8), + [600] = {.entry = {.count = 1, .reusable = false}}, SHIFT(137), + [602] = {.entry = {.count = 1, .reusable = true}}, SHIFT(222), + [604] = {.entry = {.count = 1, .reusable = true}}, SHIFT(406), + [606] = {.entry = {.count = 1, .reusable = true}}, SHIFT(692), + [608] = {.entry = {.count = 1, .reusable = true}}, SHIFT(232), + [610] = {.entry = {.count = 1, .reusable = false}}, SHIFT(142), + [612] = {.entry = {.count = 1, .reusable = false}}, SHIFT(949), + [614] = {.entry = {.count = 1, .reusable = false}}, SHIFT(918), + [616] = {.entry = {.count = 1, .reusable = true}}, SHIFT(237), + [618] = {.entry = {.count = 1, .reusable = false}}, SHIFT(370), + [620] = {.entry = {.count = 1, .reusable = true}}, SHIFT(642), + [622] = {.entry = {.count = 1, .reusable = true}}, SHIFT(223), + [624] = {.entry = {.count = 1, .reusable = true}}, SHIFT(167), + [626] = {.entry = {.count = 1, .reusable = true}}, SHIFT(949), + [628] = {.entry = {.count = 1, .reusable = false}}, SHIFT(147), + [630] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1060), + [632] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1055), + [634] = {.entry = {.count = 1, .reusable = false}}, SHIFT(362), + [636] = {.entry = {.count = 1, .reusable = true}}, SHIFT(231), + [638] = {.entry = {.count = 1, .reusable = true}}, SHIFT(408), + [640] = {.entry = {.count = 1, .reusable = true}}, SHIFT(673), + [642] = {.entry = {.count = 1, .reusable = true}}, SHIFT(212), + [644] = {.entry = {.count = 1, .reusable = false}}, SHIFT(151), + [646] = {.entry = {.count = 1, .reusable = false}}, SHIFT(985), + [648] = {.entry = {.count = 1, .reusable = false}}, SHIFT(988), + [650] = {.entry = {.count = 1, .reusable = true}}, SHIFT(234), + [652] = {.entry = {.count = 1, .reusable = true}}, SHIFT(351), + [654] = {.entry = {.count = 1, .reusable = true}}, SHIFT(628), + [656] = {.entry = {.count = 1, .reusable = true}}, SHIFT(235), + [658] = {.entry = {.count = 1, .reusable = true}}, SHIFT(168), + [660] = {.entry = {.count = 1, .reusable = true}}, SHIFT(985), + [662] = {.entry = {.count = 1, .reusable = false}}, SHIFT(152), + [664] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1049), + [666] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1050), + [668] = {.entry = {.count = 1, .reusable = false}}, SHIFT(872), + [670] = {.entry = {.count = 1, .reusable = false}}, SHIFT(850), + [672] = {.entry = {.count = 1, .reusable = true}}, SHIFT(164), + [674] = {.entry = {.count = 1, .reusable = true}}, SHIFT(524), + [676] = {.entry = {.count = 1, .reusable = true}}, SHIFT(401), + [678] = {.entry = {.count = 1, .reusable = true}}, SHIFT(159), + [680] = {.entry = {.count = 1, .reusable = false}}, SHIFT(391), + [682] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1023), + [684] = {.entry = {.count = 1, .reusable = false}}, SHIFT(170), + [686] = {.entry = {.count = 1, .reusable = false}}, SHIFT(149), + [688] = {.entry = {.count = 1, .reusable = true}}, SHIFT(851), + [690] = {.entry = {.count = 1, .reusable = true}}, SHIFT(914), + [692] = {.entry = {.count = 1, .reusable = true}}, SHIFT(515), + [694] = {.entry = {.count = 1, .reusable = false}}, SHIFT(842), + [696] = {.entry = {.count = 1, .reusable = false}}, SHIFT(855), + [698] = {.entry = {.count = 1, .reusable = true}}, SHIFT(158), + [700] = {.entry = {.count = 1, .reusable = false}}, SHIFT(632), + [702] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern_list, 2, 0, 7), + [704] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pattern_list, 2, 0, 7), + [706] = {.entry = {.count = 1, .reusable = true}}, SHIFT(163), + [708] = {.entry = {.count = 1, .reusable = false}}, SHIFT(141), + [710] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern_list, 3, 0, 16), + [712] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pattern_list, 3, 0, 16), + [714] = {.entry = {.count = 1, .reusable = true}}, SHIFT(838), + [716] = {.entry = {.count = 1, .reusable = true}}, SHIFT(924), + [718] = {.entry = {.count = 1, .reusable = false}}, SHIFT(837), + [720] = {.entry = {.count = 1, .reusable = false}}, SHIFT(854), + [722] = {.entry = {.count = 1, .reusable = true}}, SHIFT(192), + [724] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1700), + [726] = {.entry = {.count = 1, .reusable = false}}, SHIFT(395), + [728] = {.entry = {.count = 1, .reusable = true}}, SHIFT(923), + [730] = {.entry = {.count = 1, .reusable = true}}, SHIFT(390), + [732] = {.entry = {.count = 1, .reusable = false}}, SHIFT(416), + [734] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1026), + [736] = {.entry = {.count = 1, .reusable = false}}, SHIFT(145), + [738] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1733), + [740] = {.entry = {.count = 1, .reusable = true}}, SHIFT(707), + [742] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1664), + [744] = {.entry = {.count = 1, .reusable = true}}, SHIFT(878), + [746] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1685), + [748] = {.entry = {.count = 1, .reusable = true}}, SHIFT(989), + [750] = {.entry = {.count = 1, .reusable = false}}, SHIFT(832), + [752] = {.entry = {.count = 1, .reusable = false}}, SHIFT(836), + [754] = {.entry = {.count = 1, .reusable = false}}, SHIFT(354), + [756] = {.entry = {.count = 1, .reusable = false}}, SHIFT(397), + [758] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_yield, 1, 0, 0), + [760] = {.entry = {.count = 1, .reusable = false}}, SHIFT(399), + [762] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1024), + [764] = {.entry = {.count = 1, .reusable = false}}, SHIFT(139), + [766] = {.entry = {.count = 1, .reusable = false}}, SHIFT(421), + [768] = {.entry = {.count = 1, .reusable = false}}, SHIFT(372), + [770] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_list, 3, 0, 16), + [772] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_list, 2, 0, 7), + [774] = {.entry = {.count = 1, .reusable = false}}, SHIFT(374), + [776] = {.entry = {.count = 1, .reusable = true}}, SHIFT(388), + [778] = {.entry = {.count = 1, .reusable = true}}, SHIFT(213), + [780] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__collection_elements, 3, 0, 52), + [782] = {.entry = {.count = 1, .reusable = true}}, SHIFT(397), + [784] = {.entry = {.count = 1, .reusable = false}}, SHIFT(858), + [786] = {.entry = {.count = 1, .reusable = false}}, SHIFT(857), + [788] = {.entry = {.count = 1, .reusable = true}}, SHIFT(215), + [790] = {.entry = {.count = 1, .reusable = true}}, SHIFT(919), + [792] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1640), + [794] = {.entry = {.count = 1, .reusable = false}}, SHIFT(144), + [796] = {.entry = {.count = 1, .reusable = false}}, SHIFT(366), + [798] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__collection_elements, 2, 0, 26), + [800] = {.entry = {.count = 1, .reusable = true}}, SHIFT(715), + [802] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1615), + [804] = {.entry = {.count = 1, .reusable = false}}, SHIFT(407), + [806] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_raise_statement, 1, 0, 0), + [808] = {.entry = {.count = 1, .reusable = false}}, SHIFT(786), + [810] = {.entry = {.count = 1, .reusable = false}}, SHIFT(787), + [812] = {.entry = {.count = 1, .reusable = true}}, SHIFT(767), + [814] = {.entry = {.count = 1, .reusable = true}}, SHIFT(395), + [816] = {.entry = {.count = 1, .reusable = false}}, SHIFT(138), + [818] = {.entry = {.count = 1, .reusable = false}}, SHIFT(169), + [820] = {.entry = {.count = 1, .reusable = true}}, SHIFT(960), + [822] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1737), + [824] = {.entry = {.count = 1, .reusable = true}}, SHIFT(912), + [826] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1684), + [828] = {.entry = {.count = 1, .reusable = false}}, SHIFT(984), + [830] = {.entry = {.count = 1, .reusable = false}}, SHIFT(986), + [832] = {.entry = {.count = 1, .reusable = false}}, SHIFT(153), + [834] = {.entry = {.count = 1, .reusable = true}}, SHIFT(887), + [836] = {.entry = {.count = 1, .reusable = true}}, SHIFT(892), + [838] = {.entry = {.count = 1, .reusable = true}}, SHIFT(903), + [840] = {.entry = {.count = 1, .reusable = true}}, SHIFT(908), + [842] = {.entry = {.count = 1, .reusable = true}}, SHIFT(726), + [844] = {.entry = {.count = 1, .reusable = true}}, SHIFT(729), + [846] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression_list, 2, 0, 7), + [848] = {.entry = {.count = 1, .reusable = false}}, SHIFT(409), + [850] = {.entry = {.count = 1, .reusable = true}}, SHIFT(371), + [852] = {.entry = {.count = 1, .reusable = true}}, SHIFT(732), + [854] = {.entry = {.count = 1, .reusable = true}}, SHIFT(733), + [856] = {.entry = {.count = 1, .reusable = true}}, SHIFT(734), + [858] = {.entry = {.count = 1, .reusable = true}}, SHIFT(735), + [860] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_in_clause, 7, 0, 145), + [862] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_in_clause, 7, 0, 145), + [864] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1022), + [866] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression_list, 3, 0, 16), + [868] = {.entry = {.count = 1, .reusable = true}}, SHIFT(941), + [870] = {.entry = {.count = 1, .reusable = true}}, SHIFT(942), + [872] = {.entry = {.count = 1, .reusable = true}}, SHIFT(873), + [874] = {.entry = {.count = 1, .reusable = true}}, SHIFT(945), + [876] = {.entry = {.count = 1, .reusable = true}}, SHIFT(783), + [878] = {.entry = {.count = 1, .reusable = true}}, SHIFT(915), + [880] = {.entry = {.count = 1, .reusable = true}}, SHIFT(916), + [882] = {.entry = {.count = 1, .reusable = true}}, SHIFT(893), + [884] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_in_clause, 6, 0, 126), + [886] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_in_clause, 6, 0, 126), + [888] = {.entry = {.count = 1, .reusable = true}}, SHIFT(736), + [890] = {.entry = {.count = 1, .reusable = true}}, SHIFT(971), + [892] = {.entry = {.count = 1, .reusable = true}}, SHIFT(974), + [894] = {.entry = {.count = 1, .reusable = true}}, SHIFT(977), + [896] = {.entry = {.count = 1, .reusable = true}}, SHIFT(978), + [898] = {.entry = {.count = 1, .reusable = true}}, SHIFT(979), + [900] = {.entry = {.count = 1, .reusable = true}}, SHIFT(980), + [902] = {.entry = {.count = 1, .reusable = true}}, SHIFT(737), + [904] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_in_clause, 6, 0, 127), + [906] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_in_clause, 6, 0, 127), + [908] = {.entry = {.count = 1, .reusable = true}}, SHIFT(880), + [910] = {.entry = {.count = 1, .reusable = true}}, SHIFT(883), + [912] = {.entry = {.count = 1, .reusable = true}}, SHIFT(886), + [914] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_in_clause, 5, 0, 101), + [916] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_in_clause, 5, 0, 101), + [918] = {.entry = {.count = 1, .reusable = true}}, SHIFT(888), + [920] = {.entry = {.count = 1, .reusable = true}}, SHIFT(889), + [922] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_return_statement, 1, 0, 0), + [924] = {.entry = {.count = 1, .reusable = true}}, SHIFT(276), + [926] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_index_expression_list, 2, 0, 7), + [928] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary_splat_pattern, 2, 0, 34), + [930] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_index_expression_list, 3, 0, 16), + [932] = {.entry = {.count = 1, .reusable = true}}, SHIFT(940), + [934] = {.entry = {.count = 1, .reusable = true}}, SHIFT(879), + [936] = {.entry = {.count = 1, .reusable = true}}, SHIFT(964), + [938] = {.entry = {.count = 1, .reusable = true}}, SHIFT(898), + [940] = {.entry = {.count = 1, .reusable = true}}, SHIFT(920), + [942] = {.entry = {.count = 1, .reusable = true}}, SHIFT(970), + [944] = {.entry = {.count = 1, .reusable = true}}, SHIFT(719), + [946] = {.entry = {.count = 1, .reusable = true}}, SHIFT(725), + [948] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_statement, 4, 0, 57), + [950] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_statement, 4, 0, 57), + [952] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1635), + [954] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1736), + [956] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1632), + [958] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_statement, 5, 0, 84), + [960] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_statement, 5, 0, 84), + [962] = {.entry = {.count = 1, .reusable = true}}, SHIFT(409), + [964] = {.entry = {.count = 1, .reusable = false}}, SHIFT(907), + [966] = {.entry = {.count = 1, .reusable = false}}, SHIFT(913), + [968] = {.entry = {.count = 1, .reusable = true}}, SHIFT(323), + [970] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114), + [972] = {.entry = {.count = 1, .reusable = false}}, SHIFT(389), + [974] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1025), + [976] = {.entry = {.count = 1, .reusable = false}}, SHIFT(146), + [978] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1637), + [980] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1739), + [982] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1693), + [984] = {.entry = {.count = 1, .reusable = false}}, SHIFT(304), + [986] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 1, 0, 0), + [988] = {.entry = {.count = 1, .reusable = true}}, SHIFT(298), + [990] = {.entry = {.count = 1, .reusable = true}}, SHIFT(335), + [992] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84), + [994] = {.entry = {.count = 1, .reusable = false}}, SHIFT(292), + [996] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 2, 0, 70), + [998] = {.entry = {.count = 1, .reusable = true}}, SHIFT(297), + [1000] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1726), + [1002] = {.entry = {.count = 1, .reusable = true}}, SHIFT(183), + [1004] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_print_statement, 4, 0, 30), + [1006] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_print_statement, 4, 0, 29), + [1008] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 3, 0, 70), + [1010] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 2, 0, 0), + [1012] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_print_statement, 3, 0, 0), + [1014] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_print_statement, 3, 0, 10), + [1016] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 4, 0, 98), + [1018] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1704), + [1020] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 3, 0, 69), + [1022] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 1, 0, 0), + [1024] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 1, 0, 0), + [1026] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__simple_statements, 3, 0, 0), + [1028] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__simple_statements, 3, 0, 0), + [1030] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_subscript, 4, 0, 71), + [1032] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_subscript, 4, 0, 71), + [1034] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_try_statement_repeat1, 2, 0, 0), + [1036] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_try_statement_repeat1, 2, 0, 0), + [1038] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_try_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(292), + [1041] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_try_statement_repeat2, 2, 0, 0), + [1043] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_try_statement_repeat2, 2, 0, 0), + [1045] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_try_statement_repeat2, 2, 0, 0), SHIFT_REPEAT(1739), + [1048] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_attribute, 3, 0, 41), + [1050] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_attribute, 3, 0, 41), + [1052] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__simple_statements, 2, 0, 0), + [1054] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__simple_statements, 2, 0, 0), + [1056] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 6, 0, 105), + [1058] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 6, 0, 105), + [1060] = {.entry = {.count = 1, .reusable = false}}, SHIFT(394), + [1062] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 4, 0, 55), + [1064] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 4, 0, 55), + [1066] = {.entry = {.count = 1, .reusable = false}}, SHIFT(431), + [1068] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, 0, 79), + [1070] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, 0, 79), + [1072] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, 0, 80), + [1074] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, 0, 80), + [1076] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_try_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(304), + [1079] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__simple_statements, 4, 0, 0), + [1081] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__simple_statements, 4, 0, 0), + [1083] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_try_statement_repeat2, 2, 0, 0), SHIFT_REPEAT(1736), + [1086] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_block, 2, 0, 0), + [1088] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_block, 2, 0, 0), + [1090] = {.entry = {.count = 1, .reusable = false}}, SHIFT(617), + [1092] = {.entry = {.count = 1, .reusable = false}}, SHIFT(618), + [1094] = {.entry = {.count = 1, .reusable = false}}, SHIFT(135), + [1096] = {.entry = {.count = 1, .reusable = true}}, SHIFT(509), + [1098] = {.entry = {.count = 1, .reusable = true}}, SHIFT(290), + [1100] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1705), + [1102] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_if_statement_repeat1, 2, 0, 103), + [1104] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_if_statement_repeat1, 2, 0, 103), + [1106] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_if_statement_repeat1, 2, 0, 103), SHIFT_REPEAT(431), + [1109] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_if_statement_repeat1, 2, 0, 103), SHIFT_REPEAT(394), + [1112] = {.entry = {.count = 1, .reusable = false}}, SHIFT(849), + [1114] = {.entry = {.count = 1, .reusable = false}}, SHIFT(859), + [1116] = {.entry = {.count = 1, .reusable = false}}, SHIFT(148), + [1118] = {.entry = {.count = 1, .reusable = true}}, SHIFT(506), + [1120] = {.entry = {.count = 1, .reusable = true}}, SHIFT(306), + [1122] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1746), + [1124] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_group_clause, 8, 0, 169), + [1126] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_group_clause, 8, 0, 169), + [1128] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_cases, 1, 0, 0), + [1130] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_cases, 1, 0, 0), + [1132] = {.entry = {.count = 1, .reusable = false}}, SHIFT(870), + [1134] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_clause, 4, 0, 134), + [1136] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_clause, 4, 0, 134), + [1138] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_group_clause, 6, 0, 161), + [1140] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_group_clause, 6, 0, 161), + [1142] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_clause, 6, 0, 162), + [1144] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_clause, 6, 0, 162), + [1146] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_cases_repeat1, 2, 0, 0), + [1148] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_cases_repeat1, 2, 0, 0), + [1150] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_cases_repeat1, 2, 0, 0), SHIFT_REPEAT(870), + [1153] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_cases_repeat1, 2, 0, 0), SHIFT_REPEAT(869), + [1156] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_group_clause, 7, 0, 167), + [1158] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_group_clause, 7, 0, 167), + [1160] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_clause, 4, 0, 84), + [1162] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_clause, 4, 0, 84), + [1164] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_clause, 3, 0, 57), + [1166] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_clause, 3, 0, 57), + [1168] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_clause, 7, 0, 168), + [1170] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_clause, 7, 0, 168), + [1172] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1054), + [1174] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1385), + [1176] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1269), + [1178] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_clause, 5, 0, 152), + [1180] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_clause, 5, 0, 152), + [1182] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_except_group_clause, 5, 0, 151), + [1184] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_except_group_clause, 5, 0, 151), + [1186] = {.entry = {.count = 1, .reusable = false}}, SHIFT(869), + [1188] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1422), + [1190] = {.entry = {.count = 1, .reusable = true}}, SHIFT(632), + [1192] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__patterns, 2, 0, 26), + [1194] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_elif_clause, 4, 0, 55), + [1196] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_elif_clause, 4, 0, 55), + [1198] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 8, 0, 147), + [1200] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 8, 0, 147), + [1202] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1416), + [1204] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_primary_expression, 1, 0, 0), + [1206] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_primary_expression, 1, 0, 0), REDUCE(sym_list_splat_pattern, 2, 0, 9), + [1209] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_primary_expression, 1, 0, 0), + [1211] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_splat_pattern, 2, 0, 9), + [1213] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list_splat_pattern, 2, 0, 9), + [1215] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__patterns, 3, 0, 52), + [1217] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_elif_clause, 5, 0, 80), + [1219] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_elif_clause, 5, 0, 80), + [1221] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_if_statement_repeat1, 1, 0, 77), + [1223] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_if_statement_repeat1, 1, 0, 77), + [1225] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 6, 0, 108), + [1227] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 6, 0, 108), + [1229] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_while_statement, 4, 0, 56), + [1231] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_while_statement, 4, 0, 56), + [1233] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_statement, 6, 0, 84), + [1235] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_statement, 6, 0, 84), + [1237] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_while_statement, 5, 0, 83), + [1239] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_while_statement, 5, 0, 83), + [1241] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_statement, 5, 0, 57), + [1243] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_statement, 5, 0, 57), + [1245] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, 0, 129), + [1247] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 7, 0, 129), + [1249] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 7, 0, 133), + [1251] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, 0, 133), + [1253] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_else_clause, 3, 0, 57), + [1255] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_else_clause, 3, 0, 57), + [1257] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case_block, 5, 0, 154), + [1259] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_case_block, 5, 0, 154), + [1261] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case_block, 5, 0, 155), + [1263] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_case_block, 5, 0, 155), + [1265] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_pattern, 1, 0, 0), REDUCE(sym_primary_expression, 1, 0, 0), + [1268] = {.entry = {.count = 1, .reusable = true}}, SHIFT(369), + [1270] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_pattern, 1, 0, 0), + [1272] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern, 1, 0, 0), + [1274] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_case_block, 4, 0, 138), + [1276] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case_block, 4, 0, 138), + [1278] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_else_clause, 4, 0, 84), + [1280] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_else_clause, 4, 0, 84), + [1282] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_case_block, 6, 0, 163), + [1284] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_case_block, 6, 0, 163), + [1286] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 4, 0, 65), + [1288] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 4, 0, 65), + [1290] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 2, 0, 0), + [1292] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_list_pattern, 2, 0, 0), REDUCE(sym_list, 2, 0, 0), + [1295] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list, 2, 0, 0), + [1297] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_pattern, 2, 0, 0), + [1299] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list_pattern, 2, 0, 0), + [1301] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 9, 0, 158), + [1303] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 9, 0, 158), + [1305] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 9, 0, 159), + [1307] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 9, 0, 159), + [1309] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 9, 0, 160), + [1311] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 9, 0, 160), + [1313] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 5, 0, 93), + [1315] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 5, 0, 93), + [1317] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 6, 0, 102), + [1319] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 6, 0, 102), + [1321] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 6, 0, 104), + [1323] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 6, 0, 104), + [1325] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 9, 0, 165), + [1327] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 9, 0, 165), + [1329] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 10, 0, 166), + [1331] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 10, 0, 166), + [1333] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple, 2, 0, 0), + [1335] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_tuple_pattern, 2, 0, 0), REDUCE(sym_tuple, 2, 0, 0), + [1338] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple, 2, 0, 0), + [1340] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple_pattern, 2, 0, 0), + [1342] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple_pattern, 2, 0, 0), + [1344] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_statement, 6, 0, 106), + [1346] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_with_statement, 6, 0, 106), + [1348] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 6, 0, 107), + [1350] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 6, 0, 107), + [1352] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 8, 0, 146), + [1354] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 8, 0, 146), + [1356] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 5, 0, 78), + [1358] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 5, 0, 78), + [1360] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_while_statement, 6, 0, 109), + [1362] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_while_statement, 6, 0, 109), + [1364] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_statement, 5, 0, 81), + [1366] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_with_statement, 5, 0, 81), + [1368] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_finally_clause, 3, 0, 57), + [1370] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_finally_clause, 3, 0, 57), + [1372] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_decorated_definition, 2, 0, 19), + [1374] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decorated_definition, 2, 0, 19), + [1376] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_statement, 6, 0, 57), + [1378] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_statement, 6, 0, 57), + [1380] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 8, 0, 148), + [1382] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 8, 0, 148), + [1384] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_while_statement, 5, 0, 82), + [1386] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_while_statement, 5, 0, 82), + [1388] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 5, 0, 94), + [1390] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 5, 0, 94), + [1392] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 6, 0, 117), + [1394] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 6, 0, 117), + [1396] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 8, 0, 149), + [1398] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 8, 0, 149), + [1400] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 6, 0, 118), + [1402] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 6, 0, 118), + [1404] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_with_statement, 4, 0, 58), + [1406] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_statement, 4, 0, 58), + [1408] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_match_statement, 4, 0, 60), + [1410] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_statement, 4, 0, 60), + [1412] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_match_statement, 4, 0, 61), + [1414] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_statement, 4, 0, 61), + [1416] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 6, 0, 119), + [1418] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 6, 0, 119), + [1420] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 6, 0, 120), + [1422] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 6, 0, 120), + [1424] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 6, 0, 121), + [1426] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 6, 0, 121), + [1428] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 8, 0, 150), + [1430] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 8, 0, 150), + [1432] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_with_statement, 5, 0, 85), + [1434] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_statement, 5, 0, 85), + [1436] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 5, 0, 92), + [1438] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 5, 0, 92), + [1440] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_statement, 7, 0, 128), + [1442] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if_statement, 7, 0, 128), + [1444] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 7, 0, 130), + [1446] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 7, 0, 130), + [1448] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 7, 0, 131), + [1450] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 7, 0, 131), + [1452] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_for_statement, 7, 0, 132), + [1454] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_statement, 7, 0, 132), + [1456] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_finally_clause, 4, 0, 84), + [1458] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_finally_clause, 4, 0, 84), + [1460] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_try_statement, 7, 0, 84), + [1462] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_try_statement, 7, 0, 84), + [1464] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 7, 0, 141), + [1466] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 7, 0, 141), + [1468] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 7, 0, 142), + [1470] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 7, 0, 142), + [1472] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_class_definition, 7, 0, 143), + [1474] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_class_definition, 7, 0, 143), + [1476] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 8, 0, 156), + [1478] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 8, 0, 156), + [1480] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 8, 0, 157), + [1482] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 8, 0, 157), + [1484] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_definition, 5, 0, 90), + [1486] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_function_definition, 5, 0, 90), + [1488] = {.entry = {.count = 1, .reusable = true}}, SHIFT(355), + [1490] = {.entry = {.count = 1, .reusable = false}}, SHIFT(860), + [1492] = {.entry = {.count = 1, .reusable = false}}, SHIFT(871), + [1494] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_keyword_separator, 1, 0, 0), + [1496] = {.entry = {.count = 1, .reusable = false}}, SHIFT(143), + [1498] = {.entry = {.count = 1, .reusable = false}}, SHIFT(647), + [1500] = {.entry = {.count = 1, .reusable = false}}, SHIFT(671), + [1502] = {.entry = {.count = 1, .reusable = false}}, SHIFT(652), + [1504] = {.entry = {.count = 1, .reusable = false}}, SHIFT(633), + [1506] = {.entry = {.count = 1, .reusable = false}}, SHIFT(675), + [1508] = {.entry = {.count = 1, .reusable = false}}, SHIFT(687), + [1510] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_concatenated_template_string_repeat1, 2, 0, 0), + [1512] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_concatenated_template_string_repeat1, 2, 0, 0), + [1514] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concatenated_template_string_repeat1, 2, 0, 0), SHIFT_REPEAT(1061), + [1517] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1013), + [1519] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1011), + [1521] = {.entry = {.count = 1, .reusable = false}}, SHIFT(244), + [1523] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_concatenated_string_repeat1, 2, 0, 0), + [1525] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_concatenated_string_repeat1, 2, 0, 0), + [1527] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concatenated_string_repeat1, 2, 0, 0), SHIFT_REPEAT(1059), + [1530] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_concatenated_string, 2, 0, 0), + [1532] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_concatenated_string, 2, 0, 0), + [1534] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_concatenated_template_string, 2, 0, 0), + [1536] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_concatenated_template_string, 2, 0, 0), + [1538] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_string, 3, 0, 20), + [1540] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_string, 3, 0, 20), + [1542] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_template_string, 2, 0, 2), + [1544] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_template_string, 2, 0, 2), + [1546] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string, 2, 0, 2), + [1548] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string, 2, 0, 2), + [1550] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string, 3, 0, 20), + [1552] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string, 3, 0, 20), + [1554] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1681), + [1556] = {.entry = {.count = 1, .reusable = true}}, SHIFT(181), + [1558] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression, 1, 0, 0), + [1560] = {.entry = {.count = 1, .reusable = false}}, SHIFT(674), + [1562] = {.entry = {.count = 1, .reusable = true}}, SHIFT(676), + [1564] = {.entry = {.count = 1, .reusable = true}}, SHIFT(677), + [1566] = {.entry = {.count = 1, .reusable = true}}, SHIFT(678), + [1568] = {.entry = {.count = 1, .reusable = true}}, SHIFT(680), + [1570] = {.entry = {.count = 1, .reusable = true}}, SHIFT(241), + [1572] = {.entry = {.count = 1, .reusable = true}}, SHIFT(681), + [1574] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression, 1, 0, 0), + [1576] = {.entry = {.count = 1, .reusable = true}}, SHIFT(674), + [1578] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1710), + [1580] = {.entry = {.count = 1, .reusable = true}}, SHIFT(682), + [1582] = {.entry = {.count = 1, .reusable = true}}, SHIFT(683), + [1584] = {.entry = {.count = 1, .reusable = false}}, SHIFT(677), + [1586] = {.entry = {.count = 1, .reusable = true}}, SHIFT(625), + [1588] = {.entry = {.count = 1, .reusable = false}}, SHIFT(645), + [1590] = {.entry = {.count = 1, .reusable = true}}, SHIFT(649), + [1592] = {.entry = {.count = 1, .reusable = true}}, SHIFT(650), + [1594] = {.entry = {.count = 1, .reusable = true}}, SHIFT(654), + [1596] = {.entry = {.count = 1, .reusable = true}}, SHIFT(655), + [1598] = {.entry = {.count = 1, .reusable = true}}, SHIFT(656), + [1600] = {.entry = {.count = 1, .reusable = true}}, SHIFT(645), + [1602] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1702), + [1604] = {.entry = {.count = 1, .reusable = true}}, SHIFT(626), + [1606] = {.entry = {.count = 1, .reusable = true}}, SHIFT(659), + [1608] = {.entry = {.count = 1, .reusable = false}}, SHIFT(650), + [1610] = {.entry = {.count = 1, .reusable = true}}, SHIFT(624), + [1612] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary, 2, 0, 0), + [1614] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dictionary, 2, 0, 0), + [1616] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_call, 2, 0, 17), + [1618] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_call, 2, 0, 17), + [1620] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_expression, 3, 0, 28), + [1622] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesized_expression, 3, 0, 28), + [1624] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple, 3, 0, 27), + [1626] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_tuple, 3, 0, 27), + [1628] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 3, 0, 27), + [1630] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list, 3, 0, 27), + [1632] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary, 3, 0, 0), + [1634] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dictionary, 3, 0, 0), + [1636] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary, 3, 0, 32), + [1638] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dictionary, 3, 0, 32), + [1640] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_set, 3, 0, 27), + [1642] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_set, 3, 0, 27), + [1644] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 2, 0, 0), + [1646] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 2, 0, 0), + [1648] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_generator_expression, 4, 0, 51), + [1650] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_generator_expression, 4, 0, 51), + [1652] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_comprehension, 4, 0, 51), + [1654] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list_comprehension, 4, 0, 51), + [1656] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_set_comprehension, 4, 0, 51), + [1658] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_set_comprehension, 4, 0, 51), + [1660] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary, 4, 0, 32), + [1662] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dictionary, 4, 0, 32), + [1664] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary, 4, 0, 62), + [1666] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dictionary, 4, 0, 62), + [1668] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 3, 0, 0), + [1670] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 3, 0, 0), + [1672] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 3, 0, 32), + [1674] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 3, 0, 32), + [1676] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 3, 0, 68), + [1678] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 3, 0, 68), + [1680] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary, 5, 0, 62), + [1682] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dictionary, 5, 0, 62), + [1684] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 4, 0, 32), + [1686] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 4, 0, 32), + [1688] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 4, 0, 62), + [1690] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 4, 0, 62), + [1692] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 4, 0, 68), + [1694] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 4, 0, 68), + [1696] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 4, 0, 96), + [1698] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 4, 0, 96), + [1700] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 5, 0, 62), + [1702] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 5, 0, 62), + [1704] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_argument_list, 5, 0, 96), + [1706] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_argument_list, 5, 0, 96), + [1708] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary_comprehension, 4, 0, 51), + [1710] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dictionary_comprehension, 4, 0, 51), + [1712] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_operator, 3, 0, 40), + [1714] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_operator, 3, 0, 40), + [1716] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 3, 0, 72), + [1718] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 3, 0, 72), + [1720] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 3, 0, 73), + [1722] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 3, 0, 73), + [1724] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_await, 2, 0, 0), + [1726] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_await, 2, 0, 0), + [1728] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_operator, 2, 0, 13), + [1730] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_operator, 2, 0, 13), + [1732] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concatenated_string_repeat1, 2, 0, 0), SHIFT_REPEAT(1049), + [1735] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concatenated_template_string_repeat1, 2, 0, 0), SHIFT_REPEAT(1050), + [1738] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 42), + [1740] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 42), + [1742] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concatenated_string_repeat1, 2, 0, 0), SHIFT_REPEAT(1060), + [1745] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concatenated_template_string_repeat1, 2, 0, 0), SHIFT_REPEAT(1055), + [1748] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1631), + [1750] = {.entry = {.count = 1, .reusable = true}}, SHIFT(178), + [1752] = {.entry = {.count = 1, .reusable = false}}, SHIFT(644), + [1754] = {.entry = {.count = 1, .reusable = true}}, SHIFT(634), + [1756] = {.entry = {.count = 1, .reusable = true}}, SHIFT(637), + [1758] = {.entry = {.count = 1, .reusable = true}}, SHIFT(640), + [1760] = {.entry = {.count = 1, .reusable = true}}, SHIFT(668), + [1762] = {.entry = {.count = 1, .reusable = true}}, SHIFT(242), + [1764] = {.entry = {.count = 1, .reusable = true}}, SHIFT(646), + [1766] = {.entry = {.count = 1, .reusable = true}}, SHIFT(644), + [1768] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1619), + [1770] = {.entry = {.count = 1, .reusable = true}}, SHIFT(653), + [1772] = {.entry = {.count = 1, .reusable = true}}, SHIFT(691), + [1774] = {.entry = {.count = 1, .reusable = false}}, SHIFT(637), + [1776] = {.entry = {.count = 1, .reusable = true}}, SHIFT(620), + [1778] = {.entry = {.count = 1, .reusable = false}}, SHIFT(661), + [1780] = {.entry = {.count = 1, .reusable = true}}, SHIFT(662), + [1782] = {.entry = {.count = 1, .reusable = true}}, SHIFT(663), + [1784] = {.entry = {.count = 1, .reusable = true}}, SHIFT(699), + [1786] = {.entry = {.count = 1, .reusable = true}}, SHIFT(664), + [1788] = {.entry = {.count = 1, .reusable = true}}, SHIFT(665), + [1790] = {.entry = {.count = 1, .reusable = true}}, SHIFT(661), + [1792] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1698), + [1794] = {.entry = {.count = 1, .reusable = true}}, SHIFT(666), + [1796] = {.entry = {.count = 1, .reusable = true}}, SHIFT(667), + [1798] = {.entry = {.count = 1, .reusable = false}}, SHIFT(663), + [1800] = {.entry = {.count = 1, .reusable = true}}, SHIFT(621), + [1802] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concatenated_string_repeat1, 2, 0, 0), SHIFT_REPEAT(1044), + [1805] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_concatenated_template_string_repeat1, 2, 0, 0), SHIFT_REPEAT(1040), + [1808] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1668), + [1810] = {.entry = {.count = 1, .reusable = true}}, SHIFT(188), + [1812] = {.entry = {.count = 1, .reusable = false}}, SHIFT(657), + [1814] = {.entry = {.count = 1, .reusable = true}}, SHIFT(672), + [1816] = {.entry = {.count = 1, .reusable = true}}, SHIFT(695), + [1818] = {.entry = {.count = 1, .reusable = true}}, SHIFT(679), + [1820] = {.entry = {.count = 1, .reusable = true}}, SHIFT(689), + [1822] = {.entry = {.count = 1, .reusable = true}}, SHIFT(239), + [1824] = {.entry = {.count = 1, .reusable = true}}, SHIFT(630), + [1826] = {.entry = {.count = 1, .reusable = true}}, SHIFT(657), + [1828] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1730), + [1830] = {.entry = {.count = 1, .reusable = true}}, SHIFT(636), + [1832] = {.entry = {.count = 1, .reusable = true}}, SHIFT(638), + [1834] = {.entry = {.count = 1, .reusable = false}}, SHIFT(695), + [1836] = {.entry = {.count = 1, .reusable = true}}, SHIFT(622), + [1838] = {.entry = {.count = 1, .reusable = true}}, SHIFT(426), + [1840] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1703), + [1842] = {.entry = {.count = 1, .reusable = true}}, SHIFT(186), + [1844] = {.entry = {.count = 1, .reusable = false}}, SHIFT(697), + [1846] = {.entry = {.count = 1, .reusable = true}}, SHIFT(641), + [1848] = {.entry = {.count = 1, .reusable = true}}, SHIFT(696), + [1850] = {.entry = {.count = 1, .reusable = true}}, SHIFT(684), + [1852] = {.entry = {.count = 1, .reusable = true}}, SHIFT(631), + [1854] = {.entry = {.count = 1, .reusable = true}}, SHIFT(238), + [1856] = {.entry = {.count = 1, .reusable = true}}, SHIFT(629), + [1858] = {.entry = {.count = 1, .reusable = true}}, SHIFT(697), + [1860] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1672), + [1862] = {.entry = {.count = 1, .reusable = true}}, SHIFT(635), + [1864] = {.entry = {.count = 1, .reusable = true}}, SHIFT(660), + [1866] = {.entry = {.count = 1, .reusable = false}}, SHIFT(696), + [1868] = {.entry = {.count = 1, .reusable = true}}, SHIFT(623), + [1870] = {.entry = {.count = 1, .reusable = false}}, SHIFT(438), + [1872] = {.entry = {.count = 1, .reusable = true}}, SHIFT(411), + [1874] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1042), + [1876] = {.entry = {.count = 1, .reusable = true}}, SHIFT(896), + [1878] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1514), + [1880] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_open_sequence_match_pattern, 3, 0, 0), + [1882] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_open_sequence_match_pattern, 3, 0, 0), + [1884] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1587), + [1886] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1117), + [1888] = {.entry = {.count = 1, .reusable = true}}, SHIFT(897), + [1890] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1007), + [1892] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1078), + [1894] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1078), + [1896] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1116), + [1898] = {.entry = {.count = 1, .reusable = false}}, SHIFT(363), + [1900] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_open_sequence_match_pattern, 2, 0, 0), + [1902] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_open_sequence_match_pattern, 2, 0, 0), + [1904] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1142), + [1906] = {.entry = {.count = 1, .reusable = true}}, SHIFT(375), + [1908] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1130), + [1910] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1143), + [1912] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1160), + [1914] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1138), + [1916] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1141), + [1918] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1158), + [1920] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1136), + [1922] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1101), + [1924] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), + [1926] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), + [1928] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(650), + [1931] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(1702), + [1934] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(650), + [1937] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(624), + [1940] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comparison_operator, 2, 0, 18), + [1942] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_comparison_operator, 2, 0, 18), + [1944] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(677), + [1947] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(1710), + [1950] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(677), + [1953] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(625), + [1956] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__patterns_repeat1, 2, 0, 37), + [1958] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__patterns_repeat1, 2, 0, 37), SHIFT_REPEAT(589), + [1961] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(637), + [1964] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(1619), + [1967] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(637), + [1970] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(620), + [1973] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__patterns_repeat1, 2, 0, 32), + [1975] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(695), + [1978] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(1730), + [1981] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(695), + [1984] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(622), + [1987] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1543), + [1989] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1132), + [1991] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1537), + [1993] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1176), + [1995] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_pattern, 3, 0, 27), + [1997] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1134), + [1999] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_tuple_pattern, 3, 0, 27), + [2001] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary_splat_pattern, 2, 0, 35), + [2003] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(663), + [2006] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(1698), + [2009] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(663), + [2012] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(621), + [2015] = {.entry = {.count = 1, .reusable = true}}, SHIFT(162), + [2017] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern_list, 2, 0, 16), + [2019] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(696), + [2022] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(1672), + [2025] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(696), + [2028] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_comparison_operator_repeat1, 2, 0, 43), SHIFT_REPEAT(623), + [2031] = {.entry = {.count = 1, .reusable = true}}, SHIFT(161), + [2033] = {.entry = {.count = 1, .reusable = true}}, SHIFT(269), + [2035] = {.entry = {.count = 1, .reusable = true}}, SHIFT(154), + [2037] = {.entry = {.count = 1, .reusable = true}}, SHIFT(155), + [2039] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1516), + [2041] = {.entry = {.count = 1, .reusable = true}}, SHIFT(465), + [2043] = {.entry = {.count = 1, .reusable = false}}, SHIFT(619), + [2045] = {.entry = {.count = 1, .reusable = true}}, SHIFT(353), + [2047] = {.entry = {.count = 1, .reusable = true}}, SHIFT(639), + [2049] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1512), + [2051] = {.entry = {.count = 1, .reusable = true}}, SHIFT(293), + [2053] = {.entry = {.count = 1, .reusable = true}}, SHIFT(419), + [2055] = {.entry = {.count = 1, .reusable = true}}, SHIFT(380), + [2057] = {.entry = {.count = 1, .reusable = true}}, SHIFT(373), + [2059] = {.entry = {.count = 1, .reusable = true}}, SHIFT(410), + [2061] = {.entry = {.count = 1, .reusable = true}}, SHIFT(365), + [2063] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1383), + [2065] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1550), + [2067] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__parameters, 2, 0, 0), + [2069] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__parameters, 3, 0, 0), + [2071] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_not_operator, 2, 0, 10), + [2073] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_not_operator, 2, 0, 10), + [2075] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_match_value_pattern_repeat1, 2, 0, 0), + [2077] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_match_value_pattern_repeat1, 2, 0, 0), SHIFT_REPEAT(1734), + [2080] = {.entry = {.count = 1, .reusable = false}}, SHIFT(184), + [2082] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1149), + [2084] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1149), + [2086] = {.entry = {.count = 1, .reusable = false}}, SHIFT_EXTRA(), + [2088] = {.entry = {.count = 1, .reusable = true}}, SHIFT(847), + [2090] = {.entry = {.count = 1, .reusable = true}}, SHIFT(180), + [2092] = {.entry = {.count = 1, .reusable = true}}, SHIFT(422), + [2094] = {.entry = {.count = 1, .reusable = true}}, SHIFT(398), + [2096] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1623), + [2098] = {.entry = {.count = 1, .reusable = true}}, SHIFT(510), + [2100] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__collection_elements, 1, 0, 7), + [2102] = {.entry = {.count = 1, .reusable = true}}, SHIFT(412), + [2104] = {.entry = {.count = 1, .reusable = true}}, SHIFT(413), + [2106] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1734), + [2108] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern_class_name, 1, 0, 0), + [2110] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_capture_pattern, 1, 0, 0), + [2112] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_literal_pattern, 1, 0, 0), + [2114] = {.entry = {.count = 1, .reusable = true}}, SHIFT(843), + [2116] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_string_repeat1, 2, 0, 21), SHIFT_REPEAT(184), + [2119] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_string_repeat1, 2, 0, 21), SHIFT_REPEAT(1149), + [2122] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_string_repeat1, 2, 0, 21), SHIFT_REPEAT(1149), + [2125] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_string_repeat1, 2, 0, 21), + [2127] = {.entry = {.count = 1, .reusable = true}}, SHIFT(852), + [2129] = {.entry = {.count = 1, .reusable = true}}, SHIFT(954), + [2131] = {.entry = {.count = 2, .reusable = true}}, REDUCE(sym_with_item, 1, -1, 12), SHIFT(180), + [2134] = {.entry = {.count = 1, .reusable = false}}, SHIFT(527), + [2136] = {.entry = {.count = 1, .reusable = true}}, SHIFT(403), + [2138] = {.entry = {.count = 1, .reusable = true}}, SHIFT(338), + [2140] = {.entry = {.count = 1, .reusable = true}}, SHIFT(428), + [2142] = {.entry = {.count = 1, .reusable = true}}, SHIFT(792), + [2144] = {.entry = {.count = 1, .reusable = true}}, SHIFT(793), + [2146] = {.entry = {.count = 1, .reusable = true}}, SHIFT(794), + [2148] = {.entry = {.count = 1, .reusable = true}}, SHIFT(795), + [2150] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1485), + [2152] = {.entry = {.count = 1, .reusable = true}}, SHIFT(834), + [2154] = {.entry = {.count = 1, .reusable = true}}, SHIFT(853), + [2156] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1509), + [2158] = {.entry = {.count = 1, .reusable = true}}, SHIFT(840), + [2160] = {.entry = {.count = 1, .reusable = true}}, SHIFT(702), + [2162] = {.entry = {.count = 1, .reusable = true}}, SHIFT(846), + [2164] = {.entry = {.count = 1, .reusable = true}}, SHIFT(701), + [2166] = {.entry = {.count = 1, .reusable = true}}, SHIFT(848), + [2168] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pattern_class_name, 2, 0, 0), + [2170] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_value_pattern, 2, 0, 0), + [2172] = {.entry = {.count = 1, .reusable = true}}, SHIFT(703), + [2174] = {.entry = {.count = 1, .reusable = true}}, SHIFT(700), + [2176] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_boolean_operator, 3, 0, 40), + [2178] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_boolean_operator, 3, 0, 40), + [2180] = {.entry = {.count = 1, .reusable = true}}, SHIFT(921), + [2182] = {.entry = {.count = 1, .reusable = true}}, SHIFT(358), + [2184] = {.entry = {.count = 1, .reusable = true}}, SHIFT(359), + [2186] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_conditional_expression, 5, 0, 0), + [2188] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_conditional_expression, 5, 0, 0), + [2190] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_named_expression, 3, 0, 36), + [2192] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_named_expression, 3, 0, 36), + [2194] = {.entry = {.count = 1, .reusable = true}}, SHIFT(874), + [2196] = {.entry = {.count = 1, .reusable = true}}, SHIFT(225), + [2198] = {.entry = {.count = 1, .reusable = true}}, SHIFT(418), + [2200] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_lambda, 3, 0, 33), + [2202] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_lambda, 3, 0, 33), + [2204] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_literal_pattern, 1, 0, 86), + [2206] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1556), + [2208] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_literal_pattern, 2, 0, 110), + [2210] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1604), + [2212] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_named_expression, 3, 0, 23), + [2214] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_lambda, 4, 0, 67), + [2216] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_lambda, 4, 0, 67), + [2218] = {.entry = {.count = 1, .reusable = true}}, SHIFT(890), + [2220] = {.entry = {.count = 1, .reusable = true}}, SHIFT(709), + [2222] = {.entry = {.count = 1, .reusable = true}}, SHIFT(877), + [2224] = {.entry = {.count = 1, .reusable = true}}, SHIFT(193), + [2226] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_named_expression, 3, 0, 23), + [2228] = {.entry = {.count = 1, .reusable = true}}, SHIFT(967), + [2230] = {.entry = {.count = 1, .reusable = true}}, SHIFT(216), + [2232] = {.entry = {.count = 1, .reusable = true}}, SHIFT(723), + [2234] = {.entry = {.count = 1, .reusable = true}}, SHIFT(195), + [2236] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression_within_for_in_clause, 1, 0, 0), + [2238] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list_splat, 2, 0, 0), + [2240] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__comprehension_clauses_repeat1, 2, 0, 0), + [2242] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__comprehension_clauses_repeat1, 2, 0, 0), SHIFT_REPEAT(356), + [2245] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__comprehension_clauses_repeat1, 2, 0, 0), SHIFT_REPEAT(1623), + [2248] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__comprehension_clauses_repeat1, 2, 0, 0), SHIFT_REPEAT(510), + [2251] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_or_pattern, 3, 0, 0), + [2253] = {.entry = {.count = 1, .reusable = true}}, SHIFT(994), + [2255] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_match_or_pattern_repeat1, 2, 0, 0), + [2257] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_match_or_pattern_repeat1, 2, 0, 0), SHIFT_REPEAT(994), + [2260] = {.entry = {.count = 1, .reusable = true}}, SHIFT(174), + [2262] = {.entry = {.count = 1, .reusable = true}}, SHIFT(423), + [2264] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__f_expression, 1, 0, 0), + [2266] = {.entry = {.count = 1, .reusable = true}}, SHIFT(382), + [2268] = {.entry = {.count = 1, .reusable = true}}, SHIFT(383), + [2270] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_or_pattern, 4, 0, 0), + [2272] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comprehension_clauses, 1, 0, 0), + [2274] = {.entry = {.count = 1, .reusable = true}}, SHIFT(356), + [2276] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_yield, 2, 0, 0), + [2278] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__comprehension_clauses, 2, 0, 0), + [2280] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_sequence_pattern, 3, 0, 0), + [2282] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_class_pattern, 9, 0, 140), + [2284] = {.entry = {.count = 1, .reusable = true}}, SHIFT(433), + [2286] = {.entry = {.count = 1, .reusable = true}}, SHIFT(339), + [2288] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_for_in_clause_repeat1, 2, 0, 0), + [2290] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_for_in_clause_repeat1, 2, 0, 0), SHIFT_REPEAT(307), + [2293] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_class_pattern, 4, 0, 140), + [2295] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__match_or_pattern, 1, 0, 0), + [2297] = {.entry = {.count = 1, .reusable = true}}, SHIFT(995), + [2299] = {.entry = {.count = 1, .reusable = true}}, SHIFT(432), + [2301] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_string_content_repeat1, 2, 0, 0), + [2303] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_string_content_repeat1, 2, 0, 0), SHIFT_REPEAT(1119), + [2306] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_string_content_repeat1, 2, 0, 0), SHIFT_REPEAT(1119), + [2309] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_string_content_repeat1, 2, 0, 0), + [2311] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_expression_list_repeat1, 2, 0, 32), + [2313] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_in_clause, 6, 0, 145), + [2315] = {.entry = {.count = 1, .reusable = true}}, SHIFT(202), + [2317] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_mapping_pattern, 3, 0, 0), + [2319] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dictionary_splat, 2, 0, 14), + [2321] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_literal_pattern, 4, 0, 153), + [2323] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_literal_pattern, 3, 0, 136), + [2325] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_sequence_pattern, 5, 0, 0), + [2327] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_mapping_pattern, 5, 0, 0), + [2329] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_group_pattern, 3, 0, 135), + [2331] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_mapping_pattern, 4, 0, 0), + [2333] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_in_clause, 4, 0, 101), + [2335] = {.entry = {.count = 1, .reusable = true}}, SHIFT(228), + [2337] = {.entry = {.count = 1, .reusable = true}}, SHIFT(364), + [2339] = {.entry = {.count = 1, .reusable = true}}, SHIFT(197), + [2341] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_raise_statement, 2, 0, 0), + [2343] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_class_pattern, 5, 0, 140), + [2345] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_mapping_pattern, 6, 0, 0), + [2347] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_class_pattern, 6, 0, 140), + [2349] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_sequence_pattern, 2, 0, 0), + [2351] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_sequence_pattern, 4, 0, 0), + [2353] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1749), + [2355] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1745), + [2357] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1723), + [2359] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_mapping_pattern, 7, 0, 0), + [2361] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_string_content, 1, 0, 0), + [2363] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1119), + [2365] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1119), + [2367] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_string_content, 1, 0, 0), + [2369] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_class_pattern, 7, 0, 140), + [2371] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_class_pattern, 8, 0, 140), + [2373] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_class_pattern, 3, 0, 140), + [2375] = {.entry = {.count = 1, .reusable = true}}, SHIFT(992), + [2377] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if_clause, 2, 0, 0), + [2379] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1740), + [2381] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1699), + [2383] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1659), + [2385] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_in_clause, 5, 0, 127), + [2387] = {.entry = {.count = 1, .reusable = true}}, SHIFT(224), + [2389] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_for_in_clause, 5, 0, 126), + [2391] = {.entry = {.count = 1, .reusable = true}}, SHIFT(214), + [2393] = {.entry = {.count = 1, .reusable = true}}, SHIFT(173), + [2395] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_mapping_pattern, 2, 0, 0), + [2397] = {.entry = {.count = 1, .reusable = true}}, SHIFT(417), + [2399] = {.entry = {.count = 1, .reusable = true}}, SHIFT(405), + [2401] = {.entry = {.count = 1, .reusable = true}}, SHIFT(420), + [2403] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), + [2405] = {.entry = {.count = 1, .reusable = true}}, SHIFT(376), + [2407] = {.entry = {.count = 1, .reusable = true}}, SHIFT(377), + [2409] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_lambda_within_for_in_clause, 3, 0, 33), + [2411] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__collection_elements_repeat1, 2, 0, 32), + [2413] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1245), + [2415] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1381), + [2417] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1571), + [2419] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__right_hand_side, 1, 0, 0), + [2421] = {.entry = {.count = 1, .reusable = true}}, SHIFT(277), + [2423] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1632), + [2425] = {.entry = {.count = 1, .reusable = true}}, SHIFT(259), + [2427] = {.entry = {.count = 1, .reusable = true}}, SHIFT(958), + [2429] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1342), + [2431] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1344), + [2433] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_statement, 1, 0, 0), + [2435] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_item, 1, -1, 12), + [2437] = {.entry = {.count = 1, .reusable = true}}, SHIFT(527), + [2439] = {.entry = {.count = 1, .reusable = true}}, SHIFT(348), + [2441] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), + [2443] = {.entry = {.count = 1, .reusable = true}}, SHIFT(257), + [2445] = {.entry = {.count = 1, .reusable = true}}, SHIFT(901), + [2447] = {.entry = {.count = 1, .reusable = true}}, SHIFT(270), + [2449] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1693), + [2451] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_yield, 3, 0, 0), + [2453] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1254), + [2455] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1744), + [2457] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1679), + [2459] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_lambda_within_for_in_clause, 4, 0, 67), + [2461] = {.entry = {.count = 1, .reusable = true}}, SHIFT(261), + [2463] = {.entry = {.count = 1, .reusable = true}}, SHIFT(927), + [2465] = {.entry = {.count = 1, .reusable = true}}, SHIFT(435), + [2467] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), + [2469] = {.entry = {.count = 1, .reusable = true}}, SHIFT(436), + [2471] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), + [2473] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1251), + [2475] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1343), + [2477] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1638), + [2479] = {.entry = {.count = 1, .reusable = true}}, SHIFT(301), + [2481] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_print_statement, 2, 0, 10), + [2483] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pair, 3, 0, 63), + [2485] = {.entry = {.count = 1, .reusable = true}}, SHIFT(352), + [2487] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_exec_statement, 4, 0, 15), + [2489] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type, 1, 0, 0), + [2491] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_return_statement, 2, 0, 0), + [2493] = {.entry = {.count = 1, .reusable = true}}, SHIFT(263), + [2495] = {.entry = {.count = 1, .reusable = true}}, SHIFT(713), + [2497] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_delete_statement, 2, 0, 11), + [2499] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__match_pattern, 1, 0, 0), + [2501] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1662), + [2503] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assert_statement, 2, 0, 0), + [2505] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_match_value_pattern_repeat1, 2, 0, 0), SHIFT_REPEAT(1641), + [2508] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression_list, 2, 0, 16), + [2510] = {.entry = {.count = 1, .reusable = true}}, SHIFT(172), + [2512] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 3, 0, 98), + [2514] = {.entry = {.count = 1, .reusable = true}}, SHIFT(303), + [2516] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1641), + [2518] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dotted_name, 1, 0, 0), + [2520] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__index_expression, 1, 0, 0), + [2522] = {.entry = {.count = 1, .reusable = true}}, SHIFT(279), + [2524] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_chevron, 2, 0, 0), + [2526] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_string_repeat1, 1, 0, 3), + [2528] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_string_repeat1, 1, 0, 3), + [2530] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_expression_list_repeat1, 2, 0, 37), + [2532] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_expression_list_repeat1, 2, 0, 37), SHIFT_REPEAT(256), + [2535] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), + [2537] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_string_repeat1, 1, 0, 4), + [2539] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_string_repeat1, 1, 0, 4), + [2541] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91), + [2543] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typevar_parameter, 1, 0, 6), + [2545] = {.entry = {.count = 1, .reusable = true}}, SHIFT(344), + [2547] = {.entry = {.count = 1, .reusable = true}}, SHIFT(294), + [2549] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assert_statement_repeat1, 2, 0, 0), + [2551] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dotted_name, 2, 0, 0), + [2553] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_decorated_definition_repeat1, 2, 0, 0), + [2555] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_decorated_definition_repeat1, 2, 0, 0), SHIFT_REPEAT(386), + [2558] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_interpolation, 4, 0, 44), + [2560] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interpolation, 4, 0, 44), + [2562] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_interpolation, 5, 0, 44), + [2564] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interpolation, 5, 0, 44), + [2566] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_default_parameter, 3, 0, 36), + [2568] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 2, 0, 69), + [2570] = {.entry = {.count = 1, .reusable = true}}, SHIFT(310), + [2572] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), + [2574] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_exception_list_repeat1, 2, 0, 32), + [2576] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typed_default_parameter, 5, 0, 122), + [2578] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type_bound, 2, 0, 112), + [2580] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1251), + [2582] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_expression_list_repeat1, 2, 0, 37), SHIFT_REPEAT(254), + [2585] = {.entry = {.count = 1, .reusable = true}}, SHIFT(185), + [2587] = {.entry = {.count = 1, .reusable = true}}, SHIFT(171), + [2589] = {.entry = {.count = 1, .reusable = true}}, SHIFT(187), + [2591] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_interpolation, 6, 0, 44), + [2593] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interpolation, 6, 0, 44), + [2595] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1340), + [2597] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1324), + [2599] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_print_statement_repeat1, 2, 0, 10), + [2601] = {.entry = {.count = 1, .reusable = true}}, SHIFT(112), + [2603] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_open_sequence_match_pattern_repeat1, 2, 0, 0), + [2605] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_open_sequence_match_pattern_repeat1, 2, 0, 0), SHIFT_REPEAT(981), + [2608] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_interpolation, 3, 0, 44), + [2610] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_interpolation, 3, 0, 44), + [2612] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_as_pattern, 3, 0, 139), + [2614] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 4, 0, 123), + [2616] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_alias_statement, 4, 0, 64), + [2618] = {.entry = {.count = 1, .reusable = true}}, SHIFT(190), + [2620] = {.entry = {.count = 1, .reusable = true}}, SHIFT(122), + [2622] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1234), + [2624] = {.entry = {.count = 1, .reusable = true}}, SHIFT(211), + [2626] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_format_specifier, 1, 0, 0), + [2628] = {.entry = {.count = 1, .reusable = true}}, SHIFT(189), + [2630] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1315), + [2632] = {.entry = {.count = 1, .reusable = true}}, SHIFT(203), + [2634] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1431), + [2636] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1356), + [2638] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1287), + [2640] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1502), + [2642] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1302), + [2644] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1617), + [2646] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__import_list, 1, 0, 6), + [2648] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_alias_statement, 5, 0, 91), + [2650] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1281), + [2652] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1330), + [2654] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1435), + [2656] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_keyword_argument, 3, 0, 23), + [2658] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_keyword_argument, 3, 0, 36), + [2660] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_expression_list_repeat1, 2, 0, 37), SHIFT_REPEAT(255), + [2663] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__import_list, 3, 0, 24), + [2665] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__import_list, 2, 0, 6), + [2667] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 3, 0, 97), + [2669] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_format_specifier_repeat1, 2, 0, 0), + [2671] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_format_specifier_repeat1, 2, 0, 0), SHIFT_REPEAT(189), + [2674] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_format_specifier_repeat1, 2, 0, 0), SHIFT_REPEAT(1305), + [2677] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1341), + [2679] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__collection_elements, 2, 0, 16), + [2681] = {.entry = {.count = 1, .reusable = true}}, SHIFT(175), + [2683] = {.entry = {.count = 1, .reusable = true}}, SHIFT(177), + [2685] = {.entry = {.count = 1, .reusable = true}}, SHIFT(176), + [2687] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__collection_elements_repeat1, 2, 0, 37), + [2689] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__collection_elements_repeat1, 2, 0, 37), SHIFT_REPEAT(250), + [2692] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_star_pattern, 2, 0, 11), + [2694] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_raise_statement, 4, 0, 54), + [2696] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), + [2698] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_format_specifier, 2, 0, 0), + [2700] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1305), + [2702] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__type_param_default, 2, 0, 113), + [2704] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 5, 0, 144), + [2706] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_raise_statement, 3, 0, 31), + [2708] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_slice, 4, 0, 124), + [2710] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_argument_list_repeat1, 2, 0, 32), + [2712] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__simple_statements_repeat1, 2, 0, 0), SHIFT_REPEAT(133), + [2715] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__simple_statements_repeat1, 2, 0, 0), + [2717] = {.entry = {.count = 1, .reusable = true}}, SHIFT(300), + [2719] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_print_statement, 2, 0, 0), + [2721] = {.entry = {.count = 1, .reusable = true}}, SHIFT(869), + [2723] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_guard, 2, 0, 137), + [2725] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1391), + [2727] = {.entry = {.count = 1, .reusable = true}}, SHIFT(128), + [2729] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__import_list_repeat1, 2, 0, 25), + [2731] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1259), + [2733] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1492), + [2735] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124), + [2737] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_global_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(1696), + [2740] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_global_statement_repeat1, 2, 0, 0), + [2742] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typed_parameter, 3, 0, 66), + [2744] = {.entry = {.count = 1, .reusable = true}}, SHIFT(361), + [2746] = {.entry = {.count = 1, .reusable = true}}, SHIFT(870), + [2748] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1300), + [2750] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__import_list, 2, 0, 24), + [2752] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1304), + [2754] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__import_list_repeat1, 2, 0, 45), SHIFT_REPEAT(1503), + [2757] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__import_list_repeat1, 2, 0, 45), + [2759] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_import_prefix, 1, 0, 0), + [2761] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1352), + [2763] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_list_splat, 3, 0, 0), + [2765] = {.entry = {.count = 1, .reusable = true}}, SHIFT(129), + [2767] = {.entry = {.count = 1, .reusable = true}}, SHIFT(318), + [2769] = {.entry = {.count = 1, .reusable = true}}, SHIFT(127), + [2771] = {.entry = {.count = 1, .reusable = true}}, SHIFT(328), + [2773] = {.entry = {.count = 1, .reusable = true}}, SHIFT(342), + [2775] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_exception_list_repeat1, 2, 0, 37), SHIFT_REPEAT(417), + [2778] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_exception_list_repeat1, 2, 0, 37), + [2780] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_list_splat, 3, 0, 50), + [2782] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), + [2784] = {.entry = {.count = 1, .reusable = true}}, SHIFT(131), + [2786] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_import_prefix_repeat1, 2, 0, 0), + [2788] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_import_prefix_repeat1, 2, 0, 0), SHIFT_REPEAT(1352), + [2791] = {.entry = {.count = 1, .reusable = true}}, SHIFT(368), + [2793] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__patterns, 1, 0, 7), + [2795] = {.entry = {.count = 1, .reusable = true}}, SHIFT(466), + [2797] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1463), + [2799] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1527), + [2801] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97), + [2803] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__patterns, 2, 0, 16), + [2805] = {.entry = {.count = 1, .reusable = true}}, SHIFT(471), + [2807] = {.entry = {.count = 1, .reusable = true}}, SHIFT(379), + [2809] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1384), + [2811] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1616), + [2813] = {.entry = {.count = 1, .reusable = true}}, SHIFT(118), + [2815] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_exception_list, 2, 0, 16), + [2817] = {.entry = {.count = 1, .reusable = true}}, SHIFT(357), + [2819] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1696), + [2821] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_nonlocal_statement, 2, 0, 0), + [2823] = {.entry = {.count = 1, .reusable = true}}, SHIFT(385), + [2825] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_print_statement_repeat1, 2, 0, 53), SHIFT_REPEAT(393), + [2828] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_print_statement_repeat1, 2, 0, 53), + [2830] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), + [2832] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), + [2834] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assert_statement_repeat1, 2, 0, 0), SHIFT_REPEAT(352), + [2837] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typevartuple_parameter, 2, 0, 25), + [2839] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), + [2841] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115), + [2843] = {.entry = {.count = 1, .reusable = true}}, SHIFT(119), + [2845] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_paramspec_parameter, 2, 0, 25), + [2847] = {.entry = {.count = 1, .reusable = true}}, SHIFT(291), + [2849] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_print_statement, 3, 0, 30), + [2851] = {.entry = {.count = 1, .reusable = true}}, SHIFT(841), + [2853] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameter, 1, 0, 0), + [2855] = {.entry = {.count = 1, .reusable = true}}, SHIFT(268), + [2857] = {.entry = {.count = 1, .reusable = true}}, SHIFT(434), + [2859] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), + [2861] = {.entry = {.count = 1, .reusable = true}}, SHIFT(415), + [2863] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_statement, 3, 0, 0), + [2865] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typevar_parameter, 2, 0, 87), + [2867] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assert_statement, 3, 0, 0), + [2869] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_decorator, 3, 0, 0), + [2871] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_global_statement, 2, 0, 0), + [2873] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_nonlocal_statement, 3, 0, 0), + [2875] = {.entry = {.count = 1, .reusable = true}}, SHIFT(402), + [2877] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1028), + [2879] = {.entry = {.count = 1, .reusable = true}}, SHIFT(132), + [2881] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_with_clause_repeat1, 2, 0, 0), + [2883] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_with_clause_repeat1, 2, 0, 0), SHIFT_REPEAT(336), + [2886] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_exec_statement, 5, 0, 15), + [2888] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130), + [2890] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1582), + [2892] = {.entry = {.count = 1, .reusable = true}}, SHIFT(296), + [2894] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_print_statement, 3, 0, 29), + [2896] = {.entry = {.count = 1, .reusable = true}}, SHIFT(248), + [2898] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1032), [2900] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__parameters, 1, 0, 0), - [2902] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1182), - [2904] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1446), - [2906] = {.entry = {.count = 1, .reusable = true}}, SHIFT(936), - [2908] = {.entry = {.count = 1, .reusable = true}}, SHIFT(203), - [2910] = {.entry = {.count = 1, .reusable = true}}, SHIFT(260), - [2912] = {.entry = {.count = 1, .reusable = true}}, SHIFT(920), - [2914] = {.entry = {.count = 1, .reusable = true}}, SHIFT(347), - [2916] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108), - [2918] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__match_maybe_star_pattern, 1, 0, 0), - [2920] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__match_patterns, 1, 0, 0), - [2922] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_argument_list_repeat1, 2, 0, 36), - [2924] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_argument_list_repeat1, 2, 0, 36), SHIFT_REPEAT(233), - [2927] = {.entry = {.count = 1, .reusable = true}}, SHIFT(349), - [2929] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_exec_statement, 2, 0, 15), - [2931] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1658), - [2933] = {.entry = {.count = 1, .reusable = true}}, SHIFT(702), - [2935] = {.entry = {.count = 1, .reusable = true}}, SHIFT(196), - [2937] = {.entry = {.count = 1, .reusable = true}}, SHIFT(964), - [2939] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_dictionary_repeat1, 2, 0, 36), SHIFT_REPEAT(282), - [2942] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_dictionary_repeat1, 2, 0, 36), - [2944] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_relative_import, 1, 0, 0), - [2946] = {.entry = {.count = 1, .reusable = true}}, SHIFT(154), - [2948] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignment, 3, 0, 37), - [2950] = {.entry = {.count = 1, .reusable = true}}, SHIFT(307), - [2952] = {.entry = {.count = 1, .reusable = true}}, SHIFT(253), - [2954] = {.entry = {.count = 1, .reusable = true}}, SHIFT(974), - [2956] = {.entry = {.count = 1, .reusable = true}}, SHIFT(254), - [2958] = {.entry = {.count = 1, .reusable = true}}, SHIFT(981), - [2960] = {.entry = {.count = 1, .reusable = true}}, SHIFT(950), - [2962] = {.entry = {.count = 1, .reusable = true}}, SHIFT(213), - [2964] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1396), - [2966] = {.entry = {.count = 1, .reusable = true}}, SHIFT(951), - [2968] = {.entry = {.count = 1, .reusable = true}}, SHIFT(957), - [2970] = {.entry = {.count = 1, .reusable = true}}, SHIFT(214), - [2972] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1379), - [2974] = {.entry = {.count = 1, .reusable = true}}, SHIFT(959), - [2976] = {.entry = {.count = 1, .reusable = true}}, SHIFT(215), - [2978] = {.entry = {.count = 1, .reusable = true}}, SHIFT(960), - [2980] = {.entry = {.count = 1, .reusable = true}}, SHIFT(216), - [2982] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_aliased_import, 3, 0, 45), - [2984] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_match_class_pattern_repeat2, 2, 0, 0), - [2986] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_match_class_pattern_repeat2, 2, 0, 0), SHIFT_REPEAT(1560), - [2989] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1008), - [2991] = {.entry = {.count = 1, .reusable = true}}, SHIFT(257), - [2993] = {.entry = {.count = 1, .reusable = true}}, SHIFT(882), - [2995] = {.entry = {.count = 1, .reusable = true}}, SHIFT(258), - [2997] = {.entry = {.count = 1, .reusable = true}}, SHIFT(885), - [2999] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1026), - [3001] = {.entry = {.count = 1, .reusable = true}}, SHIFT(889), - [3003] = {.entry = {.count = 1, .reusable = true}}, SHIFT(222), - [3005] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1131), - [3007] = {.entry = {.count = 1, .reusable = true}}, SHIFT(890), - [3009] = {.entry = {.count = 1, .reusable = true}}, SHIFT(261), - [3011] = {.entry = {.count = 1, .reusable = true}}, SHIFT(923), - [3013] = {.entry = {.count = 1, .reusable = true}}, SHIFT(315), - [3015] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_clause, 1, 0, 0), - [3017] = {.entry = {.count = 1, .reusable = true}}, SHIFT(895), - [3019] = {.entry = {.count = 1, .reusable = true}}, SHIFT(223), - [3021] = {.entry = {.count = 1, .reusable = true}}, SHIFT(896), - [3023] = {.entry = {.count = 1, .reusable = true}}, SHIFT(224), - [3025] = {.entry = {.count = 1, .reusable = true}}, SHIFT(897), - [3027] = {.entry = {.count = 1, .reusable = true}}, SHIFT(225), - [3029] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1431), - [3031] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1640), - [3033] = {.entry = {.count = 1, .reusable = true}}, SHIFT(308), - [3035] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1314), - [3037] = {.entry = {.count = 1, .reusable = true}}, SHIFT(237), - [3039] = {.entry = {.count = 1, .reusable = true}}, SHIFT(264), - [3041] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__parameters_repeat1, 2, 0, 0), - [3043] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__parameters_repeat1, 2, 0, 0), SHIFT_REPEAT(1028), - [3046] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_item, 3, -1, 58), - [3048] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameters, 4, 0, 112), - [3050] = {.entry = {.count = 1, .reusable = true}}, SHIFT(718), - [3052] = {.entry = {.count = 1, .reusable = true}}, SHIFT(198), - [3054] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1467), - [3056] = {.entry = {.count = 1, .reusable = true}}, SHIFT(732), - [3058] = {.entry = {.count = 1, .reusable = true}}, SHIFT(189), - [3060] = {.entry = {.count = 1, .reusable = true}}, SHIFT(711), - [3062] = {.entry = {.count = 1, .reusable = true}}, SHIFT(200), - [3064] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_clause, 2, 0, 0), - [3066] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85), - [3068] = {.entry = {.count = 1, .reusable = true}}, SHIFT(235), - [3070] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104), - [3072] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1482), - [3074] = {.entry = {.count = 1, .reusable = true}}, SHIFT(309), - [3076] = {.entry = {.count = 1, .reusable = true}}, SHIFT(903), - [3078] = {.entry = {.count = 1, .reusable = true}}, SHIFT(209), - [3080] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_positional_separator, 1, 0, 0), - [3082] = {.entry = {.count = 1, .reusable = true}}, SHIFT(980), - [3084] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1132), - [3086] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_match_class_pattern_repeat1, 2, 0, 0), - [3088] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_match_class_pattern_repeat1, 2, 0, 0), SHIFT_REPEAT(984), - [3091] = {.entry = {.count = 1, .reusable = true}}, SHIFT(935), - [3093] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1167), - [3095] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1023), - [3097] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1476), - [3099] = {.entry = {.count = 1, .reusable = true}}, SHIFT(246), - [3101] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1313), - [3103] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1134), - [3105] = {.entry = {.count = 1, .reusable = true}}, SHIFT(996), - [3107] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1159), - [3109] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_match_mapping_pattern_repeat1, 2, 0, 0), SHIFT_REPEAT(1021), - [3112] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_match_mapping_pattern_repeat1, 2, 0, 0), - [3114] = {.entry = {.count = 1, .reusable = true}}, SHIFT(878), - [3116] = {.entry = {.count = 1, .reusable = true}}, SHIFT(201), - [3118] = {.entry = {.count = 1, .reusable = true}}, SHIFT(943), - [3120] = {.entry = {.count = 1, .reusable = true}}, SHIFT(228), - [3122] = {.entry = {.count = 1, .reusable = true}}, SHIFT(927), - [3124] = {.entry = {.count = 1, .reusable = true}}, SHIFT(262), - [3126] = {.entry = {.count = 1, .reusable = true}}, SHIFT(728), - [3128] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1328), - [3130] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1329), - [3132] = {.entry = {.count = 1, .reusable = true}}, SHIFT(249), - [3134] = {.entry = {.count = 1, .reusable = true}}, SHIFT(731), - [3136] = {.entry = {.count = 1, .reusable = true}}, SHIFT(234), - [3138] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_index_expression_list, 2, 0, 16), - [3140] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), - [3142] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1218), - [3144] = {.entry = {.count = 1, .reusable = true}}, SHIFT(299), - [3146] = {.entry = {.count = 1, .reusable = true}}, SHIFT(243), - [3148] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_format_specifier_repeat1, 1, 0, 73), - [3150] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_format_specifier_repeat1, 1, 0, 73), - [3152] = {.entry = {.count = 1, .reusable = true}}, SHIFT(352), - [3154] = {.entry = {.count = 1, .reusable = true}}, SHIFT(303), - [3156] = {.entry = {.count = 1, .reusable = true}}, SHIFT(928), - [3158] = {.entry = {.count = 1, .reusable = true}}, SHIFT(248), - [3160] = {.entry = {.count = 1, .reusable = true}}, SHIFT(247), - [3162] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__parameters_repeat1, 2, 0, 0), SHIFT_REPEAT(1029), - [3165] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_statement, 2, 0, 5), - [3167] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_index_expression_list_repeat1, 2, 0, 31), - [3169] = {.entry = {.count = 1, .reusable = true}}, SHIFT(846), - [3171] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), - [3173] = {.entry = {.count = 1, .reusable = true}}, SHIFT(276), - [3175] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), - [3177] = {.entry = {.count = 1, .reusable = true}}, SHIFT(270), - [3179] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_from_statement, 6, 0, 97), - [3181] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_paramspec_parameter, 3, 0, 108), - [3183] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignment, 5, 0, 92), - [3185] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typevar_parameter, 3, 0, 111), - [3187] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pass_statement, 1, 0, 0), - [3189] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_parameters_repeat1, 2, 0, 86), - [3191] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_break_statement, 1, 0, 0), - [3193] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_positional_pattern, 1, 0, 0), - [3195] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_future_import_statement, 4, 0, 46), - [3197] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_wildcard_import, 1, 0, 0), - [3199] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typevar_parameter, 2, 0, 85), - [3201] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignment, 3, 0, 38), - [3203] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_continue_statement, 1, 0, 0), - [3205] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_from_statement, 4, 0, 47), - [3207] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_from_statement, 4, 0, 48), - [3209] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_augmented_assignment, 3, 0, 39), - [3211] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101), - [3213] = {.entry = {.count = 1, .reusable = true}}, SHIFT(271), - [3215] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84), - [3217] = {.entry = {.count = 1, .reusable = true}}, SHIFT(284), - [3219] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_key_value_pattern, 3, 0, 62), - [3221] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), - [3223] = {.entry = {.count = 1, .reusable = true}}, SHIFT(285), - [3225] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1663), - [3227] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1126), - [3229] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), - [3231] = {.entry = {.count = 1, .reusable = true}}, SHIFT(286), - [3233] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameters, 2, 0, 0), - [3235] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1160), - [3237] = {.entry = {.count = 1, .reusable = true}}, SHIFT(96), - [3239] = {.entry = {.count = 1, .reusable = true}}, SHIFT(278), - [3241] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typevartuple_parameter, 3, 0, 108), - [3243] = {.entry = {.count = 1, .reusable = true}}, SHIFT(934), - [3245] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1078), - [3247] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1078), - [3249] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1239), - [3251] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_dictionary_repeat1, 2, 0, 31), - [3253] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1662), - [3255] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1138), - [3257] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1138), - [3259] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_future_import_statement, 6, 0, 96), - [3261] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1623), - [3263] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameters, 3, 0, 0), - [3265] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1124), - [3267] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1124), - [3269] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_keyword_pattern, 3, 0, 160), - [3271] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_argument_list_repeat1, 2, 0, 67), - [3273] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_double_star_pattern, 2, 0, 11), - [3275] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), - [3277] = {.entry = {.count = 1, .reusable = true}}, SHIFT(265), - [3279] = {.entry = {.count = 1, .reusable = true}}, SHIFT(118), - [3281] = {.entry = {.count = 1, .reusable = true}}, SHIFT(929), - [3283] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1326), - [3285] = {.entry = {.count = 1, .reusable = true}}, SHIFT(948), - [3287] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), - [3289] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), - [3291] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1304), - [3293] = {.entry = {.count = 1, .reusable = true}}, SHIFT(869), - [3295] = {.entry = {.count = 1, .reusable = true}}, SHIFT(907), - [3297] = {.entry = {.count = 1, .reusable = true}}, SHIFT(376), - [3299] = {.entry = {.count = 1, .reusable = true}}, SHIFT(872), - [3301] = {.entry = {.count = 1, .reusable = true}}, SHIFT(510), - [3303] = {.entry = {.count = 1, .reusable = true}}, SHIFT(873), - [3305] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), - [3307] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_lambda_parameters, 1, 0, 0), - [3309] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1323), - [3311] = {.entry = {.count = 1, .reusable = true}}, SHIFT(709), - [3313] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), - [3315] = {.entry = {.count = 1, .reusable = true}}, SHIFT(875), - [3317] = {.entry = {.count = 1, .reusable = true}}, SHIFT(387), - [3319] = {.entry = {.count = 1, .reusable = true}}, SHIFT(876), - [3321] = {.entry = {.count = 1, .reusable = true}}, SHIFT(91), - [3323] = {.entry = {.count = 1, .reusable = true}}, SHIFT(111), - [3325] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95), - [3327] = {.entry = {.count = 1, .reusable = true}}, SHIFT(97), - [3329] = {.entry = {.count = 1, .reusable = true}}, SHIFT(627), - [3331] = {.entry = {.count = 1, .reusable = true}}, SHIFT(879), - [3333] = {.entry = {.count = 1, .reusable = true}}, SHIFT(880), - [3335] = {.entry = {.count = 1, .reusable = true}}, SHIFT(705), - [3337] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), - [3339] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117), - [3341] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110), - [3343] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1301), - [3345] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_clause, 5, 0, 0), - [3347] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115), - [3349] = {.entry = {.count = 1, .reusable = true}}, SHIFT(116), - [3351] = {.entry = {.count = 1, .reusable = true}}, SHIFT(726), - [3353] = {.entry = {.count = 1, .reusable = true}}, SHIFT(891), - [3355] = {.entry = {.count = 1, .reusable = true}}, SHIFT(883), - [3357] = {.entry = {.count = 1, .reusable = true}}, SHIFT(998), - [3359] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1281), - [3361] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_clause, 4, 0, 0), - [3363] = {.entry = {.count = 1, .reusable = true}}, SHIFT(884), - [3365] = {.entry = {.count = 1, .reusable = true}}, SHIFT(475), - [3367] = {.entry = {.count = 1, .reusable = true}}, SHIFT(886), - [3369] = {.entry = {.count = 1, .reusable = true}}, SHIFT(631), - [3371] = {.entry = {.count = 1, .reusable = true}}, SHIFT(887), - [3373] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1421), - [3375] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1420), - [3377] = {.entry = {.count = 1, .reusable = true}}, SHIFT(92), - [3379] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_clause, 3, 0, 0), - [3381] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109), - [3383] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1004), - [3385] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1217), - [3387] = {.entry = {.count = 1, .reusable = true}}, SHIFT(921), - [3389] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), - [3391] = {.entry = {.count = 1, .reusable = true}}, SHIFT(363), - [3393] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1299), - [3395] = {.entry = {.count = 1, .reusable = true}}, SHIFT(729), - [3397] = {.entry = {.count = 1, .reusable = true}}, SHIFT(730), - [3399] = {.entry = {.count = 1, .reusable = true}}, SHIFT(294), - [3401] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_relative_import, 2, 0, 23), - [3403] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), - [3405] = {.entry = {.count = 1, .reusable = true}}, SHIFT(706), - [3407] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1372), - [3409] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1130), - [3411] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1272), - [3413] = {.entry = {.count = 1, .reusable = true}}, SHIFT(707), - [3415] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), - [3417] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1049), - [3419] = {.entry = {.count = 1, .reusable = true}}, SHIFT(360), - [3421] = {.entry = {.count = 1, .reusable = true}}, SHIFT(121), - [3423] = {.entry = {.count = 1, .reusable = true}}, SHIFT(658), - [3425] = {.entry = {.count = 1, .reusable = true}}, SHIFT(413), - [3427] = {.entry = {.count = 1, .reusable = true}}, SHIFT(690), - [3429] = {.entry = {.count = 1, .reusable = true}}, SHIFT(969), - [3431] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1363), - [3433] = {.entry = {.count = 1, .reusable = true}}, SHIFT(910), - [3435] = {.entry = {.count = 1, .reusable = true}}, SHIFT(937), - [3437] = {.entry = {.count = 1, .reusable = true}}, SHIFT(945), - [3439] = {.entry = {.count = 1, .reusable = true}}, SHIFT(982), - [3441] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1545), - [3443] = {.entry = {.count = 1, .reusable = true}}, SHIFT(302), - [3445] = {.entry = {.count = 1, .reusable = true}}, SHIFT(966), - [3447] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1571), - [3449] = {.entry = {.count = 1, .reusable = true}}, SHIFT(721), - [3451] = {.entry = {.count = 1, .reusable = true}}, SHIFT(975), - [3453] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), - [3455] = {.entry = {.count = 1, .reusable = true}}, SHIFT(123), - [3457] = {.entry = {.count = 1, .reusable = true}}, SHIFT(428), - [3459] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1256), - [3461] = {.entry = {.count = 1, .reusable = true}}, SHIFT(722), - [3463] = {.entry = {.count = 1, .reusable = true}}, SHIFT(947), - [3465] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1371), - [3467] = {.entry = {.count = 1, .reusable = true}}, SHIFT(125), - [3469] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1289), - [3471] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1502), - [3473] = {.entry = {.count = 1, .reusable = true}}, SHIFT(673), - [3475] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1568), - [3477] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1514), - [3479] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1244), - [3481] = {.entry = {.count = 1, .reusable = true}}, SHIFT(944), - [3483] = {.entry = {.count = 1, .reusable = true}}, SHIFT(967), - [3485] = {.entry = {.count = 1, .reusable = true}}, SHIFT(970), - [3487] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1169), - [3489] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), - [3491] = {.entry = {.count = 1, .reusable = true}}, SHIFT(398), - [3493] = {.entry = {.count = 1, .reusable = true}}, SHIFT(124), - [3495] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1369), - [3497] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1370), - [3499] = {.entry = {.count = 1, .reusable = true}}, SHIFT(976), - [3501] = {.entry = {.count = 1, .reusable = true}}, SHIFT(978), - [3503] = {.entry = {.count = 1, .reusable = true}}, SHIFT(655), - [3505] = {.entry = {.count = 1, .reusable = true}}, SHIFT(922), - [3507] = {.entry = {.count = 1, .reusable = true}}, SHIFT(985), + [2902] = {.entry = {.count = 1, .reusable = true}}, SHIFT(429), + [2904] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87), + [2906] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__match_maybe_star_pattern, 1, 0, 0), + [2908] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__match_patterns, 1, 0, 0), + [2910] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1200), + [2912] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1417), + [2914] = {.entry = {.count = 1, .reusable = true}}, SHIFT(400), + [2916] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_exec_statement, 2, 0, 15), + [2918] = {.entry = {.count = 1, .reusable = true}}, SHIFT(904), + [2920] = {.entry = {.count = 1, .reusable = true}}, SHIFT(204), + [2922] = {.entry = {.count = 1, .reusable = true}}, SHIFT(905), + [2924] = {.entry = {.count = 1, .reusable = true}}, SHIFT(205), + [2926] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1337), + [2928] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1338), + [2930] = {.entry = {.count = 1, .reusable = true}}, SHIFT(404), + [2932] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameters, 3, 0, 89), + [2934] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1510), + [2936] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1633), + [2938] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1150), + [2940] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1426), + [2942] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1006), + [2944] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1419), + [2946] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1151), + [2948] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_match_class_pattern_repeat1, 2, 0, 0), + [2950] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_match_class_pattern_repeat1, 2, 0, 0), SHIFT_REPEAT(991), + [2953] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1433), + [2955] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_argument_list_repeat1, 2, 0, 37), + [2957] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_argument_list_repeat1, 2, 0, 37), SHIFT_REPEAT(246), + [2960] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1111), + [2962] = {.entry = {.count = 1, .reusable = true}}, SHIFT(909), + [2964] = {.entry = {.count = 1, .reusable = true}}, SHIFT(206), + [2966] = {.entry = {.count = 1, .reusable = true}}, SHIFT(156), + [2968] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignment, 3, 0, 38), + [2970] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__parameters_repeat1, 2, 0, 0), + [2972] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__import_list_repeat1, 2, 0, 45), SHIFT_REPEAT(1465), + [2975] = {.entry = {.count = 1, .reusable = true}}, SHIFT(910), + [2977] = {.entry = {.count = 1, .reusable = true}}, SHIFT(207), + [2979] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_aliased_import, 3, 0, 46), + [2981] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_index_expression_list_repeat1, 2, 0, 37), SHIFT_REPEAT(252), + [2984] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_index_expression_list_repeat1, 2, 0, 37), + [2986] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_match_class_pattern_repeat2, 2, 0, 0), + [2988] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_match_class_pattern_repeat2, 2, 0, 0), SHIFT_REPEAT(1593), + [2991] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1031), + [2993] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_dictionary_repeat1, 2, 0, 37), SHIFT_REPEAT(265), + [2996] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_dictionary_repeat1, 2, 0, 37), + [2998] = {.entry = {.count = 1, .reusable = true}}, SHIFT(260), + [3000] = {.entry = {.count = 1, .reusable = true}}, SHIFT(928), + [3002] = {.entry = {.count = 1, .reusable = true}}, SHIFT(262), + [3004] = {.entry = {.count = 1, .reusable = true}}, SHIFT(966), + [3006] = {.entry = {.count = 1, .reusable = true}}, SHIFT(968), + [3008] = {.entry = {.count = 1, .reusable = true}}, SHIFT(217), + [3010] = {.entry = {.count = 1, .reusable = true}}, SHIFT(243), + [3012] = {.entry = {.count = 1, .reusable = true}}, SHIFT(969), + [3014] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1349), + [3016] = {.entry = {.count = 1, .reusable = true}}, SHIFT(972), + [3018] = {.entry = {.count = 1, .reusable = true}}, SHIFT(218), + [3020] = {.entry = {.count = 1, .reusable = true}}, SHIFT(973), + [3022] = {.entry = {.count = 1, .reusable = true}}, SHIFT(219), + [3024] = {.entry = {.count = 1, .reusable = true}}, SHIFT(975), + [3026] = {.entry = {.count = 1, .reusable = true}}, SHIFT(220), + [3028] = {.entry = {.count = 1, .reusable = true}}, SHIFT(976), + [3030] = {.entry = {.count = 1, .reusable = true}}, SHIFT(221), + [3032] = {.entry = {.count = 1, .reusable = true}}, SHIFT(245), + [3034] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_index_expression_list, 2, 0, 16), + [3036] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_relative_import, 1, 0, 0), + [3038] = {.entry = {.count = 1, .reusable = true}}, SHIFT(258), + [3040] = {.entry = {.count = 1, .reusable = true}}, SHIFT(946), + [3042] = {.entry = {.count = 1, .reusable = true}}, SHIFT(875), + [3044] = {.entry = {.count = 1, .reusable = true}}, SHIFT(226), + [3046] = {.entry = {.count = 1, .reusable = true}}, SHIFT(876), + [3048] = {.entry = {.count = 1, .reusable = true}}, SHIFT(240), + [3050] = {.entry = {.count = 1, .reusable = true}}, SHIFT(881), + [3052] = {.entry = {.count = 1, .reusable = true}}, SHIFT(227), + [3054] = {.entry = {.count = 1, .reusable = true}}, SHIFT(882), + [3056] = {.entry = {.count = 1, .reusable = true}}, SHIFT(191), + [3058] = {.entry = {.count = 1, .reusable = true}}, SHIFT(336), + [3060] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_clause, 2, 0, 0), + [3062] = {.entry = {.count = 1, .reusable = true}}, SHIFT(884), + [3064] = {.entry = {.count = 1, .reusable = true}}, SHIFT(229), + [3066] = {.entry = {.count = 1, .reusable = true}}, SHIFT(885), + [3068] = {.entry = {.count = 1, .reusable = true}}, SHIFT(230), + [3070] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_match_mapping_pattern_repeat1, 2, 0, 0), SHIFT_REPEAT(1029), + [3073] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_match_mapping_pattern_repeat1, 2, 0, 0), + [3075] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_clause, 1, 0, 0), + [3077] = {.entry = {.count = 1, .reusable = true}}, SHIFT(264), + [3079] = {.entry = {.count = 1, .reusable = true}}, SHIFT(721), + [3081] = {.entry = {.count = 1, .reusable = true}}, SHIFT(934), + [3083] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1034), + [3085] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1033), + [3087] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1706), + [3089] = {.entry = {.count = 1, .reusable = true}}, SHIFT(309), + [3091] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__parameters_repeat1, 2, 0, 0), SHIFT_REPEAT(1036), + [3094] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1114), + [3096] = {.entry = {.count = 1, .reusable = true}}, SHIFT(982), + [3098] = {.entry = {.count = 1, .reusable = true}}, SHIFT(935), + [3100] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1110), + [3102] = {.entry = {.count = 1, .reusable = true}}, SHIFT(929), + [3104] = {.entry = {.count = 1, .reusable = true}}, SHIFT(194), + [3106] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), + [3108] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1260), + [3110] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1505), + [3112] = {.entry = {.count = 1, .reusable = true}}, SHIFT(98), + [3114] = {.entry = {.count = 1, .reusable = true}}, SHIFT(724), + [3116] = {.entry = {.count = 1, .reusable = true}}, SHIFT(196), + [3118] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1010), + [3120] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1124), + [3122] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_format_specifier_repeat1, 1, 0, 74), + [3124] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_format_specifier_repeat1, 1, 0, 74), + [3126] = {.entry = {.count = 1, .reusable = true}}, SHIFT(983), + [3128] = {.entry = {.count = 1, .reusable = true}}, SHIFT(313), + [3130] = {.entry = {.count = 1, .reusable = true}}, SHIFT(299), + [3132] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1439), + [3134] = {.entry = {.count = 1, .reusable = true}}, SHIFT(273), + [3136] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_parameters, 4, 0, 115), + [3138] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_type_parameters_repeat1, 2, 0, 116), SHIFT_REPEAT(1200), + [3141] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_parameters_repeat1, 2, 0, 116), + [3143] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_positional_separator, 1, 0, 0), + [3145] = {.entry = {.count = 1, .reusable = true}}, SHIFT(289), + [3147] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1263), + [3149] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1312), + [3151] = {.entry = {.count = 1, .reusable = true}}, SHIFT(249), + [3153] = {.entry = {.count = 1, .reusable = true}}, SHIFT(503), + [3155] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__parameters_repeat1, 2, 0, 0), SHIFT_REPEAT(1035), + [3158] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99), + [3160] = {.entry = {.count = 1, .reusable = true}}, SHIFT(727), + [3162] = {.entry = {.count = 1, .reusable = true}}, SHIFT(198), + [3164] = {.entry = {.count = 1, .reusable = true}}, SHIFT(728), + [3166] = {.entry = {.count = 1, .reusable = true}}, SHIFT(199), + [3168] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_item, 3, -1, 59), + [3170] = {.entry = {.count = 1, .reusable = true}}, SHIFT(730), + [3172] = {.entry = {.count = 1, .reusable = true}}, SHIFT(200), + [3174] = {.entry = {.count = 1, .reusable = true}}, SHIFT(731), + [3176] = {.entry = {.count = 1, .reusable = true}}, SHIFT(201), + [3178] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1508), + [3180] = {.entry = {.count = 1, .reusable = true}}, SHIFT(931), + [3182] = {.entry = {.count = 1, .reusable = true}}, SHIFT(253), + [3184] = {.entry = {.count = 1, .reusable = true}}, SHIFT(251), + [3186] = {.entry = {.count = 1, .reusable = true}}, SHIFT(302), + [3188] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_keyword_pattern, 3, 0, 164), + [3190] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_index_expression_list_repeat1, 2, 0, 32), + [3192] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameters, 3, 0, 0), + [3194] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1263), + [3196] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), + [3198] = {.entry = {.count = 1, .reusable = true}}, SHIFT(285), + [3200] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_argument_list_repeat1, 2, 0, 68), + [3202] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), + [3204] = {.entry = {.count = 1, .reusable = true}}, SHIFT(286), + [3206] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86), + [3208] = {.entry = {.count = 1, .reusable = true}}, SHIFT(287), + [3210] = {.entry = {.count = 1, .reusable = true}}, SHIFT(93), + [3212] = {.entry = {.count = 1, .reusable = true}}, SHIFT(288), + [3214] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94), + [3216] = {.entry = {.count = 1, .reusable = true}}, SHIFT(284), + [3218] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_key_value_pattern, 3, 0, 63), + [3220] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parameters, 2, 0, 0), + [3222] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_statement, 2, 0, 5), + [3224] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1731), + [3226] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1707), + [3228] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1128), + [3230] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1128), + [3232] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_from_statement, 5, 0, 75), + [3234] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), + [3236] = {.entry = {.count = 1, .reusable = true}}, SHIFT(271), + [3238] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_from_statement, 5, 0, 76), + [3240] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typevartuple_parameter, 3, 0, 111), + [3242] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_paramspec_parameter, 3, 0, 111), + [3244] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_future_import_statement, 4, 0, 47), + [3246] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_dictionary_repeat1, 2, 0, 32), + [3248] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1627), + [3250] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1140), + [3252] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typevar_parameter, 2, 0, 88), + [3254] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_wildcard_import, 1, 0, 0), + [3256] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_typevar_parameter, 3, 0, 114), + [3258] = {.entry = {.count = 1, .reusable = true}}, SHIFT(121), + [3260] = {.entry = {.count = 1, .reusable = true}}, SHIFT(274), + [3262] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_type_parameters_repeat1, 2, 0, 89), + [3264] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_from_statement, 4, 0, 48), + [3266] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_from_statement, 4, 0, 49), + [3268] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_pass_statement, 1, 0, 0), + [3270] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_future_import_statement, 6, 0, 99), + [3272] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_from_statement, 6, 0, 100), + [3274] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignment, 3, 0, 39), + [3276] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1079), + [3278] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1079), + [3280] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_break_statement, 1, 0, 0), + [3282] = {.entry = {.count = 1, .reusable = true}}, SHIFT(861), + [3284] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_statement, 3, 0, 22), + [3286] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1133), + [3288] = {.entry = {.count = 1, .reusable = true}}, SHIFT(939), + [3290] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_continue_statement, 1, 0, 0), + [3292] = {.entry = {.count = 1, .reusable = false}}, SHIFT(1127), + [3294] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1127), + [3296] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import_from_statement, 7, 0, 125), + [3298] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_augmented_assignment, 3, 0, 40), + [3300] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_double_star_pattern, 2, 0, 11), + [3302] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignment, 5, 0, 95), + [3304] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_match_positional_pattern, 1, 0, 0), + [3306] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109), + [3308] = {.entry = {.count = 1, .reusable = true}}, SHIFT(280), + [3310] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), + [3312] = {.entry = {.count = 1, .reusable = true}}, SHIFT(722), + [3314] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1542), + [3316] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1442), + [3318] = {.entry = {.count = 1, .reusable = true}}, SHIFT(716), + [3320] = {.entry = {.count = 1, .reusable = true}}, SHIFT(648), + [3322] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1180), + [3324] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1275), + [3326] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), + [3328] = {.entry = {.count = 1, .reusable = true}}, SHIFT(495), + [3330] = {.entry = {.count = 1, .reusable = true}}, SHIFT(714), + [3332] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1605), + [3334] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), + [3336] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1148), + [3338] = {.entry = {.count = 1, .reusable = true}}, SHIFT(900), + [3340] = {.entry = {.count = 1, .reusable = true}}, SHIFT(100), + [3342] = {.entry = {.count = 1, .reusable = true}}, SHIFT(492), + [3344] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85), + [3346] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88), + [3348] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90), + [3350] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), + [3352] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1306), + [3354] = {.entry = {.count = 1, .reusable = true}}, SHIFT(430), + [3356] = {.entry = {.count = 1, .reusable = true}}, SHIFT(930), + [3358] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1293), + [3360] = {.entry = {.count = 1, .reusable = true}}, SHIFT(126), + [3362] = {.entry = {.count = 1, .reusable = true}}, SHIFT(116), + [3364] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104), + [3366] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108), + [3368] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110), + [3370] = {.entry = {.count = 1, .reusable = true}}, SHIFT(113), + [3372] = {.entry = {.count = 1, .reusable = true}}, SHIFT(987), + [3374] = {.entry = {.count = 1, .reusable = true}}, SHIFT(993), + [3376] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1366), + [3378] = {.entry = {.count = 1, .reusable = true}}, SHIFT(955), + [3380] = {.entry = {.count = 1, .reusable = true}}, SHIFT(891), + [3382] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1517), + [3384] = {.entry = {.count = 1, .reusable = true}}, SHIFT(711), + [3386] = {.entry = {.count = 1, .reusable = true}}, SHIFT(894), + [3388] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1285), + [3390] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), + [3392] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1282), + [3394] = {.entry = {.count = 1, .reusable = true}}, SHIFT(125), + [3396] = {.entry = {.count = 1, .reusable = true}}, SHIFT(899), + [3398] = {.entry = {.count = 1, .reusable = true}}, SHIFT(926), + [3400] = {.entry = {.count = 1, .reusable = true}}, SHIFT(902), + [3402] = {.entry = {.count = 1, .reusable = true}}, SHIFT(378), + [3404] = {.entry = {.count = 1, .reusable = true}}, SHIFT(906), + [3406] = {.entry = {.count = 1, .reusable = true}}, SHIFT(956), + [3408] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1584), + [3410] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1585), + [3412] = {.entry = {.count = 1, .reusable = true}}, SHIFT(658), + [3414] = {.entry = {.count = 1, .reusable = true}}, SHIFT(933), + [3416] = {.entry = {.count = 1, .reusable = true}}, SHIFT(937), + [3418] = {.entry = {.count = 1, .reusable = true}}, SHIFT(938), + [3420] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1379), + [3422] = {.entry = {.count = 1, .reusable = true}}, SHIFT(944), + [3424] = {.entry = {.count = 1, .reusable = true}}, SHIFT(317), + [3426] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1536), + [3428] = {.entry = {.count = 1, .reusable = true}}, SHIFT(106), + [3430] = {.entry = {.count = 1, .reusable = true}}, SHIFT(948), + [3432] = {.entry = {.count = 1, .reusable = true}}, SHIFT(957), + [3434] = {.entry = {.count = 1, .reusable = true}}, SHIFT(710), + [3436] = {.entry = {.count = 1, .reusable = true}}, SHIFT(990), + [3438] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_lambda_parameters, 1, 0, 0), + [3440] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1009), + [3442] = {.entry = {.count = 1, .reusable = true}}, SHIFT(360), + [3444] = {.entry = {.count = 1, .reusable = true}}, SHIFT(932), + [3446] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117), + [3448] = {.entry = {.count = 1, .reusable = true}}, SHIFT(718), + [3450] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1425), + [3452] = {.entry = {.count = 1, .reusable = true}}, SHIFT(414), + [3454] = {.entry = {.count = 1, .reusable = true}}, SHIFT(670), + [3456] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1403), + [3458] = {.entry = {.count = 1, .reusable = true}}, SHIFT(951), + [3460] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102), + [3462] = {.entry = {.count = 1, .reusable = true}}, SHIFT(669), + [3464] = {.entry = {.count = 1, .reusable = true}}, SHIFT(959), + [3466] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_clause, 4, 0, 0), + [3468] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1396), + [3470] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_clause, 3, 0, 0), + [3472] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [3474] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_relative_import, 2, 0, 25), + [3476] = {.entry = {.count = 1, .reusable = true}}, SHIFT(686), + [3478] = {.entry = {.count = 1, .reusable = true}}, SHIFT(961), + [3480] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1185), + [3482] = {.entry = {.count = 1, .reusable = true}}, SHIFT(962), + [3484] = {.entry = {.count = 1, .reusable = true}}, SHIFT(738), + [3486] = {.entry = {.count = 1, .reusable = true}}, SHIFT(111), + [3488] = {.entry = {.count = 1, .reusable = true}}, SHIFT(120), + [3490] = {.entry = {.count = 1, .reusable = true}}, SHIFT(963), + [3492] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), + [3494] = {.entry = {.count = 1, .reusable = true}}, SHIFT(123), + [3496] = {.entry = {.count = 1, .reusable = true}}, SHIFT(922), + [3498] = {.entry = {.count = 1, .reusable = true}}, SHIFT(947), + [3500] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1314), + [3502] = {.entry = {.count = 1, .reusable = true}}, SHIFT(965), + [3504] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1375), + [3506] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_with_clause, 5, 0, 0), + [3508] = {.entry = {.count = 1, .reusable = true}}, SHIFT(936), + [3510] = {.entry = {.count = 1, .reusable = true}}, SHIFT(943), + [3512] = {.entry = {.count = 1, .reusable = true}}, SHIFT(384), + [3514] = {.entry = {.count = 1, .reusable = true}}, SHIFT(651), + [3516] = {.entry = {.count = 1, .reusable = true}}, SHIFT(381), + [3518] = {.entry = {.count = 1, .reusable = true}}, SHIFT(712), + [3520] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1053), + [3522] = {.entry = {.count = 1, .reusable = true}}, SHIFT(952), + [3524] = {.entry = {.count = 1, .reusable = true}}, SHIFT(341), + [3526] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1012), + [3528] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1392), + [3530] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1374), + [3532] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1397), + [3534] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1398), + [3536] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89), + [3538] = {.entry = {.count = 1, .reusable = true}}, SHIFT(308), + [3540] = {.entry = {.count = 1, .reusable = true}}, SHIFT(1334), + [3542] = {.entry = {.count = 1, .reusable = true}}, SHIFT(717), }; enum ts_external_scanner_symbol_identifiers { @@ -84112,10 +85783,10 @@ static const bool ts_external_scanner_states[12][EXTERNAL_TOKEN_COUNT] = { [ts_external_token__string_start] = true, }, [8] = { - [ts_external_token__string_start] = true, + [ts_external_token__template_string_start] = true, }, [9] = { - [ts_external_token__template_string_start] = true, + [ts_external_token__string_start] = true, }, [10] = { [ts_external_token__newline] = true, diff --git a/python/extractor/tsg-python/tsp/src/tree_sitter/array.h b/python/extractor/tsg-python/tsp/src/tree_sitter/array.h index e99918e5d85..56fc8cd4709 100644 --- a/python/extractor/tsg-python/tsp/src/tree_sitter/array.h +++ b/python/extractor/tsg-python/tsp/src/tree_sitter/array.h @@ -60,7 +60,13 @@ extern "C" { /// Free any memory allocated for this array. Note that this does not free any /// memory allocated for the array's contents. -#define array_delete(self) _array__delete((self), (void *)(self)->contents, sizeof(*self)) +#define array_delete(self) \ + do { \ + if ((self)->contents) ts_free((self)->contents); \ + (self)->contents = NULL; \ + (self)->size = 0; \ + (self)->capacity = 0; \ + } while (0) /// Push a new `element` onto the end of the array. #define array_push(self, element) \ @@ -130,12 +136,11 @@ extern "C" { /// Swap one array with another #define array_swap(self, other) \ do { \ - struct Swap swapped_contents = _array__swap( \ - (void *)(self)->contents, &(self)->size, &(self)->capacity, \ - (void *)(other)->contents, &(other)->size, &(other)->capacity \ - ); \ - (self)->contents = swapped_contents.self_contents; \ - (other)->contents = swapped_contents.other_contents; \ + void *_array_swap_tmp = (void *)(self)->contents; \ + (self)->contents = (other)->contents; \ + (other)->contents = _array_swap_tmp; \ + _array__swap(&(self)->size, &(self)->capacity, \ + &(other)->size, &(other)->capacity); \ } while (0) /// Get the size of the array contents @@ -188,12 +193,6 @@ extern "C" { // The `Array` type itself was not altered as a solution in order to avoid breakage // with existing consumers (in particular, parsers with external scanners). -/// This is not what you're looking for, see `array_delete`. -static inline void _array__delete(void *self, void *contents, size_t self_size) { - if (contents) ts_free(contents); - if (self) memset(self, 0, self_size); -} - /// This is not what you're looking for, see `array_erase`. static inline void _array__erase(void* self_contents, uint32_t *size, size_t element_size, uint32_t index) { @@ -228,31 +227,15 @@ static inline void *_array__assign(void* self_contents, uint32_t *self_size, uin return new_contents; } -struct Swap { - void *self_contents; - void *other_contents; -}; - /// This is not what you're looking for, see `array_swap`. -// static inline void _array__swap(Array *self, Array *other) { -static inline struct Swap _array__swap(void *self_contents, uint32_t *self_size, uint32_t *self_capacity, - void *other_contents, uint32_t *other_size, uint32_t *other_capacity) { - void *new_self_contents = other_contents; - uint32_t new_self_size = *other_size; - uint32_t new_self_capacity = *other_capacity; - - void *new_other_contents = self_contents; - *other_size = *self_size; - *other_capacity = *self_capacity; - - *self_size = new_self_size; - *self_capacity = new_self_capacity; - - struct Swap out = { - .self_contents = new_self_contents, - .other_contents = new_other_contents, - }; - return out; +static inline void _array__swap(uint32_t *self_size, uint32_t *self_capacity, + uint32_t *other_size, uint32_t *other_capacity) { + uint32_t tmp_size = *self_size; + uint32_t tmp_capacity = *self_capacity; + *self_size = *other_size; + *self_capacity = *other_capacity; + *other_size = tmp_size; + *other_capacity = tmp_capacity; } /// This is not what you're looking for, see `array_push` or `array_grow_by`. diff --git a/python/ql/lib/CHANGELOG.md b/python/ql/lib/CHANGELOG.md index ec5ff5ffe4f..69fa60a6675 100644 --- a/python/ql/lib/CHANGELOG.md +++ b/python/ql/lib/CHANGELOG.md @@ -1,3 +1,15 @@ +## 7.0.5 + +### Minor Analysis Improvements + +- The Python extractor now supports the new `lazy import ...` and `lazy from ... import ...` (as defined in [PEP-810](https://peps.python.org/pep-0810/)) that will be part of Python 3.15. + +## 7.0.4 + +### Bug Fixes + +- Fixed the resolution of relative imports such as `from . import helper` inside namespace packages (directories without an `__init__.py` file), which previously did not work correctly, leading to missing flow. + ## 7.0.3 No user-facing changes. diff --git a/python/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md b/python/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md new file mode 100644 index 00000000000..522801a0e46 --- /dev/null +++ b/python/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md @@ -0,0 +1,4 @@ +--- +category: feature +--- +* Data flow barriers and barrier guards can now be added using data extensions. For more information see [Customizing library models for Python](https://codeql.github.com/docs/codeql-language-guides/customizing-library-models-for-python/). diff --git a/python/ql/lib/change-notes/2026-04-10-support-comprehension-unpacking.md b/python/ql/lib/change-notes/2026-04-10-support-comprehension-unpacking.md new file mode 100644 index 00000000000..d7406d0a606 --- /dev/null +++ b/python/ql/lib/change-notes/2026-04-10-support-comprehension-unpacking.md @@ -0,0 +1,5 @@ +--- +category: minorAnalysis +--- + +- The Python extractor now supports unpacking in comprehensions, e.g. `[*x for x in nested]` (as defined in [PEP-798](https://peps.python.org/pep-0798/)) that will be part of Python 3.15. diff --git a/python/ql/lib/change-notes/2026-03-11-fix-unresolved-relative-imports.md b/python/ql/lib/change-notes/released/7.0.4.md similarity index 89% rename from python/ql/lib/change-notes/2026-03-11-fix-unresolved-relative-imports.md rename to python/ql/lib/change-notes/released/7.0.4.md index 15290fb3d66..91464598a0e 100644 --- a/python/ql/lib/change-notes/2026-03-11-fix-unresolved-relative-imports.md +++ b/python/ql/lib/change-notes/released/7.0.4.md @@ -1,5 +1,5 @@ ---- -category: fix ---- +## 7.0.4 + +### Bug Fixes - Fixed the resolution of relative imports such as `from . import helper` inside namespace packages (directories without an `__init__.py` file), which previously did not work correctly, leading to missing flow. diff --git a/python/ql/lib/change-notes/released/7.0.5.md b/python/ql/lib/change-notes/released/7.0.5.md new file mode 100644 index 00000000000..e205660dfde --- /dev/null +++ b/python/ql/lib/change-notes/released/7.0.5.md @@ -0,0 +1,5 @@ +## 7.0.5 + +### Minor Analysis Improvements + +- The Python extractor now supports the new `lazy import ...` and `lazy from ... import ...` (as defined in [PEP-810](https://peps.python.org/pep-0810/)) that will be part of Python 3.15. diff --git a/python/ql/lib/codeql-pack.release.yml b/python/ql/lib/codeql-pack.release.yml index cf80607304e..2cff21d59fe 100644 --- a/python/ql/lib/codeql-pack.release.yml +++ b/python/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 7.0.3 +lastReleaseVersion: 7.0.5 diff --git a/python/ql/lib/qlpack.yml b/python/ql/lib/qlpack.yml index bdf4cd0d804..8564a098594 100644 --- a/python/ql/lib/qlpack.yml +++ b/python/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-all -version: 7.0.4-dev +version: 7.0.6-dev groups: python dbscheme: semmlecode.python.dbscheme extractor: python diff --git a/python/ql/lib/semmle/python/AstGenerated.qll b/python/ql/lib/semmle/python/AstGenerated.qll index 8805a43bec3..056e727845c 100644 --- a/python/ql/lib/semmle/python/AstGenerated.qll +++ b/python/ql/lib/semmle/python/AstGenerated.qll @@ -698,6 +698,9 @@ class Import_ extends @py_Import, Stmt { /** Gets an alias of this import statement. */ Alias getAName() { result = this.getNames().getAnItem() } + /** Whether the lazy property of this import statement is true. */ + predicate isLazy() { py_bools(this, 2) } + override string toString() { result = "Import" } } @@ -720,6 +723,9 @@ class ImportStar_ extends @py_ImportStar, Stmt { /** Gets the module of this import * statement. */ Expr getModule() { py_exprs(result, _, this, 1) } + /** Whether the lazy property of this import * statement is true. */ + predicate isLazy() { py_bools(this, 2) } + override string toString() { result = "ImportStar" } } diff --git a/python/ql/lib/semmle/python/frameworks/Eventlet.model.yml b/python/ql/lib/semmle/python/frameworks/Eventlet.model.yml new file mode 100644 index 00000000000..f60b9218819 --- /dev/null +++ b/python/ql/lib/semmle/python/frameworks/Eventlet.model.yml @@ -0,0 +1,9 @@ +extensions: + - addsTo: + pack: codeql/python-all + extensible: typeModel + data: + # See https://eventlet.readthedocs.io/en/latest/patching.html + - ['socket.socket', 'eventlet', 'Member[green].Member[socket].Member[socket].ReturnValue'] + # eventlet also re-exports as eventlet.socket for convenience + - ['socket.socket', 'eventlet', 'Member[socket].Member[socket].ReturnValue'] diff --git a/python/ql/lib/semmle/python/frameworks/Gevent.model.yml b/python/ql/lib/semmle/python/frameworks/Gevent.model.yml new file mode 100644 index 00000000000..974ecedd073 --- /dev/null +++ b/python/ql/lib/semmle/python/frameworks/Gevent.model.yml @@ -0,0 +1,7 @@ +extensions: + - addsTo: + pack: codeql/python-all + extensible: typeModel + data: + # See https://www.gevent.org/api/gevent.socket.html + - ['socket.socket', 'gevent', 'Member[socket].Member[socket].ReturnValue'] diff --git a/python/ql/lib/semmle/python/frameworks/Stdlib.model.yml b/python/ql/lib/semmle/python/frameworks/Stdlib.model.yml index a01bf1b40ba..5b50dff313e 100644 --- a/python/ql/lib/semmle/python/frameworks/Stdlib.model.yml +++ b/python/ql/lib/semmle/python/frameworks/Stdlib.model.yml @@ -27,6 +27,8 @@ extensions: extensible: sinkModel data: - ["zipfile.ZipFile","Member[extractall].Argument[0,path:]", "path-injection"] + # See https://docs.python.org/3/library/socket.html#socket.socket.bind + - ["socket.socket", "Member[bind].Argument[0,address:]", "bind-socket-all-interfaces"] - addsTo: pack: codeql/python-all @@ -184,6 +186,8 @@ extensions: pack: codeql/python-all extensible: typeModel data: + # See https://docs.python.org/3/library/socket.html#socket.socket + - ['socket.socket', 'socket', 'Member[socket].ReturnValue'] # See https://docs.python.org/3/library/urllib.parse.html#urllib.parse.urlparse - ["urllib.parse.ParseResult~Subclass", 'urllib', 'Member[parse].Member[urlparse]'] diff --git a/python/ql/lib/semmle/python/frameworks/data/internal/ApiGraphModels.qll b/python/ql/lib/semmle/python/frameworks/data/internal/ApiGraphModels.qll index 60fe40e716d..155fb4b7c78 100644 --- a/python/ql/lib/semmle/python/frameworks/data/internal/ApiGraphModels.qll +++ b/python/ql/lib/semmle/python/frameworks/data/internal/ApiGraphModels.qll @@ -10,6 +10,10 @@ * `type, path, kind` * - Summaries: * `type, path, input, output, kind` + * - Barriers: + * `type, path, kind` + * - BarrierGuards: + * `type, path, acceptingValue, kind` * - Types: * `type1, type2, path` * @@ -42,7 +46,8 @@ * 3. The `input` and `output` columns specify how data enters and leaves the element selected by the * first `(type, path)` tuple. Both strings are `.`-separated access paths * of the same syntax as the `path` column. - * 4. The `kind` column is a tag that can be referenced from QL to determine to + * 4. The `acceptingValue` column of barrier guard models specifies which branch of the guard is blocking flow. It can be "true" or "false". + * 5. The `kind` column is a tag that can be referenced from QL to determine to * which classes the interpreted elements should be added. For example, for * sources `"remote"` indicates a default remote flow source, and for summaries * `"taint"` indicates a default additional taint step and `"value"` indicates a @@ -355,11 +360,11 @@ private predicate barrierModel(string type, string path, string kind, string mod /** Holds if a barrier guard model exists for the given parameters. */ private predicate barrierGuardModel( - string type, string path, string branch, string kind, string model + string type, string path, string acceptingValue, string kind, string model ) { // No deprecation adapter for barrier models, they were not around back then. exists(QlBuiltins::ExtensionId madId | - Extensions::barrierGuardModel(type, path, branch, kind, madId) and + Extensions::barrierGuardModel(type, path, acceptingValue, kind, madId) and model = "MaD:" + madId.toString() ) } @@ -783,16 +788,16 @@ module ModelOutput { } /** - * Holds if a barrier model contributed `barrier` with the given `kind` for the given `branch`. + * Holds if a barrier model contributed `barrier` with the given `kind` for the given `acceptingValue`. */ cached - API::Node getABarrierGuardNode(string kind, boolean branch, string model) { - exists(string type, string path, string branch_str | - branch = true and branch_str = "true" + API::Node getABarrierGuardNode(string kind, boolean acceptingValue, string model) { + exists(string type, string path, string acceptingValue_str | + acceptingValue = true and acceptingValue_str = "true" or - branch = false and branch_str = "false" + acceptingValue = false and acceptingValue_str = "false" | - barrierGuardModel(type, path, branch_str, kind, model) and + barrierGuardModel(type, path, acceptingValue_str, kind, model) and result = getNodeFromPath(type, path) ) } @@ -856,12 +861,12 @@ module ModelOutput { API::Node getABarrierNode(string kind) { result = getABarrierNode(kind, _) } /** - * Holds if an external model contributed `barrier-guard` with the given `kind` and `branch`. + * Holds if an external model contributed `barrier-guard` with the given `kind` and `acceptingValue`. * * INTERNAL: Do not use. */ - API::Node getABarrierGuardNode(string kind, boolean branch) { - result = getABarrierGuardNode(kind, branch, _) + API::Node getABarrierGuardNode(string kind, boolean acceptingValue) { + result = getABarrierGuardNode(kind, acceptingValue, _) } /** diff --git a/python/ql/lib/semmle/python/frameworks/data/internal/ApiGraphModelsExtensions.qll b/python/ql/lib/semmle/python/frameworks/data/internal/ApiGraphModelsExtensions.qll index 2a644aabb95..8d8a4f5fd88 100644 --- a/python/ql/lib/semmle/python/frameworks/data/internal/ApiGraphModelsExtensions.qll +++ b/python/ql/lib/semmle/python/frameworks/data/internal/ApiGraphModelsExtensions.qll @@ -33,11 +33,11 @@ extensible predicate barrierModel( * of the given `kind` and `madId` is the data extension row number. * `path` is assumed to lead to a parameter of a call (possibly `self`), and * the call is guarding the parameter. - * `branch` is either `true` or `false`, indicating which branch of the guard - * is protecting the parameter. + * `acceptingValue` is either `true` or `false`, indicating which branch of + * the guard is protecting the parameter. */ extensible predicate barrierGuardModel( - string type, string path, string branch, string kind, QlBuiltins::ExtensionId madId + string type, string path, string acceptingValue, string kind, QlBuiltins::ExtensionId madId ); /** diff --git a/python/ql/lib/semmlecode.python.dbscheme b/python/ql/lib/semmlecode.python.dbscheme index 279cbb08d38..eb5fc917c79 100644 --- a/python/ql/lib/semmlecode.python.dbscheme +++ b/python/ql/lib/semmlecode.python.dbscheme @@ -517,6 +517,7 @@ py_extracted_version(int module : @py_Module ref, /* Import.location = 0, location */ /* Import.names = 1, alias_list */ +/* Import.is_lazy = 2, bool */ /* ImportExpr.location = 0, location */ /* ImportExpr.parenthesised = 1, bool */ @@ -526,6 +527,7 @@ py_extracted_version(int module : @py_Module ref, /* ImportStar.location = 0, location */ /* ImportStar.module = 1, expr */ +/* ImportStar.is_lazy = 2, bool */ /* ImportMember.location = 0, location */ /* ImportMember.parenthesised = 1, bool */ @@ -1127,7 +1129,7 @@ case @py_unaryop.kind of @py_ast_node = @py_Class | @py_Function | @py_Module | @py_StringPart | @py_comprehension | @py_dict_item | @py_expr | @py_pattern | @py_stmt | @py_type_parameter; -@py_bool_parent = @py_For | @py_Function | @py_Print | @py_With | @py_expr | @py_pattern; +@py_bool_parent = @py_For | @py_Function | @py_Import | @py_ImportStar | @py_Print | @py_With | @py_expr | @py_pattern; @py_dict_item_list_parent = @py_Call | @py_ClassExpr | @py_Dict; diff --git a/python/ql/lib/upgrades/279cbb08d387ecd57ac177e87c94cfd5ca62f792/old.dbscheme b/python/ql/lib/upgrades/279cbb08d387ecd57ac177e87c94cfd5ca62f792/old.dbscheme new file mode 100644 index 00000000000..279cbb08d38 --- /dev/null +++ b/python/ql/lib/upgrades/279cbb08d387ecd57ac177e87c94cfd5ca62f792/old.dbscheme @@ -0,0 +1,1289 @@ +/* + * This dbscheme is auto-generated by 'semmle/dbscheme_gen.py'. + * Run "make dbscheme" in python/extractor/ to regenerate. + * WARNING: Any modifications to this file will be lost. + * Relations can be changed by modifying master.py or + * by adding rules to dbscheme.template + */ + +/* This is a dummy line to alter the dbscheme, so we can make a database upgrade + * without actually changing any of the dbscheme predicates. It contains a date + * to allow for such updates in the future as well. + * + * 2020-07-02 + * + * DO NOT remove this comment carelessly, since it can revert the dbscheme back to a + * previously seen state (matching a previously seen SHA), which would make the upgrade + * mechanism not work properly. + */ + +/*- DEPRECATED: External defects and metrics -*/ + +externalDefects( + unique int id : @externalDefect, + varchar(900) queryPath : string ref, + int location : @location ref, + varchar(900) message : string ref, + float severity : float ref +); + +externalMetrics( + unique int id : @externalMetric, + varchar(900) queryPath : string ref, + int location : @location ref, + float value : float ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Database metadata -*/ + +/** + * The CLI will automatically emit applicable tuples for this table, + * such as `databaseMetadata("isOverlay", "true")` when building an + * overlay database. + */ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + +/*- Overlay support -*/ + +/** + * The CLI will automatically emit tuples for each new/modified/deleted file + * when building an overlay database. + */ +overlayChangedFiles( + string path: string ref +); + +/*- DEPRECATED: Snapshot date -*/ + +snapshotDate(unique date snapshotDate : date ref); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- DEPRECATED: Duplicate code -*/ + +duplicateCode( + unique int id : @duplication, + string relativePath : string ref, + int equivClass : int ref +); + +similarCode( + unique int id : @similarity, + string relativePath : string ref, + int equivClass : int ref +); + +@duplication_or_similarity = @duplication | @similarity + +tokens( + int id : @duplication_or_similarity ref, + int offset : int ref, + int beginLine : int ref, + int beginColumn : int ref, + int endLine : int ref, + int endColumn : int ref +); + +/*- DEPRECATED: Version control data -*/ + +svnentries( + unique int id : @svnentry, + string revision : string ref, + string author : string ref, + date revisionDate : date ref, + int changeSize : int ref +) + +svnaffectedfiles( + int id : @svnentry ref, + int file : @file ref, + string action : string ref +) + +svnentrymsg( + unique int id : @svnentry ref, + string message : string ref +) + +svnchurn( + int commit : @svnentry ref, + int file : @file ref, + int addedLines : int ref, + int deletedLines : int ref +) + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; + +/*- YAML -*/ + +#keyset[parent, idx] +yaml (unique int id: @yaml_node, + int kind: int ref, + int parent: @yaml_node_parent ref, + int idx: int ref, + string tag: string ref, + string tostring: string ref); + +case @yaml_node.kind of + 0 = @yaml_scalar_node +| 1 = @yaml_mapping_node +| 2 = @yaml_sequence_node +| 3 = @yaml_alias_node +; + +@yaml_collection_node = @yaml_mapping_node | @yaml_sequence_node; + +@yaml_node_parent = @yaml_collection_node | @file; + +yaml_anchors (unique int node: @yaml_node ref, + string anchor: string ref); + +yaml_aliases (unique int alias: @yaml_alias_node ref, + string target: string ref); + +yaml_scalars (unique int scalar: @yaml_scalar_node ref, + int style: int ref, + string value: string ref); + +yaml_errors (unique int id: @yaml_error, + string message: string ref); + +yaml_locations(unique int locatable: @yaml_locatable ref, + int location: @location_default ref); + +@yaml_locatable = @yaml_node | @yaml_error; + +/*- Python dbscheme -*/ + +/* + * Line metrics + */ +py_codelines(int id : @py_scope ref, + int count : int ref); + +py_commentlines(int id : @py_scope ref, + int count : int ref); + +py_docstringlines(int id : @py_scope ref, + int count : int ref); + +py_alllines(int id : @py_scope ref, + int count : int ref); + +/**************************** + Python dbscheme +****************************/ + +@sourceline = @file | @py_Module | @xmllocatable; + +@location = @location_ast | @location_default ; + +locations_ast(unique int id: @location_ast, + int module: @py_Module ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref); + +file_contents(unique int file: @file ref, string contents: string ref); + +py_module_path(int module: @py_Module ref, int file: @container ref); + +variable(unique int id : @py_variable, + int scope : @py_scope ref, + varchar(1) name : string ref); + +py_line_lengths(unique int id : @py_line, + int file: @py_Module ref, + int line : int ref, + int length : int ref); + +py_extracted_version(int module : @py_Module ref, + varchar(1) version : string ref); + +/* AUTO GENERATED PART STARTS HERE */ + + +/* AnnAssign.location = 0, location */ +/* AnnAssign.value = 1, expr */ +/* AnnAssign.annotation = 2, expr */ +/* AnnAssign.target = 3, expr */ + +/* Assert.location = 0, location */ +/* Assert.test = 1, expr */ +/* Assert.msg = 2, expr */ + +/* Assign.location = 0, location */ +/* Assign.value = 1, expr */ +/* Assign.targets = 2, expr_list */ + +/* AssignExpr.location = 0, location */ +/* AssignExpr.parenthesised = 1, bool */ +/* AssignExpr.value = 2, expr */ +/* AssignExpr.target = 3, expr */ + +/* Attribute.location = 0, location */ +/* Attribute.parenthesised = 1, bool */ +/* Attribute.value = 2, expr */ +/* Attribute.attr = 3, str */ +/* Attribute.ctx = 4, expr_context */ + +/* AugAssign.location = 0, location */ +/* AugAssign.operation = 1, BinOp */ + +/* Await.location = 0, location */ +/* Await.parenthesised = 1, bool */ +/* Await.value = 2, expr */ + +/* BinaryExpr.location = 0, location */ +/* BinaryExpr.parenthesised = 1, bool */ +/* BinaryExpr.left = 2, expr */ +/* BinaryExpr.op = 3, operator */ +/* BinaryExpr.right = 4, expr */ +/* BinaryExpr = AugAssign */ + +/* BoolExpr.location = 0, location */ +/* BoolExpr.parenthesised = 1, bool */ +/* BoolExpr.op = 2, boolop */ +/* BoolExpr.values = 3, expr_list */ + +/* Break.location = 0, location */ + +/* Bytes.location = 0, location */ +/* Bytes.parenthesised = 1, bool */ +/* Bytes.s = 2, bytes */ +/* Bytes.prefix = 3, bytes */ +/* Bytes.implicitly_concatenated_parts = 4, StringPart_list */ + +/* Call.location = 0, location */ +/* Call.parenthesised = 1, bool */ +/* Call.func = 2, expr */ +/* Call.positional_args = 3, expr_list */ +/* Call.named_args = 4, dict_item_list */ + +/* Case.location = 0, location */ +/* Case.pattern = 1, pattern */ +/* Case.guard = 2, expr */ +/* Case.body = 3, stmt_list */ + +/* Class.name = 0, str */ +/* Class.body = 1, stmt_list */ +/* Class = ClassExpr */ + +/* ClassExpr.location = 0, location */ +/* ClassExpr.parenthesised = 1, bool */ +/* ClassExpr.name = 2, str */ +/* ClassExpr.bases = 3, expr_list */ +/* ClassExpr.keywords = 4, dict_item_list */ +/* ClassExpr.inner_scope = 5, Class */ +/* ClassExpr.type_parameters = 6, type_parameter_list */ + +/* Compare.location = 0, location */ +/* Compare.parenthesised = 1, bool */ +/* Compare.left = 2, expr */ +/* Compare.ops = 3, cmpop_list */ +/* Compare.comparators = 4, expr_list */ + +/* Continue.location = 0, location */ + +/* Delete.location = 0, location */ +/* Delete.targets = 1, expr_list */ + +/* Dict.location = 0, location */ +/* Dict.parenthesised = 1, bool */ +/* Dict.items = 2, dict_item_list */ + +/* DictComp.location = 0, location */ +/* DictComp.parenthesised = 1, bool */ +/* DictComp.function = 2, Function */ +/* DictComp.iterable = 3, expr */ + +/* DictUnpacking.location = 0, location */ +/* DictUnpacking.value = 1, expr */ + +/* Ellipsis.location = 0, location */ +/* Ellipsis.parenthesised = 1, bool */ + +/* ExceptGroupStmt.location = 0, location */ +/* ExceptGroupStmt.type = 1, expr */ +/* ExceptGroupStmt.name = 2, expr */ +/* ExceptGroupStmt.body = 3, stmt_list */ + +/* ExceptStmt.location = 0, location */ +/* ExceptStmt.type = 1, expr */ +/* ExceptStmt.name = 2, expr */ +/* ExceptStmt.body = 3, stmt_list */ + +/* Exec.location = 0, location */ +/* Exec.body = 1, expr */ +/* Exec.globals = 2, expr */ +/* Exec.locals = 3, expr */ + +/* ExprStmt.location = 0, location */ +/* ExprStmt.value = 1, expr */ + +/* Filter.location = 0, location */ +/* Filter.parenthesised = 1, bool */ +/* Filter.value = 2, expr */ +/* Filter.filter = 3, expr */ + +/* For.location = 0, location */ +/* For.target = 1, expr */ +/* For.iter = 2, expr */ +/* For.body = 3, stmt_list */ +/* For.orelse = 4, stmt_list */ +/* For.is_async = 5, bool */ + +/* FormattedValue.location = 0, location */ +/* FormattedValue.parenthesised = 1, bool */ +/* FormattedValue.value = 2, expr */ +/* FormattedValue.conversion = 3, str */ +/* FormattedValue.format_spec = 4, JoinedStr */ + +/* Function.name = 0, str */ +/* Function.args = 1, parameter_list */ +/* Function.vararg = 2, expr */ +/* Function.kwonlyargs = 3, expr_list */ +/* Function.kwarg = 4, expr */ +/* Function.body = 5, stmt_list */ +/* Function.is_async = 6, bool */ +/* Function.type_parameters = 7, type_parameter_list */ +/* Function = FunctionParent */ + +/* FunctionExpr.location = 0, location */ +/* FunctionExpr.parenthesised = 1, bool */ +/* FunctionExpr.name = 2, str */ +/* FunctionExpr.args = 3, arguments */ +/* FunctionExpr.returns = 4, expr */ +/* FunctionExpr.inner_scope = 5, Function */ + +/* GeneratorExp.location = 0, location */ +/* GeneratorExp.parenthesised = 1, bool */ +/* GeneratorExp.function = 2, Function */ +/* GeneratorExp.iterable = 3, expr */ + +/* Global.location = 0, location */ +/* Global.names = 1, str_list */ + +/* Guard.location = 0, location */ +/* Guard.parenthesised = 1, bool */ +/* Guard.test = 2, expr */ + +/* If.location = 0, location */ +/* If.test = 1, expr */ +/* If.body = 2, stmt_list */ +/* If.orelse = 3, stmt_list */ + +/* IfExp.location = 0, location */ +/* IfExp.parenthesised = 1, bool */ +/* IfExp.test = 2, expr */ +/* IfExp.body = 3, expr */ +/* IfExp.orelse = 4, expr */ + +/* Import.location = 0, location */ +/* Import.names = 1, alias_list */ + +/* ImportExpr.location = 0, location */ +/* ImportExpr.parenthesised = 1, bool */ +/* ImportExpr.level = 2, int */ +/* ImportExpr.name = 3, str */ +/* ImportExpr.top = 4, bool */ + +/* ImportStar.location = 0, location */ +/* ImportStar.module = 1, expr */ + +/* ImportMember.location = 0, location */ +/* ImportMember.parenthesised = 1, bool */ +/* ImportMember.module = 2, expr */ +/* ImportMember.name = 3, str */ + +/* Fstring.location = 0, location */ +/* Fstring.parenthesised = 1, bool */ +/* Fstring.values = 2, expr_list */ +/* Fstring = FormattedValue */ + +/* JoinedTemplateString.location = 0, location */ +/* JoinedTemplateString.parenthesised = 1, bool */ +/* JoinedTemplateString.strings = 2, TemplateString_list */ + +/* KeyValuePair.location = 0, location */ +/* KeyValuePair.value = 1, expr */ +/* KeyValuePair.key = 2, expr */ + +/* Lambda.location = 0, location */ +/* Lambda.parenthesised = 1, bool */ +/* Lambda.args = 2, arguments */ +/* Lambda.inner_scope = 3, Function */ + +/* List.location = 0, location */ +/* List.parenthesised = 1, bool */ +/* List.elts = 2, expr_list */ +/* List.ctx = 3, expr_context */ + +/* ListComp.location = 0, location */ +/* ListComp.parenthesised = 1, bool */ +/* ListComp.function = 2, Function */ +/* ListComp.iterable = 3, expr */ +/* ListComp.generators = 4, comprehension_list */ +/* ListComp.elt = 5, expr */ + +/* MatchStmt.location = 0, location */ +/* MatchStmt.subject = 1, expr */ +/* MatchStmt.cases = 2, stmt_list */ + +/* MatchAsPattern.location = 0, location */ +/* MatchAsPattern.parenthesised = 1, bool */ +/* MatchAsPattern.pattern = 2, pattern */ +/* MatchAsPattern.alias = 3, expr */ + +/* MatchCapturePattern.location = 0, location */ +/* MatchCapturePattern.parenthesised = 1, bool */ +/* MatchCapturePattern.variable = 2, expr */ + +/* MatchClassPattern.location = 0, location */ +/* MatchClassPattern.parenthesised = 1, bool */ +/* MatchClassPattern.class = 2, expr */ +/* MatchClassPattern.class_name = 3, expr */ +/* MatchClassPattern.positional = 4, pattern_list */ +/* MatchClassPattern.keyword = 5, pattern_list */ + +/* MatchDoubleStarPattern.location = 0, location */ +/* MatchDoubleStarPattern.parenthesised = 1, bool */ +/* MatchDoubleStarPattern.target = 2, pattern */ + +/* MatchKeyValuePattern.location = 0, location */ +/* MatchKeyValuePattern.parenthesised = 1, bool */ +/* MatchKeyValuePattern.key = 2, pattern */ +/* MatchKeyValuePattern.value = 3, pattern */ + +/* MatchKeywordPattern.location = 0, location */ +/* MatchKeywordPattern.parenthesised = 1, bool */ +/* MatchKeywordPattern.attribute = 2, expr */ +/* MatchKeywordPattern.value = 3, pattern */ + +/* MatchLiteralPattern.location = 0, location */ +/* MatchLiteralPattern.parenthesised = 1, bool */ +/* MatchLiteralPattern.literal = 2, expr */ + +/* MatchMappingPattern.location = 0, location */ +/* MatchMappingPattern.parenthesised = 1, bool */ +/* MatchMappingPattern.mappings = 2, pattern_list */ + +/* MatchOrPattern.location = 0, location */ +/* MatchOrPattern.parenthesised = 1, bool */ +/* MatchOrPattern.patterns = 2, pattern_list */ + +/* MatchSequencePattern.location = 0, location */ +/* MatchSequencePattern.parenthesised = 1, bool */ +/* MatchSequencePattern.patterns = 2, pattern_list */ + +/* MatchStarPattern.location = 0, location */ +/* MatchStarPattern.parenthesised = 1, bool */ +/* MatchStarPattern.target = 2, pattern */ + +/* MatchValuePattern.location = 0, location */ +/* MatchValuePattern.parenthesised = 1, bool */ +/* MatchValuePattern.value = 2, expr */ + +/* MatchWildcardPattern.location = 0, location */ +/* MatchWildcardPattern.parenthesised = 1, bool */ + +/* Module.name = 0, str */ +/* Module.hash = 1, str */ +/* Module.body = 2, stmt_list */ +/* Module.kind = 3, str */ + +/* Name.location = 0, location */ +/* Name.parenthesised = 1, bool */ +/* Name.variable = 2, variable */ +/* Name.ctx = 3, expr_context */ +/* Name = ParameterList */ + +/* Nonlocal.location = 0, location */ +/* Nonlocal.names = 1, str_list */ + +/* Num.location = 0, location */ +/* Num.parenthesised = 1, bool */ +/* Num.n = 2, number */ +/* Num.text = 3, number */ + +/* ParamSpec.location = 0, location */ +/* ParamSpec.name = 1, expr */ +/* ParamSpec.default = 2, expr */ + +/* Pass.location = 0, location */ + +/* PlaceHolder.location = 0, location */ +/* PlaceHolder.parenthesised = 1, bool */ +/* PlaceHolder.variable = 2, variable */ +/* PlaceHolder.ctx = 3, expr_context */ + +/* Print.location = 0, location */ +/* Print.dest = 1, expr */ +/* Print.values = 2, expr_list */ +/* Print.nl = 3, bool */ + +/* Raise.location = 0, location */ +/* Raise.exc = 1, expr */ +/* Raise.cause = 2, expr */ +/* Raise.type = 3, expr */ +/* Raise.inst = 4, expr */ +/* Raise.tback = 5, expr */ + +/* Repr.location = 0, location */ +/* Repr.parenthesised = 1, bool */ +/* Repr.value = 2, expr */ + +/* Return.location = 0, location */ +/* Return.value = 1, expr */ + +/* Set.location = 0, location */ +/* Set.parenthesised = 1, bool */ +/* Set.elts = 2, expr_list */ + +/* SetComp.location = 0, location */ +/* SetComp.parenthesised = 1, bool */ +/* SetComp.function = 2, Function */ +/* SetComp.iterable = 3, expr */ + +/* Slice.location = 0, location */ +/* Slice.parenthesised = 1, bool */ +/* Slice.start = 2, expr */ +/* Slice.stop = 3, expr */ +/* Slice.step = 4, expr */ + +/* SpecialOperation.location = 0, location */ +/* SpecialOperation.parenthesised = 1, bool */ +/* SpecialOperation.name = 2, str */ +/* SpecialOperation.arguments = 3, expr_list */ + +/* Starred.location = 0, location */ +/* Starred.parenthesised = 1, bool */ +/* Starred.value = 2, expr */ +/* Starred.ctx = 3, expr_context */ + +/* Str.location = 0, location */ +/* Str.parenthesised = 1, bool */ +/* Str.s = 2, str */ +/* Str.prefix = 3, str */ +/* Str.implicitly_concatenated_parts = 4, StringPart_list */ + +/* StringPart.text = 0, str */ +/* StringPart.location = 1, location */ +/* StringPart = StringPartList */ +/* StringPartList = BytesOrStr */ + +/* Subscript.location = 0, location */ +/* Subscript.parenthesised = 1, bool */ +/* Subscript.value = 2, expr */ +/* Subscript.index = 3, expr */ +/* Subscript.ctx = 4, expr_context */ + +/* TemplateDottedNotation.location = 0, location */ +/* TemplateDottedNotation.parenthesised = 1, bool */ +/* TemplateDottedNotation.value = 2, expr */ +/* TemplateDottedNotation.attr = 3, str */ +/* TemplateDottedNotation.ctx = 4, expr_context */ + +/* TemplateString.location = 0, location */ +/* TemplateString.parenthesised = 1, bool */ +/* TemplateString.prefix = 2, str */ +/* TemplateString.values = 3, expr_list */ +/* TemplateString = TemplateStringList */ + +/* TemplateStringPart.location = 0, location */ +/* TemplateStringPart.parenthesised = 1, bool */ +/* TemplateStringPart.text = 2, str */ +/* TemplateStringList = JoinedTemplateString */ + +/* TemplateWrite.location = 0, location */ +/* TemplateWrite.value = 1, expr */ + +/* Try.location = 0, location */ +/* Try.body = 1, stmt_list */ +/* Try.orelse = 2, stmt_list */ +/* Try.handlers = 3, stmt_list */ +/* Try.finalbody = 4, stmt_list */ + +/* Tuple.location = 0, location */ +/* Tuple.parenthesised = 1, bool */ +/* Tuple.elts = 2, expr_list */ +/* Tuple.ctx = 3, expr_context */ +/* Tuple = ParameterList */ + +/* TypeAlias.location = 0, location */ +/* TypeAlias.name = 1, expr */ +/* TypeAlias.type_parameters = 2, type_parameter_list */ +/* TypeAlias.value = 3, expr */ + +/* TypeVar.location = 0, location */ +/* TypeVar.name = 1, expr */ +/* TypeVar.bound = 2, expr */ +/* TypeVar.default = 3, expr */ + +/* TypeVarTuple.location = 0, location */ +/* TypeVarTuple.name = 1, expr */ +/* TypeVarTuple.default = 2, expr */ + +/* UnaryExpr.location = 0, location */ +/* UnaryExpr.parenthesised = 1, bool */ +/* UnaryExpr.op = 2, unaryop */ +/* UnaryExpr.operand = 3, expr */ + +/* While.location = 0, location */ +/* While.test = 1, expr */ +/* While.body = 2, stmt_list */ +/* While.orelse = 3, stmt_list */ + +/* With.location = 0, location */ +/* With.context_expr = 1, expr */ +/* With.optional_vars = 2, expr */ +/* With.body = 3, stmt_list */ +/* With.is_async = 4, bool */ + +/* Yield.location = 0, location */ +/* Yield.parenthesised = 1, bool */ +/* Yield.value = 2, expr */ + +/* YieldFrom.location = 0, location */ +/* YieldFrom.parenthesised = 1, bool */ +/* YieldFrom.value = 2, expr */ + +/* Alias.value = 0, expr */ +/* Alias.asname = 1, expr */ +/* Alias = AliasList */ +/* AliasList = Import */ + +/* Arguments.kw_defaults = 0, expr_list */ +/* Arguments.defaults = 1, expr_list */ +/* Arguments.annotations = 2, expr_list */ +/* Arguments.varargannotation = 3, expr */ +/* Arguments.kwargannotation = 4, expr */ +/* Arguments.kw_annotations = 5, expr_list */ +/* Arguments = ArgumentsParent */ +/* boolean = BoolParent */ +/* Boolop = BoolExpr */ +/* string = Bytes */ +/* Cmpop = CmpopList */ +/* CmpopList = Compare */ + +/* Comprehension.location = 0, location */ +/* Comprehension.iter = 1, expr */ +/* Comprehension.target = 2, expr */ +/* Comprehension.ifs = 3, expr_list */ +/* Comprehension = ComprehensionList */ +/* ComprehensionList = ListComp */ +/* DictItem = DictItemList */ +/* DictItemList = DictItemListParent */ + +/* Expr.location = 0, location */ +/* Expr.parenthesised = 1, bool */ +/* Expr = ExprParent */ +/* ExprContext = ExprContextParent */ +/* ExprList = ExprListParent */ +/* int = ImportExpr */ + +/* Keyword.location = 0, location */ +/* Keyword.value = 1, expr */ +/* Keyword.arg = 2, str */ +/* Location = LocationParent */ +/* string = Num */ +/* Operator = BinaryExpr */ +/* ParameterList = Function */ + +/* Pattern.location = 0, location */ +/* Pattern.parenthesised = 1, bool */ +/* Pattern = PatternParent */ +/* PatternList = PatternListParent */ + +/* Stmt.location = 0, location */ +/* Stmt = StmtList */ +/* StmtList = StmtListParent */ +/* string = StrParent */ +/* StringList = StrListParent */ + +/* TypeParameter.location = 0, location */ +/* TypeParameter = TypeParameterList */ +/* TypeParameterList = TypeParameterListParent */ +/* Unaryop = UnaryExpr */ +/* Variable = VariableParent */ +py_Classes(unique int id : @py_Class, + unique int parent : @py_ClassExpr ref); + +py_Functions(unique int id : @py_Function, + unique int parent : @py_Function_parent ref); + +py_Modules(unique int id : @py_Module); + +py_StringParts(unique int id : @py_StringPart, + int parent : @py_StringPart_list ref, + int idx : int ref); + +py_StringPart_lists(unique int id : @py_StringPart_list, + unique int parent : @py_Bytes_or_Str ref); + +py_TemplateString_lists(unique int id : @py_TemplateString_list, + unique int parent : @py_JoinedTemplateString ref); + +py_aliases(unique int id : @py_alias, + int parent : @py_alias_list ref, + int idx : int ref); + +py_alias_lists(unique int id : @py_alias_list, + unique int parent : @py_Import ref); + +py_arguments(unique int id : @py_arguments, + unique int parent : @py_arguments_parent ref); + +py_bools(int parent : @py_bool_parent ref, + int idx : int ref); + +py_boolops(unique int id : @py_boolop, + int kind: int ref, + unique int parent : @py_BoolExpr ref); + +py_bytes(varchar(1) id : string ref, + int parent : @py_Bytes ref, + int idx : int ref); + +py_cmpops(unique int id : @py_cmpop, + int kind: int ref, + int parent : @py_cmpop_list ref, + int idx : int ref); + +py_cmpop_lists(unique int id : @py_cmpop_list, + unique int parent : @py_Compare ref); + +py_comprehensions(unique int id : @py_comprehension, + int parent : @py_comprehension_list ref, + int idx : int ref); + +py_comprehension_lists(unique int id : @py_comprehension_list, + unique int parent : @py_ListComp ref); + +py_dict_items(unique int id : @py_dict_item, + int kind: int ref, + int parent : @py_dict_item_list ref, + int idx : int ref); + +py_dict_item_lists(unique int id : @py_dict_item_list, + unique int parent : @py_dict_item_list_parent ref); + +py_exprs(unique int id : @py_expr, + int kind: int ref, + int parent : @py_expr_parent ref, + int idx : int ref); + +py_expr_contexts(unique int id : @py_expr_context, + int kind: int ref, + unique int parent : @py_expr_context_parent ref); + +py_expr_lists(unique int id : @py_expr_list, + int parent : @py_expr_list_parent ref, + int idx : int ref); + +py_ints(int id : int ref, + unique int parent : @py_ImportExpr ref); + +py_locations(unique int id : @location ref, + unique int parent : @py_location_parent ref); + +py_numbers(varchar(1) id : string ref, + int parent : @py_Num ref, + int idx : int ref); + +py_operators(unique int id : @py_operator, + int kind: int ref, + unique int parent : @py_BinaryExpr ref); + +py_parameter_lists(unique int id : @py_parameter_list, + unique int parent : @py_Function ref); + +py_patterns(unique int id : @py_pattern, + int kind: int ref, + int parent : @py_pattern_parent ref, + int idx : int ref); + +py_pattern_lists(unique int id : @py_pattern_list, + int parent : @py_pattern_list_parent ref, + int idx : int ref); + +py_stmts(unique int id : @py_stmt, + int kind: int ref, + int parent : @py_stmt_list ref, + int idx : int ref); + +py_stmt_lists(unique int id : @py_stmt_list, + int parent : @py_stmt_list_parent ref, + int idx : int ref); + +py_strs(varchar(1) id : string ref, + int parent : @py_str_parent ref, + int idx : int ref); + +py_str_lists(unique int id : @py_str_list, + unique int parent : @py_str_list_parent ref); + +py_type_parameters(unique int id : @py_type_parameter, + int kind: int ref, + int parent : @py_type_parameter_list ref, + int idx : int ref); + +py_type_parameter_lists(unique int id : @py_type_parameter_list, + unique int parent : @py_type_parameter_list_parent ref); + +py_unaryops(unique int id : @py_unaryop, + int kind: int ref, + unique int parent : @py_UnaryExpr ref); + +py_variables(int id : @py_variable ref, + unique int parent : @py_variable_parent ref); + +case @py_boolop.kind of + 0 = @py_And +| 1 = @py_Or; + +case @py_cmpop.kind of + 0 = @py_Eq +| 1 = @py_Gt +| 2 = @py_GtE +| 3 = @py_In +| 4 = @py_Is +| 5 = @py_IsNot +| 6 = @py_Lt +| 7 = @py_LtE +| 8 = @py_NotEq +| 9 = @py_NotIn; + +case @py_dict_item.kind of + 0 = @py_DictUnpacking +| 1 = @py_KeyValuePair +| 2 = @py_keyword; + +case @py_expr.kind of + 0 = @py_Attribute +| 1 = @py_BinaryExpr +| 2 = @py_BoolExpr +| 3 = @py_Bytes +| 4 = @py_Call +| 5 = @py_ClassExpr +| 6 = @py_Compare +| 7 = @py_Dict +| 8 = @py_DictComp +| 9 = @py_Ellipsis +| 10 = @py_FunctionExpr +| 11 = @py_GeneratorExp +| 12 = @py_IfExp +| 13 = @py_ImportExpr +| 14 = @py_ImportMember +| 15 = @py_Lambda +| 16 = @py_List +| 17 = @py_ListComp +| 18 = @py_Guard +| 19 = @py_Name +| 20 = @py_Num +| 21 = @py_Repr +| 22 = @py_Set +| 23 = @py_SetComp +| 24 = @py_Slice +| 25 = @py_Starred +| 26 = @py_Str +| 27 = @py_Subscript +| 28 = @py_Tuple +| 29 = @py_UnaryExpr +| 30 = @py_Yield +| 31 = @py_YieldFrom +| 32 = @py_TemplateDottedNotation +| 33 = @py_Filter +| 34 = @py_PlaceHolder +| 35 = @py_Await +| 36 = @py_Fstring +| 37 = @py_FormattedValue +| 38 = @py_AssignExpr +| 39 = @py_SpecialOperation +| 40 = @py_TemplateString +| 41 = @py_JoinedTemplateString +| 42 = @py_TemplateStringPart; + +case @py_expr_context.kind of + 0 = @py_AugLoad +| 1 = @py_AugStore +| 2 = @py_Del +| 3 = @py_Load +| 4 = @py_Param +| 5 = @py_Store; + +case @py_operator.kind of + 0 = @py_Add +| 1 = @py_BitAnd +| 2 = @py_BitOr +| 3 = @py_BitXor +| 4 = @py_Div +| 5 = @py_FloorDiv +| 6 = @py_LShift +| 7 = @py_Mod +| 8 = @py_Mult +| 9 = @py_Pow +| 10 = @py_RShift +| 11 = @py_Sub +| 12 = @py_MatMult; + +case @py_pattern.kind of + 0 = @py_MatchAsPattern +| 1 = @py_MatchOrPattern +| 2 = @py_MatchLiteralPattern +| 3 = @py_MatchCapturePattern +| 4 = @py_MatchWildcardPattern +| 5 = @py_MatchValuePattern +| 6 = @py_MatchSequencePattern +| 7 = @py_MatchStarPattern +| 8 = @py_MatchMappingPattern +| 9 = @py_MatchDoubleStarPattern +| 10 = @py_MatchKeyValuePattern +| 11 = @py_MatchClassPattern +| 12 = @py_MatchKeywordPattern; + +case @py_stmt.kind of + 0 = @py_Assert +| 1 = @py_Assign +| 2 = @py_AugAssign +| 3 = @py_Break +| 4 = @py_Continue +| 5 = @py_Delete +| 6 = @py_ExceptStmt +| 7 = @py_ExceptGroupStmt +| 8 = @py_Exec +| 9 = @py_Expr_stmt +| 10 = @py_For +| 11 = @py_Global +| 12 = @py_If +| 13 = @py_Import +| 14 = @py_ImportStar +| 15 = @py_MatchStmt +| 16 = @py_Case +| 17 = @py_Nonlocal +| 18 = @py_Pass +| 19 = @py_Print +| 20 = @py_Raise +| 21 = @py_Return +| 22 = @py_Try +| 23 = @py_While +| 24 = @py_With +| 25 = @py_TemplateWrite +| 26 = @py_AnnAssign +| 27 = @py_TypeAlias; + +case @py_type_parameter.kind of + 0 = @py_ParamSpec +| 1 = @py_TypeVar +| 2 = @py_TypeVarTuple; + +case @py_unaryop.kind of + 0 = @py_Invert +| 1 = @py_Not +| 2 = @py_UAdd +| 3 = @py_USub; + +@py_Bytes_or_Str = @py_Bytes | @py_Str; + +@py_Function_parent = @py_DictComp | @py_FunctionExpr | @py_GeneratorExp | @py_Lambda | @py_ListComp | @py_SetComp; + +@py_arguments_parent = @py_FunctionExpr | @py_Lambda; + +@py_ast_node = @py_Class | @py_Function | @py_Module | @py_StringPart | @py_comprehension | @py_dict_item | @py_expr | @py_pattern | @py_stmt | @py_type_parameter; + +@py_bool_parent = @py_For | @py_Function | @py_Print | @py_With | @py_expr | @py_pattern; + +@py_dict_item_list_parent = @py_Call | @py_ClassExpr | @py_Dict; + +@py_expr_context_parent = @py_Attribute | @py_List | @py_Name | @py_PlaceHolder | @py_Starred | @py_Subscript | @py_TemplateDottedNotation | @py_Tuple; + +@py_expr_list_parent = @py_Assign | @py_BoolExpr | @py_Call | @py_ClassExpr | @py_Compare | @py_Delete | @py_Fstring | @py_Function | @py_List | @py_Print | @py_Set | @py_SpecialOperation | @py_TemplateString | @py_Tuple | @py_arguments | @py_comprehension; + +@py_expr_or_stmt = @py_expr | @py_stmt; + +@py_expr_parent = @py_AnnAssign | @py_Assert | @py_Assign | @py_AssignExpr | @py_Attribute | @py_AugAssign | @py_Await | @py_BinaryExpr | @py_Call | @py_Case | @py_Compare | @py_DictComp | @py_DictUnpacking | @py_ExceptGroupStmt | @py_ExceptStmt | @py_Exec | @py_Expr_stmt | @py_Filter | @py_For | @py_FormattedValue | @py_Function | @py_FunctionExpr | @py_GeneratorExp | @py_Guard | @py_If | @py_IfExp | @py_ImportMember | @py_ImportStar | @py_KeyValuePair | @py_ListComp | @py_MatchAsPattern | @py_MatchCapturePattern | @py_MatchClassPattern | @py_MatchKeywordPattern | @py_MatchLiteralPattern | @py_MatchStmt | @py_MatchValuePattern | @py_ParamSpec | @py_Print | @py_Raise | @py_Repr | @py_Return | @py_SetComp | @py_Slice | @py_Starred | @py_Subscript | @py_TemplateDottedNotation | @py_TemplateString_list | @py_TemplateWrite | @py_TypeAlias | @py_TypeVar | @py_TypeVarTuple | @py_UnaryExpr | @py_While | @py_With | @py_Yield | @py_YieldFrom | @py_alias | @py_arguments | @py_comprehension | @py_expr_list | @py_keyword | @py_parameter_list; + +@py_location_parent = @py_DictUnpacking | @py_KeyValuePair | @py_StringPart | @py_comprehension | @py_expr | @py_keyword | @py_pattern | @py_stmt | @py_type_parameter; + +@py_parameter = @py_Name | @py_Tuple; + +@py_pattern_list_parent = @py_MatchClassPattern | @py_MatchMappingPattern | @py_MatchOrPattern | @py_MatchSequencePattern; + +@py_pattern_parent = @py_Case | @py_MatchAsPattern | @py_MatchDoubleStarPattern | @py_MatchKeyValuePattern | @py_MatchKeywordPattern | @py_MatchStarPattern | @py_pattern_list; + +@py_scope = @py_Class | @py_Function | @py_Module; + +@py_stmt_list_parent = @py_Case | @py_Class | @py_ExceptGroupStmt | @py_ExceptStmt | @py_For | @py_Function | @py_If | @py_MatchStmt | @py_Module | @py_Try | @py_While | @py_With; + +@py_str_list_parent = @py_Global | @py_Nonlocal; + +@py_str_parent = @py_Attribute | @py_Class | @py_ClassExpr | @py_FormattedValue | @py_Function | @py_FunctionExpr | @py_ImportExpr | @py_ImportMember | @py_Module | @py_SpecialOperation | @py_Str | @py_StringPart | @py_TemplateDottedNotation | @py_TemplateString | @py_TemplateStringPart | @py_keyword | @py_str_list; + +@py_type_parameter_list_parent = @py_ClassExpr | @py_Function | @py_TypeAlias; + +@py_variable_parent = @py_Name | @py_PlaceHolder; + + +/* + * End of auto-generated part + */ + + + +/* Map relative names to absolute names for imports */ +py_absolute_names(int module : @py_Module ref, + varchar(1) relname : string ref, + varchar(1) absname : string ref); + +py_exports(int id : @py_Module ref, + varchar(1) name : string ref); + +/* Successor information */ +py_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_true_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_exception_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_false_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_flow_bb_node(unique int flownode : @py_flow_node, + int realnode : @py_ast_node ref, + int basicblock : @py_flow_node ref, + int index : int ref); + +py_scope_flow(int flow : @py_flow_node ref, + int scope : @py_scope ref, + int kind : int ref); + +py_idoms(unique int node : @py_flow_node ref, + int immediate_dominator : @py_flow_node ref); + +py_ssa_phi(int phi : @py_ssa_var ref, + int arg: @py_ssa_var ref); + +py_ssa_var(unique int id : @py_ssa_var, + int var : @py_variable ref); + +py_ssa_use(int node: @py_flow_node ref, + int var : @py_ssa_var ref); + +py_ssa_defn(unique int id : @py_ssa_var ref, + int node: @py_flow_node ref); + +@py_base_var = @py_variable | @py_ssa_var; + +py_scopes(unique int node : @py_expr_or_stmt ref, + int scope : @py_scope ref); + +py_scope_location(unique int id : @location ref, + unique int scope : @py_scope ref); + +py_flags_versioned(varchar(1) name : string ref, + varchar(1) value : string ref, + varchar(1) version : string ref); + +py_syntax_error_versioned(unique int id : @location ref, + varchar(1) message : string ref, + varchar(1) version : string ref); + +py_comments(unique int id : @py_comment, + varchar(1) text : string ref, + unique int location : @location ref); + +/* Type information support */ + +py_cobjects(unique int obj : @py_cobject); + +py_cobjecttypes(unique int obj : @py_cobject ref, + int typeof : @py_cobject ref); + +py_cobjectnames(unique int obj : @py_cobject ref, + varchar(1) name : string ref); + +/* Kind should be 0 for introspection, > 0 from source, as follows: + 1 from C extension source + */ +py_cobject_sources(int obj : @py_cobject ref, + int kind : int ref); + +py_cmembers_versioned(int object : @py_cobject ref, + varchar(1) name : string ref, + int member : @py_cobject ref, + varchar(1) version : string ref); + +py_citems(int object : @py_cobject ref, + int index : int ref, + int member : @py_cobject ref); + +ext_argtype(int funcid : @py_object ref, + int arg : int ref, + int typeid : @py_object ref); + +ext_rettype(int funcid : @py_object ref, + int typeid : @py_object ref); + +ext_proptype(int propid : @py_object ref, + int typeid : @py_object ref); + +ext_argreturn(int funcid : @py_object ref, + int arg : int ref); + +py_special_objects(unique int obj : @py_cobject ref, + unique varchar(1) name : string ref); + +py_decorated_object(int object : @py_object ref, + int level: int ref); + +@py_object = @py_cobject | @py_flow_node; + +@py_source_element = @py_ast_node | @container; + +/** The union of all Python database entities */ +@top = + @py_source_element | @py_object | @py_base_var | @location | @py_line | @py_comment | + @py_expr_parent | @py_expr_context | + @py_operator | @py_boolop | @py_cmpop | @py_unaryop | + @py_cmpop_list | @py_alias_list | @py_StringPart_list | @py_comprehension_list | @py_dict_item_list | @py_pattern_list | @py_stmt_list | @py_str_list | @py_type_parameter_list | + @externalDefect | @externalMetric | @externalDataElement | @duplication_or_similarity | @svnentry | + @xmllocatable | @yaml_locatable; diff --git a/python/ql/lib/upgrades/279cbb08d387ecd57ac177e87c94cfd5ca62f792/semmlecode.python.dbscheme b/python/ql/lib/upgrades/279cbb08d387ecd57ac177e87c94cfd5ca62f792/semmlecode.python.dbscheme new file mode 100644 index 00000000000..eb5fc917c79 --- /dev/null +++ b/python/ql/lib/upgrades/279cbb08d387ecd57ac177e87c94cfd5ca62f792/semmlecode.python.dbscheme @@ -0,0 +1,1291 @@ +/* + * This dbscheme is auto-generated by 'semmle/dbscheme_gen.py'. + * Run "make dbscheme" in python/extractor/ to regenerate. + * WARNING: Any modifications to this file will be lost. + * Relations can be changed by modifying master.py or + * by adding rules to dbscheme.template + */ + +/* This is a dummy line to alter the dbscheme, so we can make a database upgrade + * without actually changing any of the dbscheme predicates. It contains a date + * to allow for such updates in the future as well. + * + * 2020-07-02 + * + * DO NOT remove this comment carelessly, since it can revert the dbscheme back to a + * previously seen state (matching a previously seen SHA), which would make the upgrade + * mechanism not work properly. + */ + +/*- DEPRECATED: External defects and metrics -*/ + +externalDefects( + unique int id : @externalDefect, + varchar(900) queryPath : string ref, + int location : @location ref, + varchar(900) message : string ref, + float severity : float ref +); + +externalMetrics( + unique int id : @externalMetric, + varchar(900) queryPath : string ref, + int location : @location ref, + float value : float ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Database metadata -*/ + +/** + * The CLI will automatically emit applicable tuples for this table, + * such as `databaseMetadata("isOverlay", "true")` when building an + * overlay database. + */ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + +/*- Overlay support -*/ + +/** + * The CLI will automatically emit tuples for each new/modified/deleted file + * when building an overlay database. + */ +overlayChangedFiles( + string path: string ref +); + +/*- DEPRECATED: Snapshot date -*/ + +snapshotDate(unique date snapshotDate : date ref); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- DEPRECATED: Duplicate code -*/ + +duplicateCode( + unique int id : @duplication, + string relativePath : string ref, + int equivClass : int ref +); + +similarCode( + unique int id : @similarity, + string relativePath : string ref, + int equivClass : int ref +); + +@duplication_or_similarity = @duplication | @similarity + +tokens( + int id : @duplication_or_similarity ref, + int offset : int ref, + int beginLine : int ref, + int beginColumn : int ref, + int endLine : int ref, + int endColumn : int ref +); + +/*- DEPRECATED: Version control data -*/ + +svnentries( + unique int id : @svnentry, + string revision : string ref, + string author : string ref, + date revisionDate : date ref, + int changeSize : int ref +) + +svnaffectedfiles( + int id : @svnentry ref, + int file : @file ref, + string action : string ref +) + +svnentrymsg( + unique int id : @svnentry ref, + string message : string ref +) + +svnchurn( + int commit : @svnentry ref, + int file : @file ref, + int addedLines : int ref, + int deletedLines : int ref +) + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; + +/*- YAML -*/ + +#keyset[parent, idx] +yaml (unique int id: @yaml_node, + int kind: int ref, + int parent: @yaml_node_parent ref, + int idx: int ref, + string tag: string ref, + string tostring: string ref); + +case @yaml_node.kind of + 0 = @yaml_scalar_node +| 1 = @yaml_mapping_node +| 2 = @yaml_sequence_node +| 3 = @yaml_alias_node +; + +@yaml_collection_node = @yaml_mapping_node | @yaml_sequence_node; + +@yaml_node_parent = @yaml_collection_node | @file; + +yaml_anchors (unique int node: @yaml_node ref, + string anchor: string ref); + +yaml_aliases (unique int alias: @yaml_alias_node ref, + string target: string ref); + +yaml_scalars (unique int scalar: @yaml_scalar_node ref, + int style: int ref, + string value: string ref); + +yaml_errors (unique int id: @yaml_error, + string message: string ref); + +yaml_locations(unique int locatable: @yaml_locatable ref, + int location: @location_default ref); + +@yaml_locatable = @yaml_node | @yaml_error; + +/*- Python dbscheme -*/ + +/* + * Line metrics + */ +py_codelines(int id : @py_scope ref, + int count : int ref); + +py_commentlines(int id : @py_scope ref, + int count : int ref); + +py_docstringlines(int id : @py_scope ref, + int count : int ref); + +py_alllines(int id : @py_scope ref, + int count : int ref); + +/**************************** + Python dbscheme +****************************/ + +@sourceline = @file | @py_Module | @xmllocatable; + +@location = @location_ast | @location_default ; + +locations_ast(unique int id: @location_ast, + int module: @py_Module ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref); + +file_contents(unique int file: @file ref, string contents: string ref); + +py_module_path(int module: @py_Module ref, int file: @container ref); + +variable(unique int id : @py_variable, + int scope : @py_scope ref, + varchar(1) name : string ref); + +py_line_lengths(unique int id : @py_line, + int file: @py_Module ref, + int line : int ref, + int length : int ref); + +py_extracted_version(int module : @py_Module ref, + varchar(1) version : string ref); + +/* AUTO GENERATED PART STARTS HERE */ + + +/* AnnAssign.location = 0, location */ +/* AnnAssign.value = 1, expr */ +/* AnnAssign.annotation = 2, expr */ +/* AnnAssign.target = 3, expr */ + +/* Assert.location = 0, location */ +/* Assert.test = 1, expr */ +/* Assert.msg = 2, expr */ + +/* Assign.location = 0, location */ +/* Assign.value = 1, expr */ +/* Assign.targets = 2, expr_list */ + +/* AssignExpr.location = 0, location */ +/* AssignExpr.parenthesised = 1, bool */ +/* AssignExpr.value = 2, expr */ +/* AssignExpr.target = 3, expr */ + +/* Attribute.location = 0, location */ +/* Attribute.parenthesised = 1, bool */ +/* Attribute.value = 2, expr */ +/* Attribute.attr = 3, str */ +/* Attribute.ctx = 4, expr_context */ + +/* AugAssign.location = 0, location */ +/* AugAssign.operation = 1, BinOp */ + +/* Await.location = 0, location */ +/* Await.parenthesised = 1, bool */ +/* Await.value = 2, expr */ + +/* BinaryExpr.location = 0, location */ +/* BinaryExpr.parenthesised = 1, bool */ +/* BinaryExpr.left = 2, expr */ +/* BinaryExpr.op = 3, operator */ +/* BinaryExpr.right = 4, expr */ +/* BinaryExpr = AugAssign */ + +/* BoolExpr.location = 0, location */ +/* BoolExpr.parenthesised = 1, bool */ +/* BoolExpr.op = 2, boolop */ +/* BoolExpr.values = 3, expr_list */ + +/* Break.location = 0, location */ + +/* Bytes.location = 0, location */ +/* Bytes.parenthesised = 1, bool */ +/* Bytes.s = 2, bytes */ +/* Bytes.prefix = 3, bytes */ +/* Bytes.implicitly_concatenated_parts = 4, StringPart_list */ + +/* Call.location = 0, location */ +/* Call.parenthesised = 1, bool */ +/* Call.func = 2, expr */ +/* Call.positional_args = 3, expr_list */ +/* Call.named_args = 4, dict_item_list */ + +/* Case.location = 0, location */ +/* Case.pattern = 1, pattern */ +/* Case.guard = 2, expr */ +/* Case.body = 3, stmt_list */ + +/* Class.name = 0, str */ +/* Class.body = 1, stmt_list */ +/* Class = ClassExpr */ + +/* ClassExpr.location = 0, location */ +/* ClassExpr.parenthesised = 1, bool */ +/* ClassExpr.name = 2, str */ +/* ClassExpr.bases = 3, expr_list */ +/* ClassExpr.keywords = 4, dict_item_list */ +/* ClassExpr.inner_scope = 5, Class */ +/* ClassExpr.type_parameters = 6, type_parameter_list */ + +/* Compare.location = 0, location */ +/* Compare.parenthesised = 1, bool */ +/* Compare.left = 2, expr */ +/* Compare.ops = 3, cmpop_list */ +/* Compare.comparators = 4, expr_list */ + +/* Continue.location = 0, location */ + +/* Delete.location = 0, location */ +/* Delete.targets = 1, expr_list */ + +/* Dict.location = 0, location */ +/* Dict.parenthesised = 1, bool */ +/* Dict.items = 2, dict_item_list */ + +/* DictComp.location = 0, location */ +/* DictComp.parenthesised = 1, bool */ +/* DictComp.function = 2, Function */ +/* DictComp.iterable = 3, expr */ + +/* DictUnpacking.location = 0, location */ +/* DictUnpacking.value = 1, expr */ + +/* Ellipsis.location = 0, location */ +/* Ellipsis.parenthesised = 1, bool */ + +/* ExceptGroupStmt.location = 0, location */ +/* ExceptGroupStmt.type = 1, expr */ +/* ExceptGroupStmt.name = 2, expr */ +/* ExceptGroupStmt.body = 3, stmt_list */ + +/* ExceptStmt.location = 0, location */ +/* ExceptStmt.type = 1, expr */ +/* ExceptStmt.name = 2, expr */ +/* ExceptStmt.body = 3, stmt_list */ + +/* Exec.location = 0, location */ +/* Exec.body = 1, expr */ +/* Exec.globals = 2, expr */ +/* Exec.locals = 3, expr */ + +/* ExprStmt.location = 0, location */ +/* ExprStmt.value = 1, expr */ + +/* Filter.location = 0, location */ +/* Filter.parenthesised = 1, bool */ +/* Filter.value = 2, expr */ +/* Filter.filter = 3, expr */ + +/* For.location = 0, location */ +/* For.target = 1, expr */ +/* For.iter = 2, expr */ +/* For.body = 3, stmt_list */ +/* For.orelse = 4, stmt_list */ +/* For.is_async = 5, bool */ + +/* FormattedValue.location = 0, location */ +/* FormattedValue.parenthesised = 1, bool */ +/* FormattedValue.value = 2, expr */ +/* FormattedValue.conversion = 3, str */ +/* FormattedValue.format_spec = 4, JoinedStr */ + +/* Function.name = 0, str */ +/* Function.args = 1, parameter_list */ +/* Function.vararg = 2, expr */ +/* Function.kwonlyargs = 3, expr_list */ +/* Function.kwarg = 4, expr */ +/* Function.body = 5, stmt_list */ +/* Function.is_async = 6, bool */ +/* Function.type_parameters = 7, type_parameter_list */ +/* Function = FunctionParent */ + +/* FunctionExpr.location = 0, location */ +/* FunctionExpr.parenthesised = 1, bool */ +/* FunctionExpr.name = 2, str */ +/* FunctionExpr.args = 3, arguments */ +/* FunctionExpr.returns = 4, expr */ +/* FunctionExpr.inner_scope = 5, Function */ + +/* GeneratorExp.location = 0, location */ +/* GeneratorExp.parenthesised = 1, bool */ +/* GeneratorExp.function = 2, Function */ +/* GeneratorExp.iterable = 3, expr */ + +/* Global.location = 0, location */ +/* Global.names = 1, str_list */ + +/* Guard.location = 0, location */ +/* Guard.parenthesised = 1, bool */ +/* Guard.test = 2, expr */ + +/* If.location = 0, location */ +/* If.test = 1, expr */ +/* If.body = 2, stmt_list */ +/* If.orelse = 3, stmt_list */ + +/* IfExp.location = 0, location */ +/* IfExp.parenthesised = 1, bool */ +/* IfExp.test = 2, expr */ +/* IfExp.body = 3, expr */ +/* IfExp.orelse = 4, expr */ + +/* Import.location = 0, location */ +/* Import.names = 1, alias_list */ +/* Import.is_lazy = 2, bool */ + +/* ImportExpr.location = 0, location */ +/* ImportExpr.parenthesised = 1, bool */ +/* ImportExpr.level = 2, int */ +/* ImportExpr.name = 3, str */ +/* ImportExpr.top = 4, bool */ + +/* ImportStar.location = 0, location */ +/* ImportStar.module = 1, expr */ +/* ImportStar.is_lazy = 2, bool */ + +/* ImportMember.location = 0, location */ +/* ImportMember.parenthesised = 1, bool */ +/* ImportMember.module = 2, expr */ +/* ImportMember.name = 3, str */ + +/* Fstring.location = 0, location */ +/* Fstring.parenthesised = 1, bool */ +/* Fstring.values = 2, expr_list */ +/* Fstring = FormattedValue */ + +/* JoinedTemplateString.location = 0, location */ +/* JoinedTemplateString.parenthesised = 1, bool */ +/* JoinedTemplateString.strings = 2, TemplateString_list */ + +/* KeyValuePair.location = 0, location */ +/* KeyValuePair.value = 1, expr */ +/* KeyValuePair.key = 2, expr */ + +/* Lambda.location = 0, location */ +/* Lambda.parenthesised = 1, bool */ +/* Lambda.args = 2, arguments */ +/* Lambda.inner_scope = 3, Function */ + +/* List.location = 0, location */ +/* List.parenthesised = 1, bool */ +/* List.elts = 2, expr_list */ +/* List.ctx = 3, expr_context */ + +/* ListComp.location = 0, location */ +/* ListComp.parenthesised = 1, bool */ +/* ListComp.function = 2, Function */ +/* ListComp.iterable = 3, expr */ +/* ListComp.generators = 4, comprehension_list */ +/* ListComp.elt = 5, expr */ + +/* MatchStmt.location = 0, location */ +/* MatchStmt.subject = 1, expr */ +/* MatchStmt.cases = 2, stmt_list */ + +/* MatchAsPattern.location = 0, location */ +/* MatchAsPattern.parenthesised = 1, bool */ +/* MatchAsPattern.pattern = 2, pattern */ +/* MatchAsPattern.alias = 3, expr */ + +/* MatchCapturePattern.location = 0, location */ +/* MatchCapturePattern.parenthesised = 1, bool */ +/* MatchCapturePattern.variable = 2, expr */ + +/* MatchClassPattern.location = 0, location */ +/* MatchClassPattern.parenthesised = 1, bool */ +/* MatchClassPattern.class = 2, expr */ +/* MatchClassPattern.class_name = 3, expr */ +/* MatchClassPattern.positional = 4, pattern_list */ +/* MatchClassPattern.keyword = 5, pattern_list */ + +/* MatchDoubleStarPattern.location = 0, location */ +/* MatchDoubleStarPattern.parenthesised = 1, bool */ +/* MatchDoubleStarPattern.target = 2, pattern */ + +/* MatchKeyValuePattern.location = 0, location */ +/* MatchKeyValuePattern.parenthesised = 1, bool */ +/* MatchKeyValuePattern.key = 2, pattern */ +/* MatchKeyValuePattern.value = 3, pattern */ + +/* MatchKeywordPattern.location = 0, location */ +/* MatchKeywordPattern.parenthesised = 1, bool */ +/* MatchKeywordPattern.attribute = 2, expr */ +/* MatchKeywordPattern.value = 3, pattern */ + +/* MatchLiteralPattern.location = 0, location */ +/* MatchLiteralPattern.parenthesised = 1, bool */ +/* MatchLiteralPattern.literal = 2, expr */ + +/* MatchMappingPattern.location = 0, location */ +/* MatchMappingPattern.parenthesised = 1, bool */ +/* MatchMappingPattern.mappings = 2, pattern_list */ + +/* MatchOrPattern.location = 0, location */ +/* MatchOrPattern.parenthesised = 1, bool */ +/* MatchOrPattern.patterns = 2, pattern_list */ + +/* MatchSequencePattern.location = 0, location */ +/* MatchSequencePattern.parenthesised = 1, bool */ +/* MatchSequencePattern.patterns = 2, pattern_list */ + +/* MatchStarPattern.location = 0, location */ +/* MatchStarPattern.parenthesised = 1, bool */ +/* MatchStarPattern.target = 2, pattern */ + +/* MatchValuePattern.location = 0, location */ +/* MatchValuePattern.parenthesised = 1, bool */ +/* MatchValuePattern.value = 2, expr */ + +/* MatchWildcardPattern.location = 0, location */ +/* MatchWildcardPattern.parenthesised = 1, bool */ + +/* Module.name = 0, str */ +/* Module.hash = 1, str */ +/* Module.body = 2, stmt_list */ +/* Module.kind = 3, str */ + +/* Name.location = 0, location */ +/* Name.parenthesised = 1, bool */ +/* Name.variable = 2, variable */ +/* Name.ctx = 3, expr_context */ +/* Name = ParameterList */ + +/* Nonlocal.location = 0, location */ +/* Nonlocal.names = 1, str_list */ + +/* Num.location = 0, location */ +/* Num.parenthesised = 1, bool */ +/* Num.n = 2, number */ +/* Num.text = 3, number */ + +/* ParamSpec.location = 0, location */ +/* ParamSpec.name = 1, expr */ +/* ParamSpec.default = 2, expr */ + +/* Pass.location = 0, location */ + +/* PlaceHolder.location = 0, location */ +/* PlaceHolder.parenthesised = 1, bool */ +/* PlaceHolder.variable = 2, variable */ +/* PlaceHolder.ctx = 3, expr_context */ + +/* Print.location = 0, location */ +/* Print.dest = 1, expr */ +/* Print.values = 2, expr_list */ +/* Print.nl = 3, bool */ + +/* Raise.location = 0, location */ +/* Raise.exc = 1, expr */ +/* Raise.cause = 2, expr */ +/* Raise.type = 3, expr */ +/* Raise.inst = 4, expr */ +/* Raise.tback = 5, expr */ + +/* Repr.location = 0, location */ +/* Repr.parenthesised = 1, bool */ +/* Repr.value = 2, expr */ + +/* Return.location = 0, location */ +/* Return.value = 1, expr */ + +/* Set.location = 0, location */ +/* Set.parenthesised = 1, bool */ +/* Set.elts = 2, expr_list */ + +/* SetComp.location = 0, location */ +/* SetComp.parenthesised = 1, bool */ +/* SetComp.function = 2, Function */ +/* SetComp.iterable = 3, expr */ + +/* Slice.location = 0, location */ +/* Slice.parenthesised = 1, bool */ +/* Slice.start = 2, expr */ +/* Slice.stop = 3, expr */ +/* Slice.step = 4, expr */ + +/* SpecialOperation.location = 0, location */ +/* SpecialOperation.parenthesised = 1, bool */ +/* SpecialOperation.name = 2, str */ +/* SpecialOperation.arguments = 3, expr_list */ + +/* Starred.location = 0, location */ +/* Starred.parenthesised = 1, bool */ +/* Starred.value = 2, expr */ +/* Starred.ctx = 3, expr_context */ + +/* Str.location = 0, location */ +/* Str.parenthesised = 1, bool */ +/* Str.s = 2, str */ +/* Str.prefix = 3, str */ +/* Str.implicitly_concatenated_parts = 4, StringPart_list */ + +/* StringPart.text = 0, str */ +/* StringPart.location = 1, location */ +/* StringPart = StringPartList */ +/* StringPartList = BytesOrStr */ + +/* Subscript.location = 0, location */ +/* Subscript.parenthesised = 1, bool */ +/* Subscript.value = 2, expr */ +/* Subscript.index = 3, expr */ +/* Subscript.ctx = 4, expr_context */ + +/* TemplateDottedNotation.location = 0, location */ +/* TemplateDottedNotation.parenthesised = 1, bool */ +/* TemplateDottedNotation.value = 2, expr */ +/* TemplateDottedNotation.attr = 3, str */ +/* TemplateDottedNotation.ctx = 4, expr_context */ + +/* TemplateString.location = 0, location */ +/* TemplateString.parenthesised = 1, bool */ +/* TemplateString.prefix = 2, str */ +/* TemplateString.values = 3, expr_list */ +/* TemplateString = TemplateStringList */ + +/* TemplateStringPart.location = 0, location */ +/* TemplateStringPart.parenthesised = 1, bool */ +/* TemplateStringPart.text = 2, str */ +/* TemplateStringList = JoinedTemplateString */ + +/* TemplateWrite.location = 0, location */ +/* TemplateWrite.value = 1, expr */ + +/* Try.location = 0, location */ +/* Try.body = 1, stmt_list */ +/* Try.orelse = 2, stmt_list */ +/* Try.handlers = 3, stmt_list */ +/* Try.finalbody = 4, stmt_list */ + +/* Tuple.location = 0, location */ +/* Tuple.parenthesised = 1, bool */ +/* Tuple.elts = 2, expr_list */ +/* Tuple.ctx = 3, expr_context */ +/* Tuple = ParameterList */ + +/* TypeAlias.location = 0, location */ +/* TypeAlias.name = 1, expr */ +/* TypeAlias.type_parameters = 2, type_parameter_list */ +/* TypeAlias.value = 3, expr */ + +/* TypeVar.location = 0, location */ +/* TypeVar.name = 1, expr */ +/* TypeVar.bound = 2, expr */ +/* TypeVar.default = 3, expr */ + +/* TypeVarTuple.location = 0, location */ +/* TypeVarTuple.name = 1, expr */ +/* TypeVarTuple.default = 2, expr */ + +/* UnaryExpr.location = 0, location */ +/* UnaryExpr.parenthesised = 1, bool */ +/* UnaryExpr.op = 2, unaryop */ +/* UnaryExpr.operand = 3, expr */ + +/* While.location = 0, location */ +/* While.test = 1, expr */ +/* While.body = 2, stmt_list */ +/* While.orelse = 3, stmt_list */ + +/* With.location = 0, location */ +/* With.context_expr = 1, expr */ +/* With.optional_vars = 2, expr */ +/* With.body = 3, stmt_list */ +/* With.is_async = 4, bool */ + +/* Yield.location = 0, location */ +/* Yield.parenthesised = 1, bool */ +/* Yield.value = 2, expr */ + +/* YieldFrom.location = 0, location */ +/* YieldFrom.parenthesised = 1, bool */ +/* YieldFrom.value = 2, expr */ + +/* Alias.value = 0, expr */ +/* Alias.asname = 1, expr */ +/* Alias = AliasList */ +/* AliasList = Import */ + +/* Arguments.kw_defaults = 0, expr_list */ +/* Arguments.defaults = 1, expr_list */ +/* Arguments.annotations = 2, expr_list */ +/* Arguments.varargannotation = 3, expr */ +/* Arguments.kwargannotation = 4, expr */ +/* Arguments.kw_annotations = 5, expr_list */ +/* Arguments = ArgumentsParent */ +/* boolean = BoolParent */ +/* Boolop = BoolExpr */ +/* string = Bytes */ +/* Cmpop = CmpopList */ +/* CmpopList = Compare */ + +/* Comprehension.location = 0, location */ +/* Comprehension.iter = 1, expr */ +/* Comprehension.target = 2, expr */ +/* Comprehension.ifs = 3, expr_list */ +/* Comprehension = ComprehensionList */ +/* ComprehensionList = ListComp */ +/* DictItem = DictItemList */ +/* DictItemList = DictItemListParent */ + +/* Expr.location = 0, location */ +/* Expr.parenthesised = 1, bool */ +/* Expr = ExprParent */ +/* ExprContext = ExprContextParent */ +/* ExprList = ExprListParent */ +/* int = ImportExpr */ + +/* Keyword.location = 0, location */ +/* Keyword.value = 1, expr */ +/* Keyword.arg = 2, str */ +/* Location = LocationParent */ +/* string = Num */ +/* Operator = BinaryExpr */ +/* ParameterList = Function */ + +/* Pattern.location = 0, location */ +/* Pattern.parenthesised = 1, bool */ +/* Pattern = PatternParent */ +/* PatternList = PatternListParent */ + +/* Stmt.location = 0, location */ +/* Stmt = StmtList */ +/* StmtList = StmtListParent */ +/* string = StrParent */ +/* StringList = StrListParent */ + +/* TypeParameter.location = 0, location */ +/* TypeParameter = TypeParameterList */ +/* TypeParameterList = TypeParameterListParent */ +/* Unaryop = UnaryExpr */ +/* Variable = VariableParent */ +py_Classes(unique int id : @py_Class, + unique int parent : @py_ClassExpr ref); + +py_Functions(unique int id : @py_Function, + unique int parent : @py_Function_parent ref); + +py_Modules(unique int id : @py_Module); + +py_StringParts(unique int id : @py_StringPart, + int parent : @py_StringPart_list ref, + int idx : int ref); + +py_StringPart_lists(unique int id : @py_StringPart_list, + unique int parent : @py_Bytes_or_Str ref); + +py_TemplateString_lists(unique int id : @py_TemplateString_list, + unique int parent : @py_JoinedTemplateString ref); + +py_aliases(unique int id : @py_alias, + int parent : @py_alias_list ref, + int idx : int ref); + +py_alias_lists(unique int id : @py_alias_list, + unique int parent : @py_Import ref); + +py_arguments(unique int id : @py_arguments, + unique int parent : @py_arguments_parent ref); + +py_bools(int parent : @py_bool_parent ref, + int idx : int ref); + +py_boolops(unique int id : @py_boolop, + int kind: int ref, + unique int parent : @py_BoolExpr ref); + +py_bytes(varchar(1) id : string ref, + int parent : @py_Bytes ref, + int idx : int ref); + +py_cmpops(unique int id : @py_cmpop, + int kind: int ref, + int parent : @py_cmpop_list ref, + int idx : int ref); + +py_cmpop_lists(unique int id : @py_cmpop_list, + unique int parent : @py_Compare ref); + +py_comprehensions(unique int id : @py_comprehension, + int parent : @py_comprehension_list ref, + int idx : int ref); + +py_comprehension_lists(unique int id : @py_comprehension_list, + unique int parent : @py_ListComp ref); + +py_dict_items(unique int id : @py_dict_item, + int kind: int ref, + int parent : @py_dict_item_list ref, + int idx : int ref); + +py_dict_item_lists(unique int id : @py_dict_item_list, + unique int parent : @py_dict_item_list_parent ref); + +py_exprs(unique int id : @py_expr, + int kind: int ref, + int parent : @py_expr_parent ref, + int idx : int ref); + +py_expr_contexts(unique int id : @py_expr_context, + int kind: int ref, + unique int parent : @py_expr_context_parent ref); + +py_expr_lists(unique int id : @py_expr_list, + int parent : @py_expr_list_parent ref, + int idx : int ref); + +py_ints(int id : int ref, + unique int parent : @py_ImportExpr ref); + +py_locations(unique int id : @location ref, + unique int parent : @py_location_parent ref); + +py_numbers(varchar(1) id : string ref, + int parent : @py_Num ref, + int idx : int ref); + +py_operators(unique int id : @py_operator, + int kind: int ref, + unique int parent : @py_BinaryExpr ref); + +py_parameter_lists(unique int id : @py_parameter_list, + unique int parent : @py_Function ref); + +py_patterns(unique int id : @py_pattern, + int kind: int ref, + int parent : @py_pattern_parent ref, + int idx : int ref); + +py_pattern_lists(unique int id : @py_pattern_list, + int parent : @py_pattern_list_parent ref, + int idx : int ref); + +py_stmts(unique int id : @py_stmt, + int kind: int ref, + int parent : @py_stmt_list ref, + int idx : int ref); + +py_stmt_lists(unique int id : @py_stmt_list, + int parent : @py_stmt_list_parent ref, + int idx : int ref); + +py_strs(varchar(1) id : string ref, + int parent : @py_str_parent ref, + int idx : int ref); + +py_str_lists(unique int id : @py_str_list, + unique int parent : @py_str_list_parent ref); + +py_type_parameters(unique int id : @py_type_parameter, + int kind: int ref, + int parent : @py_type_parameter_list ref, + int idx : int ref); + +py_type_parameter_lists(unique int id : @py_type_parameter_list, + unique int parent : @py_type_parameter_list_parent ref); + +py_unaryops(unique int id : @py_unaryop, + int kind: int ref, + unique int parent : @py_UnaryExpr ref); + +py_variables(int id : @py_variable ref, + unique int parent : @py_variable_parent ref); + +case @py_boolop.kind of + 0 = @py_And +| 1 = @py_Or; + +case @py_cmpop.kind of + 0 = @py_Eq +| 1 = @py_Gt +| 2 = @py_GtE +| 3 = @py_In +| 4 = @py_Is +| 5 = @py_IsNot +| 6 = @py_Lt +| 7 = @py_LtE +| 8 = @py_NotEq +| 9 = @py_NotIn; + +case @py_dict_item.kind of + 0 = @py_DictUnpacking +| 1 = @py_KeyValuePair +| 2 = @py_keyword; + +case @py_expr.kind of + 0 = @py_Attribute +| 1 = @py_BinaryExpr +| 2 = @py_BoolExpr +| 3 = @py_Bytes +| 4 = @py_Call +| 5 = @py_ClassExpr +| 6 = @py_Compare +| 7 = @py_Dict +| 8 = @py_DictComp +| 9 = @py_Ellipsis +| 10 = @py_FunctionExpr +| 11 = @py_GeneratorExp +| 12 = @py_IfExp +| 13 = @py_ImportExpr +| 14 = @py_ImportMember +| 15 = @py_Lambda +| 16 = @py_List +| 17 = @py_ListComp +| 18 = @py_Guard +| 19 = @py_Name +| 20 = @py_Num +| 21 = @py_Repr +| 22 = @py_Set +| 23 = @py_SetComp +| 24 = @py_Slice +| 25 = @py_Starred +| 26 = @py_Str +| 27 = @py_Subscript +| 28 = @py_Tuple +| 29 = @py_UnaryExpr +| 30 = @py_Yield +| 31 = @py_YieldFrom +| 32 = @py_TemplateDottedNotation +| 33 = @py_Filter +| 34 = @py_PlaceHolder +| 35 = @py_Await +| 36 = @py_Fstring +| 37 = @py_FormattedValue +| 38 = @py_AssignExpr +| 39 = @py_SpecialOperation +| 40 = @py_TemplateString +| 41 = @py_JoinedTemplateString +| 42 = @py_TemplateStringPart; + +case @py_expr_context.kind of + 0 = @py_AugLoad +| 1 = @py_AugStore +| 2 = @py_Del +| 3 = @py_Load +| 4 = @py_Param +| 5 = @py_Store; + +case @py_operator.kind of + 0 = @py_Add +| 1 = @py_BitAnd +| 2 = @py_BitOr +| 3 = @py_BitXor +| 4 = @py_Div +| 5 = @py_FloorDiv +| 6 = @py_LShift +| 7 = @py_Mod +| 8 = @py_Mult +| 9 = @py_Pow +| 10 = @py_RShift +| 11 = @py_Sub +| 12 = @py_MatMult; + +case @py_pattern.kind of + 0 = @py_MatchAsPattern +| 1 = @py_MatchOrPattern +| 2 = @py_MatchLiteralPattern +| 3 = @py_MatchCapturePattern +| 4 = @py_MatchWildcardPattern +| 5 = @py_MatchValuePattern +| 6 = @py_MatchSequencePattern +| 7 = @py_MatchStarPattern +| 8 = @py_MatchMappingPattern +| 9 = @py_MatchDoubleStarPattern +| 10 = @py_MatchKeyValuePattern +| 11 = @py_MatchClassPattern +| 12 = @py_MatchKeywordPattern; + +case @py_stmt.kind of + 0 = @py_Assert +| 1 = @py_Assign +| 2 = @py_AugAssign +| 3 = @py_Break +| 4 = @py_Continue +| 5 = @py_Delete +| 6 = @py_ExceptStmt +| 7 = @py_ExceptGroupStmt +| 8 = @py_Exec +| 9 = @py_Expr_stmt +| 10 = @py_For +| 11 = @py_Global +| 12 = @py_If +| 13 = @py_Import +| 14 = @py_ImportStar +| 15 = @py_MatchStmt +| 16 = @py_Case +| 17 = @py_Nonlocal +| 18 = @py_Pass +| 19 = @py_Print +| 20 = @py_Raise +| 21 = @py_Return +| 22 = @py_Try +| 23 = @py_While +| 24 = @py_With +| 25 = @py_TemplateWrite +| 26 = @py_AnnAssign +| 27 = @py_TypeAlias; + +case @py_type_parameter.kind of + 0 = @py_ParamSpec +| 1 = @py_TypeVar +| 2 = @py_TypeVarTuple; + +case @py_unaryop.kind of + 0 = @py_Invert +| 1 = @py_Not +| 2 = @py_UAdd +| 3 = @py_USub; + +@py_Bytes_or_Str = @py_Bytes | @py_Str; + +@py_Function_parent = @py_DictComp | @py_FunctionExpr | @py_GeneratorExp | @py_Lambda | @py_ListComp | @py_SetComp; + +@py_arguments_parent = @py_FunctionExpr | @py_Lambda; + +@py_ast_node = @py_Class | @py_Function | @py_Module | @py_StringPart | @py_comprehension | @py_dict_item | @py_expr | @py_pattern | @py_stmt | @py_type_parameter; + +@py_bool_parent = @py_For | @py_Function | @py_Import | @py_ImportStar | @py_Print | @py_With | @py_expr | @py_pattern; + +@py_dict_item_list_parent = @py_Call | @py_ClassExpr | @py_Dict; + +@py_expr_context_parent = @py_Attribute | @py_List | @py_Name | @py_PlaceHolder | @py_Starred | @py_Subscript | @py_TemplateDottedNotation | @py_Tuple; + +@py_expr_list_parent = @py_Assign | @py_BoolExpr | @py_Call | @py_ClassExpr | @py_Compare | @py_Delete | @py_Fstring | @py_Function | @py_List | @py_Print | @py_Set | @py_SpecialOperation | @py_TemplateString | @py_Tuple | @py_arguments | @py_comprehension; + +@py_expr_or_stmt = @py_expr | @py_stmt; + +@py_expr_parent = @py_AnnAssign | @py_Assert | @py_Assign | @py_AssignExpr | @py_Attribute | @py_AugAssign | @py_Await | @py_BinaryExpr | @py_Call | @py_Case | @py_Compare | @py_DictComp | @py_DictUnpacking | @py_ExceptGroupStmt | @py_ExceptStmt | @py_Exec | @py_Expr_stmt | @py_Filter | @py_For | @py_FormattedValue | @py_Function | @py_FunctionExpr | @py_GeneratorExp | @py_Guard | @py_If | @py_IfExp | @py_ImportMember | @py_ImportStar | @py_KeyValuePair | @py_ListComp | @py_MatchAsPattern | @py_MatchCapturePattern | @py_MatchClassPattern | @py_MatchKeywordPattern | @py_MatchLiteralPattern | @py_MatchStmt | @py_MatchValuePattern | @py_ParamSpec | @py_Print | @py_Raise | @py_Repr | @py_Return | @py_SetComp | @py_Slice | @py_Starred | @py_Subscript | @py_TemplateDottedNotation | @py_TemplateString_list | @py_TemplateWrite | @py_TypeAlias | @py_TypeVar | @py_TypeVarTuple | @py_UnaryExpr | @py_While | @py_With | @py_Yield | @py_YieldFrom | @py_alias | @py_arguments | @py_comprehension | @py_expr_list | @py_keyword | @py_parameter_list; + +@py_location_parent = @py_DictUnpacking | @py_KeyValuePair | @py_StringPart | @py_comprehension | @py_expr | @py_keyword | @py_pattern | @py_stmt | @py_type_parameter; + +@py_parameter = @py_Name | @py_Tuple; + +@py_pattern_list_parent = @py_MatchClassPattern | @py_MatchMappingPattern | @py_MatchOrPattern | @py_MatchSequencePattern; + +@py_pattern_parent = @py_Case | @py_MatchAsPattern | @py_MatchDoubleStarPattern | @py_MatchKeyValuePattern | @py_MatchKeywordPattern | @py_MatchStarPattern | @py_pattern_list; + +@py_scope = @py_Class | @py_Function | @py_Module; + +@py_stmt_list_parent = @py_Case | @py_Class | @py_ExceptGroupStmt | @py_ExceptStmt | @py_For | @py_Function | @py_If | @py_MatchStmt | @py_Module | @py_Try | @py_While | @py_With; + +@py_str_list_parent = @py_Global | @py_Nonlocal; + +@py_str_parent = @py_Attribute | @py_Class | @py_ClassExpr | @py_FormattedValue | @py_Function | @py_FunctionExpr | @py_ImportExpr | @py_ImportMember | @py_Module | @py_SpecialOperation | @py_Str | @py_StringPart | @py_TemplateDottedNotation | @py_TemplateString | @py_TemplateStringPart | @py_keyword | @py_str_list; + +@py_type_parameter_list_parent = @py_ClassExpr | @py_Function | @py_TypeAlias; + +@py_variable_parent = @py_Name | @py_PlaceHolder; + + +/* + * End of auto-generated part + */ + + + +/* Map relative names to absolute names for imports */ +py_absolute_names(int module : @py_Module ref, + varchar(1) relname : string ref, + varchar(1) absname : string ref); + +py_exports(int id : @py_Module ref, + varchar(1) name : string ref); + +/* Successor information */ +py_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_true_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_exception_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_false_successors(int predecessor : @py_flow_node ref, + int successor : @py_flow_node ref); + +py_flow_bb_node(unique int flownode : @py_flow_node, + int realnode : @py_ast_node ref, + int basicblock : @py_flow_node ref, + int index : int ref); + +py_scope_flow(int flow : @py_flow_node ref, + int scope : @py_scope ref, + int kind : int ref); + +py_idoms(unique int node : @py_flow_node ref, + int immediate_dominator : @py_flow_node ref); + +py_ssa_phi(int phi : @py_ssa_var ref, + int arg: @py_ssa_var ref); + +py_ssa_var(unique int id : @py_ssa_var, + int var : @py_variable ref); + +py_ssa_use(int node: @py_flow_node ref, + int var : @py_ssa_var ref); + +py_ssa_defn(unique int id : @py_ssa_var ref, + int node: @py_flow_node ref); + +@py_base_var = @py_variable | @py_ssa_var; + +py_scopes(unique int node : @py_expr_or_stmt ref, + int scope : @py_scope ref); + +py_scope_location(unique int id : @location ref, + unique int scope : @py_scope ref); + +py_flags_versioned(varchar(1) name : string ref, + varchar(1) value : string ref, + varchar(1) version : string ref); + +py_syntax_error_versioned(unique int id : @location ref, + varchar(1) message : string ref, + varchar(1) version : string ref); + +py_comments(unique int id : @py_comment, + varchar(1) text : string ref, + unique int location : @location ref); + +/* Type information support */ + +py_cobjects(unique int obj : @py_cobject); + +py_cobjecttypes(unique int obj : @py_cobject ref, + int typeof : @py_cobject ref); + +py_cobjectnames(unique int obj : @py_cobject ref, + varchar(1) name : string ref); + +/* Kind should be 0 for introspection, > 0 from source, as follows: + 1 from C extension source + */ +py_cobject_sources(int obj : @py_cobject ref, + int kind : int ref); + +py_cmembers_versioned(int object : @py_cobject ref, + varchar(1) name : string ref, + int member : @py_cobject ref, + varchar(1) version : string ref); + +py_citems(int object : @py_cobject ref, + int index : int ref, + int member : @py_cobject ref); + +ext_argtype(int funcid : @py_object ref, + int arg : int ref, + int typeid : @py_object ref); + +ext_rettype(int funcid : @py_object ref, + int typeid : @py_object ref); + +ext_proptype(int propid : @py_object ref, + int typeid : @py_object ref); + +ext_argreturn(int funcid : @py_object ref, + int arg : int ref); + +py_special_objects(unique int obj : @py_cobject ref, + unique varchar(1) name : string ref); + +py_decorated_object(int object : @py_object ref, + int level: int ref); + +@py_object = @py_cobject | @py_flow_node; + +@py_source_element = @py_ast_node | @container; + +/** The union of all Python database entities */ +@top = + @py_source_element | @py_object | @py_base_var | @location | @py_line | @py_comment | + @py_expr_parent | @py_expr_context | + @py_operator | @py_boolop | @py_cmpop | @py_unaryop | + @py_cmpop_list | @py_alias_list | @py_StringPart_list | @py_comprehension_list | @py_dict_item_list | @py_pattern_list | @py_stmt_list | @py_str_list | @py_type_parameter_list | + @externalDefect | @externalMetric | @externalDataElement | @duplication_or_similarity | @svnentry | + @xmllocatable | @yaml_locatable; diff --git a/python/ql/lib/upgrades/279cbb08d387ecd57ac177e87c94cfd5ca62f792/upgrade.properties b/python/ql/lib/upgrades/279cbb08d387ecd57ac177e87c94cfd5ca62f792/upgrade.properties new file mode 100644 index 00000000000..ba9ec633f47 --- /dev/null +++ b/python/ql/lib/upgrades/279cbb08d387ecd57ac177e87c94cfd5ca62f792/upgrade.properties @@ -0,0 +1,2 @@ +description: Add is_lazy field to Import and ImportStar for PEP 810 lazy imports +compatibility: backwards diff --git a/python/ql/src/CHANGELOG.md b/python/ql/src/CHANGELOG.md index 4b109dca569..38018f09856 100644 --- a/python/ql/src/CHANGELOG.md +++ b/python/ql/src/CHANGELOG.md @@ -1,3 +1,20 @@ +## 1.8.1 + +### Minor Analysis Improvements + +- The `py/bind-socket-all-network-interfaces` query now uses the global data-flow library, leading to better precision and more results. Also, wrappers of `socket.socket` in the `eventlet` and `gevent` libraries are now also recognized as socket binding operations. + +## 1.8.0 + +### Query Metadata Changes + +* The `@security-severity` metadata of `py/log-injection` has been reduced from 7.8 (high) to 6.1 (medium). +* The `@security-severity` metadata of `py/jinja2/autoescape-false` and `py/reflective-xss` has been increased from 6.1 (medium) to 7.8 (high). + +### Major Analysis Improvements + +- Several quality queries have been ported away from using the legacy points-to library. This may lead to changes in alerts. + ## 1.7.11 No user-facing changes. diff --git a/python/ql/src/Security/CVE-2018-1281/BindToAllInterfaces.ql b/python/ql/src/Security/CVE-2018-1281/BindToAllInterfaces.ql index 5e2e27b3bf4..14c17edc359 100644 --- a/python/ql/src/Security/CVE-2018-1281/BindToAllInterfaces.ql +++ b/python/ql/src/Security/CVE-2018-1281/BindToAllInterfaces.ql @@ -2,7 +2,7 @@ * @name Binding a socket to all network interfaces * @description Binding a socket to all interfaces opens it up to traffic from any IPv4 address * and is therefore associated with security risks. - * @kind problem + * @kind path-problem * @tags security * external/cwe/cwe-200 * @problem.severity error @@ -14,7 +14,9 @@ import python import semmle.python.dataflow.new.DataFlow -import semmle.python.ApiGraphs +import semmle.python.dataflow.new.TaintTracking +private import semmle.python.frameworks.data.ModelsAsData +import BindToAllInterfacesFlow::PathGraph /** Gets a hostname that can be used to bind to all interfaces. */ private string vulnerableHostname() { @@ -26,45 +28,26 @@ private string vulnerableHostname() { ] } -/** Gets a reference to a hostname that can be used to bind to all interfaces. */ -private DataFlow::TypeTrackingNode vulnerableHostnameRef(DataFlow::TypeTracker t, string hostname) { - t.start() and - exists(StringLiteral allInterfacesStringLiteral | hostname = vulnerableHostname() | - allInterfacesStringLiteral.getText() = hostname and - result.asExpr() = allInterfacesStringLiteral - ) - or - exists(DataFlow::TypeTracker t2 | result = vulnerableHostnameRef(t2, hostname).track(t2, t)) +private module BindToAllInterfacesConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { + source.asExpr().(StringLiteral).getText() = vulnerableHostname() + } + + predicate isSink(DataFlow::Node sink) { + ModelOutput::sinkNode(sink, "bind-socket-all-interfaces") and + // Network socket addresses are tuples like (host, port), so we require + // the bind() argument to originate from a tuple expression. This excludes + // AF_UNIX sockets, which pass a plain string path to bind(). + any(DataFlow::LocalSourceNode n | n.asExpr() instanceof Tuple).flowsTo(sink) + } } -/** Gets a reference to a hostname that can be used to bind to all interfaces. */ -DataFlow::Node vulnerableHostnameRef(string hostname) { - vulnerableHostnameRef(DataFlow::TypeTracker::end(), hostname).flowsTo(result) -} +private module BindToAllInterfacesFlow = TaintTracking::Global; -/** Gets a reference to a tuple for which the first element is a hostname that can be used to bind to all interfaces. */ -private DataFlow::TypeTrackingNode vulnerableAddressTuple(DataFlow::TypeTracker t, string hostname) { - t.start() and - result.asExpr() = any(Tuple tup | tup.getElt(0) = vulnerableHostnameRef(hostname).asExpr()) - or - exists(DataFlow::TypeTracker t2 | result = vulnerableAddressTuple(t2, hostname).track(t2, t)) -} +private import BindToAllInterfacesFlow -/** Gets a reference to a tuple for which the first element is a hostname that can be used to bind to all interfaces. */ -DataFlow::Node vulnerableAddressTuple(string hostname) { - vulnerableAddressTuple(DataFlow::TypeTracker::end(), hostname).flowsTo(result) -} - -/** - * Gets an instance of `socket.socket` using _some_ address family. - * - * See https://docs.python.org/3/library/socket.html - */ -API::Node socketInstance() { result = API::moduleImport("socket").getMember("socket").getReturn() } - -from DataFlow::CallCfgNode bindCall, DataFlow::Node addressArg, string hostname -where - bindCall = socketInstance().getMember("bind").getACall() and - addressArg = bindCall.getArg(0) and - addressArg = vulnerableAddressTuple(hostname) -select bindCall.asExpr(), "'" + hostname + "' binds a socket to all interfaces." +from PathNode source, PathNode sink +where flowPath(source, sink) +select sink.getNode(), source, sink, + "Binding a socket to all interfaces (using $@) is a security risk.", source.getNode(), + "'" + source.getNode().asExpr().(StringLiteral).getText() + "'" diff --git a/python/ql/src/Statements/ModificationOfLocals.ql b/python/ql/src/Statements/ModificationOfLocals.ql index e4791a410f7..f32ddcf7884 100644 --- a/python/ql/src/Statements/ModificationOfLocals.ql +++ b/python/ql/src/Statements/ModificationOfLocals.ql @@ -12,10 +12,10 @@ */ import python -private import LegacyPointsTo +private import semmle.python.ApiGraphs -predicate originIsLocals(ControlFlowNodeWithPointsTo n) { - n.pointsTo(_, _, Value::named("locals").getACall()) +predicate originIsLocals(ControlFlowNode n) { + API::builtin("locals").getReturn().getAValueReachableFromSource().asCfgNode() = n } predicate modification_of_locals(ControlFlowNode f) { @@ -37,5 +37,8 @@ where // in module level scope `locals() == globals()` // see https://docs.python.org/3/library/functions.html#locals // FP report in https://github.com/github/codeql/issues/6674 - not a.getScope() instanceof ModuleScope + not a.getScope() instanceof Module and + // in class level scope `locals()` reflects the class namespace, + // so modifications do take effect. + not a.getScope() instanceof Class select a, "Modification of the locals() dictionary will have no effect on the local variables." diff --git a/python/ql/src/Statements/ShouldUseWithStatement.ql b/python/ql/src/Statements/ShouldUseWithStatement.ql index eb5cf9237d5..20bf053f6da 100644 --- a/python/ql/src/Statements/ShouldUseWithStatement.ql +++ b/python/ql/src/Statements/ShouldUseWithStatement.ql @@ -13,7 +13,7 @@ */ import python -private import LegacyPointsTo +private import semmle.python.dataflow.new.internal.DataFlowDispatch predicate calls_close(Call c) { exists(Attribute a | c.getFunc() = a and a.getName() = "close") } @@ -23,18 +23,12 @@ predicate only_stmt_in_finally(Try t, Call c) { ) } -predicate points_to_context_manager(ControlFlowNodeWithPointsTo f, ClassValue cls) { - forex(Value v | f.pointsTo(v) | v.getClass() = cls) and - cls.isContextManager() -} - -from Call close, Try t, ClassValue cls +from Call close, Try t, Class cls where only_stmt_in_finally(t, close) and calls_close(close) and - exists(ControlFlowNode f | f = close.getFunc().getAFlowNode().(AttrNode).getObject() | - points_to_context_manager(f, cls) - ) + classInstanceTracker(cls).asExpr() = close.getFunc().(Attribute).getObject() and + DuckTyping::isContextManager(cls) select close, "Instance of context-manager class $@ is closed in a finally block. Consider using 'with' statement.", cls, cls.getName() diff --git a/python/ql/src/Statements/UnreachableCode.ql b/python/ql/src/Statements/UnreachableCode.ql index 55582ed2f06..200e073cff6 100644 --- a/python/ql/src/Statements/UnreachableCode.ql +++ b/python/ql/src/Statements/UnreachableCode.ql @@ -13,7 +13,7 @@ */ import python -private import LegacyPointsTo +private import semmle.python.ApiGraphs predicate typing_import(ImportingStmt is) { exists(Module m | @@ -34,11 +34,7 @@ predicate unique_yield(Stmt s) { /** Holds if `contextlib.suppress` may be used in the same scope as `s` */ predicate suppression_in_scope(Stmt s) { exists(With w | - w.getContextExpr() - .(Call) - .getFunc() - .(ExprWithPointsTo) - .pointsTo(Value::named("contextlib.suppress")) and + w.getContextExpr() = API::moduleImport("contextlib").getMember("suppress").getACall().asExpr() and w.getScope() = s.getScope() ) } diff --git a/python/ql/src/Statements/UnusedExceptionObject.ql b/python/ql/src/Statements/UnusedExceptionObject.ql index 9a6a3650b7e..890cdc963ac 100644 --- a/python/ql/src/Statements/UnusedExceptionObject.ql +++ b/python/ql/src/Statements/UnusedExceptionObject.ql @@ -12,11 +12,49 @@ */ import python -private import LegacyPointsTo +private import semmle.python.dataflow.new.internal.DataFlowDispatch +private import semmle.python.dataflow.new.internal.Builtins +private import semmle.python.ApiGraphs -from Call call, ClassValue ex +/** + * Holds if `cls` is a user-defined exception class, i.e. it transitively + * extends one of the builtin exception base classes. + */ +predicate isUserDefinedExceptionClass(Class cls) { + cls.getABase() = + API::builtin(["BaseException", "Exception"]).getAValueReachableFromSource().asExpr() + or + isUserDefinedExceptionClass(getADirectSuperclass(cls)) +} + +/** + * Gets the name of a builtin exception class. + */ +string getBuiltinExceptionName() { + result = Builtins::getBuiltinName() and + ( + result.matches("%Error") or + result.matches("%Exception") or + result.matches("%Warning") or + result = + ["GeneratorExit", "KeyboardInterrupt", "StopIteration", "StopAsyncIteration", "SystemExit"] + ) +} + +/** + * Holds if `call` is an instantiation of an exception class. + */ +predicate isExceptionInstantiation(Call call) { + exists(Class cls | + classTracker(cls).asExpr() = call.getFunc() and + isUserDefinedExceptionClass(cls) + ) + or + call.getFunc() = API::builtin(getBuiltinExceptionName()).getAValueReachableFromSource().asExpr() +} + +from Call call where - call.getFunc().(ExprWithPointsTo).pointsTo(ex) and - ex.getASuperType() = ClassValue::exception() and + isExceptionInstantiation(call) and exists(ExprStmt s | s.getValue() = call) select call, "Instantiating an exception, but not raising it, has no effect." diff --git a/python/ql/src/Statements/UseOfExit.ql b/python/ql/src/Statements/UseOfExit.ql index 437ff93b537..2310a839f67 100644 --- a/python/ql/src/Statements/UseOfExit.ql +++ b/python/ql/src/Statements/UseOfExit.ql @@ -12,10 +12,12 @@ */ import python -private import LegacyPointsTo +private import semmle.python.ApiGraphs from CallNode call, string name -where call.getFunction().(ControlFlowNodeWithPointsTo).pointsTo(Value::siteQuitter(name)) +where + name = ["exit", "quit"] and + call = API::builtin(name).getACall().asCfgNode() select call, "The '" + name + "' site.Quitter object may not exist if the 'site' module is not loaded or is modified." diff --git a/python/ql/src/change-notes/2026-03-13-port-simple-points-to-queries.md b/python/ql/src/change-notes/2026-03-13-port-simple-points-to-queries.md deleted file mode 100644 index 3673b6de83a..00000000000 --- a/python/ql/src/change-notes/2026-03-13-port-simple-points-to-queries.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -category: majorAnalysis ---- - -- Several quality queries have been ported away from using the legacy points-to library. This may lead to changes in alerts. diff --git a/python/ql/src/change-notes/2026-03-13-adjust-xss-and-log-injection-severity.md b/python/ql/src/change-notes/released/1.8.0.md similarity index 56% rename from python/ql/src/change-notes/2026-03-13-adjust-xss-and-log-injection-severity.md rename to python/ql/src/change-notes/released/1.8.0.md index 4278d0171e3..123b4604da3 100644 --- a/python/ql/src/change-notes/2026-03-13-adjust-xss-and-log-injection-severity.md +++ b/python/ql/src/change-notes/released/1.8.0.md @@ -1,5 +1,10 @@ ---- -category: queryMetadata ---- +## 1.8.0 + +### Query Metadata Changes + * The `@security-severity` metadata of `py/log-injection` has been reduced from 7.8 (high) to 6.1 (medium). * The `@security-severity` metadata of `py/jinja2/autoescape-false` and `py/reflective-xss` has been increased from 6.1 (medium) to 7.8 (high). + +### Major Analysis Improvements + +- Several quality queries have been ported away from using the legacy points-to library. This may lead to changes in alerts. diff --git a/python/ql/src/change-notes/released/1.8.1.md b/python/ql/src/change-notes/released/1.8.1.md new file mode 100644 index 00000000000..cafb58c11c9 --- /dev/null +++ b/python/ql/src/change-notes/released/1.8.1.md @@ -0,0 +1,5 @@ +## 1.8.1 + +### Minor Analysis Improvements + +- The `py/bind-socket-all-network-interfaces` query now uses the global data-flow library, leading to better precision and more results. Also, wrappers of `socket.socket` in the `eventlet` and `gevent` libraries are now also recognized as socket binding operations. diff --git a/python/ql/src/codeql-pack.release.yml b/python/ql/src/codeql-pack.release.yml index 6e5b0b6e2f2..28a7c123ae8 100644 --- a/python/ql/src/codeql-pack.release.yml +++ b/python/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.7.11 +lastReleaseVersion: 1.8.1 diff --git a/python/ql/src/qlpack.yml b/python/ql/src/qlpack.yml index 32f1015130b..2d99bcd0c7a 100644 --- a/python/ql/src/qlpack.yml +++ b/python/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-queries -version: 1.7.12-dev +version: 1.8.2-dev groups: - python - queries diff --git a/python/ql/test/3/extractor-tests/lazy-imports/test.expected b/python/ql/test/3/extractor-tests/lazy-imports/test.expected new file mode 100644 index 00000000000..6c9aea1255e --- /dev/null +++ b/python/ql/test/3/extractor-tests/lazy-imports/test.expected @@ -0,0 +1,9 @@ +| 2 | Import | lazy | +| 3 | Import | lazy | +| 4 | Import | lazy | +| 5 | Import | lazy | +| 6 | Import | lazy | +| 7 | from l import * | lazy | +| 10 | Import | normal | +| 11 | Import | normal | +| 12 | from w import * | normal | diff --git a/python/ql/test/3/extractor-tests/lazy-imports/test.py b/python/ql/test/3/extractor-tests/lazy-imports/test.py new file mode 100644 index 00000000000..ecb69008911 --- /dev/null +++ b/python/ql/test/3/extractor-tests/lazy-imports/test.py @@ -0,0 +1,12 @@ +# Lazy imports (PEP 810) +lazy import a +lazy from b import c +lazy from d import e as f +lazy import g.h as i +lazy from ..j import k +lazy from l import * + +# Non-lazy imports +import x +from y import z +from w import * diff --git a/python/ql/test/3/extractor-tests/lazy-imports/test.ql b/python/ql/test/3/extractor-tests/lazy-imports/test.ql new file mode 100644 index 00000000000..9728226ed7e --- /dev/null +++ b/python/ql/test/3/extractor-tests/lazy-imports/test.ql @@ -0,0 +1,11 @@ +import python + +string lazy(Stmt s) { + if s.(Import).isLazy() or s.(ImportStar).isLazy() then result = "lazy" else result = "normal" +} + +from Stmt s +where + s.getLocation().getFile().getShortName() = "test.py" and + (s instanceof Import or s instanceof ImportStar) +select s.getLocation().getStartLine(), s.toString(), lazy(s) diff --git a/python/ql/test/3/extractor-tests/unpacking-comprehensions/test.expected b/python/ql/test/3/extractor-tests/unpacking-comprehensions/test.expected new file mode 100644 index 00000000000..ec8cc352df4 --- /dev/null +++ b/python/ql/test/3/extractor-tests/unpacking-comprehensions/test.expected @@ -0,0 +1,4 @@ +| 3 | ListComp | +| 5 | SetComp | +| 7 | DictComp | +| 9 | GeneratorExp | diff --git a/python/ql/test/3/extractor-tests/unpacking-comprehensions/test.py b/python/ql/test/3/extractor-tests/unpacking-comprehensions/test.py new file mode 100644 index 00000000000..44c8b1ec0ba --- /dev/null +++ b/python/ql/test/3/extractor-tests/unpacking-comprehensions/test.py @@ -0,0 +1,12 @@ +# PEP 798: Unpacking in comprehensions + +flat_list = [*x for x in nested] + +flat_set = {*x for x in nested} + +merged = {**d for d in dicts} + +gen = (*x for x in nested) + +# Force the new parser (the old parser cannot handle lazy imports) +lazy import _pep798_parser_hint diff --git a/python/ql/test/3/extractor-tests/unpacking-comprehensions/test.ql b/python/ql/test/3/extractor-tests/unpacking-comprehensions/test.ql new file mode 100644 index 00000000000..23c08f720ff --- /dev/null +++ b/python/ql/test/3/extractor-tests/unpacking-comprehensions/test.ql @@ -0,0 +1,12 @@ +import python + +from Expr e +where + e.getLocation().getFile().getShortName() = "test.py" and + ( + e instanceof ListComp or + e instanceof SetComp or + e instanceof DictComp or + e instanceof GeneratorExp + ) +select e.getLocation().getStartLine(), e.toString() diff --git a/python/ql/test/library-tests/comprehensions/Flow.expected b/python/ql/test/library-tests/comprehensions/Flow.expected index efcf64bfb9f..8262e3e0468 100644 --- a/python/ql/test/library-tests/comprehensions/Flow.expected +++ b/python/ql/test/library-tests/comprehensions/Flow.expected @@ -36,13 +36,13 @@ | 11 | ControlFlowNode for For | 11 | Exit node for Function dictcomp | | 11 | ControlFlowNode for For | 13 | ControlFlowNode for Tuple | | 11 | Entry node for Function dictcomp | 11 | ControlFlowNode for .0 | -| 12 | ControlFlowNode for Attribute | 12 | ControlFlowNode for Tuple | +| 12 | ControlFlowNode for Attribute | 12 | ControlFlowNode for z | | 12 | ControlFlowNode for Tuple | 12 | ControlFlowNode for Yield | | 12 | ControlFlowNode for Yield | 11 | ControlFlowNode for For | | 12 | ControlFlowNode for y | 12 | ControlFlowNode for Attribute | | 12 | ControlFlowNode for z | 12 | ControlFlowNode for z() | -| 12 | ControlFlowNode for z() | 12 | ControlFlowNode for y | +| 12 | ControlFlowNode for z() | 12 | ControlFlowNode for Tuple | | 13 | ControlFlowNode for Tuple | 13 | ControlFlowNode for y | | 13 | ControlFlowNode for y | 13 | ControlFlowNode for z | -| 13 | ControlFlowNode for z | 12 | ControlFlowNode for z | +| 13 | ControlFlowNode for z | 12 | ControlFlowNode for y | | 14 | ControlFlowNode for mapping | 11 | ControlFlowNode for DictComp | diff --git a/python/ql/test/library-tests/dataflow/coverage-pep798/NormalDataflowTest.expected b/python/ql/test/library-tests/dataflow/coverage-pep798/NormalDataflowTest.expected new file mode 100644 index 00000000000..2fad7bb9a84 --- /dev/null +++ b/python/ql/test/library-tests/dataflow/coverage-pep798/NormalDataflowTest.expected @@ -0,0 +1,2 @@ +missingAnnotationOnSink +testFailures diff --git a/python/ql/test/library-tests/dataflow/coverage-pep798/NormalDataflowTest.ql b/python/ql/test/library-tests/dataflow/coverage-pep798/NormalDataflowTest.ql new file mode 100644 index 00000000000..1e0627bfcca --- /dev/null +++ b/python/ql/test/library-tests/dataflow/coverage-pep798/NormalDataflowTest.ql @@ -0,0 +1,2 @@ +import python +import utils.test.dataflow.NormalDataflowTest diff --git a/python/ql/test/library-tests/dataflow/coverage-pep798/test.py b/python/ql/test/library-tests/dataflow/coverage-pep798/test.py new file mode 100644 index 00000000000..c6f7a1b4bf1 --- /dev/null +++ b/python/ql/test/library-tests/dataflow/coverage-pep798/test.py @@ -0,0 +1,25 @@ +# PEP 798: Unpacking in comprehensions. +# These desugar to `yield from`, so flow depends on yield-from support. + +def test_star_list_comp(): + l = [[SOURCE]] + flat = [*x for x in l] + SINK(flat[0]) # $ MISSING:flow="SOURCE, l:-2 -> flat[0]" + + +def test_star_set_comp(): + l = [[SOURCE]] + flat = {*x for x in l} + SINK(flat.pop()) # $ MISSING:flow="SOURCE, l:-2 -> flat.pop()" + + +def test_star_genexp(): + l = [[SOURCE]] + g = (*x for x in l) + SINK(next(g)) # $ MISSING:flow="SOURCE, l:-2 -> next()" + + +def test_star_dictcomp(): + l = [{"key": SOURCE}] + merged = {**d for d in l} + SINK(merged["key"]) # $ MISSING:flow="SOURCE, l:-2 -> merged[..]" diff --git a/python/ql/test/query-tests/Security/CVE-2018-1281/BindToAllInterfaces.expected b/python/ql/test/query-tests/Security/CVE-2018-1281/BindToAllInterfaces.expected index 86c67af4eae..0b96b2df650 100644 --- a/python/ql/test/query-tests/Security/CVE-2018-1281/BindToAllInterfaces.expected +++ b/python/ql/test/query-tests/Security/CVE-2018-1281/BindToAllInterfaces.expected @@ -1,5 +1,63 @@ -| BindToAllInterfaces_test.py:5:1:5:26 | Attribute() | '0.0.0.0' binds a socket to all interfaces. | -| BindToAllInterfaces_test.py:9:1:9:18 | Attribute() | '' binds a socket to all interfaces. | -| BindToAllInterfaces_test.py:17:1:17:26 | Attribute() | '0.0.0.0' binds a socket to all interfaces. | -| BindToAllInterfaces_test.py:21:1:21:11 | Attribute() | '0.0.0.0' binds a socket to all interfaces. | -| BindToAllInterfaces_test.py:26:1:26:20 | Attribute() | '::' binds a socket to all interfaces. | +#select +| BindToAllInterfaces_test.py:5:9:5:24 | ControlFlowNode for Tuple | BindToAllInterfaces_test.py:5:9:5:17 | ControlFlowNode for StringLiteral | BindToAllInterfaces_test.py:5:9:5:24 | ControlFlowNode for Tuple | Binding a socket to all interfaces (using $@) is a security risk. | BindToAllInterfaces_test.py:5:9:5:17 | ControlFlowNode for StringLiteral | '0.0.0.0' | +| BindToAllInterfaces_test.py:9:9:9:16 | ControlFlowNode for Tuple | BindToAllInterfaces_test.py:9:9:9:10 | ControlFlowNode for StringLiteral | BindToAllInterfaces_test.py:9:9:9:16 | ControlFlowNode for Tuple | Binding a socket to all interfaces (using $@) is a security risk. | BindToAllInterfaces_test.py:9:9:9:10 | ControlFlowNode for StringLiteral | '' | +| BindToAllInterfaces_test.py:17:9:17:24 | ControlFlowNode for Tuple | BindToAllInterfaces_test.py:16:14:16:22 | ControlFlowNode for StringLiteral | BindToAllInterfaces_test.py:17:9:17:24 | ControlFlowNode for Tuple | Binding a socket to all interfaces (using $@) is a security risk. | BindToAllInterfaces_test.py:16:14:16:22 | ControlFlowNode for StringLiteral | '0.0.0.0' | +| BindToAllInterfaces_test.py:21:8:21:10 | ControlFlowNode for tup | BindToAllInterfaces_test.py:16:14:16:22 | ControlFlowNode for StringLiteral | BindToAllInterfaces_test.py:21:8:21:10 | ControlFlowNode for tup | Binding a socket to all interfaces (using $@) is a security risk. | BindToAllInterfaces_test.py:16:14:16:22 | ControlFlowNode for StringLiteral | '0.0.0.0' | +| BindToAllInterfaces_test.py:26:9:26:18 | ControlFlowNode for Tuple | BindToAllInterfaces_test.py:26:9:26:12 | ControlFlowNode for StringLiteral | BindToAllInterfaces_test.py:26:9:26:18 | ControlFlowNode for Tuple | Binding a socket to all interfaces (using $@) is a security risk. | BindToAllInterfaces_test.py:26:9:26:12 | ControlFlowNode for StringLiteral | '::' | +| BindToAllInterfaces_test.py:39:17:39:41 | ControlFlowNode for Tuple | BindToAllInterfaces_test.py:34:26:34:34 | ControlFlowNode for StringLiteral | BindToAllInterfaces_test.py:39:17:39:41 | ControlFlowNode for Tuple | Binding a socket to all interfaces (using $@) is a security risk. | BindToAllInterfaces_test.py:34:26:34:34 | ControlFlowNode for StringLiteral | '0.0.0.0' | +| BindToAllInterfaces_test.py:48:9:48:18 | ControlFlowNode for Tuple | BindToAllInterfaces_test.py:46:35:46:43 | ControlFlowNode for StringLiteral | BindToAllInterfaces_test.py:48:9:48:18 | ControlFlowNode for Tuple | Binding a socket to all interfaces (using $@) is a security risk. | BindToAllInterfaces_test.py:46:35:46:43 | ControlFlowNode for StringLiteral | '0.0.0.0' | +| BindToAllInterfaces_test.py:53:10:53:25 | ControlFlowNode for Tuple | BindToAllInterfaces_test.py:53:10:53:18 | ControlFlowNode for StringLiteral | BindToAllInterfaces_test.py:53:10:53:25 | ControlFlowNode for Tuple | Binding a socket to all interfaces (using $@) is a security risk. | BindToAllInterfaces_test.py:53:10:53:18 | ControlFlowNode for StringLiteral | '0.0.0.0' | +| BindToAllInterfaces_test.py:58:10:58:25 | ControlFlowNode for Tuple | BindToAllInterfaces_test.py:58:10:58:18 | ControlFlowNode for StringLiteral | BindToAllInterfaces_test.py:58:10:58:25 | ControlFlowNode for Tuple | Binding a socket to all interfaces (using $@) is a security risk. | BindToAllInterfaces_test.py:58:10:58:18 | ControlFlowNode for StringLiteral | '0.0.0.0' | +edges +| BindToAllInterfaces_test.py:5:9:5:17 | ControlFlowNode for StringLiteral | BindToAllInterfaces_test.py:5:9:5:24 | ControlFlowNode for Tuple | provenance | Sink:MaD:63 | +| BindToAllInterfaces_test.py:9:9:9:10 | ControlFlowNode for StringLiteral | BindToAllInterfaces_test.py:9:9:9:16 | ControlFlowNode for Tuple | provenance | Sink:MaD:63 | +| BindToAllInterfaces_test.py:16:1:16:10 | ControlFlowNode for ALL_LOCALS | BindToAllInterfaces_test.py:17:9:17:24 | ControlFlowNode for Tuple | provenance | Sink:MaD:63 | +| BindToAllInterfaces_test.py:16:1:16:10 | ControlFlowNode for ALL_LOCALS | BindToAllInterfaces_test.py:20:1:20:3 | ControlFlowNode for tup | provenance | | +| BindToAllInterfaces_test.py:16:14:16:22 | ControlFlowNode for StringLiteral | BindToAllInterfaces_test.py:16:1:16:10 | ControlFlowNode for ALL_LOCALS | provenance | | +| BindToAllInterfaces_test.py:20:1:20:3 | ControlFlowNode for tup | BindToAllInterfaces_test.py:21:8:21:10 | ControlFlowNode for tup | provenance | Sink:MaD:63 | +| BindToAllInterfaces_test.py:26:9:26:12 | ControlFlowNode for StringLiteral | BindToAllInterfaces_test.py:26:9:26:18 | ControlFlowNode for Tuple | provenance | Sink:MaD:63 | +| BindToAllInterfaces_test.py:33:18:33:21 | ControlFlowNode for self [Return] [Attribute bind_addr] | BindToAllInterfaces_test.py:41:10:41:17 | ControlFlowNode for Server() [Attribute bind_addr] | provenance | | +| BindToAllInterfaces_test.py:34:9:34:12 | [post] ControlFlowNode for self [Attribute bind_addr] | BindToAllInterfaces_test.py:33:18:33:21 | ControlFlowNode for self [Return] [Attribute bind_addr] | provenance | | +| BindToAllInterfaces_test.py:34:26:34:34 | ControlFlowNode for StringLiteral | BindToAllInterfaces_test.py:34:9:34:12 | [post] ControlFlowNode for self [Attribute bind_addr] | provenance | | +| BindToAllInterfaces_test.py:37:15:37:18 | ControlFlowNode for self [Attribute bind_addr] | BindToAllInterfaces_test.py:39:17:39:20 | ControlFlowNode for self [Attribute bind_addr] | provenance | | +| BindToAllInterfaces_test.py:39:17:39:20 | ControlFlowNode for self [Attribute bind_addr] | BindToAllInterfaces_test.py:39:17:39:30 | ControlFlowNode for Attribute | provenance | | +| BindToAllInterfaces_test.py:39:17:39:30 | ControlFlowNode for Attribute | BindToAllInterfaces_test.py:39:17:39:41 | ControlFlowNode for Tuple | provenance | Sink:MaD:63 | +| BindToAllInterfaces_test.py:41:1:41:6 | ControlFlowNode for server [Attribute bind_addr] | BindToAllInterfaces_test.py:42:1:42:6 | ControlFlowNode for server [Attribute bind_addr] | provenance | | +| BindToAllInterfaces_test.py:41:10:41:17 | ControlFlowNode for Server() [Attribute bind_addr] | BindToAllInterfaces_test.py:41:1:41:6 | ControlFlowNode for server [Attribute bind_addr] | provenance | | +| BindToAllInterfaces_test.py:42:1:42:6 | ControlFlowNode for server [Attribute bind_addr] | BindToAllInterfaces_test.py:37:15:37:18 | ControlFlowNode for self [Attribute bind_addr] | provenance | | +| BindToAllInterfaces_test.py:46:1:46:4 | ControlFlowNode for host | BindToAllInterfaces_test.py:48:9:48:18 | ControlFlowNode for Tuple | provenance | Sink:MaD:63 | +| BindToAllInterfaces_test.py:46:8:46:44 | ControlFlowNode for Attribute() | BindToAllInterfaces_test.py:46:1:46:4 | ControlFlowNode for host | provenance | | +| BindToAllInterfaces_test.py:46:35:46:43 | ControlFlowNode for StringLiteral | BindToAllInterfaces_test.py:46:8:46:44 | ControlFlowNode for Attribute() | provenance | dict.get | +| BindToAllInterfaces_test.py:53:10:53:18 | ControlFlowNode for StringLiteral | BindToAllInterfaces_test.py:53:10:53:25 | ControlFlowNode for Tuple | provenance | Sink:MaD:63 | +| BindToAllInterfaces_test.py:58:10:58:18 | ControlFlowNode for StringLiteral | BindToAllInterfaces_test.py:58:10:58:25 | ControlFlowNode for Tuple | provenance | Sink:MaD:63 | +nodes +| BindToAllInterfaces_test.py:5:9:5:17 | ControlFlowNode for StringLiteral | semmle.label | ControlFlowNode for StringLiteral | +| BindToAllInterfaces_test.py:5:9:5:24 | ControlFlowNode for Tuple | semmle.label | ControlFlowNode for Tuple | +| BindToAllInterfaces_test.py:9:9:9:10 | ControlFlowNode for StringLiteral | semmle.label | ControlFlowNode for StringLiteral | +| BindToAllInterfaces_test.py:9:9:9:16 | ControlFlowNode for Tuple | semmle.label | ControlFlowNode for Tuple | +| BindToAllInterfaces_test.py:16:1:16:10 | ControlFlowNode for ALL_LOCALS | semmle.label | ControlFlowNode for ALL_LOCALS | +| BindToAllInterfaces_test.py:16:14:16:22 | ControlFlowNode for StringLiteral | semmle.label | ControlFlowNode for StringLiteral | +| BindToAllInterfaces_test.py:17:9:17:24 | ControlFlowNode for Tuple | semmle.label | ControlFlowNode for Tuple | +| BindToAllInterfaces_test.py:20:1:20:3 | ControlFlowNode for tup | semmle.label | ControlFlowNode for tup | +| BindToAllInterfaces_test.py:21:8:21:10 | ControlFlowNode for tup | semmle.label | ControlFlowNode for tup | +| BindToAllInterfaces_test.py:26:9:26:12 | ControlFlowNode for StringLiteral | semmle.label | ControlFlowNode for StringLiteral | +| BindToAllInterfaces_test.py:26:9:26:18 | ControlFlowNode for Tuple | semmle.label | ControlFlowNode for Tuple | +| BindToAllInterfaces_test.py:33:18:33:21 | ControlFlowNode for self [Return] [Attribute bind_addr] | semmle.label | ControlFlowNode for self [Return] [Attribute bind_addr] | +| BindToAllInterfaces_test.py:34:9:34:12 | [post] ControlFlowNode for self [Attribute bind_addr] | semmle.label | [post] ControlFlowNode for self [Attribute bind_addr] | +| BindToAllInterfaces_test.py:34:26:34:34 | ControlFlowNode for StringLiteral | semmle.label | ControlFlowNode for StringLiteral | +| BindToAllInterfaces_test.py:37:15:37:18 | ControlFlowNode for self [Attribute bind_addr] | semmle.label | ControlFlowNode for self [Attribute bind_addr] | +| BindToAllInterfaces_test.py:39:17:39:20 | ControlFlowNode for self [Attribute bind_addr] | semmle.label | ControlFlowNode for self [Attribute bind_addr] | +| BindToAllInterfaces_test.py:39:17:39:30 | ControlFlowNode for Attribute | semmle.label | ControlFlowNode for Attribute | +| BindToAllInterfaces_test.py:39:17:39:41 | ControlFlowNode for Tuple | semmle.label | ControlFlowNode for Tuple | +| BindToAllInterfaces_test.py:41:1:41:6 | ControlFlowNode for server [Attribute bind_addr] | semmle.label | ControlFlowNode for server [Attribute bind_addr] | +| BindToAllInterfaces_test.py:41:10:41:17 | ControlFlowNode for Server() [Attribute bind_addr] | semmle.label | ControlFlowNode for Server() [Attribute bind_addr] | +| BindToAllInterfaces_test.py:42:1:42:6 | ControlFlowNode for server [Attribute bind_addr] | semmle.label | ControlFlowNode for server [Attribute bind_addr] | +| BindToAllInterfaces_test.py:46:1:46:4 | ControlFlowNode for host | semmle.label | ControlFlowNode for host | +| BindToAllInterfaces_test.py:46:8:46:44 | ControlFlowNode for Attribute() | semmle.label | ControlFlowNode for Attribute() | +| BindToAllInterfaces_test.py:46:35:46:43 | ControlFlowNode for StringLiteral | semmle.label | ControlFlowNode for StringLiteral | +| BindToAllInterfaces_test.py:48:9:48:18 | ControlFlowNode for Tuple | semmle.label | ControlFlowNode for Tuple | +| BindToAllInterfaces_test.py:53:10:53:18 | ControlFlowNode for StringLiteral | semmle.label | ControlFlowNode for StringLiteral | +| BindToAllInterfaces_test.py:53:10:53:25 | ControlFlowNode for Tuple | semmle.label | ControlFlowNode for Tuple | +| BindToAllInterfaces_test.py:58:10:58:18 | ControlFlowNode for StringLiteral | semmle.label | ControlFlowNode for StringLiteral | +| BindToAllInterfaces_test.py:58:10:58:25 | ControlFlowNode for Tuple | semmle.label | ControlFlowNode for Tuple | +subpaths diff --git a/python/ql/test/query-tests/Security/CVE-2018-1281/BindToAllInterfaces.qlref b/python/ql/test/query-tests/Security/CVE-2018-1281/BindToAllInterfaces.qlref index f06cc3d869d..6396fd91863 100644 --- a/python/ql/test/query-tests/Security/CVE-2018-1281/BindToAllInterfaces.qlref +++ b/python/ql/test/query-tests/Security/CVE-2018-1281/BindToAllInterfaces.qlref @@ -1 +1,2 @@ -Security/CVE-2018-1281/BindToAllInterfaces.ql \ No newline at end of file +query: Security/CVE-2018-1281/BindToAllInterfaces.ql +postprocess: utils/test/InlineExpectationsTestQuery.ql \ No newline at end of file diff --git a/python/ql/test/query-tests/Security/CVE-2018-1281/BindToAllInterfaces_test.py b/python/ql/test/query-tests/Security/CVE-2018-1281/BindToAllInterfaces_test.py index bbab44d8103..27ba6642b64 100644 --- a/python/ql/test/query-tests/Security/CVE-2018-1281/BindToAllInterfaces_test.py +++ b/python/ql/test/query-tests/Security/CVE-2018-1281/BindToAllInterfaces_test.py @@ -2,25 +2,61 @@ import socket # binds to all interfaces, insecure s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) -s.bind(('0.0.0.0', 31137)) +s.bind(('0.0.0.0', 31137)) # $ Alert[py/bind-socket-all-network-interfaces] # binds to all interfaces, insecure s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) -s.bind(('', 4040)) +s.bind(('', 4040)) # $ Alert[py/bind-socket-all-network-interfaces] # binds only to a dedicated interface, secure s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.bind(('84.68.10.12', 8080)) # binds to all interfaces, insecure -ALL_LOCALS = "0.0.0.0" -s.bind((ALL_LOCALS, 9090)) +ALL_LOCALS = "0.0.0.0" # $ Source +s.bind((ALL_LOCALS, 9090)) # $ Alert[py/bind-socket-all-network-interfaces] # binds to all interfaces, insecure tup = (ALL_LOCALS, 8080) -s.bind(tup) +s.bind(tup) # $ Alert[py/bind-socket-all-network-interfaces] # IPv6 s = socket.socket(socket.AF_INET6, socket.SOCK_STREAM) -s.bind(("::", 8080)) # NOT OK +s.bind(("::", 8080)) # $ Alert[py/bind-socket-all-network-interfaces] + + +# FN cases from https://github.com/github/codeql/issues/21582 + +# Address stored in a class attribute +class Server: + def __init__(self): + self.bind_addr = '0.0.0.0' # $ Source + self.port = 31137 + + def start(self): + s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + s.bind((self.bind_addr, self.port)) # $ Alert[py/bind-socket-all-network-interfaces] + +server = Server() +server.start() + +# os.environ.get with insecure default +import os +host = os.environ.get('APP_HOST', '0.0.0.0') # $ Source +s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) +s.bind((host, 8080)) # $ Alert[py/bind-socket-all-network-interfaces] + +# gevent.socket (alternative socket module) +from gevent import socket as gsocket +gs = gsocket.socket(gsocket.AF_INET, gsocket.SOCK_STREAM) +gs.bind(('0.0.0.0', 31137)) # $ Alert[py/bind-socket-all-network-interfaces] + +# eventlet.green.socket (another alternative socket module) +from eventlet.green import socket as esocket +es = esocket.socket(esocket.AF_INET, esocket.SOCK_STREAM) +es.bind(('0.0.0.0', 31137)) # $ Alert[py/bind-socket-all-network-interfaces] + +# AF_UNIX socket binding should not be flagged +us = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) +us.bind('') diff --git a/python/ql/test/query-tests/Statements/general/ShouldUseWithStatement.expected b/python/ql/test/query-tests/Statements/general/ShouldUseWithStatement.expected index d062717bbf2..50ff6cc1f91 100644 --- a/python/ql/test/query-tests/Statements/general/ShouldUseWithStatement.expected +++ b/python/ql/test/query-tests/Statements/general/ShouldUseWithStatement.expected @@ -1 +1 @@ -| test.py:168:9:168:17 | Attribute() | Instance of context-manager class $@ is closed in a finally block. Consider using 'with' statement. | test.py:151:1:151:17 | class CM | CM | +| test.py:168:9:168:17 | Attribute() | Instance of context-manager class $@ is closed in a finally block. Consider using 'with' statement. | test.py:151:1:151:17 | Class CM | CM | diff --git a/python/ql/test/query-tests/Statements/general/test.py b/python/ql/test/query-tests/Statements/general/test.py index eee63fa89e8..a5848f7c718 100644 --- a/python/ql/test/query-tests/Statements/general/test.py +++ b/python/ql/test/query-tests/Statements/general/test.py @@ -174,3 +174,9 @@ def assert_ok(seq): # False positive. ODASA-8042. Fixed in PR #2401. class false_positive: e = (x for x in []) + +# In class-level scope `locals()` reflects the class namespace, +# so modifications do take effect. +class MyClass: + locals()['x'] = 43 # OK + y = x diff --git a/python/scripts/create-extractor-pack.sh b/python/scripts/create-extractor-pack.sh new file mode 100755 index 00000000000..ae9248f6ccf --- /dev/null +++ b/python/scripts/create-extractor-pack.sh @@ -0,0 +1,67 @@ +#!/bin/bash +# +# Build a local Python extractor pack from source. +# +# Usage with the CodeQL CLI (run from the repository root): +# +# codeql database create -l python -s --search-path . +# codeql test run --search-path . python/ql/test/ +# +set -eux + +if [[ "$OSTYPE" == "linux-gnu"* ]]; then + platform="linux64" +elif [[ "$OSTYPE" == "darwin"* ]]; then + platform="osx64" +else + echo "Unknown OS" + exit 1 +fi + +cd "$(dirname "$0")/.." + +# Build the tsg-python Rust binary +(cd extractor/tsg-python && cargo build --release) +tsg_bin="extractor/tsg-python/target/release/tsg-python" + +# Generate python3src.zip from the Python extractor source. +# make_zips.py creates the zip in the source directory and then copies it to the +# given output directory. We use a temporary directory to avoid a same-file copy +# error, then move the zip back. +tmpdir=$(mktemp -d) +trap 'rm -rf "$tmpdir"' EXIT +(cd extractor && python3 make_zips.py "$tmpdir") +cp "$tmpdir/python3src.zip" extractor/python3src.zip + +# Assemble the extractor pack +rm -rf extractor-pack +mkdir -p extractor-pack/tools/${platform} + +# Root-level metadata and schema files +cp codeql-extractor.yml extractor-pack/ +cp ql/lib/semmlecode.python.dbscheme extractor-pack/ +cp ql/lib/semmlecode.python.dbscheme.stats extractor-pack/ + +# Python extractor engine files (into tools/) +cp extractor/python_tracer.py extractor-pack/tools/ +cp extractor/index.py extractor-pack/tools/ +cp extractor/setup.py extractor-pack/tools/ +cp extractor/convert_setup.py extractor-pack/tools/ +cp extractor/get_venv_lib.py extractor-pack/tools/ +cp extractor/imp.py extractor-pack/tools/ +cp extractor/LICENSE-PSF.md extractor-pack/tools/ +cp extractor/python3src.zip extractor-pack/tools/ +cp -r extractor/data extractor-pack/tools/ + +# Shell tool scripts (autobuild, pre-finalize, lgtm-scripts) +cp tools/autobuild.sh extractor-pack/tools/ +cp tools/autobuild.cmd extractor-pack/tools/ +cp tools/pre-finalize.sh extractor-pack/tools/ +cp tools/pre-finalize.cmd extractor-pack/tools/ +cp -r tools/lgtm-scripts extractor-pack/tools/ + +# Downgrades +cp -r downgrades extractor-pack/ + +# Platform-specific Rust binary +cp "${tsg_bin}" extractor-pack/tools/${platform}/tsg-python diff --git a/ruby/ql/docs/flow_summaries.md b/ruby/ql/docs/flow_summaries.md index bb5fe5d7178..e588bdcaf26 100644 --- a/ruby/ql/docs/flow_summaries.md +++ b/ruby/ql/docs/flow_summaries.md @@ -39,7 +39,7 @@ If `preservesValue = true` then value flow is propagated. If it is `false` then only taint flow is propagated. Any call to `chomp` in the database will be translated, in the dataflow graph, -to a call to this fake definition. +to a call to this fake definition. `input` and `output` define the "from" and "to" locations in the flow summary. They use a custom string-based syntax which is similar to that used in `path` @@ -232,7 +232,7 @@ preceding access path. It takes the same specifiers as `WithElement` and `Element`. It is only valid in an input path. This component has the effect of excluding the relevant elements when copying -from input to output. It is useful for modelling methods that remove elements +from input to output. It is useful for modeling methods that remove elements from a collection. For example to model a method that removes the first element from the receiver, we can do so like this: diff --git a/ruby/ql/lib/CHANGELOG.md b/ruby/ql/lib/CHANGELOG.md index ce1187d6442..8315b641369 100644 --- a/ruby/ql/lib/CHANGELOG.md +++ b/ruby/ql/lib/CHANGELOG.md @@ -1,3 +1,11 @@ +## 5.1.16 + +No user-facing changes. + +## 5.1.15 + +No user-facing changes. + ## 5.1.14 No user-facing changes. diff --git a/ruby/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md b/ruby/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md new file mode 100644 index 00000000000..da53d584e11 --- /dev/null +++ b/ruby/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md @@ -0,0 +1,4 @@ +--- +category: feature +--- +* Data flow barriers and barrier guards can now be added using data extensions. For more information see [Customizing library models for Ruby](https://codeql.github.com/docs/codeql-language-guides/customizing-library-models-for-ruby/). diff --git a/ruby/ql/lib/change-notes/released/5.1.15.md b/ruby/ql/lib/change-notes/released/5.1.15.md new file mode 100644 index 00000000000..c3ff6293f36 --- /dev/null +++ b/ruby/ql/lib/change-notes/released/5.1.15.md @@ -0,0 +1,3 @@ +## 5.1.15 + +No user-facing changes. diff --git a/ruby/ql/lib/change-notes/released/5.1.16.md b/ruby/ql/lib/change-notes/released/5.1.16.md new file mode 100644 index 00000000000..42c9934011a --- /dev/null +++ b/ruby/ql/lib/change-notes/released/5.1.16.md @@ -0,0 +1,3 @@ +## 5.1.16 + +No user-facing changes. diff --git a/ruby/ql/lib/codeql-pack.release.yml b/ruby/ql/lib/codeql-pack.release.yml index bf92d1c672e..735f742e9af 100644 --- a/ruby/ql/lib/codeql-pack.release.yml +++ b/ruby/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 5.1.14 +lastReleaseVersion: 5.1.16 diff --git a/ruby/ql/lib/codeql/ruby/frameworks/data/internal/ApiGraphModels.qll b/ruby/ql/lib/codeql/ruby/frameworks/data/internal/ApiGraphModels.qll index 60fe40e716d..155fb4b7c78 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/data/internal/ApiGraphModels.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/data/internal/ApiGraphModels.qll @@ -10,6 +10,10 @@ * `type, path, kind` * - Summaries: * `type, path, input, output, kind` + * - Barriers: + * `type, path, kind` + * - BarrierGuards: + * `type, path, acceptingValue, kind` * - Types: * `type1, type2, path` * @@ -42,7 +46,8 @@ * 3. The `input` and `output` columns specify how data enters and leaves the element selected by the * first `(type, path)` tuple. Both strings are `.`-separated access paths * of the same syntax as the `path` column. - * 4. The `kind` column is a tag that can be referenced from QL to determine to + * 4. The `acceptingValue` column of barrier guard models specifies which branch of the guard is blocking flow. It can be "true" or "false". + * 5. The `kind` column is a tag that can be referenced from QL to determine to * which classes the interpreted elements should be added. For example, for * sources `"remote"` indicates a default remote flow source, and for summaries * `"taint"` indicates a default additional taint step and `"value"` indicates a @@ -355,11 +360,11 @@ private predicate barrierModel(string type, string path, string kind, string mod /** Holds if a barrier guard model exists for the given parameters. */ private predicate barrierGuardModel( - string type, string path, string branch, string kind, string model + string type, string path, string acceptingValue, string kind, string model ) { // No deprecation adapter for barrier models, they were not around back then. exists(QlBuiltins::ExtensionId madId | - Extensions::barrierGuardModel(type, path, branch, kind, madId) and + Extensions::barrierGuardModel(type, path, acceptingValue, kind, madId) and model = "MaD:" + madId.toString() ) } @@ -783,16 +788,16 @@ module ModelOutput { } /** - * Holds if a barrier model contributed `barrier` with the given `kind` for the given `branch`. + * Holds if a barrier model contributed `barrier` with the given `kind` for the given `acceptingValue`. */ cached - API::Node getABarrierGuardNode(string kind, boolean branch, string model) { - exists(string type, string path, string branch_str | - branch = true and branch_str = "true" + API::Node getABarrierGuardNode(string kind, boolean acceptingValue, string model) { + exists(string type, string path, string acceptingValue_str | + acceptingValue = true and acceptingValue_str = "true" or - branch = false and branch_str = "false" + acceptingValue = false and acceptingValue_str = "false" | - barrierGuardModel(type, path, branch_str, kind, model) and + barrierGuardModel(type, path, acceptingValue_str, kind, model) and result = getNodeFromPath(type, path) ) } @@ -856,12 +861,12 @@ module ModelOutput { API::Node getABarrierNode(string kind) { result = getABarrierNode(kind, _) } /** - * Holds if an external model contributed `barrier-guard` with the given `kind` and `branch`. + * Holds if an external model contributed `barrier-guard` with the given `kind` and `acceptingValue`. * * INTERNAL: Do not use. */ - API::Node getABarrierGuardNode(string kind, boolean branch) { - result = getABarrierGuardNode(kind, branch, _) + API::Node getABarrierGuardNode(string kind, boolean acceptingValue) { + result = getABarrierGuardNode(kind, acceptingValue, _) } /** diff --git a/ruby/ql/lib/codeql/ruby/frameworks/data/internal/ApiGraphModelsExtensions.qll b/ruby/ql/lib/codeql/ruby/frameworks/data/internal/ApiGraphModelsExtensions.qll index 2a644aabb95..8d8a4f5fd88 100644 --- a/ruby/ql/lib/codeql/ruby/frameworks/data/internal/ApiGraphModelsExtensions.qll +++ b/ruby/ql/lib/codeql/ruby/frameworks/data/internal/ApiGraphModelsExtensions.qll @@ -33,11 +33,11 @@ extensible predicate barrierModel( * of the given `kind` and `madId` is the data extension row number. * `path` is assumed to lead to a parameter of a call (possibly `self`), and * the call is guarding the parameter. - * `branch` is either `true` or `false`, indicating which branch of the guard - * is protecting the parameter. + * `acceptingValue` is either `true` or `false`, indicating which branch of + * the guard is protecting the parameter. */ extensible predicate barrierGuardModel( - string type, string path, string branch, string kind, QlBuiltins::ExtensionId madId + string type, string path, string acceptingValue, string kind, QlBuiltins::ExtensionId madId ); /** diff --git a/ruby/ql/lib/qlpack.yml b/ruby/ql/lib/qlpack.yml index 56537ce0a17..1ac5090098a 100644 --- a/ruby/ql/lib/qlpack.yml +++ b/ruby/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-all -version: 5.1.15-dev +version: 5.1.17-dev groups: ruby extractor: ruby dbscheme: ruby.dbscheme diff --git a/ruby/ql/src/CHANGELOG.md b/ruby/ql/src/CHANGELOG.md index 884e126d9a1..5266fc1d5d9 100644 --- a/ruby/ql/src/CHANGELOG.md +++ b/ruby/ql/src/CHANGELOG.md @@ -1,3 +1,14 @@ +## 1.6.1 + +No user-facing changes. + +## 1.6.0 + +### Query Metadata Changes + +* The `@security-severity` metadata of `rb/log-injection` has been reduced from 7.8 (high) to 6.1 (medium). +* The `@security-severity` metadata of `rb/reflected-xss`, `rb/stored-xss` and `rb/html-constructed-from-input` has been increased from 6.1 (medium) to 7.8 (high). + ## 1.5.11 No user-facing changes. diff --git a/ruby/ql/src/change-notes/2026-03-13-adjust-xss-and-log-injection-severity.md b/ruby/ql/src/change-notes/released/1.6.0.md similarity index 87% rename from ruby/ql/src/change-notes/2026-03-13-adjust-xss-and-log-injection-severity.md rename to ruby/ql/src/change-notes/released/1.6.0.md index 459c2ce7f91..0398dab7aaf 100644 --- a/ruby/ql/src/change-notes/2026-03-13-adjust-xss-and-log-injection-severity.md +++ b/ruby/ql/src/change-notes/released/1.6.0.md @@ -1,5 +1,6 @@ ---- -category: queryMetadata ---- +## 1.6.0 + +### Query Metadata Changes + * The `@security-severity` metadata of `rb/log-injection` has been reduced from 7.8 (high) to 6.1 (medium). * The `@security-severity` metadata of `rb/reflected-xss`, `rb/stored-xss` and `rb/html-constructed-from-input` has been increased from 6.1 (medium) to 7.8 (high). diff --git a/ruby/ql/src/change-notes/released/1.6.1.md b/ruby/ql/src/change-notes/released/1.6.1.md new file mode 100644 index 00000000000..898f6201ed7 --- /dev/null +++ b/ruby/ql/src/change-notes/released/1.6.1.md @@ -0,0 +1,3 @@ +## 1.6.1 + +No user-facing changes. diff --git a/ruby/ql/src/codeql-pack.release.yml b/ruby/ql/src/codeql-pack.release.yml index 7e8e8103d99..ef7a789e0cf 100644 --- a/ruby/ql/src/codeql-pack.release.yml +++ b/ruby/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.5.11 +lastReleaseVersion: 1.6.1 diff --git a/ruby/ql/src/qlpack.yml b/ruby/ql/src/qlpack.yml index 20487d171b1..978102bb82a 100644 --- a/ruby/ql/src/qlpack.yml +++ b/ruby/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-queries -version: 1.5.12-dev +version: 1.6.2-dev groups: - ruby - queries diff --git a/rust/ql/lib/CHANGELOG.md b/rust/ql/lib/CHANGELOG.md index 2672c08645b..8e515660f29 100644 --- a/rust/ql/lib/CHANGELOG.md +++ b/rust/ql/lib/CHANGELOG.md @@ -1,3 +1,11 @@ +## 0.2.12 + +No user-facing changes. + +## 0.2.11 + +No user-facing changes. + ## 0.2.10 No user-facing changes. diff --git a/rust/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md b/rust/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md new file mode 100644 index 00000000000..5e97a1533a9 --- /dev/null +++ b/rust/ql/lib/change-notes/2026-03-20-data-extensions-barriers.md @@ -0,0 +1,4 @@ +--- +category: feature +--- +* Data flow barriers and barrier guards can now be added using data extensions. diff --git a/rust/ql/lib/change-notes/released/0.2.11.md b/rust/ql/lib/change-notes/released/0.2.11.md new file mode 100644 index 00000000000..1037f9194f8 --- /dev/null +++ b/rust/ql/lib/change-notes/released/0.2.11.md @@ -0,0 +1,3 @@ +## 0.2.11 + +No user-facing changes. diff --git a/rust/ql/lib/change-notes/released/0.2.12.md b/rust/ql/lib/change-notes/released/0.2.12.md new file mode 100644 index 00000000000..590eb0cedd1 --- /dev/null +++ b/rust/ql/lib/change-notes/released/0.2.12.md @@ -0,0 +1,3 @@ +## 0.2.12 + +No user-facing changes. diff --git a/rust/ql/lib/codeql-pack.release.yml b/rust/ql/lib/codeql-pack.release.yml index a71167814cb..da1cea93393 100644 --- a/rust/ql/lib/codeql-pack.release.yml +++ b/rust/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.2.10 +lastReleaseVersion: 0.2.12 diff --git a/rust/ql/lib/codeql/files/FileSystem.qll b/rust/ql/lib/codeql/files/FileSystem.qll index cfab33b9a44..93ff7be604e 100644 --- a/rust/ql/lib/codeql/files/FileSystem.qll +++ b/rust/ql/lib/codeql/files/FileSystem.qll @@ -45,13 +45,16 @@ extensible predicate additionalExternalFile(string relativePath); /** A file. */ class File extends Container, Impl::File { + pragma[nomagic] + private predicate isAdditionalExternalFile() { additionalExternalFile(this.getRelativePath()) } + /** * Holds if this file was extracted from the source code of the target project * (rather than another location such as inside a dependency). */ predicate fromSource() { exists(ExtractorStep s | s.getAction() = "Extract" and s.getFile() = this) and - not additionalExternalFile(this.getRelativePath()) + not this.isAdditionalExternalFile() } /** diff --git a/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll b/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll index 27773758fc4..4ad3af0f42a 100644 --- a/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll +++ b/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll @@ -193,9 +193,7 @@ module LocalFlow { } pragma[nomagic] - predicate localFlowStepCommon(Node nodeFrom, Node nodeTo) { - nodeFrom.asExpr() = getALastEvalNode(nodeTo.asExpr()) - or + predicate localMustFlowStep(Node nodeFrom, Node nodeTo) { // An edge from the right-hand side of a let statement to the left-hand side. exists(LetStmt s | nodeFrom.asExpr() = s.getInitializer() and @@ -238,6 +236,15 @@ module LocalFlow { nodeTo.asPat() = match.getAnArm().getPat() ) or + nodeFrom.asExpr() = nodeTo.asExpr().(ParenExpr).getExpr() + } + + pragma[nomagic] + predicate localFlowStepCommon(Node nodeFrom, Node nodeTo) { + localMustFlowStep(nodeFrom, nodeTo) + or + nodeFrom.asExpr() = getALastEvalNode(nodeTo.asExpr()) + or nodeFrom.asPat().(OrPat).getAPat() = nodeTo.asPat() or nodeTo.(PostUpdateNode).getPreUpdateNode().asExpr() = @@ -263,10 +270,84 @@ predicate lambdaCallExpr(CallExprImpl::DynamicCallExpr call, LambdaCallKind kind exists(kind) } +// NOTE: We do not yet track type information, except for closures where +// we use the closure itself to represent the unique type. +final class DataFlowType extends TDataFlowType { + Expr asClosureExpr() { this = TClosureExprType(result) } + + predicate isUnknownType() { this = TUnknownType() } + + predicate isSourceContextParameterType() { this = TSourceContextParameterType() } + + string toString() { + exists(this.asClosureExpr()) and + result = "... => .." + or + this.isUnknownType() and + result = "" + or + this.isSourceContextParameterType() and + result = "" + } +} + +pragma[nomagic] +private predicate compatibleTypesSourceContextParameterTypeLeft(DataFlowType t1, DataFlowType t2) { + t1.isSourceContextParameterType() and not exists(t2.asClosureExpr()) +} + +pragma[nomagic] +private predicate compatibleTypesLeft(DataFlowType t1, DataFlowType t2) { + t1.isUnknownType() and exists(t2) + or + t1.asClosureExpr() = t2.asClosureExpr() + or + compatibleTypesSourceContextParameterTypeLeft(t1, t2) +} + +predicate compatibleTypes(DataFlowType t1, DataFlowType t2) { + compatibleTypesLeft(t1, t2) + or + compatibleTypesLeft(t2, t1) +} + +pragma[nomagic] +predicate typeStrongerThan(DataFlowType t1, DataFlowType t2) { + not t1.isUnknownType() and t2.isUnknownType() + or + compatibleTypesSourceContextParameterTypeLeft(t1, t2) +} + +DataFlowType getNodeType(NodePublic node) { + result.asClosureExpr() = node.asExpr() + or + result.asClosureExpr() = node.(ClosureParameterNode).getCfgScope() + or + exists(VariableCapture::Flow::SynthesizedCaptureNode scn | + scn = node.(CaptureNode).getSynthesizedCaptureNode() and + if scn.isInstanceAccess() + then result.asClosureExpr() = scn.getEnclosingCallable() + else result.isUnknownType() + ) + or + not lambdaCreationExpr(node.asExpr()) and + not node instanceof ClosureParameterNode and + not node instanceof CaptureNode and + result.isUnknownType() +} + // Defines a set of aliases needed for the `RustDataFlow` module private module Aliases { class DataFlowCallableAlias = DataFlowCallable; + class DataFlowTypeAlias = DataFlowType; + + predicate compatibleTypesAlias = compatibleTypes/2; + + predicate typeStrongerThanAlias = typeStrongerThan/2; + + predicate getNodeTypeAlias = getNodeType/1; + class ReturnKindAlias = ReturnKind; class DataFlowCallAlias = DataFlowCall; @@ -398,8 +479,6 @@ module RustDataFlowGen implements InputSig result = node.(Node::Node).getEnclosingCallable() } - DataFlowType getNodeType(Node node) { any() } - predicate nodeIsHidden(Node node) { node instanceof SsaNode or node.(FlowSummaryNode).getSummaryNode().isHidden() or @@ -486,15 +565,17 @@ module RustDataFlowGen implements InputSig */ OutNode getAnOutNode(DataFlowCall call, ReturnKind kind) { call = result.getCall(kind) } - // NOTE: For now we use the type `Unit` and do not benefit from type - // information in the data flow analysis. - final class DataFlowType extends Unit { - string toString() { result = "" } + class DataFlowType = DataFlowTypeAlias; + + predicate compatibleTypes = compatibleTypesAlias/2; + + predicate typeStrongerThan = typeStrongerThanAlias/2; + + DataFlowType getSourceContextParameterNodeType(Node p) { + exists(p) and result.isSourceContextParameterType() } - predicate compatibleTypes(DataFlowType t1, DataFlowType t2) { any() } - - predicate typeStrongerThan(DataFlowType t1, DataFlowType t2) { none() } + predicate getNodeType = getNodeTypeAlias/1; class Content = ContentAlias; @@ -897,6 +978,8 @@ module RustDataFlowGen implements InputSig predicate localMustFlowStep(Node node1, Node node2) { SsaFlow::localMustFlowStep(node1, node2) or + LocalFlow::localMustFlowStep(node1, node2) + or FlowSummaryImpl::Private::Steps::summaryLocalMustFlowStep(node1 .(FlowSummaryNode) .getSummaryNode(), node2.(FlowSummaryNode).getSummaryNode()) @@ -1110,6 +1193,12 @@ private module Cached { TCfgScope(CfgScope scope) or TSummarizedCallable(SummarizedCallable c) + cached + newtype TDataFlowType = + TClosureExprType(Expr e) { lambdaCreationExpr(e) } or + TUnknownType() or + TSourceContextParameterType() + /** This is the local flow predicate that is exposed. */ cached predicate localFlowStepImpl(Node nodeFrom, Node nodeTo) { @@ -1183,12 +1272,12 @@ private module Cached { exists( FlowSummaryImpl::Public::BarrierGuardElement b, FlowSummaryImpl::Private::SummaryComponentStack stack, - FlowSummaryImpl::Public::AcceptingValue acceptingvalue, string kind, string model + FlowSummaryImpl::Public::AcceptingValue acceptingValue, string kind, string model | - FlowSummaryImpl::Private::barrierGuardSpec(b, stack, acceptingvalue, kind, model) and + FlowSummaryImpl::Private::barrierGuardSpec(b, stack, acceptingValue, kind, model) and e = FlowSummaryImpl::StepsInput::getSinkNode(b, stack.headOfSingleton()).asExpr() and kmp = TMkPair(kind, model) and - gv = convertAcceptingValue(acceptingvalue) and + gv = convertAcceptingValue(acceptingValue) and g = b.getCall() ) } diff --git a/rust/ql/lib/codeql/rust/dataflow/internal/ModelsAsData.qll b/rust/ql/lib/codeql/rust/dataflow/internal/ModelsAsData.qll index 4d28dd8de81..8652b93f4aa 100644 --- a/rust/ql/lib/codeql/rust/dataflow/internal/ModelsAsData.qll +++ b/rust/ql/lib/codeql/rust/dataflow/internal/ModelsAsData.qll @@ -9,6 +9,13 @@ * `path; input; kind; provenance` * - Summaries: * `path; input; output; kind; provenance` + * - Barriers: + * `path; output; kind; provenance` + * - BarrierGuards: + * `path; input; acceptingValue; kind; provenance` + * - Neutrals: + * `path; kind; provenance` + * A neutral is used to indicate that a callable is neutral with respect to flow (no summary), source (is not a source) or sink (is not a sink). * * The interpretation of a row is similar to API-graphs with a left-to-right * reading. @@ -34,12 +41,15 @@ * - `Field[i]`: the `i`th element of a tuple. * - `Reference`: the referenced value. * - `Future`: the value being computed asynchronously. - * 3. The `kind` column is a tag that can be referenced from QL to determine to + * 3. The `acceptingValue` column of barrier guard models specifies which branch of the + * guard is blocking flow. It can be "true" or "false". In the future + * "no-exception", "not-zero", "null", "not-null" may be supported. + * 4. The `kind` column is a tag that can be referenced from QL to determine to * which classes the interpreted elements should be added. For example, for * sources `"remote"` indicates a default remote flow source, and for summaries * `"taint"` indicates a default additional taint step and `"value"` indicates a * globally applicable value-preserving step. - * 4. The `provenance` column is mainly used internally, and should be set to `"manual"` for + * 5. The `provenance` column is mainly used internally, and should be set to `"manual"` for * all custom models. */ @@ -114,11 +124,12 @@ extensible predicate barrierModel( * extension row number. * * The value referred to by `input` is assumed to lead to an argument of a call - * (possibly `self`), and the call is guarding the argument. `branch` is either `true` - * or `false`, indicating which branch of the guard is protecting the argument. + * (possibly `self`), and the call is guarding the argument. + * `acceptingValue` is either `true` or `false`, indicating which branch of + * the guard is protecting the parameter. */ extensible predicate barrierGuardModel( - string path, string input, string branch, string kind, string provenance, + string path, string input, string acceptingValue, string kind, string provenance, QlBuiltins::ExtensionId madId ); @@ -153,9 +164,9 @@ predicate interpretModelForTest(QlBuiltins::ExtensionId madId, string model) { model = "Barrier: " + path + "; " + output + "; " + kind ) or - exists(string path, string input, string branch, string kind | - barrierGuardModel(path, input, branch, kind, _, madId) and - model = "Barrier guard: " + path + "; " + input + "; " + branch + "; " + kind + exists(string path, string input, string acceptingValue, string kind | + barrierGuardModel(path, input, acceptingValue, kind, _, madId) and + model = "Barrier guard: " + path + "; " + input + "; " + acceptingValue + "; " + kind ) } @@ -265,10 +276,10 @@ private class FlowBarrierGuardFromModel extends FlowBarrierGuard::Range { } override predicate isBarrierGuard( - string input, string branch, string kind, Provenance provenance, string model + string input, string acceptingValue, string kind, Provenance provenance, string model ) { exists(QlBuiltins::ExtensionId madId | - barrierGuardModel(path, input, branch, kind, provenance, madId) and + barrierGuardModel(path, input, acceptingValue, kind, provenance, madId) and model = "MaD:" + madId.toString() ) } @@ -280,7 +291,7 @@ private module Debug { private import Content private import codeql.rust.dataflow.internal.DataFlowImpl private import codeql.rust.internal.typeinference.TypeMention - private import codeql.rust.internal.typeinference.Type + private import codeql.rust.internal.typeinference.Type as Type private predicate relevantManualModel(SummarizedCallableImpl sc, string can) { exists(Provenance manual | @@ -298,7 +309,7 @@ private module Debug { sc.propagatesFlow(input, _, _, _, _, _) and input.head() = SummaryComponent::argument(pos) and p = pos.getParameterIn(sc.getParamList()) and - tm.getType() instanceof RefType and + tm.getType() instanceof Type::RefType and not input.tail().head() = SummaryComponent::content(TSingletonContentSet(TReferenceContent())) | tm = p.getTypeRepr() @@ -313,7 +324,7 @@ private module Debug { exists(TypeMention tm | relevantManualModel(sc, can) and sc.propagatesFlow(_, output, _, _, _, _) and - tm.getType() instanceof RefType and + tm.getType() instanceof Type::RefType and output.head() = SummaryComponent::return(_) and not output.tail().head() = SummaryComponent::content(TSingletonContentSet(TReferenceContent())) and diff --git a/rust/ql/lib/codeql/rust/frameworks/stdlib/Builtins.qll b/rust/ql/lib/codeql/rust/frameworks/stdlib/Builtins.qll index 6b09ababd74..1a545da0db5 100644 --- a/rust/ql/lib/codeql/rust/frameworks/stdlib/Builtins.qll +++ b/rust/ql/lib/codeql/rust/frameworks/stdlib/Builtins.qll @@ -19,6 +19,13 @@ private class BuiltinsTypesFile extends File { } } +private class BuiltinsImplsFile extends File { + BuiltinsImplsFile() { + this.getBaseName() = "impls.rs" and + this.getParentContainer() instanceof BuiltinsFolder + } +} + /** * A builtin type, such as `bool` and `i32`. * @@ -221,3 +228,8 @@ class TupleType extends BuiltinType { ) } } + +/** A builtin implementation. */ +class BuiltinImpl extends Impl { + BuiltinImpl() { this.getFile() instanceof BuiltinsImplsFile } +} diff --git a/rust/ql/lib/codeql/rust/internal/PathResolution.qll b/rust/ql/lib/codeql/rust/internal/PathResolution.qll index c38e9bff91c..10d18786880 100644 --- a/rust/ql/lib/codeql/rust/internal/PathResolution.qll +++ b/rust/ql/lib/codeql/rust/internal/PathResolution.qll @@ -1202,18 +1202,21 @@ final class TypeParamItemNode extends NamedItemNode, TypeItemNode instanceof Typ } pragma[nomagic] - Path getABoundPath() { result = this.getTypeBoundAt(_, _).getTypeRepr().(PathTypeRepr).getPath() } - - pragma[nomagic] - ItemNode resolveBound(int index) { + Path getBoundPath(int index) { result = rank[index + 1](int i, int j | | - resolvePath(this.getTypeBoundAt(i, j).getTypeRepr().(PathTypeRepr).getPath()) order by i, j + this.getTypeBoundAt(i, j).getTypeRepr().(PathTypeRepr).getPath() order by i, j ) } - ItemNode resolveABound() { result = resolvePath(this.getABoundPath()) } + pragma[nomagic] + Path getABoundPath() { result = this.getBoundPath(_) } + + pragma[nomagic] + ItemNode resolveBound(int index) { result = resolvePath(this.getBoundPath(index)) } + + ItemNode resolveABound() { result = this.resolveBound(_) } pragma[nomagic] ItemNode resolveAdditionalBound(ItemNode constrainingItem) { diff --git a/rust/ql/lib/codeql/rust/internal/typeinference/BlanketImplementation.qll b/rust/ql/lib/codeql/rust/internal/typeinference/BlanketImplementation.qll index 97dbf2d8f3a..86bcdbe4fe8 100644 --- a/rust/ql/lib/codeql/rust/internal/typeinference/BlanketImplementation.qll +++ b/rust/ql/lib/codeql/rust/internal/typeinference/BlanketImplementation.qll @@ -15,10 +15,11 @@ private import TypeInference * Holds if `traitBound` is the first non-trivial trait bound of `tp`. */ pragma[nomagic] -private predicate hasFirstNonTrivialTraitBound(TypeParamItemNode tp, Trait traitBound) { +private predicate hasFirstNonTrivialTraitBound(TypeParamItemNode tp, Path traitBound) { traitBound = - min(Trait trait, int i | - trait = tp.resolveBound(i) and + min(Trait trait, Path path, int i | + path = tp.getBoundPath(i) and + trait = resolvePath(path) and // Exclude traits that are known to not narrow things down very much. not trait.getName().getText() = [ @@ -27,7 +28,7 @@ private predicate hasFirstNonTrivialTraitBound(TypeParamItemNode tp, Trait trait "Send", "Sync", "Unpin", "UnwindSafe", "RefUnwindSafe" ] | - trait order by i + path order by i ) } @@ -103,11 +104,11 @@ module SatisfiesBlanketConstraint< } private module SatisfiesBlanketConstraintInput implements - SatisfiesTypeInputSig + SatisfiesConstraintInputSig { pragma[nomagic] additional predicate relevantConstraint( - ArgumentTypeAndBlanketOffset ato, ImplItemNode impl, Trait traitBound + ArgumentTypeAndBlanketOffset ato, ImplItemNode impl, Path traitBound ) { exists(ArgumentType at, TypePath blanketPath, TypeParam blanketTypeParam | ato = MkArgumentTypeAndBlanketOffset(at, blanketPath) and @@ -117,13 +118,13 @@ module SatisfiesBlanketConstraint< } pragma[nomagic] - predicate relevantConstraint(ArgumentTypeAndBlanketOffset ato, Type constraint) { - relevantConstraint(ato, _, constraint.(TraitType).getTrait()) + predicate relevantConstraint(ArgumentTypeAndBlanketOffset ato, TypeMention constraint) { + relevantConstraint(ato, _, constraint) } } private module SatisfiesBlanketConstraint = - SatisfiesType; + SatisfiesConstraint; /** * Holds if the argument type `at` satisfies the first non-trivial blanket @@ -131,10 +132,10 @@ module SatisfiesBlanketConstraint< */ pragma[nomagic] predicate satisfiesBlanketConstraint(ArgumentType at, ImplItemNode impl) { - exists(ArgumentTypeAndBlanketOffset ato, Trait traitBound | + exists(ArgumentTypeAndBlanketOffset ato, Path traitBound | ato = MkArgumentTypeAndBlanketOffset(at, _) and SatisfiesBlanketConstraintInput::relevantConstraint(ato, impl, traitBound) and - SatisfiesBlanketConstraint::satisfiesConstraintType(ato, TTrait(traitBound), _, _) + SatisfiesBlanketConstraint::satisfiesConstraint(ato, traitBound, _, _) ) or exists(TypeParam blanketTypeParam | @@ -149,10 +150,10 @@ module SatisfiesBlanketConstraint< */ pragma[nomagic] predicate dissatisfiesBlanketConstraint(ArgumentType at, ImplItemNode impl) { - exists(ArgumentTypeAndBlanketOffset ato, Trait traitBound | + exists(ArgumentTypeAndBlanketOffset ato, Path traitBound | ato = MkArgumentTypeAndBlanketOffset(at, _) and SatisfiesBlanketConstraintInput::relevantConstraint(ato, impl, traitBound) and - SatisfiesBlanketConstraint::dissatisfiesConstraint(ato, TTrait(traitBound)) + SatisfiesBlanketConstraint::dissatisfiesConstraint(ato, traitBound) ) } } diff --git a/rust/ql/lib/codeql/rust/internal/typeinference/FunctionOverloading.qll b/rust/ql/lib/codeql/rust/internal/typeinference/FunctionOverloading.qll index d217fc3760a..ec0152c7eca 100644 --- a/rust/ql/lib/codeql/rust/internal/typeinference/FunctionOverloading.qll +++ b/rust/ql/lib/codeql/rust/internal/typeinference/FunctionOverloading.qll @@ -6,6 +6,8 @@ */ private import rust +private import codeql.rust.frameworks.stdlib.Builtins as Builtins +private import codeql.rust.frameworks.stdlib.Stdlib private import codeql.rust.internal.PathResolution private import Type private import TypeAbstraction @@ -94,6 +96,14 @@ private module MkSiblingImpls { not t1 instanceof TypeParameter or not t2 instanceof TypeParameter ) + or + // todo: handle blanket/non-blanket siblings in `implSiblings` + trait = + any(IndexTrait it | + implSiblingCandidate(impl, it, _, _) and + impl instanceof Builtins::BuiltinImpl and + path = TypePath::singleton(TAssociatedTypeTypeParameter(trait, it.getOutputType())) + ) } } diff --git a/rust/ql/lib/codeql/rust/internal/typeinference/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/typeinference/TypeInference.qll index 0f9afcd06bb..6c0034c2b9c 100644 --- a/rust/ql/lib/codeql/rust/internal/typeinference/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/typeinference/TypeInference.qll @@ -467,6 +467,41 @@ private predicate isPanicMacroCall(MacroExpr me) { me.getMacroCall().resolveMacro().(MacroRules).getName().getText() = "panic" } +// Due to "binding modes" the type of the pattern is not necessarily the +// same as the type of the initializer. However, when the pattern is an +// identifier pattern, its type is guaranteed to be the same as the type of the +// initializer. +private predicate identLetStmt(LetStmt let, IdentPat lhs, Expr rhs) { + let.getPat() = lhs and + let.getInitializer() = rhs +} + +/** + * Gets the root type of a closure. + * + * We model closures as `dyn Fn` trait object types. A closure might implement + * only `Fn`, `FnMut`, or `FnOnce`. But since `Fn` is a subtrait of the others, + * giving closures the type `dyn Fn` works well in practice -- even if not + * entirely accurate. + */ +private DynTraitType closureRootType() { + result = TDynTraitType(any(FnTrait t)) // always exists because of the mention in `builtins/mentions.rs` +} + +/** Gets the path to a closure's return type. */ +private TypePath closureReturnPath() { + result = + TypePath::singleton(TDynTraitTypeParameter(any(FnTrait t), any(FnOnceTrait t).getOutputType())) +} + +/** Gets the path to a closure's `index`th parameter type, where the arity is `arity`. */ +pragma[nomagic] +private TypePath closureParameterPath(int arity, int index) { + result = + TypePath::cons(TDynTraitTypeParameter(_, any(FnTrait t).getTypeParam()), + TypePath::singleton(getTupleTypeParameter(arity, index))) +} + /** Module for inferring certain type information. */ module CertainTypeInference { pragma[nomagic] @@ -544,11 +579,7 @@ module CertainTypeInference { // is not a certain type equality. exists(LetStmt let | not let.hasTypeRepr() and - // Due to "binding modes" the type of the pattern is not necessarily the - // same as the type of the initializer. The pattern being an identifier - // pattern is sufficient to ensure that this is not the case. - let.getPat().(IdentPat) = n1 and - let.getInitializer() = n2 + identLetStmt(let, n1, n2) ) or exists(LetExpr let | @@ -572,6 +603,21 @@ module CertainTypeInference { ) else prefix2.isEmpty() ) + or + exists(CallExprImpl::DynamicCallExpr dce, TupleType tt, int i | + n1 = dce.getArgList() and + tt.getArity() = dce.getNumberOfSyntacticArguments() and + n2 = dce.getSyntacticPositionalArgument(i) and + prefix1 = TypePath::singleton(tt.getPositionalTypeParameter(i)) and + prefix2.isEmpty() + ) + or + exists(ClosureExpr ce, int index | + n1 = ce and + n2 = ce.getParam(index).getPat() and + prefix1 = closureParameterPath(ce.getNumberOfParams(), index) and + prefix2.isEmpty() + ) } pragma[nomagic] @@ -636,6 +682,10 @@ module CertainTypeInference { path.isEmpty() and result instanceof NeverType or + n instanceof ClosureExpr and + path.isEmpty() and + result = closureRootType() + or infersCertainTypeAt(n, path, result.getATypeParameter()) } @@ -835,17 +885,6 @@ private predicate typeEquality(AstNode n1, TypePath prefix1, AstNode n2, TypePat n1.(ArrayRepeatExpr).getRepeatOperand() = n2 and prefix1 = TypePath::singleton(getArrayTypeParameter()) and prefix2.isEmpty() - or - exists(ClosureExpr ce, int index | - n1 = ce and - n2 = ce.getParam(index).getPat() and - prefix1 = closureParameterPath(ce.getNumberOfParams(), index) and - prefix2.isEmpty() - ) - or - n1.(ClosureExpr).getClosureBody() = n2 and - prefix1 = closureReturnPath() and - prefix2.isEmpty() } /** @@ -881,6 +920,9 @@ private predicate lubCoercion(AstNode parent, AstNode child, TypePath prefix) { strictcount(Expr e | bodyReturns(parent, e)) > 1 and prefix.isEmpty() or + parent = any(ClosureExpr ce | not ce.hasRetType() and ce.getClosureBody() = child) and + prefix = closureReturnPath() + or exists(Struct s | child = [parent.(RangeExpr).getStart(), parent.(RangeExpr).getEnd()] and prefix = TypePath::singleton(TTypeParamTypeParameter(s.getGenericParamList().getATypeParam())) and @@ -888,6 +930,19 @@ private predicate lubCoercion(AstNode parent, AstNode child, TypePath prefix) { ) } +private Type inferUnknownTypeFromAnnotation(AstNode n, TypePath path) { + inferType(n, path) = TUnknownType() and + // Normally, these are coercion sites, but in case a type is unknown we + // allow for type information to flow from the type annotation. + exists(TypeMention tm | result = tm.getTypeAt(path) | + tm = any(LetStmt let | identLetStmt(let, _, n)).getTypeRepr() + or + tm = any(ClosureExpr ce | n = ce.getBody()).getRetType().getTypeRepr() + or + tm = getReturnTypeMention(any(Function f | n = f.getBody())) + ) +} + /** * Holds if the type tree of `n1` at `prefix1` should be equal to the type tree * of `n2` at `prefix2`, but type information should only propagate from `n1` to @@ -1545,12 +1600,14 @@ private module AssocFunctionResolution { * * This is either: * - * 1. `AssocFunctionCallMethodCallExpr`: a method call, `x.m()`; - * 2. `AssocFunctionCallIndexExpr`: an index expression, `x[i]`, which is [syntactic sugar][1] + * 1. `MethodCallExprAssocFunctionCall`: a method call, `x.m()`; + * 2. `IndexExprAssocFunctionCall`: an index expression, `x[i]`, which is [syntactic sugar][1] * for `*x.index(i)`; - * 3. `AssocFunctionCallCallExpr`: a qualified function call, `Q::f(x)`; or - * 4. `AssocFunctionCallOperation`: an operation expression, `x + y`, which is syntactic sugar + * 3. `CallExprAssocFunctionCall`: a qualified function call, `Q::f(x)`; or + * 4. `OperationAssocFunctionCall`: an operation expression, `x + y`, which is syntactic sugar * for `Add::add(x, y)`. + * 5. `DynamicAssocFunctionCall`: a call to a closure, `c(x)`, which is syntactic sugar for + * `c.call_once(x)`, `c.call_mut(x)`, or `c.call(x)`. * * Note that only in case 1 and 2 is auto-dereferencing and borrowing allowed. * @@ -1567,7 +1624,7 @@ private module AssocFunctionResolution { pragma[nomagic] abstract predicate hasNameAndArity(string name, int arity); - abstract Expr getNonReturnNodeAt(FunctionPosition pos); + abstract AstNode getNonReturnNodeAt(FunctionPosition pos); AstNode getNodeAt(FunctionPosition pos) { result = this.getNonReturnNodeAt(pos) @@ -1651,6 +1708,15 @@ private module AssocFunctionResolution { predicate hasReceiverAtPos(FunctionPosition pos) { this.hasReceiver() and pos.asPosition() = 0 } + pragma[nomagic] + private predicate hasIncompatibleArgsTarget( + ImplOrTraitItemNode i, FunctionPosition selfPos, DerefChain derefChain, BorrowKind borrow, + AssocFunctionType selfType + ) { + SelfArgIsInstantiationOf::argIsInstantiationOf(this, i, selfPos, derefChain, borrow, selfType) and + OverloadedCallArgsAreInstantiationsOf::argsAreNotInstantiationsOf(this, i) + } + /** * Holds if the function inside `i` with matching name and arity can be ruled * out as a target of this call, because the candidate receiver type represented @@ -1661,20 +1727,15 @@ private module AssocFunctionResolution { * inside `root`. */ pragma[nomagic] - private predicate hasIncompatibleTarget( + predicate hasIncompatibleTarget( ImplOrTraitItemNode i, FunctionPosition selfPos, DerefChain derefChain, BorrowKind borrow, Type root ) { - exists(TypePath path | - SelfArgIsInstantiationOf::argIsNotInstantiationOf(this, i, selfPos, derefChain, borrow, path) and - path.isCons(root.getATypeParameter(), _) - ) - or - exists(AssocFunctionType selfType | - SelfArgIsInstantiationOf::argIsInstantiationOf(this, i, selfPos, derefChain, borrow, - selfType) and - OverloadedCallArgsAreInstantiationsOf::argsAreNotInstantiationsOf(this, i) and - root = selfType.getTypeAt(TypePath::nil()) + exists(AssocFunctionType selfType | root = selfType.getTypeAt(TypePath::nil()) | + this.hasIncompatibleArgsTarget(i, selfPos, derefChain, borrow, selfType) + or + SelfArgIsInstantiationOf::argIsNotInstantiationOf(this, i, selfPos, derefChain, borrow, + selfType) ) } @@ -1686,7 +1747,7 @@ private module AssocFunctionResolution { * is not satisfied. */ pragma[nomagic] - private predicate hasIncompatibleBlanketLikeTarget( + predicate hasIncompatibleBlanketLikeTarget( ImplItemNode impl, FunctionPosition selfPos, DerefChain derefChain, BorrowKind borrow ) { SelfArgIsNotInstantiationOfBlanketLike::argIsNotInstantiationOf(MkAssocFunctionCallCand(this, @@ -1738,7 +1799,7 @@ private module AssocFunctionResolution { } pragma[nomagic] - private Type getComplexStrippedSelfType( + Type getComplexStrippedSelfType( FunctionPosition selfPos, DerefChain derefChain, BorrowKind borrow, TypePath strippedTypePath ) { result = this.getANonPseudoSelfTypeAt(selfPos, derefChain, borrow, strippedTypePath) and @@ -1749,258 +1810,25 @@ private module AssocFunctionResolution { ) } - bindingset[derefChain, borrow, strippedTypePath, strippedType] - private predicate hasNoCompatibleNonBlanketLikeTargetCheck( - FunctionPosition selfPos, DerefChain derefChain, BorrowKind borrow, TypePath strippedTypePath, - Type strippedType + /** + * Holds if the candidate receiver type represented by `derefChain` and `borrow` + * does not have a matching call target at function-call adjusted position `selfPos`. + */ + predicate hasNoCompatibleTarget( + FunctionPosition selfPos, DerefChain derefChain, BorrowKind borrow ) { - forall(ImplOrTraitItemNode i | - nonBlanketLikeCandidate(this, _, selfPos, i, _, strippedTypePath, strippedType) - | - this.hasIncompatibleTarget(i, selfPos, derefChain, borrow, strippedType) - ) - } - - bindingset[derefChain, borrow, strippedTypePath, strippedType] - private predicate hasNoCompatibleTargetCheck( - FunctionPosition selfPos, DerefChain derefChain, BorrowKind borrow, TypePath strippedTypePath, - Type strippedType - ) { - this.hasNoCompatibleNonBlanketLikeTargetCheck(selfPos, derefChain, borrow, strippedTypePath, - strippedType) and - forall(ImplItemNode i | blanketLikeCandidate(this, _, selfPos, i, _, _, _) | - this.hasIncompatibleBlanketLikeTarget(i, selfPos, derefChain, borrow) - ) - } - - bindingset[derefChain, borrow, strippedTypePath, strippedType] - private predicate hasNoCompatibleNonBlanketTargetCheck( - FunctionPosition selfPos, DerefChain derefChain, BorrowKind borrow, TypePath strippedTypePath, - Type strippedType - ) { - this.hasNoCompatibleNonBlanketLikeTargetCheck(selfPos, derefChain, borrow, strippedTypePath, - strippedType) and - forall(ImplItemNode i | - blanketLikeCandidate(this, _, selfPos, i, _, _, _) and - not i.isBlanketImplementation() - | - this.hasIncompatibleBlanketLikeTarget(i, selfPos, derefChain, borrow) - ) - } - - // forex using recursion - pragma[nomagic] - private predicate hasNoCompatibleTargetNoBorrowToIndex( - FunctionPosition selfPos, DerefChain derefChain, TypePath strippedTypePath, Type strippedType, - int n - ) { - this.supportsAutoDerefAndBorrow() and - this.hasReceiverAtPos(selfPos) and - strippedType = - this.getComplexStrippedSelfType(selfPos, derefChain, TNoBorrowKind(), strippedTypePath) and - n = -1 - or - this.hasNoCompatibleTargetNoBorrowToIndex(selfPos, derefChain, strippedTypePath, strippedType, - n - 1) and - exists(Type t | - t = getNthLookupType(this, strippedType, n) and - this.hasNoCompatibleTargetCheck(selfPos, derefChain, TNoBorrowKind(), strippedTypePath, t) - ) + NoCompatibleTarget::hasNoCompatibleTarget(this, selfPos, derefChain, borrow) } /** - * Holds if the candidate receiver type represented by `derefChain` does not - * have a matching call target at function-call adjusted position `selfPos`. + * Holds if the candidate receiver type represented by `derefChain` and `borrow` + * does not have a matching non-blanket call target at function-call adjusted + * position `selfPos`. */ - pragma[nomagic] - predicate hasNoCompatibleTargetNoBorrow(FunctionPosition selfPos, DerefChain derefChain) { - exists(Type strippedType | - this.hasNoCompatibleTargetNoBorrowToIndex(selfPos, derefChain, _, strippedType, - getLastLookupTypeIndex(this, strippedType)) - ) - } - - // forex using recursion - pragma[nomagic] - private predicate hasNoCompatibleNonBlanketTargetNoBorrowToIndex( - FunctionPosition selfPos, DerefChain derefChain, TypePath strippedTypePath, Type strippedType, - int n + predicate hasNoCompatibleNonBlanketTarget( + FunctionPosition selfPos, DerefChain derefChain, BorrowKind borrow ) { - ( - this.supportsAutoDerefAndBorrow() and - this.hasReceiverAtPos(selfPos) - or - // needed for the `hasNoCompatibleNonBlanketTarget` check in - // `ArgSatisfiesBlanketLikeConstraintInput::hasBlanketCandidate` - exists(ImplItemNode i | - derefChain.isEmpty() and - blanketLikeCandidate(this, _, selfPos, i, _, _, _) and - i.isBlanketImplementation() - ) - ) and - strippedType = - this.getComplexStrippedSelfType(selfPos, derefChain, TNoBorrowKind(), strippedTypePath) and - n = -1 - or - this.hasNoCompatibleNonBlanketTargetNoBorrowToIndex(selfPos, derefChain, strippedTypePath, - strippedType, n - 1) and - exists(Type t | - t = getNthLookupType(this, strippedType, n) and - this.hasNoCompatibleNonBlanketTargetCheck(selfPos, derefChain, TNoBorrowKind(), - strippedTypePath, t) - ) - } - - /** - * Holds if the candidate receiver type represented by `derefChain` does not have - * a matching non-blanket call target at function-call adjusted position `selfPos`. - */ - pragma[nomagic] - predicate hasNoCompatibleNonBlanketTargetNoBorrow( - FunctionPosition selfPos, DerefChain derefChain - ) { - exists(Type strippedType | - this.hasNoCompatibleNonBlanketTargetNoBorrowToIndex(selfPos, derefChain, _, strippedType, - getLastLookupTypeIndex(this, strippedType)) - ) - } - - // forex using recursion - pragma[nomagic] - private predicate hasNoCompatibleTargetSharedBorrowToIndex( - FunctionPosition selfPos, DerefChain derefChain, TypePath strippedTypePath, Type strippedType, - int n - ) { - this.hasNoCompatibleTargetNoBorrow(selfPos, derefChain) and - strippedType = - this.getComplexStrippedSelfType(selfPos, derefChain, TSomeBorrowKind(false), - strippedTypePath) and - n = -1 - or - this.hasNoCompatibleTargetSharedBorrowToIndex(selfPos, derefChain, strippedTypePath, - strippedType, n - 1) and - exists(Type t | - t = getNthLookupType(this, strippedType, n) and - this.hasNoCompatibleNonBlanketLikeTargetCheck(selfPos, derefChain, TSomeBorrowKind(false), - strippedTypePath, t) - ) - } - - /** - * Holds if the candidate receiver type represented by `derefChain`, followed - * by a shared borrow, does not have a matching call target at function-call - * adjusted position `selfPos`. - */ - pragma[nomagic] - predicate hasNoCompatibleTargetSharedBorrow(FunctionPosition selfPos, DerefChain derefChain) { - exists(Type strippedType | - this.hasNoCompatibleTargetSharedBorrowToIndex(selfPos, derefChain, _, strippedType, - getLastLookupTypeIndex(this, strippedType)) - ) - } - - // forex using recursion - pragma[nomagic] - private predicate hasNoCompatibleTargetMutBorrowToIndex( - FunctionPosition selfPos, DerefChain derefChain, TypePath strippedTypePath, Type strippedType, - int n - ) { - this.hasNoCompatibleTargetSharedBorrow(selfPos, derefChain) and - strippedType = - this.getComplexStrippedSelfType(selfPos, derefChain, TSomeBorrowKind(true), strippedTypePath) and - n = -1 - or - this.hasNoCompatibleTargetMutBorrowToIndex(selfPos, derefChain, strippedTypePath, - strippedType, n - 1) and - exists(Type t | - t = getNthLookupType(this, strippedType, n) and - this.hasNoCompatibleNonBlanketLikeTargetCheck(selfPos, derefChain, TSomeBorrowKind(true), - strippedTypePath, t) - ) - } - - /** - * Holds if the candidate receiver type represented by `derefChain`, followed - * by a `mut` borrow, does not have a matching call target at function-call - * adjusted position `selfPos`. - */ - pragma[nomagic] - predicate hasNoCompatibleTargetMutBorrow(FunctionPosition selfPos, DerefChain derefChain) { - exists(Type strippedType | - this.hasNoCompatibleTargetMutBorrowToIndex(selfPos, derefChain, _, strippedType, - getLastLookupTypeIndex(this, strippedType)) - ) - } - - // forex using recursion - pragma[nomagic] - private predicate hasNoCompatibleNonBlanketTargetSharedBorrowToIndex( - FunctionPosition selfPos, DerefChain derefChain, TypePath strippedTypePath, Type strippedType, - int n - ) { - this.hasNoCompatibleTargetNoBorrow(selfPos, derefChain) and - strippedType = - this.getComplexStrippedSelfType(selfPos, derefChain, TSomeBorrowKind(false), - strippedTypePath) and - n = -1 - or - this.hasNoCompatibleNonBlanketTargetSharedBorrowToIndex(selfPos, derefChain, strippedTypePath, - strippedType, n - 1) and - exists(Type t | - t = getNthLookupType(this, strippedType, n) and - this.hasNoCompatibleNonBlanketTargetCheck(selfPos, derefChain, TSomeBorrowKind(false), - strippedTypePath, t) - ) - } - - /** - * Holds if the candidate receiver type represented by `derefChain`, followed - * by a shared borrow, does not have a matching non-blanket call target at - * function-call adjusted position `selfPos`. - */ - pragma[nomagic] - predicate hasNoCompatibleNonBlanketTargetSharedBorrow( - FunctionPosition selfPos, DerefChain derefChain - ) { - exists(Type strippedType | - this.hasNoCompatibleNonBlanketTargetSharedBorrowToIndex(selfPos, derefChain, _, - strippedType, getLastLookupTypeIndex(this, strippedType)) - ) - } - - // forex using recursion - pragma[nomagic] - private predicate hasNoCompatibleNonBlanketTargetMutBorrowToIndex( - FunctionPosition selfPos, DerefChain derefChain, TypePath strippedTypePath, Type strippedType, - int n - ) { - this.hasNoCompatibleNonBlanketTargetSharedBorrow(selfPos, derefChain) and - strippedType = - this.getComplexStrippedSelfType(selfPos, derefChain, TSomeBorrowKind(true), strippedTypePath) and - n = -1 - or - this.hasNoCompatibleNonBlanketTargetMutBorrowToIndex(selfPos, derefChain, strippedTypePath, - strippedType, n - 1) and - exists(Type t | - t = getNthLookupType(this, strippedType, n) and - this.hasNoCompatibleNonBlanketTargetCheck(selfPos, derefChain, TSomeBorrowKind(true), - strippedTypePath, t) - ) - } - - /** - * Holds if the candidate receiver type represented by `derefChain`, followed - * by a `mut` borrow, does not have a matching non-blanket call target at - * function-call adjusted position `selfPos`. - */ - pragma[nomagic] - predicate hasNoCompatibleNonBlanketTargetMutBorrow( - FunctionPosition selfPos, DerefChain derefChain - ) { - exists(Type strippedType | - this.hasNoCompatibleNonBlanketTargetMutBorrowToIndex(selfPos, derefChain, _, strippedType, - getLastLookupTypeIndex(this, strippedType)) - ) + NoCompatibleTarget::hasNoCompatibleNonBlanketTarget(this, selfPos, derefChain, borrow) } /** @@ -2025,6 +1853,25 @@ private module AssocFunctionResolution { ) } + /** + * Holds if this call may have an implicit borrow of kind `borrow` at + * function-call adjusted position `selfPos` with the given `derefChain`. + */ + pragma[nomagic] + predicate hasImplicitBorrowCand( + FunctionPosition selfPos, DerefChain derefChain, BorrowKind borrow + ) { + exists(BorrowKind prev | this.hasNoCompatibleTarget(selfPos, derefChain, prev) | + // first try shared borrow + prev.isNoBorrow() and + borrow.isSharedBorrow() + or + // then try mutable borrow + prev.isSharedBorrow() and + borrow.isMutableBorrow() + ) + } + /** * Gets the type of this call at function-call adjusted position `selfPos` and * type path `path`. @@ -2050,23 +1897,15 @@ private module AssocFunctionResolution { borrow.isNoBorrow() or exists(RefType rt | - // first try shared borrow - this.hasNoCompatibleTargetNoBorrow(selfPos, derefChain) and - borrow.isSharedBorrow() - or - // then try mutable borrow - this.hasNoCompatibleTargetSharedBorrow(selfPos, derefChain) and - borrow.isMutableBorrow() + this.hasImplicitBorrowCand(selfPos, derefChain, borrow) and + rt = borrow.getRefType() | - rt = borrow.getRefType() and - ( - path.isEmpty() and - result = rt - or - exists(TypePath suffix | - result = this.getSelfTypeAtNoBorrow(selfPos, derefChain, suffix) and - path = TypePath::cons(rt.getPositionalTypeParameter(0), suffix) - ) + path.isEmpty() and + result = rt + or + exists(TypePath suffix | + result = this.getSelfTypeAtNoBorrow(selfPos, derefChain, suffix) and + path = TypePath::cons(rt.getPositionalTypeParameter(0), suffix) ) ) } @@ -2101,7 +1940,7 @@ private module AssocFunctionResolution { } } - private class AssocFunctionCallMethodCallExpr extends AssocFunctionCall instanceof MethodCallExpr { + private class MethodCallExprAssocFunctionCall extends AssocFunctionCall instanceof MethodCallExpr { override predicate hasNameAndArity(string name, int arity) { name = super.getIdentifier().getText() and arity = super.getNumberOfSyntacticArguments() @@ -2121,7 +1960,7 @@ private module AssocFunctionResolution { override Trait getTrait() { none() } } - private class AssocFunctionCallIndexExpr extends AssocFunctionCall, IndexExpr { + private class IndexExprAssocFunctionCall extends AssocFunctionCall, IndexExpr { private predicate isInMutableContext() { // todo: does not handle all cases yet VariableImpl::assignmentOperationDescendant(_, this) @@ -2151,8 +1990,8 @@ private module AssocFunctionResolution { } } - private class AssocFunctionCallCallExpr extends AssocFunctionCall, CallExpr { - AssocFunctionCallCallExpr() { + private class CallExprAssocFunctionCall extends AssocFunctionCall, CallExpr { + CallExprAssocFunctionCall() { exists(getCallExprPathQualifier(this)) and // even if a target cannot be resolved by path resolution, it may still // be possible to resolve a blanket implementation (so not `forex`) @@ -2184,7 +2023,7 @@ private module AssocFunctionResolution { override Trait getTrait() { result = getCallExprTraitQualifier(this) } } - final class AssocFunctionCallOperation extends AssocFunctionCall, Operation { + final class OperationAssocFunctionCall extends AssocFunctionCall, Operation { override predicate hasNameAndArity(string name, int arity) { this.isOverloaded(_, name, _) and arity = this.getNumberOfOperands() @@ -2242,6 +2081,200 @@ private module AssocFunctionResolution { override Trait getTrait() { this.isOverloaded(result, _, _) } } + private class DynamicAssocFunctionCall extends AssocFunctionCall instanceof CallExprImpl::DynamicCallExpr + { + pragma[nomagic] + override predicate hasNameAndArity(string name, int arity) { + name = "call_once" and // todo: handle call_mut and call + arity = 2 // args are passed in a tuple + } + + override predicate hasReceiver() { any() } + + override AstNode getNonReturnNodeAt(FunctionPosition pos) { + pos.asPosition() = 0 and + result = super.getFunction() + or + pos.asPosition() = 1 and + result = super.getArgList() + } + + override predicate supportsAutoDerefAndBorrow() { any() } + + override Trait getTrait() { result instanceof AnyFnTrait } + } + + /** + * Provides logic for efficiently checking that there are no compatible call + * targets for a given candidate receiver type. + * + * For calls with non-blanket target candidates, we need to check: + * + * ```text + * forall types `t` where `t` is a lookup type for the given candidate receiver type: + * forall non-blanket candidates `c` matching `t`: + * check that `c` is not a compatible target + * ``` + * + * Instead of implementing the above using `forall`, we apply the standard trick + * of using ranked recursion. + */ + private module NoCompatibleTarget { + private import codeql.rust.elements.internal.generated.Raw + private import codeql.rust.elements.internal.generated.Synth + + private class RawImplOrTrait = @impl or @trait; + + private predicate id(RawImplOrTrait x, RawImplOrTrait y) { x = y } + + private predicate idOfRaw(RawImplOrTrait x, int y) = equivalenceRelation(id/2)(x, y) + + private int idOfImplOrTraitItemNode(ImplOrTraitItemNode i) { + idOfRaw(Synth::convertAstNodeToRaw(i), result) + } + + /** + * Holds if `t` is the `n`th lookup type for the candidate receiver type + * represented by `derefChain` and `borrow` at function-call adjusted position + * `selfPos` of `afc`. + * + * There are no compatible non-blanket-like candidates for lookup types `0` to `n - 1`. + */ + pragma[nomagic] + private predicate noCompatibleNonBlanketLikeTargetCandNthLookupType( + AssocFunctionCall afc, FunctionPosition selfPos, DerefChain derefChain, BorrowKind borrow, + TypePath strippedTypePath, Type strippedType, int n, Type t + ) { + ( + ( + ( + afc.supportsAutoDerefAndBorrow() and + afc.hasReceiverAtPos(selfPos) + or + // needed for the `hasNoCompatibleNonBlanketTarget` check in + // `ArgSatisfiesBlanketLikeConstraintInput::hasBlanketCandidate` + exists(ImplItemNode i | + derefChain.isEmpty() and + blanketLikeCandidate(afc, _, selfPos, i, _, _, _) and + i.isBlanketImplementation() + ) + ) and + borrow.isNoBorrow() + or + afc.hasImplicitBorrowCand(selfPos, derefChain, borrow) + ) and + strippedType = afc.getComplexStrippedSelfType(selfPos, derefChain, borrow, strippedTypePath) and + n = 0 + or + hasNoCompatibleNonBlanketLikeTargetForNthLookupType(afc, selfPos, derefChain, borrow, + strippedTypePath, strippedType, n - 1) + ) and + t = getNthLookupType(afc, strippedType, n) + } + + pragma[nomagic] + private ImplOrTraitItemNode getKthNonBlanketLikeCandidateForNthLookupType( + AssocFunctionCall afc, FunctionPosition selfPos, DerefChain derefChain, BorrowKind borrow, + TypePath strippedTypePath, Type strippedType, int n, Type t, int k + ) { + noCompatibleNonBlanketLikeTargetCandNthLookupType(afc, selfPos, derefChain, borrow, + strippedTypePath, strippedType, n, t) and + result = + rank[k + 1](ImplOrTraitItemNode i, int id | + nonBlanketLikeCandidate(afc, _, selfPos, i, _, strippedTypePath, t) and + id = idOfImplOrTraitItemNode(i) + | + i order by id + ) + } + + pragma[nomagic] + private int getLastNonBlanketLikeCandidateForNthLookupType( + AssocFunctionCall afc, FunctionPosition selfPos, DerefChain derefChain, BorrowKind borrow, + TypePath strippedTypePath, Type strippedType, int n + ) { + exists(Type t | + noCompatibleNonBlanketLikeTargetCandNthLookupType(afc, selfPos, derefChain, borrow, + strippedTypePath, strippedType, n, t) and + result = + count(ImplOrTraitItemNode i | + nonBlanketLikeCandidate(afc, _, selfPos, i, _, strippedTypePath, t) + ) - 1 + ) + } + + pragma[nomagic] + private predicate hasNoCompatibleNonBlanketLikeTargetForNthLookupTypeToIndex( + AssocFunctionCall afc, FunctionPosition selfPos, DerefChain derefChain, BorrowKind borrow, + TypePath strippedTypePath, Type strippedType, int n, int k + ) { + exists(Type t | + noCompatibleNonBlanketLikeTargetCandNthLookupType(afc, selfPos, derefChain, borrow, + strippedTypePath, strippedType, n, t) + | + k = -1 + or + hasNoCompatibleNonBlanketLikeTargetForNthLookupTypeToIndex(afc, selfPos, derefChain, borrow, + strippedTypePath, strippedType, n, k - 1) and + exists(ImplOrTraitItemNode i | + i = + getKthNonBlanketLikeCandidateForNthLookupType(afc, selfPos, derefChain, borrow, + strippedTypePath, strippedType, n, t, k) and + afc.hasIncompatibleTarget(i, selfPos, derefChain, borrow, t) + ) + ) + } + + pragma[nomagic] + private predicate hasNoCompatibleNonBlanketLikeTargetForNthLookupType( + AssocFunctionCall afc, FunctionPosition selfPos, DerefChain derefChain, BorrowKind borrow, + TypePath strippedTypePath, Type strippedType, int n + ) { + exists(int last | + last = + getLastNonBlanketLikeCandidateForNthLookupType(afc, selfPos, derefChain, borrow, + strippedTypePath, strippedType, n) and + hasNoCompatibleNonBlanketLikeTargetForNthLookupTypeToIndex(afc, selfPos, derefChain, borrow, + strippedTypePath, strippedType, n, last) + ) + } + + pragma[nomagic] + private predicate hasNoCompatibleNonBlanketLikeTarget( + AssocFunctionCall afc, FunctionPosition selfPos, DerefChain derefChain, BorrowKind borrow + ) { + exists(Type strippedType | + hasNoCompatibleNonBlanketLikeTargetForNthLookupType(afc, selfPos, derefChain, borrow, _, + strippedType, getLastLookupTypeIndex(afc, strippedType)) + ) + } + + pragma[nomagic] + predicate hasNoCompatibleTarget( + AssocFunctionCall afc, FunctionPosition selfPos, DerefChain derefChain, BorrowKind borrow + ) { + hasNoCompatibleNonBlanketLikeTarget(afc, selfPos, derefChain, borrow) and + // todo: replace with ranked recursion if needed + forall(ImplItemNode i | blanketLikeCandidate(afc, _, selfPos, i, _, _, _) | + afc.hasIncompatibleBlanketLikeTarget(i, selfPos, derefChain, borrow) + ) + } + + pragma[nomagic] + predicate hasNoCompatibleNonBlanketTarget( + AssocFunctionCall afc, FunctionPosition selfPos, DerefChain derefChain, BorrowKind borrow + ) { + hasNoCompatibleNonBlanketLikeTarget(afc, selfPos, derefChain, borrow) and + // todo: replace with ranked recursion if needed + forall(ImplItemNode i | + blanketLikeCandidate(afc, _, selfPos, i, _, _, _) and + not i.isBlanketImplementation() + | + afc.hasIncompatibleBlanketLikeTarget(i, selfPos, derefChain, borrow) + ) + } + } + pragma[nomagic] private AssocFunctionDeclaration getAssocFunctionSuccessor( ImplOrTraitItemNode i, string name, int arity @@ -2278,14 +2311,7 @@ private module AssocFunctionResolution { pragma[nomagic] predicate hasNoCompatibleNonBlanketTarget() { - afc_.hasNoCompatibleNonBlanketTargetSharedBorrow(selfPos_, derefChain) and - borrow.isSharedBorrow() - or - afc_.hasNoCompatibleNonBlanketTargetMutBorrow(selfPos_, derefChain) and - borrow.isMutableBorrow() - or - afc_.hasNoCompatibleNonBlanketTargetNoBorrow(selfPos_, derefChain) and - borrow.isNoBorrow() + afc_.hasNoCompatibleNonBlanketTarget(selfPos_, derefChain, borrow) } pragma[nomagic] @@ -2394,7 +2420,7 @@ private module AssocFunctionResolution { MkCallDerefCand(AssocFunctionCall afc, FunctionPosition selfPos, DerefChain derefChain) { afc.supportsAutoDerefAndBorrow() and afc.hasReceiverAtPos(selfPos) and - afc.hasNoCompatibleTargetMutBorrow(selfPos, derefChain) and + afc.hasNoCompatibleTarget(selfPos, derefChain, TSomeBorrowKind(true)) and exists(afc.getSelfTypeAtNoBorrow(selfPos, derefChain, TypePath::nil())) } @@ -2445,7 +2471,7 @@ private module AssocFunctionResolution { ) { exists(CallDerefCand cdc, TypePath exprPath | cdc = MkCallDerefCand(afc, selfPos, derefChain) and - CallSatisfiesDerefConstraint::satisfiesConstraintTypeThrough(cdc, impl, _, exprPath, result) and + CallSatisfiesDerefConstraint::satisfiesConstraintThrough(cdc, impl, _, exprPath, result) and exprPath.isCons(getDerefTargetTypeParameter(), path) ) } @@ -2467,10 +2493,6 @@ private module AssocFunctionResolution { // (https://rust-lang.github.io/rfcs/1210-impl-specialization.html), as well as // cases where our blanket implementation filtering is not precise enough. if impl.isBlanketImplementation() then afcc.hasNoCompatibleNonBlanketTarget() else any() - | - borrow.isNoBorrow() - or - blanketPath.getHead() = borrow.getRefType().getPositionalTypeParameter(0) ) } } @@ -2528,9 +2550,13 @@ private module AssocFunctionResolution { pragma[nomagic] predicate argIsNotInstantiationOf( AssocFunctionCall afc, ImplOrTraitItemNode i, FunctionPosition selfPos, DerefChain derefChain, - BorrowKind borrow, TypePath path + BorrowKind borrow, AssocFunctionType selfType ) { - argIsNotInstantiationOf(MkAssocFunctionCallCand(afc, selfPos, derefChain, borrow), i, _, path) + exists(TypePath path | + argIsNotInstantiationOf(MkAssocFunctionCallCand(afc, selfPos, derefChain, borrow), i, + selfType, path) and + not path.isEmpty() + ) } pragma[nomagic] @@ -3198,7 +3224,7 @@ private module OperationMatchingInput implements MatchingInputSig { } } - class Access extends AssocFunctionResolution::AssocFunctionCallOperation { + class Access extends AssocFunctionResolution::OperationAssocFunctionCall { Type getTypeArgument(TypeArgumentPosition apos, TypePath path) { none() } pragma[nomagic] @@ -3566,7 +3592,7 @@ private module AwaitSatisfiesType = SatisfiesType type of pattern (loop variable) exists(ForExpr fe, TypePath exprPath, AssociatedTypeTypeParameter tp | n = fe.getPat() and - ForIterableSatisfiesType::satisfiesConstraintType(fe.getIterable(), _, exprPath, result) and + ForIterableSatisfiesType::satisfiesConstraint(fe.getIterable(), _, exprPath, result) and exprPath.isCons(tp, path) | tp = getIntoIteratorItemTypeParameter() @@ -3744,130 +3733,36 @@ private Type inferForLoopExprType(AstNode n, TypePath path) { ) } -/** - * An invoked expression, the target of a call that is either a local variable - * or a non-path expression. This means that the expression denotes a - * first-class function. - */ -final private class InvokedClosureExpr extends Expr { - private CallExprImpl::DynamicCallExpr call; - - InvokedClosureExpr() { call.getFunction() = this } - - Type getTypeAt(TypePath path) { result = inferType(this, path) } - - CallExpr getCall() { result = call } -} - -private module InvokedClosureSatisfiesTypeInput implements SatisfiesTypeInputSig -{ - predicate relevantConstraint(InvokedClosureExpr term, Type constraint) { - exists(term) and - constraint.(TraitType).getTrait() instanceof FnOnceTrait - } -} - -private module InvokedClosureSatisfiesType = - SatisfiesType; - -/** Gets the type of `ce` when viewed as an implementation of `FnOnce`. */ -private Type invokedClosureFnTypeAt(InvokedClosureExpr ce, TypePath path) { - InvokedClosureSatisfiesType::satisfiesConstraintType(ce, _, path, result) -} - -/** - * Gets the root type of a closure. - * - * We model closures as `dyn Fn` trait object types. A closure might implement - * only `Fn`, `FnMut`, or `FnOnce`. But since `Fn` is a subtrait of the others, - * giving closures the type `dyn Fn` works well in practice -- even if not - * entirely accurate. - */ -private DynTraitType closureRootType() { - result = TDynTraitType(any(FnTrait t)) // always exists because of the mention in `builtins/mentions.rs` -} - -/** Gets the path to a closure's return type. */ -private TypePath closureReturnPath() { - result = - TypePath::singleton(TDynTraitTypeParameter(any(FnTrait t), any(FnOnceTrait t).getOutputType())) -} - -/** Gets the path to a closure with arity `arity`'s `index`th parameter type. */ pragma[nomagic] -private TypePath closureParameterPath(int arity, int index) { - result = - TypePath::cons(TDynTraitTypeParameter(_, any(FnTrait t).getTypeParam()), - TypePath::singleton(getTupleTypeParameter(arity, index))) -} - -/** Gets the path to the return type of the `FnOnce` trait. */ -private TypePath fnReturnPath() { - result = TypePath::singleton(getAssociatedTypeTypeParameter(any(FnOnceTrait t).getOutputType())) -} - -/** - * Gets the path to the parameter type of the `FnOnce` trait with arity `arity` - * and index `index`. - */ -pragma[nomagic] -private TypePath fnParameterPath(int arity, int index) { - result = - TypePath::cons(TTypeParamTypeParameter(any(FnOnceTrait t).getTypeParam()), - TypePath::singleton(getTupleTypeParameter(arity, index))) -} - -pragma[nomagic] -private Type inferDynamicCallExprType(Expr n, TypePath path) { - exists(InvokedClosureExpr ce | - // Propagate the function's return type to the call expression - exists(TypePath path0 | result = invokedClosureFnTypeAt(ce, path0) | - n = ce.getCall() and - path = path0.stripPrefix(fnReturnPath()) +private Type inferClosureExprType(AstNode n, TypePath path) { + exists(ClosureExpr ce | + n = ce and + ( + path = TypePath::singleton(TDynTraitTypeParameter(_, any(FnTrait t).getTypeParam())) and + result.(TupleType).getArity() = ce.getNumberOfParams() or - // Propagate the function's parameter type to the arguments - exists(int index | - n = ce.getCall().getSyntacticPositionalArgument(index) and - path = - path0.stripPrefix(fnParameterPath(ce.getCall().getArgList().getNumberOfArgs(), index)) + exists(TypePath path0 | + result = ce.getRetType().getTypeRepr().(TypeMention).getTypeAt(path0) and + path = closureReturnPath().append(path0) ) ) or - // _If_ the invoked expression has the type of a closure, then we propagate - // the surrounding types into the closure. - exists(int arity, TypePath path0 | ce.getTypeAt(TypePath::nil()) = closureRootType() | - // Propagate the type of arguments to the parameter types of closure - exists(int index, ArgList args | - n = ce and - args = ce.getCall().getArgList() and - arity = args.getNumberOfArgs() and - result = inferType(args.getArg(index), path0) and - path = closureParameterPath(arity, index).append(path0) - ) - or - // Propagate the type of the call expression to the return type of the closure - n = ce and - arity = ce.getCall().getArgList().getNumberOfArgs() and - result = inferType(ce.getCall(), path0) and - path = closureReturnPath().append(path0) + exists(Param p | + p = ce.getAParam() and + not p.hasTypeRepr() and + n = p.getPat() and + result = TUnknownType() and + path.isEmpty() ) ) } pragma[nomagic] -private Type inferClosureExprType(AstNode n, TypePath path) { - exists(ClosureExpr ce | - n = ce and - path.isEmpty() and - result = closureRootType() - or - n = ce and - path = TypePath::singleton(TDynTraitTypeParameter(_, any(FnTrait t).getTypeParam())) and - result.(TupleType).getArity() = ce.getNumberOfParams() - or - // Propagate return type annotation to body - n = ce.getClosureBody() and - result = ce.getRetType().getTypeRepr().(TypeMention).getTypeAt(path) +private TupleType inferArgList(ArgList args, TypePath path) { + exists(CallExprImpl::DynamicCallExpr dce | + args = dce.getArgList() and + result.getArity() = dce.getNumberOfSyntacticArguments() and + path.isEmpty() ) } @@ -3915,7 +3810,9 @@ private module Cached { or i instanceof ImplItemNode and dispatch = false | - result = call.(AssocFunctionResolution::AssocFunctionCall).resolveCallTarget(i, _, _, _) + result = call.(AssocFunctionResolution::AssocFunctionCall).resolveCallTarget(i, _, _, _) and + not call instanceof CallExprImpl::DynamicCallExpr and + not i instanceof Builtins::BuiltinImpl ) } @@ -4017,17 +3914,17 @@ private module Cached { or result = inferAwaitExprType(n, path) or - result = inferIndexExprType(n, path) - or result = inferDereferencedExprPtrType(n, path) or result = inferForLoopExprType(n, path) or - result = inferDynamicCallExprType(n, path) - or result = inferClosureExprType(n, path) or + result = inferArgList(n, path) + or result = inferDeconstructionPatType(n, path) + or + result = inferUnknownTypeFromAnnotation(n, path) ) } } diff --git a/rust/ql/lib/codeql/rust/internal/typeinference/TypeMention.qll b/rust/ql/lib/codeql/rust/internal/typeinference/TypeMention.qll index 70dfbeda848..c4650f97c34 100644 --- a/rust/ql/lib/codeql/rust/internal/typeinference/TypeMention.qll +++ b/rust/ql/lib/codeql/rust/internal/typeinference/TypeMention.qll @@ -769,7 +769,7 @@ private Type getPathConcreteAssocTypeAt(Path path, TypePath typePath) { TypeAlias alias, TypePath path0 | pathConcreteTypeAssocType(path, tm, trait, traitOrTmTrait, alias) and - PathSatisfiesConstraint::satisfiesConstraintTypeThrough(tm, impl, traitOrTmTrait, path0, result) and + PathSatisfiesConstraint::satisfiesConstraintThrough(tm, impl, traitOrTmTrait, path0, result) and path0.isCons(TAssociatedTypeTypeParameter(trait, alias), typePath) ) } diff --git a/rust/ql/lib/qlpack.yml b/rust/ql/lib/qlpack.yml index 502f10265fa..7eb159e4b50 100644 --- a/rust/ql/lib/qlpack.yml +++ b/rust/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/rust-all -version: 0.2.11-dev +version: 0.2.13-dev groups: rust extractor: rust dbscheme: rust.dbscheme diff --git a/rust/ql/src/CHANGELOG.md b/rust/ql/src/CHANGELOG.md index 35445b7d626..14034c9877d 100644 --- a/rust/ql/src/CHANGELOG.md +++ b/rust/ql/src/CHANGELOG.md @@ -1,3 +1,14 @@ +## 0.1.33 + +No user-facing changes. + +## 0.1.32 + +### Query Metadata Changes + +* The `@security-severity` metadata of `rust/log-injection` has been increased from 2.6 (low) to 6.1 (medium). +* The `@security-severity` metadata of `rust/xss` has been increased from 6.1 (medium) to 7.8 (high). + ## 0.1.31 No user-facing changes. diff --git a/rust/ql/src/change-notes/2026-03-13-adjust-xss-and-log-injection-severity.md b/rust/ql/src/change-notes/released/0.1.32.md similarity index 84% rename from rust/ql/src/change-notes/2026-03-13-adjust-xss-and-log-injection-severity.md rename to rust/ql/src/change-notes/released/0.1.32.md index 8bfc5be1551..d18f3ccd08d 100644 --- a/rust/ql/src/change-notes/2026-03-13-adjust-xss-and-log-injection-severity.md +++ b/rust/ql/src/change-notes/released/0.1.32.md @@ -1,5 +1,6 @@ ---- -category: queryMetadata ---- +## 0.1.32 + +### Query Metadata Changes + * The `@security-severity` metadata of `rust/log-injection` has been increased from 2.6 (low) to 6.1 (medium). * The `@security-severity` metadata of `rust/xss` has been increased from 6.1 (medium) to 7.8 (high). diff --git a/rust/ql/src/change-notes/released/0.1.33.md b/rust/ql/src/change-notes/released/0.1.33.md new file mode 100644 index 00000000000..5bd982edadd --- /dev/null +++ b/rust/ql/src/change-notes/released/0.1.33.md @@ -0,0 +1,3 @@ +## 0.1.33 + +No user-facing changes. diff --git a/rust/ql/src/codeql-pack.release.yml b/rust/ql/src/codeql-pack.release.yml index 8f9b017abfe..d9c9e819daa 100644 --- a/rust/ql/src/codeql-pack.release.yml +++ b/rust/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.1.31 +lastReleaseVersion: 0.1.33 diff --git a/rust/ql/src/qlpack.yml b/rust/ql/src/qlpack.yml index 48abcc305ee..7b2bd73728a 100644 --- a/rust/ql/src/qlpack.yml +++ b/rust/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/rust-queries -version: 0.1.32-dev +version: 0.1.34-dev groups: - rust - queries diff --git a/rust/ql/test/library-tests/dataflow/lambdas/inline-flow.expected b/rust/ql/test/library-tests/dataflow/lambdas/inline-flow.expected index 7c99702aec6..ca4bbe77479 100644 --- a/rust/ql/test/library-tests/dataflow/lambdas/inline-flow.expected +++ b/rust/ql/test/library-tests/dataflow/lambdas/inline-flow.expected @@ -13,9 +13,9 @@ edges | main.rs:29:13:29:22 | f(...) | main.rs:29:9:29:9 | b | provenance | | | main.rs:29:21:29:21 | a | main.rs:27:20:27:23 | ... | provenance | | | main.rs:29:21:29:21 | a | main.rs:29:13:29:22 | f(...) | provenance | | -| main.rs:37:16:37:25 | source(...) | main.rs:39:5:39:5 | [post] f [captured capt] | provenance | | -| main.rs:39:5:39:5 | [post] f [captured capt] | main.rs:40:10:40:13 | capt | provenance | | -| main.rs:39:5:39:5 | [post] f [captured capt] | main.rs:44:5:44:5 | g [captured capt] | provenance | | +| main.rs:37:16:37:25 | source(...) | main.rs:39:5:39:5 | [post] f : ... => .. [captured capt] | provenance | | +| main.rs:39:5:39:5 | [post] f : ... => .. [captured capt] | main.rs:40:10:40:13 | capt | provenance | | +| main.rs:39:5:39:5 | [post] f : ... => .. [captured capt] | main.rs:44:5:44:5 | g [captured capt] | provenance | | | main.rs:44:5:44:5 | g [captured capt] | main.rs:42:14:42:17 | capt | provenance | | | main.rs:47:29:49:1 | { ... } | main.rs:57:10:57:12 | f(...) | provenance | | | main.rs:48:5:48:14 | source(...) | main.rs:47:29:49:1 | { ... } | provenance | | @@ -30,6 +30,31 @@ edges | main.rs:77:13:77:22 | f(...) | main.rs:77:9:77:9 | b | provenance | | | main.rs:77:21:77:21 | a | main.rs:66:24:66:32 | ...: i64 | provenance | | | main.rs:77:21:77:21 | a | main.rs:77:13:77:22 | f(...) | provenance | | +| main.rs:81:28:81:33 | ...: i64 | main.rs:82:7:82:7 | x | provenance | | +| main.rs:81:28:81:33 | ...: i64 | main.rs:82:7:82:7 | x | provenance | | +| main.rs:81:28:81:33 | ...: i64 | main.rs:82:7:82:7 | x | provenance | | +| main.rs:82:7:82:7 | x | main.rs:87:12:87:12 | ... | provenance | | +| main.rs:82:7:82:7 | x | main.rs:89:12:89:12 | ... | provenance | | +| main.rs:82:7:82:7 | x | main.rs:99:17:99:17 | ... | provenance | | +| main.rs:82:7:82:7 | x | main.rs:101:17:101:17 | ... | provenance | | +| main.rs:86:9:86:9 | a | main.rs:87:24:87:24 | a | provenance | | +| main.rs:86:13:86:22 | source(...) | main.rs:86:9:86:9 | a | provenance | | +| main.rs:87:12:87:12 | ... | main.rs:87:20:87:20 | x | provenance | | +| main.rs:87:24:87:24 | a | main.rs:81:28:81:33 | ...: i64 | provenance | | +| main.rs:88:9:88:9 | b | main.rs:89:24:89:24 | b | provenance | | +| main.rs:88:13:88:22 | source(...) | main.rs:88:9:88:9 | b | provenance | | +| main.rs:89:12:89:12 | ... | main.rs:89:20:89:20 | x | provenance | | +| main.rs:89:24:89:24 | b | main.rs:81:28:81:33 | ...: i64 | provenance | | +| main.rs:93:33:93:38 | ...: i64 | main.rs:94:14:94:14 | x | provenance | | +| main.rs:94:14:94:14 | x | main.rs:81:28:81:33 | ...: i64 | provenance | | +| main.rs:98:9:98:9 | a | main.rs:99:29:99:29 | a | provenance | | +| main.rs:98:13:98:22 | source(...) | main.rs:98:9:98:9 | a | provenance | | +| main.rs:99:17:99:17 | ... | main.rs:99:25:99:25 | x | provenance | | +| main.rs:99:29:99:29 | a | main.rs:93:33:93:38 | ...: i64 | provenance | | +| main.rs:100:9:100:9 | b | main.rs:101:29:101:29 | b | provenance | | +| main.rs:100:13:100:22 | source(...) | main.rs:100:9:100:9 | b | provenance | | +| main.rs:101:17:101:17 | ... | main.rs:101:25:101:25 | x | provenance | | +| main.rs:101:29:101:29 | b | main.rs:93:33:93:38 | ...: i64 | provenance | | nodes | main.rs:10:20:10:52 | if cond {...} else {...} | semmle.label | if cond {...} else {...} | | main.rs:10:30:10:39 | source(...) | semmle.label | source(...) | @@ -48,7 +73,7 @@ nodes | main.rs:29:21:29:21 | a | semmle.label | a | | main.rs:30:10:30:10 | b | semmle.label | b | | main.rs:37:16:37:25 | source(...) | semmle.label | source(...) | -| main.rs:39:5:39:5 | [post] f [captured capt] | semmle.label | [post] f [captured capt] | +| main.rs:39:5:39:5 | [post] f : ... => .. [captured capt] | semmle.label | [post] f : ... => .. [captured capt] | | main.rs:40:10:40:13 | capt | semmle.label | capt | | main.rs:42:14:42:17 | capt | semmle.label | capt | | main.rs:44:5:44:5 | g [captured capt] | semmle.label | g [captured capt] | @@ -68,6 +93,34 @@ nodes | main.rs:77:13:77:22 | f(...) | semmle.label | f(...) | | main.rs:77:21:77:21 | a | semmle.label | a | | main.rs:78:10:78:10 | b | semmle.label | b | +| main.rs:81:28:81:33 | ...: i64 | semmle.label | ...: i64 | +| main.rs:81:28:81:33 | ...: i64 | semmle.label | ...: i64 | +| main.rs:81:28:81:33 | ...: i64 | semmle.label | ...: i64 | +| main.rs:82:7:82:7 | x | semmle.label | x | +| main.rs:82:7:82:7 | x | semmle.label | x | +| main.rs:82:7:82:7 | x | semmle.label | x | +| main.rs:86:9:86:9 | a | semmle.label | a | +| main.rs:86:13:86:22 | source(...) | semmle.label | source(...) | +| main.rs:87:12:87:12 | ... | semmle.label | ... | +| main.rs:87:20:87:20 | x | semmle.label | x | +| main.rs:87:24:87:24 | a | semmle.label | a | +| main.rs:88:9:88:9 | b | semmle.label | b | +| main.rs:88:13:88:22 | source(...) | semmle.label | source(...) | +| main.rs:89:12:89:12 | ... | semmle.label | ... | +| main.rs:89:20:89:20 | x | semmle.label | x | +| main.rs:89:24:89:24 | b | semmle.label | b | +| main.rs:93:33:93:38 | ...: i64 | semmle.label | ...: i64 | +| main.rs:94:14:94:14 | x | semmle.label | x | +| main.rs:98:9:98:9 | a | semmle.label | a | +| main.rs:98:13:98:22 | source(...) | semmle.label | source(...) | +| main.rs:99:17:99:17 | ... | semmle.label | ... | +| main.rs:99:25:99:25 | x | semmle.label | x | +| main.rs:99:29:99:29 | a | semmle.label | a | +| main.rs:100:9:100:9 | b | semmle.label | b | +| main.rs:100:13:100:22 | source(...) | semmle.label | source(...) | +| main.rs:101:17:101:17 | ... | semmle.label | ... | +| main.rs:101:25:101:25 | x | semmle.label | x | +| main.rs:101:29:101:29 | b | semmle.label | b | subpaths | main.rs:29:21:29:21 | a | main.rs:27:20:27:23 | ... | main.rs:27:26:27:52 | if cond {...} else {...} | main.rs:29:13:29:22 | f(...) | | main.rs:77:21:77:21 | a | main.rs:66:24:66:32 | ...: i64 | main.rs:66:42:72:1 | { ... } | main.rs:77:13:77:22 | f(...) | @@ -81,3 +134,9 @@ testFailures | main.rs:52:10:52:13 | data | main.rs:62:13:62:22 | source(...) | main.rs:52:10:52:13 | data | $@ | main.rs:62:13:62:22 | source(...) | source(...) | | main.rs:57:10:57:12 | f(...) | main.rs:48:5:48:14 | source(...) | main.rs:57:10:57:12 | f(...) | $@ | main.rs:48:5:48:14 | source(...) | source(...) | | main.rs:78:10:78:10 | b | main.rs:76:13:76:22 | source(...) | main.rs:78:10:78:10 | b | $@ | main.rs:76:13:76:22 | source(...) | source(...) | +| main.rs:87:20:87:20 | x | main.rs:86:13:86:22 | source(...) | main.rs:87:20:87:20 | x | $@ | main.rs:86:13:86:22 | source(...) | source(...) | +| main.rs:89:20:89:20 | x | main.rs:88:13:88:22 | source(...) | main.rs:89:20:89:20 | x | $@ | main.rs:88:13:88:22 | source(...) | source(...) | +| main.rs:99:25:99:25 | x | main.rs:98:13:98:22 | source(...) | main.rs:99:25:99:25 | x | $@ | main.rs:98:13:98:22 | source(...) | source(...) | +| main.rs:99:25:99:25 | x | main.rs:100:13:100:22 | source(...) | main.rs:99:25:99:25 | x | $@ | main.rs:100:13:100:22 | source(...) | source(...) | +| main.rs:101:25:101:25 | x | main.rs:98:13:98:22 | source(...) | main.rs:101:25:101:25 | x | $@ | main.rs:98:13:98:22 | source(...) | source(...) | +| main.rs:101:25:101:25 | x | main.rs:100:13:100:22 | source(...) | main.rs:101:25:101:25 | x | $@ | main.rs:100:13:100:22 | source(...) | source(...) | diff --git a/rust/ql/test/library-tests/dataflow/lambdas/main.rs b/rust/ql/test/library-tests/dataflow/lambdas/main.rs index 252b132ec74..66295f004a2 100644 --- a/rust/ql/test/library-tests/dataflow/lambdas/main.rs +++ b/rust/ql/test/library-tests/dataflow/lambdas/main.rs @@ -78,6 +78,30 @@ fn function_flows_through() { sink(b); // $ hasValueFlow=56 } +fn apply(f: F, x: i64) { + f(x); +} + +fn test_apply() { + let a = source(77); + apply(|x| sink(x), a); // $ hasValueFlow=77 + let b = source(78); + apply(|x| sink(x), b); // $ hasValueFlow=78 + apply(|x| sink(x), 0); +} + +fn apply_wrap(f: F, x: i64) { + apply(f, x); +} + +fn test_apply_wrap() { + let a = source(79); + apply_wrap(|x| sink(x), a); // $ hasValueFlow=79 $ SPURIOUS: hasValueFlow=80 + let b = source(80); + apply_wrap(|x| sink(x), b); // $ hasValueFlow=80 $ SPURIOUS: hasValueFlow=79 + apply_wrap(|x| sink(x), 0); +} + fn main() { closure_flow_out(); closure_flow_in(); @@ -86,4 +110,6 @@ fn main() { function_flow_in(); function_flow_out(); function_flows_through(); + test_apply(); + test_apply_wrap(); } diff --git a/rust/ql/test/library-tests/dataflow/local/DataFlowStep.expected b/rust/ql/test/library-tests/dataflow/local/DataFlowStep.expected index b0c11770a8e..e220a769ece 100644 --- a/rust/ql/test/library-tests/dataflow/local/DataFlowStep.expected +++ b/rust/ql/test/library-tests/dataflow/local/DataFlowStep.expected @@ -927,9 +927,6 @@ readStep | main.rs:480:25:480:29 | names | file://:0:0:0:0 | element | main.rs:480:9:480:20 | TuplePat | | main.rs:482:41:482:67 | [post] \|...\| ... | main.rs:479:9:479:20 | captured default_name | main.rs:482:41:482:67 | [post] default_name | | main.rs:482:44:482:55 | [post] default_name [implicit borrow] | file://:0:0:0:0 | &ref | main.rs:482:44:482:55 | [post] default_name | -| main.rs:482:44:482:55 | [post] default_name [implicit borrow] | file://:0:0:0:0 | &ref | main.rs:482:44:482:55 | [post] default_name [implicit deref 0 in state after deref] | -| main.rs:482:44:482:55 | [post] default_name [implicit deref 0 in state after borrow] | file://:0:0:0:0 | &ref | main.rs:482:44:482:55 | [post] default_name | -| main.rs:482:44:482:55 | default_name [implicit deref 0 in state before deref] | file://:0:0:0:0 | &ref | main.rs:482:44:482:55 | default_name [implicit deref 0 in state after deref] | | main.rs:482:44:482:55 | this | main.rs:479:9:479:20 | captured default_name | main.rs:482:44:482:55 | default_name | | main.rs:483:18:483:18 | [post] n [implicit borrow] | file://:0:0:0:0 | &ref | main.rs:483:18:483:18 | [post] n | | main.rs:506:13:506:13 | [post] a [implicit borrow] | file://:0:0:0:0 | &ref | main.rs:506:13:506:13 | [post] a | @@ -1056,8 +1053,6 @@ storeStep | main.rs:479:24:479:33 | source(...) | file://:0:0:0:0 | &ref | main.rs:479:24:479:33 | source(...) [implicit borrow] | | main.rs:482:41:482:67 | default_name | main.rs:479:9:479:20 | captured default_name | main.rs:482:41:482:67 | \|...\| ... | | main.rs:482:44:482:55 | default_name | file://:0:0:0:0 | &ref | main.rs:482:44:482:55 | default_name [implicit borrow] | -| main.rs:482:44:482:55 | default_name | file://:0:0:0:0 | &ref | main.rs:482:44:482:55 | default_name [implicit deref 0 in state after borrow] | -| main.rs:482:44:482:55 | default_name [implicit deref 0 in state after deref] | file://:0:0:0:0 | &ref | main.rs:482:44:482:55 | default_name [implicit borrow] | | main.rs:483:18:483:18 | n | file://:0:0:0:0 | &ref | main.rs:483:18:483:18 | n [implicit borrow] | | main.rs:506:13:506:13 | a | file://:0:0:0:0 | &ref | main.rs:506:13:506:13 | a [implicit borrow] | | main.rs:507:13:507:13 | b | file://:0:0:0:0 | &ref | main.rs:507:13:507:13 | b [implicit deref 0 in state after borrow] | diff --git a/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected index 2ac439e085b..ffc2576a05e 100644 --- a/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected @@ -2,3 +2,4 @@ multipleResolvedTargets | main.rs:2223:9:2223:31 | ... .my_add(...) | | main.rs:2225:9:2225:29 | ... .my_add(...) | | main.rs:2740:13:2740:17 | x.f() | +| regressions.rs:179:17:179:27 | ... + ... | diff --git a/rust/ql/test/library-tests/type-inference/closure.rs b/rust/ql/test/library-tests/type-inference/closure.rs index cc756a6b267..635b169bf96 100644 --- a/rust/ql/test/library-tests/type-inference/closure.rs +++ b/rust/ql/test/library-tests/type-inference/closure.rs @@ -63,7 +63,7 @@ mod fn_once_trait { }; let _r = apply(f, true); // $ target=apply type=_r:i64 - let f = |x| x + 1; // $ MISSING: type=x:i64 target=add + let f = |x| x + 1; // $ type=x:i64 $ MISSING: target=add let _r2 = apply_two(f); // $ target=apply_two certainType=_r2:i64 } } @@ -100,7 +100,7 @@ mod fn_mut_trait { }; let _r = apply(f, true); // $ target=apply type=_r:i64 - let f = |x| x + 1; // $ MISSING: type=x:i64 target=add + let f = |x| x + 1; // $ type=x:i64 $ MISSING: target=add let _r2 = apply_two(f); // $ target=apply_two certainType=_r2:i64 } } @@ -137,7 +137,7 @@ mod fn_trait { }; let _r = apply(f, true); // $ target=apply type=_r:i64 - let f = |x| x + 1; // $ MISSING: type=x:i64 target=add + let f = |x| x + 1; // $ type=x:i64 $ MISSING: target=add let _r2 = apply_two(f); // $ target=apply_two certainType=_r2:i64 } } @@ -152,3 +152,98 @@ mod dyn_fn_once { let _r2 = apply_boxed(Box::new(|_: i64| true), 3); // $ target=apply_boxed target=new type=_r2:bool } } + +mod closure_infer_param { + fn apply1 i64>(f: F, a: i64) -> i64 { + f(a) + } + + fn apply2(f: impl Fn(i64) -> i64, a: i64) -> i64 { + f(a) + } + + fn apply3(f: &dyn Fn(i64) -> i64, a: i64) -> i64 { + f(a) + } + + fn apply4 i64>(mut f: F, a: i64) -> i64 { + f(a) + } + + fn apply5(f: &mut dyn FnMut(i64) -> i64, a: i64) -> i64 { + f(a) + } + + fn apply6(f: impl Fn(T) -> i64, a: T) -> i64 { + f(a) + } + + fn apply7 i64>(mut f: F, a: T) -> i64 { + f(a) + } + + fn test() { + let f = |x| x; // $ type=x:i64 + let _r = apply1(f, 1i64); // $ target=apply1 + + let f = |x| x; // $ type=x:i64 + let _r = apply2(f, 2i64); // $ target=apply2 + + let f = |x| x; // $ type=x:i64 + let _r = apply3(&f, 3i64); // $ target=apply3 + + let f = |x| x; // $ type=x:i64 + let _r = apply4(f, 4i64); // $ target=apply4 + + let mut f = |x| x; // $ MISSING: type=x:i64 + let _r = apply5(&mut f, 5i64); // $ target=apply5 + + let f = |x| x; // $ type=x:i64 + let _r = apply6(f, 6i64); // $ target=apply6 + + let f = |x| x; // $ type=x:i64 + let _r = apply7(f, 7i64); // $ target=apply7 + } +} + +mod implicit_deref { + use std::ops::Deref; + + struct S(T); + + impl Deref for S { + type Target = dyn Fn(T) -> bool; + + fn deref(&self) -> &Self::Target { + &|_| false + } + } + + pub fn test() { + let x = 0i64; + let v = Default::default(); // $ type=v:i64 target=default + let s = S(v); + let _ret = s(x); // $ type=_ret:bool + + let x = 0i32; + let v = Default::default(); // $ type=v:i32 target=default + let s = S(v); + let _ret = s(x); // $ type=_ret:bool + let s_ref = &s; + // The call below incorrectly resolves to + // `impl FnOnce for &F` from + // https://doc.rust-lang.org/std/ops/trait.FnOnce.html#impl-FnOnce%3CA%3E-for-%26F + // because `s_ref` gets an implicit borrow `&&S`, and then we incorrectly + // conclude that `&S` satisfies the blanket constraint `Fn` because of the + // `impl FnOnce for &F` implementation (we do not currently identify that + // `&S` does not satisfy `Fn`) + let _ret = s_ref(x); // $ MISSING: type=_ret:bool + + // The call below is not an implicit deref, instead it will target + // `impl FnOnce for &F` from + // https://doc.rust-lang.org/std/ops/trait.FnOnce.html#impl-FnOnce%3CA%3E-for-%26F + // and we currently cannot handle inferring the output type + let c = |x| x; // $ MISSING: type=x:i64 + (&c)(x); // $ MISSING: type=_:i64 + } +} diff --git a/rust/ql/test/library-tests/type-inference/main.rs b/rust/ql/test/library-tests/type-inference/main.rs index 6c9f2c801d5..ecb4816ebb0 100644 --- a/rust/ql/test/library-tests/type-inference/main.rs +++ b/rust/ql/test/library-tests/type-inference/main.rs @@ -2259,7 +2259,7 @@ mod loops { // for loops with arrays for i in [1, 2, 3] {} // $ type=i:i32 - for i in [1, 2, 3].map(|x| x + 1) {} // $ target=map MISSING: type=i:i32 + for i in [1, 2, 3].map(|x| x + 1) {} // $ target=map target=add type=i:i32 for i in [1, 2, 3].into_iter() {} // $ target=into_iter type=i:i32 let vals1 = [1u8, 2, 3]; // $ type=vals1:TArray.u8 @@ -2759,6 +2759,30 @@ mod dereference; mod dyn_type; mod regressions; +mod arg_trait_bounds { + struct Gen(T); + + trait Container { + fn get_input(&self) -> T; + } + + fn my_get>(c: &T) -> bool { + c.get_input() == 42 // $ target=get_input target=eq + } + + impl Container for Gen { + fn get_input(&self) -> GT { + self.0 // $ fieldof=Gen + } + } + + fn test() { + let v = Default::default(); // $ type=v:i64 target=default + let g = Gen(v); + let _ = my_get(&g); // $ target=my_get + } +} + fn main() { field_access::f(); // $ target=f method_impl::f(); // $ target=f diff --git a/rust/ql/test/library-tests/type-inference/regressions.rs b/rust/ql/test/library-tests/type-inference/regressions.rs index e1b47479f5d..5c830bb3db2 100644 --- a/rust/ql/test/library-tests/type-inference/regressions.rs +++ b/rust/ql/test/library-tests/type-inference/regressions.rs @@ -130,3 +130,52 @@ mod regression4 { } } } + +mod regression5 { + struct S1; + struct S2(T2); + + impl From<&S1> for S2 { + fn from(_: &S1) -> Self { + S2(S1) + } + } + + impl From for S2 { + fn from(t: T) -> Self { + S2(t) + } + } + + fn foo() -> S2 { + let x = S1.into(); // $ target=into + x // $ SPURIOUS: type=x:T2.TRef.S1 -- happens because we currently do not consider the two `impl` blocks to be siblings + } +} + +mod regression6 { + use std::ops::Add; + struct S(T); + + impl Add for S { + type Output = Self; + + // add1 + fn add(self, _rhs: Self) -> Self::Output { + self + } + } + + impl Add for S { + type Output = Self; + + // add2 + fn add(self, _rhs: T) -> Self::Output { + self + } + } + + fn foo() { + let x = S(0) + S(1); // $ target=add1 $ SPURIOUS: target=add2 type=x:T.T.i32 + } +} diff --git a/rust/ql/test/library-tests/type-inference/type-inference.expected b/rust/ql/test/library-tests/type-inference/type-inference.expected index 1e2c753b242..5e870ae6ca5 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -545,6 +545,14 @@ inferCertainType | blanket_impl.rs:299:47:299:67 | "SELECT * FROM users" | | {EXTERNAL LOCATION} | & | | blanket_impl.rs:299:47:299:67 | "SELECT * FROM users" | TRef | {EXTERNAL LOCATION} | str | | closure.rs:4:19:31:5 | { ... } | | {EXTERNAL LOCATION} | () | +| closure.rs:6:13:6:22 | my_closure | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:6:13:6:22 | my_closure | dyn(Args) | {EXTERNAL LOCATION} | (T_2) | +| closure.rs:6:13:6:22 | my_closure | dyn(Args).T0 | {EXTERNAL LOCATION} | bool | +| closure.rs:6:13:6:22 | my_closure | dyn(Args).T1 | {EXTERNAL LOCATION} | bool | +| closure.rs:6:26:6:38 | \|...\| ... | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:6:26:6:38 | \|...\| ... | dyn(Args) | {EXTERNAL LOCATION} | (T_2) | +| closure.rs:6:26:6:38 | \|...\| ... | dyn(Args).T0 | {EXTERNAL LOCATION} | bool | +| closure.rs:6:26:6:38 | \|...\| ... | dyn(Args).T1 | {EXTERNAL LOCATION} | bool | | closure.rs:6:27:6:27 | a | | {EXTERNAL LOCATION} | bool | | closure.rs:6:30:6:30 | b | | {EXTERNAL LOCATION} | bool | | closure.rs:6:33:6:33 | a | | {EXTERNAL LOCATION} | bool | @@ -552,19 +560,47 @@ inferCertainType | closure.rs:6:38:6:38 | b | | {EXTERNAL LOCATION} | bool | | closure.rs:8:13:8:13 | x | | {EXTERNAL LOCATION} | i64 | | closure.rs:8:22:8:25 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| closure.rs:9:13:9:19 | add_one | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:9:23:9:34 | \|...\| ... | | {EXTERNAL LOCATION} | dyn Fn | | closure.rs:9:31:9:34 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| closure.rs:10:18:10:24 | add_one | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:10:25:10:27 | ArgList | | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:10:25:10:27 | ArgList | T0 | {EXTERNAL LOCATION} | i64 | | closure.rs:10:26:10:26 | x | | {EXTERNAL LOCATION} | i64 | +| closure.rs:14:13:14:20 | add_zero | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:14:13:14:20 | add_zero | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:14:13:14:20 | add_zero | dyn(Args).T0 | {EXTERNAL LOCATION} | i64 | +| closure.rs:14:24:14:33 | \|...\| n | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:14:24:14:33 | \|...\| n | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:14:24:14:33 | \|...\| n | dyn(Args).T0 | {EXTERNAL LOCATION} | i64 | | closure.rs:14:25:14:25 | n | | {EXTERNAL LOCATION} | i64 | | closure.rs:14:33:14:33 | n | | {EXTERNAL LOCATION} | i64 | +| closure.rs:15:18:15:25 | add_zero | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:15:18:15:25 | add_zero | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:15:18:15:25 | add_zero | dyn(Args).T0 | {EXTERNAL LOCATION} | i64 | +| closure.rs:17:13:17:21 | _get_bool | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:17:25:21:9 | \|...\| ... | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:24:13:24:14 | id | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:24:18:24:22 | \|...\| b | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:25:18:25:19 | id | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:25:20:25:25 | ArgList | | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:25:20:25:25 | ArgList | T0 | {EXTERNAL LOCATION} | bool | | closure.rs:25:21:25:24 | true | | {EXTERNAL LOCATION} | bool | +| closure.rs:28:13:28:15 | id2 | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:28:19:28:23 | \|...\| b | | {EXTERNAL LOCATION} | dyn Fn | | closure.rs:30:13:30:15 | _b2 | | {EXTERNAL LOCATION} | bool | +| closure.rs:30:25:30:27 | id2 | | {EXTERNAL LOCATION} | dyn Fn | | closure.rs:35:44:35:44 | f | | closure.rs:35:20:35:41 | F | | closure.rs:35:50:37:5 | { ... } | | {EXTERNAL LOCATION} | () | | closure.rs:36:23:36:23 | f | | closure.rs:35:20:35:41 | F | +| closure.rs:36:24:36:29 | ArgList | | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:36:24:36:29 | ArgList | T0 | {EXTERNAL LOCATION} | bool | | closure.rs:36:25:36:28 | true | | {EXTERNAL LOCATION} | bool | | closure.rs:39:45:39:45 | f | | closure.rs:39:28:39:42 | F | | closure.rs:39:51:41:5 | { ... } | | {EXTERNAL LOCATION} | () | | closure.rs:40:23:40:23 | f | | closure.rs:39:28:39:42 | F | +| closure.rs:40:24:40:29 | ArgList | | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:40:24:40:29 | ArgList | T0 | {EXTERNAL LOCATION} | bool | | closure.rs:40:25:40:28 | true | | {EXTERNAL LOCATION} | bool | | closure.rs:43:46:43:46 | f | | closure.rs:43:22:43:43 | F | | closure.rs:43:52:46:5 | { ... } | | {EXTERNAL LOCATION} | () | @@ -573,23 +609,41 @@ inferCertainType | closure.rs:48:45:48:45 | a | | closure.rs:48:14:48:14 | A | | closure.rs:48:56:50:5 | { ... } | | closure.rs:48:17:48:17 | B | | closure.rs:49:9:49:9 | f | | closure.rs:48:20:48:36 | F | +| closure.rs:49:10:49:12 | ArgList | | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:49:10:49:12 | ArgList | T0 | closure.rs:48:14:48:14 | A | | closure.rs:49:11:49:11 | a | | closure.rs:48:14:48:14 | A | | closure.rs:52:18:52:18 | f | | closure.rs:52:21:52:43 | impl ... | | closure.rs:52:53:54:5 | { ... } | | {EXTERNAL LOCATION} | i64 | | closure.rs:53:9:53:9 | f | | closure.rs:52:21:52:43 | impl ... | | closure.rs:56:15:68:5 | { ... } | | {EXTERNAL LOCATION} | () | +| closure.rs:57:13:57:13 | f | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:57:13:57:13 | f | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:57:13:57:13 | f | dyn(Args).T0 | {EXTERNAL LOCATION} | bool | +| closure.rs:57:17:63:9 | \|...\| ... | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:57:17:63:9 | \|...\| ... | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:57:17:63:9 | \|...\| ... | dyn(Args).T0 | {EXTERNAL LOCATION} | bool | | closure.rs:57:18:57:18 | x | | {EXTERNAL LOCATION} | bool | | closure.rs:58:16:58:16 | x | | {EXTERNAL LOCATION} | bool | +| closure.rs:64:24:64:24 | f | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:64:24:64:24 | f | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:64:24:64:24 | f | dyn(Args).T0 | {EXTERNAL LOCATION} | bool | | closure.rs:64:27:64:30 | true | | {EXTERNAL LOCATION} | bool | +| closure.rs:66:13:66:13 | f | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:66:17:66:25 | \|...\| ... | | {EXTERNAL LOCATION} | dyn Fn | | closure.rs:67:13:67:15 | _r2 | | {EXTERNAL LOCATION} | i64 | | closure.rs:67:19:67:30 | apply_two(...) | | {EXTERNAL LOCATION} | i64 | +| closure.rs:67:29:67:29 | f | | {EXTERNAL LOCATION} | dyn Fn | | closure.rs:72:47:72:47 | f | | closure.rs:72:20:72:40 | F | | closure.rs:72:53:74:5 | { ... } | | {EXTERNAL LOCATION} | () | | closure.rs:73:23:73:23 | f | | closure.rs:72:20:72:40 | F | +| closure.rs:73:24:73:29 | ArgList | | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:73:24:73:29 | ArgList | T0 | {EXTERNAL LOCATION} | bool | | closure.rs:73:25:73:28 | true | | {EXTERNAL LOCATION} | bool | | closure.rs:76:48:76:48 | f | | closure.rs:76:28:76:41 | F | | closure.rs:76:54:78:5 | { ... } | | {EXTERNAL LOCATION} | () | | closure.rs:77:23:77:23 | f | | closure.rs:76:28:76:41 | F | +| closure.rs:77:24:77:29 | ArgList | | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:77:24:77:29 | ArgList | T0 | {EXTERNAL LOCATION} | bool | | closure.rs:77:25:77:28 | true | | {EXTERNAL LOCATION} | bool | | closure.rs:80:49:80:49 | f | | closure.rs:80:22:80:42 | F | | closure.rs:80:55:83:5 | { ... } | | {EXTERNAL LOCATION} | () | @@ -598,23 +652,41 @@ inferCertainType | closure.rs:85:48:85:48 | a | | closure.rs:85:14:85:14 | A | | closure.rs:85:59:87:5 | { ... } | | closure.rs:85:17:85:17 | B | | closure.rs:86:9:86:9 | f | | closure.rs:85:20:85:35 | F | +| closure.rs:86:10:86:12 | ArgList | | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:86:10:86:12 | ArgList | T0 | closure.rs:85:14:85:14 | A | | closure.rs:86:11:86:11 | a | | closure.rs:85:14:85:14 | A | | closure.rs:89:22:89:22 | f | | closure.rs:89:25:89:46 | impl ... | | closure.rs:89:56:91:5 | { ... } | | {EXTERNAL LOCATION} | i64 | | closure.rs:90:9:90:9 | f | | closure.rs:89:25:89:46 | impl ... | | closure.rs:93:15:105:5 | { ... } | | {EXTERNAL LOCATION} | () | +| closure.rs:94:13:94:13 | f | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:94:13:94:13 | f | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:94:13:94:13 | f | dyn(Args).T0 | {EXTERNAL LOCATION} | bool | +| closure.rs:94:17:100:9 | \|...\| ... | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:94:17:100:9 | \|...\| ... | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:94:17:100:9 | \|...\| ... | dyn(Args).T0 | {EXTERNAL LOCATION} | bool | | closure.rs:94:18:94:18 | x | | {EXTERNAL LOCATION} | bool | | closure.rs:95:16:95:16 | x | | {EXTERNAL LOCATION} | bool | +| closure.rs:101:24:101:24 | f | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:101:24:101:24 | f | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:101:24:101:24 | f | dyn(Args).T0 | {EXTERNAL LOCATION} | bool | | closure.rs:101:27:101:30 | true | | {EXTERNAL LOCATION} | bool | +| closure.rs:103:13:103:13 | f | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:103:17:103:25 | \|...\| ... | | {EXTERNAL LOCATION} | dyn Fn | | closure.rs:104:13:104:15 | _r2 | | {EXTERNAL LOCATION} | i64 | | closure.rs:104:19:104:30 | apply_two(...) | | {EXTERNAL LOCATION} | i64 | +| closure.rs:104:29:104:29 | f | | {EXTERNAL LOCATION} | dyn Fn | | closure.rs:109:40:109:40 | f | | closure.rs:109:20:109:37 | F | | closure.rs:109:46:111:5 | { ... } | | {EXTERNAL LOCATION} | () | | closure.rs:110:23:110:23 | f | | closure.rs:109:20:109:37 | F | +| closure.rs:110:24:110:29 | ArgList | | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:110:24:110:29 | ArgList | T0 | {EXTERNAL LOCATION} | bool | | closure.rs:110:25:110:28 | true | | {EXTERNAL LOCATION} | bool | | closure.rs:113:41:113:41 | f | | closure.rs:113:28:113:38 | F | | closure.rs:113:47:115:5 | { ... } | | {EXTERNAL LOCATION} | () | | closure.rs:114:23:114:23 | f | | closure.rs:113:28:113:38 | F | +| closure.rs:114:24:114:29 | ArgList | | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:114:24:114:29 | ArgList | T0 | {EXTERNAL LOCATION} | bool | | closure.rs:114:25:114:28 | true | | {EXTERNAL LOCATION} | bool | | closure.rs:117:42:117:42 | f | | closure.rs:117:22:117:39 | F | | closure.rs:117:48:120:5 | { ... } | | {EXTERNAL LOCATION} | () | @@ -623,16 +695,30 @@ inferCertainType | closure.rs:122:41:122:41 | a | | closure.rs:122:14:122:14 | A | | closure.rs:122:52:124:5 | { ... } | | closure.rs:122:17:122:17 | B | | closure.rs:123:9:123:9 | f | | closure.rs:122:20:122:32 | F | +| closure.rs:123:10:123:12 | ArgList | | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:123:10:123:12 | ArgList | T0 | closure.rs:122:14:122:14 | A | | closure.rs:123:11:123:11 | a | | closure.rs:122:14:122:14 | A | | closure.rs:126:18:126:18 | f | | closure.rs:126:21:126:39 | impl ... | | closure.rs:126:49:128:5 | { ... } | | {EXTERNAL LOCATION} | i64 | | closure.rs:127:9:127:9 | f | | closure.rs:126:21:126:39 | impl ... | | closure.rs:130:15:142:5 | { ... } | | {EXTERNAL LOCATION} | () | +| closure.rs:131:13:131:13 | f | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:131:13:131:13 | f | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:131:13:131:13 | f | dyn(Args).T0 | {EXTERNAL LOCATION} | bool | +| closure.rs:131:17:137:9 | \|...\| ... | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:131:17:137:9 | \|...\| ... | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:131:17:137:9 | \|...\| ... | dyn(Args).T0 | {EXTERNAL LOCATION} | bool | | closure.rs:131:18:131:18 | x | | {EXTERNAL LOCATION} | bool | | closure.rs:132:16:132:16 | x | | {EXTERNAL LOCATION} | bool | +| closure.rs:138:24:138:24 | f | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:138:24:138:24 | f | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:138:24:138:24 | f | dyn(Args).T0 | {EXTERNAL LOCATION} | bool | | closure.rs:138:27:138:30 | true | | {EXTERNAL LOCATION} | bool | +| closure.rs:140:13:140:13 | f | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:140:17:140:25 | \|...\| ... | | {EXTERNAL LOCATION} | dyn Fn | | closure.rs:141:13:141:15 | _r2 | | {EXTERNAL LOCATION} | i64 | | closure.rs:141:19:141:30 | apply_two(...) | | {EXTERNAL LOCATION} | i64 | +| closure.rs:141:29:141:29 | f | | {EXTERNAL LOCATION} | dyn Fn | | closure.rs:146:54:146:54 | f | | {EXTERNAL LOCATION} | Box | | closure.rs:146:54:146:54 | f | A | {EXTERNAL LOCATION} | Global | | closure.rs:146:54:146:54 | f | T | closure.rs:146:26:146:51 | F | @@ -641,6 +727,8 @@ inferCertainType | closure.rs:147:9:147:9 | f | | {EXTERNAL LOCATION} | Box | | closure.rs:147:9:147:9 | f | A | {EXTERNAL LOCATION} | Global | | closure.rs:147:9:147:9 | f | T | closure.rs:146:26:146:51 | F | +| closure.rs:147:10:147:14 | ArgList | | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:147:10:147:14 | ArgList | T0 | closure.rs:146:20:146:20 | A | | closure.rs:147:11:147:13 | arg | | closure.rs:146:20:146:20 | A | | closure.rs:150:30:150:30 | f | | {EXTERNAL LOCATION} | Box | | closure.rs:150:30:150:30 | f | A | {EXTERNAL LOCATION} | Global | @@ -659,8 +747,157 @@ inferCertainType | closure.rs:151:34:151:36 | arg | | closure.rs:150:24:150:24 | A | | closure.rs:152:31:152:53 | ...::new(...) | | {EXTERNAL LOCATION} | Box | | closure.rs:152:31:152:53 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| closure.rs:152:40:152:52 | \|...\| true | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:152:40:152:52 | \|...\| true | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:152:40:152:52 | \|...\| true | dyn(Args).T0 | {EXTERNAL LOCATION} | i64 | | closure.rs:152:41:152:41 | _ | | {EXTERNAL LOCATION} | i64 | | closure.rs:152:49:152:52 | true | | {EXTERNAL LOCATION} | bool | +| closure.rs:157:34:157:34 | f | | closure.rs:157:15:157:31 | F | +| closure.rs:157:40:157:40 | a | | {EXTERNAL LOCATION} | i64 | +| closure.rs:157:55:159:5 | { ... } | | {EXTERNAL LOCATION} | i64 | +| closure.rs:158:9:158:9 | f | | closure.rs:157:15:157:31 | F | +| closure.rs:158:10:158:12 | ArgList | | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:158:10:158:12 | ArgList | T0 | {EXTERNAL LOCATION} | i64 | +| closure.rs:158:11:158:11 | a | | {EXTERNAL LOCATION} | i64 | +| closure.rs:161:15:161:15 | f | | closure.rs:161:18:161:36 | impl ... | +| closure.rs:161:39:161:39 | a | | {EXTERNAL LOCATION} | i64 | +| closure.rs:161:54:163:5 | { ... } | | {EXTERNAL LOCATION} | i64 | +| closure.rs:162:9:162:9 | f | | closure.rs:161:18:161:36 | impl ... | +| closure.rs:162:10:162:12 | ArgList | | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:162:10:162:12 | ArgList | T0 | {EXTERNAL LOCATION} | i64 | +| closure.rs:162:11:162:11 | a | | {EXTERNAL LOCATION} | i64 | +| closure.rs:165:15:165:15 | f | | {EXTERNAL LOCATION} | & | +| closure.rs:165:15:165:15 | f | TRef | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:165:15:165:15 | f | TRef.dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:165:15:165:15 | f | TRef.dyn(Args).T0 | {EXTERNAL LOCATION} | i64 | +| closure.rs:165:15:165:15 | f | TRef.dyn(Output) | {EXTERNAL LOCATION} | i64 | +| closure.rs:165:39:165:39 | a | | {EXTERNAL LOCATION} | i64 | +| closure.rs:165:54:167:5 | { ... } | | {EXTERNAL LOCATION} | i64 | +| closure.rs:166:9:166:9 | f | | {EXTERNAL LOCATION} | & | +| closure.rs:166:9:166:9 | f | TRef | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:166:9:166:9 | f | TRef.dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:166:9:166:9 | f | TRef.dyn(Args).T0 | {EXTERNAL LOCATION} | i64 | +| closure.rs:166:9:166:9 | f | TRef.dyn(Output) | {EXTERNAL LOCATION} | i64 | +| closure.rs:166:10:166:12 | ArgList | | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:166:10:166:12 | ArgList | T0 | {EXTERNAL LOCATION} | i64 | +| closure.rs:166:11:166:11 | a | | {EXTERNAL LOCATION} | i64 | +| closure.rs:169:41:169:41 | f | | closure.rs:169:15:169:34 | F | +| closure.rs:169:47:169:47 | a | | {EXTERNAL LOCATION} | i64 | +| closure.rs:169:62:171:5 | { ... } | | {EXTERNAL LOCATION} | i64 | +| closure.rs:170:9:170:9 | f | | closure.rs:169:15:169:34 | F | +| closure.rs:170:10:170:12 | ArgList | | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:170:10:170:12 | ArgList | T0 | {EXTERNAL LOCATION} | i64 | +| closure.rs:170:11:170:11 | a | | {EXTERNAL LOCATION} | i64 | +| closure.rs:173:15:173:15 | f | | {EXTERNAL LOCATION} | &mut | +| closure.rs:173:15:173:15 | f | TRefMut | {EXTERNAL LOCATION} | dyn FnMut | +| closure.rs:173:15:173:15 | f | TRefMut.dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:173:15:173:15 | f | TRefMut.dyn(Args).T0 | {EXTERNAL LOCATION} | i64 | +| closure.rs:173:15:173:15 | f | TRefMut.dyn(Output) | {EXTERNAL LOCATION} | i64 | +| closure.rs:173:46:173:46 | a | | {EXTERNAL LOCATION} | i64 | +| closure.rs:173:61:175:5 | { ... } | | {EXTERNAL LOCATION} | i64 | +| closure.rs:174:9:174:9 | f | | {EXTERNAL LOCATION} | &mut | +| closure.rs:174:9:174:9 | f | TRefMut | {EXTERNAL LOCATION} | dyn FnMut | +| closure.rs:174:9:174:9 | f | TRefMut.dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:174:9:174:9 | f | TRefMut.dyn(Args).T0 | {EXTERNAL LOCATION} | i64 | +| closure.rs:174:9:174:9 | f | TRefMut.dyn(Output) | {EXTERNAL LOCATION} | i64 | +| closure.rs:174:10:174:12 | ArgList | | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:174:10:174:12 | ArgList | T0 | {EXTERNAL LOCATION} | i64 | +| closure.rs:174:11:174:11 | a | | {EXTERNAL LOCATION} | i64 | +| closure.rs:177:18:177:18 | f | | closure.rs:177:21:177:37 | impl ... | +| closure.rs:177:40:177:40 | a | | closure.rs:177:15:177:15 | T | +| closure.rs:177:53:179:5 | { ... } | | {EXTERNAL LOCATION} | i64 | +| closure.rs:178:9:178:9 | f | | closure.rs:177:21:177:37 | impl ... | +| closure.rs:178:10:178:12 | ArgList | | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:178:10:178:12 | ArgList | T0 | closure.rs:177:15:177:15 | T | +| closure.rs:178:11:178:11 | a | | closure.rs:177:15:177:15 | T | +| closure.rs:181:42:181:42 | f | | closure.rs:181:18:181:35 | F | +| closure.rs:181:48:181:48 | a | | closure.rs:181:15:181:15 | T | +| closure.rs:181:61:183:5 | { ... } | | {EXTERNAL LOCATION} | i64 | +| closure.rs:182:9:182:9 | f | | closure.rs:181:18:181:35 | F | +| closure.rs:182:10:182:12 | ArgList | | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:182:10:182:12 | ArgList | T0 | closure.rs:181:15:181:15 | T | +| closure.rs:182:11:182:11 | a | | closure.rs:181:15:181:15 | T | +| closure.rs:185:15:206:5 | { ... } | | {EXTERNAL LOCATION} | () | +| closure.rs:186:13:186:13 | f | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:186:17:186:21 | \|...\| x | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:187:13:187:14 | _r | | {EXTERNAL LOCATION} | i64 | +| closure.rs:187:18:187:32 | apply1(...) | | {EXTERNAL LOCATION} | i64 | +| closure.rs:187:25:187:25 | f | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:187:28:187:31 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| closure.rs:189:13:189:13 | f | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:189:17:189:21 | \|...\| x | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:190:13:190:14 | _r | | {EXTERNAL LOCATION} | i64 | +| closure.rs:190:18:190:32 | apply2(...) | | {EXTERNAL LOCATION} | i64 | +| closure.rs:190:25:190:25 | f | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:190:28:190:31 | 2i64 | | {EXTERNAL LOCATION} | i64 | +| closure.rs:192:13:192:13 | f | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:192:17:192:21 | \|...\| x | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:193:13:193:14 | _r | | {EXTERNAL LOCATION} | i64 | +| closure.rs:193:18:193:33 | apply3(...) | | {EXTERNAL LOCATION} | i64 | +| closure.rs:193:25:193:26 | &f | | {EXTERNAL LOCATION} | & | +| closure.rs:193:26:193:26 | f | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:193:29:193:32 | 3i64 | | {EXTERNAL LOCATION} | i64 | +| closure.rs:195:13:195:13 | f | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:195:17:195:21 | \|...\| x | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:196:13:196:14 | _r | | {EXTERNAL LOCATION} | i64 | +| closure.rs:196:18:196:32 | apply4(...) | | {EXTERNAL LOCATION} | i64 | +| closure.rs:196:25:196:25 | f | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:196:28:196:31 | 4i64 | | {EXTERNAL LOCATION} | i64 | +| closure.rs:198:17:198:17 | f | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:198:21:198:25 | \|...\| x | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:199:13:199:14 | _r | | {EXTERNAL LOCATION} | i64 | +| closure.rs:199:18:199:37 | apply5(...) | | {EXTERNAL LOCATION} | i64 | +| closure.rs:199:25:199:30 | &mut f | | {EXTERNAL LOCATION} | &mut | +| closure.rs:199:30:199:30 | f | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:199:33:199:36 | 5i64 | | {EXTERNAL LOCATION} | i64 | +| closure.rs:201:13:201:13 | f | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:201:17:201:21 | \|...\| x | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:202:13:202:14 | _r | | {EXTERNAL LOCATION} | i64 | +| closure.rs:202:18:202:32 | apply6(...) | | {EXTERNAL LOCATION} | i64 | +| closure.rs:202:25:202:25 | f | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:202:28:202:31 | 6i64 | | {EXTERNAL LOCATION} | i64 | +| closure.rs:204:13:204:13 | f | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:204:17:204:21 | \|...\| x | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:205:13:205:14 | _r | | {EXTERNAL LOCATION} | i64 | +| closure.rs:205:18:205:32 | apply7(...) | | {EXTERNAL LOCATION} | i64 | +| closure.rs:205:25:205:25 | f | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:205:28:205:31 | 7i64 | | {EXTERNAL LOCATION} | i64 | +| closure.rs:217:18:217:22 | SelfParam | | {EXTERNAL LOCATION} | & | +| closure.rs:217:18:217:22 | SelfParam | TRef | closure.rs:212:5:212:19 | S | +| closure.rs:217:18:217:22 | SelfParam | TRef.T | closure.rs:214:10:214:10 | T | +| closure.rs:217:42:219:9 | { ... } | | {EXTERNAL LOCATION} | & | +| closure.rs:217:42:219:9 | { ... } | TRef | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:217:42:219:9 | { ... } | TRef.dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:217:42:219:9 | { ... } | TRef.dyn(Args).T0 | closure.rs:214:10:214:10 | T | +| closure.rs:217:42:219:9 | { ... } | TRef.dyn(Output) | {EXTERNAL LOCATION} | bool | +| closure.rs:218:13:218:22 | &... | | {EXTERNAL LOCATION} | & | +| closure.rs:218:14:218:22 | \|...\| false | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:218:18:218:22 | false | | {EXTERNAL LOCATION} | bool | +| closure.rs:222:19:248:5 | { ... } | | {EXTERNAL LOCATION} | () | +| closure.rs:223:13:223:13 | x | | {EXTERNAL LOCATION} | i64 | +| closure.rs:223:17:223:20 | 0i64 | | {EXTERNAL LOCATION} | i64 | +| closure.rs:226:21:226:23 | ArgList | | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:226:21:226:23 | ArgList | T0 | {EXTERNAL LOCATION} | i64 | +| closure.rs:226:22:226:22 | x | | {EXTERNAL LOCATION} | i64 | +| closure.rs:228:13:228:13 | x | | {EXTERNAL LOCATION} | i32 | +| closure.rs:228:17:228:20 | 0i32 | | {EXTERNAL LOCATION} | i32 | +| closure.rs:231:21:231:23 | ArgList | | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:231:21:231:23 | ArgList | T0 | {EXTERNAL LOCATION} | i32 | +| closure.rs:231:22:231:22 | x | | {EXTERNAL LOCATION} | i32 | +| closure.rs:232:13:232:17 | s_ref | | {EXTERNAL LOCATION} | & | +| closure.rs:232:21:232:22 | &s | | {EXTERNAL LOCATION} | & | +| closure.rs:240:20:240:24 | s_ref | | {EXTERNAL LOCATION} | & | +| closure.rs:240:25:240:27 | ArgList | | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:240:25:240:27 | ArgList | T0 | {EXTERNAL LOCATION} | i32 | +| closure.rs:240:26:240:26 | x | | {EXTERNAL LOCATION} | i32 | +| closure.rs:246:13:246:13 | c | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:246:17:246:21 | \|...\| x | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:247:9:247:12 | (...) | | {EXTERNAL LOCATION} | & | +| closure.rs:247:10:247:11 | &c | | {EXTERNAL LOCATION} | & | +| closure.rs:247:11:247:11 | c | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:247:13:247:15 | ArgList | | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:247:13:247:15 | ArgList | T0 | {EXTERNAL LOCATION} | i32 | +| closure.rs:247:14:247:14 | x | | {EXTERNAL LOCATION} | i32 | | dereference.rs:13:14:13:18 | SelfParam | | {EXTERNAL LOCATION} | & | | dereference.rs:13:14:13:18 | SelfParam | TRef | dereference.rs:5:1:7:1 | MyIntPointer | | dereference.rs:13:29:15:5 | { ... } | | {EXTERNAL LOCATION} | & | @@ -2259,6 +2496,7 @@ inferCertainType | main.rs:1340:40:1345:5 | { ... } | | {EXTERNAL LOCATION} | Result | | main.rs:1340:40:1345:5 | { ... } | E | main.rs:1320:5:1321:14 | S2 | | main.rs:1340:40:1345:5 | { ... } | T | main.rs:1317:5:1318:14 | S1 | +| main.rs:1343:24:1343:28 | \|...\| s | | {EXTERNAL LOCATION} | dyn Fn | | main.rs:1349:30:1349:34 | input | | {EXTERNAL LOCATION} | Result | | main.rs:1349:30:1349:34 | input | E | main.rs:1317:5:1318:14 | S1 | | main.rs:1349:30:1349:34 | input | T | main.rs:1349:20:1349:27 | T | @@ -2268,6 +2506,7 @@ inferCertainType | main.rs:1350:21:1350:25 | input | | {EXTERNAL LOCATION} | Result | | main.rs:1350:21:1350:25 | input | E | main.rs:1317:5:1318:14 | S1 | | main.rs:1350:21:1350:25 | input | T | main.rs:1349:20:1349:27 | T | +| main.rs:1351:49:1354:9 | \|...\| ... | | {EXTERNAL LOCATION} | dyn Fn | | main.rs:1352:22:1352:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1352:22:1352:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1352:22:1352:30 | ...::_print(...) | | {EXTERNAL LOCATION} | () | @@ -3182,6 +3421,7 @@ inferCertainType | main.rs:2261:28:2261:29 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:2262:9:2262:44 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | | main.rs:2262:18:2262:26 | [...] | | {EXTERNAL LOCATION} | [;] | +| main.rs:2262:32:2262:40 | \|...\| ... | | {EXTERNAL LOCATION} | dyn Fn | | main.rs:2262:43:2262:44 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:2263:9:2263:41 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | | main.rs:2263:18:2263:26 | [...] | | {EXTERNAL LOCATION} | [;] | @@ -3715,48 +3955,65 @@ inferCertainType | main.rs:2747:21:2747:21 | y | | {EXTERNAL LOCATION} | & | | main.rs:2750:13:2750:13 | y | | {EXTERNAL LOCATION} | usize | | main.rs:2751:23:2751:23 | y | | {EXTERNAL LOCATION} | usize | -| main.rs:2762:11:2797:1 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2763:5:2763:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2764:5:2764:20 | ...::f(...) | | main.rs:72:5:72:21 | Foo | -| main.rs:2765:5:2765:60 | ...::g(...) | | main.rs:72:5:72:21 | Foo | -| main.rs:2765:20:2765:38 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | -| main.rs:2765:41:2765:59 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | -| main.rs:2766:5:2766:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2767:5:2767:41 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2768:5:2768:45 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2769:5:2769:30 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2770:5:2770:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2771:5:2771:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2772:5:2772:32 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2773:5:2773:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2774:5:2774:36 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2775:5:2775:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2776:5:2776:29 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2777:5:2777:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2778:5:2778:24 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2779:5:2779:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2780:5:2780:18 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2781:5:2781:15 | ...::f(...) | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:2781:5:2781:15 | ...::f(...) | dyn(Output) | {EXTERNAL LOCATION} | () | -| main.rs:2782:5:2782:19 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2783:5:2783:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2784:5:2784:14 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2785:5:2785:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2786:5:2786:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2787:5:2787:43 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2788:5:2788:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2789:5:2789:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2790:5:2790:28 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2791:5:2791:23 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2792:5:2792:41 | ...::test_all_patterns(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2793:5:2793:49 | ...::box_patterns(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2794:5:2794:20 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2795:5:2795:20 | ...::f(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2795:5:2795:20 | ...::f(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2795:5:2795:20 | ...::f(...) | T | main.rs:2547:5:2549:5 | dyn MyTrait | -| main.rs:2795:5:2795:20 | ...::f(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2795:16:2795:19 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2796:5:2796:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2766:22:2766:26 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2766:22:2766:26 | SelfParam | TRef | main.rs:2765:5:2767:5 | Self [trait Container] | +| main.rs:2769:34:2769:34 | c | | {EXTERNAL LOCATION} | & | +| main.rs:2769:34:2769:34 | c | TRef | main.rs:2769:15:2769:31 | T | +| main.rs:2769:49:2771:5 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:2770:9:2770:9 | c | | {EXTERNAL LOCATION} | & | +| main.rs:2770:9:2770:9 | c | TRef | main.rs:2769:15:2769:31 | T | +| main.rs:2774:22:2774:26 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2774:22:2774:26 | SelfParam | TRef | main.rs:2763:5:2763:21 | Gen | +| main.rs:2774:22:2774:26 | SelfParam | TRef.T | main.rs:2773:10:2773:17 | GT | +| main.rs:2774:35:2776:9 | { ... } | | main.rs:2773:10:2773:17 | GT | +| main.rs:2775:13:2775:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2775:13:2775:16 | self | TRef | main.rs:2763:5:2763:21 | Gen | +| main.rs:2775:13:2775:16 | self | TRef.T | main.rs:2773:10:2773:17 | GT | +| main.rs:2779:15:2783:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2782:17:2782:26 | my_get(...) | | {EXTERNAL LOCATION} | bool | +| main.rs:2782:24:2782:25 | &g | | {EXTERNAL LOCATION} | & | +| main.rs:2786:11:2821:1 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2787:5:2787:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2788:5:2788:20 | ...::f(...) | | main.rs:72:5:72:21 | Foo | +| main.rs:2789:5:2789:60 | ...::g(...) | | main.rs:72:5:72:21 | Foo | +| main.rs:2789:20:2789:38 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | +| main.rs:2789:41:2789:59 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | +| main.rs:2790:5:2790:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2791:5:2791:41 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2792:5:2792:45 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2793:5:2793:30 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2794:5:2794:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2795:5:2795:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2796:5:2796:32 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2797:5:2797:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2798:5:2798:36 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2799:5:2799:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2800:5:2800:29 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2801:5:2801:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2802:5:2802:24 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2803:5:2803:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2804:5:2804:18 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2805:5:2805:15 | ...::f(...) | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2805:5:2805:15 | ...::f(...) | dyn(Output) | {EXTERNAL LOCATION} | () | +| main.rs:2806:5:2806:19 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2807:5:2807:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2808:5:2808:14 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2809:5:2809:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2810:5:2810:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2811:5:2811:43 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2812:5:2812:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2813:5:2813:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2814:5:2814:28 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2815:5:2815:23 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2816:5:2816:41 | ...::test_all_patterns(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2817:5:2817:49 | ...::box_patterns(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2818:5:2818:20 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2819:5:2819:20 | ...::f(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2819:5:2819:20 | ...::f(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2819:5:2819:20 | ...::f(...) | T | main.rs:2547:5:2549:5 | dyn MyTrait | +| main.rs:2819:5:2819:20 | ...::f(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2819:16:2819:19 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2820:5:2820:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | | overloading.rs:4:19:4:23 | SelfParam | | {EXTERNAL LOCATION} | & | | overloading.rs:4:19:4:23 | SelfParam | TRef | overloading.rs:2:5:11:5 | Self [trait FirstTrait] | | overloading.rs:4:34:6:9 | { ... } | | {EXTERNAL LOCATION} | bool | @@ -5092,6 +5349,32 @@ inferCertainType | regressions.rs:127:9:130:9 | { ... } | | {EXTERNAL LOCATION} | () | | regressions.rs:128:24:128:27 | self | | regressions.rs:121:5:121:19 | S | | regressions.rs:128:24:128:27 | self | T | regressions.rs:123:10:123:10 | T | +| regressions.rs:139:17:139:17 | _ | | {EXTERNAL LOCATION} | & | +| regressions.rs:139:17:139:17 | _ | TRef | regressions.rs:135:5:135:14 | S1 | +| regressions.rs:139:33:141:9 | { ... } | | regressions.rs:136:5:136:22 | S2 | +| regressions.rs:139:33:141:9 | { ... } | T2 | regressions.rs:135:5:135:14 | S1 | +| regressions.rs:145:17:145:17 | t | | regressions.rs:144:10:144:10 | T | +| regressions.rs:145:31:147:9 | { ... } | | regressions.rs:136:5:136:22 | S2 | +| regressions.rs:145:31:147:9 | { ... } | T2 | regressions.rs:144:10:144:10 | T | +| regressions.rs:146:16:146:16 | t | | regressions.rs:144:10:144:10 | T | +| regressions.rs:150:24:153:5 | { ... } | | regressions.rs:136:5:136:22 | S2 | +| regressions.rs:150:24:153:5 | { ... } | T2 | regressions.rs:135:5:135:14 | S1 | +| regressions.rs:164:16:164:19 | SelfParam | | regressions.rs:158:5:158:19 | S | +| regressions.rs:164:16:164:19 | SelfParam | T | regressions.rs:160:10:160:10 | T | +| regressions.rs:164:22:164:25 | _rhs | | regressions.rs:158:5:158:19 | S | +| regressions.rs:164:22:164:25 | _rhs | T | regressions.rs:160:10:160:10 | T | +| regressions.rs:164:50:166:9 | { ... } | | regressions.rs:158:5:158:19 | S | +| regressions.rs:164:50:166:9 | { ... } | T | regressions.rs:160:10:160:10 | T | +| regressions.rs:165:13:165:16 | self | | regressions.rs:158:5:158:19 | S | +| regressions.rs:165:13:165:16 | self | T | regressions.rs:160:10:160:10 | T | +| regressions.rs:173:16:173:19 | SelfParam | | regressions.rs:158:5:158:19 | S | +| regressions.rs:173:16:173:19 | SelfParam | T | regressions.rs:169:10:169:10 | T | +| regressions.rs:173:22:173:25 | _rhs | | regressions.rs:169:10:169:10 | T | +| regressions.rs:173:47:175:9 | { ... } | | regressions.rs:158:5:158:19 | S | +| regressions.rs:173:47:175:9 | { ... } | T | regressions.rs:169:10:169:10 | T | +| regressions.rs:174:13:174:16 | self | | regressions.rs:158:5:158:19 | S | +| regressions.rs:174:13:174:16 | self | T | regressions.rs:169:10:169:10 | T | +| regressions.rs:178:14:180:5 | { ... } | | {EXTERNAL LOCATION} | () | inferType | associated_types.rs:5:15:5:18 | SelfParam | | associated_types.rs:1:1:2:21 | Wrapper | | associated_types.rs:5:15:5:18 | SelfParam | A | associated_types.rs:4:6:4:6 | A | @@ -6051,6 +6334,8 @@ inferType | closure.rs:10:18:10:24 | add_one | dyn(Args).T0 | {EXTERNAL LOCATION} | i64 | | closure.rs:10:18:10:24 | add_one | dyn(Output) | {EXTERNAL LOCATION} | i64 | | closure.rs:10:18:10:27 | add_one(...) | | {EXTERNAL LOCATION} | i64 | +| closure.rs:10:25:10:27 | ArgList | | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:10:25:10:27 | ArgList | T0 | {EXTERNAL LOCATION} | i64 | | closure.rs:10:26:10:26 | x | | {EXTERNAL LOCATION} | i64 | | closure.rs:13:13:13:13 | x | | {EXTERNAL LOCATION} | i64 | | closure.rs:13:17:13:34 | ...::default(...) | | {EXTERNAL LOCATION} | i64 | @@ -6070,6 +6355,8 @@ inferType | closure.rs:15:18:15:25 | add_zero | dyn(Args).T0 | {EXTERNAL LOCATION} | i64 | | closure.rs:15:18:15:25 | add_zero | dyn(Output) | {EXTERNAL LOCATION} | i64 | | closure.rs:15:18:15:28 | add_zero(...) | | {EXTERNAL LOCATION} | i64 | +| closure.rs:15:26:15:28 | ArgList | | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:15:26:15:28 | ArgList | T0 | {EXTERNAL LOCATION} | i64 | | closure.rs:15:27:15:27 | x | | {EXTERNAL LOCATION} | i64 | | closure.rs:17:13:17:21 | _get_bool | | {EXTERNAL LOCATION} | dyn Fn | | closure.rs:17:13:17:21 | _get_bool | dyn(Args) | {EXTERNAL LOCATION} | () | @@ -6097,6 +6384,8 @@ inferType | closure.rs:25:18:25:19 | id | dyn(Args).T0 | {EXTERNAL LOCATION} | bool | | closure.rs:25:18:25:19 | id | dyn(Output) | {EXTERNAL LOCATION} | bool | | closure.rs:25:18:25:25 | id(...) | | {EXTERNAL LOCATION} | bool | +| closure.rs:25:20:25:25 | ArgList | | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:25:20:25:25 | ArgList | T0 | {EXTERNAL LOCATION} | bool | | closure.rs:25:21:25:24 | true | | {EXTERNAL LOCATION} | bool | | closure.rs:28:13:28:15 | id2 | | {EXTERNAL LOCATION} | dyn Fn | | closure.rs:28:13:28:15 | id2 | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | @@ -6116,18 +6405,24 @@ inferType | closure.rs:30:25:30:27 | id2 | dyn(Args).T0 | {EXTERNAL LOCATION} | bool | | closure.rs:30:25:30:27 | id2 | dyn(Output) | {EXTERNAL LOCATION} | bool | | closure.rs:30:25:30:32 | id2(...) | | {EXTERNAL LOCATION} | bool | +| closure.rs:30:28:30:32 | ArgList | | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:30:28:30:32 | ArgList | T0 | {EXTERNAL LOCATION} | bool | | closure.rs:30:29:30:31 | arg | | {EXTERNAL LOCATION} | bool | | closure.rs:35:44:35:44 | f | | closure.rs:35:20:35:41 | F | | closure.rs:35:50:37:5 | { ... } | | {EXTERNAL LOCATION} | () | | closure.rs:36:13:36:19 | _return | | {EXTERNAL LOCATION} | i64 | | closure.rs:36:23:36:23 | f | | closure.rs:35:20:35:41 | F | | closure.rs:36:23:36:29 | f(...) | | {EXTERNAL LOCATION} | i64 | +| closure.rs:36:24:36:29 | ArgList | | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:36:24:36:29 | ArgList | T0 | {EXTERNAL LOCATION} | bool | | closure.rs:36:25:36:28 | true | | {EXTERNAL LOCATION} | bool | | closure.rs:39:45:39:45 | f | | closure.rs:39:28:39:42 | F | | closure.rs:39:51:41:5 | { ... } | | {EXTERNAL LOCATION} | () | | closure.rs:40:13:40:19 | _return | | {EXTERNAL LOCATION} | () | | closure.rs:40:23:40:23 | f | | closure.rs:39:28:39:42 | F | | closure.rs:40:23:40:29 | f(...) | | {EXTERNAL LOCATION} | () | +| closure.rs:40:24:40:29 | ArgList | | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:40:24:40:29 | ArgList | T0 | {EXTERNAL LOCATION} | bool | | closure.rs:40:25:40:28 | true | | {EXTERNAL LOCATION} | bool | | closure.rs:43:46:43:46 | f | | closure.rs:43:22:43:43 | F | | closure.rs:43:52:46:5 | { ... } | | {EXTERNAL LOCATION} | () | @@ -6135,74 +6430,77 @@ inferType | closure.rs:44:19:44:36 | ...::default(...) | | {EXTERNAL LOCATION} | bool | | closure.rs:45:9:45:9 | f | | closure.rs:43:22:43:43 | F | | closure.rs:45:9:45:14 | f(...) | | {EXTERNAL LOCATION} | i64 | +| closure.rs:45:10:45:14 | ArgList | | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:45:10:45:14 | ArgList | T0 | {EXTERNAL LOCATION} | bool | | closure.rs:45:11:45:13 | arg | | {EXTERNAL LOCATION} | bool | | closure.rs:48:39:48:39 | f | | closure.rs:48:20:48:36 | F | | closure.rs:48:45:48:45 | a | | closure.rs:48:14:48:14 | A | | closure.rs:48:56:50:5 | { ... } | | closure.rs:48:17:48:17 | B | | closure.rs:49:9:49:9 | f | | closure.rs:48:20:48:36 | F | | closure.rs:49:9:49:12 | f(...) | | closure.rs:48:17:48:17 | B | +| closure.rs:49:10:49:12 | ArgList | | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:49:10:49:12 | ArgList | T0 | closure.rs:48:14:48:14 | A | | closure.rs:49:11:49:11 | a | | closure.rs:48:14:48:14 | A | | closure.rs:52:18:52:18 | f | | closure.rs:52:21:52:43 | impl ... | | closure.rs:52:53:54:5 | { ... } | | {EXTERNAL LOCATION} | i64 | | closure.rs:53:9:53:9 | f | | closure.rs:52:21:52:43 | impl ... | | closure.rs:53:9:53:12 | f(...) | | {EXTERNAL LOCATION} | i64 | +| closure.rs:53:10:53:12 | ArgList | | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:53:10:53:12 | ArgList | T0 | {EXTERNAL LOCATION} | i32 | | closure.rs:53:11:53:11 | 2 | | {EXTERNAL LOCATION} | i32 | -| closure.rs:53:11:53:11 | 2 | | {EXTERNAL LOCATION} | i64 | | closure.rs:56:15:68:5 | { ... } | | {EXTERNAL LOCATION} | () | | closure.rs:57:13:57:13 | f | | {EXTERNAL LOCATION} | dyn Fn | | closure.rs:57:13:57:13 | f | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | | closure.rs:57:13:57:13 | f | dyn(Args).T0 | {EXTERNAL LOCATION} | bool | -| closure.rs:57:13:57:13 | f | dyn(Output) | {EXTERNAL LOCATION} | i32 | | closure.rs:57:13:57:13 | f | dyn(Output) | {EXTERNAL LOCATION} | i64 | | closure.rs:57:17:63:9 | \|...\| ... | | {EXTERNAL LOCATION} | dyn Fn | | closure.rs:57:17:63:9 | \|...\| ... | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | | closure.rs:57:17:63:9 | \|...\| ... | dyn(Args).T0 | {EXTERNAL LOCATION} | bool | -| closure.rs:57:17:63:9 | \|...\| ... | dyn(Output) | {EXTERNAL LOCATION} | i32 | | closure.rs:57:17:63:9 | \|...\| ... | dyn(Output) | {EXTERNAL LOCATION} | i64 | | closure.rs:57:18:57:18 | x | | {EXTERNAL LOCATION} | bool | | closure.rs:57:34:63:9 | { ... } | | {EXTERNAL LOCATION} | i32 | -| closure.rs:57:34:63:9 | { ... } | | {EXTERNAL LOCATION} | i64 | | closure.rs:58:13:62:13 | if x {...} else {...} | | {EXTERNAL LOCATION} | i32 | -| closure.rs:58:13:62:13 | if x {...} else {...} | | {EXTERNAL LOCATION} | i64 | | closure.rs:58:16:58:16 | x | | {EXTERNAL LOCATION} | bool | | closure.rs:58:18:60:13 | { ... } | | {EXTERNAL LOCATION} | i32 | -| closure.rs:58:18:60:13 | { ... } | | {EXTERNAL LOCATION} | i64 | | closure.rs:59:17:59:17 | 1 | | {EXTERNAL LOCATION} | i32 | -| closure.rs:59:17:59:17 | 1 | | {EXTERNAL LOCATION} | i64 | | closure.rs:60:20:62:13 | { ... } | | {EXTERNAL LOCATION} | i32 | -| closure.rs:60:20:62:13 | { ... } | | {EXTERNAL LOCATION} | i64 | | closure.rs:61:17:61:17 | 0 | | {EXTERNAL LOCATION} | i32 | -| closure.rs:61:17:61:17 | 0 | | {EXTERNAL LOCATION} | i64 | -| closure.rs:64:13:64:14 | _r | | {EXTERNAL LOCATION} | i32 | | closure.rs:64:13:64:14 | _r | | {EXTERNAL LOCATION} | i64 | -| closure.rs:64:18:64:31 | apply(...) | | {EXTERNAL LOCATION} | i32 | | closure.rs:64:18:64:31 | apply(...) | | {EXTERNAL LOCATION} | i64 | | closure.rs:64:24:64:24 | f | | {EXTERNAL LOCATION} | dyn Fn | | closure.rs:64:24:64:24 | f | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | | closure.rs:64:24:64:24 | f | dyn(Args).T0 | {EXTERNAL LOCATION} | bool | -| closure.rs:64:24:64:24 | f | dyn(Output) | {EXTERNAL LOCATION} | i32 | | closure.rs:64:24:64:24 | f | dyn(Output) | {EXTERNAL LOCATION} | i64 | | closure.rs:64:27:64:30 | true | | {EXTERNAL LOCATION} | bool | | closure.rs:66:13:66:13 | f | | {EXTERNAL LOCATION} | dyn Fn | | closure.rs:66:13:66:13 | f | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:66:13:66:13 | f | dyn(Args).T0 | {EXTERNAL LOCATION} | i64 | | closure.rs:66:17:66:25 | \|...\| ... | | {EXTERNAL LOCATION} | dyn Fn | | closure.rs:66:17:66:25 | \|...\| ... | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:66:17:66:25 | \|...\| ... | dyn(Args).T0 | {EXTERNAL LOCATION} | i64 | +| closure.rs:66:18:66:18 | x | | {EXTERNAL LOCATION} | i64 | +| closure.rs:66:21:66:21 | x | | {EXTERNAL LOCATION} | i64 | | closure.rs:66:25:66:25 | 1 | | {EXTERNAL LOCATION} | i32 | | closure.rs:67:13:67:15 | _r2 | | {EXTERNAL LOCATION} | i64 | | closure.rs:67:19:67:30 | apply_two(...) | | {EXTERNAL LOCATION} | i64 | | closure.rs:67:29:67:29 | f | | {EXTERNAL LOCATION} | dyn Fn | | closure.rs:67:29:67:29 | f | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:67:29:67:29 | f | dyn(Args).T0 | {EXTERNAL LOCATION} | i64 | | closure.rs:72:47:72:47 | f | | closure.rs:72:20:72:40 | F | | closure.rs:72:53:74:5 | { ... } | | {EXTERNAL LOCATION} | () | | closure.rs:73:13:73:19 | _return | | {EXTERNAL LOCATION} | i64 | | closure.rs:73:23:73:23 | f | | closure.rs:72:20:72:40 | F | | closure.rs:73:23:73:29 | f(...) | | {EXTERNAL LOCATION} | i64 | +| closure.rs:73:24:73:29 | ArgList | | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:73:24:73:29 | ArgList | T0 | {EXTERNAL LOCATION} | bool | | closure.rs:73:25:73:28 | true | | {EXTERNAL LOCATION} | bool | | closure.rs:76:48:76:48 | f | | closure.rs:76:28:76:41 | F | | closure.rs:76:54:78:5 | { ... } | | {EXTERNAL LOCATION} | () | | closure.rs:77:13:77:19 | _return | | {EXTERNAL LOCATION} | () | | closure.rs:77:23:77:23 | f | | closure.rs:76:28:76:41 | F | | closure.rs:77:23:77:29 | f(...) | | {EXTERNAL LOCATION} | () | +| closure.rs:77:24:77:29 | ArgList | | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:77:24:77:29 | ArgList | T0 | {EXTERNAL LOCATION} | bool | | closure.rs:77:25:77:28 | true | | {EXTERNAL LOCATION} | bool | | closure.rs:80:49:80:49 | f | | closure.rs:80:22:80:42 | F | | closure.rs:80:55:83:5 | { ... } | | {EXTERNAL LOCATION} | () | @@ -6210,74 +6508,77 @@ inferType | closure.rs:81:19:81:36 | ...::default(...) | | {EXTERNAL LOCATION} | bool | | closure.rs:82:9:82:9 | f | | closure.rs:80:22:80:42 | F | | closure.rs:82:9:82:14 | f(...) | | {EXTERNAL LOCATION} | i64 | +| closure.rs:82:10:82:14 | ArgList | | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:82:10:82:14 | ArgList | T0 | {EXTERNAL LOCATION} | bool | | closure.rs:82:11:82:13 | arg | | {EXTERNAL LOCATION} | bool | | closure.rs:85:42:85:42 | f | | closure.rs:85:20:85:35 | F | | closure.rs:85:48:85:48 | a | | closure.rs:85:14:85:14 | A | | closure.rs:85:59:87:5 | { ... } | | closure.rs:85:17:85:17 | B | | closure.rs:86:9:86:9 | f | | closure.rs:85:20:85:35 | F | | closure.rs:86:9:86:12 | f(...) | | closure.rs:85:17:85:17 | B | +| closure.rs:86:10:86:12 | ArgList | | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:86:10:86:12 | ArgList | T0 | closure.rs:85:14:85:14 | A | | closure.rs:86:11:86:11 | a | | closure.rs:85:14:85:14 | A | | closure.rs:89:22:89:22 | f | | closure.rs:89:25:89:46 | impl ... | | closure.rs:89:56:91:5 | { ... } | | {EXTERNAL LOCATION} | i64 | | closure.rs:90:9:90:9 | f | | closure.rs:89:25:89:46 | impl ... | | closure.rs:90:9:90:12 | f(...) | | {EXTERNAL LOCATION} | i64 | +| closure.rs:90:10:90:12 | ArgList | | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:90:10:90:12 | ArgList | T0 | {EXTERNAL LOCATION} | i32 | | closure.rs:90:11:90:11 | 2 | | {EXTERNAL LOCATION} | i32 | -| closure.rs:90:11:90:11 | 2 | | {EXTERNAL LOCATION} | i64 | | closure.rs:93:15:105:5 | { ... } | | {EXTERNAL LOCATION} | () | | closure.rs:94:13:94:13 | f | | {EXTERNAL LOCATION} | dyn Fn | | closure.rs:94:13:94:13 | f | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | | closure.rs:94:13:94:13 | f | dyn(Args).T0 | {EXTERNAL LOCATION} | bool | -| closure.rs:94:13:94:13 | f | dyn(Output) | {EXTERNAL LOCATION} | i32 | | closure.rs:94:13:94:13 | f | dyn(Output) | {EXTERNAL LOCATION} | i64 | | closure.rs:94:17:100:9 | \|...\| ... | | {EXTERNAL LOCATION} | dyn Fn | | closure.rs:94:17:100:9 | \|...\| ... | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | | closure.rs:94:17:100:9 | \|...\| ... | dyn(Args).T0 | {EXTERNAL LOCATION} | bool | -| closure.rs:94:17:100:9 | \|...\| ... | dyn(Output) | {EXTERNAL LOCATION} | i32 | | closure.rs:94:17:100:9 | \|...\| ... | dyn(Output) | {EXTERNAL LOCATION} | i64 | | closure.rs:94:18:94:18 | x | | {EXTERNAL LOCATION} | bool | | closure.rs:94:34:100:9 | { ... } | | {EXTERNAL LOCATION} | i32 | -| closure.rs:94:34:100:9 | { ... } | | {EXTERNAL LOCATION} | i64 | | closure.rs:95:13:99:13 | if x {...} else {...} | | {EXTERNAL LOCATION} | i32 | -| closure.rs:95:13:99:13 | if x {...} else {...} | | {EXTERNAL LOCATION} | i64 | | closure.rs:95:16:95:16 | x | | {EXTERNAL LOCATION} | bool | | closure.rs:95:18:97:13 | { ... } | | {EXTERNAL LOCATION} | i32 | -| closure.rs:95:18:97:13 | { ... } | | {EXTERNAL LOCATION} | i64 | | closure.rs:96:17:96:17 | 1 | | {EXTERNAL LOCATION} | i32 | -| closure.rs:96:17:96:17 | 1 | | {EXTERNAL LOCATION} | i64 | | closure.rs:97:20:99:13 | { ... } | | {EXTERNAL LOCATION} | i32 | -| closure.rs:97:20:99:13 | { ... } | | {EXTERNAL LOCATION} | i64 | | closure.rs:98:17:98:17 | 0 | | {EXTERNAL LOCATION} | i32 | -| closure.rs:98:17:98:17 | 0 | | {EXTERNAL LOCATION} | i64 | -| closure.rs:101:13:101:14 | _r | | {EXTERNAL LOCATION} | i32 | | closure.rs:101:13:101:14 | _r | | {EXTERNAL LOCATION} | i64 | -| closure.rs:101:18:101:31 | apply(...) | | {EXTERNAL LOCATION} | i32 | | closure.rs:101:18:101:31 | apply(...) | | {EXTERNAL LOCATION} | i64 | | closure.rs:101:24:101:24 | f | | {EXTERNAL LOCATION} | dyn Fn | | closure.rs:101:24:101:24 | f | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | | closure.rs:101:24:101:24 | f | dyn(Args).T0 | {EXTERNAL LOCATION} | bool | -| closure.rs:101:24:101:24 | f | dyn(Output) | {EXTERNAL LOCATION} | i32 | | closure.rs:101:24:101:24 | f | dyn(Output) | {EXTERNAL LOCATION} | i64 | | closure.rs:101:27:101:30 | true | | {EXTERNAL LOCATION} | bool | | closure.rs:103:13:103:13 | f | | {EXTERNAL LOCATION} | dyn Fn | | closure.rs:103:13:103:13 | f | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:103:13:103:13 | f | dyn(Args).T0 | {EXTERNAL LOCATION} | i64 | | closure.rs:103:17:103:25 | \|...\| ... | | {EXTERNAL LOCATION} | dyn Fn | | closure.rs:103:17:103:25 | \|...\| ... | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:103:17:103:25 | \|...\| ... | dyn(Args).T0 | {EXTERNAL LOCATION} | i64 | +| closure.rs:103:18:103:18 | x | | {EXTERNAL LOCATION} | i64 | +| closure.rs:103:21:103:21 | x | | {EXTERNAL LOCATION} | i64 | | closure.rs:103:25:103:25 | 1 | | {EXTERNAL LOCATION} | i32 | | closure.rs:104:13:104:15 | _r2 | | {EXTERNAL LOCATION} | i64 | | closure.rs:104:19:104:30 | apply_two(...) | | {EXTERNAL LOCATION} | i64 | | closure.rs:104:29:104:29 | f | | {EXTERNAL LOCATION} | dyn Fn | | closure.rs:104:29:104:29 | f | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:104:29:104:29 | f | dyn(Args).T0 | {EXTERNAL LOCATION} | i64 | | closure.rs:109:40:109:40 | f | | closure.rs:109:20:109:37 | F | | closure.rs:109:46:111:5 | { ... } | | {EXTERNAL LOCATION} | () | | closure.rs:110:13:110:19 | _return | | {EXTERNAL LOCATION} | i64 | | closure.rs:110:23:110:23 | f | | closure.rs:109:20:109:37 | F | | closure.rs:110:23:110:29 | f(...) | | {EXTERNAL LOCATION} | i64 | +| closure.rs:110:24:110:29 | ArgList | | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:110:24:110:29 | ArgList | T0 | {EXTERNAL LOCATION} | bool | | closure.rs:110:25:110:28 | true | | {EXTERNAL LOCATION} | bool | | closure.rs:113:41:113:41 | f | | closure.rs:113:28:113:38 | F | | closure.rs:113:47:115:5 | { ... } | | {EXTERNAL LOCATION} | () | | closure.rs:114:13:114:19 | _return | | {EXTERNAL LOCATION} | () | | closure.rs:114:23:114:23 | f | | closure.rs:113:28:113:38 | F | | closure.rs:114:23:114:29 | f(...) | | {EXTERNAL LOCATION} | () | +| closure.rs:114:24:114:29 | ArgList | | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:114:24:114:29 | ArgList | T0 | {EXTERNAL LOCATION} | bool | | closure.rs:114:25:114:28 | true | | {EXTERNAL LOCATION} | bool | | closure.rs:117:42:117:42 | f | | closure.rs:117:22:117:39 | F | | closure.rs:117:48:120:5 | { ... } | | {EXTERNAL LOCATION} | () | @@ -6285,63 +6586,62 @@ inferType | closure.rs:118:19:118:36 | ...::default(...) | | {EXTERNAL LOCATION} | bool | | closure.rs:119:9:119:9 | f | | closure.rs:117:22:117:39 | F | | closure.rs:119:9:119:14 | f(...) | | {EXTERNAL LOCATION} | i64 | +| closure.rs:119:10:119:14 | ArgList | | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:119:10:119:14 | ArgList | T0 | {EXTERNAL LOCATION} | bool | | closure.rs:119:11:119:13 | arg | | {EXTERNAL LOCATION} | bool | | closure.rs:122:35:122:35 | f | | closure.rs:122:20:122:32 | F | | closure.rs:122:41:122:41 | a | | closure.rs:122:14:122:14 | A | | closure.rs:122:52:124:5 | { ... } | | closure.rs:122:17:122:17 | B | | closure.rs:123:9:123:9 | f | | closure.rs:122:20:122:32 | F | | closure.rs:123:9:123:12 | f(...) | | closure.rs:122:17:122:17 | B | +| closure.rs:123:10:123:12 | ArgList | | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:123:10:123:12 | ArgList | T0 | closure.rs:122:14:122:14 | A | | closure.rs:123:11:123:11 | a | | closure.rs:122:14:122:14 | A | | closure.rs:126:18:126:18 | f | | closure.rs:126:21:126:39 | impl ... | | closure.rs:126:49:128:5 | { ... } | | {EXTERNAL LOCATION} | i64 | | closure.rs:127:9:127:9 | f | | closure.rs:126:21:126:39 | impl ... | | closure.rs:127:9:127:12 | f(...) | | {EXTERNAL LOCATION} | i64 | +| closure.rs:127:10:127:12 | ArgList | | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:127:10:127:12 | ArgList | T0 | {EXTERNAL LOCATION} | i32 | | closure.rs:127:11:127:11 | 2 | | {EXTERNAL LOCATION} | i32 | -| closure.rs:127:11:127:11 | 2 | | {EXTERNAL LOCATION} | i64 | | closure.rs:130:15:142:5 | { ... } | | {EXTERNAL LOCATION} | () | | closure.rs:131:13:131:13 | f | | {EXTERNAL LOCATION} | dyn Fn | | closure.rs:131:13:131:13 | f | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | | closure.rs:131:13:131:13 | f | dyn(Args).T0 | {EXTERNAL LOCATION} | bool | -| closure.rs:131:13:131:13 | f | dyn(Output) | {EXTERNAL LOCATION} | i32 | | closure.rs:131:13:131:13 | f | dyn(Output) | {EXTERNAL LOCATION} | i64 | | closure.rs:131:17:137:9 | \|...\| ... | | {EXTERNAL LOCATION} | dyn Fn | | closure.rs:131:17:137:9 | \|...\| ... | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | | closure.rs:131:17:137:9 | \|...\| ... | dyn(Args).T0 | {EXTERNAL LOCATION} | bool | -| closure.rs:131:17:137:9 | \|...\| ... | dyn(Output) | {EXTERNAL LOCATION} | i32 | | closure.rs:131:17:137:9 | \|...\| ... | dyn(Output) | {EXTERNAL LOCATION} | i64 | | closure.rs:131:18:131:18 | x | | {EXTERNAL LOCATION} | bool | | closure.rs:131:34:137:9 | { ... } | | {EXTERNAL LOCATION} | i32 | -| closure.rs:131:34:137:9 | { ... } | | {EXTERNAL LOCATION} | i64 | | closure.rs:132:13:136:13 | if x {...} else {...} | | {EXTERNAL LOCATION} | i32 | -| closure.rs:132:13:136:13 | if x {...} else {...} | | {EXTERNAL LOCATION} | i64 | | closure.rs:132:16:132:16 | x | | {EXTERNAL LOCATION} | bool | | closure.rs:132:18:134:13 | { ... } | | {EXTERNAL LOCATION} | i32 | -| closure.rs:132:18:134:13 | { ... } | | {EXTERNAL LOCATION} | i64 | | closure.rs:133:17:133:17 | 1 | | {EXTERNAL LOCATION} | i32 | -| closure.rs:133:17:133:17 | 1 | | {EXTERNAL LOCATION} | i64 | | closure.rs:134:20:136:13 | { ... } | | {EXTERNAL LOCATION} | i32 | -| closure.rs:134:20:136:13 | { ... } | | {EXTERNAL LOCATION} | i64 | | closure.rs:135:17:135:17 | 0 | | {EXTERNAL LOCATION} | i32 | -| closure.rs:135:17:135:17 | 0 | | {EXTERNAL LOCATION} | i64 | -| closure.rs:138:13:138:14 | _r | | {EXTERNAL LOCATION} | i32 | | closure.rs:138:13:138:14 | _r | | {EXTERNAL LOCATION} | i64 | -| closure.rs:138:18:138:31 | apply(...) | | {EXTERNAL LOCATION} | i32 | | closure.rs:138:18:138:31 | apply(...) | | {EXTERNAL LOCATION} | i64 | | closure.rs:138:24:138:24 | f | | {EXTERNAL LOCATION} | dyn Fn | | closure.rs:138:24:138:24 | f | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | | closure.rs:138:24:138:24 | f | dyn(Args).T0 | {EXTERNAL LOCATION} | bool | -| closure.rs:138:24:138:24 | f | dyn(Output) | {EXTERNAL LOCATION} | i32 | | closure.rs:138:24:138:24 | f | dyn(Output) | {EXTERNAL LOCATION} | i64 | | closure.rs:138:27:138:30 | true | | {EXTERNAL LOCATION} | bool | | closure.rs:140:13:140:13 | f | | {EXTERNAL LOCATION} | dyn Fn | | closure.rs:140:13:140:13 | f | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:140:13:140:13 | f | dyn(Args).T0 | {EXTERNAL LOCATION} | i64 | | closure.rs:140:17:140:25 | \|...\| ... | | {EXTERNAL LOCATION} | dyn Fn | | closure.rs:140:17:140:25 | \|...\| ... | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:140:17:140:25 | \|...\| ... | dyn(Args).T0 | {EXTERNAL LOCATION} | i64 | +| closure.rs:140:18:140:18 | x | | {EXTERNAL LOCATION} | i64 | +| closure.rs:140:21:140:21 | x | | {EXTERNAL LOCATION} | i64 | | closure.rs:140:25:140:25 | 1 | | {EXTERNAL LOCATION} | i32 | | closure.rs:141:13:141:15 | _r2 | | {EXTERNAL LOCATION} | i64 | | closure.rs:141:19:141:30 | apply_two(...) | | {EXTERNAL LOCATION} | i64 | | closure.rs:141:29:141:29 | f | | {EXTERNAL LOCATION} | dyn Fn | | closure.rs:141:29:141:29 | f | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:141:29:141:29 | f | dyn(Args).T0 | {EXTERNAL LOCATION} | i64 | | closure.rs:146:54:146:54 | f | | {EXTERNAL LOCATION} | Box | | closure.rs:146:54:146:54 | f | A | {EXTERNAL LOCATION} | Global | | closure.rs:146:54:146:54 | f | T | closure.rs:146:26:146:51 | F | @@ -6351,7 +6651,8 @@ inferType | closure.rs:147:9:147:9 | f | A | {EXTERNAL LOCATION} | Global | | closure.rs:147:9:147:9 | f | T | closure.rs:146:26:146:51 | F | | closure.rs:147:9:147:14 | f(...) | | closure.rs:146:23:146:23 | B | -| closure.rs:147:9:147:14 | f(...) | | {EXTERNAL LOCATION} | F::Output[FnOnce] | +| closure.rs:147:10:147:14 | ArgList | | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:147:10:147:14 | ArgList | T0 | closure.rs:146:20:146:20 | A | | closure.rs:147:11:147:13 | arg | | closure.rs:146:20:146:20 | A | | closure.rs:150:30:150:30 | f | | {EXTERNAL LOCATION} | Box | | closure.rs:150:30:150:30 | f | A | {EXTERNAL LOCATION} | Global | @@ -6385,6 +6686,292 @@ inferType | closure.rs:152:41:152:41 | _ | | {EXTERNAL LOCATION} | i64 | | closure.rs:152:49:152:52 | true | | {EXTERNAL LOCATION} | bool | | closure.rs:152:56:152:56 | 3 | | {EXTERNAL LOCATION} | i32 | +| closure.rs:157:34:157:34 | f | | closure.rs:157:15:157:31 | F | +| closure.rs:157:40:157:40 | a | | {EXTERNAL LOCATION} | i64 | +| closure.rs:157:55:159:5 | { ... } | | {EXTERNAL LOCATION} | i64 | +| closure.rs:158:9:158:9 | f | | closure.rs:157:15:157:31 | F | +| closure.rs:158:9:158:12 | f(...) | | {EXTERNAL LOCATION} | i64 | +| closure.rs:158:10:158:12 | ArgList | | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:158:10:158:12 | ArgList | T0 | {EXTERNAL LOCATION} | i64 | +| closure.rs:158:11:158:11 | a | | {EXTERNAL LOCATION} | i64 | +| closure.rs:161:15:161:15 | f | | closure.rs:161:18:161:36 | impl ... | +| closure.rs:161:39:161:39 | a | | {EXTERNAL LOCATION} | i64 | +| closure.rs:161:54:163:5 | { ... } | | {EXTERNAL LOCATION} | i64 | +| closure.rs:162:9:162:9 | f | | closure.rs:161:18:161:36 | impl ... | +| closure.rs:162:9:162:12 | f(...) | | {EXTERNAL LOCATION} | i64 | +| closure.rs:162:10:162:12 | ArgList | | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:162:10:162:12 | ArgList | T0 | {EXTERNAL LOCATION} | i64 | +| closure.rs:162:11:162:11 | a | | {EXTERNAL LOCATION} | i64 | +| closure.rs:165:15:165:15 | f | | {EXTERNAL LOCATION} | & | +| closure.rs:165:15:165:15 | f | TRef | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:165:15:165:15 | f | TRef.dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:165:15:165:15 | f | TRef.dyn(Args).T0 | {EXTERNAL LOCATION} | i64 | +| closure.rs:165:15:165:15 | f | TRef.dyn(Output) | {EXTERNAL LOCATION} | i64 | +| closure.rs:165:39:165:39 | a | | {EXTERNAL LOCATION} | i64 | +| closure.rs:165:54:167:5 | { ... } | | {EXTERNAL LOCATION} | i64 | +| closure.rs:166:9:166:9 | f | | {EXTERNAL LOCATION} | & | +| closure.rs:166:9:166:9 | f | TRef | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:166:9:166:9 | f | TRef.dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:166:9:166:9 | f | TRef.dyn(Args).T0 | {EXTERNAL LOCATION} | i64 | +| closure.rs:166:9:166:9 | f | TRef.dyn(Output) | {EXTERNAL LOCATION} | i64 | +| closure.rs:166:9:166:12 | f(...) | | {EXTERNAL LOCATION} | i64 | +| closure.rs:166:10:166:12 | ArgList | | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:166:10:166:12 | ArgList | T0 | {EXTERNAL LOCATION} | i64 | +| closure.rs:166:11:166:11 | a | | {EXTERNAL LOCATION} | i64 | +| closure.rs:169:41:169:41 | f | | closure.rs:169:15:169:34 | F | +| closure.rs:169:47:169:47 | a | | {EXTERNAL LOCATION} | i64 | +| closure.rs:169:62:171:5 | { ... } | | {EXTERNAL LOCATION} | i64 | +| closure.rs:170:9:170:9 | f | | closure.rs:169:15:169:34 | F | +| closure.rs:170:9:170:12 | f(...) | | {EXTERNAL LOCATION} | i64 | +| closure.rs:170:10:170:12 | ArgList | | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:170:10:170:12 | ArgList | T0 | {EXTERNAL LOCATION} | i64 | +| closure.rs:170:11:170:11 | a | | {EXTERNAL LOCATION} | i64 | +| closure.rs:173:15:173:15 | f | | {EXTERNAL LOCATION} | &mut | +| closure.rs:173:15:173:15 | f | TRefMut | {EXTERNAL LOCATION} | dyn FnMut | +| closure.rs:173:15:173:15 | f | TRefMut.dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:173:15:173:15 | f | TRefMut.dyn(Args).T0 | {EXTERNAL LOCATION} | i64 | +| closure.rs:173:15:173:15 | f | TRefMut.dyn(Output) | {EXTERNAL LOCATION} | i64 | +| closure.rs:173:46:173:46 | a | | {EXTERNAL LOCATION} | i64 | +| closure.rs:173:61:175:5 | { ... } | | {EXTERNAL LOCATION} | i64 | +| closure.rs:174:9:174:9 | f | | {EXTERNAL LOCATION} | &mut | +| closure.rs:174:9:174:9 | f | TRefMut | {EXTERNAL LOCATION} | dyn FnMut | +| closure.rs:174:9:174:9 | f | TRefMut.dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:174:9:174:9 | f | TRefMut.dyn(Args).T0 | {EXTERNAL LOCATION} | i64 | +| closure.rs:174:9:174:9 | f | TRefMut.dyn(Output) | {EXTERNAL LOCATION} | i64 | +| closure.rs:174:9:174:12 | f(...) | | {EXTERNAL LOCATION} | i64 | +| closure.rs:174:10:174:12 | ArgList | | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:174:10:174:12 | ArgList | T0 | {EXTERNAL LOCATION} | i64 | +| closure.rs:174:11:174:11 | a | | {EXTERNAL LOCATION} | i64 | +| closure.rs:177:18:177:18 | f | | closure.rs:177:21:177:37 | impl ... | +| closure.rs:177:40:177:40 | a | | closure.rs:177:15:177:15 | T | +| closure.rs:177:53:179:5 | { ... } | | {EXTERNAL LOCATION} | i64 | +| closure.rs:178:9:178:9 | f | | closure.rs:177:21:177:37 | impl ... | +| closure.rs:178:9:178:12 | f(...) | | {EXTERNAL LOCATION} | i64 | +| closure.rs:178:10:178:12 | ArgList | | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:178:10:178:12 | ArgList | T0 | closure.rs:177:15:177:15 | T | +| closure.rs:178:11:178:11 | a | | closure.rs:177:15:177:15 | T | +| closure.rs:181:42:181:42 | f | | closure.rs:181:18:181:35 | F | +| closure.rs:181:48:181:48 | a | | closure.rs:181:15:181:15 | T | +| closure.rs:181:61:183:5 | { ... } | | {EXTERNAL LOCATION} | i64 | +| closure.rs:182:9:182:9 | f | | closure.rs:181:18:181:35 | F | +| closure.rs:182:9:182:12 | f(...) | | {EXTERNAL LOCATION} | i64 | +| closure.rs:182:10:182:12 | ArgList | | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:182:10:182:12 | ArgList | T0 | closure.rs:181:15:181:15 | T | +| closure.rs:182:11:182:11 | a | | closure.rs:181:15:181:15 | T | +| closure.rs:185:15:206:5 | { ... } | | {EXTERNAL LOCATION} | () | +| closure.rs:186:13:186:13 | f | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:186:13:186:13 | f | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:186:13:186:13 | f | dyn(Args).T0 | {EXTERNAL LOCATION} | i64 | +| closure.rs:186:13:186:13 | f | dyn(Output) | {EXTERNAL LOCATION} | i64 | +| closure.rs:186:17:186:21 | \|...\| x | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:186:17:186:21 | \|...\| x | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:186:17:186:21 | \|...\| x | dyn(Args).T0 | {EXTERNAL LOCATION} | i64 | +| closure.rs:186:17:186:21 | \|...\| x | dyn(Output) | {EXTERNAL LOCATION} | i64 | +| closure.rs:186:18:186:18 | x | | {EXTERNAL LOCATION} | i64 | +| closure.rs:186:21:186:21 | x | | {EXTERNAL LOCATION} | i64 | +| closure.rs:187:13:187:14 | _r | | {EXTERNAL LOCATION} | i64 | +| closure.rs:187:18:187:32 | apply1(...) | | {EXTERNAL LOCATION} | i64 | +| closure.rs:187:25:187:25 | f | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:187:25:187:25 | f | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:187:25:187:25 | f | dyn(Args).T0 | {EXTERNAL LOCATION} | i64 | +| closure.rs:187:25:187:25 | f | dyn(Output) | {EXTERNAL LOCATION} | i64 | +| closure.rs:187:28:187:31 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| closure.rs:189:13:189:13 | f | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:189:13:189:13 | f | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:189:13:189:13 | f | dyn(Args).T0 | {EXTERNAL LOCATION} | i64 | +| closure.rs:189:13:189:13 | f | dyn(Output) | {EXTERNAL LOCATION} | i64 | +| closure.rs:189:17:189:21 | \|...\| x | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:189:17:189:21 | \|...\| x | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:189:17:189:21 | \|...\| x | dyn(Args).T0 | {EXTERNAL LOCATION} | i64 | +| closure.rs:189:17:189:21 | \|...\| x | dyn(Output) | {EXTERNAL LOCATION} | i64 | +| closure.rs:189:18:189:18 | x | | {EXTERNAL LOCATION} | i64 | +| closure.rs:189:21:189:21 | x | | {EXTERNAL LOCATION} | i64 | +| closure.rs:190:13:190:14 | _r | | {EXTERNAL LOCATION} | i64 | +| closure.rs:190:18:190:32 | apply2(...) | | {EXTERNAL LOCATION} | i64 | +| closure.rs:190:25:190:25 | f | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:190:25:190:25 | f | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:190:25:190:25 | f | dyn(Args).T0 | {EXTERNAL LOCATION} | i64 | +| closure.rs:190:25:190:25 | f | dyn(Output) | {EXTERNAL LOCATION} | i64 | +| closure.rs:190:28:190:31 | 2i64 | | {EXTERNAL LOCATION} | i64 | +| closure.rs:192:13:192:13 | f | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:192:13:192:13 | f | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:192:13:192:13 | f | dyn(Args).T0 | {EXTERNAL LOCATION} | i64 | +| closure.rs:192:13:192:13 | f | dyn(Output) | {EXTERNAL LOCATION} | i64 | +| closure.rs:192:17:192:21 | \|...\| x | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:192:17:192:21 | \|...\| x | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:192:17:192:21 | \|...\| x | dyn(Args).T0 | {EXTERNAL LOCATION} | i64 | +| closure.rs:192:17:192:21 | \|...\| x | dyn(Output) | {EXTERNAL LOCATION} | i64 | +| closure.rs:192:18:192:18 | x | | {EXTERNAL LOCATION} | i64 | +| closure.rs:192:21:192:21 | x | | {EXTERNAL LOCATION} | i64 | +| closure.rs:193:13:193:14 | _r | | {EXTERNAL LOCATION} | i64 | +| closure.rs:193:18:193:33 | apply3(...) | | {EXTERNAL LOCATION} | i64 | +| closure.rs:193:25:193:26 | &f | | {EXTERNAL LOCATION} | & | +| closure.rs:193:25:193:26 | &f | TRef | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:193:25:193:26 | &f | TRef.dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:193:25:193:26 | &f | TRef.dyn(Args).T0 | {EXTERNAL LOCATION} | i64 | +| closure.rs:193:25:193:26 | &f | TRef.dyn(Output) | {EXTERNAL LOCATION} | i64 | +| closure.rs:193:26:193:26 | f | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:193:26:193:26 | f | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:193:26:193:26 | f | dyn(Args).T0 | {EXTERNAL LOCATION} | i64 | +| closure.rs:193:26:193:26 | f | dyn(Output) | {EXTERNAL LOCATION} | i64 | +| closure.rs:193:29:193:32 | 3i64 | | {EXTERNAL LOCATION} | i64 | +| closure.rs:195:13:195:13 | f | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:195:13:195:13 | f | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:195:13:195:13 | f | dyn(Args).T0 | {EXTERNAL LOCATION} | i64 | +| closure.rs:195:13:195:13 | f | dyn(Output) | {EXTERNAL LOCATION} | i64 | +| closure.rs:195:17:195:21 | \|...\| x | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:195:17:195:21 | \|...\| x | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:195:17:195:21 | \|...\| x | dyn(Args).T0 | {EXTERNAL LOCATION} | i64 | +| closure.rs:195:17:195:21 | \|...\| x | dyn(Output) | {EXTERNAL LOCATION} | i64 | +| closure.rs:195:18:195:18 | x | | {EXTERNAL LOCATION} | i64 | +| closure.rs:195:21:195:21 | x | | {EXTERNAL LOCATION} | i64 | +| closure.rs:196:13:196:14 | _r | | {EXTERNAL LOCATION} | i64 | +| closure.rs:196:18:196:32 | apply4(...) | | {EXTERNAL LOCATION} | i64 | +| closure.rs:196:25:196:25 | f | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:196:25:196:25 | f | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:196:25:196:25 | f | dyn(Args).T0 | {EXTERNAL LOCATION} | i64 | +| closure.rs:196:25:196:25 | f | dyn(Output) | {EXTERNAL LOCATION} | i64 | +| closure.rs:196:28:196:31 | 4i64 | | {EXTERNAL LOCATION} | i64 | +| closure.rs:198:17:198:17 | f | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:198:17:198:17 | f | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:198:21:198:25 | \|...\| x | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:198:21:198:25 | \|...\| x | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:199:13:199:14 | _r | | {EXTERNAL LOCATION} | i64 | +| closure.rs:199:18:199:37 | apply5(...) | | {EXTERNAL LOCATION} | i64 | +| closure.rs:199:25:199:30 | &mut f | | {EXTERNAL LOCATION} | &mut | +| closure.rs:199:25:199:30 | &mut f | TRefMut | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:199:25:199:30 | &mut f | TRefMut.dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:199:30:199:30 | f | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:199:30:199:30 | f | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:199:33:199:36 | 5i64 | | {EXTERNAL LOCATION} | i64 | +| closure.rs:201:13:201:13 | f | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:201:13:201:13 | f | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:201:13:201:13 | f | dyn(Args).T0 | {EXTERNAL LOCATION} | i64 | +| closure.rs:201:13:201:13 | f | dyn(Output) | {EXTERNAL LOCATION} | i64 | +| closure.rs:201:17:201:21 | \|...\| x | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:201:17:201:21 | \|...\| x | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:201:17:201:21 | \|...\| x | dyn(Args).T0 | {EXTERNAL LOCATION} | i64 | +| closure.rs:201:17:201:21 | \|...\| x | dyn(Output) | {EXTERNAL LOCATION} | i64 | +| closure.rs:201:18:201:18 | x | | {EXTERNAL LOCATION} | i64 | +| closure.rs:201:21:201:21 | x | | {EXTERNAL LOCATION} | i64 | +| closure.rs:202:13:202:14 | _r | | {EXTERNAL LOCATION} | i64 | +| closure.rs:202:18:202:32 | apply6(...) | | {EXTERNAL LOCATION} | i64 | +| closure.rs:202:25:202:25 | f | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:202:25:202:25 | f | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:202:25:202:25 | f | dyn(Args).T0 | {EXTERNAL LOCATION} | i64 | +| closure.rs:202:25:202:25 | f | dyn(Output) | {EXTERNAL LOCATION} | i64 | +| closure.rs:202:28:202:31 | 6i64 | | {EXTERNAL LOCATION} | i64 | +| closure.rs:204:13:204:13 | f | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:204:13:204:13 | f | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:204:13:204:13 | f | dyn(Args).T0 | {EXTERNAL LOCATION} | i64 | +| closure.rs:204:13:204:13 | f | dyn(Output) | {EXTERNAL LOCATION} | i64 | +| closure.rs:204:17:204:21 | \|...\| x | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:204:17:204:21 | \|...\| x | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:204:17:204:21 | \|...\| x | dyn(Args).T0 | {EXTERNAL LOCATION} | i64 | +| closure.rs:204:17:204:21 | \|...\| x | dyn(Output) | {EXTERNAL LOCATION} | i64 | +| closure.rs:204:18:204:18 | x | | {EXTERNAL LOCATION} | i64 | +| closure.rs:204:21:204:21 | x | | {EXTERNAL LOCATION} | i64 | +| closure.rs:205:13:205:14 | _r | | {EXTERNAL LOCATION} | i64 | +| closure.rs:205:18:205:32 | apply7(...) | | {EXTERNAL LOCATION} | i64 | +| closure.rs:205:25:205:25 | f | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:205:25:205:25 | f | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:205:25:205:25 | f | dyn(Args).T0 | {EXTERNAL LOCATION} | i64 | +| closure.rs:205:25:205:25 | f | dyn(Output) | {EXTERNAL LOCATION} | i64 | +| closure.rs:205:28:205:31 | 7i64 | | {EXTERNAL LOCATION} | i64 | +| closure.rs:217:18:217:22 | SelfParam | | {EXTERNAL LOCATION} | & | +| closure.rs:217:18:217:22 | SelfParam | TRef | closure.rs:212:5:212:19 | S | +| closure.rs:217:18:217:22 | SelfParam | TRef.T | closure.rs:214:10:214:10 | T | +| closure.rs:217:42:219:9 | { ... } | | {EXTERNAL LOCATION} | & | +| closure.rs:217:42:219:9 | { ... } | TRef | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:217:42:219:9 | { ... } | TRef.dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:217:42:219:9 | { ... } | TRef.dyn(Args).T0 | closure.rs:214:10:214:10 | T | +| closure.rs:217:42:219:9 | { ... } | TRef.dyn(Output) | {EXTERNAL LOCATION} | bool | +| closure.rs:218:13:218:22 | &... | | {EXTERNAL LOCATION} | & | +| closure.rs:218:13:218:22 | &... | TRef | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:218:13:218:22 | &... | TRef.dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:218:13:218:22 | &... | TRef.dyn(Args).T0 | closure.rs:214:10:214:10 | T | +| closure.rs:218:13:218:22 | &... | TRef.dyn(Output) | {EXTERNAL LOCATION} | bool | +| closure.rs:218:14:218:22 | \|...\| false | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:218:14:218:22 | \|...\| false | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:218:14:218:22 | \|...\| false | dyn(Args).T0 | closure.rs:214:10:214:10 | T | +| closure.rs:218:14:218:22 | \|...\| false | dyn(Output) | {EXTERNAL LOCATION} | bool | +| closure.rs:218:15:218:15 | _ | | closure.rs:214:10:214:10 | T | +| closure.rs:218:18:218:22 | false | | {EXTERNAL LOCATION} | bool | +| closure.rs:222:19:248:5 | { ... } | | {EXTERNAL LOCATION} | () | +| closure.rs:223:13:223:13 | x | | {EXTERNAL LOCATION} | i64 | +| closure.rs:223:17:223:20 | 0i64 | | {EXTERNAL LOCATION} | i64 | +| closure.rs:224:13:224:13 | v | | {EXTERNAL LOCATION} | i64 | +| closure.rs:224:17:224:34 | ...::default(...) | | {EXTERNAL LOCATION} | i64 | +| closure.rs:225:13:225:13 | s | | closure.rs:212:5:212:19 | S | +| closure.rs:225:13:225:13 | s | T | {EXTERNAL LOCATION} | i64 | +| closure.rs:225:17:225:20 | S(...) | | closure.rs:212:5:212:19 | S | +| closure.rs:225:17:225:20 | S(...) | T | {EXTERNAL LOCATION} | i64 | +| closure.rs:225:19:225:19 | v | | {EXTERNAL LOCATION} | i64 | +| closure.rs:226:13:226:16 | _ret | | {EXTERNAL LOCATION} | bool | +| closure.rs:226:20:226:20 | s | | closure.rs:212:5:212:19 | S | +| closure.rs:226:20:226:20 | s | T | {EXTERNAL LOCATION} | i64 | +| closure.rs:226:20:226:23 | s(...) | | {EXTERNAL LOCATION} | bool | +| closure.rs:226:21:226:23 | ArgList | | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:226:21:226:23 | ArgList | T0 | {EXTERNAL LOCATION} | i64 | +| closure.rs:226:22:226:22 | x | | {EXTERNAL LOCATION} | i64 | +| closure.rs:228:13:228:13 | x | | {EXTERNAL LOCATION} | i32 | +| closure.rs:228:17:228:20 | 0i32 | | {EXTERNAL LOCATION} | i32 | +| closure.rs:229:13:229:13 | v | | {EXTERNAL LOCATION} | i32 | +| closure.rs:229:17:229:34 | ...::default(...) | | {EXTERNAL LOCATION} | i32 | +| closure.rs:230:13:230:13 | s | | closure.rs:212:5:212:19 | S | +| closure.rs:230:13:230:13 | s | T | {EXTERNAL LOCATION} | i32 | +| closure.rs:230:17:230:20 | S(...) | | closure.rs:212:5:212:19 | S | +| closure.rs:230:17:230:20 | S(...) | T | {EXTERNAL LOCATION} | i32 | +| closure.rs:230:19:230:19 | v | | {EXTERNAL LOCATION} | i32 | +| closure.rs:231:13:231:16 | _ret | | {EXTERNAL LOCATION} | bool | +| closure.rs:231:20:231:20 | s | | closure.rs:212:5:212:19 | S | +| closure.rs:231:20:231:20 | s | T | {EXTERNAL LOCATION} | i32 | +| closure.rs:231:20:231:23 | s(...) | | {EXTERNAL LOCATION} | bool | +| closure.rs:231:21:231:23 | ArgList | | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:231:21:231:23 | ArgList | T0 | {EXTERNAL LOCATION} | i32 | +| closure.rs:231:22:231:22 | x | | {EXTERNAL LOCATION} | i32 | +| closure.rs:232:13:232:17 | s_ref | | {EXTERNAL LOCATION} | & | +| closure.rs:232:13:232:17 | s_ref | TRef | closure.rs:212:5:212:19 | S | +| closure.rs:232:13:232:17 | s_ref | TRef.T | {EXTERNAL LOCATION} | i32 | +| closure.rs:232:21:232:22 | &s | | {EXTERNAL LOCATION} | & | +| closure.rs:232:21:232:22 | &s | TRef | closure.rs:212:5:212:19 | S | +| closure.rs:232:21:232:22 | &s | TRef.T | {EXTERNAL LOCATION} | i32 | +| closure.rs:232:22:232:22 | s | | closure.rs:212:5:212:19 | S | +| closure.rs:232:22:232:22 | s | T | {EXTERNAL LOCATION} | i32 | +| closure.rs:240:20:240:24 | s_ref | | {EXTERNAL LOCATION} | & | +| closure.rs:240:20:240:24 | s_ref | TRef | closure.rs:212:5:212:19 | S | +| closure.rs:240:20:240:24 | s_ref | TRef.T | {EXTERNAL LOCATION} | i32 | +| closure.rs:240:25:240:27 | ArgList | | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:240:25:240:27 | ArgList | T0 | {EXTERNAL LOCATION} | i32 | +| closure.rs:240:26:240:26 | x | | {EXTERNAL LOCATION} | i32 | +| closure.rs:246:13:246:13 | c | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:246:13:246:13 | c | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:246:13:246:13 | c | dyn(Args).T0 | {EXTERNAL LOCATION} | i32 | +| closure.rs:246:13:246:13 | c | dyn(Output) | {EXTERNAL LOCATION} | i32 | +| closure.rs:246:17:246:21 | \|...\| x | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:246:17:246:21 | \|...\| x | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:246:17:246:21 | \|...\| x | dyn(Args).T0 | {EXTERNAL LOCATION} | i32 | +| closure.rs:246:17:246:21 | \|...\| x | dyn(Output) | {EXTERNAL LOCATION} | i32 | +| closure.rs:246:18:246:18 | x | | {EXTERNAL LOCATION} | i32 | +| closure.rs:246:21:246:21 | x | | {EXTERNAL LOCATION} | i32 | +| closure.rs:247:9:247:12 | (...) | | {EXTERNAL LOCATION} | & | +| closure.rs:247:9:247:12 | (...) | TRef | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:247:9:247:12 | (...) | TRef.dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:247:9:247:12 | (...) | TRef.dyn(Args).T0 | {EXTERNAL LOCATION} | i32 | +| closure.rs:247:9:247:12 | (...) | TRef.dyn(Output) | {EXTERNAL LOCATION} | i32 | +| closure.rs:247:9:247:15 | ...(...) | | {EXTERNAL LOCATION} | i32 | +| closure.rs:247:10:247:11 | &c | | {EXTERNAL LOCATION} | & | +| closure.rs:247:10:247:11 | &c | TRef | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:247:10:247:11 | &c | TRef.dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:247:10:247:11 | &c | TRef.dyn(Args).T0 | {EXTERNAL LOCATION} | i32 | +| closure.rs:247:10:247:11 | &c | TRef.dyn(Output) | {EXTERNAL LOCATION} | i32 | +| closure.rs:247:11:247:11 | c | | {EXTERNAL LOCATION} | dyn Fn | +| closure.rs:247:11:247:11 | c | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:247:11:247:11 | c | dyn(Args).T0 | {EXTERNAL LOCATION} | i32 | +| closure.rs:247:11:247:11 | c | dyn(Output) | {EXTERNAL LOCATION} | i32 | +| closure.rs:247:13:247:15 | ArgList | | {EXTERNAL LOCATION} | (T_1) | +| closure.rs:247:13:247:15 | ArgList | T0 | {EXTERNAL LOCATION} | i32 | +| closure.rs:247:14:247:14 | x | | {EXTERNAL LOCATION} | i32 | | dereference.rs:13:14:13:18 | SelfParam | | {EXTERNAL LOCATION} | & | | dereference.rs:13:14:13:18 | SelfParam | TRef | dereference.rs:5:1:7:1 | MyIntPointer | | dereference.rs:13:29:15:5 | { ... } | | {EXTERNAL LOCATION} | & | @@ -9458,14 +10045,21 @@ inferType | main.rs:1341:28:1341:41 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | | main.rs:1341:28:1341:41 | ...::Ok(...) | T | main.rs:1317:5:1318:14 | S1 | | main.rs:1341:39:1341:40 | S1 | | main.rs:1317:5:1318:14 | S1 | +| main.rs:1343:13:1343:13 | y | | main.rs:1317:5:1318:14 | S1 | | main.rs:1343:17:1343:17 | x | | {EXTERNAL LOCATION} | Result | | main.rs:1343:17:1343:17 | x | T | {EXTERNAL LOCATION} | Result | | main.rs:1343:17:1343:17 | x | T.T | main.rs:1317:5:1318:14 | S1 | | main.rs:1343:17:1343:18 | TryExpr | | {EXTERNAL LOCATION} | Result | | main.rs:1343:17:1343:18 | TryExpr | T | main.rs:1317:5:1318:14 | S1 | | main.rs:1343:17:1343:29 | ... .map(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1343:17:1343:29 | ... .map(...) | T | main.rs:1317:5:1318:14 | S1 | +| main.rs:1343:17:1343:30 | TryExpr | | main.rs:1317:5:1318:14 | S1 | | main.rs:1343:24:1343:28 | \|...\| s | | {EXTERNAL LOCATION} | dyn Fn | | main.rs:1343:24:1343:28 | \|...\| s | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| main.rs:1343:24:1343:28 | \|...\| s | dyn(Args).T0 | main.rs:1317:5:1318:14 | S1 | +| main.rs:1343:24:1343:28 | \|...\| s | dyn(Output) | main.rs:1317:5:1318:14 | S1 | +| main.rs:1343:25:1343:25 | s | | main.rs:1317:5:1318:14 | S1 | +| main.rs:1343:28:1343:28 | s | | main.rs:1317:5:1318:14 | S1 | | main.rs:1344:9:1344:22 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | | main.rs:1344:9:1344:22 | ...::Ok(...) | E | main.rs:1320:5:1321:14 | S2 | | main.rs:1344:9:1344:22 | ...::Ok(...) | T | main.rs:1317:5:1318:14 | S1 | @@ -9481,26 +10075,36 @@ inferType | main.rs:1350:21:1350:25 | input | E | main.rs:1317:5:1318:14 | S1 | | main.rs:1350:21:1350:25 | input | T | main.rs:1349:20:1349:27 | T | | main.rs:1350:21:1350:26 | TryExpr | | main.rs:1349:20:1349:27 | T | +| main.rs:1351:13:1351:18 | mapped | | main.rs:1349:20:1349:27 | T | | main.rs:1351:22:1351:38 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | | main.rs:1351:22:1351:38 | ...::Ok(...) | E | main.rs:1317:5:1318:14 | S1 | | main.rs:1351:22:1351:38 | ...::Ok(...) | T | main.rs:1349:20:1349:27 | T | | main.rs:1351:22:1354:10 | ... .and_then(...) | | {EXTERNAL LOCATION} | Result | | main.rs:1351:22:1354:10 | ... .and_then(...) | E | main.rs:1317:5:1318:14 | S1 | +| main.rs:1351:22:1354:10 | ... .and_then(...) | T | main.rs:1349:20:1349:27 | T | +| main.rs:1351:22:1354:11 | TryExpr | | main.rs:1349:20:1349:27 | T | | main.rs:1351:33:1351:37 | value | | main.rs:1349:20:1349:27 | T | | main.rs:1351:49:1354:9 | \|...\| ... | | {EXTERNAL LOCATION} | dyn Fn | | main.rs:1351:49:1354:9 | \|...\| ... | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| main.rs:1351:49:1354:9 | \|...\| ... | dyn(Args).T0 | main.rs:1349:20:1349:27 | T | | main.rs:1351:49:1354:9 | \|...\| ... | dyn(Output) | {EXTERNAL LOCATION} | Result | | main.rs:1351:49:1354:9 | \|...\| ... | dyn(Output).E | main.rs:1317:5:1318:14 | S1 | +| main.rs:1351:49:1354:9 | \|...\| ... | dyn(Output).T | main.rs:1349:20:1349:27 | T | +| main.rs:1351:50:1351:50 | v | | main.rs:1349:20:1349:27 | T | | main.rs:1351:53:1354:9 | { ... } | | {EXTERNAL LOCATION} | Result | | main.rs:1351:53:1354:9 | { ... } | E | main.rs:1317:5:1318:14 | S1 | +| main.rs:1351:53:1354:9 | { ... } | T | main.rs:1349:20:1349:27 | T | | main.rs:1352:13:1352:31 | MacroExpr | | {EXTERNAL LOCATION} | () | | main.rs:1352:22:1352:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | & | | main.rs:1352:22:1352:27 | "{:?}\\n" | TRef | {EXTERNAL LOCATION} | str | | main.rs:1352:22:1352:30 | ...::_print(...) | | {EXTERNAL LOCATION} | () | | main.rs:1352:22:1352:30 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:1352:22:1352:30 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:1352:30:1352:30 | v | | main.rs:1349:20:1349:27 | T | | main.rs:1353:13:1353:34 | ...::Ok::<...>(...) | | {EXTERNAL LOCATION} | Result | | main.rs:1353:13:1353:34 | ...::Ok::<...>(...) | E | main.rs:1317:5:1318:14 | S1 | +| main.rs:1353:13:1353:34 | ...::Ok::<...>(...) | T | main.rs:1349:20:1349:27 | T | +| main.rs:1353:33:1353:33 | v | | main.rs:1349:20:1349:27 | T | | main.rs:1355:9:1355:23 | ...::Err(...) | | {EXTERNAL LOCATION} | Result | | main.rs:1355:9:1355:23 | ...::Err(...) | E | main.rs:1317:5:1318:14 | S1 | | main.rs:1355:9:1355:23 | ...::Err(...) | T | main.rs:1349:20:1349:27 | T | @@ -11071,14 +11675,21 @@ inferType | main.rs:2261:25:2261:25 | 3 | | {EXTERNAL LOCATION} | i32 | | main.rs:2261:28:2261:29 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:2262:9:2262:44 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2262:13:2262:13 | i | | {EXTERNAL LOCATION} | i32 | | main.rs:2262:18:2262:26 | [...] | | {EXTERNAL LOCATION} | [;] | | main.rs:2262:18:2262:26 | [...] | TArray | {EXTERNAL LOCATION} | i32 | | main.rs:2262:18:2262:41 | ... .map(...) | | {EXTERNAL LOCATION} | [;] | +| main.rs:2262:18:2262:41 | ... .map(...) | TArray | {EXTERNAL LOCATION} | i32 | | main.rs:2262:19:2262:19 | 1 | | {EXTERNAL LOCATION} | i32 | | main.rs:2262:22:2262:22 | 2 | | {EXTERNAL LOCATION} | i32 | | main.rs:2262:25:2262:25 | 3 | | {EXTERNAL LOCATION} | i32 | | main.rs:2262:32:2262:40 | \|...\| ... | | {EXTERNAL LOCATION} | dyn Fn | | main.rs:2262:32:2262:40 | \|...\| ... | dyn(Args) | {EXTERNAL LOCATION} | (T_1) | +| main.rs:2262:32:2262:40 | \|...\| ... | dyn(Args).T0 | {EXTERNAL LOCATION} | i32 | +| main.rs:2262:32:2262:40 | \|...\| ... | dyn(Output) | {EXTERNAL LOCATION} | i32 | +| main.rs:2262:33:2262:33 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:2262:36:2262:36 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:2262:36:2262:40 | ... + ... | | {EXTERNAL LOCATION} | i32 | | main.rs:2262:40:2262:40 | 1 | | {EXTERNAL LOCATION} | i32 | | main.rs:2262:43:2262:44 | { ... } | | {EXTERNAL LOCATION} | () | | main.rs:2263:9:2263:41 | for ... in ... { ... } | | {EXTERNAL LOCATION} | () | @@ -12316,48 +12927,81 @@ inferType | main.rs:2751:17:2751:17 | x | | {EXTERNAL LOCATION} | i32 | | main.rs:2751:17:2751:24 | x.max(...) | | {EXTERNAL LOCATION} | i32 | | main.rs:2751:23:2751:23 | y | | {EXTERNAL LOCATION} | usize | -| main.rs:2762:11:2797:1 | { ... } | | {EXTERNAL LOCATION} | () | -| main.rs:2763:5:2763:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2764:5:2764:20 | ...::f(...) | | main.rs:72:5:72:21 | Foo | -| main.rs:2765:5:2765:60 | ...::g(...) | | main.rs:72:5:72:21 | Foo | -| main.rs:2765:20:2765:38 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | -| main.rs:2765:41:2765:59 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | -| main.rs:2766:5:2766:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2767:5:2767:41 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2768:5:2768:45 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2769:5:2769:30 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2770:5:2770:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2771:5:2771:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2772:5:2772:32 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2773:5:2773:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2774:5:2774:36 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2775:5:2775:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2776:5:2776:29 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2777:5:2777:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2778:5:2778:24 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2779:5:2779:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2780:5:2780:18 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2781:5:2781:15 | ...::f(...) | | {EXTERNAL LOCATION} | dyn Future | -| main.rs:2781:5:2781:15 | ...::f(...) | dyn(Output) | {EXTERNAL LOCATION} | () | -| main.rs:2782:5:2782:19 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2783:5:2783:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2784:5:2784:14 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2785:5:2785:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2786:5:2786:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2787:5:2787:43 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2788:5:2788:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2789:5:2789:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2790:5:2790:28 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2791:5:2791:23 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2792:5:2792:41 | ...::test_all_patterns(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2793:5:2793:49 | ...::box_patterns(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2794:5:2794:20 | ...::test(...) | | {EXTERNAL LOCATION} | () | -| main.rs:2795:5:2795:20 | ...::f(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:2795:5:2795:20 | ...::f(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:2795:5:2795:20 | ...::f(...) | T | main.rs:2547:5:2549:5 | dyn MyTrait | -| main.rs:2795:5:2795:20 | ...::f(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | -| main.rs:2795:16:2795:19 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:2796:5:2796:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2766:22:2766:26 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2766:22:2766:26 | SelfParam | TRef | main.rs:2765:5:2767:5 | Self [trait Container] | +| main.rs:2769:34:2769:34 | c | | {EXTERNAL LOCATION} | & | +| main.rs:2769:34:2769:34 | c | TRef | main.rs:2769:15:2769:31 | T | +| main.rs:2769:49:2771:5 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:2770:9:2770:9 | c | | {EXTERNAL LOCATION} | & | +| main.rs:2770:9:2770:9 | c | TRef | main.rs:2769:15:2769:31 | T | +| main.rs:2770:9:2770:21 | c.get_input() | | {EXTERNAL LOCATION} | i64 | +| main.rs:2770:9:2770:27 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:2770:26:2770:27 | 42 | | {EXTERNAL LOCATION} | i32 | +| main.rs:2774:22:2774:26 | SelfParam | | {EXTERNAL LOCATION} | & | +| main.rs:2774:22:2774:26 | SelfParam | TRef | main.rs:2763:5:2763:21 | Gen | +| main.rs:2774:22:2774:26 | SelfParam | TRef.T | main.rs:2773:10:2773:17 | GT | +| main.rs:2774:35:2776:9 | { ... } | | main.rs:2773:10:2773:17 | GT | +| main.rs:2775:13:2775:16 | self | | {EXTERNAL LOCATION} | & | +| main.rs:2775:13:2775:16 | self | TRef | main.rs:2763:5:2763:21 | Gen | +| main.rs:2775:13:2775:16 | self | TRef.T | main.rs:2773:10:2773:17 | GT | +| main.rs:2775:13:2775:18 | self.0 | | main.rs:2773:10:2773:17 | GT | +| main.rs:2779:15:2783:5 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2780:13:2780:13 | v | | {EXTERNAL LOCATION} | i64 | +| main.rs:2780:17:2780:34 | ...::default(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:2781:13:2781:13 | g | | main.rs:2763:5:2763:21 | Gen | +| main.rs:2781:13:2781:13 | g | T | {EXTERNAL LOCATION} | i64 | +| main.rs:2781:17:2781:22 | Gen(...) | | main.rs:2763:5:2763:21 | Gen | +| main.rs:2781:17:2781:22 | Gen(...) | T | {EXTERNAL LOCATION} | i64 | +| main.rs:2781:21:2781:21 | v | | {EXTERNAL LOCATION} | i64 | +| main.rs:2782:13:2782:13 | _ | | {EXTERNAL LOCATION} | bool | +| main.rs:2782:17:2782:26 | my_get(...) | | {EXTERNAL LOCATION} | bool | +| main.rs:2782:24:2782:25 | &g | | {EXTERNAL LOCATION} | & | +| main.rs:2782:24:2782:25 | &g | TRef | main.rs:2763:5:2763:21 | Gen | +| main.rs:2782:24:2782:25 | &g | TRef.T | {EXTERNAL LOCATION} | i64 | +| main.rs:2782:25:2782:25 | g | | main.rs:2763:5:2763:21 | Gen | +| main.rs:2782:25:2782:25 | g | T | {EXTERNAL LOCATION} | i64 | +| main.rs:2786:11:2821:1 | { ... } | | {EXTERNAL LOCATION} | () | +| main.rs:2787:5:2787:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2788:5:2788:20 | ...::f(...) | | main.rs:72:5:72:21 | Foo | +| main.rs:2789:5:2789:60 | ...::g(...) | | main.rs:72:5:72:21 | Foo | +| main.rs:2789:20:2789:38 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | +| main.rs:2789:41:2789:59 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | +| main.rs:2790:5:2790:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2791:5:2791:41 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2792:5:2792:45 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2793:5:2793:30 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2794:5:2794:21 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2795:5:2795:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2796:5:2796:32 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2797:5:2797:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2798:5:2798:36 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2799:5:2799:35 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2800:5:2800:29 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2801:5:2801:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2802:5:2802:24 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2803:5:2803:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2804:5:2804:18 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2805:5:2805:15 | ...::f(...) | | {EXTERNAL LOCATION} | dyn Future | +| main.rs:2805:5:2805:15 | ...::f(...) | dyn(Output) | {EXTERNAL LOCATION} | () | +| main.rs:2806:5:2806:19 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2807:5:2807:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2808:5:2808:14 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2809:5:2809:27 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2810:5:2810:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2811:5:2811:43 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2812:5:2812:15 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2813:5:2813:17 | ...::f(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2814:5:2814:28 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2815:5:2815:23 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2816:5:2816:41 | ...::test_all_patterns(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2817:5:2817:49 | ...::box_patterns(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2818:5:2818:20 | ...::test(...) | | {EXTERNAL LOCATION} | () | +| main.rs:2819:5:2819:20 | ...::f(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:2819:5:2819:20 | ...::f(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:2819:5:2819:20 | ...::f(...) | T | main.rs:2547:5:2549:5 | dyn MyTrait | +| main.rs:2819:5:2819:20 | ...::f(...) | T.dyn(T) | {EXTERNAL LOCATION} | i32 | +| main.rs:2819:16:2819:19 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:2820:5:2820:23 | ...::f(...) | | {EXTERNAL LOCATION} | () | | overloading.rs:4:19:4:23 | SelfParam | | {EXTERNAL LOCATION} | & | | overloading.rs:4:19:4:23 | SelfParam | TRef | overloading.rs:2:5:11:5 | Self [trait FirstTrait] | | overloading.rs:4:34:6:9 | { ... } | | {EXTERNAL LOCATION} | bool | @@ -15158,4 +15802,62 @@ inferType | regressions.rs:128:24:128:27 | self | T | regressions.rs:123:10:123:10 | T | | regressions.rs:129:13:129:13 | s | | regressions.rs:123:10:123:10 | T | | regressions.rs:129:13:129:17 | s.m() | | {EXTERNAL LOCATION} | () | +| regressions.rs:139:17:139:17 | _ | | {EXTERNAL LOCATION} | & | +| regressions.rs:139:17:139:17 | _ | TRef | regressions.rs:135:5:135:14 | S1 | +| regressions.rs:139:33:141:9 | { ... } | | regressions.rs:136:5:136:22 | S2 | +| regressions.rs:139:33:141:9 | { ... } | T2 | regressions.rs:135:5:135:14 | S1 | +| regressions.rs:140:13:140:18 | S2(...) | | regressions.rs:136:5:136:22 | S2 | +| regressions.rs:140:13:140:18 | S2(...) | T2 | regressions.rs:135:5:135:14 | S1 | +| regressions.rs:140:16:140:17 | S1 | | regressions.rs:135:5:135:14 | S1 | +| regressions.rs:145:17:145:17 | t | | regressions.rs:144:10:144:10 | T | +| regressions.rs:145:31:147:9 | { ... } | | regressions.rs:136:5:136:22 | S2 | +| regressions.rs:145:31:147:9 | { ... } | T2 | regressions.rs:144:10:144:10 | T | +| regressions.rs:146:13:146:17 | S2(...) | | regressions.rs:136:5:136:22 | S2 | +| regressions.rs:146:13:146:17 | S2(...) | T2 | regressions.rs:144:10:144:10 | T | +| regressions.rs:146:16:146:16 | t | | regressions.rs:144:10:144:10 | T | +| regressions.rs:150:24:153:5 | { ... } | | regressions.rs:136:5:136:22 | S2 | +| regressions.rs:150:24:153:5 | { ... } | T2 | regressions.rs:135:5:135:14 | S1 | +| regressions.rs:151:13:151:13 | x | | regressions.rs:136:5:136:22 | S2 | +| regressions.rs:151:13:151:13 | x | T2 | {EXTERNAL LOCATION} | & | +| regressions.rs:151:13:151:13 | x | T2 | regressions.rs:135:5:135:14 | S1 | +| regressions.rs:151:13:151:13 | x | T2.TRef | regressions.rs:135:5:135:14 | S1 | +| regressions.rs:151:17:151:18 | S1 | | regressions.rs:135:5:135:14 | S1 | +| regressions.rs:151:17:151:25 | S1.into() | | regressions.rs:136:5:136:22 | S2 | +| regressions.rs:151:17:151:25 | S1.into() | T2 | {EXTERNAL LOCATION} | & | +| regressions.rs:151:17:151:25 | S1.into() | T2 | regressions.rs:135:5:135:14 | S1 | +| regressions.rs:151:17:151:25 | S1.into() | T2.TRef | regressions.rs:135:5:135:14 | S1 | +| regressions.rs:152:9:152:9 | x | | regressions.rs:136:5:136:22 | S2 | +| regressions.rs:152:9:152:9 | x | T2 | {EXTERNAL LOCATION} | & | +| regressions.rs:152:9:152:9 | x | T2 | regressions.rs:135:5:135:14 | S1 | +| regressions.rs:152:9:152:9 | x | T2.TRef | regressions.rs:135:5:135:14 | S1 | +| regressions.rs:164:16:164:19 | SelfParam | | regressions.rs:158:5:158:19 | S | +| regressions.rs:164:16:164:19 | SelfParam | T | regressions.rs:160:10:160:10 | T | +| regressions.rs:164:22:164:25 | _rhs | | regressions.rs:158:5:158:19 | S | +| regressions.rs:164:22:164:25 | _rhs | T | regressions.rs:160:10:160:10 | T | +| regressions.rs:164:50:166:9 | { ... } | | regressions.rs:158:5:158:19 | S | +| regressions.rs:164:50:166:9 | { ... } | T | regressions.rs:160:10:160:10 | T | +| regressions.rs:165:13:165:16 | self | | regressions.rs:158:5:158:19 | S | +| regressions.rs:165:13:165:16 | self | T | regressions.rs:160:10:160:10 | T | +| regressions.rs:173:16:173:19 | SelfParam | | regressions.rs:158:5:158:19 | S | +| regressions.rs:173:16:173:19 | SelfParam | T | regressions.rs:169:10:169:10 | T | +| regressions.rs:173:22:173:25 | _rhs | | regressions.rs:169:10:169:10 | T | +| regressions.rs:173:47:175:9 | { ... } | | regressions.rs:158:5:158:19 | S | +| regressions.rs:173:47:175:9 | { ... } | T | regressions.rs:169:10:169:10 | T | +| regressions.rs:174:13:174:16 | self | | regressions.rs:158:5:158:19 | S | +| regressions.rs:174:13:174:16 | self | T | regressions.rs:169:10:169:10 | T | +| regressions.rs:178:14:180:5 | { ... } | | {EXTERNAL LOCATION} | () | +| regressions.rs:179:13:179:13 | x | | regressions.rs:158:5:158:19 | S | +| regressions.rs:179:13:179:13 | x | T | {EXTERNAL LOCATION} | i32 | +| regressions.rs:179:13:179:13 | x | T | regressions.rs:158:5:158:19 | S | +| regressions.rs:179:13:179:13 | x | T.T | {EXTERNAL LOCATION} | i32 | +| regressions.rs:179:17:179:20 | S(...) | | regressions.rs:158:5:158:19 | S | +| regressions.rs:179:17:179:20 | S(...) | T | {EXTERNAL LOCATION} | i32 | +| regressions.rs:179:17:179:27 | ... + ... | | regressions.rs:158:5:158:19 | S | +| regressions.rs:179:17:179:27 | ... + ... | T | {EXTERNAL LOCATION} | i32 | +| regressions.rs:179:17:179:27 | ... + ... | T | regressions.rs:158:5:158:19 | S | +| regressions.rs:179:17:179:27 | ... + ... | T.T | {EXTERNAL LOCATION} | i32 | +| regressions.rs:179:19:179:19 | 0 | | {EXTERNAL LOCATION} | i32 | +| regressions.rs:179:24:179:27 | S(...) | | regressions.rs:158:5:158:19 | S | +| regressions.rs:179:24:179:27 | S(...) | T | {EXTERNAL LOCATION} | i32 | +| regressions.rs:179:26:179:26 | 1 | | {EXTERNAL LOCATION} | i32 | testFailures diff --git a/rust/ql/test/utils-tests/modelgenerator/option.rs b/rust/ql/test/utils-tests/modelgenerator/option.rs index 701073564b1..afe76e2088e 100644 --- a/rust/ql/test/utils-tests/modelgenerator/option.rs +++ b/rust/ql/test/utils-tests/modelgenerator/option.rs @@ -149,6 +149,8 @@ impl MyOption { // summary=::map;Argument[0].ReturnValue;ReturnValue.Field[test::option::MyOption::MySome(0)];value;dfc-generated // summary=::map;Argument[self].Field[test::option::MyOption::MySome(0)];Argument[0].Parameter[0];value;dfc-generated + // The spurious model below happens because `f` incorrectly resolves to the closure passed in from `as_deref` + // SPURIOUS-summary=::map;Argument[self].Field[test::option::MyOption::MySome(0)].Reference;ReturnValue.Field[test::option::MyOption::MySome(0)].Reference;taint;dfc-generated pub fn map(self, f: F) -> MyOption where F: FnOnce(T) -> U, @@ -217,7 +219,7 @@ impl MyOption { } } - // MISSING: `Deref` trait + // summary=::as_deref;Argument[self].Reference.Field[test::option::MyOption::MySome(0)];ReturnValue.Field[test::option::MyOption::MySome(0)].Reference;taint;dfc-generated pub fn as_deref(&self) -> MyOption<&T::Target> where T: Deref, diff --git a/rust/tools/builtins/impls.rs b/rust/tools/builtins/impls.rs new file mode 100644 index 00000000000..facffd70005 --- /dev/null +++ b/rust/tools/builtins/impls.rs @@ -0,0 +1,134 @@ +/// Contains type-specialized versions of +/// +/// ``` +/// impl Index for [T; N] +/// where +/// [T]: Index, +/// { +/// type Output = <[T] as Index>::Output; +/// ... +/// } +/// ``` +/// +/// and +/// +/// ``` +/// impl ops::Index for [T] +/// where +/// I: SliceIndex<[T]>, +/// { +/// type Output = I::Output; +/// ... +/// } +/// ``` +/// +/// and +/// ``` +/// impl, A: Allocator> Index for Vec { +/// type Output = I::Output; +/// ... +/// } +/// ``` +/// +/// (as well as their `IndexMut` counterparts), which the type inference library +/// cannot currently handle (we fail to resolve the `Output` types). +mod index_impls { + use std::alloc::Allocator; + use std::ops::Index; + + impl Index for [T; N] { + type Output = T; + + fn index(&self, index: i32) -> &Self::Output { + panic!() + } + } + + impl IndexMut for [T; N] { + type Output = T; + + fn index_mut(&mut self, index: i32) -> &mut Self::Output { + panic!() + } + } + + impl Index for [T; N] { + type Output = T; + + fn index(&self, index: usize) -> &Self::Output { + panic!() + } + } + + impl IndexMut for [T; N] { + type Output = T; + + fn index_mut(&mut self, index: usize) -> &mut Self::Output { + panic!() + } + } + + impl Index for [T] { + type Output = T; + + fn index(&self, index: i32) -> &Self::Output { + panic!() + } + } + + impl IndexMut for [T] { + type Output = T; + + fn index_mut(&mut self, index: i32) -> &mut Self::Output { + panic!() + } + } + + impl Index for [T] { + type Output = T; + + fn index(&self, index: usize) -> &Self::Output { + panic!() + } + } + + impl IndexMut for [T] { + type Output = T; + + fn index_mut(&mut self, index: usize) -> &mut Self::Output { + panic!() + } + } + + impl Index for Vec { + type Output = T; + + fn index(&self, index: i32) -> &Self::Output { + panic!() + } + } + + impl IndexMut for Vec { + type Output = T; + + fn index_mut(&mut self, index: i32) -> &mut Self::Output { + panic!() + } + } + + impl Index for Vec { + type Output = T; + + fn index(&self, index: usize) -> &Self::Output { + panic!() + } + } + + impl IndexMut for Vec { + type Output = T; + + fn index_mut(&mut self, index: usize) -> &mut Self::Output { + panic!() + } + } +} diff --git a/shared/concepts/CHANGELOG.md b/shared/concepts/CHANGELOG.md index fc5bdcd8e23..e8b920847e9 100644 --- a/shared/concepts/CHANGELOG.md +++ b/shared/concepts/CHANGELOG.md @@ -1,3 +1,11 @@ +## 0.0.22 + +No user-facing changes. + +## 0.0.21 + +No user-facing changes. + ## 0.0.20 No user-facing changes. diff --git a/shared/concepts/change-notes/released/0.0.21.md b/shared/concepts/change-notes/released/0.0.21.md new file mode 100644 index 00000000000..d32472e976d --- /dev/null +++ b/shared/concepts/change-notes/released/0.0.21.md @@ -0,0 +1,3 @@ +## 0.0.21 + +No user-facing changes. diff --git a/shared/concepts/change-notes/released/0.0.22.md b/shared/concepts/change-notes/released/0.0.22.md new file mode 100644 index 00000000000..00226747438 --- /dev/null +++ b/shared/concepts/change-notes/released/0.0.22.md @@ -0,0 +1,3 @@ +## 0.0.22 + +No user-facing changes. diff --git a/shared/concepts/codeql-pack.release.yml b/shared/concepts/codeql-pack.release.yml index d2e86745bca..11aaa2243f5 100644 --- a/shared/concepts/codeql-pack.release.yml +++ b/shared/concepts/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.0.20 +lastReleaseVersion: 0.0.22 diff --git a/shared/concepts/qlpack.yml b/shared/concepts/qlpack.yml index 04966d3a5b1..947826f7dfd 100644 --- a/shared/concepts/qlpack.yml +++ b/shared/concepts/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/concepts -version: 0.0.21-dev +version: 0.0.23-dev groups: shared library: true dependencies: diff --git a/shared/controlflow/CHANGELOG.md b/shared/controlflow/CHANGELOG.md index 8725b6df20a..df00c6146d8 100644 --- a/shared/controlflow/CHANGELOG.md +++ b/shared/controlflow/CHANGELOG.md @@ -1,3 +1,11 @@ +## 2.0.32 + +No user-facing changes. + +## 2.0.31 + +No user-facing changes. + ## 2.0.30 No user-facing changes. diff --git a/shared/controlflow/change-notes/released/2.0.31.md b/shared/controlflow/change-notes/released/2.0.31.md new file mode 100644 index 00000000000..b3cd05e3de4 --- /dev/null +++ b/shared/controlflow/change-notes/released/2.0.31.md @@ -0,0 +1,3 @@ +## 2.0.31 + +No user-facing changes. diff --git a/shared/controlflow/change-notes/released/2.0.32.md b/shared/controlflow/change-notes/released/2.0.32.md new file mode 100644 index 00000000000..0930bb07f8c --- /dev/null +++ b/shared/controlflow/change-notes/released/2.0.32.md @@ -0,0 +1,3 @@ +## 2.0.32 + +No user-facing changes. diff --git a/shared/controlflow/codeql-pack.release.yml b/shared/controlflow/codeql-pack.release.yml index 19c80429585..483a0d5db8e 100644 --- a/shared/controlflow/codeql-pack.release.yml +++ b/shared/controlflow/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.0.30 +lastReleaseVersion: 2.0.32 diff --git a/shared/controlflow/qlpack.yml b/shared/controlflow/qlpack.yml index 2bb2efdb8c0..adc4aedc5c3 100644 --- a/shared/controlflow/qlpack.yml +++ b/shared/controlflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/controlflow -version: 2.0.31-dev +version: 2.0.33-dev groups: shared library: true dependencies: diff --git a/shared/dataflow/CHANGELOG.md b/shared/dataflow/CHANGELOG.md index b2836038ddf..ed60239f3de 100644 --- a/shared/dataflow/CHANGELOG.md +++ b/shared/dataflow/CHANGELOG.md @@ -1,3 +1,11 @@ +## 2.1.4 + +No user-facing changes. + +## 2.1.3 + +No user-facing changes. + ## 2.1.2 No user-facing changes. diff --git a/shared/dataflow/change-notes/released/2.1.3.md b/shared/dataflow/change-notes/released/2.1.3.md new file mode 100644 index 00000000000..a1338012fcd --- /dev/null +++ b/shared/dataflow/change-notes/released/2.1.3.md @@ -0,0 +1,3 @@ +## 2.1.3 + +No user-facing changes. diff --git a/shared/dataflow/change-notes/released/2.1.4.md b/shared/dataflow/change-notes/released/2.1.4.md new file mode 100644 index 00000000000..a1035c6b05b --- /dev/null +++ b/shared/dataflow/change-notes/released/2.1.4.md @@ -0,0 +1,3 @@ +## 2.1.4 + +No user-facing changes. diff --git a/shared/dataflow/codeql-pack.release.yml b/shared/dataflow/codeql-pack.release.yml index 1a4e53e8772..896b46fda9b 100644 --- a/shared/dataflow/codeql-pack.release.yml +++ b/shared/dataflow/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.1.2 +lastReleaseVersion: 2.1.4 diff --git a/shared/dataflow/codeql/dataflow/DataFlow.qll b/shared/dataflow/codeql/dataflow/DataFlow.qll index 7f9c0194374..cacd52cf839 100644 --- a/shared/dataflow/codeql/dataflow/DataFlow.qll +++ b/shared/dataflow/codeql/dataflow/DataFlow.qll @@ -63,6 +63,35 @@ signature module InputSig { DataFlowType getNodeType(Node node); + /** + * Gets a special type to use for parameter node `p` belonging to callables with a + * source node where a source call context `FlowFeature` is used, if any. + * + * This can be used to prevent lambdas from being resolved, when a concrete call + * context is needed. Example: + * + * ```csharp + * void Foo(Action a) + * { + * var x = Source(); + * a(x); // (1) + * a = s => Sink(s); // (2) + * a(x); // (3) + * } + * + * void Bar() + * { + * Foo(s => Sink(s)); // (4) + * } + * ``` + * + * If a source call context flow feature is used, `a` can be assigned a special + * type that is incompatible with the type of _any_ lambda expression, which will + * prevent the call edge from (1) to (4). Note that the call edge from (3) to (2) + * will still be valid. + */ + default DataFlowType getSourceContextParameterNodeType(Node p) { none() } + predicate nodeIsHidden(Node node); class DataFlowExpr; diff --git a/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll b/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll index 506774857d8..ed0412d1cd4 100644 --- a/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll +++ b/shared/dataflow/codeql/dataflow/internal/DataFlowImpl.qll @@ -1103,6 +1103,16 @@ module MakeImpl Lang> { private module FwdTypeFlowInput implements TypeFlowInput { predicate enableTypeFlow = Param::enableTypeFlow/0; + pragma[nomagic] + predicate isParameterNodeInSourceCallContext(ParamNode p) { + hasSourceCallCtx() and + exists(Node source, DataFlowCallable c | + Config::isSource(pragma[only_bind_into](source), _) and + nodeEnclosingCallable(source, c) and + nodeEnclosingCallable(p, c) + ) + } + predicate relevantCallEdgeIn = PrevStage::relevantCallEdgeIn/2; predicate relevantCallEdgeOut = PrevStage::relevantCallEdgeOut/2; @@ -1410,6 +1420,8 @@ module MakeImpl Lang> { private module RevTypeFlowInput implements TypeFlowInput { predicate enableTypeFlow = Param::enableTypeFlow/0; + predicate isParameterNodeInSourceCallContext(ParamNode p) { none() } + predicate relevantCallEdgeIn(Call call, Callable c) { flowOutOfCallAp(call, c, _, _, _, _, _) } diff --git a/shared/dataflow/codeql/dataflow/internal/DataFlowImplCommon.qll b/shared/dataflow/codeql/dataflow/internal/DataFlowImplCommon.qll index 51ebb3f8a73..962a58c26f9 100644 --- a/shared/dataflow/codeql/dataflow/internal/DataFlowImplCommon.qll +++ b/shared/dataflow/codeql/dataflow/internal/DataFlowImplCommon.qll @@ -1893,6 +1893,9 @@ module MakeImplCommon Lang> { signature module TypeFlowInput { predicate enableTypeFlow(); + /** Holds if `p` is a parameter of a callable with a source node that has a call context. */ + predicate isParameterNodeInSourceCallContext(ParamNode p); + /** Holds if the edge is possibly needed in the direction `call` to `c`. */ predicate relevantCallEdgeIn(Call call, Callable c); @@ -1953,6 +1956,9 @@ module MakeImplCommon Lang> { /** * Holds if a sequence of calls may propagate the value of `arg` to some * argument-to-parameter call edge that strengthens the static type. + * + * This predicate is a reverse flow computation, starting at calls that + * strengthen the type and then following relevant call edges backwards. */ pragma[nomagic] private predicate trackedArgTypeCand(ArgNode arg) { @@ -1987,6 +1993,9 @@ module MakeImplCommon Lang> { * Holds if `p` is part of a value-propagating call path where the * end-points have stronger types than the intermediate parameter and * argument nodes. + * + * This predicate is a forward flow computation, intersecting with the + * reverse flow computation done in `trackedArgTypeCand`. */ private predicate trackedParamType(ParamNode p) { exists(Call call1, Callable c1, ArgNode argOut, Call call2, Callable c2, ArgNode argIn | @@ -2013,6 +2022,8 @@ module MakeImplCommon Lang> { typeStrongerThanFilter(at, pt) ) or + Input::isParameterNodeInSourceCallContext(p) + or exists(ArgNode arg | trackedArgType(arg) and relevantCallEdge(_, _, arg, p) and @@ -2104,8 +2115,12 @@ module MakeImplCommon Lang> { * context. */ private predicate typeFlowParamType(ParamNode p, Type t, boolean cc) { - exists(Callable c | - Input::dataFlowNonCallEntry(c, cc) and + exists(Callable c | Input::dataFlowNonCallEntry(c, cc) | + cc = true and + nodeEnclosingCallable(p, c) and + t = getSourceContextParameterNodeType(p) + or + (cc = false or not exists(getSourceContextParameterNodeType(p))) and trackedParamWithType(p, t, c) ) or diff --git a/shared/dataflow/codeql/dataflow/internal/DataFlowImplStage1.qll b/shared/dataflow/codeql/dataflow/internal/DataFlowImplStage1.qll index 426576d3ace..b7a45a67b56 100644 --- a/shared/dataflow/codeql/dataflow/internal/DataFlowImplStage1.qll +++ b/shared/dataflow/codeql/dataflow/internal/DataFlowImplStage1.qll @@ -86,6 +86,8 @@ module MakeImplStage1 Lang> { bindingset[p, kind] predicate parameterFlowThroughAllowed(ParamNd p, ReturnKindExt kind); + predicate fwdFlow(Nd node); + // begin StageSig class Ap; @@ -634,7 +636,7 @@ module MakeImplStage1 Lang> { ) } - private predicate fwdFlow(NodeEx node) { fwdFlow(node, _) } + predicate fwdFlow(NodeEx node) { fwdFlow(node, _) } pragma[nomagic] private predicate fwdFlowReadSet(ContentSet c, NodeEx node, Cc cc) { @@ -1291,6 +1293,8 @@ module MakeImplStage1 Lang> { import Stage1 import Stage1Common + predicate fwdFlow(Nd node) { Stage1::fwdFlow(node) } + predicate revFlow(NodeEx node, Ap ap) { Stage1::revFlow(node) and exists(ap) } predicate toNormalSinkNode = toNormalSinkNodeEx/1; @@ -1395,6 +1399,8 @@ module MakeImplStage1 Lang> { import Stage1Common + predicate fwdFlow(Nd node) { Stage1::fwdFlow(node.getNodeEx()) } + predicate revFlow(Nd node) { Stage1::revFlow(node.getNodeEx()) } predicate revFlow(Nd node, Ap ap) { Stage1::revFlow(node.getNodeEx()) and exists(ap) } diff --git a/shared/dataflow/codeql/dataflow/internal/FlowSummaryImpl.qll b/shared/dataflow/codeql/dataflow/internal/FlowSummaryImpl.qll index 8b25c54bfa0..ce980724778 100644 --- a/shared/dataflow/codeql/dataflow/internal/FlowSummaryImpl.qll +++ b/shared/dataflow/codeql/dataflow/internal/FlowSummaryImpl.qll @@ -388,11 +388,11 @@ module Make< /** * Holds if this element is a flow barrier guard of kind `kind`, for data - * flowing in as described by `input`, when `this` evaluates to `branch`. + * flowing in as described by `input`, when `this` evaluates to `acceptingValue`. */ pragma[nomagic] abstract predicate isBarrierGuard( - string input, string branch, string kind, Provenance provenance, string model + string input, string acceptingValue, string kind, Provenance provenance, string model ); } @@ -764,10 +764,10 @@ module Make< } private predicate isRelevantBarrierGuard( - BarrierGuardElement e, string input, string branch, string kind, Provenance provenance, - string model + BarrierGuardElement e, string input, string acceptingValue, string kind, + Provenance provenance, string model ) { - e.isBarrierGuard(input, branch, kind, provenance, model) and + e.isBarrierGuard(input, acceptingValue, kind, provenance, model) and ( provenance.isManual() or @@ -1588,11 +1588,11 @@ module Make< * Holds if `barrierGuard` is a relevant barrier guard element with input specification `inSpec`. */ predicate barrierGuardSpec( - BarrierGuardElement barrierGuard, SummaryComponentStack inSpec, string branch, string kind, - string model + BarrierGuardElement barrierGuard, SummaryComponentStack inSpec, string acceptingValue, + string kind, string model ) { exists(string input | - isRelevantBarrierGuard(barrierGuard, input, branch, kind, _, model) and + isRelevantBarrierGuard(barrierGuard, input, acceptingValue, kind, _, model) and External::interpretSpec(input, inSpec) ) } @@ -2189,10 +2189,10 @@ module Make< not exists(interpretComponent(c)) } - /** Holds if `acceptingvalue` is not a valid barrier guard accepting-value. */ - bindingset[acceptingvalue] - predicate invalidAcceptingValue(string acceptingvalue) { - not acceptingvalue instanceof AcceptingValue + /** Holds if `acceptingValue` is not a valid barrier guard accepting-value. */ + bindingset[acceptingValue] + predicate invalidAcceptingValue(string acceptingValue) { + not acceptingValue instanceof AcceptingValue } /** Holds if `provenance` is not a valid provenance value. */ @@ -2242,10 +2242,10 @@ module Make< /** * Holds if an external barrier guard specification exists for `n` with input - * specification `input`, accepting value `acceptingvalue`, and kind `kind`. + * specification `input`, accepting value `acceptingValue`, and kind `kind`. */ predicate barrierGuardElement( - Element n, string input, AcceptingValue acceptingvalue, string kind, + Element n, string input, AcceptingValue acceptingValue, string kind, Provenance provenance, string model ); @@ -2371,11 +2371,11 @@ module Make< } private predicate barrierGuardElementRef( - InterpretNode ref, SourceSinkAccessPath input, AcceptingValue acceptingvalue, string kind, + InterpretNode ref, SourceSinkAccessPath input, AcceptingValue acceptingValue, string kind, string model ) { exists(SourceOrSinkElement e | - barrierGuardElement(e, input, acceptingvalue, kind, _, model) and + barrierGuardElement(e, input, acceptingValue, kind, _, model) and if inputNeedsReferenceExt(input.getToken(0)) then e = ref.getCallTarget() else e = ref.asElement() @@ -2518,10 +2518,10 @@ module Make< * given kind in a MaD flow model. */ predicate isBarrierGuardNode( - InterpretNode node, AcceptingValue acceptingvalue, string kind, string model + InterpretNode node, AcceptingValue acceptingValue, string kind, string model ) { exists(InterpretNode ref, SourceSinkAccessPath input | - barrierGuardElementRef(ref, input, acceptingvalue, kind, model) and + barrierGuardElementRef(ref, input, acceptingValue, kind, model) and interpretInput(input, input.getNumToken(), ref, node) ) } diff --git a/shared/dataflow/qlpack.yml b/shared/dataflow/qlpack.yml index da82b4bcd40..a18b746e4b4 100644 --- a/shared/dataflow/qlpack.yml +++ b/shared/dataflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/dataflow -version: 2.1.3-dev +version: 2.1.5-dev groups: shared library: true dependencies: diff --git a/shared/mad/CHANGELOG.md b/shared/mad/CHANGELOG.md index f08f6492daf..ff868403d0c 100644 --- a/shared/mad/CHANGELOG.md +++ b/shared/mad/CHANGELOG.md @@ -1,3 +1,11 @@ +## 1.0.48 + +No user-facing changes. + +## 1.0.47 + +No user-facing changes. + ## 1.0.46 No user-facing changes. diff --git a/shared/mad/change-notes/released/1.0.47.md b/shared/mad/change-notes/released/1.0.47.md new file mode 100644 index 00000000000..0c12039c180 --- /dev/null +++ b/shared/mad/change-notes/released/1.0.47.md @@ -0,0 +1,3 @@ +## 1.0.47 + +No user-facing changes. diff --git a/shared/mad/change-notes/released/1.0.48.md b/shared/mad/change-notes/released/1.0.48.md new file mode 100644 index 00000000000..c484c6e8d6e --- /dev/null +++ b/shared/mad/change-notes/released/1.0.48.md @@ -0,0 +1,3 @@ +## 1.0.48 + +No user-facing changes. diff --git a/shared/mad/codeql-pack.release.yml b/shared/mad/codeql-pack.release.yml index 05205e6a59e..6db79f2c397 100644 --- a/shared/mad/codeql-pack.release.yml +++ b/shared/mad/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.46 +lastReleaseVersion: 1.0.48 diff --git a/shared/mad/codeql/mad/ModelValidation.qll b/shared/mad/codeql/mad/ModelValidation.qll index 042fb4200dd..5eaa78626ab 100644 --- a/shared/mad/codeql/mad/ModelValidation.qll +++ b/shared/mad/codeql/mad/ModelValidation.qll @@ -48,7 +48,7 @@ module KindValidation { // CPP-only currently "remote-sink", // Python-only currently, but may be shared in the future - "prompt-injection" + "bind-socket-all-interfaces", "prompt-injection" ] or this.matches([ diff --git a/shared/mad/codeql/mad/static/ModelsAsData.qll b/shared/mad/codeql/mad/static/ModelsAsData.qll index 84daaa9b6c8..4b58a23186a 100644 --- a/shared/mad/codeql/mad/static/ModelsAsData.qll +++ b/shared/mad/codeql/mad/static/ModelsAsData.qll @@ -31,7 +31,7 @@ signature module ExtensionsSig { */ predicate barrierGuardModel( string namespace, string type, boolean subtypes, string name, string signature, string ext, - string input, string acceptingvalue, string kind, string provenance, + string input, string acceptingValue, string kind, string provenance, QlBuiltins::ExtensionId madId ); @@ -142,14 +142,14 @@ module ModelsAsData { or exists( string namespace, string type, boolean subtypes, string name, string signature, string ext, - string input, string acceptingvalue, string kind, string provenance + string input, string acceptingValue, string kind, string provenance | Extensions::barrierGuardModel(namespace, type, subtypes, name, signature, ext, input, - acceptingvalue, kind, provenance, madId) + acceptingValue, kind, provenance, madId) | model = "Barrier Guard: " + namespace + "; " + type + "; " + subtypes + "; " + name + "; " + - signature + "; " + ext + "; " + input + "; " + acceptingvalue + "; " + kind + "; " + + signature + "; " + ext + "; " + input + "; " + acceptingValue + "; " + kind + "; " + provenance ) or @@ -241,12 +241,12 @@ module ModelsAsData { /** Holds if a barrier guard model exists for the given parameters. */ predicate barrierGuardModel( string namespace, string type, boolean subtypes, string name, string signature, string ext, - string input, string acceptingvalue, string kind, string provenance, string model + string input, string acceptingValue, string kind, string provenance, string model ) { exists(string namespaceOrGroup, QlBuiltins::ExtensionId madId | namespace = getNamespace(namespaceOrGroup) and Extensions::barrierGuardModel(namespaceOrGroup, type, subtypes, name, signature, ext, input, - acceptingvalue, kind, provenance, madId) and + acceptingValue, kind, provenance, madId) and model = "MaD:" + madId.toString() ) } diff --git a/shared/mad/qlpack.yml b/shared/mad/qlpack.yml index 00243bdecc0..dd5fcf54034 100644 --- a/shared/mad/qlpack.yml +++ b/shared/mad/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/mad -version: 1.0.47-dev +version: 1.0.49-dev groups: shared library: true dependencies: diff --git a/shared/quantum/CHANGELOG.md b/shared/quantum/CHANGELOG.md index 20ebb6b42c0..eccc65c6041 100644 --- a/shared/quantum/CHANGELOG.md +++ b/shared/quantum/CHANGELOG.md @@ -1,3 +1,11 @@ +## 0.0.26 + +No user-facing changes. + +## 0.0.25 + +No user-facing changes. + ## 0.0.24 No user-facing changes. diff --git a/shared/quantum/change-notes/released/0.0.25.md b/shared/quantum/change-notes/released/0.0.25.md new file mode 100644 index 00000000000..e41a9acfa06 --- /dev/null +++ b/shared/quantum/change-notes/released/0.0.25.md @@ -0,0 +1,3 @@ +## 0.0.25 + +No user-facing changes. diff --git a/shared/quantum/change-notes/released/0.0.26.md b/shared/quantum/change-notes/released/0.0.26.md new file mode 100644 index 00000000000..e6dc680cc11 --- /dev/null +++ b/shared/quantum/change-notes/released/0.0.26.md @@ -0,0 +1,3 @@ +## 0.0.26 + +No user-facing changes. diff --git a/shared/quantum/codeql-pack.release.yml b/shared/quantum/codeql-pack.release.yml index b956773a07f..c576d2d7db2 100644 --- a/shared/quantum/codeql-pack.release.yml +++ b/shared/quantum/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.0.24 +lastReleaseVersion: 0.0.26 diff --git a/shared/quantum/qlpack.yml b/shared/quantum/qlpack.yml index 4a33f9168a2..c4e5d41dfaa 100644 --- a/shared/quantum/qlpack.yml +++ b/shared/quantum/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/quantum -version: 0.0.25-dev +version: 0.0.27-dev groups: shared library: true dependencies: diff --git a/shared/rangeanalysis/CHANGELOG.md b/shared/rangeanalysis/CHANGELOG.md index 0014924513d..9afb612f18a 100644 --- a/shared/rangeanalysis/CHANGELOG.md +++ b/shared/rangeanalysis/CHANGELOG.md @@ -1,3 +1,11 @@ +## 1.0.48 + +No user-facing changes. + +## 1.0.47 + +No user-facing changes. + ## 1.0.46 No user-facing changes. diff --git a/shared/rangeanalysis/change-notes/released/1.0.47.md b/shared/rangeanalysis/change-notes/released/1.0.47.md new file mode 100644 index 00000000000..0c12039c180 --- /dev/null +++ b/shared/rangeanalysis/change-notes/released/1.0.47.md @@ -0,0 +1,3 @@ +## 1.0.47 + +No user-facing changes. diff --git a/shared/rangeanalysis/change-notes/released/1.0.48.md b/shared/rangeanalysis/change-notes/released/1.0.48.md new file mode 100644 index 00000000000..c484c6e8d6e --- /dev/null +++ b/shared/rangeanalysis/change-notes/released/1.0.48.md @@ -0,0 +1,3 @@ +## 1.0.48 + +No user-facing changes. diff --git a/shared/rangeanalysis/codeql-pack.release.yml b/shared/rangeanalysis/codeql-pack.release.yml index 05205e6a59e..6db79f2c397 100644 --- a/shared/rangeanalysis/codeql-pack.release.yml +++ b/shared/rangeanalysis/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.46 +lastReleaseVersion: 1.0.48 diff --git a/shared/rangeanalysis/qlpack.yml b/shared/rangeanalysis/qlpack.yml index fe558ac3f18..ed3b4a66239 100644 --- a/shared/rangeanalysis/qlpack.yml +++ b/shared/rangeanalysis/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/rangeanalysis -version: 1.0.47-dev +version: 1.0.49-dev groups: shared library: true dependencies: diff --git a/shared/regex/CHANGELOG.md b/shared/regex/CHANGELOG.md index 0b6da82a669..2375b7b56ab 100644 --- a/shared/regex/CHANGELOG.md +++ b/shared/regex/CHANGELOG.md @@ -1,3 +1,11 @@ +## 1.0.48 + +No user-facing changes. + +## 1.0.47 + +No user-facing changes. + ## 1.0.46 No user-facing changes. diff --git a/shared/regex/change-notes/released/1.0.47.md b/shared/regex/change-notes/released/1.0.47.md new file mode 100644 index 00000000000..0c12039c180 --- /dev/null +++ b/shared/regex/change-notes/released/1.0.47.md @@ -0,0 +1,3 @@ +## 1.0.47 + +No user-facing changes. diff --git a/shared/regex/change-notes/released/1.0.48.md b/shared/regex/change-notes/released/1.0.48.md new file mode 100644 index 00000000000..c484c6e8d6e --- /dev/null +++ b/shared/regex/change-notes/released/1.0.48.md @@ -0,0 +1,3 @@ +## 1.0.48 + +No user-facing changes. diff --git a/shared/regex/codeql-pack.release.yml b/shared/regex/codeql-pack.release.yml index 05205e6a59e..6db79f2c397 100644 --- a/shared/regex/codeql-pack.release.yml +++ b/shared/regex/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.46 +lastReleaseVersion: 1.0.48 diff --git a/shared/regex/qlpack.yml b/shared/regex/qlpack.yml index 58fc5cc3e10..3d569c7d429 100644 --- a/shared/regex/qlpack.yml +++ b/shared/regex/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/regex -version: 1.0.47-dev +version: 1.0.49-dev groups: shared library: true dependencies: diff --git a/shared/ssa/CHANGELOG.md b/shared/ssa/CHANGELOG.md index 9b5af989964..dd21ba6d38b 100644 --- a/shared/ssa/CHANGELOG.md +++ b/shared/ssa/CHANGELOG.md @@ -1,3 +1,11 @@ +## 2.0.24 + +No user-facing changes. + +## 2.0.23 + +No user-facing changes. + ## 2.0.22 No user-facing changes. diff --git a/shared/ssa/change-notes/released/2.0.23.md b/shared/ssa/change-notes/released/2.0.23.md new file mode 100644 index 00000000000..ab6f6f171ed --- /dev/null +++ b/shared/ssa/change-notes/released/2.0.23.md @@ -0,0 +1,3 @@ +## 2.0.23 + +No user-facing changes. diff --git a/shared/ssa/change-notes/released/2.0.24.md b/shared/ssa/change-notes/released/2.0.24.md new file mode 100644 index 00000000000..6547901c334 --- /dev/null +++ b/shared/ssa/change-notes/released/2.0.24.md @@ -0,0 +1,3 @@ +## 2.0.24 + +No user-facing changes. diff --git a/shared/ssa/codeql-pack.release.yml b/shared/ssa/codeql-pack.release.yml index 980bdfe195b..1460df314d5 100644 --- a/shared/ssa/codeql-pack.release.yml +++ b/shared/ssa/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.0.22 +lastReleaseVersion: 2.0.24 diff --git a/shared/ssa/qlpack.yml b/shared/ssa/qlpack.yml index 3cf46284247..c1fd261e070 100644 --- a/shared/ssa/qlpack.yml +++ b/shared/ssa/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ssa -version: 2.0.23-dev +version: 2.0.25-dev groups: shared library: true dependencies: diff --git a/shared/threat-models/CHANGELOG.md b/shared/threat-models/CHANGELOG.md index 065f61912fa..a3aa00d4872 100644 --- a/shared/threat-models/CHANGELOG.md +++ b/shared/threat-models/CHANGELOG.md @@ -1,3 +1,11 @@ +## 1.0.48 + +No user-facing changes. + +## 1.0.47 + +No user-facing changes. + ## 1.0.46 No user-facing changes. diff --git a/shared/threat-models/change-notes/released/1.0.47.md b/shared/threat-models/change-notes/released/1.0.47.md new file mode 100644 index 00000000000..0c12039c180 --- /dev/null +++ b/shared/threat-models/change-notes/released/1.0.47.md @@ -0,0 +1,3 @@ +## 1.0.47 + +No user-facing changes. diff --git a/shared/threat-models/change-notes/released/1.0.48.md b/shared/threat-models/change-notes/released/1.0.48.md new file mode 100644 index 00000000000..c484c6e8d6e --- /dev/null +++ b/shared/threat-models/change-notes/released/1.0.48.md @@ -0,0 +1,3 @@ +## 1.0.48 + +No user-facing changes. diff --git a/shared/threat-models/codeql-pack.release.yml b/shared/threat-models/codeql-pack.release.yml index 05205e6a59e..6db79f2c397 100644 --- a/shared/threat-models/codeql-pack.release.yml +++ b/shared/threat-models/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.46 +lastReleaseVersion: 1.0.48 diff --git a/shared/threat-models/qlpack.yml b/shared/threat-models/qlpack.yml index c3589be5880..59ce8c06727 100644 --- a/shared/threat-models/qlpack.yml +++ b/shared/threat-models/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/threat-models -version: 1.0.47-dev +version: 1.0.49-dev library: true groups: shared dataExtensions: diff --git a/shared/tutorial/CHANGELOG.md b/shared/tutorial/CHANGELOG.md index 297d40b694f..9350e8a04eb 100644 --- a/shared/tutorial/CHANGELOG.md +++ b/shared/tutorial/CHANGELOG.md @@ -1,3 +1,11 @@ +## 1.0.48 + +No user-facing changes. + +## 1.0.47 + +No user-facing changes. + ## 1.0.46 No user-facing changes. diff --git a/shared/tutorial/change-notes/released/1.0.47.md b/shared/tutorial/change-notes/released/1.0.47.md new file mode 100644 index 00000000000..0c12039c180 --- /dev/null +++ b/shared/tutorial/change-notes/released/1.0.47.md @@ -0,0 +1,3 @@ +## 1.0.47 + +No user-facing changes. diff --git a/shared/tutorial/change-notes/released/1.0.48.md b/shared/tutorial/change-notes/released/1.0.48.md new file mode 100644 index 00000000000..c484c6e8d6e --- /dev/null +++ b/shared/tutorial/change-notes/released/1.0.48.md @@ -0,0 +1,3 @@ +## 1.0.48 + +No user-facing changes. diff --git a/shared/tutorial/codeql-pack.release.yml b/shared/tutorial/codeql-pack.release.yml index 05205e6a59e..6db79f2c397 100644 --- a/shared/tutorial/codeql-pack.release.yml +++ b/shared/tutorial/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.46 +lastReleaseVersion: 1.0.48 diff --git a/shared/tutorial/qlpack.yml b/shared/tutorial/qlpack.yml index 53716b9b5ca..36b8181e0bf 100644 --- a/shared/tutorial/qlpack.yml +++ b/shared/tutorial/qlpack.yml @@ -1,7 +1,7 @@ name: codeql/tutorial description: Library for the CodeQL detective tutorials, helping new users learn to write CodeQL queries. -version: 1.0.47-dev +version: 1.0.49-dev groups: shared library: true warnOnImplicitThis: true diff --git a/shared/typeflow/CHANGELOG.md b/shared/typeflow/CHANGELOG.md index 039a7ef99a3..035c2aa456e 100644 --- a/shared/typeflow/CHANGELOG.md +++ b/shared/typeflow/CHANGELOG.md @@ -1,3 +1,11 @@ +## 1.0.48 + +No user-facing changes. + +## 1.0.47 + +No user-facing changes. + ## 1.0.46 No user-facing changes. diff --git a/shared/typeflow/change-notes/released/1.0.47.md b/shared/typeflow/change-notes/released/1.0.47.md new file mode 100644 index 00000000000..0c12039c180 --- /dev/null +++ b/shared/typeflow/change-notes/released/1.0.47.md @@ -0,0 +1,3 @@ +## 1.0.47 + +No user-facing changes. diff --git a/shared/typeflow/change-notes/released/1.0.48.md b/shared/typeflow/change-notes/released/1.0.48.md new file mode 100644 index 00000000000..c484c6e8d6e --- /dev/null +++ b/shared/typeflow/change-notes/released/1.0.48.md @@ -0,0 +1,3 @@ +## 1.0.48 + +No user-facing changes. diff --git a/shared/typeflow/codeql-pack.release.yml b/shared/typeflow/codeql-pack.release.yml index 05205e6a59e..6db79f2c397 100644 --- a/shared/typeflow/codeql-pack.release.yml +++ b/shared/typeflow/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.46 +lastReleaseVersion: 1.0.48 diff --git a/shared/typeflow/qlpack.yml b/shared/typeflow/qlpack.yml index ea0f559611c..0734b2b722e 100644 --- a/shared/typeflow/qlpack.yml +++ b/shared/typeflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typeflow -version: 1.0.47-dev +version: 1.0.49-dev groups: shared library: true dependencies: diff --git a/shared/typeinference/CHANGELOG.md b/shared/typeinference/CHANGELOG.md index be06e2108a8..c8b656e4f35 100644 --- a/shared/typeinference/CHANGELOG.md +++ b/shared/typeinference/CHANGELOG.md @@ -1,3 +1,11 @@ +## 0.0.29 + +No user-facing changes. + +## 0.0.28 + +No user-facing changes. + ## 0.0.27 No user-facing changes. diff --git a/shared/typeinference/change-notes/released/0.0.28.md b/shared/typeinference/change-notes/released/0.0.28.md new file mode 100644 index 00000000000..1b4fdd47819 --- /dev/null +++ b/shared/typeinference/change-notes/released/0.0.28.md @@ -0,0 +1,3 @@ +## 0.0.28 + +No user-facing changes. diff --git a/shared/typeinference/change-notes/released/0.0.29.md b/shared/typeinference/change-notes/released/0.0.29.md new file mode 100644 index 00000000000..4428927c79d --- /dev/null +++ b/shared/typeinference/change-notes/released/0.0.29.md @@ -0,0 +1,3 @@ +## 0.0.29 + +No user-facing changes. diff --git a/shared/typeinference/codeql-pack.release.yml b/shared/typeinference/codeql-pack.release.yml index dbab90d6989..c81f1813120 100644 --- a/shared/typeinference/codeql-pack.release.yml +++ b/shared/typeinference/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.0.27 +lastReleaseVersion: 0.0.29 diff --git a/shared/typeinference/codeql/typeinference/internal/TypeInference.qll b/shared/typeinference/codeql/typeinference/internal/TypeInference.qll index 0b23b08aad6..9f4be49d878 100644 --- a/shared/typeinference/codeql/typeinference/internal/TypeInference.qll +++ b/shared/typeinference/codeql/typeinference/internal/TypeInference.qll @@ -566,15 +566,17 @@ module Make1 Input1> { ) } + pragma[nomagic] private predicate typeParametersEqual( - App app, TypeAbstraction abs, Constraint constraint, TypeParameter tp + App app, TypeAbstraction abs, Constraint constraint, int i ) { - satisfiesConcreteTypes(app, abs, constraint) and - tp = getNthTypeParameter(abs, _) and - ( + exists(TypeParameter tp | + satisfiesConcreteTypes(app, abs, constraint) and + tp = getNthTypeParameter(abs, i) + | not exists(getNthTypeParameterPath(constraint, tp, _)) or - exists(int n | n = max(int i | exists(getNthTypeParameterPath(constraint, tp, i))) | + exists(int n | n = max(int j | exists(getNthTypeParameterPath(constraint, tp, j))) | // If the largest index is 0, then there are no equalities to check as // the type parameter only occurs once. if n = 0 then any() else typeParametersEqualToIndex(app, abs, constraint, tp, _, n) @@ -585,12 +587,10 @@ module Make1 Input1> { private predicate typeParametersHaveEqualInstantiationToIndex( App app, TypeAbstraction abs, Constraint constraint, int i ) { - exists(TypeParameter tp | tp = getNthTypeParameter(abs, i) | - typeParametersEqual(app, abs, constraint, tp) and - if i = 0 - then any() - else typeParametersHaveEqualInstantiationToIndex(app, abs, constraint, i - 1) - ) + typeParametersEqual(app, abs, constraint, i) and + if i = 0 + then any() + else typeParametersHaveEqualInstantiationToIndex(app, abs, constraint, i - 1) } /** @@ -964,7 +964,7 @@ module Make1 Input1> { /** * Holds if `term` does not satisfy `constraint`. * - * This predicate is an approximation of `not hasConstraintMention(term, constraint)`. + * This predicate is an approximation of `not hasConstraintMention(term, _, _, constraint, _, _)`. */ pragma[nomagic] private predicate hasNotConstraintMention( @@ -1072,7 +1072,7 @@ module Make1 Input1> { } pragma[nomagic] - private predicate satisfiesConstraintTypeMention1( + private predicate satisfiesConstraint0( Term term, Constraint constraint, TypeAbstraction abs, TypeMention sub, TypePath path, Type t ) { @@ -1100,37 +1100,55 @@ module Make1 Input1> { } pragma[inline] - private predicate satisfiesConstraintTypeMentionInline( - Term term, Constraint constraint, TypeAbstraction abs, TypePath path, - TypePath pathToTypeParamInSub + private predicate satisfiesConstraintInline( + Term term, Constraint constraint, TypeAbstraction abs, TypePath pathToTypeParamInConstraint, + TypePath pathToTypeParamInSub, TypeParameter tp ) { - exists(TypeMention sub, TypeParameter tp | - satisfiesConstraintTypeMention1(term, constraint, abs, sub, path, tp) and + exists(TypeMention sub | + satisfiesConstraint0(term, constraint, abs, sub, pathToTypeParamInConstraint, tp) and tp = abs.getATypeParameter() and sub.getTypeAt(pathToTypeParamInSub) = tp ) } + /** + * Holds if `term` satisfies the constraint `constraint` with _some_ type + * parameter at `pathToTypeParamInConstraint`, and the type parameter occurs + * at `pathToTypeParamInSub` in a satisfying condition. + * + * Example: + * + * ```rust + * struct MyThing { ... } + * + * trait MyTrait { ... } + * + * impl MyTrait for MyThing { ... } + * + * fn foo>(x: T) { ... } + * + * let x = MyThing(Default::default()); + * foo(x); + * ``` + * + * At `term` = `foo(x)`, we have `constraint = MyTrait`, and because of the + * `impl` block, `pathToTypeParamInConstraint` = `"B"`, and + * `pathToTypeParamInSub` = `"A"`. + */ pragma[nomagic] - private predicate satisfiesConstraintTypeMention( - Term term, Constraint constraint, TypePath path, TypePath pathToTypeParamInSub - ) { - satisfiesConstraintTypeMentionInline(term, constraint, _, path, pathToTypeParamInSub) - } - - pragma[nomagic] - private predicate satisfiesConstraintTypeMentionThrough( - Term term, Constraint constraint, TypeAbstraction abs, TypePath path, + predicate satisfiesConstraintAtTypeParameter( + Term term, Constraint constraint, TypePath pathToTypeParamInConstraint, TypePath pathToTypeParamInSub ) { - satisfiesConstraintTypeMentionInline(term, constraint, abs, path, pathToTypeParamInSub) + satisfiesConstraintInline(term, constraint, _, pathToTypeParamInConstraint, + pathToTypeParamInSub, _) } pragma[inline] - private predicate satisfiesConstraintTypeNonTypeParamInline( + private predicate satisfiesConstraintNonTypeParamInline( Term term, TypeAbstraction abs, Constraint constraint, TypePath path, Type t ) { - satisfiesConstraintTypeMention1(term, constraint, abs, _, path, t) and + satisfiesConstraint0(term, constraint, abs, _, path, t) and not t = abs.getATypeParameter() } @@ -1142,15 +1160,14 @@ module Make1 Input1> { } /** - * Holds if the type tree at `term` satisfies the constraint `constraint` - * with the type `t` at `path`. + * Holds if `term` satisfies the constraint `constraint` with the type `t` at `path`. */ pragma[nomagic] - predicate satisfiesConstraintType(Term term, Constraint constraint, TypePath path, Type t) { - satisfiesConstraintTypeNonTypeParamInline(term, _, constraint, path, t) + predicate satisfiesConstraint(Term term, Constraint constraint, TypePath path, Type t) { + satisfiesConstraintNonTypeParamInline(term, _, constraint, path, t) or exists(TypePath prefix0, TypePath pathToTypeParamInSub, TypePath suffix | - satisfiesConstraintTypeMention(term, constraint, prefix0, pathToTypeParamInSub) and + satisfiesConstraintAtTypeParameter(term, constraint, prefix0, pathToTypeParamInSub) and getTypeAt(term, pathToTypeParamInSub.appendInverse(suffix)) = t and path = prefix0.append(suffix) ) @@ -1159,25 +1176,34 @@ module Make1 Input1> { t = getTypeAt(term, path) } + pragma[nomagic] + private predicate satisfiesConstraintThrough0( + Term term, Constraint constraint, TypeAbstraction abs, TypePath pathToTypeParamInConstraint, + TypePath pathToTypeParamInSub + ) { + satisfiesConstraintInline(term, constraint, abs, pathToTypeParamInConstraint, + pathToTypeParamInSub, _) + } + /** - * Holds if the type tree at `term` satisfies the constraint `constraint` - * through `abs` with the type `t` at `path`. + * Holds if `term` satisfies the constraint `constraint` through `abs` with + * the type `t` at `path`. */ pragma[nomagic] - predicate satisfiesConstraintTypeThrough( + predicate satisfiesConstraintThrough( Term term, TypeAbstraction abs, Constraint constraint, TypePath path, Type t ) { - satisfiesConstraintTypeNonTypeParamInline(term, abs, constraint, path, t) + satisfiesConstraintNonTypeParamInline(term, abs, constraint, path, t) or exists(TypePath prefix0, TypePath pathToTypeParamInSub, TypePath suffix | - satisfiesConstraintTypeMentionThrough(term, constraint, abs, prefix0, pathToTypeParamInSub) and + satisfiesConstraintThrough0(term, constraint, abs, prefix0, pathToTypeParamInSub) and getTypeAt(term, pathToTypeParamInSub.appendInverse(suffix)) = t and path = prefix0.append(suffix) ) } /** - * Holds if the type tree at `term` does _not_ satisfy the constraint `constraint`. + * Holds if `term` does _not_ satisfy the constraint `constraint`. * * This is an approximation of `not satisfiesConstraintType(term, constraint, _, _)`, * but defined without a negative occurrence of `satisfiesConstraintType`. @@ -1495,7 +1521,7 @@ module Make1 Input1> { TypeMention constraint ) { target = a.getTarget(e) and - typeParameterConstraintHasTypeParameter(target, apos, path, constraint, _, _) + typeParameterHasConstraint(target, apos, _, path, constraint) } private newtype TRelevantAccess = @@ -1556,13 +1582,40 @@ module Make1 Input1> { SatisfiesTypeParameterConstraintInput>; pragma[nomagic] - predicate satisfiesConstraintType( + predicate satisfiesConstraintAtTypeParameter( + Access a, AccessEnvironment e, Declaration target, AccessPosition apos, TypePath prefix, + TypeMention constraint, TypePath pathToTypeParamInConstraint, + TypePath pathToTypeParamInSub + ) { + exists(RelevantAccess ra | + ra = MkRelevantAccess(a, apos, e, prefix) and + SatisfiesTypeParameterConstraint::satisfiesConstraintAtTypeParameter(ra, constraint, + pathToTypeParamInConstraint, pathToTypeParamInSub) and + constraint = ra.getConstraint(target) + ) + } + + pragma[nomagic] + predicate satisfiesConstraint( Access a, AccessEnvironment e, Declaration target, AccessPosition apos, TypePath prefix, TypeMention constraint, TypePath path, Type t ) { exists(RelevantAccess ra | ra = MkRelevantAccess(a, apos, e, prefix) and - SatisfiesTypeParameterConstraint::satisfiesConstraintType(ra, constraint, path, t) and + SatisfiesTypeParameterConstraint::satisfiesConstraint(ra, constraint, path, t) and + constraint = ra.getConstraint(target) + ) + } + + pragma[nomagic] + predicate satisfiesConstraintThrough( + Access a, AccessEnvironment e, Declaration target, AccessPosition apos, TypePath prefix, + TypeAbstraction abs, TypeMention constraint, TypePath path, Type t + ) { + exists(RelevantAccess ra | + ra = MkRelevantAccess(a, apos, e, prefix) and + SatisfiesTypeParameterConstraint::satisfiesConstraintThrough(ra, abs, constraint, path, + t) and constraint = ra.getConstraint(target) ) } @@ -1707,7 +1760,7 @@ module Make1 Input1> { not exists(getTypeArgument(a, target, tp, _)) and exists(TypeMention constraint, AccessPosition apos, TypePath pathToTp, TypePath pathToTp2 | typeParameterConstraintHasTypeParameter(target, apos, pathToTp2, constraint, pathToTp, tp) and - AccessConstraint::satisfiesConstraintType(a, e, target, apos, pathToTp2, constraint, + AccessConstraint::satisfiesConstraint(a, e, target, apos, pathToTp2, constraint, pathToTp.appendInverse(path), t) ) } @@ -1785,6 +1838,82 @@ module Make1 Input1> { not result instanceof TypeParameter ) ) + or + exists( + Declaration target, TypePath prefix, TypeMention constraint, + TypePath pathToTypeParamInConstraint, TypePath pathToTypeParamInSub + | + AccessConstraint::satisfiesConstraintAtTypeParameter(a, e, target, apos, prefix, + constraint, pathToTypeParamInConstraint, pathToTypeParamInSub) + | + exists(TypePath suffix | + /* + * Example: + * + * ```rust + * struct MyThing { ... } + * + * trait MyTrait { ... } + * + * impl MyTrait for MyThing { ... } + * + * fn foo>(x: T) { ... } + * + * let x = MyThing(Default::default()); + * foo(x); + * ``` + * + * At `term` = `foo(x)`, we have + * - `constraint = MyTrait`, + * - `pathToTypeParamInConstraint` = `"B"`, + * - `pathToTypeParamInSub` = `"A"`, + * - `prefix` = `suffix` = `""`, and + * - `result` = `i32`. + * + * That is, it allows us to infer that the type of `x` is `MyThing`. + */ + + result = constraint.getTypeAt(pathToTypeParamInConstraint.appendInverse(suffix)) and + not result instanceof TypeParameter and + path = prefix.append(pathToTypeParamInSub.append(suffix)) + ) + or + exists(TypeParameter tp, TypePath suffix, TypePath mid, TypePath pathToTp | + /* + * Example: + * + * ```rust + * struct MyThing { ... } + * + * trait MyTrait { ... } + * + * impl MyTrait for MyThing { ... } + * + * fn bar>(x: T1, y: T2) {} + * + * let x : i32 = ...; + * let y = MyThing(Default::default()); + * bar(x, y); + * ``` + * + * At `term` = `bar(x, y)`, we have + * - `constraint = MyTrait`, + * - `pathToTypeParamInConstraint` = `"B"`, + * - `pathToTypeParamInSub` = `"A"`, + * - `prefix` = `suffix` = `mid` = `""`, + * - `tp = T1`, + * - `pathToTp` = `"B"`, and + * - `result` = `i32`. + * + * That is, it allows us to infer that the type of `y` is `MyThing`. + */ + + typeMatch(a, e, target, suffix, result, tp) and + typeParameterConstraintHasTypeParameter(target, apos, _, constraint, pathToTp, tp) and + pathToTp = pathToTypeParamInConstraint.appendInverse(mid) and + path = prefix.append(pathToTypeParamInSub.append(mid).append(suffix)) + ) + ) } } diff --git a/shared/typeinference/qlpack.yml b/shared/typeinference/qlpack.yml index 75aedbf6423..2bf5c49d97e 100644 --- a/shared/typeinference/qlpack.yml +++ b/shared/typeinference/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typeinference -version: 0.0.28-dev +version: 0.0.30-dev groups: shared library: true dependencies: diff --git a/shared/typetracking/CHANGELOG.md b/shared/typetracking/CHANGELOG.md index 4132c8bcd99..75d8938e6a1 100644 --- a/shared/typetracking/CHANGELOG.md +++ b/shared/typetracking/CHANGELOG.md @@ -1,3 +1,11 @@ +## 2.0.32 + +No user-facing changes. + +## 2.0.31 + +No user-facing changes. + ## 2.0.30 No user-facing changes. diff --git a/shared/typetracking/change-notes/released/2.0.31.md b/shared/typetracking/change-notes/released/2.0.31.md new file mode 100644 index 00000000000..b3cd05e3de4 --- /dev/null +++ b/shared/typetracking/change-notes/released/2.0.31.md @@ -0,0 +1,3 @@ +## 2.0.31 + +No user-facing changes. diff --git a/shared/typetracking/change-notes/released/2.0.32.md b/shared/typetracking/change-notes/released/2.0.32.md new file mode 100644 index 00000000000..0930bb07f8c --- /dev/null +++ b/shared/typetracking/change-notes/released/2.0.32.md @@ -0,0 +1,3 @@ +## 2.0.32 + +No user-facing changes. diff --git a/shared/typetracking/codeql-pack.release.yml b/shared/typetracking/codeql-pack.release.yml index 19c80429585..483a0d5db8e 100644 --- a/shared/typetracking/codeql-pack.release.yml +++ b/shared/typetracking/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.0.30 +lastReleaseVersion: 2.0.32 diff --git a/shared/typetracking/qlpack.yml b/shared/typetracking/qlpack.yml index b9998e1240a..fe35cf5955b 100644 --- a/shared/typetracking/qlpack.yml +++ b/shared/typetracking/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typetracking -version: 2.0.31-dev +version: 2.0.33-dev groups: shared library: true dependencies: diff --git a/shared/typos/CHANGELOG.md b/shared/typos/CHANGELOG.md index 6f0db2fa4b3..35825098a63 100644 --- a/shared/typos/CHANGELOG.md +++ b/shared/typos/CHANGELOG.md @@ -1,3 +1,11 @@ +## 1.0.48 + +No user-facing changes. + +## 1.0.47 + +No user-facing changes. + ## 1.0.46 No user-facing changes. diff --git a/shared/typos/change-notes/released/1.0.47.md b/shared/typos/change-notes/released/1.0.47.md new file mode 100644 index 00000000000..0c12039c180 --- /dev/null +++ b/shared/typos/change-notes/released/1.0.47.md @@ -0,0 +1,3 @@ +## 1.0.47 + +No user-facing changes. diff --git a/shared/typos/change-notes/released/1.0.48.md b/shared/typos/change-notes/released/1.0.48.md new file mode 100644 index 00000000000..c484c6e8d6e --- /dev/null +++ b/shared/typos/change-notes/released/1.0.48.md @@ -0,0 +1,3 @@ +## 1.0.48 + +No user-facing changes. diff --git a/shared/typos/codeql-pack.release.yml b/shared/typos/codeql-pack.release.yml index 05205e6a59e..6db79f2c397 100644 --- a/shared/typos/codeql-pack.release.yml +++ b/shared/typos/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.46 +lastReleaseVersion: 1.0.48 diff --git a/shared/typos/qlpack.yml b/shared/typos/qlpack.yml index dc62caedd6b..a8c85168f20 100644 --- a/shared/typos/qlpack.yml +++ b/shared/typos/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typos -version: 1.0.47-dev +version: 1.0.49-dev groups: shared library: true warnOnImplicitThis: true diff --git a/shared/util/CHANGELOG.md b/shared/util/CHANGELOG.md index 56a45488e07..d1becc8ba2c 100644 --- a/shared/util/CHANGELOG.md +++ b/shared/util/CHANGELOG.md @@ -1,3 +1,11 @@ +## 2.0.35 + +No user-facing changes. + +## 2.0.34 + +No user-facing changes. + ## 2.0.33 No user-facing changes. diff --git a/shared/util/change-notes/released/2.0.34.md b/shared/util/change-notes/released/2.0.34.md new file mode 100644 index 00000000000..fd170d38ce6 --- /dev/null +++ b/shared/util/change-notes/released/2.0.34.md @@ -0,0 +1,3 @@ +## 2.0.34 + +No user-facing changes. diff --git a/shared/util/change-notes/released/2.0.35.md b/shared/util/change-notes/released/2.0.35.md new file mode 100644 index 00000000000..526e1fc9f4c --- /dev/null +++ b/shared/util/change-notes/released/2.0.35.md @@ -0,0 +1,3 @@ +## 2.0.35 + +No user-facing changes. diff --git a/shared/util/codeql-pack.release.yml b/shared/util/codeql-pack.release.yml index 92e23200b4d..27eb8ef8ece 100644 --- a/shared/util/codeql-pack.release.yml +++ b/shared/util/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.0.33 +lastReleaseVersion: 2.0.35 diff --git a/shared/util/qlpack.yml b/shared/util/qlpack.yml index d27b3d6c59c..99f8c5374dc 100644 --- a/shared/util/qlpack.yml +++ b/shared/util/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/util -version: 2.0.34-dev +version: 2.0.36-dev groups: shared library: true dependencies: null diff --git a/shared/xml/CHANGELOG.md b/shared/xml/CHANGELOG.md index dc06867e32d..131bf7afd2a 100644 --- a/shared/xml/CHANGELOG.md +++ b/shared/xml/CHANGELOG.md @@ -1,3 +1,11 @@ +## 1.0.48 + +No user-facing changes. + +## 1.0.47 + +No user-facing changes. + ## 1.0.46 No user-facing changes. diff --git a/shared/xml/change-notes/released/1.0.47.md b/shared/xml/change-notes/released/1.0.47.md new file mode 100644 index 00000000000..0c12039c180 --- /dev/null +++ b/shared/xml/change-notes/released/1.0.47.md @@ -0,0 +1,3 @@ +## 1.0.47 + +No user-facing changes. diff --git a/shared/xml/change-notes/released/1.0.48.md b/shared/xml/change-notes/released/1.0.48.md new file mode 100644 index 00000000000..c484c6e8d6e --- /dev/null +++ b/shared/xml/change-notes/released/1.0.48.md @@ -0,0 +1,3 @@ +## 1.0.48 + +No user-facing changes. diff --git a/shared/xml/codeql-pack.release.yml b/shared/xml/codeql-pack.release.yml index 05205e6a59e..6db79f2c397 100644 --- a/shared/xml/codeql-pack.release.yml +++ b/shared/xml/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.46 +lastReleaseVersion: 1.0.48 diff --git a/shared/xml/qlpack.yml b/shared/xml/qlpack.yml index 5195fcbbe18..2c44df63e7e 100644 --- a/shared/xml/qlpack.yml +++ b/shared/xml/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/xml -version: 1.0.47-dev +version: 1.0.49-dev groups: shared library: true dependencies: diff --git a/shared/yaml/CHANGELOG.md b/shared/yaml/CHANGELOG.md index 557db2b4405..1c420b31355 100644 --- a/shared/yaml/CHANGELOG.md +++ b/shared/yaml/CHANGELOG.md @@ -1,3 +1,11 @@ +## 1.0.48 + +No user-facing changes. + +## 1.0.47 + +No user-facing changes. + ## 1.0.46 No user-facing changes. diff --git a/shared/yaml/change-notes/released/1.0.47.md b/shared/yaml/change-notes/released/1.0.47.md new file mode 100644 index 00000000000..0c12039c180 --- /dev/null +++ b/shared/yaml/change-notes/released/1.0.47.md @@ -0,0 +1,3 @@ +## 1.0.47 + +No user-facing changes. diff --git a/shared/yaml/change-notes/released/1.0.48.md b/shared/yaml/change-notes/released/1.0.48.md new file mode 100644 index 00000000000..c484c6e8d6e --- /dev/null +++ b/shared/yaml/change-notes/released/1.0.48.md @@ -0,0 +1,3 @@ +## 1.0.48 + +No user-facing changes. diff --git a/shared/yaml/codeql-pack.release.yml b/shared/yaml/codeql-pack.release.yml index 05205e6a59e..6db79f2c397 100644 --- a/shared/yaml/codeql-pack.release.yml +++ b/shared/yaml/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.46 +lastReleaseVersion: 1.0.48 diff --git a/shared/yaml/qlpack.yml b/shared/yaml/qlpack.yml index b6f74301d3a..6778ee5a156 100644 --- a/shared/yaml/qlpack.yml +++ b/shared/yaml/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/yaml -version: 1.0.47-dev +version: 1.0.49-dev groups: shared library: true warnOnImplicitThis: true diff --git a/swift/downgrades/5738be6bb04742c424efdbf9f4de11f0b10fa37d/builtin_fixed_array_types.ql b/swift/downgrades/5738be6bb04742c424efdbf9f4de11f0b10fa37d/builtin_fixed_array_types.ql new file mode 100644 index 00000000000..8a678cc40da --- /dev/null +++ b/swift/downgrades/5738be6bb04742c424efdbf9f4de11f0b10fa37d/builtin_fixed_array_types.ql @@ -0,0 +1,7 @@ +class BuiltinFixedArrayType extends @builtin_fixed_array_type { + string toString() { none() } +} + +from BuiltinFixedArrayType builtinFixedArrayType +where builtin_fixed_array_types(builtinFixedArrayType, _, _) +select builtinFixedArrayType diff --git a/swift/downgrades/5738be6bb04742c424efdbf9f4de11f0b10fa37d/old.dbscheme b/swift/downgrades/5738be6bb04742c424efdbf9f4de11f0b10fa37d/old.dbscheme new file mode 100644 index 00000000000..5738be6bb04 --- /dev/null +++ b/swift/downgrades/5738be6bb04742c424efdbf9f4de11f0b10fa37d/old.dbscheme @@ -0,0 +1,2891 @@ +// generated by codegen/codegen.py, do not edit + +// from prefix.dbscheme +/** + * The source location of the snapshot. + */ +sourceLocationPrefix( + string prefix: string ref +); + + +// from schema.py + +@element = + @file +| @generic_context +| @locatable +| @location +| @type +; + +#keyset[id] +element_is_unknown( + int id: @element ref +); + +@file = + @db_file +; + +#keyset[id] +files( + int id: @file ref, + string name: string ref +); + +#keyset[id] +file_is_successfully_extracted( + int id: @file ref +); + +@locatable = + @argument +| @ast_node +| @comment +| @diagnostics +| @error_element +; + +#keyset[id] +locatable_locations( + int id: @locatable ref, + int location: @location_or_none ref +); + +@location = + @db_location +; + +#keyset[id] +locations( + int id: @location ref, + int file: @file_or_none ref, + int start_line: int ref, + int start_column: int ref, + int end_line: int ref, + int end_column: int ref +); + +@ast_node = + @availability_info +| @availability_spec +| @callable +| @case_label_item +| @condition_element +| @decl +| @expr +| @key_path_component +| @macro_role +| @pattern +| @stmt +| @stmt_condition +| @type_repr +; + +comments( + unique int id: @comment, + string text: string ref +); + +db_files( + unique int id: @db_file +); + +db_locations( + unique int id: @db_location +); + +diagnostics( + unique int id: @diagnostics, + string text: string ref, + int kind: int ref +); + +@error_element = + @error_expr +| @error_type +| @overloaded_decl_ref_expr +| @unresolved_decl_ref_expr +| @unresolved_dot_expr +| @unresolved_member_chain_result_expr +| @unresolved_member_expr +| @unresolved_pattern_expr +| @unresolved_specialize_expr +| @unresolved_type +| @unresolved_type_conversion_expr +| @unspecified_element +; + +availability_infos( + unique int id: @availability_info +); + +#keyset[id] +availability_info_is_unavailable( + int id: @availability_info ref +); + +#keyset[id, index] +availability_info_specs( + int id: @availability_info ref, + int index: int ref, + int spec: @availability_spec_or_none ref +); + +availability_specs( + unique int id: @availability_spec +); + +#keyset[id] +availability_spec_platforms( + int id: @availability_spec ref, + string platform: string ref +); + +#keyset[id] +availability_spec_versions( + int id: @availability_spec ref, + string version: string ref +); + +#keyset[id] +availability_spec_is_wildcard( + int id: @availability_spec ref +); + +@callable = + @closure_expr +| @function +; + +#keyset[id] +callable_names( + int id: @callable ref, + string name: string ref +); + +#keyset[id] +callable_self_params( + int id: @callable ref, + int self_param: @param_decl_or_none ref +); + +#keyset[id, index] +callable_params( + int id: @callable ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +#keyset[id] +callable_bodies( + int id: @callable ref, + int body: @brace_stmt_or_none ref +); + +#keyset[id, index] +callable_captures( + int id: @callable ref, + int index: int ref, + int capture: @captured_decl_or_none ref +); + +key_path_components( + unique int id: @key_path_component, + int kind: int ref, + int component_type: @type_or_none ref +); + +#keyset[id, index] +key_path_component_subscript_arguments( + int id: @key_path_component ref, + int index: int ref, + int subscript_argument: @argument_or_none ref +); + +#keyset[id] +key_path_component_tuple_indices( + int id: @key_path_component ref, + int tuple_index: int ref +); + +#keyset[id] +key_path_component_decl_refs( + int id: @key_path_component ref, + int decl_ref: @value_decl_or_none ref +); + +macro_roles( + unique int id: @macro_role, + int kind: int ref, + int macro_syntax: int ref +); + +#keyset[id, index] +macro_role_conformances( + int id: @macro_role ref, + int index: int ref, + int conformance: @expr_or_none ref +); + +#keyset[id, index] +macro_role_names( + int id: @macro_role ref, + int index: int ref, + string name: string ref +); + +unspecified_elements( + unique int id: @unspecified_element, + string property: string ref, + string error: string ref +); + +#keyset[id] +unspecified_element_parents( + int id: @unspecified_element ref, + int parent: @element ref +); + +#keyset[id] +unspecified_element_indices( + int id: @unspecified_element ref, + int index: int ref +); + +#keyset[id, index] +unspecified_element_children( + int id: @unspecified_element ref, + int index: int ref, + int child: @ast_node_or_none ref +); + +@decl = + @captured_decl +| @enum_case_decl +| @extension_decl +| @if_config_decl +| @import_decl +| @missing_member_decl +| @operator_decl +| @pattern_binding_decl +| @pound_diagnostic_decl +| @precedence_group_decl +| @top_level_code_decl +| @using_decl +| @value_decl +; + +#keyset[id] +decls( //dir=decl + int id: @decl ref, + int module: @module_decl_or_none ref +); + +#keyset[id, index] +decl_members( //dir=decl + int id: @decl ref, + int index: int ref, + int member: @decl_or_none ref +); + +@generic_context = + @extension_decl +| @function +| @generic_type_decl +| @macro_decl +| @subscript_decl +; + +#keyset[id, index] +generic_context_generic_type_params( //dir=decl + int id: @generic_context ref, + int index: int ref, + int generic_type_param: @generic_type_param_decl_or_none ref +); + +captured_decls( //dir=decl + unique int id: @captured_decl, + int decl: @value_decl_or_none ref +); + +#keyset[id] +captured_decl_is_direct( //dir=decl + int id: @captured_decl ref +); + +#keyset[id] +captured_decl_is_escaping( //dir=decl + int id: @captured_decl ref +); + +enum_case_decls( //dir=decl + unique int id: @enum_case_decl +); + +#keyset[id, index] +enum_case_decl_elements( //dir=decl + int id: @enum_case_decl ref, + int index: int ref, + int element: @enum_element_decl_or_none ref +); + +extension_decls( //dir=decl + unique int id: @extension_decl, + int extended_type_decl: @nominal_type_decl_or_none ref +); + +#keyset[id, index] +extension_decl_protocols( //dir=decl + int id: @extension_decl ref, + int index: int ref, + int protocol: @protocol_decl_or_none ref +); + +if_config_decls( //dir=decl + unique int id: @if_config_decl +); + +#keyset[id, index] +if_config_decl_active_elements( //dir=decl + int id: @if_config_decl ref, + int index: int ref, + int active_element: @ast_node_or_none ref +); + +import_decls( //dir=decl + unique int id: @import_decl +); + +#keyset[id] +import_decl_is_exported( //dir=decl + int id: @import_decl ref +); + +#keyset[id] +import_decl_imported_modules( //dir=decl + int id: @import_decl ref, + int imported_module: @module_decl_or_none ref +); + +#keyset[id, index] +import_decl_declarations( //dir=decl + int id: @import_decl ref, + int index: int ref, + int declaration: @value_decl_or_none ref +); + +missing_member_decls( //dir=decl + unique int id: @missing_member_decl, + string name: string ref +); + +@operator_decl = + @infix_operator_decl +| @postfix_operator_decl +| @prefix_operator_decl +; + +#keyset[id] +operator_decls( //dir=decl + int id: @operator_decl ref, + string name: string ref +); + +pattern_binding_decls( //dir=decl + unique int id: @pattern_binding_decl +); + +#keyset[id, index] +pattern_binding_decl_inits( //dir=decl + int id: @pattern_binding_decl ref, + int index: int ref, + int init: @expr_or_none ref +); + +#keyset[id, index] +pattern_binding_decl_patterns( //dir=decl + int id: @pattern_binding_decl ref, + int index: int ref, + int pattern: @pattern_or_none ref +); + +pound_diagnostic_decls( //dir=decl + unique int id: @pound_diagnostic_decl, + int kind: int ref, + int message: @string_literal_expr_or_none ref +); + +precedence_group_decls( //dir=decl + unique int id: @precedence_group_decl +); + +top_level_code_decls( //dir=decl + unique int id: @top_level_code_decl, + int body: @brace_stmt_or_none ref +); + +using_decls( //dir=decl + unique int id: @using_decl +); + +#keyset[id] +using_decl_is_main_actor( //dir=decl + int id: @using_decl ref +); + +#keyset[id] +using_decl_is_nonisolated( //dir=decl + int id: @using_decl ref +); + +@value_decl = + @abstract_storage_decl +| @enum_element_decl +| @function +| @macro_decl +| @type_decl +; + +#keyset[id] +value_decls( //dir=decl + int id: @value_decl ref, + int interface_type: @type_or_none ref +); + +@abstract_storage_decl = + @subscript_decl +| @var_decl +; + +#keyset[id, index] +abstract_storage_decl_accessors( //dir=decl + int id: @abstract_storage_decl ref, + int index: int ref, + int accessor: @accessor_or_none ref +); + +enum_element_decls( //dir=decl + unique int id: @enum_element_decl, + string name: string ref +); + +#keyset[id, index] +enum_element_decl_params( //dir=decl + int id: @enum_element_decl ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +@function = + @accessor_or_named_function +| @deinitializer +| @initializer +; + +infix_operator_decls( //dir=decl + unique int id: @infix_operator_decl +); + +#keyset[id] +infix_operator_decl_precedence_groups( //dir=decl + int id: @infix_operator_decl ref, + int precedence_group: @precedence_group_decl_or_none ref +); + +macro_decls( //dir=decl + unique int id: @macro_decl, + string name: string ref +); + +#keyset[id, index] +macro_decl_parameters( //dir=decl + int id: @macro_decl ref, + int index: int ref, + int parameter: @param_decl_or_none ref +); + +#keyset[id, index] +macro_decl_roles( //dir=decl + int id: @macro_decl ref, + int index: int ref, + int role: @macro_role_or_none ref +); + +postfix_operator_decls( //dir=decl + unique int id: @postfix_operator_decl +); + +prefix_operator_decls( //dir=decl + unique int id: @prefix_operator_decl +); + +@type_decl = + @abstract_type_param_decl +| @generic_type_decl +| @module_decl +; + +#keyset[id] +type_decls( //dir=decl + int id: @type_decl ref, + string name: string ref +); + +#keyset[id, index] +type_decl_inherited_types( //dir=decl + int id: @type_decl ref, + int index: int ref, + int inherited_type: @type_or_none ref +); + +@abstract_type_param_decl = + @associated_type_decl +| @generic_type_param_decl +; + +@accessor_or_named_function = + @accessor +| @named_function +; + +deinitializers( //dir=decl + unique int id: @deinitializer +); + +@generic_type_decl = + @nominal_type_decl +| @opaque_type_decl +| @type_alias_decl +; + +initializers( //dir=decl + unique int id: @initializer +); + +module_decls( //dir=decl + unique int id: @module_decl +); + +#keyset[id] +module_decl_is_builtin_module( //dir=decl + int id: @module_decl ref +); + +#keyset[id] +module_decl_is_system_module( //dir=decl + int id: @module_decl ref +); + +module_decl_imported_modules( //dir=decl + int id: @module_decl ref, + int imported_module: @module_decl_or_none ref +); + +module_decl_exported_modules( //dir=decl + int id: @module_decl ref, + int exported_module: @module_decl_or_none ref +); + +subscript_decls( //dir=decl + unique int id: @subscript_decl, + int element_type: @type_or_none ref +); + +#keyset[id, index] +subscript_decl_params( //dir=decl + int id: @subscript_decl ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +@var_decl = + @concrete_var_decl +| @param_decl +; + +#keyset[id] +var_decls( //dir=decl + int id: @var_decl ref, + string name: string ref, + int type_: @type_or_none ref +); + +#keyset[id] +var_decl_attached_property_wrapper_types( //dir=decl + int id: @var_decl ref, + int attached_property_wrapper_type: @type_or_none ref +); + +#keyset[id] +var_decl_parent_patterns( //dir=decl + int id: @var_decl ref, + int parent_pattern: @pattern_or_none ref +); + +#keyset[id] +var_decl_parent_initializers( //dir=decl + int id: @var_decl ref, + int parent_initializer: @expr_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_backing_var_bindings( //dir=decl + int id: @var_decl ref, + int property_wrapper_backing_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_backing_vars( //dir=decl + int id: @var_decl ref, + int property_wrapper_backing_var: @var_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_projection_var_bindings( //dir=decl + int id: @var_decl ref, + int property_wrapper_projection_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_projection_vars( //dir=decl + int id: @var_decl ref, + int property_wrapper_projection_var: @var_decl_or_none ref +); + +accessors( //dir=decl + unique int id: @accessor +); + +#keyset[id] +accessor_is_getter( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_setter( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_will_set( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_did_set( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_read( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_modify( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_unsafe_address( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_unsafe_mutable_address( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_distributed_get( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_read2( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_modify2( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_init( //dir=decl + int id: @accessor ref +); + +associated_type_decls( //dir=decl + unique int id: @associated_type_decl +); + +concrete_var_decls( //dir=decl + unique int id: @concrete_var_decl, + int introducer_int: int ref +); + +generic_type_param_decls( //dir=decl + unique int id: @generic_type_param_decl +); + +named_functions( //dir=decl + unique int id: @named_function +); + +@nominal_type_decl = + @class_decl +| @enum_decl +| @protocol_decl +| @struct_decl +; + +#keyset[id] +nominal_type_decls( //dir=decl + int id: @nominal_type_decl ref, + int type_: @type_or_none ref +); + +opaque_type_decls( //dir=decl + unique int id: @opaque_type_decl, + int naming_declaration: @value_decl_or_none ref +); + +#keyset[id, index] +opaque_type_decl_opaque_generic_params( //dir=decl + int id: @opaque_type_decl ref, + int index: int ref, + int opaque_generic_param: @generic_type_param_type_or_none ref +); + +param_decls( //dir=decl + unique int id: @param_decl +); + +#keyset[id] +param_decl_is_inout( //dir=decl + int id: @param_decl ref +); + +#keyset[id] +param_decl_property_wrapper_local_wrapped_var_bindings( //dir=decl + int id: @param_decl ref, + int property_wrapper_local_wrapped_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +param_decl_property_wrapper_local_wrapped_vars( //dir=decl + int id: @param_decl ref, + int property_wrapper_local_wrapped_var: @var_decl_or_none ref +); + +type_alias_decls( //dir=decl + unique int id: @type_alias_decl, + int aliased_type: @type_or_none ref +); + +class_decls( //dir=decl + unique int id: @class_decl +); + +enum_decls( //dir=decl + unique int id: @enum_decl +); + +protocol_decls( //dir=decl + unique int id: @protocol_decl +); + +struct_decls( //dir=decl + unique int id: @struct_decl +); + +arguments( //dir=expr + unique int id: @argument, + string label: string ref, + int expr: @expr_or_none ref +); + +@expr = + @any_try_expr +| @applied_property_wrapper_expr +| @apply_expr +| @assign_expr +| @bind_optional_expr +| @capture_list_expr +| @closure_expr +| @collection_expr +| @consume_expr +| @copy_expr +| @current_context_isolation_expr +| @decl_ref_expr +| @default_argument_expr +| @discard_assignment_expr +| @dot_syntax_base_ignored_expr +| @dynamic_type_expr +| @enum_is_case_expr +| @error_expr +| @explicit_cast_expr +| @extract_function_isolation_expr +| @force_value_expr +| @identity_expr +| @if_expr +| @implicit_conversion_expr +| @in_out_expr +| @key_path_application_expr +| @key_path_dot_expr +| @key_path_expr +| @lazy_initialization_expr +| @literal_expr +| @lookup_expr +| @make_temporarily_escapable_expr +| @materialize_pack_expr +| @obj_c_selector_expr +| @one_way_expr +| @opaque_value_expr +| @open_existential_expr +| @optional_evaluation_expr +| @other_initializer_ref_expr +| @overloaded_decl_ref_expr +| @pack_element_expr +| @pack_expansion_expr +| @property_wrapper_value_placeholder_expr +| @rebind_self_in_initializer_expr +| @sequence_expr +| @single_value_stmt_expr +| @super_ref_expr +| @tap_expr +| @tuple_element_expr +| @tuple_expr +| @type_expr +| @type_value_expr +| @unresolved_decl_ref_expr +| @unresolved_dot_expr +| @unresolved_member_expr +| @unresolved_pattern_expr +| @unresolved_specialize_expr +| @vararg_expansion_expr +; + +#keyset[id] +expr_types( //dir=expr + int id: @expr ref, + int type_: @type_or_none ref +); + +@any_try_expr = + @force_try_expr +| @optional_try_expr +| @try_expr +; + +#keyset[id] +any_try_exprs( //dir=expr + int id: @any_try_expr ref, + int sub_expr: @expr_or_none ref +); + +applied_property_wrapper_exprs( //dir=expr + unique int id: @applied_property_wrapper_expr, + int kind: int ref, + int value: @expr_or_none ref, + int param: @param_decl_or_none ref +); + +@apply_expr = + @binary_expr +| @call_expr +| @postfix_unary_expr +| @prefix_unary_expr +| @self_apply_expr +; + +#keyset[id] +apply_exprs( //dir=expr + int id: @apply_expr ref, + int function: @expr_or_none ref +); + +#keyset[id, index] +apply_expr_arguments( //dir=expr + int id: @apply_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +assign_exprs( //dir=expr + unique int id: @assign_expr, + int dest: @expr_or_none ref, + int source: @expr_or_none ref +); + +bind_optional_exprs( //dir=expr + unique int id: @bind_optional_expr, + int sub_expr: @expr_or_none ref +); + +capture_list_exprs( //dir=expr + unique int id: @capture_list_expr, + int closure_body: @closure_expr_or_none ref +); + +#keyset[id, index] +capture_list_expr_binding_decls( //dir=expr + int id: @capture_list_expr ref, + int index: int ref, + int binding_decl: @pattern_binding_decl_or_none ref +); + +@closure_expr = + @auto_closure_expr +| @explicit_closure_expr +; + +@collection_expr = + @array_expr +| @dictionary_expr +; + +consume_exprs( //dir=expr + unique int id: @consume_expr, + int sub_expr: @expr_or_none ref +); + +copy_exprs( //dir=expr + unique int id: @copy_expr, + int sub_expr: @expr_or_none ref +); + +current_context_isolation_exprs( //dir=expr + unique int id: @current_context_isolation_expr, + int actor: @expr_or_none ref +); + +decl_ref_exprs( //dir=expr + unique int id: @decl_ref_expr, + int decl: @decl_or_none ref +); + +#keyset[id, index] +decl_ref_expr_replacement_types( //dir=expr + int id: @decl_ref_expr ref, + int index: int ref, + int replacement_type: @type_or_none ref +); + +#keyset[id] +decl_ref_expr_has_direct_to_storage_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_ordinary_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_distributed_thunk_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +default_argument_exprs( //dir=expr + unique int id: @default_argument_expr, + int param_decl: @param_decl_or_none ref, + int param_index: int ref +); + +#keyset[id] +default_argument_expr_caller_side_defaults( //dir=expr + int id: @default_argument_expr ref, + int caller_side_default: @expr_or_none ref +); + +discard_assignment_exprs( //dir=expr + unique int id: @discard_assignment_expr +); + +dot_syntax_base_ignored_exprs( //dir=expr + unique int id: @dot_syntax_base_ignored_expr, + int qualifier: @expr_or_none ref, + int sub_expr: @expr_or_none ref +); + +dynamic_type_exprs( //dir=expr + unique int id: @dynamic_type_expr, + int base: @expr_or_none ref +); + +enum_is_case_exprs( //dir=expr + unique int id: @enum_is_case_expr, + int sub_expr: @expr_or_none ref, + int element: @enum_element_decl_or_none ref +); + +error_exprs( //dir=expr + unique int id: @error_expr +); + +@explicit_cast_expr = + @checked_cast_expr +| @coerce_expr +; + +#keyset[id] +explicit_cast_exprs( //dir=expr + int id: @explicit_cast_expr ref, + int sub_expr: @expr_or_none ref +); + +extract_function_isolation_exprs( //dir=expr + unique int id: @extract_function_isolation_expr, + int function_expr: @expr_or_none ref +); + +force_value_exprs( //dir=expr + unique int id: @force_value_expr, + int sub_expr: @expr_or_none ref +); + +@identity_expr = + @await_expr +| @borrow_expr +| @dot_self_expr +| @paren_expr +| @unresolved_member_chain_result_expr +| @unsafe_expr +; + +#keyset[id] +identity_exprs( //dir=expr + int id: @identity_expr ref, + int sub_expr: @expr_or_none ref +); + +if_exprs( //dir=expr + unique int id: @if_expr, + int condition: @expr_or_none ref, + int then_expr: @expr_or_none ref, + int else_expr: @expr_or_none ref +); + +@implicit_conversion_expr = + @abi_safe_conversion_expr +| @actor_isolation_erasure_expr +| @any_hashable_erasure_expr +| @archetype_to_super_expr +| @array_to_pointer_expr +| @bridge_from_obj_c_expr +| @bridge_to_obj_c_expr +| @class_metatype_to_object_expr +| @collection_upcast_conversion_expr +| @conditional_bridge_from_obj_c_expr +| @covariant_function_conversion_expr +| @covariant_return_conversion_expr +| @derived_to_base_expr +| @destructure_tuple_expr +| @differentiable_function_expr +| @differentiable_function_extract_original_expr +| @erasure_expr +| @existential_metatype_to_object_expr +| @foreign_object_conversion_expr +| @function_conversion_expr +| @in_out_to_pointer_expr +| @inject_into_optional_expr +| @linear_function_expr +| @linear_function_extract_original_expr +| @linear_to_differentiable_function_expr +| @load_expr +| @metatype_conversion_expr +| @pointer_to_pointer_expr +| @protocol_metatype_to_object_expr +| @string_to_pointer_expr +| @underlying_to_opaque_expr +| @unevaluated_instance_expr +| @unreachable_expr +| @unresolved_type_conversion_expr +| @unsafe_cast_expr +; + +#keyset[id] +implicit_conversion_exprs( //dir=expr + int id: @implicit_conversion_expr ref, + int sub_expr: @expr_or_none ref +); + +in_out_exprs( //dir=expr + unique int id: @in_out_expr, + int sub_expr: @expr_or_none ref +); + +key_path_application_exprs( //dir=expr + unique int id: @key_path_application_expr, + int base: @expr_or_none ref, + int key_path: @expr_or_none ref +); + +key_path_dot_exprs( //dir=expr + unique int id: @key_path_dot_expr +); + +key_path_exprs( //dir=expr + unique int id: @key_path_expr +); + +#keyset[id] +key_path_expr_roots( //dir=expr + int id: @key_path_expr ref, + int root: @type_repr_or_none ref +); + +#keyset[id, index] +key_path_expr_components( //dir=expr + int id: @key_path_expr ref, + int index: int ref, + int component: @key_path_component_or_none ref +); + +lazy_initialization_exprs( //dir=expr + unique int id: @lazy_initialization_expr, + int sub_expr: @expr_or_none ref +); + +@literal_expr = + @builtin_literal_expr +| @interpolated_string_literal_expr +| @nil_literal_expr +| @object_literal_expr +| @regex_literal_expr +; + +@lookup_expr = + @dynamic_lookup_expr +| @member_ref_expr +| @subscript_expr +; + +#keyset[id] +lookup_exprs( //dir=expr + int id: @lookup_expr ref, + int base: @expr_or_none ref +); + +#keyset[id] +lookup_expr_members( //dir=expr + int id: @lookup_expr ref, + int member: @decl_or_none ref +); + +make_temporarily_escapable_exprs( //dir=expr + unique int id: @make_temporarily_escapable_expr, + int escaping_closure: @opaque_value_expr_or_none ref, + int nonescaping_closure: @expr_or_none ref, + int sub_expr: @expr_or_none ref +); + +materialize_pack_exprs( //dir=expr + unique int id: @materialize_pack_expr, + int sub_expr: @expr_or_none ref +); + +obj_c_selector_exprs( //dir=expr + unique int id: @obj_c_selector_expr, + int sub_expr: @expr_or_none ref, + int method: @function_or_none ref +); + +one_way_exprs( //dir=expr + unique int id: @one_way_expr, + int sub_expr: @expr_or_none ref +); + +opaque_value_exprs( //dir=expr + unique int id: @opaque_value_expr +); + +open_existential_exprs( //dir=expr + unique int id: @open_existential_expr, + int sub_expr: @expr_or_none ref, + int existential: @expr_or_none ref, + int opaque_expr: @opaque_value_expr_or_none ref +); + +optional_evaluation_exprs( //dir=expr + unique int id: @optional_evaluation_expr, + int sub_expr: @expr_or_none ref +); + +other_initializer_ref_exprs( //dir=expr + unique int id: @other_initializer_ref_expr, + int initializer: @initializer_or_none ref +); + +overloaded_decl_ref_exprs( //dir=expr + unique int id: @overloaded_decl_ref_expr +); + +#keyset[id, index] +overloaded_decl_ref_expr_possible_declarations( //dir=expr + int id: @overloaded_decl_ref_expr ref, + int index: int ref, + int possible_declaration: @value_decl_or_none ref +); + +pack_element_exprs( //dir=expr + unique int id: @pack_element_expr, + int sub_expr: @expr_or_none ref +); + +pack_expansion_exprs( //dir=expr + unique int id: @pack_expansion_expr, + int pattern_expr: @expr_or_none ref +); + +property_wrapper_value_placeholder_exprs( //dir=expr + unique int id: @property_wrapper_value_placeholder_expr, + int placeholder: @opaque_value_expr_or_none ref +); + +#keyset[id] +property_wrapper_value_placeholder_expr_wrapped_values( //dir=expr + int id: @property_wrapper_value_placeholder_expr ref, + int wrapped_value: @expr_or_none ref +); + +rebind_self_in_initializer_exprs( //dir=expr + unique int id: @rebind_self_in_initializer_expr, + int sub_expr: @expr_or_none ref, + int self: @var_decl_or_none ref +); + +sequence_exprs( //dir=expr + unique int id: @sequence_expr +); + +#keyset[id, index] +sequence_expr_elements( //dir=expr + int id: @sequence_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +single_value_stmt_exprs( //dir=expr + unique int id: @single_value_stmt_expr, + int stmt: @stmt_or_none ref +); + +super_ref_exprs( //dir=expr + unique int id: @super_ref_expr, + int self: @var_decl_or_none ref +); + +tap_exprs( //dir=expr + unique int id: @tap_expr, + int body: @brace_stmt_or_none ref, + int var: @var_decl_or_none ref +); + +#keyset[id] +tap_expr_sub_exprs( //dir=expr + int id: @tap_expr ref, + int sub_expr: @expr_or_none ref +); + +tuple_element_exprs( //dir=expr + unique int id: @tuple_element_expr, + int sub_expr: @expr_or_none ref, + int index: int ref +); + +tuple_exprs( //dir=expr + unique int id: @tuple_expr +); + +#keyset[id, index] +tuple_expr_elements( //dir=expr + int id: @tuple_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +type_exprs( //dir=expr + unique int id: @type_expr +); + +#keyset[id] +type_expr_type_reprs( //dir=expr + int id: @type_expr ref, + int type_repr: @type_repr_or_none ref +); + +type_value_exprs( //dir=expr + unique int id: @type_value_expr, + int type_repr: @type_repr_or_none ref +); + +unresolved_decl_ref_exprs( //dir=expr + unique int id: @unresolved_decl_ref_expr +); + +#keyset[id] +unresolved_decl_ref_expr_names( //dir=expr + int id: @unresolved_decl_ref_expr ref, + string name: string ref +); + +unresolved_dot_exprs( //dir=expr + unique int id: @unresolved_dot_expr, + int base: @expr_or_none ref, + string name: string ref +); + +unresolved_member_exprs( //dir=expr + unique int id: @unresolved_member_expr, + string name: string ref +); + +unresolved_pattern_exprs( //dir=expr + unique int id: @unresolved_pattern_expr, + int sub_pattern: @pattern_or_none ref +); + +unresolved_specialize_exprs( //dir=expr + unique int id: @unresolved_specialize_expr, + int sub_expr: @expr_or_none ref +); + +vararg_expansion_exprs( //dir=expr + unique int id: @vararg_expansion_expr, + int sub_expr: @expr_or_none ref +); + +abi_safe_conversion_exprs( //dir=expr + unique int id: @abi_safe_conversion_expr +); + +actor_isolation_erasure_exprs( //dir=expr + unique int id: @actor_isolation_erasure_expr +); + +any_hashable_erasure_exprs( //dir=expr + unique int id: @any_hashable_erasure_expr +); + +archetype_to_super_exprs( //dir=expr + unique int id: @archetype_to_super_expr +); + +array_exprs( //dir=expr + unique int id: @array_expr +); + +#keyset[id, index] +array_expr_elements( //dir=expr + int id: @array_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +array_to_pointer_exprs( //dir=expr + unique int id: @array_to_pointer_expr +); + +auto_closure_exprs( //dir=expr + unique int id: @auto_closure_expr +); + +await_exprs( //dir=expr + unique int id: @await_expr +); + +binary_exprs( //dir=expr + unique int id: @binary_expr +); + +borrow_exprs( //dir=expr + unique int id: @borrow_expr +); + +bridge_from_obj_c_exprs( //dir=expr + unique int id: @bridge_from_obj_c_expr +); + +bridge_to_obj_c_exprs( //dir=expr + unique int id: @bridge_to_obj_c_expr +); + +@builtin_literal_expr = + @boolean_literal_expr +| @magic_identifier_literal_expr +| @number_literal_expr +| @string_literal_expr +; + +call_exprs( //dir=expr + unique int id: @call_expr +); + +@checked_cast_expr = + @conditional_checked_cast_expr +| @forced_checked_cast_expr +| @is_expr +; + +class_metatype_to_object_exprs( //dir=expr + unique int id: @class_metatype_to_object_expr +); + +coerce_exprs( //dir=expr + unique int id: @coerce_expr +); + +collection_upcast_conversion_exprs( //dir=expr + unique int id: @collection_upcast_conversion_expr +); + +conditional_bridge_from_obj_c_exprs( //dir=expr + unique int id: @conditional_bridge_from_obj_c_expr +); + +covariant_function_conversion_exprs( //dir=expr + unique int id: @covariant_function_conversion_expr +); + +covariant_return_conversion_exprs( //dir=expr + unique int id: @covariant_return_conversion_expr +); + +derived_to_base_exprs( //dir=expr + unique int id: @derived_to_base_expr +); + +destructure_tuple_exprs( //dir=expr + unique int id: @destructure_tuple_expr +); + +dictionary_exprs( //dir=expr + unique int id: @dictionary_expr +); + +#keyset[id, index] +dictionary_expr_elements( //dir=expr + int id: @dictionary_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +differentiable_function_exprs( //dir=expr + unique int id: @differentiable_function_expr +); + +differentiable_function_extract_original_exprs( //dir=expr + unique int id: @differentiable_function_extract_original_expr +); + +dot_self_exprs( //dir=expr + unique int id: @dot_self_expr +); + +@dynamic_lookup_expr = + @dynamic_member_ref_expr +| @dynamic_subscript_expr +; + +erasure_exprs( //dir=expr + unique int id: @erasure_expr +); + +existential_metatype_to_object_exprs( //dir=expr + unique int id: @existential_metatype_to_object_expr +); + +explicit_closure_exprs( //dir=expr + unique int id: @explicit_closure_expr +); + +force_try_exprs( //dir=expr + unique int id: @force_try_expr +); + +foreign_object_conversion_exprs( //dir=expr + unique int id: @foreign_object_conversion_expr +); + +function_conversion_exprs( //dir=expr + unique int id: @function_conversion_expr +); + +in_out_to_pointer_exprs( //dir=expr + unique int id: @in_out_to_pointer_expr +); + +inject_into_optional_exprs( //dir=expr + unique int id: @inject_into_optional_expr +); + +interpolated_string_literal_exprs( //dir=expr + unique int id: @interpolated_string_literal_expr +); + +#keyset[id] +interpolated_string_literal_expr_interpolation_exprs( //dir=expr + int id: @interpolated_string_literal_expr ref, + int interpolation_expr: @opaque_value_expr_or_none ref +); + +#keyset[id] +interpolated_string_literal_expr_appending_exprs( //dir=expr + int id: @interpolated_string_literal_expr ref, + int appending_expr: @tap_expr_or_none ref +); + +linear_function_exprs( //dir=expr + unique int id: @linear_function_expr +); + +linear_function_extract_original_exprs( //dir=expr + unique int id: @linear_function_extract_original_expr +); + +linear_to_differentiable_function_exprs( //dir=expr + unique int id: @linear_to_differentiable_function_expr +); + +load_exprs( //dir=expr + unique int id: @load_expr +); + +member_ref_exprs( //dir=expr + unique int id: @member_ref_expr +); + +#keyset[id] +member_ref_expr_has_direct_to_storage_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_ordinary_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_distributed_thunk_semantics( //dir=expr + int id: @member_ref_expr ref +); + +metatype_conversion_exprs( //dir=expr + unique int id: @metatype_conversion_expr +); + +nil_literal_exprs( //dir=expr + unique int id: @nil_literal_expr +); + +object_literal_exprs( //dir=expr + unique int id: @object_literal_expr, + int kind: int ref +); + +#keyset[id, index] +object_literal_expr_arguments( //dir=expr + int id: @object_literal_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +optional_try_exprs( //dir=expr + unique int id: @optional_try_expr +); + +paren_exprs( //dir=expr + unique int id: @paren_expr +); + +pointer_to_pointer_exprs( //dir=expr + unique int id: @pointer_to_pointer_expr +); + +postfix_unary_exprs( //dir=expr + unique int id: @postfix_unary_expr +); + +prefix_unary_exprs( //dir=expr + unique int id: @prefix_unary_expr +); + +protocol_metatype_to_object_exprs( //dir=expr + unique int id: @protocol_metatype_to_object_expr +); + +regex_literal_exprs( //dir=expr + unique int id: @regex_literal_expr, + string pattern: string ref, + int version: int ref +); + +@self_apply_expr = + @dot_syntax_call_expr +| @initializer_ref_call_expr +; + +#keyset[id] +self_apply_exprs( //dir=expr + int id: @self_apply_expr ref, + int base: @expr_or_none ref +); + +string_to_pointer_exprs( //dir=expr + unique int id: @string_to_pointer_expr +); + +subscript_exprs( //dir=expr + unique int id: @subscript_expr +); + +#keyset[id, index] +subscript_expr_arguments( //dir=expr + int id: @subscript_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +#keyset[id] +subscript_expr_has_direct_to_storage_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_ordinary_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_distributed_thunk_semantics( //dir=expr + int id: @subscript_expr ref +); + +try_exprs( //dir=expr + unique int id: @try_expr +); + +underlying_to_opaque_exprs( //dir=expr + unique int id: @underlying_to_opaque_expr +); + +unevaluated_instance_exprs( //dir=expr + unique int id: @unevaluated_instance_expr +); + +unreachable_exprs( //dir=expr + unique int id: @unreachable_expr +); + +unresolved_member_chain_result_exprs( //dir=expr + unique int id: @unresolved_member_chain_result_expr +); + +unresolved_type_conversion_exprs( //dir=expr + unique int id: @unresolved_type_conversion_expr +); + +unsafe_cast_exprs( //dir=expr + unique int id: @unsafe_cast_expr +); + +unsafe_exprs( //dir=expr + unique int id: @unsafe_expr +); + +boolean_literal_exprs( //dir=expr + unique int id: @boolean_literal_expr, + boolean value: boolean ref +); + +conditional_checked_cast_exprs( //dir=expr + unique int id: @conditional_checked_cast_expr +); + +dot_syntax_call_exprs( //dir=expr + unique int id: @dot_syntax_call_expr +); + +dynamic_member_ref_exprs( //dir=expr + unique int id: @dynamic_member_ref_expr +); + +dynamic_subscript_exprs( //dir=expr + unique int id: @dynamic_subscript_expr +); + +forced_checked_cast_exprs( //dir=expr + unique int id: @forced_checked_cast_expr +); + +initializer_ref_call_exprs( //dir=expr + unique int id: @initializer_ref_call_expr +); + +is_exprs( //dir=expr + unique int id: @is_expr +); + +magic_identifier_literal_exprs( //dir=expr + unique int id: @magic_identifier_literal_expr, + string kind: string ref +); + +@number_literal_expr = + @float_literal_expr +| @integer_literal_expr +; + +string_literal_exprs( //dir=expr + unique int id: @string_literal_expr, + string value: string ref +); + +float_literal_exprs( //dir=expr + unique int id: @float_literal_expr, + string string_value: string ref +); + +integer_literal_exprs( //dir=expr + unique int id: @integer_literal_expr, + string string_value: string ref +); + +@pattern = + @any_pattern +| @binding_pattern +| @bool_pattern +| @enum_element_pattern +| @expr_pattern +| @is_pattern +| @named_pattern +| @optional_some_pattern +| @paren_pattern +| @tuple_pattern +| @typed_pattern +; + +#keyset[id] +pattern_types( //dir=pattern + int id: @pattern ref, + int type_: @type_or_none ref +); + +any_patterns( //dir=pattern + unique int id: @any_pattern +); + +binding_patterns( //dir=pattern + unique int id: @binding_pattern, + int sub_pattern: @pattern_or_none ref +); + +bool_patterns( //dir=pattern + unique int id: @bool_pattern, + boolean value: boolean ref +); + +enum_element_patterns( //dir=pattern + unique int id: @enum_element_pattern, + int element: @enum_element_decl_or_none ref +); + +#keyset[id] +enum_element_pattern_sub_patterns( //dir=pattern + int id: @enum_element_pattern ref, + int sub_pattern: @pattern_or_none ref +); + +expr_patterns( //dir=pattern + unique int id: @expr_pattern, + int sub_expr: @expr_or_none ref +); + +is_patterns( //dir=pattern + unique int id: @is_pattern +); + +#keyset[id] +is_pattern_cast_type_reprs( //dir=pattern + int id: @is_pattern ref, + int cast_type_repr: @type_repr_or_none ref +); + +#keyset[id] +is_pattern_sub_patterns( //dir=pattern + int id: @is_pattern ref, + int sub_pattern: @pattern_or_none ref +); + +named_patterns( //dir=pattern + unique int id: @named_pattern, + int var_decl: @var_decl_or_none ref +); + +optional_some_patterns( //dir=pattern + unique int id: @optional_some_pattern, + int sub_pattern: @pattern_or_none ref +); + +paren_patterns( //dir=pattern + unique int id: @paren_pattern, + int sub_pattern: @pattern_or_none ref +); + +tuple_patterns( //dir=pattern + unique int id: @tuple_pattern +); + +#keyset[id, index] +tuple_pattern_elements( //dir=pattern + int id: @tuple_pattern ref, + int index: int ref, + int element: @pattern_or_none ref +); + +typed_patterns( //dir=pattern + unique int id: @typed_pattern, + int sub_pattern: @pattern_or_none ref +); + +#keyset[id] +typed_pattern_type_reprs( //dir=pattern + int id: @typed_pattern ref, + int type_repr: @type_repr_or_none ref +); + +case_label_items( //dir=stmt + unique int id: @case_label_item, + int pattern: @pattern_or_none ref +); + +#keyset[id] +case_label_item_guards( //dir=stmt + int id: @case_label_item ref, + int guard: @expr_or_none ref +); + +condition_elements( //dir=stmt + unique int id: @condition_element +); + +#keyset[id] +condition_element_booleans( //dir=stmt + int id: @condition_element ref, + int boolean_: @expr_or_none ref +); + +#keyset[id] +condition_element_patterns( //dir=stmt + int id: @condition_element ref, + int pattern: @pattern_or_none ref +); + +#keyset[id] +condition_element_initializers( //dir=stmt + int id: @condition_element ref, + int initializer: @expr_or_none ref +); + +#keyset[id] +condition_element_availabilities( //dir=stmt + int id: @condition_element ref, + int availability: @availability_info_or_none ref +); + +@stmt = + @brace_stmt +| @break_stmt +| @case_stmt +| @continue_stmt +| @defer_stmt +| @discard_stmt +| @fail_stmt +| @fallthrough_stmt +| @labeled_stmt +| @pound_assert_stmt +| @return_stmt +| @then_stmt +| @throw_stmt +| @yield_stmt +; + +stmt_conditions( //dir=stmt + unique int id: @stmt_condition +); + +#keyset[id, index] +stmt_condition_elements( //dir=stmt + int id: @stmt_condition ref, + int index: int ref, + int element: @condition_element_or_none ref +); + +brace_stmts( //dir=stmt + unique int id: @brace_stmt +); + +#keyset[id, index] +brace_stmt_elements( //dir=stmt + int id: @brace_stmt ref, + int index: int ref, + int element: @ast_node_or_none ref +); + +break_stmts( //dir=stmt + unique int id: @break_stmt +); + +#keyset[id] +break_stmt_target_names( //dir=stmt + int id: @break_stmt ref, + string target_name: string ref +); + +#keyset[id] +break_stmt_targets( //dir=stmt + int id: @break_stmt ref, + int target: @stmt_or_none ref +); + +case_stmts( //dir=stmt + unique int id: @case_stmt, + int body: @stmt_or_none ref +); + +#keyset[id, index] +case_stmt_labels( //dir=stmt + int id: @case_stmt ref, + int index: int ref, + int label: @case_label_item_or_none ref +); + +#keyset[id, index] +case_stmt_variables( //dir=stmt + int id: @case_stmt ref, + int index: int ref, + int variable: @var_decl_or_none ref +); + +continue_stmts( //dir=stmt + unique int id: @continue_stmt +); + +#keyset[id] +continue_stmt_target_names( //dir=stmt + int id: @continue_stmt ref, + string target_name: string ref +); + +#keyset[id] +continue_stmt_targets( //dir=stmt + int id: @continue_stmt ref, + int target: @stmt_or_none ref +); + +defer_stmts( //dir=stmt + unique int id: @defer_stmt, + int body: @brace_stmt_or_none ref +); + +discard_stmts( //dir=stmt + unique int id: @discard_stmt, + int sub_expr: @expr_or_none ref +); + +fail_stmts( //dir=stmt + unique int id: @fail_stmt +); + +fallthrough_stmts( //dir=stmt + unique int id: @fallthrough_stmt, + int fallthrough_source: @case_stmt_or_none ref, + int fallthrough_dest: @case_stmt_or_none ref +); + +@labeled_stmt = + @do_catch_stmt +| @do_stmt +| @for_each_stmt +| @labeled_conditional_stmt +| @repeat_while_stmt +| @switch_stmt +; + +#keyset[id] +labeled_stmt_labels( //dir=stmt + int id: @labeled_stmt ref, + string label: string ref +); + +pound_assert_stmts( //dir=stmt + unique int id: @pound_assert_stmt, + int condition: @expr_or_none ref, + string message: string ref +); + +return_stmts( //dir=stmt + unique int id: @return_stmt +); + +#keyset[id] +return_stmt_results( //dir=stmt + int id: @return_stmt ref, + int result: @expr_or_none ref +); + +then_stmts( //dir=stmt + unique int id: @then_stmt, + int result: @expr_or_none ref +); + +throw_stmts( //dir=stmt + unique int id: @throw_stmt, + int sub_expr: @expr_or_none ref +); + +yield_stmts( //dir=stmt + unique int id: @yield_stmt +); + +#keyset[id, index] +yield_stmt_results( //dir=stmt + int id: @yield_stmt ref, + int index: int ref, + int result: @expr_or_none ref +); + +do_catch_stmts( //dir=stmt + unique int id: @do_catch_stmt, + int body: @stmt_or_none ref +); + +#keyset[id, index] +do_catch_stmt_catches( //dir=stmt + int id: @do_catch_stmt ref, + int index: int ref, + int catch: @case_stmt_or_none ref +); + +do_stmts( //dir=stmt + unique int id: @do_stmt, + int body: @brace_stmt_or_none ref +); + +for_each_stmts( //dir=stmt + unique int id: @for_each_stmt, + int pattern: @pattern_or_none ref, + int body: @brace_stmt_or_none ref +); + +#keyset[id, index] +for_each_stmt_variables( //dir=stmt + int id: @for_each_stmt ref, + int index: int ref, + int variable: @var_decl_or_none ref +); + +#keyset[id] +for_each_stmt_wheres( //dir=stmt + int id: @for_each_stmt ref, + int where: @expr_or_none ref +); + +#keyset[id] +for_each_stmt_iterator_vars( //dir=stmt + int id: @for_each_stmt ref, + int iteratorVar: @pattern_binding_decl_or_none ref +); + +#keyset[id] +for_each_stmt_next_calls( //dir=stmt + int id: @for_each_stmt ref, + int nextCall: @expr_or_none ref +); + +@labeled_conditional_stmt = + @guard_stmt +| @if_stmt +| @while_stmt +; + +#keyset[id] +labeled_conditional_stmts( //dir=stmt + int id: @labeled_conditional_stmt ref, + int condition: @stmt_condition_or_none ref +); + +repeat_while_stmts( //dir=stmt + unique int id: @repeat_while_stmt, + int condition: @expr_or_none ref, + int body: @stmt_or_none ref +); + +switch_stmts( //dir=stmt + unique int id: @switch_stmt, + int expr: @expr_or_none ref +); + +#keyset[id, index] +switch_stmt_cases( //dir=stmt + int id: @switch_stmt ref, + int index: int ref, + int case_: @case_stmt_or_none ref +); + +guard_stmts( //dir=stmt + unique int id: @guard_stmt, + int body: @brace_stmt_or_none ref +); + +if_stmts( //dir=stmt + unique int id: @if_stmt, + int then: @stmt_or_none ref +); + +#keyset[id] +if_stmt_elses( //dir=stmt + int id: @if_stmt ref, + int else: @stmt_or_none ref +); + +while_stmts( //dir=stmt + unique int id: @while_stmt, + int body: @stmt_or_none ref +); + +@type = + @any_function_type +| @any_generic_type +| @any_metatype_type +| @builtin_type +| @dependent_member_type +| @dynamic_self_type +| @error_type +| @existential_type +| @in_out_type +| @integer_type +| @l_value_type +| @module_type +| @pack_element_type +| @pack_expansion_type +| @pack_type +| @parameterized_protocol_type +| @protocol_composition_type +| @reference_storage_type +| @substitutable_type +| @sugar_type +| @tuple_type +| @unresolved_type +; + +#keyset[id] +types( //dir=type + int id: @type ref, + string name: string ref, + int canonical_type: @type_or_none ref +); + +type_reprs( //dir=type + unique int id: @type_repr, + int type_: @type_or_none ref +); + +@any_function_type = + @function_type +| @generic_function_type +; + +#keyset[id] +any_function_types( //dir=type + int id: @any_function_type ref, + int result: @type_or_none ref +); + +#keyset[id, index] +any_function_type_param_types( //dir=type + int id: @any_function_type ref, + int index: int ref, + int param_type: @type_or_none ref +); + +#keyset[id] +any_function_type_is_throwing( //dir=type + int id: @any_function_type ref +); + +#keyset[id] +any_function_type_is_async( //dir=type + int id: @any_function_type ref +); + +@any_generic_type = + @nominal_or_bound_generic_nominal_type +| @unbound_generic_type +; + +#keyset[id] +any_generic_types( //dir=type + int id: @any_generic_type ref, + int declaration: @generic_type_decl_or_none ref +); + +#keyset[id] +any_generic_type_parents( //dir=type + int id: @any_generic_type ref, + int parent: @type_or_none ref +); + +@any_metatype_type = + @existential_metatype_type +| @metatype_type +; + +@builtin_type = + @any_builtin_integer_type +| @builtin_bridge_object_type +| @builtin_default_actor_storage_type +| @builtin_executor_type +| @builtin_float_type +| @builtin_generic_type +| @builtin_job_type +| @builtin_native_object_type +| @builtin_raw_pointer_type +| @builtin_raw_unsafe_continuation_type +| @builtin_unsafe_value_buffer_type +| @builtin_vector_type +; + +dependent_member_types( //dir=type + unique int id: @dependent_member_type, + int base_type: @type_or_none ref, + int associated_type_decl: @associated_type_decl_or_none ref +); + +dynamic_self_types( //dir=type + unique int id: @dynamic_self_type, + int static_self_type: @type_or_none ref +); + +error_types( //dir=type + unique int id: @error_type +); + +existential_types( //dir=type + unique int id: @existential_type, + int constraint: @type_or_none ref +); + +in_out_types( //dir=type + unique int id: @in_out_type, + int object_type: @type_or_none ref +); + +integer_types( //dir=type + unique int id: @integer_type, + string value: string ref +); + +l_value_types( //dir=type + unique int id: @l_value_type, + int object_type: @type_or_none ref +); + +module_types( //dir=type + unique int id: @module_type, + int module: @module_decl_or_none ref +); + +pack_element_types( //dir=type + unique int id: @pack_element_type, + int pack_type: @type_or_none ref +); + +pack_expansion_types( //dir=type + unique int id: @pack_expansion_type, + int pattern_type: @type_or_none ref, + int count_type: @type_or_none ref +); + +pack_types( //dir=type + unique int id: @pack_type +); + +#keyset[id, index] +pack_type_elements( //dir=type + int id: @pack_type ref, + int index: int ref, + int element: @type_or_none ref +); + +parameterized_protocol_types( //dir=type + unique int id: @parameterized_protocol_type, + int base: @protocol_type_or_none ref +); + +#keyset[id, index] +parameterized_protocol_type_args( //dir=type + int id: @parameterized_protocol_type ref, + int index: int ref, + int arg: @type_or_none ref +); + +protocol_composition_types( //dir=type + unique int id: @protocol_composition_type +); + +#keyset[id, index] +protocol_composition_type_members( //dir=type + int id: @protocol_composition_type ref, + int index: int ref, + int member: @type_or_none ref +); + +@reference_storage_type = + @unmanaged_storage_type +| @unowned_storage_type +| @weak_storage_type +; + +#keyset[id] +reference_storage_types( //dir=type + int id: @reference_storage_type ref, + int referent_type: @type_or_none ref +); + +@substitutable_type = + @archetype_type +| @generic_type_param_type +; + +@sugar_type = + @paren_type +| @syntax_sugar_type +| @type_alias_type +; + +tuple_types( //dir=type + unique int id: @tuple_type +); + +#keyset[id, index] +tuple_type_types( //dir=type + int id: @tuple_type ref, + int index: int ref, + int type_: @type_or_none ref +); + +#keyset[id, index] +tuple_type_names( //dir=type + int id: @tuple_type ref, + int index: int ref, + string name: string ref +); + +unresolved_types( //dir=type + unique int id: @unresolved_type +); + +@any_builtin_integer_type = + @builtin_integer_literal_type +| @builtin_integer_type +; + +@archetype_type = + @local_archetype_type +| @opaque_type_archetype_type +| @pack_archetype_type +| @primary_archetype_type +; + +#keyset[id] +archetype_types( //dir=type + int id: @archetype_type ref, + int interface_type: @type_or_none ref +); + +#keyset[id] +archetype_type_superclasses( //dir=type + int id: @archetype_type ref, + int superclass: @type_or_none ref +); + +#keyset[id, index] +archetype_type_protocols( //dir=type + int id: @archetype_type ref, + int index: int ref, + int protocol: @protocol_decl_or_none ref +); + +builtin_bridge_object_types( //dir=type + unique int id: @builtin_bridge_object_type +); + +builtin_default_actor_storage_types( //dir=type + unique int id: @builtin_default_actor_storage_type +); + +builtin_executor_types( //dir=type + unique int id: @builtin_executor_type +); + +builtin_float_types( //dir=type + unique int id: @builtin_float_type +); + +@builtin_generic_type = + @builtin_fixed_array_type +; + +builtin_job_types( //dir=type + unique int id: @builtin_job_type +); + +builtin_native_object_types( //dir=type + unique int id: @builtin_native_object_type +); + +builtin_raw_pointer_types( //dir=type + unique int id: @builtin_raw_pointer_type +); + +builtin_raw_unsafe_continuation_types( //dir=type + unique int id: @builtin_raw_unsafe_continuation_type +); + +builtin_unsafe_value_buffer_types( //dir=type + unique int id: @builtin_unsafe_value_buffer_type +); + +builtin_vector_types( //dir=type + unique int id: @builtin_vector_type +); + +existential_metatype_types( //dir=type + unique int id: @existential_metatype_type +); + +function_types( //dir=type + unique int id: @function_type +); + +generic_function_types( //dir=type + unique int id: @generic_function_type +); + +#keyset[id, index] +generic_function_type_generic_params( //dir=type + int id: @generic_function_type ref, + int index: int ref, + int generic_param: @generic_type_param_type_or_none ref +); + +generic_type_param_types( //dir=type + unique int id: @generic_type_param_type +); + +metatype_types( //dir=type + unique int id: @metatype_type +); + +@nominal_or_bound_generic_nominal_type = + @bound_generic_type +| @nominal_type +; + +paren_types( //dir=type + unique int id: @paren_type, + int type_: @type_or_none ref +); + +@syntax_sugar_type = + @dictionary_type +| @inline_array_type +| @unary_syntax_sugar_type +; + +type_alias_types( //dir=type + unique int id: @type_alias_type, + int decl: @type_alias_decl_or_none ref +); + +unbound_generic_types( //dir=type + unique int id: @unbound_generic_type +); + +unmanaged_storage_types( //dir=type + unique int id: @unmanaged_storage_type +); + +unowned_storage_types( //dir=type + unique int id: @unowned_storage_type +); + +weak_storage_types( //dir=type + unique int id: @weak_storage_type +); + +@bound_generic_type = + @bound_generic_class_type +| @bound_generic_enum_type +| @bound_generic_struct_type +; + +#keyset[id, index] +bound_generic_type_arg_types( //dir=type + int id: @bound_generic_type ref, + int index: int ref, + int arg_type: @type_or_none ref +); + +builtin_fixed_array_types( //dir=type + unique int id: @builtin_fixed_array_type, + int size: @type_or_none ref, + int element_type: @type_or_none ref +); + +builtin_integer_literal_types( //dir=type + unique int id: @builtin_integer_literal_type +); + +builtin_integer_types( //dir=type + unique int id: @builtin_integer_type +); + +#keyset[id] +builtin_integer_type_widths( //dir=type + int id: @builtin_integer_type ref, + int width: int ref +); + +dictionary_types( //dir=type + unique int id: @dictionary_type, + int key_type: @type_or_none ref, + int value_type: @type_or_none ref +); + +inline_array_types( //dir=type + unique int id: @inline_array_type, + int count_type: @type_or_none ref, + int element_type: @type_or_none ref +); + +@local_archetype_type = + @element_archetype_type +| @existential_archetype_type +; + +@nominal_type = + @class_type +| @enum_type +| @protocol_type +| @struct_type +; + +opaque_type_archetype_types( //dir=type + unique int id: @opaque_type_archetype_type, + int declaration: @opaque_type_decl_or_none ref +); + +pack_archetype_types( //dir=type + unique int id: @pack_archetype_type +); + +primary_archetype_types( //dir=type + unique int id: @primary_archetype_type +); + +@unary_syntax_sugar_type = + @array_slice_type +| @optional_type +| @variadic_sequence_type +; + +#keyset[id] +unary_syntax_sugar_types( //dir=type + int id: @unary_syntax_sugar_type ref, + int base_type: @type_or_none ref +); + +array_slice_types( //dir=type + unique int id: @array_slice_type +); + +bound_generic_class_types( //dir=type + unique int id: @bound_generic_class_type +); + +bound_generic_enum_types( //dir=type + unique int id: @bound_generic_enum_type +); + +bound_generic_struct_types( //dir=type + unique int id: @bound_generic_struct_type +); + +class_types( //dir=type + unique int id: @class_type +); + +element_archetype_types( //dir=type + unique int id: @element_archetype_type +); + +enum_types( //dir=type + unique int id: @enum_type +); + +existential_archetype_types( //dir=type + unique int id: @existential_archetype_type +); + +optional_types( //dir=type + unique int id: @optional_type +); + +protocol_types( //dir=type + unique int id: @protocol_type +); + +struct_types( //dir=type + unique int id: @struct_type +); + +variadic_sequence_types( //dir=type + unique int id: @variadic_sequence_type +); + +@accessor_or_none = + @accessor +| @unspecified_element +; + +@argument_or_none = + @argument +| @unspecified_element +; + +@associated_type_decl_or_none = + @associated_type_decl +| @unspecified_element +; + +@ast_node_or_none = + @ast_node +| @unspecified_element +; + +@availability_info_or_none = + @availability_info +| @unspecified_element +; + +@availability_spec_or_none = + @availability_spec +| @unspecified_element +; + +@brace_stmt_or_none = + @brace_stmt +| @unspecified_element +; + +@captured_decl_or_none = + @captured_decl +| @unspecified_element +; + +@case_label_item_or_none = + @case_label_item +| @unspecified_element +; + +@case_stmt_or_none = + @case_stmt +| @unspecified_element +; + +@closure_expr_or_none = + @closure_expr +| @unspecified_element +; + +@condition_element_or_none = + @condition_element +| @unspecified_element +; + +@decl_or_none = + @decl +| @unspecified_element +; + +@enum_element_decl_or_none = + @enum_element_decl +| @unspecified_element +; + +@expr_or_none = + @expr +| @unspecified_element +; + +@file_or_none = + @file +| @unspecified_element +; + +@function_or_none = + @function +| @unspecified_element +; + +@generic_type_decl_or_none = + @generic_type_decl +| @unspecified_element +; + +@generic_type_param_decl_or_none = + @generic_type_param_decl +| @unspecified_element +; + +@generic_type_param_type_or_none = + @generic_type_param_type +| @unspecified_element +; + +@initializer_or_none = + @initializer +| @unspecified_element +; + +@key_path_component_or_none = + @key_path_component +| @unspecified_element +; + +@location_or_none = + @location +| @unspecified_element +; + +@macro_role_or_none = + @macro_role +| @unspecified_element +; + +@module_decl_or_none = + @module_decl +| @unspecified_element +; + +@nominal_type_decl_or_none = + @nominal_type_decl +| @unspecified_element +; + +@opaque_type_decl_or_none = + @opaque_type_decl +| @unspecified_element +; + +@opaque_value_expr_or_none = + @opaque_value_expr +| @unspecified_element +; + +@param_decl_or_none = + @param_decl +| @unspecified_element +; + +@pattern_or_none = + @pattern +| @unspecified_element +; + +@pattern_binding_decl_or_none = + @pattern_binding_decl +| @unspecified_element +; + +@precedence_group_decl_or_none = + @precedence_group_decl +| @unspecified_element +; + +@protocol_decl_or_none = + @protocol_decl +| @unspecified_element +; + +@protocol_type_or_none = + @protocol_type +| @unspecified_element +; + +@stmt_or_none = + @stmt +| @unspecified_element +; + +@stmt_condition_or_none = + @stmt_condition +| @unspecified_element +; + +@string_literal_expr_or_none = + @string_literal_expr +| @unspecified_element +; + +@tap_expr_or_none = + @tap_expr +| @unspecified_element +; + +@type_or_none = + @type +| @unspecified_element +; + +@type_alias_decl_or_none = + @type_alias_decl +| @unspecified_element +; + +@type_repr_or_none = + @type_repr +| @unspecified_element +; + +@value_decl_or_none = + @unspecified_element +| @value_decl +; + +@var_decl_or_none = + @unspecified_element +| @var_decl +; diff --git a/swift/downgrades/5738be6bb04742c424efdbf9f4de11f0b10fa37d/swift.dbscheme b/swift/downgrades/5738be6bb04742c424efdbf9f4de11f0b10fa37d/swift.dbscheme new file mode 100644 index 00000000000..ee3053b673c --- /dev/null +++ b/swift/downgrades/5738be6bb04742c424efdbf9f4de11f0b10fa37d/swift.dbscheme @@ -0,0 +1,2889 @@ +// generated by codegen/codegen.py, do not edit + +// from prefix.dbscheme +/** + * The source location of the snapshot. + */ +sourceLocationPrefix( + string prefix: string ref +); + + +// from schema.py + +@element = + @file +| @generic_context +| @locatable +| @location +| @type +; + +#keyset[id] +element_is_unknown( + int id: @element ref +); + +@file = + @db_file +; + +#keyset[id] +files( + int id: @file ref, + string name: string ref +); + +#keyset[id] +file_is_successfully_extracted( + int id: @file ref +); + +@locatable = + @argument +| @ast_node +| @comment +| @diagnostics +| @error_element +; + +#keyset[id] +locatable_locations( + int id: @locatable ref, + int location: @location_or_none ref +); + +@location = + @db_location +; + +#keyset[id] +locations( + int id: @location ref, + int file: @file_or_none ref, + int start_line: int ref, + int start_column: int ref, + int end_line: int ref, + int end_column: int ref +); + +@ast_node = + @availability_info +| @availability_spec +| @callable +| @case_label_item +| @condition_element +| @decl +| @expr +| @key_path_component +| @macro_role +| @pattern +| @stmt +| @stmt_condition +| @type_repr +; + +comments( + unique int id: @comment, + string text: string ref +); + +db_files( + unique int id: @db_file +); + +db_locations( + unique int id: @db_location +); + +diagnostics( + unique int id: @diagnostics, + string text: string ref, + int kind: int ref +); + +@error_element = + @error_expr +| @error_type +| @overloaded_decl_ref_expr +| @unresolved_decl_ref_expr +| @unresolved_dot_expr +| @unresolved_member_chain_result_expr +| @unresolved_member_expr +| @unresolved_pattern_expr +| @unresolved_specialize_expr +| @unresolved_type +| @unresolved_type_conversion_expr +| @unspecified_element +; + +availability_infos( + unique int id: @availability_info +); + +#keyset[id] +availability_info_is_unavailable( + int id: @availability_info ref +); + +#keyset[id, index] +availability_info_specs( + int id: @availability_info ref, + int index: int ref, + int spec: @availability_spec_or_none ref +); + +availability_specs( + unique int id: @availability_spec +); + +#keyset[id] +availability_spec_platforms( + int id: @availability_spec ref, + string platform: string ref +); + +#keyset[id] +availability_spec_versions( + int id: @availability_spec ref, + string version: string ref +); + +#keyset[id] +availability_spec_is_wildcard( + int id: @availability_spec ref +); + +@callable = + @closure_expr +| @function +; + +#keyset[id] +callable_names( + int id: @callable ref, + string name: string ref +); + +#keyset[id] +callable_self_params( + int id: @callable ref, + int self_param: @param_decl_or_none ref +); + +#keyset[id, index] +callable_params( + int id: @callable ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +#keyset[id] +callable_bodies( + int id: @callable ref, + int body: @brace_stmt_or_none ref +); + +#keyset[id, index] +callable_captures( + int id: @callable ref, + int index: int ref, + int capture: @captured_decl_or_none ref +); + +key_path_components( + unique int id: @key_path_component, + int kind: int ref, + int component_type: @type_or_none ref +); + +#keyset[id, index] +key_path_component_subscript_arguments( + int id: @key_path_component ref, + int index: int ref, + int subscript_argument: @argument_or_none ref +); + +#keyset[id] +key_path_component_tuple_indices( + int id: @key_path_component ref, + int tuple_index: int ref +); + +#keyset[id] +key_path_component_decl_refs( + int id: @key_path_component ref, + int decl_ref: @value_decl_or_none ref +); + +macro_roles( + unique int id: @macro_role, + int kind: int ref, + int macro_syntax: int ref +); + +#keyset[id, index] +macro_role_conformances( + int id: @macro_role ref, + int index: int ref, + int conformance: @expr_or_none ref +); + +#keyset[id, index] +macro_role_names( + int id: @macro_role ref, + int index: int ref, + string name: string ref +); + +unspecified_elements( + unique int id: @unspecified_element, + string property: string ref, + string error: string ref +); + +#keyset[id] +unspecified_element_parents( + int id: @unspecified_element ref, + int parent: @element ref +); + +#keyset[id] +unspecified_element_indices( + int id: @unspecified_element ref, + int index: int ref +); + +#keyset[id, index] +unspecified_element_children( + int id: @unspecified_element ref, + int index: int ref, + int child: @ast_node_or_none ref +); + +@decl = + @captured_decl +| @enum_case_decl +| @extension_decl +| @if_config_decl +| @import_decl +| @missing_member_decl +| @operator_decl +| @pattern_binding_decl +| @pound_diagnostic_decl +| @precedence_group_decl +| @top_level_code_decl +| @using_decl +| @value_decl +; + +#keyset[id] +decls( //dir=decl + int id: @decl ref, + int module: @module_decl_or_none ref +); + +#keyset[id, index] +decl_members( //dir=decl + int id: @decl ref, + int index: int ref, + int member: @decl_or_none ref +); + +@generic_context = + @extension_decl +| @function +| @generic_type_decl +| @macro_decl +| @subscript_decl +; + +#keyset[id, index] +generic_context_generic_type_params( //dir=decl + int id: @generic_context ref, + int index: int ref, + int generic_type_param: @generic_type_param_decl_or_none ref +); + +captured_decls( //dir=decl + unique int id: @captured_decl, + int decl: @value_decl_or_none ref +); + +#keyset[id] +captured_decl_is_direct( //dir=decl + int id: @captured_decl ref +); + +#keyset[id] +captured_decl_is_escaping( //dir=decl + int id: @captured_decl ref +); + +enum_case_decls( //dir=decl + unique int id: @enum_case_decl +); + +#keyset[id, index] +enum_case_decl_elements( //dir=decl + int id: @enum_case_decl ref, + int index: int ref, + int element: @enum_element_decl_or_none ref +); + +extension_decls( //dir=decl + unique int id: @extension_decl, + int extended_type_decl: @nominal_type_decl_or_none ref +); + +#keyset[id, index] +extension_decl_protocols( //dir=decl + int id: @extension_decl ref, + int index: int ref, + int protocol: @protocol_decl_or_none ref +); + +if_config_decls( //dir=decl + unique int id: @if_config_decl +); + +#keyset[id, index] +if_config_decl_active_elements( //dir=decl + int id: @if_config_decl ref, + int index: int ref, + int active_element: @ast_node_or_none ref +); + +import_decls( //dir=decl + unique int id: @import_decl +); + +#keyset[id] +import_decl_is_exported( //dir=decl + int id: @import_decl ref +); + +#keyset[id] +import_decl_imported_modules( //dir=decl + int id: @import_decl ref, + int imported_module: @module_decl_or_none ref +); + +#keyset[id, index] +import_decl_declarations( //dir=decl + int id: @import_decl ref, + int index: int ref, + int declaration: @value_decl_or_none ref +); + +missing_member_decls( //dir=decl + unique int id: @missing_member_decl, + string name: string ref +); + +@operator_decl = + @infix_operator_decl +| @postfix_operator_decl +| @prefix_operator_decl +; + +#keyset[id] +operator_decls( //dir=decl + int id: @operator_decl ref, + string name: string ref +); + +pattern_binding_decls( //dir=decl + unique int id: @pattern_binding_decl +); + +#keyset[id, index] +pattern_binding_decl_inits( //dir=decl + int id: @pattern_binding_decl ref, + int index: int ref, + int init: @expr_or_none ref +); + +#keyset[id, index] +pattern_binding_decl_patterns( //dir=decl + int id: @pattern_binding_decl ref, + int index: int ref, + int pattern: @pattern_or_none ref +); + +pound_diagnostic_decls( //dir=decl + unique int id: @pound_diagnostic_decl, + int kind: int ref, + int message: @string_literal_expr_or_none ref +); + +precedence_group_decls( //dir=decl + unique int id: @precedence_group_decl +); + +top_level_code_decls( //dir=decl + unique int id: @top_level_code_decl, + int body: @brace_stmt_or_none ref +); + +using_decls( //dir=decl + unique int id: @using_decl +); + +#keyset[id] +using_decl_is_main_actor( //dir=decl + int id: @using_decl ref +); + +#keyset[id] +using_decl_is_nonisolated( //dir=decl + int id: @using_decl ref +); + +@value_decl = + @abstract_storage_decl +| @enum_element_decl +| @function +| @macro_decl +| @type_decl +; + +#keyset[id] +value_decls( //dir=decl + int id: @value_decl ref, + int interface_type: @type_or_none ref +); + +@abstract_storage_decl = + @subscript_decl +| @var_decl +; + +#keyset[id, index] +abstract_storage_decl_accessors( //dir=decl + int id: @abstract_storage_decl ref, + int index: int ref, + int accessor: @accessor_or_none ref +); + +enum_element_decls( //dir=decl + unique int id: @enum_element_decl, + string name: string ref +); + +#keyset[id, index] +enum_element_decl_params( //dir=decl + int id: @enum_element_decl ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +@function = + @accessor_or_named_function +| @deinitializer +| @initializer +; + +infix_operator_decls( //dir=decl + unique int id: @infix_operator_decl +); + +#keyset[id] +infix_operator_decl_precedence_groups( //dir=decl + int id: @infix_operator_decl ref, + int precedence_group: @precedence_group_decl_or_none ref +); + +macro_decls( //dir=decl + unique int id: @macro_decl, + string name: string ref +); + +#keyset[id, index] +macro_decl_parameters( //dir=decl + int id: @macro_decl ref, + int index: int ref, + int parameter: @param_decl_or_none ref +); + +#keyset[id, index] +macro_decl_roles( //dir=decl + int id: @macro_decl ref, + int index: int ref, + int role: @macro_role_or_none ref +); + +postfix_operator_decls( //dir=decl + unique int id: @postfix_operator_decl +); + +prefix_operator_decls( //dir=decl + unique int id: @prefix_operator_decl +); + +@type_decl = + @abstract_type_param_decl +| @generic_type_decl +| @module_decl +; + +#keyset[id] +type_decls( //dir=decl + int id: @type_decl ref, + string name: string ref +); + +#keyset[id, index] +type_decl_inherited_types( //dir=decl + int id: @type_decl ref, + int index: int ref, + int inherited_type: @type_or_none ref +); + +@abstract_type_param_decl = + @associated_type_decl +| @generic_type_param_decl +; + +@accessor_or_named_function = + @accessor +| @named_function +; + +deinitializers( //dir=decl + unique int id: @deinitializer +); + +@generic_type_decl = + @nominal_type_decl +| @opaque_type_decl +| @type_alias_decl +; + +initializers( //dir=decl + unique int id: @initializer +); + +module_decls( //dir=decl + unique int id: @module_decl +); + +#keyset[id] +module_decl_is_builtin_module( //dir=decl + int id: @module_decl ref +); + +#keyset[id] +module_decl_is_system_module( //dir=decl + int id: @module_decl ref +); + +module_decl_imported_modules( //dir=decl + int id: @module_decl ref, + int imported_module: @module_decl_or_none ref +); + +module_decl_exported_modules( //dir=decl + int id: @module_decl ref, + int exported_module: @module_decl_or_none ref +); + +subscript_decls( //dir=decl + unique int id: @subscript_decl, + int element_type: @type_or_none ref +); + +#keyset[id, index] +subscript_decl_params( //dir=decl + int id: @subscript_decl ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +@var_decl = + @concrete_var_decl +| @param_decl +; + +#keyset[id] +var_decls( //dir=decl + int id: @var_decl ref, + string name: string ref, + int type_: @type_or_none ref +); + +#keyset[id] +var_decl_attached_property_wrapper_types( //dir=decl + int id: @var_decl ref, + int attached_property_wrapper_type: @type_or_none ref +); + +#keyset[id] +var_decl_parent_patterns( //dir=decl + int id: @var_decl ref, + int parent_pattern: @pattern_or_none ref +); + +#keyset[id] +var_decl_parent_initializers( //dir=decl + int id: @var_decl ref, + int parent_initializer: @expr_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_backing_var_bindings( //dir=decl + int id: @var_decl ref, + int property_wrapper_backing_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_backing_vars( //dir=decl + int id: @var_decl ref, + int property_wrapper_backing_var: @var_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_projection_var_bindings( //dir=decl + int id: @var_decl ref, + int property_wrapper_projection_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_projection_vars( //dir=decl + int id: @var_decl ref, + int property_wrapper_projection_var: @var_decl_or_none ref +); + +accessors( //dir=decl + unique int id: @accessor +); + +#keyset[id] +accessor_is_getter( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_setter( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_will_set( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_did_set( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_read( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_modify( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_unsafe_address( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_unsafe_mutable_address( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_distributed_get( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_read2( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_modify2( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_init( //dir=decl + int id: @accessor ref +); + +associated_type_decls( //dir=decl + unique int id: @associated_type_decl +); + +concrete_var_decls( //dir=decl + unique int id: @concrete_var_decl, + int introducer_int: int ref +); + +generic_type_param_decls( //dir=decl + unique int id: @generic_type_param_decl +); + +named_functions( //dir=decl + unique int id: @named_function +); + +@nominal_type_decl = + @class_decl +| @enum_decl +| @protocol_decl +| @struct_decl +; + +#keyset[id] +nominal_type_decls( //dir=decl + int id: @nominal_type_decl ref, + int type_: @type_or_none ref +); + +opaque_type_decls( //dir=decl + unique int id: @opaque_type_decl, + int naming_declaration: @value_decl_or_none ref +); + +#keyset[id, index] +opaque_type_decl_opaque_generic_params( //dir=decl + int id: @opaque_type_decl ref, + int index: int ref, + int opaque_generic_param: @generic_type_param_type_or_none ref +); + +param_decls( //dir=decl + unique int id: @param_decl +); + +#keyset[id] +param_decl_is_inout( //dir=decl + int id: @param_decl ref +); + +#keyset[id] +param_decl_property_wrapper_local_wrapped_var_bindings( //dir=decl + int id: @param_decl ref, + int property_wrapper_local_wrapped_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +param_decl_property_wrapper_local_wrapped_vars( //dir=decl + int id: @param_decl ref, + int property_wrapper_local_wrapped_var: @var_decl_or_none ref +); + +type_alias_decls( //dir=decl + unique int id: @type_alias_decl, + int aliased_type: @type_or_none ref +); + +class_decls( //dir=decl + unique int id: @class_decl +); + +enum_decls( //dir=decl + unique int id: @enum_decl +); + +protocol_decls( //dir=decl + unique int id: @protocol_decl +); + +struct_decls( //dir=decl + unique int id: @struct_decl +); + +arguments( //dir=expr + unique int id: @argument, + string label: string ref, + int expr: @expr_or_none ref +); + +@expr = + @any_try_expr +| @applied_property_wrapper_expr +| @apply_expr +| @assign_expr +| @bind_optional_expr +| @capture_list_expr +| @closure_expr +| @collection_expr +| @consume_expr +| @copy_expr +| @current_context_isolation_expr +| @decl_ref_expr +| @default_argument_expr +| @discard_assignment_expr +| @dot_syntax_base_ignored_expr +| @dynamic_type_expr +| @enum_is_case_expr +| @error_expr +| @explicit_cast_expr +| @extract_function_isolation_expr +| @force_value_expr +| @identity_expr +| @if_expr +| @implicit_conversion_expr +| @in_out_expr +| @key_path_application_expr +| @key_path_dot_expr +| @key_path_expr +| @lazy_initialization_expr +| @literal_expr +| @lookup_expr +| @make_temporarily_escapable_expr +| @materialize_pack_expr +| @obj_c_selector_expr +| @one_way_expr +| @opaque_value_expr +| @open_existential_expr +| @optional_evaluation_expr +| @other_initializer_ref_expr +| @overloaded_decl_ref_expr +| @pack_element_expr +| @pack_expansion_expr +| @property_wrapper_value_placeholder_expr +| @rebind_self_in_initializer_expr +| @sequence_expr +| @single_value_stmt_expr +| @super_ref_expr +| @tap_expr +| @tuple_element_expr +| @tuple_expr +| @type_expr +| @type_value_expr +| @unresolved_decl_ref_expr +| @unresolved_dot_expr +| @unresolved_member_expr +| @unresolved_pattern_expr +| @unresolved_specialize_expr +| @vararg_expansion_expr +; + +#keyset[id] +expr_types( //dir=expr + int id: @expr ref, + int type_: @type_or_none ref +); + +@any_try_expr = + @force_try_expr +| @optional_try_expr +| @try_expr +; + +#keyset[id] +any_try_exprs( //dir=expr + int id: @any_try_expr ref, + int sub_expr: @expr_or_none ref +); + +applied_property_wrapper_exprs( //dir=expr + unique int id: @applied_property_wrapper_expr, + int kind: int ref, + int value: @expr_or_none ref, + int param: @param_decl_or_none ref +); + +@apply_expr = + @binary_expr +| @call_expr +| @postfix_unary_expr +| @prefix_unary_expr +| @self_apply_expr +; + +#keyset[id] +apply_exprs( //dir=expr + int id: @apply_expr ref, + int function: @expr_or_none ref +); + +#keyset[id, index] +apply_expr_arguments( //dir=expr + int id: @apply_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +assign_exprs( //dir=expr + unique int id: @assign_expr, + int dest: @expr_or_none ref, + int source: @expr_or_none ref +); + +bind_optional_exprs( //dir=expr + unique int id: @bind_optional_expr, + int sub_expr: @expr_or_none ref +); + +capture_list_exprs( //dir=expr + unique int id: @capture_list_expr, + int closure_body: @closure_expr_or_none ref +); + +#keyset[id, index] +capture_list_expr_binding_decls( //dir=expr + int id: @capture_list_expr ref, + int index: int ref, + int binding_decl: @pattern_binding_decl_or_none ref +); + +@closure_expr = + @auto_closure_expr +| @explicit_closure_expr +; + +@collection_expr = + @array_expr +| @dictionary_expr +; + +consume_exprs( //dir=expr + unique int id: @consume_expr, + int sub_expr: @expr_or_none ref +); + +copy_exprs( //dir=expr + unique int id: @copy_expr, + int sub_expr: @expr_or_none ref +); + +current_context_isolation_exprs( //dir=expr + unique int id: @current_context_isolation_expr, + int actor: @expr_or_none ref +); + +decl_ref_exprs( //dir=expr + unique int id: @decl_ref_expr, + int decl: @decl_or_none ref +); + +#keyset[id, index] +decl_ref_expr_replacement_types( //dir=expr + int id: @decl_ref_expr ref, + int index: int ref, + int replacement_type: @type_or_none ref +); + +#keyset[id] +decl_ref_expr_has_direct_to_storage_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_ordinary_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_distributed_thunk_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +default_argument_exprs( //dir=expr + unique int id: @default_argument_expr, + int param_decl: @param_decl_or_none ref, + int param_index: int ref +); + +#keyset[id] +default_argument_expr_caller_side_defaults( //dir=expr + int id: @default_argument_expr ref, + int caller_side_default: @expr_or_none ref +); + +discard_assignment_exprs( //dir=expr + unique int id: @discard_assignment_expr +); + +dot_syntax_base_ignored_exprs( //dir=expr + unique int id: @dot_syntax_base_ignored_expr, + int qualifier: @expr_or_none ref, + int sub_expr: @expr_or_none ref +); + +dynamic_type_exprs( //dir=expr + unique int id: @dynamic_type_expr, + int base: @expr_or_none ref +); + +enum_is_case_exprs( //dir=expr + unique int id: @enum_is_case_expr, + int sub_expr: @expr_or_none ref, + int element: @enum_element_decl_or_none ref +); + +error_exprs( //dir=expr + unique int id: @error_expr +); + +@explicit_cast_expr = + @checked_cast_expr +| @coerce_expr +; + +#keyset[id] +explicit_cast_exprs( //dir=expr + int id: @explicit_cast_expr ref, + int sub_expr: @expr_or_none ref +); + +extract_function_isolation_exprs( //dir=expr + unique int id: @extract_function_isolation_expr, + int function_expr: @expr_or_none ref +); + +force_value_exprs( //dir=expr + unique int id: @force_value_expr, + int sub_expr: @expr_or_none ref +); + +@identity_expr = + @await_expr +| @borrow_expr +| @dot_self_expr +| @paren_expr +| @unresolved_member_chain_result_expr +| @unsafe_expr +; + +#keyset[id] +identity_exprs( //dir=expr + int id: @identity_expr ref, + int sub_expr: @expr_or_none ref +); + +if_exprs( //dir=expr + unique int id: @if_expr, + int condition: @expr_or_none ref, + int then_expr: @expr_or_none ref, + int else_expr: @expr_or_none ref +); + +@implicit_conversion_expr = + @abi_safe_conversion_expr +| @actor_isolation_erasure_expr +| @any_hashable_erasure_expr +| @archetype_to_super_expr +| @array_to_pointer_expr +| @bridge_from_obj_c_expr +| @bridge_to_obj_c_expr +| @class_metatype_to_object_expr +| @collection_upcast_conversion_expr +| @conditional_bridge_from_obj_c_expr +| @covariant_function_conversion_expr +| @covariant_return_conversion_expr +| @derived_to_base_expr +| @destructure_tuple_expr +| @differentiable_function_expr +| @differentiable_function_extract_original_expr +| @erasure_expr +| @existential_metatype_to_object_expr +| @foreign_object_conversion_expr +| @function_conversion_expr +| @in_out_to_pointer_expr +| @inject_into_optional_expr +| @linear_function_expr +| @linear_function_extract_original_expr +| @linear_to_differentiable_function_expr +| @load_expr +| @metatype_conversion_expr +| @pointer_to_pointer_expr +| @protocol_metatype_to_object_expr +| @string_to_pointer_expr +| @underlying_to_opaque_expr +| @unevaluated_instance_expr +| @unreachable_expr +| @unresolved_type_conversion_expr +| @unsafe_cast_expr +; + +#keyset[id] +implicit_conversion_exprs( //dir=expr + int id: @implicit_conversion_expr ref, + int sub_expr: @expr_or_none ref +); + +in_out_exprs( //dir=expr + unique int id: @in_out_expr, + int sub_expr: @expr_or_none ref +); + +key_path_application_exprs( //dir=expr + unique int id: @key_path_application_expr, + int base: @expr_or_none ref, + int key_path: @expr_or_none ref +); + +key_path_dot_exprs( //dir=expr + unique int id: @key_path_dot_expr +); + +key_path_exprs( //dir=expr + unique int id: @key_path_expr +); + +#keyset[id] +key_path_expr_roots( //dir=expr + int id: @key_path_expr ref, + int root: @type_repr_or_none ref +); + +#keyset[id, index] +key_path_expr_components( //dir=expr + int id: @key_path_expr ref, + int index: int ref, + int component: @key_path_component_or_none ref +); + +lazy_initialization_exprs( //dir=expr + unique int id: @lazy_initialization_expr, + int sub_expr: @expr_or_none ref +); + +@literal_expr = + @builtin_literal_expr +| @interpolated_string_literal_expr +| @nil_literal_expr +| @object_literal_expr +| @regex_literal_expr +; + +@lookup_expr = + @dynamic_lookup_expr +| @member_ref_expr +| @subscript_expr +; + +#keyset[id] +lookup_exprs( //dir=expr + int id: @lookup_expr ref, + int base: @expr_or_none ref +); + +#keyset[id] +lookup_expr_members( //dir=expr + int id: @lookup_expr ref, + int member: @decl_or_none ref +); + +make_temporarily_escapable_exprs( //dir=expr + unique int id: @make_temporarily_escapable_expr, + int escaping_closure: @opaque_value_expr_or_none ref, + int nonescaping_closure: @expr_or_none ref, + int sub_expr: @expr_or_none ref +); + +materialize_pack_exprs( //dir=expr + unique int id: @materialize_pack_expr, + int sub_expr: @expr_or_none ref +); + +obj_c_selector_exprs( //dir=expr + unique int id: @obj_c_selector_expr, + int sub_expr: @expr_or_none ref, + int method: @function_or_none ref +); + +one_way_exprs( //dir=expr + unique int id: @one_way_expr, + int sub_expr: @expr_or_none ref +); + +opaque_value_exprs( //dir=expr + unique int id: @opaque_value_expr +); + +open_existential_exprs( //dir=expr + unique int id: @open_existential_expr, + int sub_expr: @expr_or_none ref, + int existential: @expr_or_none ref, + int opaque_expr: @opaque_value_expr_or_none ref +); + +optional_evaluation_exprs( //dir=expr + unique int id: @optional_evaluation_expr, + int sub_expr: @expr_or_none ref +); + +other_initializer_ref_exprs( //dir=expr + unique int id: @other_initializer_ref_expr, + int initializer: @initializer_or_none ref +); + +overloaded_decl_ref_exprs( //dir=expr + unique int id: @overloaded_decl_ref_expr +); + +#keyset[id, index] +overloaded_decl_ref_expr_possible_declarations( //dir=expr + int id: @overloaded_decl_ref_expr ref, + int index: int ref, + int possible_declaration: @value_decl_or_none ref +); + +pack_element_exprs( //dir=expr + unique int id: @pack_element_expr, + int sub_expr: @expr_or_none ref +); + +pack_expansion_exprs( //dir=expr + unique int id: @pack_expansion_expr, + int pattern_expr: @expr_or_none ref +); + +property_wrapper_value_placeholder_exprs( //dir=expr + unique int id: @property_wrapper_value_placeholder_expr, + int placeholder: @opaque_value_expr_or_none ref +); + +#keyset[id] +property_wrapper_value_placeholder_expr_wrapped_values( //dir=expr + int id: @property_wrapper_value_placeholder_expr ref, + int wrapped_value: @expr_or_none ref +); + +rebind_self_in_initializer_exprs( //dir=expr + unique int id: @rebind_self_in_initializer_expr, + int sub_expr: @expr_or_none ref, + int self: @var_decl_or_none ref +); + +sequence_exprs( //dir=expr + unique int id: @sequence_expr +); + +#keyset[id, index] +sequence_expr_elements( //dir=expr + int id: @sequence_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +single_value_stmt_exprs( //dir=expr + unique int id: @single_value_stmt_expr, + int stmt: @stmt_or_none ref +); + +super_ref_exprs( //dir=expr + unique int id: @super_ref_expr, + int self: @var_decl_or_none ref +); + +tap_exprs( //dir=expr + unique int id: @tap_expr, + int body: @brace_stmt_or_none ref, + int var: @var_decl_or_none ref +); + +#keyset[id] +tap_expr_sub_exprs( //dir=expr + int id: @tap_expr ref, + int sub_expr: @expr_or_none ref +); + +tuple_element_exprs( //dir=expr + unique int id: @tuple_element_expr, + int sub_expr: @expr_or_none ref, + int index: int ref +); + +tuple_exprs( //dir=expr + unique int id: @tuple_expr +); + +#keyset[id, index] +tuple_expr_elements( //dir=expr + int id: @tuple_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +type_exprs( //dir=expr + unique int id: @type_expr +); + +#keyset[id] +type_expr_type_reprs( //dir=expr + int id: @type_expr ref, + int type_repr: @type_repr_or_none ref +); + +type_value_exprs( //dir=expr + unique int id: @type_value_expr, + int type_repr: @type_repr_or_none ref +); + +unresolved_decl_ref_exprs( //dir=expr + unique int id: @unresolved_decl_ref_expr +); + +#keyset[id] +unresolved_decl_ref_expr_names( //dir=expr + int id: @unresolved_decl_ref_expr ref, + string name: string ref +); + +unresolved_dot_exprs( //dir=expr + unique int id: @unresolved_dot_expr, + int base: @expr_or_none ref, + string name: string ref +); + +unresolved_member_exprs( //dir=expr + unique int id: @unresolved_member_expr, + string name: string ref +); + +unresolved_pattern_exprs( //dir=expr + unique int id: @unresolved_pattern_expr, + int sub_pattern: @pattern_or_none ref +); + +unresolved_specialize_exprs( //dir=expr + unique int id: @unresolved_specialize_expr, + int sub_expr: @expr_or_none ref +); + +vararg_expansion_exprs( //dir=expr + unique int id: @vararg_expansion_expr, + int sub_expr: @expr_or_none ref +); + +abi_safe_conversion_exprs( //dir=expr + unique int id: @abi_safe_conversion_expr +); + +actor_isolation_erasure_exprs( //dir=expr + unique int id: @actor_isolation_erasure_expr +); + +any_hashable_erasure_exprs( //dir=expr + unique int id: @any_hashable_erasure_expr +); + +archetype_to_super_exprs( //dir=expr + unique int id: @archetype_to_super_expr +); + +array_exprs( //dir=expr + unique int id: @array_expr +); + +#keyset[id, index] +array_expr_elements( //dir=expr + int id: @array_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +array_to_pointer_exprs( //dir=expr + unique int id: @array_to_pointer_expr +); + +auto_closure_exprs( //dir=expr + unique int id: @auto_closure_expr +); + +await_exprs( //dir=expr + unique int id: @await_expr +); + +binary_exprs( //dir=expr + unique int id: @binary_expr +); + +borrow_exprs( //dir=expr + unique int id: @borrow_expr +); + +bridge_from_obj_c_exprs( //dir=expr + unique int id: @bridge_from_obj_c_expr +); + +bridge_to_obj_c_exprs( //dir=expr + unique int id: @bridge_to_obj_c_expr +); + +@builtin_literal_expr = + @boolean_literal_expr +| @magic_identifier_literal_expr +| @number_literal_expr +| @string_literal_expr +; + +call_exprs( //dir=expr + unique int id: @call_expr +); + +@checked_cast_expr = + @conditional_checked_cast_expr +| @forced_checked_cast_expr +| @is_expr +; + +class_metatype_to_object_exprs( //dir=expr + unique int id: @class_metatype_to_object_expr +); + +coerce_exprs( //dir=expr + unique int id: @coerce_expr +); + +collection_upcast_conversion_exprs( //dir=expr + unique int id: @collection_upcast_conversion_expr +); + +conditional_bridge_from_obj_c_exprs( //dir=expr + unique int id: @conditional_bridge_from_obj_c_expr +); + +covariant_function_conversion_exprs( //dir=expr + unique int id: @covariant_function_conversion_expr +); + +covariant_return_conversion_exprs( //dir=expr + unique int id: @covariant_return_conversion_expr +); + +derived_to_base_exprs( //dir=expr + unique int id: @derived_to_base_expr +); + +destructure_tuple_exprs( //dir=expr + unique int id: @destructure_tuple_expr +); + +dictionary_exprs( //dir=expr + unique int id: @dictionary_expr +); + +#keyset[id, index] +dictionary_expr_elements( //dir=expr + int id: @dictionary_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +differentiable_function_exprs( //dir=expr + unique int id: @differentiable_function_expr +); + +differentiable_function_extract_original_exprs( //dir=expr + unique int id: @differentiable_function_extract_original_expr +); + +dot_self_exprs( //dir=expr + unique int id: @dot_self_expr +); + +@dynamic_lookup_expr = + @dynamic_member_ref_expr +| @dynamic_subscript_expr +; + +erasure_exprs( //dir=expr + unique int id: @erasure_expr +); + +existential_metatype_to_object_exprs( //dir=expr + unique int id: @existential_metatype_to_object_expr +); + +explicit_closure_exprs( //dir=expr + unique int id: @explicit_closure_expr +); + +force_try_exprs( //dir=expr + unique int id: @force_try_expr +); + +foreign_object_conversion_exprs( //dir=expr + unique int id: @foreign_object_conversion_expr +); + +function_conversion_exprs( //dir=expr + unique int id: @function_conversion_expr +); + +in_out_to_pointer_exprs( //dir=expr + unique int id: @in_out_to_pointer_expr +); + +inject_into_optional_exprs( //dir=expr + unique int id: @inject_into_optional_expr +); + +interpolated_string_literal_exprs( //dir=expr + unique int id: @interpolated_string_literal_expr +); + +#keyset[id] +interpolated_string_literal_expr_interpolation_exprs( //dir=expr + int id: @interpolated_string_literal_expr ref, + int interpolation_expr: @opaque_value_expr_or_none ref +); + +#keyset[id] +interpolated_string_literal_expr_appending_exprs( //dir=expr + int id: @interpolated_string_literal_expr ref, + int appending_expr: @tap_expr_or_none ref +); + +linear_function_exprs( //dir=expr + unique int id: @linear_function_expr +); + +linear_function_extract_original_exprs( //dir=expr + unique int id: @linear_function_extract_original_expr +); + +linear_to_differentiable_function_exprs( //dir=expr + unique int id: @linear_to_differentiable_function_expr +); + +load_exprs( //dir=expr + unique int id: @load_expr +); + +member_ref_exprs( //dir=expr + unique int id: @member_ref_expr +); + +#keyset[id] +member_ref_expr_has_direct_to_storage_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_ordinary_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_distributed_thunk_semantics( //dir=expr + int id: @member_ref_expr ref +); + +metatype_conversion_exprs( //dir=expr + unique int id: @metatype_conversion_expr +); + +nil_literal_exprs( //dir=expr + unique int id: @nil_literal_expr +); + +object_literal_exprs( //dir=expr + unique int id: @object_literal_expr, + int kind: int ref +); + +#keyset[id, index] +object_literal_expr_arguments( //dir=expr + int id: @object_literal_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +optional_try_exprs( //dir=expr + unique int id: @optional_try_expr +); + +paren_exprs( //dir=expr + unique int id: @paren_expr +); + +pointer_to_pointer_exprs( //dir=expr + unique int id: @pointer_to_pointer_expr +); + +postfix_unary_exprs( //dir=expr + unique int id: @postfix_unary_expr +); + +prefix_unary_exprs( //dir=expr + unique int id: @prefix_unary_expr +); + +protocol_metatype_to_object_exprs( //dir=expr + unique int id: @protocol_metatype_to_object_expr +); + +regex_literal_exprs( //dir=expr + unique int id: @regex_literal_expr, + string pattern: string ref, + int version: int ref +); + +@self_apply_expr = + @dot_syntax_call_expr +| @initializer_ref_call_expr +; + +#keyset[id] +self_apply_exprs( //dir=expr + int id: @self_apply_expr ref, + int base: @expr_or_none ref +); + +string_to_pointer_exprs( //dir=expr + unique int id: @string_to_pointer_expr +); + +subscript_exprs( //dir=expr + unique int id: @subscript_expr +); + +#keyset[id, index] +subscript_expr_arguments( //dir=expr + int id: @subscript_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +#keyset[id] +subscript_expr_has_direct_to_storage_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_ordinary_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_distributed_thunk_semantics( //dir=expr + int id: @subscript_expr ref +); + +try_exprs( //dir=expr + unique int id: @try_expr +); + +underlying_to_opaque_exprs( //dir=expr + unique int id: @underlying_to_opaque_expr +); + +unevaluated_instance_exprs( //dir=expr + unique int id: @unevaluated_instance_expr +); + +unreachable_exprs( //dir=expr + unique int id: @unreachable_expr +); + +unresolved_member_chain_result_exprs( //dir=expr + unique int id: @unresolved_member_chain_result_expr +); + +unresolved_type_conversion_exprs( //dir=expr + unique int id: @unresolved_type_conversion_expr +); + +unsafe_cast_exprs( //dir=expr + unique int id: @unsafe_cast_expr +); + +unsafe_exprs( //dir=expr + unique int id: @unsafe_expr +); + +boolean_literal_exprs( //dir=expr + unique int id: @boolean_literal_expr, + boolean value: boolean ref +); + +conditional_checked_cast_exprs( //dir=expr + unique int id: @conditional_checked_cast_expr +); + +dot_syntax_call_exprs( //dir=expr + unique int id: @dot_syntax_call_expr +); + +dynamic_member_ref_exprs( //dir=expr + unique int id: @dynamic_member_ref_expr +); + +dynamic_subscript_exprs( //dir=expr + unique int id: @dynamic_subscript_expr +); + +forced_checked_cast_exprs( //dir=expr + unique int id: @forced_checked_cast_expr +); + +initializer_ref_call_exprs( //dir=expr + unique int id: @initializer_ref_call_expr +); + +is_exprs( //dir=expr + unique int id: @is_expr +); + +magic_identifier_literal_exprs( //dir=expr + unique int id: @magic_identifier_literal_expr, + string kind: string ref +); + +@number_literal_expr = + @float_literal_expr +| @integer_literal_expr +; + +string_literal_exprs( //dir=expr + unique int id: @string_literal_expr, + string value: string ref +); + +float_literal_exprs( //dir=expr + unique int id: @float_literal_expr, + string string_value: string ref +); + +integer_literal_exprs( //dir=expr + unique int id: @integer_literal_expr, + string string_value: string ref +); + +@pattern = + @any_pattern +| @binding_pattern +| @bool_pattern +| @enum_element_pattern +| @expr_pattern +| @is_pattern +| @named_pattern +| @optional_some_pattern +| @paren_pattern +| @tuple_pattern +| @typed_pattern +; + +#keyset[id] +pattern_types( //dir=pattern + int id: @pattern ref, + int type_: @type_or_none ref +); + +any_patterns( //dir=pattern + unique int id: @any_pattern +); + +binding_patterns( //dir=pattern + unique int id: @binding_pattern, + int sub_pattern: @pattern_or_none ref +); + +bool_patterns( //dir=pattern + unique int id: @bool_pattern, + boolean value: boolean ref +); + +enum_element_patterns( //dir=pattern + unique int id: @enum_element_pattern, + int element: @enum_element_decl_or_none ref +); + +#keyset[id] +enum_element_pattern_sub_patterns( //dir=pattern + int id: @enum_element_pattern ref, + int sub_pattern: @pattern_or_none ref +); + +expr_patterns( //dir=pattern + unique int id: @expr_pattern, + int sub_expr: @expr_or_none ref +); + +is_patterns( //dir=pattern + unique int id: @is_pattern +); + +#keyset[id] +is_pattern_cast_type_reprs( //dir=pattern + int id: @is_pattern ref, + int cast_type_repr: @type_repr_or_none ref +); + +#keyset[id] +is_pattern_sub_patterns( //dir=pattern + int id: @is_pattern ref, + int sub_pattern: @pattern_or_none ref +); + +named_patterns( //dir=pattern + unique int id: @named_pattern, + int var_decl: @var_decl_or_none ref +); + +optional_some_patterns( //dir=pattern + unique int id: @optional_some_pattern, + int sub_pattern: @pattern_or_none ref +); + +paren_patterns( //dir=pattern + unique int id: @paren_pattern, + int sub_pattern: @pattern_or_none ref +); + +tuple_patterns( //dir=pattern + unique int id: @tuple_pattern +); + +#keyset[id, index] +tuple_pattern_elements( //dir=pattern + int id: @tuple_pattern ref, + int index: int ref, + int element: @pattern_or_none ref +); + +typed_patterns( //dir=pattern + unique int id: @typed_pattern, + int sub_pattern: @pattern_or_none ref +); + +#keyset[id] +typed_pattern_type_reprs( //dir=pattern + int id: @typed_pattern ref, + int type_repr: @type_repr_or_none ref +); + +case_label_items( //dir=stmt + unique int id: @case_label_item, + int pattern: @pattern_or_none ref +); + +#keyset[id] +case_label_item_guards( //dir=stmt + int id: @case_label_item ref, + int guard: @expr_or_none ref +); + +condition_elements( //dir=stmt + unique int id: @condition_element +); + +#keyset[id] +condition_element_booleans( //dir=stmt + int id: @condition_element ref, + int boolean_: @expr_or_none ref +); + +#keyset[id] +condition_element_patterns( //dir=stmt + int id: @condition_element ref, + int pattern: @pattern_or_none ref +); + +#keyset[id] +condition_element_initializers( //dir=stmt + int id: @condition_element ref, + int initializer: @expr_or_none ref +); + +#keyset[id] +condition_element_availabilities( //dir=stmt + int id: @condition_element ref, + int availability: @availability_info_or_none ref +); + +@stmt = + @brace_stmt +| @break_stmt +| @case_stmt +| @continue_stmt +| @defer_stmt +| @discard_stmt +| @fail_stmt +| @fallthrough_stmt +| @labeled_stmt +| @pound_assert_stmt +| @return_stmt +| @then_stmt +| @throw_stmt +| @yield_stmt +; + +stmt_conditions( //dir=stmt + unique int id: @stmt_condition +); + +#keyset[id, index] +stmt_condition_elements( //dir=stmt + int id: @stmt_condition ref, + int index: int ref, + int element: @condition_element_or_none ref +); + +brace_stmts( //dir=stmt + unique int id: @brace_stmt +); + +#keyset[id, index] +brace_stmt_elements( //dir=stmt + int id: @brace_stmt ref, + int index: int ref, + int element: @ast_node_or_none ref +); + +break_stmts( //dir=stmt + unique int id: @break_stmt +); + +#keyset[id] +break_stmt_target_names( //dir=stmt + int id: @break_stmt ref, + string target_name: string ref +); + +#keyset[id] +break_stmt_targets( //dir=stmt + int id: @break_stmt ref, + int target: @stmt_or_none ref +); + +case_stmts( //dir=stmt + unique int id: @case_stmt, + int body: @stmt_or_none ref +); + +#keyset[id, index] +case_stmt_labels( //dir=stmt + int id: @case_stmt ref, + int index: int ref, + int label: @case_label_item_or_none ref +); + +#keyset[id, index] +case_stmt_variables( //dir=stmt + int id: @case_stmt ref, + int index: int ref, + int variable: @var_decl_or_none ref +); + +continue_stmts( //dir=stmt + unique int id: @continue_stmt +); + +#keyset[id] +continue_stmt_target_names( //dir=stmt + int id: @continue_stmt ref, + string target_name: string ref +); + +#keyset[id] +continue_stmt_targets( //dir=stmt + int id: @continue_stmt ref, + int target: @stmt_or_none ref +); + +defer_stmts( //dir=stmt + unique int id: @defer_stmt, + int body: @brace_stmt_or_none ref +); + +discard_stmts( //dir=stmt + unique int id: @discard_stmt, + int sub_expr: @expr_or_none ref +); + +fail_stmts( //dir=stmt + unique int id: @fail_stmt +); + +fallthrough_stmts( //dir=stmt + unique int id: @fallthrough_stmt, + int fallthrough_source: @case_stmt_or_none ref, + int fallthrough_dest: @case_stmt_or_none ref +); + +@labeled_stmt = + @do_catch_stmt +| @do_stmt +| @for_each_stmt +| @labeled_conditional_stmt +| @repeat_while_stmt +| @switch_stmt +; + +#keyset[id] +labeled_stmt_labels( //dir=stmt + int id: @labeled_stmt ref, + string label: string ref +); + +pound_assert_stmts( //dir=stmt + unique int id: @pound_assert_stmt, + int condition: @expr_or_none ref, + string message: string ref +); + +return_stmts( //dir=stmt + unique int id: @return_stmt +); + +#keyset[id] +return_stmt_results( //dir=stmt + int id: @return_stmt ref, + int result: @expr_or_none ref +); + +then_stmts( //dir=stmt + unique int id: @then_stmt, + int result: @expr_or_none ref +); + +throw_stmts( //dir=stmt + unique int id: @throw_stmt, + int sub_expr: @expr_or_none ref +); + +yield_stmts( //dir=stmt + unique int id: @yield_stmt +); + +#keyset[id, index] +yield_stmt_results( //dir=stmt + int id: @yield_stmt ref, + int index: int ref, + int result: @expr_or_none ref +); + +do_catch_stmts( //dir=stmt + unique int id: @do_catch_stmt, + int body: @stmt_or_none ref +); + +#keyset[id, index] +do_catch_stmt_catches( //dir=stmt + int id: @do_catch_stmt ref, + int index: int ref, + int catch: @case_stmt_or_none ref +); + +do_stmts( //dir=stmt + unique int id: @do_stmt, + int body: @brace_stmt_or_none ref +); + +for_each_stmts( //dir=stmt + unique int id: @for_each_stmt, + int pattern: @pattern_or_none ref, + int body: @brace_stmt_or_none ref +); + +#keyset[id, index] +for_each_stmt_variables( //dir=stmt + int id: @for_each_stmt ref, + int index: int ref, + int variable: @var_decl_or_none ref +); + +#keyset[id] +for_each_stmt_wheres( //dir=stmt + int id: @for_each_stmt ref, + int where: @expr_or_none ref +); + +#keyset[id] +for_each_stmt_iterator_vars( //dir=stmt + int id: @for_each_stmt ref, + int iteratorVar: @pattern_binding_decl_or_none ref +); + +#keyset[id] +for_each_stmt_next_calls( //dir=stmt + int id: @for_each_stmt ref, + int nextCall: @expr_or_none ref +); + +@labeled_conditional_stmt = + @guard_stmt +| @if_stmt +| @while_stmt +; + +#keyset[id] +labeled_conditional_stmts( //dir=stmt + int id: @labeled_conditional_stmt ref, + int condition: @stmt_condition_or_none ref +); + +repeat_while_stmts( //dir=stmt + unique int id: @repeat_while_stmt, + int condition: @expr_or_none ref, + int body: @stmt_or_none ref +); + +switch_stmts( //dir=stmt + unique int id: @switch_stmt, + int expr: @expr_or_none ref +); + +#keyset[id, index] +switch_stmt_cases( //dir=stmt + int id: @switch_stmt ref, + int index: int ref, + int case_: @case_stmt_or_none ref +); + +guard_stmts( //dir=stmt + unique int id: @guard_stmt, + int body: @brace_stmt_or_none ref +); + +if_stmts( //dir=stmt + unique int id: @if_stmt, + int then: @stmt_or_none ref +); + +#keyset[id] +if_stmt_elses( //dir=stmt + int id: @if_stmt ref, + int else: @stmt_or_none ref +); + +while_stmts( //dir=stmt + unique int id: @while_stmt, + int body: @stmt_or_none ref +); + +@type = + @any_function_type +| @any_generic_type +| @any_metatype_type +| @builtin_type +| @dependent_member_type +| @dynamic_self_type +| @error_type +| @existential_type +| @in_out_type +| @integer_type +| @l_value_type +| @module_type +| @pack_element_type +| @pack_expansion_type +| @pack_type +| @parameterized_protocol_type +| @protocol_composition_type +| @reference_storage_type +| @substitutable_type +| @sugar_type +| @tuple_type +| @unresolved_type +; + +#keyset[id] +types( //dir=type + int id: @type ref, + string name: string ref, + int canonical_type: @type_or_none ref +); + +type_reprs( //dir=type + unique int id: @type_repr, + int type_: @type_or_none ref +); + +@any_function_type = + @function_type +| @generic_function_type +; + +#keyset[id] +any_function_types( //dir=type + int id: @any_function_type ref, + int result: @type_or_none ref +); + +#keyset[id, index] +any_function_type_param_types( //dir=type + int id: @any_function_type ref, + int index: int ref, + int param_type: @type_or_none ref +); + +#keyset[id] +any_function_type_is_throwing( //dir=type + int id: @any_function_type ref +); + +#keyset[id] +any_function_type_is_async( //dir=type + int id: @any_function_type ref +); + +@any_generic_type = + @nominal_or_bound_generic_nominal_type +| @unbound_generic_type +; + +#keyset[id] +any_generic_types( //dir=type + int id: @any_generic_type ref, + int declaration: @generic_type_decl_or_none ref +); + +#keyset[id] +any_generic_type_parents( //dir=type + int id: @any_generic_type ref, + int parent: @type_or_none ref +); + +@any_metatype_type = + @existential_metatype_type +| @metatype_type +; + +@builtin_type = + @any_builtin_integer_type +| @builtin_bridge_object_type +| @builtin_default_actor_storage_type +| @builtin_executor_type +| @builtin_float_type +| @builtin_generic_type +| @builtin_job_type +| @builtin_native_object_type +| @builtin_raw_pointer_type +| @builtin_raw_unsafe_continuation_type +| @builtin_unsafe_value_buffer_type +| @builtin_vector_type +; + +dependent_member_types( //dir=type + unique int id: @dependent_member_type, + int base_type: @type_or_none ref, + int associated_type_decl: @associated_type_decl_or_none ref +); + +dynamic_self_types( //dir=type + unique int id: @dynamic_self_type, + int static_self_type: @type_or_none ref +); + +error_types( //dir=type + unique int id: @error_type +); + +existential_types( //dir=type + unique int id: @existential_type, + int constraint: @type_or_none ref +); + +in_out_types( //dir=type + unique int id: @in_out_type, + int object_type: @type_or_none ref +); + +integer_types( //dir=type + unique int id: @integer_type, + string value: string ref +); + +l_value_types( //dir=type + unique int id: @l_value_type, + int object_type: @type_or_none ref +); + +module_types( //dir=type + unique int id: @module_type, + int module: @module_decl_or_none ref +); + +pack_element_types( //dir=type + unique int id: @pack_element_type, + int pack_type: @type_or_none ref +); + +pack_expansion_types( //dir=type + unique int id: @pack_expansion_type, + int pattern_type: @type_or_none ref, + int count_type: @type_or_none ref +); + +pack_types( //dir=type + unique int id: @pack_type +); + +#keyset[id, index] +pack_type_elements( //dir=type + int id: @pack_type ref, + int index: int ref, + int element: @type_or_none ref +); + +parameterized_protocol_types( //dir=type + unique int id: @parameterized_protocol_type, + int base: @protocol_type_or_none ref +); + +#keyset[id, index] +parameterized_protocol_type_args( //dir=type + int id: @parameterized_protocol_type ref, + int index: int ref, + int arg: @type_or_none ref +); + +protocol_composition_types( //dir=type + unique int id: @protocol_composition_type +); + +#keyset[id, index] +protocol_composition_type_members( //dir=type + int id: @protocol_composition_type ref, + int index: int ref, + int member: @type_or_none ref +); + +@reference_storage_type = + @unmanaged_storage_type +| @unowned_storage_type +| @weak_storage_type +; + +#keyset[id] +reference_storage_types( //dir=type + int id: @reference_storage_type ref, + int referent_type: @type_or_none ref +); + +@substitutable_type = + @archetype_type +| @generic_type_param_type +; + +@sugar_type = + @paren_type +| @syntax_sugar_type +| @type_alias_type +; + +tuple_types( //dir=type + unique int id: @tuple_type +); + +#keyset[id, index] +tuple_type_types( //dir=type + int id: @tuple_type ref, + int index: int ref, + int type_: @type_or_none ref +); + +#keyset[id, index] +tuple_type_names( //dir=type + int id: @tuple_type ref, + int index: int ref, + string name: string ref +); + +unresolved_types( //dir=type + unique int id: @unresolved_type +); + +@any_builtin_integer_type = + @builtin_integer_literal_type +| @builtin_integer_type +; + +@archetype_type = + @local_archetype_type +| @opaque_type_archetype_type +| @pack_archetype_type +| @primary_archetype_type +; + +#keyset[id] +archetype_types( //dir=type + int id: @archetype_type ref, + int interface_type: @type_or_none ref +); + +#keyset[id] +archetype_type_superclasses( //dir=type + int id: @archetype_type ref, + int superclass: @type_or_none ref +); + +#keyset[id, index] +archetype_type_protocols( //dir=type + int id: @archetype_type ref, + int index: int ref, + int protocol: @protocol_decl_or_none ref +); + +builtin_bridge_object_types( //dir=type + unique int id: @builtin_bridge_object_type +); + +builtin_default_actor_storage_types( //dir=type + unique int id: @builtin_default_actor_storage_type +); + +builtin_executor_types( //dir=type + unique int id: @builtin_executor_type +); + +builtin_float_types( //dir=type + unique int id: @builtin_float_type +); + +@builtin_generic_type = + @builtin_fixed_array_type +; + +builtin_job_types( //dir=type + unique int id: @builtin_job_type +); + +builtin_native_object_types( //dir=type + unique int id: @builtin_native_object_type +); + +builtin_raw_pointer_types( //dir=type + unique int id: @builtin_raw_pointer_type +); + +builtin_raw_unsafe_continuation_types( //dir=type + unique int id: @builtin_raw_unsafe_continuation_type +); + +builtin_unsafe_value_buffer_types( //dir=type + unique int id: @builtin_unsafe_value_buffer_type +); + +builtin_vector_types( //dir=type + unique int id: @builtin_vector_type +); + +existential_metatype_types( //dir=type + unique int id: @existential_metatype_type +); + +function_types( //dir=type + unique int id: @function_type +); + +generic_function_types( //dir=type + unique int id: @generic_function_type +); + +#keyset[id, index] +generic_function_type_generic_params( //dir=type + int id: @generic_function_type ref, + int index: int ref, + int generic_param: @generic_type_param_type_or_none ref +); + +generic_type_param_types( //dir=type + unique int id: @generic_type_param_type +); + +metatype_types( //dir=type + unique int id: @metatype_type +); + +@nominal_or_bound_generic_nominal_type = + @bound_generic_type +| @nominal_type +; + +paren_types( //dir=type + unique int id: @paren_type, + int type_: @type_or_none ref +); + +@syntax_sugar_type = + @dictionary_type +| @inline_array_type +| @unary_syntax_sugar_type +; + +type_alias_types( //dir=type + unique int id: @type_alias_type, + int decl: @type_alias_decl_or_none ref +); + +unbound_generic_types( //dir=type + unique int id: @unbound_generic_type +); + +unmanaged_storage_types( //dir=type + unique int id: @unmanaged_storage_type +); + +unowned_storage_types( //dir=type + unique int id: @unowned_storage_type +); + +weak_storage_types( //dir=type + unique int id: @weak_storage_type +); + +@bound_generic_type = + @bound_generic_class_type +| @bound_generic_enum_type +| @bound_generic_struct_type +; + +#keyset[id, index] +bound_generic_type_arg_types( //dir=type + int id: @bound_generic_type ref, + int index: int ref, + int arg_type: @type_or_none ref +); + +builtin_fixed_array_types( //dir=type + unique int id: @builtin_fixed_array_type +); + +builtin_integer_literal_types( //dir=type + unique int id: @builtin_integer_literal_type +); + +builtin_integer_types( //dir=type + unique int id: @builtin_integer_type +); + +#keyset[id] +builtin_integer_type_widths( //dir=type + int id: @builtin_integer_type ref, + int width: int ref +); + +dictionary_types( //dir=type + unique int id: @dictionary_type, + int key_type: @type_or_none ref, + int value_type: @type_or_none ref +); + +inline_array_types( //dir=type + unique int id: @inline_array_type, + int count_type: @type_or_none ref, + int element_type: @type_or_none ref +); + +@local_archetype_type = + @element_archetype_type +| @existential_archetype_type +; + +@nominal_type = + @class_type +| @enum_type +| @protocol_type +| @struct_type +; + +opaque_type_archetype_types( //dir=type + unique int id: @opaque_type_archetype_type, + int declaration: @opaque_type_decl_or_none ref +); + +pack_archetype_types( //dir=type + unique int id: @pack_archetype_type +); + +primary_archetype_types( //dir=type + unique int id: @primary_archetype_type +); + +@unary_syntax_sugar_type = + @array_slice_type +| @optional_type +| @variadic_sequence_type +; + +#keyset[id] +unary_syntax_sugar_types( //dir=type + int id: @unary_syntax_sugar_type ref, + int base_type: @type_or_none ref +); + +array_slice_types( //dir=type + unique int id: @array_slice_type +); + +bound_generic_class_types( //dir=type + unique int id: @bound_generic_class_type +); + +bound_generic_enum_types( //dir=type + unique int id: @bound_generic_enum_type +); + +bound_generic_struct_types( //dir=type + unique int id: @bound_generic_struct_type +); + +class_types( //dir=type + unique int id: @class_type +); + +element_archetype_types( //dir=type + unique int id: @element_archetype_type +); + +enum_types( //dir=type + unique int id: @enum_type +); + +existential_archetype_types( //dir=type + unique int id: @existential_archetype_type +); + +optional_types( //dir=type + unique int id: @optional_type +); + +protocol_types( //dir=type + unique int id: @protocol_type +); + +struct_types( //dir=type + unique int id: @struct_type +); + +variadic_sequence_types( //dir=type + unique int id: @variadic_sequence_type +); + +@accessor_or_none = + @accessor +| @unspecified_element +; + +@argument_or_none = + @argument +| @unspecified_element +; + +@associated_type_decl_or_none = + @associated_type_decl +| @unspecified_element +; + +@ast_node_or_none = + @ast_node +| @unspecified_element +; + +@availability_info_or_none = + @availability_info +| @unspecified_element +; + +@availability_spec_or_none = + @availability_spec +| @unspecified_element +; + +@brace_stmt_or_none = + @brace_stmt +| @unspecified_element +; + +@captured_decl_or_none = + @captured_decl +| @unspecified_element +; + +@case_label_item_or_none = + @case_label_item +| @unspecified_element +; + +@case_stmt_or_none = + @case_stmt +| @unspecified_element +; + +@closure_expr_or_none = + @closure_expr +| @unspecified_element +; + +@condition_element_or_none = + @condition_element +| @unspecified_element +; + +@decl_or_none = + @decl +| @unspecified_element +; + +@enum_element_decl_or_none = + @enum_element_decl +| @unspecified_element +; + +@expr_or_none = + @expr +| @unspecified_element +; + +@file_or_none = + @file +| @unspecified_element +; + +@function_or_none = + @function +| @unspecified_element +; + +@generic_type_decl_or_none = + @generic_type_decl +| @unspecified_element +; + +@generic_type_param_decl_or_none = + @generic_type_param_decl +| @unspecified_element +; + +@generic_type_param_type_or_none = + @generic_type_param_type +| @unspecified_element +; + +@initializer_or_none = + @initializer +| @unspecified_element +; + +@key_path_component_or_none = + @key_path_component +| @unspecified_element +; + +@location_or_none = + @location +| @unspecified_element +; + +@macro_role_or_none = + @macro_role +| @unspecified_element +; + +@module_decl_or_none = + @module_decl +| @unspecified_element +; + +@nominal_type_decl_or_none = + @nominal_type_decl +| @unspecified_element +; + +@opaque_type_decl_or_none = + @opaque_type_decl +| @unspecified_element +; + +@opaque_value_expr_or_none = + @opaque_value_expr +| @unspecified_element +; + +@param_decl_or_none = + @param_decl +| @unspecified_element +; + +@pattern_or_none = + @pattern +| @unspecified_element +; + +@pattern_binding_decl_or_none = + @pattern_binding_decl +| @unspecified_element +; + +@precedence_group_decl_or_none = + @precedence_group_decl +| @unspecified_element +; + +@protocol_decl_or_none = + @protocol_decl +| @unspecified_element +; + +@protocol_type_or_none = + @protocol_type +| @unspecified_element +; + +@stmt_or_none = + @stmt +| @unspecified_element +; + +@stmt_condition_or_none = + @stmt_condition +| @unspecified_element +; + +@string_literal_expr_or_none = + @string_literal_expr +| @unspecified_element +; + +@tap_expr_or_none = + @tap_expr +| @unspecified_element +; + +@type_or_none = + @type +| @unspecified_element +; + +@type_alias_decl_or_none = + @type_alias_decl +| @unspecified_element +; + +@type_repr_or_none = + @type_repr +| @unspecified_element +; + +@value_decl_or_none = + @unspecified_element +| @value_decl +; + +@var_decl_or_none = + @unspecified_element +| @var_decl +; diff --git a/swift/downgrades/5738be6bb04742c424efdbf9f4de11f0b10fa37d/upgrade.properties b/swift/downgrades/5738be6bb04742c424efdbf9f4de11f0b10fa37d/upgrade.properties new file mode 100644 index 00000000000..0e7d432a350 --- /dev/null +++ b/swift/downgrades/5738be6bb04742c424efdbf9f4de11f0b10fa37d/upgrade.properties @@ -0,0 +1,3 @@ +description: Support BuiltinFixedArrayType arguments +compatibility: full +builtin_fixed_array_types.rel: run builtin_fixed_array_types.qlo diff --git a/swift/downgrades/ee3053b673c901a325b361b18c50b18342752bf8/old.dbscheme b/swift/downgrades/ee3053b673c901a325b361b18c50b18342752bf8/old.dbscheme new file mode 100644 index 00000000000..ee3053b673c --- /dev/null +++ b/swift/downgrades/ee3053b673c901a325b361b18c50b18342752bf8/old.dbscheme @@ -0,0 +1,2889 @@ +// generated by codegen/codegen.py, do not edit + +// from prefix.dbscheme +/** + * The source location of the snapshot. + */ +sourceLocationPrefix( + string prefix: string ref +); + + +// from schema.py + +@element = + @file +| @generic_context +| @locatable +| @location +| @type +; + +#keyset[id] +element_is_unknown( + int id: @element ref +); + +@file = + @db_file +; + +#keyset[id] +files( + int id: @file ref, + string name: string ref +); + +#keyset[id] +file_is_successfully_extracted( + int id: @file ref +); + +@locatable = + @argument +| @ast_node +| @comment +| @diagnostics +| @error_element +; + +#keyset[id] +locatable_locations( + int id: @locatable ref, + int location: @location_or_none ref +); + +@location = + @db_location +; + +#keyset[id] +locations( + int id: @location ref, + int file: @file_or_none ref, + int start_line: int ref, + int start_column: int ref, + int end_line: int ref, + int end_column: int ref +); + +@ast_node = + @availability_info +| @availability_spec +| @callable +| @case_label_item +| @condition_element +| @decl +| @expr +| @key_path_component +| @macro_role +| @pattern +| @stmt +| @stmt_condition +| @type_repr +; + +comments( + unique int id: @comment, + string text: string ref +); + +db_files( + unique int id: @db_file +); + +db_locations( + unique int id: @db_location +); + +diagnostics( + unique int id: @diagnostics, + string text: string ref, + int kind: int ref +); + +@error_element = + @error_expr +| @error_type +| @overloaded_decl_ref_expr +| @unresolved_decl_ref_expr +| @unresolved_dot_expr +| @unresolved_member_chain_result_expr +| @unresolved_member_expr +| @unresolved_pattern_expr +| @unresolved_specialize_expr +| @unresolved_type +| @unresolved_type_conversion_expr +| @unspecified_element +; + +availability_infos( + unique int id: @availability_info +); + +#keyset[id] +availability_info_is_unavailable( + int id: @availability_info ref +); + +#keyset[id, index] +availability_info_specs( + int id: @availability_info ref, + int index: int ref, + int spec: @availability_spec_or_none ref +); + +availability_specs( + unique int id: @availability_spec +); + +#keyset[id] +availability_spec_platforms( + int id: @availability_spec ref, + string platform: string ref +); + +#keyset[id] +availability_spec_versions( + int id: @availability_spec ref, + string version: string ref +); + +#keyset[id] +availability_spec_is_wildcard( + int id: @availability_spec ref +); + +@callable = + @closure_expr +| @function +; + +#keyset[id] +callable_names( + int id: @callable ref, + string name: string ref +); + +#keyset[id] +callable_self_params( + int id: @callable ref, + int self_param: @param_decl_or_none ref +); + +#keyset[id, index] +callable_params( + int id: @callable ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +#keyset[id] +callable_bodies( + int id: @callable ref, + int body: @brace_stmt_or_none ref +); + +#keyset[id, index] +callable_captures( + int id: @callable ref, + int index: int ref, + int capture: @captured_decl_or_none ref +); + +key_path_components( + unique int id: @key_path_component, + int kind: int ref, + int component_type: @type_or_none ref +); + +#keyset[id, index] +key_path_component_subscript_arguments( + int id: @key_path_component ref, + int index: int ref, + int subscript_argument: @argument_or_none ref +); + +#keyset[id] +key_path_component_tuple_indices( + int id: @key_path_component ref, + int tuple_index: int ref +); + +#keyset[id] +key_path_component_decl_refs( + int id: @key_path_component ref, + int decl_ref: @value_decl_or_none ref +); + +macro_roles( + unique int id: @macro_role, + int kind: int ref, + int macro_syntax: int ref +); + +#keyset[id, index] +macro_role_conformances( + int id: @macro_role ref, + int index: int ref, + int conformance: @expr_or_none ref +); + +#keyset[id, index] +macro_role_names( + int id: @macro_role ref, + int index: int ref, + string name: string ref +); + +unspecified_elements( + unique int id: @unspecified_element, + string property: string ref, + string error: string ref +); + +#keyset[id] +unspecified_element_parents( + int id: @unspecified_element ref, + int parent: @element ref +); + +#keyset[id] +unspecified_element_indices( + int id: @unspecified_element ref, + int index: int ref +); + +#keyset[id, index] +unspecified_element_children( + int id: @unspecified_element ref, + int index: int ref, + int child: @ast_node_or_none ref +); + +@decl = + @captured_decl +| @enum_case_decl +| @extension_decl +| @if_config_decl +| @import_decl +| @missing_member_decl +| @operator_decl +| @pattern_binding_decl +| @pound_diagnostic_decl +| @precedence_group_decl +| @top_level_code_decl +| @using_decl +| @value_decl +; + +#keyset[id] +decls( //dir=decl + int id: @decl ref, + int module: @module_decl_or_none ref +); + +#keyset[id, index] +decl_members( //dir=decl + int id: @decl ref, + int index: int ref, + int member: @decl_or_none ref +); + +@generic_context = + @extension_decl +| @function +| @generic_type_decl +| @macro_decl +| @subscript_decl +; + +#keyset[id, index] +generic_context_generic_type_params( //dir=decl + int id: @generic_context ref, + int index: int ref, + int generic_type_param: @generic_type_param_decl_or_none ref +); + +captured_decls( //dir=decl + unique int id: @captured_decl, + int decl: @value_decl_or_none ref +); + +#keyset[id] +captured_decl_is_direct( //dir=decl + int id: @captured_decl ref +); + +#keyset[id] +captured_decl_is_escaping( //dir=decl + int id: @captured_decl ref +); + +enum_case_decls( //dir=decl + unique int id: @enum_case_decl +); + +#keyset[id, index] +enum_case_decl_elements( //dir=decl + int id: @enum_case_decl ref, + int index: int ref, + int element: @enum_element_decl_or_none ref +); + +extension_decls( //dir=decl + unique int id: @extension_decl, + int extended_type_decl: @nominal_type_decl_or_none ref +); + +#keyset[id, index] +extension_decl_protocols( //dir=decl + int id: @extension_decl ref, + int index: int ref, + int protocol: @protocol_decl_or_none ref +); + +if_config_decls( //dir=decl + unique int id: @if_config_decl +); + +#keyset[id, index] +if_config_decl_active_elements( //dir=decl + int id: @if_config_decl ref, + int index: int ref, + int active_element: @ast_node_or_none ref +); + +import_decls( //dir=decl + unique int id: @import_decl +); + +#keyset[id] +import_decl_is_exported( //dir=decl + int id: @import_decl ref +); + +#keyset[id] +import_decl_imported_modules( //dir=decl + int id: @import_decl ref, + int imported_module: @module_decl_or_none ref +); + +#keyset[id, index] +import_decl_declarations( //dir=decl + int id: @import_decl ref, + int index: int ref, + int declaration: @value_decl_or_none ref +); + +missing_member_decls( //dir=decl + unique int id: @missing_member_decl, + string name: string ref +); + +@operator_decl = + @infix_operator_decl +| @postfix_operator_decl +| @prefix_operator_decl +; + +#keyset[id] +operator_decls( //dir=decl + int id: @operator_decl ref, + string name: string ref +); + +pattern_binding_decls( //dir=decl + unique int id: @pattern_binding_decl +); + +#keyset[id, index] +pattern_binding_decl_inits( //dir=decl + int id: @pattern_binding_decl ref, + int index: int ref, + int init: @expr_or_none ref +); + +#keyset[id, index] +pattern_binding_decl_patterns( //dir=decl + int id: @pattern_binding_decl ref, + int index: int ref, + int pattern: @pattern_or_none ref +); + +pound_diagnostic_decls( //dir=decl + unique int id: @pound_diagnostic_decl, + int kind: int ref, + int message: @string_literal_expr_or_none ref +); + +precedence_group_decls( //dir=decl + unique int id: @precedence_group_decl +); + +top_level_code_decls( //dir=decl + unique int id: @top_level_code_decl, + int body: @brace_stmt_or_none ref +); + +using_decls( //dir=decl + unique int id: @using_decl +); + +#keyset[id] +using_decl_is_main_actor( //dir=decl + int id: @using_decl ref +); + +#keyset[id] +using_decl_is_nonisolated( //dir=decl + int id: @using_decl ref +); + +@value_decl = + @abstract_storage_decl +| @enum_element_decl +| @function +| @macro_decl +| @type_decl +; + +#keyset[id] +value_decls( //dir=decl + int id: @value_decl ref, + int interface_type: @type_or_none ref +); + +@abstract_storage_decl = + @subscript_decl +| @var_decl +; + +#keyset[id, index] +abstract_storage_decl_accessors( //dir=decl + int id: @abstract_storage_decl ref, + int index: int ref, + int accessor: @accessor_or_none ref +); + +enum_element_decls( //dir=decl + unique int id: @enum_element_decl, + string name: string ref +); + +#keyset[id, index] +enum_element_decl_params( //dir=decl + int id: @enum_element_decl ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +@function = + @accessor_or_named_function +| @deinitializer +| @initializer +; + +infix_operator_decls( //dir=decl + unique int id: @infix_operator_decl +); + +#keyset[id] +infix_operator_decl_precedence_groups( //dir=decl + int id: @infix_operator_decl ref, + int precedence_group: @precedence_group_decl_or_none ref +); + +macro_decls( //dir=decl + unique int id: @macro_decl, + string name: string ref +); + +#keyset[id, index] +macro_decl_parameters( //dir=decl + int id: @macro_decl ref, + int index: int ref, + int parameter: @param_decl_or_none ref +); + +#keyset[id, index] +macro_decl_roles( //dir=decl + int id: @macro_decl ref, + int index: int ref, + int role: @macro_role_or_none ref +); + +postfix_operator_decls( //dir=decl + unique int id: @postfix_operator_decl +); + +prefix_operator_decls( //dir=decl + unique int id: @prefix_operator_decl +); + +@type_decl = + @abstract_type_param_decl +| @generic_type_decl +| @module_decl +; + +#keyset[id] +type_decls( //dir=decl + int id: @type_decl ref, + string name: string ref +); + +#keyset[id, index] +type_decl_inherited_types( //dir=decl + int id: @type_decl ref, + int index: int ref, + int inherited_type: @type_or_none ref +); + +@abstract_type_param_decl = + @associated_type_decl +| @generic_type_param_decl +; + +@accessor_or_named_function = + @accessor +| @named_function +; + +deinitializers( //dir=decl + unique int id: @deinitializer +); + +@generic_type_decl = + @nominal_type_decl +| @opaque_type_decl +| @type_alias_decl +; + +initializers( //dir=decl + unique int id: @initializer +); + +module_decls( //dir=decl + unique int id: @module_decl +); + +#keyset[id] +module_decl_is_builtin_module( //dir=decl + int id: @module_decl ref +); + +#keyset[id] +module_decl_is_system_module( //dir=decl + int id: @module_decl ref +); + +module_decl_imported_modules( //dir=decl + int id: @module_decl ref, + int imported_module: @module_decl_or_none ref +); + +module_decl_exported_modules( //dir=decl + int id: @module_decl ref, + int exported_module: @module_decl_or_none ref +); + +subscript_decls( //dir=decl + unique int id: @subscript_decl, + int element_type: @type_or_none ref +); + +#keyset[id, index] +subscript_decl_params( //dir=decl + int id: @subscript_decl ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +@var_decl = + @concrete_var_decl +| @param_decl +; + +#keyset[id] +var_decls( //dir=decl + int id: @var_decl ref, + string name: string ref, + int type_: @type_or_none ref +); + +#keyset[id] +var_decl_attached_property_wrapper_types( //dir=decl + int id: @var_decl ref, + int attached_property_wrapper_type: @type_or_none ref +); + +#keyset[id] +var_decl_parent_patterns( //dir=decl + int id: @var_decl ref, + int parent_pattern: @pattern_or_none ref +); + +#keyset[id] +var_decl_parent_initializers( //dir=decl + int id: @var_decl ref, + int parent_initializer: @expr_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_backing_var_bindings( //dir=decl + int id: @var_decl ref, + int property_wrapper_backing_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_backing_vars( //dir=decl + int id: @var_decl ref, + int property_wrapper_backing_var: @var_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_projection_var_bindings( //dir=decl + int id: @var_decl ref, + int property_wrapper_projection_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_projection_vars( //dir=decl + int id: @var_decl ref, + int property_wrapper_projection_var: @var_decl_or_none ref +); + +accessors( //dir=decl + unique int id: @accessor +); + +#keyset[id] +accessor_is_getter( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_setter( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_will_set( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_did_set( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_read( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_modify( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_unsafe_address( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_unsafe_mutable_address( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_distributed_get( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_read2( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_modify2( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_init( //dir=decl + int id: @accessor ref +); + +associated_type_decls( //dir=decl + unique int id: @associated_type_decl +); + +concrete_var_decls( //dir=decl + unique int id: @concrete_var_decl, + int introducer_int: int ref +); + +generic_type_param_decls( //dir=decl + unique int id: @generic_type_param_decl +); + +named_functions( //dir=decl + unique int id: @named_function +); + +@nominal_type_decl = + @class_decl +| @enum_decl +| @protocol_decl +| @struct_decl +; + +#keyset[id] +nominal_type_decls( //dir=decl + int id: @nominal_type_decl ref, + int type_: @type_or_none ref +); + +opaque_type_decls( //dir=decl + unique int id: @opaque_type_decl, + int naming_declaration: @value_decl_or_none ref +); + +#keyset[id, index] +opaque_type_decl_opaque_generic_params( //dir=decl + int id: @opaque_type_decl ref, + int index: int ref, + int opaque_generic_param: @generic_type_param_type_or_none ref +); + +param_decls( //dir=decl + unique int id: @param_decl +); + +#keyset[id] +param_decl_is_inout( //dir=decl + int id: @param_decl ref +); + +#keyset[id] +param_decl_property_wrapper_local_wrapped_var_bindings( //dir=decl + int id: @param_decl ref, + int property_wrapper_local_wrapped_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +param_decl_property_wrapper_local_wrapped_vars( //dir=decl + int id: @param_decl ref, + int property_wrapper_local_wrapped_var: @var_decl_or_none ref +); + +type_alias_decls( //dir=decl + unique int id: @type_alias_decl, + int aliased_type: @type_or_none ref +); + +class_decls( //dir=decl + unique int id: @class_decl +); + +enum_decls( //dir=decl + unique int id: @enum_decl +); + +protocol_decls( //dir=decl + unique int id: @protocol_decl +); + +struct_decls( //dir=decl + unique int id: @struct_decl +); + +arguments( //dir=expr + unique int id: @argument, + string label: string ref, + int expr: @expr_or_none ref +); + +@expr = + @any_try_expr +| @applied_property_wrapper_expr +| @apply_expr +| @assign_expr +| @bind_optional_expr +| @capture_list_expr +| @closure_expr +| @collection_expr +| @consume_expr +| @copy_expr +| @current_context_isolation_expr +| @decl_ref_expr +| @default_argument_expr +| @discard_assignment_expr +| @dot_syntax_base_ignored_expr +| @dynamic_type_expr +| @enum_is_case_expr +| @error_expr +| @explicit_cast_expr +| @extract_function_isolation_expr +| @force_value_expr +| @identity_expr +| @if_expr +| @implicit_conversion_expr +| @in_out_expr +| @key_path_application_expr +| @key_path_dot_expr +| @key_path_expr +| @lazy_initialization_expr +| @literal_expr +| @lookup_expr +| @make_temporarily_escapable_expr +| @materialize_pack_expr +| @obj_c_selector_expr +| @one_way_expr +| @opaque_value_expr +| @open_existential_expr +| @optional_evaluation_expr +| @other_initializer_ref_expr +| @overloaded_decl_ref_expr +| @pack_element_expr +| @pack_expansion_expr +| @property_wrapper_value_placeholder_expr +| @rebind_self_in_initializer_expr +| @sequence_expr +| @single_value_stmt_expr +| @super_ref_expr +| @tap_expr +| @tuple_element_expr +| @tuple_expr +| @type_expr +| @type_value_expr +| @unresolved_decl_ref_expr +| @unresolved_dot_expr +| @unresolved_member_expr +| @unresolved_pattern_expr +| @unresolved_specialize_expr +| @vararg_expansion_expr +; + +#keyset[id] +expr_types( //dir=expr + int id: @expr ref, + int type_: @type_or_none ref +); + +@any_try_expr = + @force_try_expr +| @optional_try_expr +| @try_expr +; + +#keyset[id] +any_try_exprs( //dir=expr + int id: @any_try_expr ref, + int sub_expr: @expr_or_none ref +); + +applied_property_wrapper_exprs( //dir=expr + unique int id: @applied_property_wrapper_expr, + int kind: int ref, + int value: @expr_or_none ref, + int param: @param_decl_or_none ref +); + +@apply_expr = + @binary_expr +| @call_expr +| @postfix_unary_expr +| @prefix_unary_expr +| @self_apply_expr +; + +#keyset[id] +apply_exprs( //dir=expr + int id: @apply_expr ref, + int function: @expr_or_none ref +); + +#keyset[id, index] +apply_expr_arguments( //dir=expr + int id: @apply_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +assign_exprs( //dir=expr + unique int id: @assign_expr, + int dest: @expr_or_none ref, + int source: @expr_or_none ref +); + +bind_optional_exprs( //dir=expr + unique int id: @bind_optional_expr, + int sub_expr: @expr_or_none ref +); + +capture_list_exprs( //dir=expr + unique int id: @capture_list_expr, + int closure_body: @closure_expr_or_none ref +); + +#keyset[id, index] +capture_list_expr_binding_decls( //dir=expr + int id: @capture_list_expr ref, + int index: int ref, + int binding_decl: @pattern_binding_decl_or_none ref +); + +@closure_expr = + @auto_closure_expr +| @explicit_closure_expr +; + +@collection_expr = + @array_expr +| @dictionary_expr +; + +consume_exprs( //dir=expr + unique int id: @consume_expr, + int sub_expr: @expr_or_none ref +); + +copy_exprs( //dir=expr + unique int id: @copy_expr, + int sub_expr: @expr_or_none ref +); + +current_context_isolation_exprs( //dir=expr + unique int id: @current_context_isolation_expr, + int actor: @expr_or_none ref +); + +decl_ref_exprs( //dir=expr + unique int id: @decl_ref_expr, + int decl: @decl_or_none ref +); + +#keyset[id, index] +decl_ref_expr_replacement_types( //dir=expr + int id: @decl_ref_expr ref, + int index: int ref, + int replacement_type: @type_or_none ref +); + +#keyset[id] +decl_ref_expr_has_direct_to_storage_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_ordinary_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_distributed_thunk_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +default_argument_exprs( //dir=expr + unique int id: @default_argument_expr, + int param_decl: @param_decl_or_none ref, + int param_index: int ref +); + +#keyset[id] +default_argument_expr_caller_side_defaults( //dir=expr + int id: @default_argument_expr ref, + int caller_side_default: @expr_or_none ref +); + +discard_assignment_exprs( //dir=expr + unique int id: @discard_assignment_expr +); + +dot_syntax_base_ignored_exprs( //dir=expr + unique int id: @dot_syntax_base_ignored_expr, + int qualifier: @expr_or_none ref, + int sub_expr: @expr_or_none ref +); + +dynamic_type_exprs( //dir=expr + unique int id: @dynamic_type_expr, + int base: @expr_or_none ref +); + +enum_is_case_exprs( //dir=expr + unique int id: @enum_is_case_expr, + int sub_expr: @expr_or_none ref, + int element: @enum_element_decl_or_none ref +); + +error_exprs( //dir=expr + unique int id: @error_expr +); + +@explicit_cast_expr = + @checked_cast_expr +| @coerce_expr +; + +#keyset[id] +explicit_cast_exprs( //dir=expr + int id: @explicit_cast_expr ref, + int sub_expr: @expr_or_none ref +); + +extract_function_isolation_exprs( //dir=expr + unique int id: @extract_function_isolation_expr, + int function_expr: @expr_or_none ref +); + +force_value_exprs( //dir=expr + unique int id: @force_value_expr, + int sub_expr: @expr_or_none ref +); + +@identity_expr = + @await_expr +| @borrow_expr +| @dot_self_expr +| @paren_expr +| @unresolved_member_chain_result_expr +| @unsafe_expr +; + +#keyset[id] +identity_exprs( //dir=expr + int id: @identity_expr ref, + int sub_expr: @expr_or_none ref +); + +if_exprs( //dir=expr + unique int id: @if_expr, + int condition: @expr_or_none ref, + int then_expr: @expr_or_none ref, + int else_expr: @expr_or_none ref +); + +@implicit_conversion_expr = + @abi_safe_conversion_expr +| @actor_isolation_erasure_expr +| @any_hashable_erasure_expr +| @archetype_to_super_expr +| @array_to_pointer_expr +| @bridge_from_obj_c_expr +| @bridge_to_obj_c_expr +| @class_metatype_to_object_expr +| @collection_upcast_conversion_expr +| @conditional_bridge_from_obj_c_expr +| @covariant_function_conversion_expr +| @covariant_return_conversion_expr +| @derived_to_base_expr +| @destructure_tuple_expr +| @differentiable_function_expr +| @differentiable_function_extract_original_expr +| @erasure_expr +| @existential_metatype_to_object_expr +| @foreign_object_conversion_expr +| @function_conversion_expr +| @in_out_to_pointer_expr +| @inject_into_optional_expr +| @linear_function_expr +| @linear_function_extract_original_expr +| @linear_to_differentiable_function_expr +| @load_expr +| @metatype_conversion_expr +| @pointer_to_pointer_expr +| @protocol_metatype_to_object_expr +| @string_to_pointer_expr +| @underlying_to_opaque_expr +| @unevaluated_instance_expr +| @unreachable_expr +| @unresolved_type_conversion_expr +| @unsafe_cast_expr +; + +#keyset[id] +implicit_conversion_exprs( //dir=expr + int id: @implicit_conversion_expr ref, + int sub_expr: @expr_or_none ref +); + +in_out_exprs( //dir=expr + unique int id: @in_out_expr, + int sub_expr: @expr_or_none ref +); + +key_path_application_exprs( //dir=expr + unique int id: @key_path_application_expr, + int base: @expr_or_none ref, + int key_path: @expr_or_none ref +); + +key_path_dot_exprs( //dir=expr + unique int id: @key_path_dot_expr +); + +key_path_exprs( //dir=expr + unique int id: @key_path_expr +); + +#keyset[id] +key_path_expr_roots( //dir=expr + int id: @key_path_expr ref, + int root: @type_repr_or_none ref +); + +#keyset[id, index] +key_path_expr_components( //dir=expr + int id: @key_path_expr ref, + int index: int ref, + int component: @key_path_component_or_none ref +); + +lazy_initialization_exprs( //dir=expr + unique int id: @lazy_initialization_expr, + int sub_expr: @expr_or_none ref +); + +@literal_expr = + @builtin_literal_expr +| @interpolated_string_literal_expr +| @nil_literal_expr +| @object_literal_expr +| @regex_literal_expr +; + +@lookup_expr = + @dynamic_lookup_expr +| @member_ref_expr +| @subscript_expr +; + +#keyset[id] +lookup_exprs( //dir=expr + int id: @lookup_expr ref, + int base: @expr_or_none ref +); + +#keyset[id] +lookup_expr_members( //dir=expr + int id: @lookup_expr ref, + int member: @decl_or_none ref +); + +make_temporarily_escapable_exprs( //dir=expr + unique int id: @make_temporarily_escapable_expr, + int escaping_closure: @opaque_value_expr_or_none ref, + int nonescaping_closure: @expr_or_none ref, + int sub_expr: @expr_or_none ref +); + +materialize_pack_exprs( //dir=expr + unique int id: @materialize_pack_expr, + int sub_expr: @expr_or_none ref +); + +obj_c_selector_exprs( //dir=expr + unique int id: @obj_c_selector_expr, + int sub_expr: @expr_or_none ref, + int method: @function_or_none ref +); + +one_way_exprs( //dir=expr + unique int id: @one_way_expr, + int sub_expr: @expr_or_none ref +); + +opaque_value_exprs( //dir=expr + unique int id: @opaque_value_expr +); + +open_existential_exprs( //dir=expr + unique int id: @open_existential_expr, + int sub_expr: @expr_or_none ref, + int existential: @expr_or_none ref, + int opaque_expr: @opaque_value_expr_or_none ref +); + +optional_evaluation_exprs( //dir=expr + unique int id: @optional_evaluation_expr, + int sub_expr: @expr_or_none ref +); + +other_initializer_ref_exprs( //dir=expr + unique int id: @other_initializer_ref_expr, + int initializer: @initializer_or_none ref +); + +overloaded_decl_ref_exprs( //dir=expr + unique int id: @overloaded_decl_ref_expr +); + +#keyset[id, index] +overloaded_decl_ref_expr_possible_declarations( //dir=expr + int id: @overloaded_decl_ref_expr ref, + int index: int ref, + int possible_declaration: @value_decl_or_none ref +); + +pack_element_exprs( //dir=expr + unique int id: @pack_element_expr, + int sub_expr: @expr_or_none ref +); + +pack_expansion_exprs( //dir=expr + unique int id: @pack_expansion_expr, + int pattern_expr: @expr_or_none ref +); + +property_wrapper_value_placeholder_exprs( //dir=expr + unique int id: @property_wrapper_value_placeholder_expr, + int placeholder: @opaque_value_expr_or_none ref +); + +#keyset[id] +property_wrapper_value_placeholder_expr_wrapped_values( //dir=expr + int id: @property_wrapper_value_placeholder_expr ref, + int wrapped_value: @expr_or_none ref +); + +rebind_self_in_initializer_exprs( //dir=expr + unique int id: @rebind_self_in_initializer_expr, + int sub_expr: @expr_or_none ref, + int self: @var_decl_or_none ref +); + +sequence_exprs( //dir=expr + unique int id: @sequence_expr +); + +#keyset[id, index] +sequence_expr_elements( //dir=expr + int id: @sequence_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +single_value_stmt_exprs( //dir=expr + unique int id: @single_value_stmt_expr, + int stmt: @stmt_or_none ref +); + +super_ref_exprs( //dir=expr + unique int id: @super_ref_expr, + int self: @var_decl_or_none ref +); + +tap_exprs( //dir=expr + unique int id: @tap_expr, + int body: @brace_stmt_or_none ref, + int var: @var_decl_or_none ref +); + +#keyset[id] +tap_expr_sub_exprs( //dir=expr + int id: @tap_expr ref, + int sub_expr: @expr_or_none ref +); + +tuple_element_exprs( //dir=expr + unique int id: @tuple_element_expr, + int sub_expr: @expr_or_none ref, + int index: int ref +); + +tuple_exprs( //dir=expr + unique int id: @tuple_expr +); + +#keyset[id, index] +tuple_expr_elements( //dir=expr + int id: @tuple_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +type_exprs( //dir=expr + unique int id: @type_expr +); + +#keyset[id] +type_expr_type_reprs( //dir=expr + int id: @type_expr ref, + int type_repr: @type_repr_or_none ref +); + +type_value_exprs( //dir=expr + unique int id: @type_value_expr, + int type_repr: @type_repr_or_none ref +); + +unresolved_decl_ref_exprs( //dir=expr + unique int id: @unresolved_decl_ref_expr +); + +#keyset[id] +unresolved_decl_ref_expr_names( //dir=expr + int id: @unresolved_decl_ref_expr ref, + string name: string ref +); + +unresolved_dot_exprs( //dir=expr + unique int id: @unresolved_dot_expr, + int base: @expr_or_none ref, + string name: string ref +); + +unresolved_member_exprs( //dir=expr + unique int id: @unresolved_member_expr, + string name: string ref +); + +unresolved_pattern_exprs( //dir=expr + unique int id: @unresolved_pattern_expr, + int sub_pattern: @pattern_or_none ref +); + +unresolved_specialize_exprs( //dir=expr + unique int id: @unresolved_specialize_expr, + int sub_expr: @expr_or_none ref +); + +vararg_expansion_exprs( //dir=expr + unique int id: @vararg_expansion_expr, + int sub_expr: @expr_or_none ref +); + +abi_safe_conversion_exprs( //dir=expr + unique int id: @abi_safe_conversion_expr +); + +actor_isolation_erasure_exprs( //dir=expr + unique int id: @actor_isolation_erasure_expr +); + +any_hashable_erasure_exprs( //dir=expr + unique int id: @any_hashable_erasure_expr +); + +archetype_to_super_exprs( //dir=expr + unique int id: @archetype_to_super_expr +); + +array_exprs( //dir=expr + unique int id: @array_expr +); + +#keyset[id, index] +array_expr_elements( //dir=expr + int id: @array_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +array_to_pointer_exprs( //dir=expr + unique int id: @array_to_pointer_expr +); + +auto_closure_exprs( //dir=expr + unique int id: @auto_closure_expr +); + +await_exprs( //dir=expr + unique int id: @await_expr +); + +binary_exprs( //dir=expr + unique int id: @binary_expr +); + +borrow_exprs( //dir=expr + unique int id: @borrow_expr +); + +bridge_from_obj_c_exprs( //dir=expr + unique int id: @bridge_from_obj_c_expr +); + +bridge_to_obj_c_exprs( //dir=expr + unique int id: @bridge_to_obj_c_expr +); + +@builtin_literal_expr = + @boolean_literal_expr +| @magic_identifier_literal_expr +| @number_literal_expr +| @string_literal_expr +; + +call_exprs( //dir=expr + unique int id: @call_expr +); + +@checked_cast_expr = + @conditional_checked_cast_expr +| @forced_checked_cast_expr +| @is_expr +; + +class_metatype_to_object_exprs( //dir=expr + unique int id: @class_metatype_to_object_expr +); + +coerce_exprs( //dir=expr + unique int id: @coerce_expr +); + +collection_upcast_conversion_exprs( //dir=expr + unique int id: @collection_upcast_conversion_expr +); + +conditional_bridge_from_obj_c_exprs( //dir=expr + unique int id: @conditional_bridge_from_obj_c_expr +); + +covariant_function_conversion_exprs( //dir=expr + unique int id: @covariant_function_conversion_expr +); + +covariant_return_conversion_exprs( //dir=expr + unique int id: @covariant_return_conversion_expr +); + +derived_to_base_exprs( //dir=expr + unique int id: @derived_to_base_expr +); + +destructure_tuple_exprs( //dir=expr + unique int id: @destructure_tuple_expr +); + +dictionary_exprs( //dir=expr + unique int id: @dictionary_expr +); + +#keyset[id, index] +dictionary_expr_elements( //dir=expr + int id: @dictionary_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +differentiable_function_exprs( //dir=expr + unique int id: @differentiable_function_expr +); + +differentiable_function_extract_original_exprs( //dir=expr + unique int id: @differentiable_function_extract_original_expr +); + +dot_self_exprs( //dir=expr + unique int id: @dot_self_expr +); + +@dynamic_lookup_expr = + @dynamic_member_ref_expr +| @dynamic_subscript_expr +; + +erasure_exprs( //dir=expr + unique int id: @erasure_expr +); + +existential_metatype_to_object_exprs( //dir=expr + unique int id: @existential_metatype_to_object_expr +); + +explicit_closure_exprs( //dir=expr + unique int id: @explicit_closure_expr +); + +force_try_exprs( //dir=expr + unique int id: @force_try_expr +); + +foreign_object_conversion_exprs( //dir=expr + unique int id: @foreign_object_conversion_expr +); + +function_conversion_exprs( //dir=expr + unique int id: @function_conversion_expr +); + +in_out_to_pointer_exprs( //dir=expr + unique int id: @in_out_to_pointer_expr +); + +inject_into_optional_exprs( //dir=expr + unique int id: @inject_into_optional_expr +); + +interpolated_string_literal_exprs( //dir=expr + unique int id: @interpolated_string_literal_expr +); + +#keyset[id] +interpolated_string_literal_expr_interpolation_exprs( //dir=expr + int id: @interpolated_string_literal_expr ref, + int interpolation_expr: @opaque_value_expr_or_none ref +); + +#keyset[id] +interpolated_string_literal_expr_appending_exprs( //dir=expr + int id: @interpolated_string_literal_expr ref, + int appending_expr: @tap_expr_or_none ref +); + +linear_function_exprs( //dir=expr + unique int id: @linear_function_expr +); + +linear_function_extract_original_exprs( //dir=expr + unique int id: @linear_function_extract_original_expr +); + +linear_to_differentiable_function_exprs( //dir=expr + unique int id: @linear_to_differentiable_function_expr +); + +load_exprs( //dir=expr + unique int id: @load_expr +); + +member_ref_exprs( //dir=expr + unique int id: @member_ref_expr +); + +#keyset[id] +member_ref_expr_has_direct_to_storage_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_ordinary_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_distributed_thunk_semantics( //dir=expr + int id: @member_ref_expr ref +); + +metatype_conversion_exprs( //dir=expr + unique int id: @metatype_conversion_expr +); + +nil_literal_exprs( //dir=expr + unique int id: @nil_literal_expr +); + +object_literal_exprs( //dir=expr + unique int id: @object_literal_expr, + int kind: int ref +); + +#keyset[id, index] +object_literal_expr_arguments( //dir=expr + int id: @object_literal_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +optional_try_exprs( //dir=expr + unique int id: @optional_try_expr +); + +paren_exprs( //dir=expr + unique int id: @paren_expr +); + +pointer_to_pointer_exprs( //dir=expr + unique int id: @pointer_to_pointer_expr +); + +postfix_unary_exprs( //dir=expr + unique int id: @postfix_unary_expr +); + +prefix_unary_exprs( //dir=expr + unique int id: @prefix_unary_expr +); + +protocol_metatype_to_object_exprs( //dir=expr + unique int id: @protocol_metatype_to_object_expr +); + +regex_literal_exprs( //dir=expr + unique int id: @regex_literal_expr, + string pattern: string ref, + int version: int ref +); + +@self_apply_expr = + @dot_syntax_call_expr +| @initializer_ref_call_expr +; + +#keyset[id] +self_apply_exprs( //dir=expr + int id: @self_apply_expr ref, + int base: @expr_or_none ref +); + +string_to_pointer_exprs( //dir=expr + unique int id: @string_to_pointer_expr +); + +subscript_exprs( //dir=expr + unique int id: @subscript_expr +); + +#keyset[id, index] +subscript_expr_arguments( //dir=expr + int id: @subscript_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +#keyset[id] +subscript_expr_has_direct_to_storage_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_ordinary_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_distributed_thunk_semantics( //dir=expr + int id: @subscript_expr ref +); + +try_exprs( //dir=expr + unique int id: @try_expr +); + +underlying_to_opaque_exprs( //dir=expr + unique int id: @underlying_to_opaque_expr +); + +unevaluated_instance_exprs( //dir=expr + unique int id: @unevaluated_instance_expr +); + +unreachable_exprs( //dir=expr + unique int id: @unreachable_expr +); + +unresolved_member_chain_result_exprs( //dir=expr + unique int id: @unresolved_member_chain_result_expr +); + +unresolved_type_conversion_exprs( //dir=expr + unique int id: @unresolved_type_conversion_expr +); + +unsafe_cast_exprs( //dir=expr + unique int id: @unsafe_cast_expr +); + +unsafe_exprs( //dir=expr + unique int id: @unsafe_expr +); + +boolean_literal_exprs( //dir=expr + unique int id: @boolean_literal_expr, + boolean value: boolean ref +); + +conditional_checked_cast_exprs( //dir=expr + unique int id: @conditional_checked_cast_expr +); + +dot_syntax_call_exprs( //dir=expr + unique int id: @dot_syntax_call_expr +); + +dynamic_member_ref_exprs( //dir=expr + unique int id: @dynamic_member_ref_expr +); + +dynamic_subscript_exprs( //dir=expr + unique int id: @dynamic_subscript_expr +); + +forced_checked_cast_exprs( //dir=expr + unique int id: @forced_checked_cast_expr +); + +initializer_ref_call_exprs( //dir=expr + unique int id: @initializer_ref_call_expr +); + +is_exprs( //dir=expr + unique int id: @is_expr +); + +magic_identifier_literal_exprs( //dir=expr + unique int id: @magic_identifier_literal_expr, + string kind: string ref +); + +@number_literal_expr = + @float_literal_expr +| @integer_literal_expr +; + +string_literal_exprs( //dir=expr + unique int id: @string_literal_expr, + string value: string ref +); + +float_literal_exprs( //dir=expr + unique int id: @float_literal_expr, + string string_value: string ref +); + +integer_literal_exprs( //dir=expr + unique int id: @integer_literal_expr, + string string_value: string ref +); + +@pattern = + @any_pattern +| @binding_pattern +| @bool_pattern +| @enum_element_pattern +| @expr_pattern +| @is_pattern +| @named_pattern +| @optional_some_pattern +| @paren_pattern +| @tuple_pattern +| @typed_pattern +; + +#keyset[id] +pattern_types( //dir=pattern + int id: @pattern ref, + int type_: @type_or_none ref +); + +any_patterns( //dir=pattern + unique int id: @any_pattern +); + +binding_patterns( //dir=pattern + unique int id: @binding_pattern, + int sub_pattern: @pattern_or_none ref +); + +bool_patterns( //dir=pattern + unique int id: @bool_pattern, + boolean value: boolean ref +); + +enum_element_patterns( //dir=pattern + unique int id: @enum_element_pattern, + int element: @enum_element_decl_or_none ref +); + +#keyset[id] +enum_element_pattern_sub_patterns( //dir=pattern + int id: @enum_element_pattern ref, + int sub_pattern: @pattern_or_none ref +); + +expr_patterns( //dir=pattern + unique int id: @expr_pattern, + int sub_expr: @expr_or_none ref +); + +is_patterns( //dir=pattern + unique int id: @is_pattern +); + +#keyset[id] +is_pattern_cast_type_reprs( //dir=pattern + int id: @is_pattern ref, + int cast_type_repr: @type_repr_or_none ref +); + +#keyset[id] +is_pattern_sub_patterns( //dir=pattern + int id: @is_pattern ref, + int sub_pattern: @pattern_or_none ref +); + +named_patterns( //dir=pattern + unique int id: @named_pattern, + int var_decl: @var_decl_or_none ref +); + +optional_some_patterns( //dir=pattern + unique int id: @optional_some_pattern, + int sub_pattern: @pattern_or_none ref +); + +paren_patterns( //dir=pattern + unique int id: @paren_pattern, + int sub_pattern: @pattern_or_none ref +); + +tuple_patterns( //dir=pattern + unique int id: @tuple_pattern +); + +#keyset[id, index] +tuple_pattern_elements( //dir=pattern + int id: @tuple_pattern ref, + int index: int ref, + int element: @pattern_or_none ref +); + +typed_patterns( //dir=pattern + unique int id: @typed_pattern, + int sub_pattern: @pattern_or_none ref +); + +#keyset[id] +typed_pattern_type_reprs( //dir=pattern + int id: @typed_pattern ref, + int type_repr: @type_repr_or_none ref +); + +case_label_items( //dir=stmt + unique int id: @case_label_item, + int pattern: @pattern_or_none ref +); + +#keyset[id] +case_label_item_guards( //dir=stmt + int id: @case_label_item ref, + int guard: @expr_or_none ref +); + +condition_elements( //dir=stmt + unique int id: @condition_element +); + +#keyset[id] +condition_element_booleans( //dir=stmt + int id: @condition_element ref, + int boolean_: @expr_or_none ref +); + +#keyset[id] +condition_element_patterns( //dir=stmt + int id: @condition_element ref, + int pattern: @pattern_or_none ref +); + +#keyset[id] +condition_element_initializers( //dir=stmt + int id: @condition_element ref, + int initializer: @expr_or_none ref +); + +#keyset[id] +condition_element_availabilities( //dir=stmt + int id: @condition_element ref, + int availability: @availability_info_or_none ref +); + +@stmt = + @brace_stmt +| @break_stmt +| @case_stmt +| @continue_stmt +| @defer_stmt +| @discard_stmt +| @fail_stmt +| @fallthrough_stmt +| @labeled_stmt +| @pound_assert_stmt +| @return_stmt +| @then_stmt +| @throw_stmt +| @yield_stmt +; + +stmt_conditions( //dir=stmt + unique int id: @stmt_condition +); + +#keyset[id, index] +stmt_condition_elements( //dir=stmt + int id: @stmt_condition ref, + int index: int ref, + int element: @condition_element_or_none ref +); + +brace_stmts( //dir=stmt + unique int id: @brace_stmt +); + +#keyset[id, index] +brace_stmt_elements( //dir=stmt + int id: @brace_stmt ref, + int index: int ref, + int element: @ast_node_or_none ref +); + +break_stmts( //dir=stmt + unique int id: @break_stmt +); + +#keyset[id] +break_stmt_target_names( //dir=stmt + int id: @break_stmt ref, + string target_name: string ref +); + +#keyset[id] +break_stmt_targets( //dir=stmt + int id: @break_stmt ref, + int target: @stmt_or_none ref +); + +case_stmts( //dir=stmt + unique int id: @case_stmt, + int body: @stmt_or_none ref +); + +#keyset[id, index] +case_stmt_labels( //dir=stmt + int id: @case_stmt ref, + int index: int ref, + int label: @case_label_item_or_none ref +); + +#keyset[id, index] +case_stmt_variables( //dir=stmt + int id: @case_stmt ref, + int index: int ref, + int variable: @var_decl_or_none ref +); + +continue_stmts( //dir=stmt + unique int id: @continue_stmt +); + +#keyset[id] +continue_stmt_target_names( //dir=stmt + int id: @continue_stmt ref, + string target_name: string ref +); + +#keyset[id] +continue_stmt_targets( //dir=stmt + int id: @continue_stmt ref, + int target: @stmt_or_none ref +); + +defer_stmts( //dir=stmt + unique int id: @defer_stmt, + int body: @brace_stmt_or_none ref +); + +discard_stmts( //dir=stmt + unique int id: @discard_stmt, + int sub_expr: @expr_or_none ref +); + +fail_stmts( //dir=stmt + unique int id: @fail_stmt +); + +fallthrough_stmts( //dir=stmt + unique int id: @fallthrough_stmt, + int fallthrough_source: @case_stmt_or_none ref, + int fallthrough_dest: @case_stmt_or_none ref +); + +@labeled_stmt = + @do_catch_stmt +| @do_stmt +| @for_each_stmt +| @labeled_conditional_stmt +| @repeat_while_stmt +| @switch_stmt +; + +#keyset[id] +labeled_stmt_labels( //dir=stmt + int id: @labeled_stmt ref, + string label: string ref +); + +pound_assert_stmts( //dir=stmt + unique int id: @pound_assert_stmt, + int condition: @expr_or_none ref, + string message: string ref +); + +return_stmts( //dir=stmt + unique int id: @return_stmt +); + +#keyset[id] +return_stmt_results( //dir=stmt + int id: @return_stmt ref, + int result: @expr_or_none ref +); + +then_stmts( //dir=stmt + unique int id: @then_stmt, + int result: @expr_or_none ref +); + +throw_stmts( //dir=stmt + unique int id: @throw_stmt, + int sub_expr: @expr_or_none ref +); + +yield_stmts( //dir=stmt + unique int id: @yield_stmt +); + +#keyset[id, index] +yield_stmt_results( //dir=stmt + int id: @yield_stmt ref, + int index: int ref, + int result: @expr_or_none ref +); + +do_catch_stmts( //dir=stmt + unique int id: @do_catch_stmt, + int body: @stmt_or_none ref +); + +#keyset[id, index] +do_catch_stmt_catches( //dir=stmt + int id: @do_catch_stmt ref, + int index: int ref, + int catch: @case_stmt_or_none ref +); + +do_stmts( //dir=stmt + unique int id: @do_stmt, + int body: @brace_stmt_or_none ref +); + +for_each_stmts( //dir=stmt + unique int id: @for_each_stmt, + int pattern: @pattern_or_none ref, + int body: @brace_stmt_or_none ref +); + +#keyset[id, index] +for_each_stmt_variables( //dir=stmt + int id: @for_each_stmt ref, + int index: int ref, + int variable: @var_decl_or_none ref +); + +#keyset[id] +for_each_stmt_wheres( //dir=stmt + int id: @for_each_stmt ref, + int where: @expr_or_none ref +); + +#keyset[id] +for_each_stmt_iterator_vars( //dir=stmt + int id: @for_each_stmt ref, + int iteratorVar: @pattern_binding_decl_or_none ref +); + +#keyset[id] +for_each_stmt_next_calls( //dir=stmt + int id: @for_each_stmt ref, + int nextCall: @expr_or_none ref +); + +@labeled_conditional_stmt = + @guard_stmt +| @if_stmt +| @while_stmt +; + +#keyset[id] +labeled_conditional_stmts( //dir=stmt + int id: @labeled_conditional_stmt ref, + int condition: @stmt_condition_or_none ref +); + +repeat_while_stmts( //dir=stmt + unique int id: @repeat_while_stmt, + int condition: @expr_or_none ref, + int body: @stmt_or_none ref +); + +switch_stmts( //dir=stmt + unique int id: @switch_stmt, + int expr: @expr_or_none ref +); + +#keyset[id, index] +switch_stmt_cases( //dir=stmt + int id: @switch_stmt ref, + int index: int ref, + int case_: @case_stmt_or_none ref +); + +guard_stmts( //dir=stmt + unique int id: @guard_stmt, + int body: @brace_stmt_or_none ref +); + +if_stmts( //dir=stmt + unique int id: @if_stmt, + int then: @stmt_or_none ref +); + +#keyset[id] +if_stmt_elses( //dir=stmt + int id: @if_stmt ref, + int else: @stmt_or_none ref +); + +while_stmts( //dir=stmt + unique int id: @while_stmt, + int body: @stmt_or_none ref +); + +@type = + @any_function_type +| @any_generic_type +| @any_metatype_type +| @builtin_type +| @dependent_member_type +| @dynamic_self_type +| @error_type +| @existential_type +| @in_out_type +| @integer_type +| @l_value_type +| @module_type +| @pack_element_type +| @pack_expansion_type +| @pack_type +| @parameterized_protocol_type +| @protocol_composition_type +| @reference_storage_type +| @substitutable_type +| @sugar_type +| @tuple_type +| @unresolved_type +; + +#keyset[id] +types( //dir=type + int id: @type ref, + string name: string ref, + int canonical_type: @type_or_none ref +); + +type_reprs( //dir=type + unique int id: @type_repr, + int type_: @type_or_none ref +); + +@any_function_type = + @function_type +| @generic_function_type +; + +#keyset[id] +any_function_types( //dir=type + int id: @any_function_type ref, + int result: @type_or_none ref +); + +#keyset[id, index] +any_function_type_param_types( //dir=type + int id: @any_function_type ref, + int index: int ref, + int param_type: @type_or_none ref +); + +#keyset[id] +any_function_type_is_throwing( //dir=type + int id: @any_function_type ref +); + +#keyset[id] +any_function_type_is_async( //dir=type + int id: @any_function_type ref +); + +@any_generic_type = + @nominal_or_bound_generic_nominal_type +| @unbound_generic_type +; + +#keyset[id] +any_generic_types( //dir=type + int id: @any_generic_type ref, + int declaration: @generic_type_decl_or_none ref +); + +#keyset[id] +any_generic_type_parents( //dir=type + int id: @any_generic_type ref, + int parent: @type_or_none ref +); + +@any_metatype_type = + @existential_metatype_type +| @metatype_type +; + +@builtin_type = + @any_builtin_integer_type +| @builtin_bridge_object_type +| @builtin_default_actor_storage_type +| @builtin_executor_type +| @builtin_float_type +| @builtin_generic_type +| @builtin_job_type +| @builtin_native_object_type +| @builtin_raw_pointer_type +| @builtin_raw_unsafe_continuation_type +| @builtin_unsafe_value_buffer_type +| @builtin_vector_type +; + +dependent_member_types( //dir=type + unique int id: @dependent_member_type, + int base_type: @type_or_none ref, + int associated_type_decl: @associated_type_decl_or_none ref +); + +dynamic_self_types( //dir=type + unique int id: @dynamic_self_type, + int static_self_type: @type_or_none ref +); + +error_types( //dir=type + unique int id: @error_type +); + +existential_types( //dir=type + unique int id: @existential_type, + int constraint: @type_or_none ref +); + +in_out_types( //dir=type + unique int id: @in_out_type, + int object_type: @type_or_none ref +); + +integer_types( //dir=type + unique int id: @integer_type, + string value: string ref +); + +l_value_types( //dir=type + unique int id: @l_value_type, + int object_type: @type_or_none ref +); + +module_types( //dir=type + unique int id: @module_type, + int module: @module_decl_or_none ref +); + +pack_element_types( //dir=type + unique int id: @pack_element_type, + int pack_type: @type_or_none ref +); + +pack_expansion_types( //dir=type + unique int id: @pack_expansion_type, + int pattern_type: @type_or_none ref, + int count_type: @type_or_none ref +); + +pack_types( //dir=type + unique int id: @pack_type +); + +#keyset[id, index] +pack_type_elements( //dir=type + int id: @pack_type ref, + int index: int ref, + int element: @type_or_none ref +); + +parameterized_protocol_types( //dir=type + unique int id: @parameterized_protocol_type, + int base: @protocol_type_or_none ref +); + +#keyset[id, index] +parameterized_protocol_type_args( //dir=type + int id: @parameterized_protocol_type ref, + int index: int ref, + int arg: @type_or_none ref +); + +protocol_composition_types( //dir=type + unique int id: @protocol_composition_type +); + +#keyset[id, index] +protocol_composition_type_members( //dir=type + int id: @protocol_composition_type ref, + int index: int ref, + int member: @type_or_none ref +); + +@reference_storage_type = + @unmanaged_storage_type +| @unowned_storage_type +| @weak_storage_type +; + +#keyset[id] +reference_storage_types( //dir=type + int id: @reference_storage_type ref, + int referent_type: @type_or_none ref +); + +@substitutable_type = + @archetype_type +| @generic_type_param_type +; + +@sugar_type = + @paren_type +| @syntax_sugar_type +| @type_alias_type +; + +tuple_types( //dir=type + unique int id: @tuple_type +); + +#keyset[id, index] +tuple_type_types( //dir=type + int id: @tuple_type ref, + int index: int ref, + int type_: @type_or_none ref +); + +#keyset[id, index] +tuple_type_names( //dir=type + int id: @tuple_type ref, + int index: int ref, + string name: string ref +); + +unresolved_types( //dir=type + unique int id: @unresolved_type +); + +@any_builtin_integer_type = + @builtin_integer_literal_type +| @builtin_integer_type +; + +@archetype_type = + @local_archetype_type +| @opaque_type_archetype_type +| @pack_archetype_type +| @primary_archetype_type +; + +#keyset[id] +archetype_types( //dir=type + int id: @archetype_type ref, + int interface_type: @type_or_none ref +); + +#keyset[id] +archetype_type_superclasses( //dir=type + int id: @archetype_type ref, + int superclass: @type_or_none ref +); + +#keyset[id, index] +archetype_type_protocols( //dir=type + int id: @archetype_type ref, + int index: int ref, + int protocol: @protocol_decl_or_none ref +); + +builtin_bridge_object_types( //dir=type + unique int id: @builtin_bridge_object_type +); + +builtin_default_actor_storage_types( //dir=type + unique int id: @builtin_default_actor_storage_type +); + +builtin_executor_types( //dir=type + unique int id: @builtin_executor_type +); + +builtin_float_types( //dir=type + unique int id: @builtin_float_type +); + +@builtin_generic_type = + @builtin_fixed_array_type +; + +builtin_job_types( //dir=type + unique int id: @builtin_job_type +); + +builtin_native_object_types( //dir=type + unique int id: @builtin_native_object_type +); + +builtin_raw_pointer_types( //dir=type + unique int id: @builtin_raw_pointer_type +); + +builtin_raw_unsafe_continuation_types( //dir=type + unique int id: @builtin_raw_unsafe_continuation_type +); + +builtin_unsafe_value_buffer_types( //dir=type + unique int id: @builtin_unsafe_value_buffer_type +); + +builtin_vector_types( //dir=type + unique int id: @builtin_vector_type +); + +existential_metatype_types( //dir=type + unique int id: @existential_metatype_type +); + +function_types( //dir=type + unique int id: @function_type +); + +generic_function_types( //dir=type + unique int id: @generic_function_type +); + +#keyset[id, index] +generic_function_type_generic_params( //dir=type + int id: @generic_function_type ref, + int index: int ref, + int generic_param: @generic_type_param_type_or_none ref +); + +generic_type_param_types( //dir=type + unique int id: @generic_type_param_type +); + +metatype_types( //dir=type + unique int id: @metatype_type +); + +@nominal_or_bound_generic_nominal_type = + @bound_generic_type +| @nominal_type +; + +paren_types( //dir=type + unique int id: @paren_type, + int type_: @type_or_none ref +); + +@syntax_sugar_type = + @dictionary_type +| @inline_array_type +| @unary_syntax_sugar_type +; + +type_alias_types( //dir=type + unique int id: @type_alias_type, + int decl: @type_alias_decl_or_none ref +); + +unbound_generic_types( //dir=type + unique int id: @unbound_generic_type +); + +unmanaged_storage_types( //dir=type + unique int id: @unmanaged_storage_type +); + +unowned_storage_types( //dir=type + unique int id: @unowned_storage_type +); + +weak_storage_types( //dir=type + unique int id: @weak_storage_type +); + +@bound_generic_type = + @bound_generic_class_type +| @bound_generic_enum_type +| @bound_generic_struct_type +; + +#keyset[id, index] +bound_generic_type_arg_types( //dir=type + int id: @bound_generic_type ref, + int index: int ref, + int arg_type: @type_or_none ref +); + +builtin_fixed_array_types( //dir=type + unique int id: @builtin_fixed_array_type +); + +builtin_integer_literal_types( //dir=type + unique int id: @builtin_integer_literal_type +); + +builtin_integer_types( //dir=type + unique int id: @builtin_integer_type +); + +#keyset[id] +builtin_integer_type_widths( //dir=type + int id: @builtin_integer_type ref, + int width: int ref +); + +dictionary_types( //dir=type + unique int id: @dictionary_type, + int key_type: @type_or_none ref, + int value_type: @type_or_none ref +); + +inline_array_types( //dir=type + unique int id: @inline_array_type, + int count_type: @type_or_none ref, + int element_type: @type_or_none ref +); + +@local_archetype_type = + @element_archetype_type +| @existential_archetype_type +; + +@nominal_type = + @class_type +| @enum_type +| @protocol_type +| @struct_type +; + +opaque_type_archetype_types( //dir=type + unique int id: @opaque_type_archetype_type, + int declaration: @opaque_type_decl_or_none ref +); + +pack_archetype_types( //dir=type + unique int id: @pack_archetype_type +); + +primary_archetype_types( //dir=type + unique int id: @primary_archetype_type +); + +@unary_syntax_sugar_type = + @array_slice_type +| @optional_type +| @variadic_sequence_type +; + +#keyset[id] +unary_syntax_sugar_types( //dir=type + int id: @unary_syntax_sugar_type ref, + int base_type: @type_or_none ref +); + +array_slice_types( //dir=type + unique int id: @array_slice_type +); + +bound_generic_class_types( //dir=type + unique int id: @bound_generic_class_type +); + +bound_generic_enum_types( //dir=type + unique int id: @bound_generic_enum_type +); + +bound_generic_struct_types( //dir=type + unique int id: @bound_generic_struct_type +); + +class_types( //dir=type + unique int id: @class_type +); + +element_archetype_types( //dir=type + unique int id: @element_archetype_type +); + +enum_types( //dir=type + unique int id: @enum_type +); + +existential_archetype_types( //dir=type + unique int id: @existential_archetype_type +); + +optional_types( //dir=type + unique int id: @optional_type +); + +protocol_types( //dir=type + unique int id: @protocol_type +); + +struct_types( //dir=type + unique int id: @struct_type +); + +variadic_sequence_types( //dir=type + unique int id: @variadic_sequence_type +); + +@accessor_or_none = + @accessor +| @unspecified_element +; + +@argument_or_none = + @argument +| @unspecified_element +; + +@associated_type_decl_or_none = + @associated_type_decl +| @unspecified_element +; + +@ast_node_or_none = + @ast_node +| @unspecified_element +; + +@availability_info_or_none = + @availability_info +| @unspecified_element +; + +@availability_spec_or_none = + @availability_spec +| @unspecified_element +; + +@brace_stmt_or_none = + @brace_stmt +| @unspecified_element +; + +@captured_decl_or_none = + @captured_decl +| @unspecified_element +; + +@case_label_item_or_none = + @case_label_item +| @unspecified_element +; + +@case_stmt_or_none = + @case_stmt +| @unspecified_element +; + +@closure_expr_or_none = + @closure_expr +| @unspecified_element +; + +@condition_element_or_none = + @condition_element +| @unspecified_element +; + +@decl_or_none = + @decl +| @unspecified_element +; + +@enum_element_decl_or_none = + @enum_element_decl +| @unspecified_element +; + +@expr_or_none = + @expr +| @unspecified_element +; + +@file_or_none = + @file +| @unspecified_element +; + +@function_or_none = + @function +| @unspecified_element +; + +@generic_type_decl_or_none = + @generic_type_decl +| @unspecified_element +; + +@generic_type_param_decl_or_none = + @generic_type_param_decl +| @unspecified_element +; + +@generic_type_param_type_or_none = + @generic_type_param_type +| @unspecified_element +; + +@initializer_or_none = + @initializer +| @unspecified_element +; + +@key_path_component_or_none = + @key_path_component +| @unspecified_element +; + +@location_or_none = + @location +| @unspecified_element +; + +@macro_role_or_none = + @macro_role +| @unspecified_element +; + +@module_decl_or_none = + @module_decl +| @unspecified_element +; + +@nominal_type_decl_or_none = + @nominal_type_decl +| @unspecified_element +; + +@opaque_type_decl_or_none = + @opaque_type_decl +| @unspecified_element +; + +@opaque_value_expr_or_none = + @opaque_value_expr +| @unspecified_element +; + +@param_decl_or_none = + @param_decl +| @unspecified_element +; + +@pattern_or_none = + @pattern +| @unspecified_element +; + +@pattern_binding_decl_or_none = + @pattern_binding_decl +| @unspecified_element +; + +@precedence_group_decl_or_none = + @precedence_group_decl +| @unspecified_element +; + +@protocol_decl_or_none = + @protocol_decl +| @unspecified_element +; + +@protocol_type_or_none = + @protocol_type +| @unspecified_element +; + +@stmt_or_none = + @stmt +| @unspecified_element +; + +@stmt_condition_or_none = + @stmt_condition +| @unspecified_element +; + +@string_literal_expr_or_none = + @string_literal_expr +| @unspecified_element +; + +@tap_expr_or_none = + @tap_expr +| @unspecified_element +; + +@type_or_none = + @type +| @unspecified_element +; + +@type_alias_decl_or_none = + @type_alias_decl +| @unspecified_element +; + +@type_repr_or_none = + @type_repr +| @unspecified_element +; + +@value_decl_or_none = + @unspecified_element +| @value_decl +; + +@var_decl_or_none = + @unspecified_element +| @var_decl +; diff --git a/swift/downgrades/ee3053b673c901a325b361b18c50b18342752bf8/swift.dbscheme b/swift/downgrades/ee3053b673c901a325b361b18c50b18342752bf8/swift.dbscheme new file mode 100644 index 00000000000..33e5e5e03bd --- /dev/null +++ b/swift/downgrades/ee3053b673c901a325b361b18c50b18342752bf8/swift.dbscheme @@ -0,0 +1,2885 @@ +// generated by codegen/codegen.py, do not edit + +// from prefix.dbscheme +/** + * The source location of the snapshot. + */ +sourceLocationPrefix( + string prefix: string ref +); + + +// from schema.py + +@element = + @file +| @generic_context +| @locatable +| @location +| @type +; + +#keyset[id] +element_is_unknown( + int id: @element ref +); + +@file = + @db_file +; + +#keyset[id] +files( + int id: @file ref, + string name: string ref +); + +#keyset[id] +file_is_successfully_extracted( + int id: @file ref +); + +@locatable = + @argument +| @ast_node +| @comment +| @diagnostics +| @error_element +; + +#keyset[id] +locatable_locations( + int id: @locatable ref, + int location: @location_or_none ref +); + +@location = + @db_location +; + +#keyset[id] +locations( + int id: @location ref, + int file: @file_or_none ref, + int start_line: int ref, + int start_column: int ref, + int end_line: int ref, + int end_column: int ref +); + +@ast_node = + @availability_info +| @availability_spec +| @callable +| @case_label_item +| @condition_element +| @decl +| @expr +| @key_path_component +| @macro_role +| @pattern +| @stmt +| @stmt_condition +| @type_repr +; + +comments( + unique int id: @comment, + string text: string ref +); + +db_files( + unique int id: @db_file +); + +db_locations( + unique int id: @db_location +); + +diagnostics( + unique int id: @diagnostics, + string text: string ref, + int kind: int ref +); + +@error_element = + @error_expr +| @error_type +| @overloaded_decl_ref_expr +| @unresolved_decl_ref_expr +| @unresolved_dot_expr +| @unresolved_member_chain_result_expr +| @unresolved_member_expr +| @unresolved_pattern_expr +| @unresolved_specialize_expr +| @unresolved_type +| @unresolved_type_conversion_expr +| @unspecified_element +; + +availability_infos( + unique int id: @availability_info +); + +#keyset[id] +availability_info_is_unavailable( + int id: @availability_info ref +); + +#keyset[id, index] +availability_info_specs( + int id: @availability_info ref, + int index: int ref, + int spec: @availability_spec_or_none ref +); + +availability_specs( + unique int id: @availability_spec +); + +#keyset[id] +availability_spec_platforms( + int id: @availability_spec ref, + string platform: string ref +); + +#keyset[id] +availability_spec_versions( + int id: @availability_spec ref, + string version: string ref +); + +#keyset[id] +availability_spec_is_wildcard( + int id: @availability_spec ref +); + +@callable = + @closure_expr +| @function +; + +#keyset[id] +callable_names( + int id: @callable ref, + string name: string ref +); + +#keyset[id] +callable_self_params( + int id: @callable ref, + int self_param: @param_decl_or_none ref +); + +#keyset[id, index] +callable_params( + int id: @callable ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +#keyset[id] +callable_bodies( + int id: @callable ref, + int body: @brace_stmt_or_none ref +); + +#keyset[id, index] +callable_captures( + int id: @callable ref, + int index: int ref, + int capture: @captured_decl_or_none ref +); + +key_path_components( + unique int id: @key_path_component, + int kind: int ref, + int component_type: @type_or_none ref +); + +#keyset[id, index] +key_path_component_subscript_arguments( + int id: @key_path_component ref, + int index: int ref, + int subscript_argument: @argument_or_none ref +); + +#keyset[id] +key_path_component_tuple_indices( + int id: @key_path_component ref, + int tuple_index: int ref +); + +#keyset[id] +key_path_component_decl_refs( + int id: @key_path_component ref, + int decl_ref: @value_decl_or_none ref +); + +macro_roles( + unique int id: @macro_role, + int kind: int ref, + int macro_syntax: int ref +); + +#keyset[id, index] +macro_role_conformances( + int id: @macro_role ref, + int index: int ref, + int conformance: @expr_or_none ref +); + +#keyset[id, index] +macro_role_names( + int id: @macro_role ref, + int index: int ref, + string name: string ref +); + +unspecified_elements( + unique int id: @unspecified_element, + string property: string ref, + string error: string ref +); + +#keyset[id] +unspecified_element_parents( + int id: @unspecified_element ref, + int parent: @element ref +); + +#keyset[id] +unspecified_element_indices( + int id: @unspecified_element ref, + int index: int ref +); + +#keyset[id, index] +unspecified_element_children( + int id: @unspecified_element ref, + int index: int ref, + int child: @ast_node_or_none ref +); + +@decl = + @captured_decl +| @enum_case_decl +| @extension_decl +| @if_config_decl +| @import_decl +| @missing_member_decl +| @operator_decl +| @pattern_binding_decl +| @pound_diagnostic_decl +| @precedence_group_decl +| @top_level_code_decl +| @using_decl +| @value_decl +; + +#keyset[id] +decls( //dir=decl + int id: @decl ref, + int module: @module_decl_or_none ref +); + +#keyset[id, index] +decl_members( //dir=decl + int id: @decl ref, + int index: int ref, + int member: @decl_or_none ref +); + +@generic_context = + @extension_decl +| @function +| @generic_type_decl +| @macro_decl +| @subscript_decl +; + +#keyset[id, index] +generic_context_generic_type_params( //dir=decl + int id: @generic_context ref, + int index: int ref, + int generic_type_param: @generic_type_param_decl_or_none ref +); + +captured_decls( //dir=decl + unique int id: @captured_decl, + int decl: @value_decl_or_none ref +); + +#keyset[id] +captured_decl_is_direct( //dir=decl + int id: @captured_decl ref +); + +#keyset[id] +captured_decl_is_escaping( //dir=decl + int id: @captured_decl ref +); + +enum_case_decls( //dir=decl + unique int id: @enum_case_decl +); + +#keyset[id, index] +enum_case_decl_elements( //dir=decl + int id: @enum_case_decl ref, + int index: int ref, + int element: @enum_element_decl_or_none ref +); + +extension_decls( //dir=decl + unique int id: @extension_decl, + int extended_type_decl: @nominal_type_decl_or_none ref +); + +#keyset[id, index] +extension_decl_protocols( //dir=decl + int id: @extension_decl ref, + int index: int ref, + int protocol: @protocol_decl_or_none ref +); + +if_config_decls( //dir=decl + unique int id: @if_config_decl +); + +#keyset[id, index] +if_config_decl_active_elements( //dir=decl + int id: @if_config_decl ref, + int index: int ref, + int active_element: @ast_node_or_none ref +); + +import_decls( //dir=decl + unique int id: @import_decl +); + +#keyset[id] +import_decl_is_exported( //dir=decl + int id: @import_decl ref +); + +#keyset[id] +import_decl_imported_modules( //dir=decl + int id: @import_decl ref, + int imported_module: @module_decl_or_none ref +); + +#keyset[id, index] +import_decl_declarations( //dir=decl + int id: @import_decl ref, + int index: int ref, + int declaration: @value_decl_or_none ref +); + +missing_member_decls( //dir=decl + unique int id: @missing_member_decl, + string name: string ref +); + +@operator_decl = + @infix_operator_decl +| @postfix_operator_decl +| @prefix_operator_decl +; + +#keyset[id] +operator_decls( //dir=decl + int id: @operator_decl ref, + string name: string ref +); + +pattern_binding_decls( //dir=decl + unique int id: @pattern_binding_decl +); + +#keyset[id, index] +pattern_binding_decl_inits( //dir=decl + int id: @pattern_binding_decl ref, + int index: int ref, + int init: @expr_or_none ref +); + +#keyset[id, index] +pattern_binding_decl_patterns( //dir=decl + int id: @pattern_binding_decl ref, + int index: int ref, + int pattern: @pattern_or_none ref +); + +pound_diagnostic_decls( //dir=decl + unique int id: @pound_diagnostic_decl, + int kind: int ref, + int message: @string_literal_expr_or_none ref +); + +precedence_group_decls( //dir=decl + unique int id: @precedence_group_decl +); + +top_level_code_decls( //dir=decl + unique int id: @top_level_code_decl, + int body: @brace_stmt_or_none ref +); + +using_decls( //dir=decl + unique int id: @using_decl +); + +#keyset[id] +using_decl_is_main_actor( //dir=decl + int id: @using_decl ref +); + +#keyset[id] +using_decl_is_nonisolated( //dir=decl + int id: @using_decl ref +); + +@value_decl = + @abstract_storage_decl +| @enum_element_decl +| @function +| @macro_decl +| @type_decl +; + +#keyset[id] +value_decls( //dir=decl + int id: @value_decl ref, + int interface_type: @type_or_none ref +); + +@abstract_storage_decl = + @subscript_decl +| @var_decl +; + +#keyset[id, index] +abstract_storage_decl_accessors( //dir=decl + int id: @abstract_storage_decl ref, + int index: int ref, + int accessor: @accessor_or_none ref +); + +enum_element_decls( //dir=decl + unique int id: @enum_element_decl, + string name: string ref +); + +#keyset[id, index] +enum_element_decl_params( //dir=decl + int id: @enum_element_decl ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +@function = + @accessor_or_named_function +| @deinitializer +| @initializer +; + +infix_operator_decls( //dir=decl + unique int id: @infix_operator_decl +); + +#keyset[id] +infix_operator_decl_precedence_groups( //dir=decl + int id: @infix_operator_decl ref, + int precedence_group: @precedence_group_decl_or_none ref +); + +macro_decls( //dir=decl + unique int id: @macro_decl, + string name: string ref +); + +#keyset[id, index] +macro_decl_parameters( //dir=decl + int id: @macro_decl ref, + int index: int ref, + int parameter: @param_decl_or_none ref +); + +#keyset[id, index] +macro_decl_roles( //dir=decl + int id: @macro_decl ref, + int index: int ref, + int role: @macro_role_or_none ref +); + +postfix_operator_decls( //dir=decl + unique int id: @postfix_operator_decl +); + +prefix_operator_decls( //dir=decl + unique int id: @prefix_operator_decl +); + +@type_decl = + @abstract_type_param_decl +| @generic_type_decl +| @module_decl +; + +#keyset[id] +type_decls( //dir=decl + int id: @type_decl ref, + string name: string ref +); + +#keyset[id, index] +type_decl_inherited_types( //dir=decl + int id: @type_decl ref, + int index: int ref, + int inherited_type: @type_or_none ref +); + +@abstract_type_param_decl = + @associated_type_decl +| @generic_type_param_decl +; + +@accessor_or_named_function = + @accessor +| @named_function +; + +deinitializers( //dir=decl + unique int id: @deinitializer +); + +@generic_type_decl = + @nominal_type_decl +| @opaque_type_decl +| @type_alias_decl +; + +initializers( //dir=decl + unique int id: @initializer +); + +module_decls( //dir=decl + unique int id: @module_decl +); + +#keyset[id] +module_decl_is_builtin_module( //dir=decl + int id: @module_decl ref +); + +#keyset[id] +module_decl_is_system_module( //dir=decl + int id: @module_decl ref +); + +module_decl_imported_modules( //dir=decl + int id: @module_decl ref, + int imported_module: @module_decl_or_none ref +); + +module_decl_exported_modules( //dir=decl + int id: @module_decl ref, + int exported_module: @module_decl_or_none ref +); + +subscript_decls( //dir=decl + unique int id: @subscript_decl, + int element_type: @type_or_none ref +); + +#keyset[id, index] +subscript_decl_params( //dir=decl + int id: @subscript_decl ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +@var_decl = + @concrete_var_decl +| @param_decl +; + +#keyset[id] +var_decls( //dir=decl + int id: @var_decl ref, + string name: string ref, + int type_: @type_or_none ref +); + +#keyset[id] +var_decl_attached_property_wrapper_types( //dir=decl + int id: @var_decl ref, + int attached_property_wrapper_type: @type_or_none ref +); + +#keyset[id] +var_decl_parent_patterns( //dir=decl + int id: @var_decl ref, + int parent_pattern: @pattern_or_none ref +); + +#keyset[id] +var_decl_parent_initializers( //dir=decl + int id: @var_decl ref, + int parent_initializer: @expr_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_backing_var_bindings( //dir=decl + int id: @var_decl ref, + int property_wrapper_backing_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_backing_vars( //dir=decl + int id: @var_decl ref, + int property_wrapper_backing_var: @var_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_projection_var_bindings( //dir=decl + int id: @var_decl ref, + int property_wrapper_projection_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_projection_vars( //dir=decl + int id: @var_decl ref, + int property_wrapper_projection_var: @var_decl_or_none ref +); + +accessors( //dir=decl + unique int id: @accessor +); + +#keyset[id] +accessor_is_getter( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_setter( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_will_set( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_did_set( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_read( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_modify( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_unsafe_address( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_unsafe_mutable_address( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_distributed_get( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_read2( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_modify2( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_init( //dir=decl + int id: @accessor ref +); + +associated_type_decls( //dir=decl + unique int id: @associated_type_decl +); + +concrete_var_decls( //dir=decl + unique int id: @concrete_var_decl, + int introducer_int: int ref +); + +generic_type_param_decls( //dir=decl + unique int id: @generic_type_param_decl +); + +named_functions( //dir=decl + unique int id: @named_function +); + +@nominal_type_decl = + @class_decl +| @enum_decl +| @protocol_decl +| @struct_decl +; + +#keyset[id] +nominal_type_decls( //dir=decl + int id: @nominal_type_decl ref, + int type_: @type_or_none ref +); + +opaque_type_decls( //dir=decl + unique int id: @opaque_type_decl, + int naming_declaration: @value_decl_or_none ref +); + +#keyset[id, index] +opaque_type_decl_opaque_generic_params( //dir=decl + int id: @opaque_type_decl ref, + int index: int ref, + int opaque_generic_param: @generic_type_param_type_or_none ref +); + +param_decls( //dir=decl + unique int id: @param_decl +); + +#keyset[id] +param_decl_is_inout( //dir=decl + int id: @param_decl ref +); + +#keyset[id] +param_decl_property_wrapper_local_wrapped_var_bindings( //dir=decl + int id: @param_decl ref, + int property_wrapper_local_wrapped_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +param_decl_property_wrapper_local_wrapped_vars( //dir=decl + int id: @param_decl ref, + int property_wrapper_local_wrapped_var: @var_decl_or_none ref +); + +type_alias_decls( //dir=decl + unique int id: @type_alias_decl, + int aliased_type: @type_or_none ref +); + +class_decls( //dir=decl + unique int id: @class_decl +); + +enum_decls( //dir=decl + unique int id: @enum_decl +); + +protocol_decls( //dir=decl + unique int id: @protocol_decl +); + +struct_decls( //dir=decl + unique int id: @struct_decl +); + +arguments( //dir=expr + unique int id: @argument, + string label: string ref, + int expr: @expr_or_none ref +); + +@expr = + @any_try_expr +| @applied_property_wrapper_expr +| @apply_expr +| @assign_expr +| @bind_optional_expr +| @capture_list_expr +| @closure_expr +| @collection_expr +| @consume_expr +| @copy_expr +| @current_context_isolation_expr +| @decl_ref_expr +| @default_argument_expr +| @discard_assignment_expr +| @dot_syntax_base_ignored_expr +| @dynamic_type_expr +| @enum_is_case_expr +| @error_expr +| @explicit_cast_expr +| @extract_function_isolation_expr +| @force_value_expr +| @identity_expr +| @if_expr +| @implicit_conversion_expr +| @in_out_expr +| @key_path_application_expr +| @key_path_dot_expr +| @key_path_expr +| @lazy_initialization_expr +| @literal_expr +| @lookup_expr +| @make_temporarily_escapable_expr +| @materialize_pack_expr +| @obj_c_selector_expr +| @one_way_expr +| @opaque_value_expr +| @open_existential_expr +| @optional_evaluation_expr +| @other_initializer_ref_expr +| @overloaded_decl_ref_expr +| @pack_element_expr +| @pack_expansion_expr +| @property_wrapper_value_placeholder_expr +| @rebind_self_in_initializer_expr +| @sequence_expr +| @single_value_stmt_expr +| @super_ref_expr +| @tap_expr +| @tuple_element_expr +| @tuple_expr +| @type_expr +| @type_value_expr +| @unresolved_decl_ref_expr +| @unresolved_dot_expr +| @unresolved_member_expr +| @unresolved_pattern_expr +| @unresolved_specialize_expr +| @vararg_expansion_expr +; + +#keyset[id] +expr_types( //dir=expr + int id: @expr ref, + int type_: @type_or_none ref +); + +@any_try_expr = + @force_try_expr +| @optional_try_expr +| @try_expr +; + +#keyset[id] +any_try_exprs( //dir=expr + int id: @any_try_expr ref, + int sub_expr: @expr_or_none ref +); + +applied_property_wrapper_exprs( //dir=expr + unique int id: @applied_property_wrapper_expr, + int kind: int ref, + int value: @expr_or_none ref, + int param: @param_decl_or_none ref +); + +@apply_expr = + @binary_expr +| @call_expr +| @postfix_unary_expr +| @prefix_unary_expr +| @self_apply_expr +; + +#keyset[id] +apply_exprs( //dir=expr + int id: @apply_expr ref, + int function: @expr_or_none ref +); + +#keyset[id, index] +apply_expr_arguments( //dir=expr + int id: @apply_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +assign_exprs( //dir=expr + unique int id: @assign_expr, + int dest: @expr_or_none ref, + int source: @expr_or_none ref +); + +bind_optional_exprs( //dir=expr + unique int id: @bind_optional_expr, + int sub_expr: @expr_or_none ref +); + +capture_list_exprs( //dir=expr + unique int id: @capture_list_expr, + int closure_body: @closure_expr_or_none ref +); + +#keyset[id, index] +capture_list_expr_binding_decls( //dir=expr + int id: @capture_list_expr ref, + int index: int ref, + int binding_decl: @pattern_binding_decl_or_none ref +); + +@closure_expr = + @auto_closure_expr +| @explicit_closure_expr +; + +@collection_expr = + @array_expr +| @dictionary_expr +; + +consume_exprs( //dir=expr + unique int id: @consume_expr, + int sub_expr: @expr_or_none ref +); + +copy_exprs( //dir=expr + unique int id: @copy_expr, + int sub_expr: @expr_or_none ref +); + +current_context_isolation_exprs( //dir=expr + unique int id: @current_context_isolation_expr, + int actor: @expr_or_none ref +); + +decl_ref_exprs( //dir=expr + unique int id: @decl_ref_expr, + int decl: @decl_or_none ref +); + +#keyset[id, index] +decl_ref_expr_replacement_types( //dir=expr + int id: @decl_ref_expr ref, + int index: int ref, + int replacement_type: @type_or_none ref +); + +#keyset[id] +decl_ref_expr_has_direct_to_storage_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_ordinary_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_distributed_thunk_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +default_argument_exprs( //dir=expr + unique int id: @default_argument_expr, + int param_decl: @param_decl_or_none ref, + int param_index: int ref +); + +#keyset[id] +default_argument_expr_caller_side_defaults( //dir=expr + int id: @default_argument_expr ref, + int caller_side_default: @expr_or_none ref +); + +discard_assignment_exprs( //dir=expr + unique int id: @discard_assignment_expr +); + +dot_syntax_base_ignored_exprs( //dir=expr + unique int id: @dot_syntax_base_ignored_expr, + int qualifier: @expr_or_none ref, + int sub_expr: @expr_or_none ref +); + +dynamic_type_exprs( //dir=expr + unique int id: @dynamic_type_expr, + int base: @expr_or_none ref +); + +enum_is_case_exprs( //dir=expr + unique int id: @enum_is_case_expr, + int sub_expr: @expr_or_none ref, + int element: @enum_element_decl_or_none ref +); + +error_exprs( //dir=expr + unique int id: @error_expr +); + +@explicit_cast_expr = + @checked_cast_expr +| @coerce_expr +; + +#keyset[id] +explicit_cast_exprs( //dir=expr + int id: @explicit_cast_expr ref, + int sub_expr: @expr_or_none ref +); + +extract_function_isolation_exprs( //dir=expr + unique int id: @extract_function_isolation_expr, + int function_expr: @expr_or_none ref +); + +force_value_exprs( //dir=expr + unique int id: @force_value_expr, + int sub_expr: @expr_or_none ref +); + +@identity_expr = + @await_expr +| @borrow_expr +| @dot_self_expr +| @paren_expr +| @unresolved_member_chain_result_expr +| @unsafe_expr +; + +#keyset[id] +identity_exprs( //dir=expr + int id: @identity_expr ref, + int sub_expr: @expr_or_none ref +); + +if_exprs( //dir=expr + unique int id: @if_expr, + int condition: @expr_or_none ref, + int then_expr: @expr_or_none ref, + int else_expr: @expr_or_none ref +); + +@implicit_conversion_expr = + @abi_safe_conversion_expr +| @actor_isolation_erasure_expr +| @any_hashable_erasure_expr +| @archetype_to_super_expr +| @array_to_pointer_expr +| @bridge_from_obj_c_expr +| @bridge_to_obj_c_expr +| @class_metatype_to_object_expr +| @collection_upcast_conversion_expr +| @conditional_bridge_from_obj_c_expr +| @covariant_function_conversion_expr +| @covariant_return_conversion_expr +| @derived_to_base_expr +| @destructure_tuple_expr +| @differentiable_function_expr +| @differentiable_function_extract_original_expr +| @erasure_expr +| @existential_metatype_to_object_expr +| @foreign_object_conversion_expr +| @function_conversion_expr +| @in_out_to_pointer_expr +| @inject_into_optional_expr +| @linear_function_expr +| @linear_function_extract_original_expr +| @linear_to_differentiable_function_expr +| @load_expr +| @metatype_conversion_expr +| @pointer_to_pointer_expr +| @protocol_metatype_to_object_expr +| @string_to_pointer_expr +| @underlying_to_opaque_expr +| @unevaluated_instance_expr +| @unreachable_expr +| @unresolved_type_conversion_expr +| @unsafe_cast_expr +; + +#keyset[id] +implicit_conversion_exprs( //dir=expr + int id: @implicit_conversion_expr ref, + int sub_expr: @expr_or_none ref +); + +in_out_exprs( //dir=expr + unique int id: @in_out_expr, + int sub_expr: @expr_or_none ref +); + +key_path_application_exprs( //dir=expr + unique int id: @key_path_application_expr, + int base: @expr_or_none ref, + int key_path: @expr_or_none ref +); + +key_path_dot_exprs( //dir=expr + unique int id: @key_path_dot_expr +); + +key_path_exprs( //dir=expr + unique int id: @key_path_expr +); + +#keyset[id] +key_path_expr_roots( //dir=expr + int id: @key_path_expr ref, + int root: @type_repr_or_none ref +); + +#keyset[id, index] +key_path_expr_components( //dir=expr + int id: @key_path_expr ref, + int index: int ref, + int component: @key_path_component_or_none ref +); + +lazy_initialization_exprs( //dir=expr + unique int id: @lazy_initialization_expr, + int sub_expr: @expr_or_none ref +); + +@literal_expr = + @builtin_literal_expr +| @interpolated_string_literal_expr +| @nil_literal_expr +| @object_literal_expr +| @regex_literal_expr +; + +@lookup_expr = + @dynamic_lookup_expr +| @member_ref_expr +| @subscript_expr +; + +#keyset[id] +lookup_exprs( //dir=expr + int id: @lookup_expr ref, + int base: @expr_or_none ref +); + +#keyset[id] +lookup_expr_members( //dir=expr + int id: @lookup_expr ref, + int member: @decl_or_none ref +); + +make_temporarily_escapable_exprs( //dir=expr + unique int id: @make_temporarily_escapable_expr, + int escaping_closure: @opaque_value_expr_or_none ref, + int nonescaping_closure: @expr_or_none ref, + int sub_expr: @expr_or_none ref +); + +materialize_pack_exprs( //dir=expr + unique int id: @materialize_pack_expr, + int sub_expr: @expr_or_none ref +); + +obj_c_selector_exprs( //dir=expr + unique int id: @obj_c_selector_expr, + int sub_expr: @expr_or_none ref, + int method: @function_or_none ref +); + +one_way_exprs( //dir=expr + unique int id: @one_way_expr, + int sub_expr: @expr_or_none ref +); + +opaque_value_exprs( //dir=expr + unique int id: @opaque_value_expr +); + +open_existential_exprs( //dir=expr + unique int id: @open_existential_expr, + int sub_expr: @expr_or_none ref, + int existential: @expr_or_none ref, + int opaque_expr: @opaque_value_expr_or_none ref +); + +optional_evaluation_exprs( //dir=expr + unique int id: @optional_evaluation_expr, + int sub_expr: @expr_or_none ref +); + +other_initializer_ref_exprs( //dir=expr + unique int id: @other_initializer_ref_expr, + int initializer: @initializer_or_none ref +); + +overloaded_decl_ref_exprs( //dir=expr + unique int id: @overloaded_decl_ref_expr +); + +#keyset[id, index] +overloaded_decl_ref_expr_possible_declarations( //dir=expr + int id: @overloaded_decl_ref_expr ref, + int index: int ref, + int possible_declaration: @value_decl_or_none ref +); + +pack_element_exprs( //dir=expr + unique int id: @pack_element_expr, + int sub_expr: @expr_or_none ref +); + +pack_expansion_exprs( //dir=expr + unique int id: @pack_expansion_expr, + int pattern_expr: @expr_or_none ref +); + +property_wrapper_value_placeholder_exprs( //dir=expr + unique int id: @property_wrapper_value_placeholder_expr, + int placeholder: @opaque_value_expr_or_none ref +); + +#keyset[id] +property_wrapper_value_placeholder_expr_wrapped_values( //dir=expr + int id: @property_wrapper_value_placeholder_expr ref, + int wrapped_value: @expr_or_none ref +); + +rebind_self_in_initializer_exprs( //dir=expr + unique int id: @rebind_self_in_initializer_expr, + int sub_expr: @expr_or_none ref, + int self: @var_decl_or_none ref +); + +sequence_exprs( //dir=expr + unique int id: @sequence_expr +); + +#keyset[id, index] +sequence_expr_elements( //dir=expr + int id: @sequence_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +single_value_stmt_exprs( //dir=expr + unique int id: @single_value_stmt_expr, + int stmt: @stmt_or_none ref +); + +super_ref_exprs( //dir=expr + unique int id: @super_ref_expr, + int self: @var_decl_or_none ref +); + +tap_exprs( //dir=expr + unique int id: @tap_expr, + int body: @brace_stmt_or_none ref, + int var: @var_decl_or_none ref +); + +#keyset[id] +tap_expr_sub_exprs( //dir=expr + int id: @tap_expr ref, + int sub_expr: @expr_or_none ref +); + +tuple_element_exprs( //dir=expr + unique int id: @tuple_element_expr, + int sub_expr: @expr_or_none ref, + int index: int ref +); + +tuple_exprs( //dir=expr + unique int id: @tuple_expr +); + +#keyset[id, index] +tuple_expr_elements( //dir=expr + int id: @tuple_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +type_exprs( //dir=expr + unique int id: @type_expr +); + +#keyset[id] +type_expr_type_reprs( //dir=expr + int id: @type_expr ref, + int type_repr: @type_repr_or_none ref +); + +type_value_exprs( //dir=expr + unique int id: @type_value_expr, + int type_repr: @type_repr_or_none ref +); + +unresolved_decl_ref_exprs( //dir=expr + unique int id: @unresolved_decl_ref_expr +); + +#keyset[id] +unresolved_decl_ref_expr_names( //dir=expr + int id: @unresolved_decl_ref_expr ref, + string name: string ref +); + +unresolved_dot_exprs( //dir=expr + unique int id: @unresolved_dot_expr, + int base: @expr_or_none ref, + string name: string ref +); + +unresolved_member_exprs( //dir=expr + unique int id: @unresolved_member_expr, + string name: string ref +); + +unresolved_pattern_exprs( //dir=expr + unique int id: @unresolved_pattern_expr, + int sub_pattern: @pattern_or_none ref +); + +unresolved_specialize_exprs( //dir=expr + unique int id: @unresolved_specialize_expr, + int sub_expr: @expr_or_none ref +); + +vararg_expansion_exprs( //dir=expr + unique int id: @vararg_expansion_expr, + int sub_expr: @expr_or_none ref +); + +abi_safe_conversion_exprs( //dir=expr + unique int id: @abi_safe_conversion_expr +); + +actor_isolation_erasure_exprs( //dir=expr + unique int id: @actor_isolation_erasure_expr +); + +any_hashable_erasure_exprs( //dir=expr + unique int id: @any_hashable_erasure_expr +); + +archetype_to_super_exprs( //dir=expr + unique int id: @archetype_to_super_expr +); + +array_exprs( //dir=expr + unique int id: @array_expr +); + +#keyset[id, index] +array_expr_elements( //dir=expr + int id: @array_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +array_to_pointer_exprs( //dir=expr + unique int id: @array_to_pointer_expr +); + +auto_closure_exprs( //dir=expr + unique int id: @auto_closure_expr +); + +await_exprs( //dir=expr + unique int id: @await_expr +); + +binary_exprs( //dir=expr + unique int id: @binary_expr +); + +borrow_exprs( //dir=expr + unique int id: @borrow_expr +); + +bridge_from_obj_c_exprs( //dir=expr + unique int id: @bridge_from_obj_c_expr +); + +bridge_to_obj_c_exprs( //dir=expr + unique int id: @bridge_to_obj_c_expr +); + +@builtin_literal_expr = + @boolean_literal_expr +| @magic_identifier_literal_expr +| @number_literal_expr +| @string_literal_expr +; + +call_exprs( //dir=expr + unique int id: @call_expr +); + +@checked_cast_expr = + @conditional_checked_cast_expr +| @forced_checked_cast_expr +| @is_expr +; + +class_metatype_to_object_exprs( //dir=expr + unique int id: @class_metatype_to_object_expr +); + +coerce_exprs( //dir=expr + unique int id: @coerce_expr +); + +collection_upcast_conversion_exprs( //dir=expr + unique int id: @collection_upcast_conversion_expr +); + +conditional_bridge_from_obj_c_exprs( //dir=expr + unique int id: @conditional_bridge_from_obj_c_expr +); + +covariant_function_conversion_exprs( //dir=expr + unique int id: @covariant_function_conversion_expr +); + +covariant_return_conversion_exprs( //dir=expr + unique int id: @covariant_return_conversion_expr +); + +derived_to_base_exprs( //dir=expr + unique int id: @derived_to_base_expr +); + +destructure_tuple_exprs( //dir=expr + unique int id: @destructure_tuple_expr +); + +dictionary_exprs( //dir=expr + unique int id: @dictionary_expr +); + +#keyset[id, index] +dictionary_expr_elements( //dir=expr + int id: @dictionary_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +differentiable_function_exprs( //dir=expr + unique int id: @differentiable_function_expr +); + +differentiable_function_extract_original_exprs( //dir=expr + unique int id: @differentiable_function_extract_original_expr +); + +dot_self_exprs( //dir=expr + unique int id: @dot_self_expr +); + +@dynamic_lookup_expr = + @dynamic_member_ref_expr +| @dynamic_subscript_expr +; + +erasure_exprs( //dir=expr + unique int id: @erasure_expr +); + +existential_metatype_to_object_exprs( //dir=expr + unique int id: @existential_metatype_to_object_expr +); + +explicit_closure_exprs( //dir=expr + unique int id: @explicit_closure_expr +); + +force_try_exprs( //dir=expr + unique int id: @force_try_expr +); + +foreign_object_conversion_exprs( //dir=expr + unique int id: @foreign_object_conversion_expr +); + +function_conversion_exprs( //dir=expr + unique int id: @function_conversion_expr +); + +in_out_to_pointer_exprs( //dir=expr + unique int id: @in_out_to_pointer_expr +); + +inject_into_optional_exprs( //dir=expr + unique int id: @inject_into_optional_expr +); + +interpolated_string_literal_exprs( //dir=expr + unique int id: @interpolated_string_literal_expr +); + +#keyset[id] +interpolated_string_literal_expr_interpolation_exprs( //dir=expr + int id: @interpolated_string_literal_expr ref, + int interpolation_expr: @opaque_value_expr_or_none ref +); + +#keyset[id] +interpolated_string_literal_expr_appending_exprs( //dir=expr + int id: @interpolated_string_literal_expr ref, + int appending_expr: @tap_expr_or_none ref +); + +linear_function_exprs( //dir=expr + unique int id: @linear_function_expr +); + +linear_function_extract_original_exprs( //dir=expr + unique int id: @linear_function_extract_original_expr +); + +linear_to_differentiable_function_exprs( //dir=expr + unique int id: @linear_to_differentiable_function_expr +); + +load_exprs( //dir=expr + unique int id: @load_expr +); + +member_ref_exprs( //dir=expr + unique int id: @member_ref_expr +); + +#keyset[id] +member_ref_expr_has_direct_to_storage_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_ordinary_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_distributed_thunk_semantics( //dir=expr + int id: @member_ref_expr ref +); + +metatype_conversion_exprs( //dir=expr + unique int id: @metatype_conversion_expr +); + +nil_literal_exprs( //dir=expr + unique int id: @nil_literal_expr +); + +object_literal_exprs( //dir=expr + unique int id: @object_literal_expr, + int kind: int ref +); + +#keyset[id, index] +object_literal_expr_arguments( //dir=expr + int id: @object_literal_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +optional_try_exprs( //dir=expr + unique int id: @optional_try_expr +); + +paren_exprs( //dir=expr + unique int id: @paren_expr +); + +pointer_to_pointer_exprs( //dir=expr + unique int id: @pointer_to_pointer_expr +); + +postfix_unary_exprs( //dir=expr + unique int id: @postfix_unary_expr +); + +prefix_unary_exprs( //dir=expr + unique int id: @prefix_unary_expr +); + +protocol_metatype_to_object_exprs( //dir=expr + unique int id: @protocol_metatype_to_object_expr +); + +regex_literal_exprs( //dir=expr + unique int id: @regex_literal_expr, + string pattern: string ref, + int version: int ref +); + +@self_apply_expr = + @dot_syntax_call_expr +| @initializer_ref_call_expr +; + +#keyset[id] +self_apply_exprs( //dir=expr + int id: @self_apply_expr ref, + int base: @expr_or_none ref +); + +string_to_pointer_exprs( //dir=expr + unique int id: @string_to_pointer_expr +); + +subscript_exprs( //dir=expr + unique int id: @subscript_expr +); + +#keyset[id, index] +subscript_expr_arguments( //dir=expr + int id: @subscript_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +#keyset[id] +subscript_expr_has_direct_to_storage_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_ordinary_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_distributed_thunk_semantics( //dir=expr + int id: @subscript_expr ref +); + +try_exprs( //dir=expr + unique int id: @try_expr +); + +underlying_to_opaque_exprs( //dir=expr + unique int id: @underlying_to_opaque_expr +); + +unevaluated_instance_exprs( //dir=expr + unique int id: @unevaluated_instance_expr +); + +unreachable_exprs( //dir=expr + unique int id: @unreachable_expr +); + +unresolved_member_chain_result_exprs( //dir=expr + unique int id: @unresolved_member_chain_result_expr +); + +unresolved_type_conversion_exprs( //dir=expr + unique int id: @unresolved_type_conversion_expr +); + +unsafe_cast_exprs( //dir=expr + unique int id: @unsafe_cast_expr +); + +unsafe_exprs( //dir=expr + unique int id: @unsafe_expr +); + +boolean_literal_exprs( //dir=expr + unique int id: @boolean_literal_expr, + boolean value: boolean ref +); + +conditional_checked_cast_exprs( //dir=expr + unique int id: @conditional_checked_cast_expr +); + +dot_syntax_call_exprs( //dir=expr + unique int id: @dot_syntax_call_expr +); + +dynamic_member_ref_exprs( //dir=expr + unique int id: @dynamic_member_ref_expr +); + +dynamic_subscript_exprs( //dir=expr + unique int id: @dynamic_subscript_expr +); + +forced_checked_cast_exprs( //dir=expr + unique int id: @forced_checked_cast_expr +); + +initializer_ref_call_exprs( //dir=expr + unique int id: @initializer_ref_call_expr +); + +is_exprs( //dir=expr + unique int id: @is_expr +); + +magic_identifier_literal_exprs( //dir=expr + unique int id: @magic_identifier_literal_expr, + string kind: string ref +); + +@number_literal_expr = + @float_literal_expr +| @integer_literal_expr +; + +string_literal_exprs( //dir=expr + unique int id: @string_literal_expr, + string value: string ref +); + +float_literal_exprs( //dir=expr + unique int id: @float_literal_expr, + string string_value: string ref +); + +integer_literal_exprs( //dir=expr + unique int id: @integer_literal_expr, + string string_value: string ref +); + +@pattern = + @any_pattern +| @binding_pattern +| @bool_pattern +| @enum_element_pattern +| @expr_pattern +| @is_pattern +| @named_pattern +| @optional_some_pattern +| @paren_pattern +| @tuple_pattern +| @typed_pattern +; + +#keyset[id] +pattern_types( //dir=pattern + int id: @pattern ref, + int type_: @type_or_none ref +); + +any_patterns( //dir=pattern + unique int id: @any_pattern +); + +binding_patterns( //dir=pattern + unique int id: @binding_pattern, + int sub_pattern: @pattern_or_none ref +); + +bool_patterns( //dir=pattern + unique int id: @bool_pattern, + boolean value: boolean ref +); + +enum_element_patterns( //dir=pattern + unique int id: @enum_element_pattern, + int element: @enum_element_decl_or_none ref +); + +#keyset[id] +enum_element_pattern_sub_patterns( //dir=pattern + int id: @enum_element_pattern ref, + int sub_pattern: @pattern_or_none ref +); + +expr_patterns( //dir=pattern + unique int id: @expr_pattern, + int sub_expr: @expr_or_none ref +); + +is_patterns( //dir=pattern + unique int id: @is_pattern +); + +#keyset[id] +is_pattern_cast_type_reprs( //dir=pattern + int id: @is_pattern ref, + int cast_type_repr: @type_repr_or_none ref +); + +#keyset[id] +is_pattern_sub_patterns( //dir=pattern + int id: @is_pattern ref, + int sub_pattern: @pattern_or_none ref +); + +named_patterns( //dir=pattern + unique int id: @named_pattern, + int var_decl: @var_decl_or_none ref +); + +optional_some_patterns( //dir=pattern + unique int id: @optional_some_pattern, + int sub_pattern: @pattern_or_none ref +); + +paren_patterns( //dir=pattern + unique int id: @paren_pattern, + int sub_pattern: @pattern_or_none ref +); + +tuple_patterns( //dir=pattern + unique int id: @tuple_pattern +); + +#keyset[id, index] +tuple_pattern_elements( //dir=pattern + int id: @tuple_pattern ref, + int index: int ref, + int element: @pattern_or_none ref +); + +typed_patterns( //dir=pattern + unique int id: @typed_pattern, + int sub_pattern: @pattern_or_none ref +); + +#keyset[id] +typed_pattern_type_reprs( //dir=pattern + int id: @typed_pattern ref, + int type_repr: @type_repr_or_none ref +); + +case_label_items( //dir=stmt + unique int id: @case_label_item, + int pattern: @pattern_or_none ref +); + +#keyset[id] +case_label_item_guards( //dir=stmt + int id: @case_label_item ref, + int guard: @expr_or_none ref +); + +condition_elements( //dir=stmt + unique int id: @condition_element +); + +#keyset[id] +condition_element_booleans( //dir=stmt + int id: @condition_element ref, + int boolean_: @expr_or_none ref +); + +#keyset[id] +condition_element_patterns( //dir=stmt + int id: @condition_element ref, + int pattern: @pattern_or_none ref +); + +#keyset[id] +condition_element_initializers( //dir=stmt + int id: @condition_element ref, + int initializer: @expr_or_none ref +); + +#keyset[id] +condition_element_availabilities( //dir=stmt + int id: @condition_element ref, + int availability: @availability_info_or_none ref +); + +@stmt = + @brace_stmt +| @break_stmt +| @case_stmt +| @continue_stmt +| @defer_stmt +| @discard_stmt +| @fail_stmt +| @fallthrough_stmt +| @labeled_stmt +| @pound_assert_stmt +| @return_stmt +| @then_stmt +| @throw_stmt +| @yield_stmt +; + +stmt_conditions( //dir=stmt + unique int id: @stmt_condition +); + +#keyset[id, index] +stmt_condition_elements( //dir=stmt + int id: @stmt_condition ref, + int index: int ref, + int element: @condition_element_or_none ref +); + +brace_stmts( //dir=stmt + unique int id: @brace_stmt +); + +#keyset[id, index] +brace_stmt_elements( //dir=stmt + int id: @brace_stmt ref, + int index: int ref, + int element: @ast_node_or_none ref +); + +break_stmts( //dir=stmt + unique int id: @break_stmt +); + +#keyset[id] +break_stmt_target_names( //dir=stmt + int id: @break_stmt ref, + string target_name: string ref +); + +#keyset[id] +break_stmt_targets( //dir=stmt + int id: @break_stmt ref, + int target: @stmt_or_none ref +); + +case_stmts( //dir=stmt + unique int id: @case_stmt, + int body: @stmt_or_none ref +); + +#keyset[id, index] +case_stmt_labels( //dir=stmt + int id: @case_stmt ref, + int index: int ref, + int label: @case_label_item_or_none ref +); + +#keyset[id, index] +case_stmt_variables( //dir=stmt + int id: @case_stmt ref, + int index: int ref, + int variable: @var_decl_or_none ref +); + +continue_stmts( //dir=stmt + unique int id: @continue_stmt +); + +#keyset[id] +continue_stmt_target_names( //dir=stmt + int id: @continue_stmt ref, + string target_name: string ref +); + +#keyset[id] +continue_stmt_targets( //dir=stmt + int id: @continue_stmt ref, + int target: @stmt_or_none ref +); + +defer_stmts( //dir=stmt + unique int id: @defer_stmt, + int body: @brace_stmt_or_none ref +); + +discard_stmts( //dir=stmt + unique int id: @discard_stmt, + int sub_expr: @expr_or_none ref +); + +fail_stmts( //dir=stmt + unique int id: @fail_stmt +); + +fallthrough_stmts( //dir=stmt + unique int id: @fallthrough_stmt, + int fallthrough_source: @case_stmt_or_none ref, + int fallthrough_dest: @case_stmt_or_none ref +); + +@labeled_stmt = + @do_catch_stmt +| @do_stmt +| @for_each_stmt +| @labeled_conditional_stmt +| @repeat_while_stmt +| @switch_stmt +; + +#keyset[id] +labeled_stmt_labels( //dir=stmt + int id: @labeled_stmt ref, + string label: string ref +); + +pound_assert_stmts( //dir=stmt + unique int id: @pound_assert_stmt, + int condition: @expr_or_none ref, + string message: string ref +); + +return_stmts( //dir=stmt + unique int id: @return_stmt +); + +#keyset[id] +return_stmt_results( //dir=stmt + int id: @return_stmt ref, + int result: @expr_or_none ref +); + +then_stmts( //dir=stmt + unique int id: @then_stmt, + int result: @expr_or_none ref +); + +throw_stmts( //dir=stmt + unique int id: @throw_stmt, + int sub_expr: @expr_or_none ref +); + +yield_stmts( //dir=stmt + unique int id: @yield_stmt +); + +#keyset[id, index] +yield_stmt_results( //dir=stmt + int id: @yield_stmt ref, + int index: int ref, + int result: @expr_or_none ref +); + +do_catch_stmts( //dir=stmt + unique int id: @do_catch_stmt, + int body: @stmt_or_none ref +); + +#keyset[id, index] +do_catch_stmt_catches( //dir=stmt + int id: @do_catch_stmt ref, + int index: int ref, + int catch: @case_stmt_or_none ref +); + +do_stmts( //dir=stmt + unique int id: @do_stmt, + int body: @brace_stmt_or_none ref +); + +for_each_stmts( //dir=stmt + unique int id: @for_each_stmt, + int pattern: @pattern_or_none ref, + int body: @brace_stmt_or_none ref +); + +#keyset[id, index] +for_each_stmt_variables( //dir=stmt + int id: @for_each_stmt ref, + int index: int ref, + int variable: @var_decl_or_none ref +); + +#keyset[id] +for_each_stmt_wheres( //dir=stmt + int id: @for_each_stmt ref, + int where: @expr_or_none ref +); + +#keyset[id] +for_each_stmt_iterator_vars( //dir=stmt + int id: @for_each_stmt ref, + int iteratorVar: @pattern_binding_decl_or_none ref +); + +#keyset[id] +for_each_stmt_next_calls( //dir=stmt + int id: @for_each_stmt ref, + int nextCall: @expr_or_none ref +); + +@labeled_conditional_stmt = + @guard_stmt +| @if_stmt +| @while_stmt +; + +#keyset[id] +labeled_conditional_stmts( //dir=stmt + int id: @labeled_conditional_stmt ref, + int condition: @stmt_condition_or_none ref +); + +repeat_while_stmts( //dir=stmt + unique int id: @repeat_while_stmt, + int condition: @expr_or_none ref, + int body: @stmt_or_none ref +); + +switch_stmts( //dir=stmt + unique int id: @switch_stmt, + int expr: @expr_or_none ref +); + +#keyset[id, index] +switch_stmt_cases( //dir=stmt + int id: @switch_stmt ref, + int index: int ref, + int case_: @case_stmt_or_none ref +); + +guard_stmts( //dir=stmt + unique int id: @guard_stmt, + int body: @brace_stmt_or_none ref +); + +if_stmts( //dir=stmt + unique int id: @if_stmt, + int then: @stmt_or_none ref +); + +#keyset[id] +if_stmt_elses( //dir=stmt + int id: @if_stmt ref, + int else: @stmt_or_none ref +); + +while_stmts( //dir=stmt + unique int id: @while_stmt, + int body: @stmt_or_none ref +); + +@type = + @any_function_type +| @any_generic_type +| @any_metatype_type +| @builtin_type +| @dependent_member_type +| @dynamic_self_type +| @error_type +| @existential_type +| @in_out_type +| @integer_type +| @l_value_type +| @module_type +| @pack_element_type +| @pack_expansion_type +| @pack_type +| @parameterized_protocol_type +| @protocol_composition_type +| @reference_storage_type +| @substitutable_type +| @sugar_type +| @tuple_type +| @unresolved_type +; + +#keyset[id] +types( //dir=type + int id: @type ref, + string name: string ref, + int canonical_type: @type_or_none ref +); + +type_reprs( //dir=type + unique int id: @type_repr, + int type_: @type_or_none ref +); + +@any_function_type = + @function_type +| @generic_function_type +; + +#keyset[id] +any_function_types( //dir=type + int id: @any_function_type ref, + int result: @type_or_none ref +); + +#keyset[id, index] +any_function_type_param_types( //dir=type + int id: @any_function_type ref, + int index: int ref, + int param_type: @type_or_none ref +); + +#keyset[id] +any_function_type_is_throwing( //dir=type + int id: @any_function_type ref +); + +#keyset[id] +any_function_type_is_async( //dir=type + int id: @any_function_type ref +); + +@any_generic_type = + @nominal_or_bound_generic_nominal_type +| @unbound_generic_type +; + +#keyset[id] +any_generic_types( //dir=type + int id: @any_generic_type ref, + int declaration: @generic_type_decl_or_none ref +); + +#keyset[id] +any_generic_type_parents( //dir=type + int id: @any_generic_type ref, + int parent: @type_or_none ref +); + +@any_metatype_type = + @existential_metatype_type +| @metatype_type +; + +@builtin_type = + @any_builtin_integer_type +| @builtin_bridge_object_type +| @builtin_default_actor_storage_type +| @builtin_executor_type +| @builtin_fixed_array_type +| @builtin_float_type +| @builtin_job_type +| @builtin_native_object_type +| @builtin_raw_pointer_type +| @builtin_raw_unsafe_continuation_type +| @builtin_unsafe_value_buffer_type +| @builtin_vector_type +; + +dependent_member_types( //dir=type + unique int id: @dependent_member_type, + int base_type: @type_or_none ref, + int associated_type_decl: @associated_type_decl_or_none ref +); + +dynamic_self_types( //dir=type + unique int id: @dynamic_self_type, + int static_self_type: @type_or_none ref +); + +error_types( //dir=type + unique int id: @error_type +); + +existential_types( //dir=type + unique int id: @existential_type, + int constraint: @type_or_none ref +); + +in_out_types( //dir=type + unique int id: @in_out_type, + int object_type: @type_or_none ref +); + +integer_types( //dir=type + unique int id: @integer_type, + string value: string ref +); + +l_value_types( //dir=type + unique int id: @l_value_type, + int object_type: @type_or_none ref +); + +module_types( //dir=type + unique int id: @module_type, + int module: @module_decl_or_none ref +); + +pack_element_types( //dir=type + unique int id: @pack_element_type, + int pack_type: @type_or_none ref +); + +pack_expansion_types( //dir=type + unique int id: @pack_expansion_type, + int pattern_type: @type_or_none ref, + int count_type: @type_or_none ref +); + +pack_types( //dir=type + unique int id: @pack_type +); + +#keyset[id, index] +pack_type_elements( //dir=type + int id: @pack_type ref, + int index: int ref, + int element: @type_or_none ref +); + +parameterized_protocol_types( //dir=type + unique int id: @parameterized_protocol_type, + int base: @protocol_type_or_none ref +); + +#keyset[id, index] +parameterized_protocol_type_args( //dir=type + int id: @parameterized_protocol_type ref, + int index: int ref, + int arg: @type_or_none ref +); + +protocol_composition_types( //dir=type + unique int id: @protocol_composition_type +); + +#keyset[id, index] +protocol_composition_type_members( //dir=type + int id: @protocol_composition_type ref, + int index: int ref, + int member: @type_or_none ref +); + +@reference_storage_type = + @unmanaged_storage_type +| @unowned_storage_type +| @weak_storage_type +; + +#keyset[id] +reference_storage_types( //dir=type + int id: @reference_storage_type ref, + int referent_type: @type_or_none ref +); + +@substitutable_type = + @archetype_type +| @generic_type_param_type +; + +@sugar_type = + @paren_type +| @syntax_sugar_type +| @type_alias_type +; + +tuple_types( //dir=type + unique int id: @tuple_type +); + +#keyset[id, index] +tuple_type_types( //dir=type + int id: @tuple_type ref, + int index: int ref, + int type_: @type_or_none ref +); + +#keyset[id, index] +tuple_type_names( //dir=type + int id: @tuple_type ref, + int index: int ref, + string name: string ref +); + +unresolved_types( //dir=type + unique int id: @unresolved_type +); + +@any_builtin_integer_type = + @builtin_integer_literal_type +| @builtin_integer_type +; + +@archetype_type = + @local_archetype_type +| @opaque_type_archetype_type +| @pack_archetype_type +| @primary_archetype_type +; + +#keyset[id] +archetype_types( //dir=type + int id: @archetype_type ref, + int interface_type: @type_or_none ref +); + +#keyset[id] +archetype_type_superclasses( //dir=type + int id: @archetype_type ref, + int superclass: @type_or_none ref +); + +#keyset[id, index] +archetype_type_protocols( //dir=type + int id: @archetype_type ref, + int index: int ref, + int protocol: @protocol_decl_or_none ref +); + +builtin_bridge_object_types( //dir=type + unique int id: @builtin_bridge_object_type +); + +builtin_default_actor_storage_types( //dir=type + unique int id: @builtin_default_actor_storage_type +); + +builtin_executor_types( //dir=type + unique int id: @builtin_executor_type +); + +builtin_fixed_array_types( //dir=type + unique int id: @builtin_fixed_array_type +); + +builtin_float_types( //dir=type + unique int id: @builtin_float_type +); + +builtin_job_types( //dir=type + unique int id: @builtin_job_type +); + +builtin_native_object_types( //dir=type + unique int id: @builtin_native_object_type +); + +builtin_raw_pointer_types( //dir=type + unique int id: @builtin_raw_pointer_type +); + +builtin_raw_unsafe_continuation_types( //dir=type + unique int id: @builtin_raw_unsafe_continuation_type +); + +builtin_unsafe_value_buffer_types( //dir=type + unique int id: @builtin_unsafe_value_buffer_type +); + +builtin_vector_types( //dir=type + unique int id: @builtin_vector_type +); + +existential_metatype_types( //dir=type + unique int id: @existential_metatype_type +); + +function_types( //dir=type + unique int id: @function_type +); + +generic_function_types( //dir=type + unique int id: @generic_function_type +); + +#keyset[id, index] +generic_function_type_generic_params( //dir=type + int id: @generic_function_type ref, + int index: int ref, + int generic_param: @generic_type_param_type_or_none ref +); + +generic_type_param_types( //dir=type + unique int id: @generic_type_param_type +); + +metatype_types( //dir=type + unique int id: @metatype_type +); + +@nominal_or_bound_generic_nominal_type = + @bound_generic_type +| @nominal_type +; + +paren_types( //dir=type + unique int id: @paren_type, + int type_: @type_or_none ref +); + +@syntax_sugar_type = + @dictionary_type +| @inline_array_type +| @unary_syntax_sugar_type +; + +type_alias_types( //dir=type + unique int id: @type_alias_type, + int decl: @type_alias_decl_or_none ref +); + +unbound_generic_types( //dir=type + unique int id: @unbound_generic_type +); + +unmanaged_storage_types( //dir=type + unique int id: @unmanaged_storage_type +); + +unowned_storage_types( //dir=type + unique int id: @unowned_storage_type +); + +weak_storage_types( //dir=type + unique int id: @weak_storage_type +); + +@bound_generic_type = + @bound_generic_class_type +| @bound_generic_enum_type +| @bound_generic_struct_type +; + +#keyset[id, index] +bound_generic_type_arg_types( //dir=type + int id: @bound_generic_type ref, + int index: int ref, + int arg_type: @type_or_none ref +); + +builtin_integer_literal_types( //dir=type + unique int id: @builtin_integer_literal_type +); + +builtin_integer_types( //dir=type + unique int id: @builtin_integer_type +); + +#keyset[id] +builtin_integer_type_widths( //dir=type + int id: @builtin_integer_type ref, + int width: int ref +); + +dictionary_types( //dir=type + unique int id: @dictionary_type, + int key_type: @type_or_none ref, + int value_type: @type_or_none ref +); + +inline_array_types( //dir=type + unique int id: @inline_array_type, + int count_type: @type_or_none ref, + int element_type: @type_or_none ref +); + +@local_archetype_type = + @element_archetype_type +| @existential_archetype_type +; + +@nominal_type = + @class_type +| @enum_type +| @protocol_type +| @struct_type +; + +opaque_type_archetype_types( //dir=type + unique int id: @opaque_type_archetype_type, + int declaration: @opaque_type_decl_or_none ref +); + +pack_archetype_types( //dir=type + unique int id: @pack_archetype_type +); + +primary_archetype_types( //dir=type + unique int id: @primary_archetype_type +); + +@unary_syntax_sugar_type = + @array_slice_type +| @optional_type +| @variadic_sequence_type +; + +#keyset[id] +unary_syntax_sugar_types( //dir=type + int id: @unary_syntax_sugar_type ref, + int base_type: @type_or_none ref +); + +array_slice_types( //dir=type + unique int id: @array_slice_type +); + +bound_generic_class_types( //dir=type + unique int id: @bound_generic_class_type +); + +bound_generic_enum_types( //dir=type + unique int id: @bound_generic_enum_type +); + +bound_generic_struct_types( //dir=type + unique int id: @bound_generic_struct_type +); + +class_types( //dir=type + unique int id: @class_type +); + +element_archetype_types( //dir=type + unique int id: @element_archetype_type +); + +enum_types( //dir=type + unique int id: @enum_type +); + +existential_archetype_types( //dir=type + unique int id: @existential_archetype_type +); + +optional_types( //dir=type + unique int id: @optional_type +); + +protocol_types( //dir=type + unique int id: @protocol_type +); + +struct_types( //dir=type + unique int id: @struct_type +); + +variadic_sequence_types( //dir=type + unique int id: @variadic_sequence_type +); + +@accessor_or_none = + @accessor +| @unspecified_element +; + +@argument_or_none = + @argument +| @unspecified_element +; + +@associated_type_decl_or_none = + @associated_type_decl +| @unspecified_element +; + +@ast_node_or_none = + @ast_node +| @unspecified_element +; + +@availability_info_or_none = + @availability_info +| @unspecified_element +; + +@availability_spec_or_none = + @availability_spec +| @unspecified_element +; + +@brace_stmt_or_none = + @brace_stmt +| @unspecified_element +; + +@captured_decl_or_none = + @captured_decl +| @unspecified_element +; + +@case_label_item_or_none = + @case_label_item +| @unspecified_element +; + +@case_stmt_or_none = + @case_stmt +| @unspecified_element +; + +@closure_expr_or_none = + @closure_expr +| @unspecified_element +; + +@condition_element_or_none = + @condition_element +| @unspecified_element +; + +@decl_or_none = + @decl +| @unspecified_element +; + +@enum_element_decl_or_none = + @enum_element_decl +| @unspecified_element +; + +@expr_or_none = + @expr +| @unspecified_element +; + +@file_or_none = + @file +| @unspecified_element +; + +@function_or_none = + @function +| @unspecified_element +; + +@generic_type_decl_or_none = + @generic_type_decl +| @unspecified_element +; + +@generic_type_param_decl_or_none = + @generic_type_param_decl +| @unspecified_element +; + +@generic_type_param_type_or_none = + @generic_type_param_type +| @unspecified_element +; + +@initializer_or_none = + @initializer +| @unspecified_element +; + +@key_path_component_or_none = + @key_path_component +| @unspecified_element +; + +@location_or_none = + @location +| @unspecified_element +; + +@macro_role_or_none = + @macro_role +| @unspecified_element +; + +@module_decl_or_none = + @module_decl +| @unspecified_element +; + +@nominal_type_decl_or_none = + @nominal_type_decl +| @unspecified_element +; + +@opaque_type_decl_or_none = + @opaque_type_decl +| @unspecified_element +; + +@opaque_value_expr_or_none = + @opaque_value_expr +| @unspecified_element +; + +@param_decl_or_none = + @param_decl +| @unspecified_element +; + +@pattern_or_none = + @pattern +| @unspecified_element +; + +@pattern_binding_decl_or_none = + @pattern_binding_decl +| @unspecified_element +; + +@precedence_group_decl_or_none = + @precedence_group_decl +| @unspecified_element +; + +@protocol_decl_or_none = + @protocol_decl +| @unspecified_element +; + +@protocol_type_or_none = + @protocol_type +| @unspecified_element +; + +@stmt_or_none = + @stmt +| @unspecified_element +; + +@stmt_condition_or_none = + @stmt_condition +| @unspecified_element +; + +@string_literal_expr_or_none = + @string_literal_expr +| @unspecified_element +; + +@tap_expr_or_none = + @tap_expr +| @unspecified_element +; + +@type_or_none = + @type +| @unspecified_element +; + +@type_alias_decl_or_none = + @type_alias_decl +| @unspecified_element +; + +@type_repr_or_none = + @type_repr +| @unspecified_element +; + +@value_decl_or_none = + @unspecified_element +| @value_decl +; + +@var_decl_or_none = + @unspecified_element +| @var_decl +; diff --git a/swift/downgrades/ee3053b673c901a325b361b18c50b18342752bf8/upgrade.properties b/swift/downgrades/ee3053b673c901a325b361b18c50b18342752bf8/upgrade.properties new file mode 100644 index 00000000000..dfc606c6f14 --- /dev/null +++ b/swift/downgrades/ee3053b673c901a325b361b18c50b18342752bf8/upgrade.properties @@ -0,0 +1,2 @@ +description: Upgrade to Swift 6.3 +compatibility: full diff --git a/swift/extractor/infra/SwiftTagTraits.h b/swift/extractor/infra/SwiftTagTraits.h index f7825043edd..7ea1d58a576 100644 --- a/swift/extractor/infra/SwiftTagTraits.h +++ b/swift/extractor/infra/SwiftTagTraits.h @@ -146,7 +146,6 @@ MAP(swift::Expr, ExprTag) MAP(swift::ImplicitConversionExpr, ImplicitConversionExprTag) MAP(swift::LoadExpr, LoadExprTag) MAP(swift::DestructureTupleExpr, DestructureTupleExprTag) - MAP(swift::UnresolvedTypeConversionExpr, UnresolvedTypeConversionExprTag) MAP(swift::FunctionConversionExpr, FunctionConversionExprTag) MAP(swift::CovariantFunctionConversionExpr, CovariantFunctionConversionExprTag) MAP(swift::CovariantReturnConversionExpr, CovariantReturnConversionExprTag) @@ -267,8 +266,7 @@ MAP(swift::TypeRepr, TypeReprTag) MAP(swift::Type, TypeTag) MAP(swift::TypeBase, TypeTag) MAP(swift::ErrorType, ErrorTypeTag) - MAP(swift::UnresolvedType, UnresolvedTypeTag) - MAP(swift::PlaceholderType, void) // appears in ambiguous types but are then transformed to UnresolvedType + MAP(swift::PlaceholderType, void) // appears in ambiguous types but are then transformed to ErrorType MAP(swift::BuiltinType, BuiltinTypeTag) MAP(swift::AnyBuiltinIntegerType, AnyBuiltinIntegerTypeTag) MAP(swift::BuiltinIntegerType, BuiltinIntegerTypeTag) @@ -285,7 +283,8 @@ MAP(swift::TypeBase, TypeTag) MAP(swift::BuiltinVectorType, BuiltinVectorTypeTag) MAP(swift::BuiltinPackIndexType, void) // SIL type, cannot really appear in the frontend run MAP(swift::BuiltinNonDefaultDistributedActorStorageType, void) // Does not appear in AST/SIL, only used during IRGen - MAP(swift::BuiltinFixedArrayType, BuiltinFixedArrayTypeTag) + MAP(swift::BuiltinGenericType, BuiltinGenericTypeTag) + MAP(swift::BuiltinFixedArrayType, BuiltinFixedArrayTypeTag) MAP(swift::BuiltinUnboundGenericType, void) // Only used during type resolution MAP(swift::BuiltinImplicitActorType, void) // SIL type MAP(swift::TupleType, TupleTypeTag) diff --git a/swift/extractor/mangler/SwiftMangler.cpp b/swift/extractor/mangler/SwiftMangler.cpp index 8d7d2a8a065..e7dbda6ba91 100644 --- a/swift/extractor/mangler/SwiftMangler.cpp +++ b/swift/extractor/mangler/SwiftMangler.cpp @@ -40,8 +40,8 @@ std::string_view getTypeKindStr(const swift::TypeBase* type) { } // namespace -std::unordered_map - SwiftMangler::preloadedExtensionIndexes; +std::unordered_map + SwiftMangler::preloadedExtensionOrFilePrivateValueIndexes; SwiftMangledName SwiftMangler::initMangled(const swift::TypeBase* type) { return {getTypeKindStr(type), '_'}; @@ -75,6 +75,12 @@ SwiftMangledName SwiftMangler::visitValueDecl(const swift::ValueDecl* decl, bool if (decl->isStatic()) { ret << "|static"; } + if (decl->getFormalAccess() == swift::AccessLevel::FilePrivate) { + auto parent = getParent(decl); + auto index = getExtensionOrFilePrivateValueIndex(decl, parent); + ret << "|fileprivate" << index.index + << (index.kind == ExtensionOrFilePrivateValueKind::clang ? "_clang" : ""); + } return ret; } @@ -105,51 +111,68 @@ SwiftMangledName SwiftMangler::visitExtensionDecl(const swift::ExtensionDecl* de auto parent = getParent(decl); auto target = decl->getExtendedType(); - auto index = getExtensionIndex(decl, parent); + auto index = getExtensionOrFilePrivateValueIndex(decl, parent); return initMangled(decl) << fetch(target) << index.index - << (index.kind == ExtensionKind::clang ? "_clang" : ""); + << (index.kind == ExtensionOrFilePrivateValueKind::clang ? "_clang" + : ""); } -SwiftMangler::ExtensionIndex SwiftMangler::getExtensionIndex(const swift::ExtensionDecl* decl, - const swift::Decl* parent) { - // to avoid iterating multiple times on the parent of multiple extensions, we preload extension - // indexes once for each encountered parent into the `preloadedExtensionIndexes` mapping. - if (auto found = SwiftMangler::preloadedExtensionIndexes.find(decl); - found != SwiftMangler::preloadedExtensionIndexes.end()) { +SwiftMangler::ExtensionOrFilePrivateValueIndex SwiftMangler::getExtensionOrFilePrivateValueIndex( + const swift::Decl* decl, + const swift::Decl* parent) { + // to avoid iterating multiple times on the parent, we preload the indexes once for each + // encountered parent. + if (auto found = SwiftMangler::preloadedExtensionOrFilePrivateValueIndexes.find(decl); + found != SwiftMangler::preloadedExtensionOrFilePrivateValueIndexes.end()) { return found->second; } if (auto parentModule = llvm::dyn_cast(parent)) { llvm::SmallVector siblings; parentModule->getTopLevelDecls(siblings); - indexExtensions(siblings); + indexExtensionsAndFilePrivateValues(siblings); if (auto clangModule = parentModule->findUnderlyingClangModule()) { - indexClangExtensions(clangModule, decl->getASTContext().getClangModuleLoader()); + indexClangExtensionsAndFilePrivateValues(clangModule, + decl->getASTContext().getClangModuleLoader()); } } else if (auto iterableParent = llvm::dyn_cast(parent)) { - indexExtensions(iterableParent->getAllMembers()); + indexExtensionsAndFilePrivateValues(iterableParent->getAllMembers()); } else { // TODO use a generic logging handle for Swift entities here, once it's available CODEQL_ASSERT(false, "non-local context must be module or iterable decl context"); } - auto found = SwiftMangler::preloadedExtensionIndexes.find(decl); + auto found = SwiftMangler::preloadedExtensionOrFilePrivateValueIndexes.find(decl); // TODO use a generic logging handle for Swift entities here, once it's available - CODEQL_ASSERT(found != SwiftMangler::preloadedExtensionIndexes.end(), - "extension not found within parent"); + CODEQL_ASSERT(found != SwiftMangler::preloadedExtensionOrFilePrivateValueIndexes.end(), + "declaration not found within parent"); return found->second; } -void SwiftMangler::indexExtensions(llvm::ArrayRef siblings) { +bool SwiftMangler::isExtensionOrFilePrivateValue(const swift::Decl* decl) { + if (decl->getKind() == swift::DeclKind::Extension) { + return true; + } + + if (const auto* valueDecl = swift::dyn_cast(decl)) { + return valueDecl->getFormalAccess() == swift::AccessLevel::FilePrivate; + } + + return false; +} + +void SwiftMangler::indexExtensionsAndFilePrivateValues(llvm::ArrayRef siblings) { auto index = 0u; for (auto sibling : siblings) { - if (sibling->getKind() == swift::DeclKind::Extension) { - SwiftMangler::preloadedExtensionIndexes.try_emplace(sibling, ExtensionKind::swift, index); + if (isExtensionOrFilePrivateValue(sibling)) { + SwiftMangler::preloadedExtensionOrFilePrivateValueIndexes.try_emplace( + sibling, ExtensionOrFilePrivateValueKind::swift, index); index++; } } } -void SwiftMangler::indexClangExtensions(const clang::Module* clangModule, - swift::ClangModuleLoader* moduleLoader) { +void SwiftMangler::indexClangExtensionsAndFilePrivateValues( + const clang::Module* clangModule, + swift::ClangModuleLoader* moduleLoader) { if (!moduleLoader) { return; } @@ -160,8 +183,9 @@ void SwiftMangler::indexClangExtensions(const clang::Module* clangModule, llvm::SmallVector children; swiftSubmodule->getTopLevelDecls(children); for (const auto child : children) { - if (child->getKind() == swift::DeclKind::Extension) { - SwiftMangler::preloadedExtensionIndexes.try_emplace(child, ExtensionKind::clang, index); + if (isExtensionOrFilePrivateValue(child)) { + SwiftMangler::preloadedExtensionOrFilePrivateValueIndexes.try_emplace( + child, ExtensionOrFilePrivateValueKind::clang, index); index++; } } @@ -202,6 +226,14 @@ SwiftMangledName SwiftMangler::visitBuiltinType(const swift::BuiltinType* type) return initMangled(type) << type->getTypeName(buffer, /* prependBuiltinNamespace= */ false); } +SwiftMangledName SwiftMangler::visitBuiltinFixedArrayType( + const swift::BuiltinFixedArrayType* type) { + auto ret = visitBuiltinType(type); + ret << fetch(type->getSize()); + ret << fetch(type->getElementType()); + return ret; +} + SwiftMangledName SwiftMangler::visitAnyGenericType(const swift::AnyGenericType* type) { auto ret = initMangled(type); auto decl = type->getDecl(); @@ -240,9 +272,6 @@ SwiftMangledName SwiftMangler::visitAnyFunctionType(const swift::AnyFunctionType if (flags.isNonEphemeral()) { ret << "_nonephermeral"; } - if (flags.isIsolated()) { - ret << "_isolated"; - } if (flags.isSending()) { ret << "_sending"; } @@ -309,9 +338,13 @@ SwiftMangledName SwiftMangler::visitAnyFunctionType(const swift::AnyFunctionType if (type->hasGlobalActor()) { ret << "_actor" << fetch(type->getGlobalActor()); } - if (type->getIsolation().isErased()) { + const auto& isolation = type->getIsolation(); + if (isolation.isErased()) { ret << "_isolated"; } + if (isolation.isNonIsolatedCaller()) { + ret << "_nonisolatednonsending"; + } // TODO: see if this needs to be used in identifying types, if not it needs to be removed from // type printing in the Swift compiler code assert(type->hasExtInfo() && "type must have ext info"); @@ -423,7 +456,13 @@ SwiftMangledName SwiftMangler::visitArchetypeType(const swift::ArchetypeType* ty SwiftMangledName SwiftMangler::visitOpaqueTypeArchetypeType( const swift::OpaqueTypeArchetypeType* type) { - return visitArchetypeType(type) << fetch(type->getDecl()); + auto ret = visitArchetypeType(type) << fetch(type->getDecl()); + ret << '<'; + for (auto replacement : type->getSubstitutions().getReplacementTypes()) { + ret << fetch(replacement); + } + ret << '>'; + return ret; } SwiftMangledName SwiftMangler::visitExistentialArchetypeType( diff --git a/swift/extractor/mangler/SwiftMangler.h b/swift/extractor/mangler/SwiftMangler.h index caf70718633..92175b5887b 100644 --- a/swift/extractor/mangler/SwiftMangler.h +++ b/swift/extractor/mangler/SwiftMangler.h @@ -71,6 +71,7 @@ class SwiftMangler : private swift::TypeVisitor, SwiftMangledName visitModuleType(const swift::ModuleType* type); SwiftMangledName visitTupleType(const swift::TupleType* type); SwiftMangledName visitBuiltinType(const swift::BuiltinType* type); + SwiftMangledName visitBuiltinFixedArrayType(const swift::BuiltinFixedArrayType* type); SwiftMangledName visitAnyGenericType(const swift::AnyGenericType* type); // shouldn't be required, but they forgot to link `NominalType` to its direct superclass @@ -106,26 +107,29 @@ class SwiftMangler : private swift::TypeVisitor, SwiftMangledName visitPackExpansionType(const swift::PackExpansionType* type); private: - enum class ExtensionKind : bool { + enum class ExtensionOrFilePrivateValueKind : bool { swift, clang, }; - struct ExtensionIndex { - const ExtensionKind kind : 1; + struct ExtensionOrFilePrivateValueIndex { + const ExtensionOrFilePrivateValueKind kind : 1; const uint32_t index : 31; }; - static std::unordered_map preloadedExtensionIndexes; + static std::unordered_map + preloadedExtensionOrFilePrivateValueIndexes; virtual SwiftMangledName fetch(const swift::Decl* decl) = 0; virtual SwiftMangledName fetch(const swift::TypeBase* type) = 0; SwiftMangledName fetch(swift::Type type) { return fetch(type.getPointer()); } - void indexExtensions(llvm::ArrayRef siblings); - void indexClangExtensions(const clang::Module* clangModule, - swift::ClangModuleLoader* moduleLoader); - ExtensionIndex getExtensionIndex(const swift::ExtensionDecl* decl, const swift::Decl* parent); + bool isExtensionOrFilePrivateValue(const swift::Decl* decl); + void indexExtensionsAndFilePrivateValues(llvm::ArrayRef siblings); + void indexClangExtensionsAndFilePrivateValues(const clang::Module* clangModule, + swift::ClangModuleLoader* moduleLoader); + ExtensionOrFilePrivateValueIndex getExtensionOrFilePrivateValueIndex(const swift::Decl* decl, + const swift::Decl* parent); static SwiftMangledName initMangled(const swift::TypeBase* type); SwiftMangledName initMangled(const swift::Decl* decl); SwiftMangledName visitTypeDiscriminatedValueDecl(const swift::ValueDecl* decl); diff --git a/swift/extractor/translators/StmtTranslator.cpp b/swift/extractor/translators/StmtTranslator.cpp index 1562c28f19c..2b059682b33 100644 --- a/swift/extractor/translators/StmtTranslator.cpp +++ b/swift/extractor/translators/StmtTranslator.cpp @@ -137,7 +137,7 @@ codeql::CaseStmt StmtTranslator::translateCaseStmt(const swift::CaseStmt& stmt) auto entry = dispatcher.createEntry(stmt); entry.body = dispatcher.fetchLabel(stmt.getBody()); entry.labels = dispatcher.fetchRepeatedLabels(stmt.getCaseLabelItems()); - entry.variables = dispatcher.fetchRepeatedLabels(stmt.getCaseBodyVariablesOrEmptyArray()); + entry.variables = dispatcher.fetchRepeatedLabels(stmt.getCaseBodyVariables()); return entry; } diff --git a/swift/extractor/translators/TypeTranslator.cpp b/swift/extractor/translators/TypeTranslator.cpp index 52d17c7a357..ccd1a84f3cf 100644 --- a/swift/extractor/translators/TypeTranslator.cpp +++ b/swift/extractor/translators/TypeTranslator.cpp @@ -233,6 +233,14 @@ codeql::BuiltinIntegerType TypeTranslator::translateBuiltinIntegerType( return entry; } +codeql::BuiltinFixedArrayType TypeTranslator::translateBuiltinFixedArrayType( + const swift::BuiltinFixedArrayType& type) { + auto entry = createTypeEntry(type); + entry.size = dispatcher.fetchLabel(type.getSize()); + entry.element_type = dispatcher.fetchLabel(type.getElementType()); + return entry; +} + codeql::ExistentialArchetypeType TypeTranslator::translateExistentialArchetypeType( const swift::ExistentialArchetypeType& type) { auto entry = createTypeEntry(type); @@ -258,10 +266,6 @@ codeql::ErrorType TypeTranslator::translateErrorType(const swift::ErrorType& typ return createTypeEntry(type); } -codeql::UnresolvedType TypeTranslator::translateUnresolvedType(const swift::UnresolvedType& type) { - return createTypeEntry(type); -} - codeql::ParameterizedProtocolType TypeTranslator::translateParameterizedProtocolType( const swift::ParameterizedProtocolType& type) { auto entry = createTypeEntry(type); diff --git a/swift/extractor/translators/TypeTranslator.h b/swift/extractor/translators/TypeTranslator.h index c65c0e757de..fd211ec39e0 100644 --- a/swift/extractor/translators/TypeTranslator.h +++ b/swift/extractor/translators/TypeTranslator.h @@ -69,13 +69,14 @@ class TypeTranslator : public TypeTranslatorBase { codeql::BuiltinIntegerLiteralType translateBuiltinIntegerLiteralType( const swift::BuiltinIntegerLiteralType& type); codeql::BuiltinIntegerType translateBuiltinIntegerType(const swift::BuiltinIntegerType& type); + codeql::BuiltinFixedArrayType translateBuiltinFixedArrayType( + const swift::BuiltinFixedArrayType& type); codeql::ExistentialArchetypeType translateExistentialArchetypeType( const swift::ExistentialArchetypeType& type); codeql::ModuleType translateModuleType(const swift::ModuleType& type); codeql::OpaqueTypeArchetypeType translateOpaqueTypeArchetypeType( const swift::OpaqueTypeArchetypeType& type); codeql::ErrorType translateErrorType(const swift::ErrorType& type); - codeql::UnresolvedType translateUnresolvedType(const swift::UnresolvedType& type); codeql::ParameterizedProtocolType translateParameterizedProtocolType( const swift::ParameterizedProtocolType& type); codeql::PackArchetypeType translatePackArchetypeType(const swift::PackArchetypeType& type); diff --git a/swift/ql/.generated.list b/swift/ql/.generated.list index 8d2fb9a2ebc..ea1cb6f571b 100644 --- a/swift/ql/.generated.list +++ b/swift/ql/.generated.list @@ -539,8 +539,9 @@ lib/codeql/swift/elements/type/BoundGenericType.qll 089e5e8d09c62a23d575dcab68cd lib/codeql/swift/elements/type/BuiltinBridgeObjectType.qll b0064e09b53efe801b0bf950ff00698a84e2f714e853e4859ed5f3246025a1bd aa14b6ae2ec510c4ddd2cc073bf971809536ab8fd8763fd05bd171b0bbe83860 lib/codeql/swift/elements/type/BuiltinDefaultActorStorageType.qll e867a9d0b2c61b7eb61f5143c78e31f8d98d3245d79e0e3281d4c172175f496b 265e87f2e37ca968af572cc619294d1ee91dd66ebb0d1bb1ba9ab7159de52f0b lib/codeql/swift/elements/type/BuiltinExecutorType.qll 2b141553bbc02a00d97579ba9d0e38fa0978d40ce954b0caf64826aa259dbc08 a81465fd0e87ad5b8e418d8f21c337b3e96388a3b92b3332f0d6b0ff7663e5c7 -lib/codeql/swift/elements/type/BuiltinFixedArrayType.qll 24a57f15a53070e6308841cd5dac4d55059e84d9fb18a77eec1130647dcdc97c 9f4167ef5190cbeee71abd068bdb0a280b690a16349cd408244d4cf9edfb357a +lib/codeql/swift/elements/type/BuiltinFixedArrayType.qll d7ee816a646cde2be9141d89eadc86a144aa3f983d0562f1b478448b0bda54fc 95639bfde60f1401ca741e4930ab7f935b0aa4f4bdb7d8ec09cd2010037c0aca lib/codeql/swift/elements/type/BuiltinFloatType.qll 81f49325077b75cea682904ddab24d1b2fdc5c93b0b28830c08e866d5c9307a7 e26a348d66e3824ccd92729624ce2b2ebc82a844aa47035e0a963a62b08b772d +lib/codeql/swift/elements/type/BuiltinGenericType.qll 108682444f5f28b64b7caa16254fd4d7418813bc9e7f6a17477b13fe37293d40 de3fa330516684f0cfd848101b3a93f83b2d8a9f00b35dae70d2b56cb5414923 lib/codeql/swift/elements/type/BuiltinIntegerLiteralType.qll 34ee35733cf26f90d799a79f8a2362b199ea2ecb6ba83eb5678dda9eb3ed255f e33fdb27d3c22d441277b66ba74136cb88e1da25a2146391b258c68f7fbf5dd3 lib/codeql/swift/elements/type/BuiltinIntegerType.qll b931e79a40fb379a8de377ae4ea1c85befb7b07dbfe913f0ea7f5adf5514b217 5d7e6f21284b8c5ff70773bb64f896a40541c9064bfdd336798ccfda4cb4fb9e lib/codeql/swift/elements/type/BuiltinJobType.qll 4b4cab766d8476efd7482ab47f6fdd63fd90a322e1e791949351092f126f5b46 779ceee86a778b59a3feb5247603fe07e4a73068a7990e25c31dd93ba0dd718d @@ -623,6 +624,7 @@ lib/codeql/swift/elements/type/internal/BuiltinFixedArrayTypeConstructor.qll 0d5 lib/codeql/swift/elements/type/internal/BuiltinFixedArrayTypeImpl.qll 6b69ba8b271646bcd699e338f41c186f3e4e7d401830918407e392312b2f0ad1 ecaca3d762264423094f7c2cb63e33b5d72d970946766eec33d984fa977950b4 lib/codeql/swift/elements/type/internal/BuiltinFloatTypeConstructor.qll f1dab7b9d36213e57083a6effec1b2d859553831394c0e746c592c96a20db6de cceeaa864cfc84511b3cdad6a88d44fc14ea1c8e38db72b0854c3f217a3f9c44 lib/codeql/swift/elements/type/internal/BuiltinFloatTypeImpl.qll 1dc7f7817c4a238751875b0cee98d060a1ea975a22fd90ceef0f9874b85824d6 d98f743c28174fb3294f0ff60232600a4fc80aeefe72e5cc15bb56e09880ec1e +lib/codeql/swift/elements/type/internal/BuiltinGenericTypeImpl.qll 2735ef1521c399540ef43fc75aa62b4bbb1871446d87304c9e3a991ad16a96f4 263e41354843afc5d1f57bd2f50610992d05d77ceb1c2079587ddd3a1eceffc5 lib/codeql/swift/elements/type/internal/BuiltinIntegerLiteralTypeConstructor.qll 3885775f78e18286aa8dc99ab5b6f386a278b34b47f93da28d67faac918e6087 93be2ad0b7235bab613b74582bc1de0ca8b2a4da7a387d09a9b8ef9b38095534 lib/codeql/swift/elements/type/internal/BuiltinIntegerLiteralTypeImpl.qll 7f078bd837acddd0e835f78b0ae6e0381c9c587e82edc61cf78986ce0081e314 f141415be39f8a5f09d4a90cc5d841f90385c3be8781c0bafbad0871681ec8a3 lib/codeql/swift/elements/type/internal/BuiltinIntegerTypeConstructor.qll 2c5a7884c5c8c852d81b6ce03f9c6cc036944428731e3a73208c0d2047b72611 abd29915698109395a4751999aa334ba3c020f20372a5dff213acdd672d024a9 @@ -721,7 +723,7 @@ lib/codeql/swift/elements/type/internal/UnresolvedTypeImpl.qll ee1499dd568753898 lib/codeql/swift/elements/type/internal/VariadicSequenceTypeConstructor.qll fc74a5a2a2effa28ef24509b20ee4373d97cf6e8c71840121bb031c6adedf584 c9b2effc1d01c13c5e6a74a111122fa79a2f6554dda3cb016d68ba397e566ec4 lib/codeql/swift/elements/type/internal/WeakStorageTypeConstructor.qll 5fdce3716aba6318522174a2c455a63480970222ae81c732fb19c6dd3ae2d271 60ea79d6943e129deba0deccb566cf9d73f78398b0f7f0212674d91287d6b2ae lib/codeql/swift/elements/type/internal/WeakStorageTypeImpl.qll 74f79b458f3204ec2519bd654de21bc4fb6b76816bd8ca01990fe897563a1383 34e1810f74cecda5b580ed050438ae1d914b97a36b8f4e2de1c25254c0cac633 -lib/codeql/swift/elements.qll ec0104a658330f595eac7dd8578d996905a6c2cf78765744c3967a8f3d1c3273 ec0104a658330f595eac7dd8578d996905a6c2cf78765744c3967a8f3d1c3273 +lib/codeql/swift/elements.qll 70e20ccd31c9247904fb5ef00ccbda5a6d29c680e88b0ed238f4b4546abf5f33 70e20ccd31c9247904fb5ef00ccbda5a6d29c680e88b0ed238f4b4546abf5f33 lib/codeql/swift/generated/AstNode.qll 6fb80e9b230a1e3ae8193af40744f253d5cc81dc4239156924e5ab606c491efc e5c28418e9a38bde08f323a3986a199620189fc4a8a4dc8f670610a5d3d65b99 lib/codeql/swift/generated/AvailabilityInfo.qll e3a5274c43e72ff124b6988fd8be0c83a41b89337e11104150dd0ca7f51d8a11 889563791ca8d9758dbbccf64a0731c4bdbf721cad32bc6cd723f1072b6aa1de lib/codeql/swift/generated/AvailabilitySpec.qll 1bd2a0ee085f802c99090e681ab3339fc5013024d79deef39f376de12ab76d37 658f2eb51860726cfa6808b3e3501d624e0734750d1420f7a25c89782f1f6c7e @@ -737,10 +739,10 @@ lib/codeql/swift/generated/KeyPathComponent.qll e11dcf952045b5e6062e24c23515cff9 lib/codeql/swift/generated/Locatable.qll 1d37fa20de71c0b9986bfd7a7c0cb82ab7bf3fda2d2008700f955ad82ce109a7 e97d4d4fb8a4800e0008cc00f60c8ed9b1ebd5f1140fd85e68b034616178d721 lib/codeql/swift/generated/Location.qll 5e20316c3e480ddfe632b7e88e016c19f10a67df1f6ae9c8f128755a6907d6f5 5a0af2d070bcb2ed53d6d0282bf9c60dc64c2dce89c21fdd485e9c7893c1c8fa lib/codeql/swift/generated/MacroRole.qll facf907e75490d69cd401c491215e4719324d751f40ea46c86ccf24cf3663c1f 969d8d4b44e3f1a9c193a152a4d83a303e56d2dbb871fc920c47a33f699cf018 -lib/codeql/swift/generated/ParentChild.qll 7fdc133bdec6cc223d5ee85e757b02c5d2e1ab121bcf269bb48c8a12a31a61e9 d8dd6e21d290a293db4db510b1523a9ea428b12f48b7574f03acf00b9ca065ef +lib/codeql/swift/generated/ParentChild.qll 669d39245f2cb735cfd4bcebdb551ef8f334fef5297c5834a8b09ebfa655856e 59b283c8a30b6b364c853302ab919ea713e0289e7b793b08b46fc87178d14a6a lib/codeql/swift/generated/PureSynthConstructors.qll bc31a6c4d142fa3fbdcae69d5ba6f1cec00eb9ad92b46c8d7b91ebfa7ef6c1f4 bc31a6c4d142fa3fbdcae69d5ba6f1cec00eb9ad92b46c8d7b91ebfa7ef6c1f4 -lib/codeql/swift/generated/Raw.qll 6adc2ec210e91051b6d3d6c84117b827f10dbea682a18b69348d1c6cdc53629c 9ff02fcca7a7b83c85303ffc6daa00ea392da6ce1f9cb389b5053b34d4a45e4c -lib/codeql/swift/generated/Synth.qll b0084d1f573ba1b10ec8a8fab169b15f15866ecb9a6aeeeac81553a442be28e3 09efe455f3fd6b8b983b30efbd797f09af46e6f5a1a1075801650528999ed938 +lib/codeql/swift/generated/Raw.qll 0090c6509cb3fa5a67c996a2fc22e6338caef19701ca19463965b55b3c63096f 578329fa3abbabbadbff5e364e9c8d7ad76b41d4c17ad76e0660d41f48746659 +lib/codeql/swift/generated/Synth.qll e30b50d2645d9c36719d81f1be70712c7c6e89a3f5b4a5ae894411e045d05bff 9bd0c9c90532db97cde9553dde4089b7cf12c462c690d853fa40cb36ea112c21 lib/codeql/swift/generated/SynthConstructors.qll c40f01e1331bdbe238620a41d17409cefe34a6b23066708ef5d74f8631b54f48 c40f01e1331bdbe238620a41d17409cefe34a6b23066708ef5d74f8631b54f48 lib/codeql/swift/generated/UnknownFile.qll 247ddf2ebb49ce5ed4bf7bf91a969ddff37de6c78d43d8affccaf7eb586e06f2 452b29f0465ef45e978ef8b647b75e5a2a1e53f2a568fc003bc8f52f73b3fa4d lib/codeql/swift/generated/UnknownLocation.qll d871000b4f53ffca4f67ea23ca5626e5dcce125d62a4d4b9969e08cc974af6fc b05971d7774e60790362fb810fb7086314f40a2de747b8cb1bc823ec6494a4dd @@ -978,8 +980,9 @@ lib/codeql/swift/generated/type/BoundGenericType.qll 5e7a2210b766437ca301f9675f7 lib/codeql/swift/generated/type/BuiltinBridgeObjectType.qll 97f30768a8788ec4547ce8a8f06fdd165286177e3819bf2e6590b9479f5bada4 ea3161c34d1d18783b38deac43c73048e4510015307d93f77cd95c149e988846 lib/codeql/swift/generated/type/BuiltinDefaultActorStorageType.qll 10e49de9a8bc3e67285c111f7869c8baceb70e478661d5557ebc8c86f41b4aec 1a0ce85eb325f666fbc2ac49c6f994efd552de6f2105e0a7ba9a10e39f3d1591 lib/codeql/swift/generated/type/BuiltinExecutorType.qll 8f58d4d413910aded894bfa9b54748adfc2b78f4ee271ac6db5f5b0214f36a66 69da70d76146155529b7b2426b3a459abe318f887240aac1aed5719fda5f386a -lib/codeql/swift/generated/type/BuiltinFixedArrayType.qll 9bd26596da9137b07324222c9ed39ec0781e44673314fba96a0c7cf16f65cc7d cc2d40961b070a89f3350ab95b92ae33372277e499d7b2a9ea34721cc1fe1923 +lib/codeql/swift/generated/type/BuiltinFixedArrayType.qll 96ff3c5b77ecc92689879c211dce7d6f7a4e3288ff168ac31a723ecf9619da9e c4abf2e438e3924f2b412d78178faf2384004f589caf0ccbdc1f3e712a211a4a lib/codeql/swift/generated/type/BuiltinFloatType.qll 6306a806107bba052fe0b1335c8c4d4391cdb6aa5f42f14c70743113928c4c36 3265d571630c0437e5d81ba20a0b6112b7e88ee3ffca737557186001cf8aa04a +lib/codeql/swift/generated/type/BuiltinGenericType.qll 6cd1b5da102e221f25a301c284ccc9cbd64d595596787df1a4fd3f2a92ded077 3ae4c8676a868205c5334646e395b8fc4e561ee2f4c115003ae2f4ed83197b76 lib/codeql/swift/generated/type/BuiltinIntegerLiteralType.qll 3f49aac9b81c440b902a658294cf95aff5cb79b0d6cee8b1abd8a08ad45c7966 6c184dcf5d9376f193f07fe4722ea7cab51f1dfdef4d72c3042842d73cca31fe lib/codeql/swift/generated/type/BuiltinIntegerType.qll 3cfcbc4ebea6051d1f6dedcf098888c72c02bf697cebb52a0060c1885bea61f0 1c78df7a184e3615024d6e361b88dd619828a0aa7d342564610a95b02cc67d1e lib/codeql/swift/generated/type/BuiltinJobType.qll dc0e1932e972936001b1d688d6e70d7395184eef3c4242cebf3a2608d6607785 e5573304f6043f79cfc28e35744fd390eaebcb86a6f2758cc96aba588c1b8cb9 @@ -1187,6 +1190,7 @@ test/extractor-tests/generated/type/ArraySliceType/MISSING_SOURCE.txt 35fb32ea53 test/extractor-tests/generated/type/BoundGenericClassType/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/type/BoundGenericEnumType/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/type/BoundGenericStructType/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d +test/extractor-tests/generated/type/BuiltinFixedArrayType/BuiltinFixedArrayType.ql fe912eb6996342dd1b7188f560567eab623b888c3160110235e20b2821aa6155 42050d820b80c5f65714ab2bdbc70791b37569e5a7b7839b5b1826a1bf4fe344 test/extractor-tests/generated/type/BuiltinIntegerType/BuiltinIntegerType.ql 78d10029fa696ec4bcc48ea666923b98aa120a4a66004c491314f4abf283eac4 d23455d2ec38a1bba726d2e8fb349dfa2cdc52b8751d9caabb438d0dcdff6ab7 test/extractor-tests/generated/type/BuiltinType/BuiltinType.ql 83a861b3ad63bed272f892031adc5bc651ed244cfcd53fc3090a2cea3f9d6a8d 197689774e28406b4bd798059fc57078695b43ca0833a7a4ef9dabd519e62d0d test/extractor-tests/generated/type/ClassType/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d diff --git a/swift/ql/.gitattributes b/swift/ql/.gitattributes index 37f29b6947e..6810b5061d5 100644 --- a/swift/ql/.gitattributes +++ b/swift/ql/.gitattributes @@ -543,6 +543,7 @@ /lib/codeql/swift/elements/type/BuiltinExecutorType.qll linguist-generated /lib/codeql/swift/elements/type/BuiltinFixedArrayType.qll linguist-generated /lib/codeql/swift/elements/type/BuiltinFloatType.qll linguist-generated +/lib/codeql/swift/elements/type/BuiltinGenericType.qll linguist-generated /lib/codeql/swift/elements/type/BuiltinIntegerLiteralType.qll linguist-generated /lib/codeql/swift/elements/type/BuiltinIntegerType.qll linguist-generated /lib/codeql/swift/elements/type/BuiltinJobType.qll linguist-generated @@ -625,6 +626,7 @@ /lib/codeql/swift/elements/type/internal/BuiltinFixedArrayTypeImpl.qll linguist-generated /lib/codeql/swift/elements/type/internal/BuiltinFloatTypeConstructor.qll linguist-generated /lib/codeql/swift/elements/type/internal/BuiltinFloatTypeImpl.qll linguist-generated +/lib/codeql/swift/elements/type/internal/BuiltinGenericTypeImpl.qll linguist-generated /lib/codeql/swift/elements/type/internal/BuiltinIntegerLiteralTypeConstructor.qll linguist-generated /lib/codeql/swift/elements/type/internal/BuiltinIntegerLiteralTypeImpl.qll linguist-generated /lib/codeql/swift/elements/type/internal/BuiltinIntegerTypeConstructor.qll linguist-generated @@ -982,6 +984,7 @@ /lib/codeql/swift/generated/type/BuiltinExecutorType.qll linguist-generated /lib/codeql/swift/generated/type/BuiltinFixedArrayType.qll linguist-generated /lib/codeql/swift/generated/type/BuiltinFloatType.qll linguist-generated +/lib/codeql/swift/generated/type/BuiltinGenericType.qll linguist-generated /lib/codeql/swift/generated/type/BuiltinIntegerLiteralType.qll linguist-generated /lib/codeql/swift/generated/type/BuiltinIntegerType.qll linguist-generated /lib/codeql/swift/generated/type/BuiltinJobType.qll linguist-generated @@ -1189,6 +1192,7 @@ /test/extractor-tests/generated/type/BoundGenericClassType/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/type/BoundGenericEnumType/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/type/BoundGenericStructType/MISSING_SOURCE.txt linguist-generated +/test/extractor-tests/generated/type/BuiltinFixedArrayType/BuiltinFixedArrayType.ql linguist-generated /test/extractor-tests/generated/type/BuiltinIntegerType/BuiltinIntegerType.ql linguist-generated /test/extractor-tests/generated/type/BuiltinType/BuiltinType.ql linguist-generated /test/extractor-tests/generated/type/ClassType/MISSING_SOURCE.txt linguist-generated diff --git a/swift/ql/integration-tests/posix/deduplication/BuiltinTypes.expected b/swift/ql/integration-tests/posix/deduplication/BuiltinTypes.expected index 0f0a0220445..1ca837955b6 100644 --- a/swift/ql/integration-tests/posix/deduplication/BuiltinTypes.expected +++ b/swift/ql/integration-tests/posix/deduplication/BuiltinTypes.expected @@ -4,6 +4,7 @@ | Builtin.FPIEEE64 | BuiltinFloatType | | Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | BuiltinFixedArrayType | | Builtin.FixedArray | BuiltinFixedArrayType | +| Builtin.FixedArray | BuiltinFixedArrayType | | Builtin.Int1 | BuiltinIntegerType | | Builtin.Int8 | BuiltinIntegerType | | Builtin.Int16 | BuiltinIntegerType | diff --git a/swift/ql/lib/CHANGELOG.md b/swift/ql/lib/CHANGELOG.md index fda32d265b0..e2cb45f9769 100644 --- a/swift/ql/lib/CHANGELOG.md +++ b/swift/ql/lib/CHANGELOG.md @@ -1,3 +1,13 @@ +## 6.4.0 + +### Major Analysis Improvements + +* Upgraded to allow analysis of Swift 6.3. + +## 6.3.3 + +No user-facing changes. + ## 6.3.2 No user-facing changes. diff --git a/swift/ql/lib/change-notes/2026-04-17-fixed-array.md b/swift/ql/lib/change-notes/2026-04-17-fixed-array.md new file mode 100644 index 00000000000..3fd91627544 --- /dev/null +++ b/swift/ql/lib/change-notes/2026-04-17-fixed-array.md @@ -0,0 +1,4 @@ +--- +category: feature +--- +* The `BuiltinFixedArrayType` class now defines the predicates `getSize` and `getElementType`, which yield the size of the array and the type of elements stored in the array, respectively. diff --git a/swift/ql/lib/change-notes/2026-04-20-swift-6.3.1.md b/swift/ql/lib/change-notes/2026-04-20-swift-6.3.1.md new file mode 100644 index 00000000000..acc4bc73861 --- /dev/null +++ b/swift/ql/lib/change-notes/2026-04-20-swift-6.3.1.md @@ -0,0 +1,4 @@ +--- +category: majorAnalysis +--- +* Upgraded to allow analysis of Swift 6.3.1. diff --git a/swift/ql/lib/change-notes/released/6.3.3.md b/swift/ql/lib/change-notes/released/6.3.3.md new file mode 100644 index 00000000000..86c54aaebb2 --- /dev/null +++ b/swift/ql/lib/change-notes/released/6.3.3.md @@ -0,0 +1,3 @@ +## 6.3.3 + +No user-facing changes. diff --git a/swift/ql/lib/change-notes/released/6.4.0.md b/swift/ql/lib/change-notes/released/6.4.0.md new file mode 100644 index 00000000000..e4b68cd2c9b --- /dev/null +++ b/swift/ql/lib/change-notes/released/6.4.0.md @@ -0,0 +1,5 @@ +## 6.4.0 + +### Major Analysis Improvements + +* Upgraded to allow analysis of Swift 6.3. diff --git a/swift/ql/lib/codeql-pack.release.yml b/swift/ql/lib/codeql-pack.release.yml index bf4d875e15a..3098c5db6c3 100644 --- a/swift/ql/lib/codeql-pack.release.yml +++ b/swift/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 6.3.2 +lastReleaseVersion: 6.4.0 diff --git a/swift/ql/lib/codeql/swift/dataflow/internal/FlowSummaryImpl.qll b/swift/ql/lib/codeql/swift/dataflow/internal/FlowSummaryImpl.qll index c1ddb7f781f..3a096fe3d57 100644 --- a/swift/ql/lib/codeql/swift/dataflow/internal/FlowSummaryImpl.qll +++ b/swift/ql/lib/codeql/swift/dataflow/internal/FlowSummaryImpl.qll @@ -168,7 +168,7 @@ module SourceSinkInterpretationInput implements } predicate barrierGuardElement( - Element n, string input, Public::AcceptingValue acceptingvalue, string kind, + Element n, string input, Public::AcceptingValue acceptingValue, string kind, Public::Provenance provenance, string model ) { none() diff --git a/swift/ql/lib/codeql/swift/elements.qll b/swift/ql/lib/codeql/swift/elements.qll index bdffeba5261..6a39c465778 100644 --- a/swift/ql/lib/codeql/swift/elements.qll +++ b/swift/ql/lib/codeql/swift/elements.qll @@ -252,6 +252,7 @@ import codeql.swift.elements.type.BuiltinDefaultActorStorageType import codeql.swift.elements.type.BuiltinExecutorType import codeql.swift.elements.type.BuiltinFixedArrayType import codeql.swift.elements.type.BuiltinFloatType +import codeql.swift.elements.type.BuiltinGenericType import codeql.swift.elements.type.BuiltinIntegerLiteralType import codeql.swift.elements.type.BuiltinIntegerType import codeql.swift.elements.type.BuiltinJobType diff --git a/swift/ql/lib/codeql/swift/elements/type/BuiltinFixedArrayType.qll b/swift/ql/lib/codeql/swift/elements/type/BuiltinFixedArrayType.qll index bf523a0a785..8723de5cc49 100644 --- a/swift/ql/lib/codeql/swift/elements/type/BuiltinFixedArrayType.qll +++ b/swift/ql/lib/codeql/swift/elements/type/BuiltinFixedArrayType.qll @@ -4,7 +4,8 @@ */ private import internal.BuiltinFixedArrayTypeImpl -import codeql.swift.elements.type.BuiltinType +import codeql.swift.elements.type.BuiltinGenericType +import codeql.swift.elements.type.Type /** * A builtin type representing N values stored contiguously. diff --git a/swift/ql/lib/codeql/swift/elements/type/BuiltinGenericType.qll b/swift/ql/lib/codeql/swift/elements/type/BuiltinGenericType.qll new file mode 100644 index 00000000000..4513423fd60 --- /dev/null +++ b/swift/ql/lib/codeql/swift/elements/type/BuiltinGenericType.qll @@ -0,0 +1,12 @@ +// generated by codegen/codegen.py, do not edit +/** + * This module provides the public class `BuiltinGenericType`. + */ + +private import internal.BuiltinGenericTypeImpl +import codeql.swift.elements.type.BuiltinType + +/** + * A builtin generic type. + */ +final class BuiltinGenericType = Impl::BuiltinGenericType; diff --git a/swift/ql/lib/codeql/swift/elements/type/internal/BuiltinGenericTypeImpl.qll b/swift/ql/lib/codeql/swift/elements/type/internal/BuiltinGenericTypeImpl.qll new file mode 100644 index 00000000000..0e475d64f01 --- /dev/null +++ b/swift/ql/lib/codeql/swift/elements/type/internal/BuiltinGenericTypeImpl.qll @@ -0,0 +1,19 @@ +// generated by codegen/codegen.py, remove this comment if you wish to edit this file +/** + * This module provides a hand-modifiable wrapper around the generated class `BuiltinGenericType`. + * + * INTERNAL: Do not use. + */ + +private import codeql.swift.generated.type.BuiltinGenericType + +/** + * INTERNAL: This module contains the customizable definition of `BuiltinGenericType` and should not + * be referenced directly. + */ +module Impl { + /** + * A builtin generic type. + */ + class BuiltinGenericType extends Generated::BuiltinGenericType { } +} diff --git a/swift/ql/lib/codeql/swift/generated/ParentChild.qll b/swift/ql/lib/codeql/swift/generated/ParentChild.qll index efed12bb5fe..424fd7af75e 100644 --- a/swift/ql/lib/codeql/swift/generated/ParentChild.qll +++ b/swift/ql/lib/codeql/swift/generated/ParentChild.qll @@ -2972,12 +2972,6 @@ private module Impl { none() } - private Element getImmediateChildOfBuiltinFixedArrayType( - BuiltinFixedArrayType e, int index, string partialPredicateCall - ) { - none() - } - private Element getImmediateChildOfBuiltinFloatType( BuiltinFloatType e, int index, string partialPredicateCall ) { @@ -3084,6 +3078,12 @@ private module Impl { none() } + private Element getImmediateChildOfBuiltinFixedArrayType( + BuiltinFixedArrayType e, int index, string partialPredicateCall + ) { + none() + } + private Element getImmediateChildOfBuiltinIntegerLiteralType( BuiltinIntegerLiteralType e, int index, string partialPredicateCall ) { @@ -3636,8 +3636,6 @@ private module Impl { or result = getImmediateChildOfBuiltinExecutorType(e, index, partialAccessor) or - result = getImmediateChildOfBuiltinFixedArrayType(e, index, partialAccessor) - or result = getImmediateChildOfBuiltinFloatType(e, index, partialAccessor) or result = getImmediateChildOfBuiltinJobType(e, index, partialAccessor) @@ -3674,6 +3672,8 @@ private module Impl { or result = getImmediateChildOfWeakStorageType(e, index, partialAccessor) or + result = getImmediateChildOfBuiltinFixedArrayType(e, index, partialAccessor) + or result = getImmediateChildOfBuiltinIntegerLiteralType(e, index, partialAccessor) or result = getImmediateChildOfBuiltinIntegerType(e, index, partialAccessor) diff --git a/swift/ql/lib/codeql/swift/generated/Raw.qll b/swift/ql/lib/codeql/swift/generated/Raw.qll index 714579218bc..3e0fa95a327 100644 --- a/swift/ql/lib/codeql/swift/generated/Raw.qll +++ b/swift/ql/lib/codeql/swift/generated/Raw.qll @@ -6291,18 +6291,6 @@ module Raw { none() } - /** - * INTERNAL: Do not use. - * A builtin type representing N values stored contiguously. - */ - class BuiltinFixedArrayType extends @builtin_fixed_array_type, BuiltinType { - override string toString() { result = "BuiltinFixedArrayType" } - } - - private Element getImmediateChildOfBuiltinFixedArrayType(BuiltinFixedArrayType e, int index) { - none() - } - /** * INTERNAL: Do not use. */ @@ -6312,6 +6300,12 @@ module Raw { private Element getImmediateChildOfBuiltinFloatType(BuiltinFloatType e, int index) { none() } + /** + * INTERNAL: Do not use. + * A builtin generic type. + */ + class BuiltinGenericType extends @builtin_generic_type, BuiltinType { } + /** * INTERNAL: Do not use. */ @@ -6537,6 +6531,28 @@ module Raw { int getNumberOfArgTypes() { result = count(int i | bound_generic_type_arg_types(this, i, _)) } } + /** + * INTERNAL: Do not use. + * A builtin type representing N values stored contiguously. + */ + class BuiltinFixedArrayType extends @builtin_fixed_array_type, BuiltinGenericType { + override string toString() { result = "BuiltinFixedArrayType" } + + /** + * Gets the size of this builtin fixed array type. + */ + Type getSize() { builtin_fixed_array_types(this, result, _) } + + /** + * Gets the element type of this builtin fixed array type. + */ + Type getElementType() { builtin_fixed_array_types(this, _, result) } + } + + private Element getImmediateChildOfBuiltinFixedArrayType(BuiltinFixedArrayType e, int index) { + none() + } + /** * INTERNAL: Do not use. */ @@ -7224,8 +7240,6 @@ module Raw { or result = getImmediateChildOfBuiltinExecutorType(e, index) or - result = getImmediateChildOfBuiltinFixedArrayType(e, index) - or result = getImmediateChildOfBuiltinFloatType(e, index) or result = getImmediateChildOfBuiltinJobType(e, index) @@ -7262,6 +7276,8 @@ module Raw { or result = getImmediateChildOfWeakStorageType(e, index) or + result = getImmediateChildOfBuiltinFixedArrayType(e, index) + or result = getImmediateChildOfBuiltinIntegerLiteralType(e, index) or result = getImmediateChildOfBuiltinIntegerType(e, index) diff --git a/swift/ql/lib/codeql/swift/generated/Synth.qll b/swift/ql/lib/codeql/swift/generated/Synth.qll index 27508df94e9..cd847f3e6af 100644 --- a/swift/ql/lib/codeql/swift/generated/Synth.qll +++ b/swift/ql/lib/codeql/swift/generated/Synth.qll @@ -1392,12 +1392,17 @@ module Synth { class TBoundGenericType = TBoundGenericClassType or TBoundGenericEnumType or TBoundGenericStructType; + /** + * INTERNAL: Do not use. + */ + class TBuiltinGenericType = TBuiltinFixedArrayType; + /** * INTERNAL: Do not use. */ class TBuiltinType = TAnyBuiltinIntegerType or TBuiltinBridgeObjectType or TBuiltinDefaultActorStorageType or - TBuiltinExecutorType or TBuiltinFixedArrayType or TBuiltinFloatType or TBuiltinJobType or + TBuiltinExecutorType or TBuiltinFloatType or TBuiltinGenericType or TBuiltinJobType or TBuiltinNativeObjectType or TBuiltinRawPointerType or TBuiltinRawUnsafeContinuationType or TBuiltinUnsafeValueBufferType or TBuiltinVectorType; @@ -4291,6 +4296,14 @@ module Synth { result = convertBoundGenericStructTypeFromRaw(e) } + /** + * INTERNAL: Do not use. + * Converts a raw DB element to a synthesized `TBuiltinGenericType`, if possible. + */ + TBuiltinGenericType convertBuiltinGenericTypeFromRaw(Raw::Element e) { + result = convertBuiltinFixedArrayTypeFromRaw(e) + } + /** * INTERNAL: Do not use. * Converts a raw DB element to a synthesized `TBuiltinType`, if possible. @@ -4304,10 +4317,10 @@ module Synth { or result = convertBuiltinExecutorTypeFromRaw(e) or - result = convertBuiltinFixedArrayTypeFromRaw(e) - or result = convertBuiltinFloatTypeFromRaw(e) or + result = convertBuiltinGenericTypeFromRaw(e) + or result = convertBuiltinJobTypeFromRaw(e) or result = convertBuiltinNativeObjectTypeFromRaw(e) @@ -7037,6 +7050,14 @@ module Synth { result = convertBoundGenericStructTypeToRaw(e) } + /** + * INTERNAL: Do not use. + * Converts a synthesized `TBuiltinGenericType` to a raw DB element, if possible. + */ + Raw::Element convertBuiltinGenericTypeToRaw(TBuiltinGenericType e) { + result = convertBuiltinFixedArrayTypeToRaw(e) + } + /** * INTERNAL: Do not use. * Converts a synthesized `TBuiltinType` to a raw DB element, if possible. @@ -7050,10 +7071,10 @@ module Synth { or result = convertBuiltinExecutorTypeToRaw(e) or - result = convertBuiltinFixedArrayTypeToRaw(e) - or result = convertBuiltinFloatTypeToRaw(e) or + result = convertBuiltinGenericTypeToRaw(e) + or result = convertBuiltinJobTypeToRaw(e) or result = convertBuiltinNativeObjectTypeToRaw(e) diff --git a/swift/ql/lib/codeql/swift/generated/type/BuiltinFixedArrayType.qll b/swift/ql/lib/codeql/swift/generated/type/BuiltinFixedArrayType.qll index b61533168b7..e7a2d0ef0d3 100644 --- a/swift/ql/lib/codeql/swift/generated/type/BuiltinFixedArrayType.qll +++ b/swift/ql/lib/codeql/swift/generated/type/BuiltinFixedArrayType.qll @@ -6,7 +6,8 @@ private import codeql.swift.generated.Synth private import codeql.swift.generated.Raw -import codeql.swift.elements.type.internal.BuiltinTypeImpl::Impl as BuiltinTypeImpl +import codeql.swift.elements.type.internal.BuiltinGenericTypeImpl::Impl as BuiltinGenericTypeImpl +import codeql.swift.elements.type.Type /** * INTERNAL: This module contains the fully generated definition of `BuiltinFixedArrayType` and should not @@ -18,7 +19,55 @@ module Generated { * INTERNAL: Do not reference the `Generated::BuiltinFixedArrayType` class directly. * Use the subclass `BuiltinFixedArrayType`, where the following predicates are available. */ - class BuiltinFixedArrayType extends Synth::TBuiltinFixedArrayType, BuiltinTypeImpl::BuiltinType { + class BuiltinFixedArrayType extends Synth::TBuiltinFixedArrayType, + BuiltinGenericTypeImpl::BuiltinGenericType + { override string getAPrimaryQlClass() { result = "BuiltinFixedArrayType" } + + /** + * Gets the size of this builtin fixed array type. + * + * This includes nodes from the "hidden" AST. It can be overridden in subclasses to change the + * behavior of both the `Immediate` and non-`Immediate` versions. + */ + Type getImmediateSize() { + result = + Synth::convertTypeFromRaw(Synth::convertBuiltinFixedArrayTypeToRaw(this) + .(Raw::BuiltinFixedArrayType) + .getSize()) + } + + /** + * Gets the size of this builtin fixed array type. + */ + final Type getSize() { + exists(Type immediate | + immediate = this.getImmediateSize() and + if exists(this.getResolveStep()) then result = immediate else result = immediate.resolve() + ) + } + + /** + * Gets the element type of this builtin fixed array type. + * + * This includes nodes from the "hidden" AST. It can be overridden in subclasses to change the + * behavior of both the `Immediate` and non-`Immediate` versions. + */ + Type getImmediateElementType() { + result = + Synth::convertTypeFromRaw(Synth::convertBuiltinFixedArrayTypeToRaw(this) + .(Raw::BuiltinFixedArrayType) + .getElementType()) + } + + /** + * Gets the element type of this builtin fixed array type. + */ + final Type getElementType() { + exists(Type immediate | + immediate = this.getImmediateElementType() and + if exists(this.getResolveStep()) then result = immediate else result = immediate.resolve() + ) + } } } diff --git a/swift/ql/lib/codeql/swift/generated/type/BuiltinGenericType.qll b/swift/ql/lib/codeql/swift/generated/type/BuiltinGenericType.qll new file mode 100644 index 00000000000..cfed16ac283 --- /dev/null +++ b/swift/ql/lib/codeql/swift/generated/type/BuiltinGenericType.qll @@ -0,0 +1,22 @@ +// generated by codegen/codegen.py, do not edit +/** + * This module provides the generated definition of `BuiltinGenericType`. + * INTERNAL: Do not import directly. + */ + +private import codeql.swift.generated.Synth +private import codeql.swift.generated.Raw +import codeql.swift.elements.type.internal.BuiltinTypeImpl::Impl as BuiltinTypeImpl + +/** + * INTERNAL: This module contains the fully generated definition of `BuiltinGenericType` and should not + * be referenced directly. + */ +module Generated { + /** + * A builtin generic type. + * INTERNAL: Do not reference the `Generated::BuiltinGenericType` class directly. + * Use the subclass `BuiltinGenericType`, where the following predicates are available. + */ + class BuiltinGenericType extends Synth::TBuiltinGenericType, BuiltinTypeImpl::BuiltinType { } +} diff --git a/swift/ql/lib/qlpack.yml b/swift/ql/lib/qlpack.yml index d403d14d991..595a2804df5 100644 --- a/swift/ql/lib/qlpack.yml +++ b/swift/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/swift-all -version: 6.3.3-dev +version: 6.4.1-dev groups: swift extractor: swift dbscheme: swift.dbscheme diff --git a/swift/ql/lib/swift.dbscheme b/swift/ql/lib/swift.dbscheme index 33e5e5e03bd..5738be6bb04 100644 --- a/swift/ql/lib/swift.dbscheme +++ b/swift/ql/lib/swift.dbscheme @@ -2266,8 +2266,8 @@ any_generic_type_parents( //dir=type | @builtin_bridge_object_type | @builtin_default_actor_storage_type | @builtin_executor_type -| @builtin_fixed_array_type | @builtin_float_type +| @builtin_generic_type | @builtin_job_type | @builtin_native_object_type | @builtin_raw_pointer_type @@ -2449,14 +2449,14 @@ builtin_executor_types( //dir=type unique int id: @builtin_executor_type ); -builtin_fixed_array_types( //dir=type - unique int id: @builtin_fixed_array_type -); - builtin_float_types( //dir=type unique int id: @builtin_float_type ); +@builtin_generic_type = + @builtin_fixed_array_type +; + builtin_job_types( //dir=type unique int id: @builtin_job_type ); @@ -2558,6 +2558,12 @@ bound_generic_type_arg_types( //dir=type int arg_type: @type_or_none ref ); +builtin_fixed_array_types( //dir=type + unique int id: @builtin_fixed_array_type, + int size: @type_or_none ref, + int element_type: @type_or_none ref +); + builtin_integer_literal_types( //dir=type unique int id: @builtin_integer_literal_type ); diff --git a/swift/ql/lib/upgrades/33e5e5e03bd3f98322f4c67aefa81015be832b88/old.dbscheme b/swift/ql/lib/upgrades/33e5e5e03bd3f98322f4c67aefa81015be832b88/old.dbscheme new file mode 100644 index 00000000000..33e5e5e03bd --- /dev/null +++ b/swift/ql/lib/upgrades/33e5e5e03bd3f98322f4c67aefa81015be832b88/old.dbscheme @@ -0,0 +1,2885 @@ +// generated by codegen/codegen.py, do not edit + +// from prefix.dbscheme +/** + * The source location of the snapshot. + */ +sourceLocationPrefix( + string prefix: string ref +); + + +// from schema.py + +@element = + @file +| @generic_context +| @locatable +| @location +| @type +; + +#keyset[id] +element_is_unknown( + int id: @element ref +); + +@file = + @db_file +; + +#keyset[id] +files( + int id: @file ref, + string name: string ref +); + +#keyset[id] +file_is_successfully_extracted( + int id: @file ref +); + +@locatable = + @argument +| @ast_node +| @comment +| @diagnostics +| @error_element +; + +#keyset[id] +locatable_locations( + int id: @locatable ref, + int location: @location_or_none ref +); + +@location = + @db_location +; + +#keyset[id] +locations( + int id: @location ref, + int file: @file_or_none ref, + int start_line: int ref, + int start_column: int ref, + int end_line: int ref, + int end_column: int ref +); + +@ast_node = + @availability_info +| @availability_spec +| @callable +| @case_label_item +| @condition_element +| @decl +| @expr +| @key_path_component +| @macro_role +| @pattern +| @stmt +| @stmt_condition +| @type_repr +; + +comments( + unique int id: @comment, + string text: string ref +); + +db_files( + unique int id: @db_file +); + +db_locations( + unique int id: @db_location +); + +diagnostics( + unique int id: @diagnostics, + string text: string ref, + int kind: int ref +); + +@error_element = + @error_expr +| @error_type +| @overloaded_decl_ref_expr +| @unresolved_decl_ref_expr +| @unresolved_dot_expr +| @unresolved_member_chain_result_expr +| @unresolved_member_expr +| @unresolved_pattern_expr +| @unresolved_specialize_expr +| @unresolved_type +| @unresolved_type_conversion_expr +| @unspecified_element +; + +availability_infos( + unique int id: @availability_info +); + +#keyset[id] +availability_info_is_unavailable( + int id: @availability_info ref +); + +#keyset[id, index] +availability_info_specs( + int id: @availability_info ref, + int index: int ref, + int spec: @availability_spec_or_none ref +); + +availability_specs( + unique int id: @availability_spec +); + +#keyset[id] +availability_spec_platforms( + int id: @availability_spec ref, + string platform: string ref +); + +#keyset[id] +availability_spec_versions( + int id: @availability_spec ref, + string version: string ref +); + +#keyset[id] +availability_spec_is_wildcard( + int id: @availability_spec ref +); + +@callable = + @closure_expr +| @function +; + +#keyset[id] +callable_names( + int id: @callable ref, + string name: string ref +); + +#keyset[id] +callable_self_params( + int id: @callable ref, + int self_param: @param_decl_or_none ref +); + +#keyset[id, index] +callable_params( + int id: @callable ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +#keyset[id] +callable_bodies( + int id: @callable ref, + int body: @brace_stmt_or_none ref +); + +#keyset[id, index] +callable_captures( + int id: @callable ref, + int index: int ref, + int capture: @captured_decl_or_none ref +); + +key_path_components( + unique int id: @key_path_component, + int kind: int ref, + int component_type: @type_or_none ref +); + +#keyset[id, index] +key_path_component_subscript_arguments( + int id: @key_path_component ref, + int index: int ref, + int subscript_argument: @argument_or_none ref +); + +#keyset[id] +key_path_component_tuple_indices( + int id: @key_path_component ref, + int tuple_index: int ref +); + +#keyset[id] +key_path_component_decl_refs( + int id: @key_path_component ref, + int decl_ref: @value_decl_or_none ref +); + +macro_roles( + unique int id: @macro_role, + int kind: int ref, + int macro_syntax: int ref +); + +#keyset[id, index] +macro_role_conformances( + int id: @macro_role ref, + int index: int ref, + int conformance: @expr_or_none ref +); + +#keyset[id, index] +macro_role_names( + int id: @macro_role ref, + int index: int ref, + string name: string ref +); + +unspecified_elements( + unique int id: @unspecified_element, + string property: string ref, + string error: string ref +); + +#keyset[id] +unspecified_element_parents( + int id: @unspecified_element ref, + int parent: @element ref +); + +#keyset[id] +unspecified_element_indices( + int id: @unspecified_element ref, + int index: int ref +); + +#keyset[id, index] +unspecified_element_children( + int id: @unspecified_element ref, + int index: int ref, + int child: @ast_node_or_none ref +); + +@decl = + @captured_decl +| @enum_case_decl +| @extension_decl +| @if_config_decl +| @import_decl +| @missing_member_decl +| @operator_decl +| @pattern_binding_decl +| @pound_diagnostic_decl +| @precedence_group_decl +| @top_level_code_decl +| @using_decl +| @value_decl +; + +#keyset[id] +decls( //dir=decl + int id: @decl ref, + int module: @module_decl_or_none ref +); + +#keyset[id, index] +decl_members( //dir=decl + int id: @decl ref, + int index: int ref, + int member: @decl_or_none ref +); + +@generic_context = + @extension_decl +| @function +| @generic_type_decl +| @macro_decl +| @subscript_decl +; + +#keyset[id, index] +generic_context_generic_type_params( //dir=decl + int id: @generic_context ref, + int index: int ref, + int generic_type_param: @generic_type_param_decl_or_none ref +); + +captured_decls( //dir=decl + unique int id: @captured_decl, + int decl: @value_decl_or_none ref +); + +#keyset[id] +captured_decl_is_direct( //dir=decl + int id: @captured_decl ref +); + +#keyset[id] +captured_decl_is_escaping( //dir=decl + int id: @captured_decl ref +); + +enum_case_decls( //dir=decl + unique int id: @enum_case_decl +); + +#keyset[id, index] +enum_case_decl_elements( //dir=decl + int id: @enum_case_decl ref, + int index: int ref, + int element: @enum_element_decl_or_none ref +); + +extension_decls( //dir=decl + unique int id: @extension_decl, + int extended_type_decl: @nominal_type_decl_or_none ref +); + +#keyset[id, index] +extension_decl_protocols( //dir=decl + int id: @extension_decl ref, + int index: int ref, + int protocol: @protocol_decl_or_none ref +); + +if_config_decls( //dir=decl + unique int id: @if_config_decl +); + +#keyset[id, index] +if_config_decl_active_elements( //dir=decl + int id: @if_config_decl ref, + int index: int ref, + int active_element: @ast_node_or_none ref +); + +import_decls( //dir=decl + unique int id: @import_decl +); + +#keyset[id] +import_decl_is_exported( //dir=decl + int id: @import_decl ref +); + +#keyset[id] +import_decl_imported_modules( //dir=decl + int id: @import_decl ref, + int imported_module: @module_decl_or_none ref +); + +#keyset[id, index] +import_decl_declarations( //dir=decl + int id: @import_decl ref, + int index: int ref, + int declaration: @value_decl_or_none ref +); + +missing_member_decls( //dir=decl + unique int id: @missing_member_decl, + string name: string ref +); + +@operator_decl = + @infix_operator_decl +| @postfix_operator_decl +| @prefix_operator_decl +; + +#keyset[id] +operator_decls( //dir=decl + int id: @operator_decl ref, + string name: string ref +); + +pattern_binding_decls( //dir=decl + unique int id: @pattern_binding_decl +); + +#keyset[id, index] +pattern_binding_decl_inits( //dir=decl + int id: @pattern_binding_decl ref, + int index: int ref, + int init: @expr_or_none ref +); + +#keyset[id, index] +pattern_binding_decl_patterns( //dir=decl + int id: @pattern_binding_decl ref, + int index: int ref, + int pattern: @pattern_or_none ref +); + +pound_diagnostic_decls( //dir=decl + unique int id: @pound_diagnostic_decl, + int kind: int ref, + int message: @string_literal_expr_or_none ref +); + +precedence_group_decls( //dir=decl + unique int id: @precedence_group_decl +); + +top_level_code_decls( //dir=decl + unique int id: @top_level_code_decl, + int body: @brace_stmt_or_none ref +); + +using_decls( //dir=decl + unique int id: @using_decl +); + +#keyset[id] +using_decl_is_main_actor( //dir=decl + int id: @using_decl ref +); + +#keyset[id] +using_decl_is_nonisolated( //dir=decl + int id: @using_decl ref +); + +@value_decl = + @abstract_storage_decl +| @enum_element_decl +| @function +| @macro_decl +| @type_decl +; + +#keyset[id] +value_decls( //dir=decl + int id: @value_decl ref, + int interface_type: @type_or_none ref +); + +@abstract_storage_decl = + @subscript_decl +| @var_decl +; + +#keyset[id, index] +abstract_storage_decl_accessors( //dir=decl + int id: @abstract_storage_decl ref, + int index: int ref, + int accessor: @accessor_or_none ref +); + +enum_element_decls( //dir=decl + unique int id: @enum_element_decl, + string name: string ref +); + +#keyset[id, index] +enum_element_decl_params( //dir=decl + int id: @enum_element_decl ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +@function = + @accessor_or_named_function +| @deinitializer +| @initializer +; + +infix_operator_decls( //dir=decl + unique int id: @infix_operator_decl +); + +#keyset[id] +infix_operator_decl_precedence_groups( //dir=decl + int id: @infix_operator_decl ref, + int precedence_group: @precedence_group_decl_or_none ref +); + +macro_decls( //dir=decl + unique int id: @macro_decl, + string name: string ref +); + +#keyset[id, index] +macro_decl_parameters( //dir=decl + int id: @macro_decl ref, + int index: int ref, + int parameter: @param_decl_or_none ref +); + +#keyset[id, index] +macro_decl_roles( //dir=decl + int id: @macro_decl ref, + int index: int ref, + int role: @macro_role_or_none ref +); + +postfix_operator_decls( //dir=decl + unique int id: @postfix_operator_decl +); + +prefix_operator_decls( //dir=decl + unique int id: @prefix_operator_decl +); + +@type_decl = + @abstract_type_param_decl +| @generic_type_decl +| @module_decl +; + +#keyset[id] +type_decls( //dir=decl + int id: @type_decl ref, + string name: string ref +); + +#keyset[id, index] +type_decl_inherited_types( //dir=decl + int id: @type_decl ref, + int index: int ref, + int inherited_type: @type_or_none ref +); + +@abstract_type_param_decl = + @associated_type_decl +| @generic_type_param_decl +; + +@accessor_or_named_function = + @accessor +| @named_function +; + +deinitializers( //dir=decl + unique int id: @deinitializer +); + +@generic_type_decl = + @nominal_type_decl +| @opaque_type_decl +| @type_alias_decl +; + +initializers( //dir=decl + unique int id: @initializer +); + +module_decls( //dir=decl + unique int id: @module_decl +); + +#keyset[id] +module_decl_is_builtin_module( //dir=decl + int id: @module_decl ref +); + +#keyset[id] +module_decl_is_system_module( //dir=decl + int id: @module_decl ref +); + +module_decl_imported_modules( //dir=decl + int id: @module_decl ref, + int imported_module: @module_decl_or_none ref +); + +module_decl_exported_modules( //dir=decl + int id: @module_decl ref, + int exported_module: @module_decl_or_none ref +); + +subscript_decls( //dir=decl + unique int id: @subscript_decl, + int element_type: @type_or_none ref +); + +#keyset[id, index] +subscript_decl_params( //dir=decl + int id: @subscript_decl ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +@var_decl = + @concrete_var_decl +| @param_decl +; + +#keyset[id] +var_decls( //dir=decl + int id: @var_decl ref, + string name: string ref, + int type_: @type_or_none ref +); + +#keyset[id] +var_decl_attached_property_wrapper_types( //dir=decl + int id: @var_decl ref, + int attached_property_wrapper_type: @type_or_none ref +); + +#keyset[id] +var_decl_parent_patterns( //dir=decl + int id: @var_decl ref, + int parent_pattern: @pattern_or_none ref +); + +#keyset[id] +var_decl_parent_initializers( //dir=decl + int id: @var_decl ref, + int parent_initializer: @expr_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_backing_var_bindings( //dir=decl + int id: @var_decl ref, + int property_wrapper_backing_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_backing_vars( //dir=decl + int id: @var_decl ref, + int property_wrapper_backing_var: @var_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_projection_var_bindings( //dir=decl + int id: @var_decl ref, + int property_wrapper_projection_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_projection_vars( //dir=decl + int id: @var_decl ref, + int property_wrapper_projection_var: @var_decl_or_none ref +); + +accessors( //dir=decl + unique int id: @accessor +); + +#keyset[id] +accessor_is_getter( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_setter( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_will_set( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_did_set( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_read( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_modify( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_unsafe_address( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_unsafe_mutable_address( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_distributed_get( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_read2( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_modify2( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_init( //dir=decl + int id: @accessor ref +); + +associated_type_decls( //dir=decl + unique int id: @associated_type_decl +); + +concrete_var_decls( //dir=decl + unique int id: @concrete_var_decl, + int introducer_int: int ref +); + +generic_type_param_decls( //dir=decl + unique int id: @generic_type_param_decl +); + +named_functions( //dir=decl + unique int id: @named_function +); + +@nominal_type_decl = + @class_decl +| @enum_decl +| @protocol_decl +| @struct_decl +; + +#keyset[id] +nominal_type_decls( //dir=decl + int id: @nominal_type_decl ref, + int type_: @type_or_none ref +); + +opaque_type_decls( //dir=decl + unique int id: @opaque_type_decl, + int naming_declaration: @value_decl_or_none ref +); + +#keyset[id, index] +opaque_type_decl_opaque_generic_params( //dir=decl + int id: @opaque_type_decl ref, + int index: int ref, + int opaque_generic_param: @generic_type_param_type_or_none ref +); + +param_decls( //dir=decl + unique int id: @param_decl +); + +#keyset[id] +param_decl_is_inout( //dir=decl + int id: @param_decl ref +); + +#keyset[id] +param_decl_property_wrapper_local_wrapped_var_bindings( //dir=decl + int id: @param_decl ref, + int property_wrapper_local_wrapped_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +param_decl_property_wrapper_local_wrapped_vars( //dir=decl + int id: @param_decl ref, + int property_wrapper_local_wrapped_var: @var_decl_or_none ref +); + +type_alias_decls( //dir=decl + unique int id: @type_alias_decl, + int aliased_type: @type_or_none ref +); + +class_decls( //dir=decl + unique int id: @class_decl +); + +enum_decls( //dir=decl + unique int id: @enum_decl +); + +protocol_decls( //dir=decl + unique int id: @protocol_decl +); + +struct_decls( //dir=decl + unique int id: @struct_decl +); + +arguments( //dir=expr + unique int id: @argument, + string label: string ref, + int expr: @expr_or_none ref +); + +@expr = + @any_try_expr +| @applied_property_wrapper_expr +| @apply_expr +| @assign_expr +| @bind_optional_expr +| @capture_list_expr +| @closure_expr +| @collection_expr +| @consume_expr +| @copy_expr +| @current_context_isolation_expr +| @decl_ref_expr +| @default_argument_expr +| @discard_assignment_expr +| @dot_syntax_base_ignored_expr +| @dynamic_type_expr +| @enum_is_case_expr +| @error_expr +| @explicit_cast_expr +| @extract_function_isolation_expr +| @force_value_expr +| @identity_expr +| @if_expr +| @implicit_conversion_expr +| @in_out_expr +| @key_path_application_expr +| @key_path_dot_expr +| @key_path_expr +| @lazy_initialization_expr +| @literal_expr +| @lookup_expr +| @make_temporarily_escapable_expr +| @materialize_pack_expr +| @obj_c_selector_expr +| @one_way_expr +| @opaque_value_expr +| @open_existential_expr +| @optional_evaluation_expr +| @other_initializer_ref_expr +| @overloaded_decl_ref_expr +| @pack_element_expr +| @pack_expansion_expr +| @property_wrapper_value_placeholder_expr +| @rebind_self_in_initializer_expr +| @sequence_expr +| @single_value_stmt_expr +| @super_ref_expr +| @tap_expr +| @tuple_element_expr +| @tuple_expr +| @type_expr +| @type_value_expr +| @unresolved_decl_ref_expr +| @unresolved_dot_expr +| @unresolved_member_expr +| @unresolved_pattern_expr +| @unresolved_specialize_expr +| @vararg_expansion_expr +; + +#keyset[id] +expr_types( //dir=expr + int id: @expr ref, + int type_: @type_or_none ref +); + +@any_try_expr = + @force_try_expr +| @optional_try_expr +| @try_expr +; + +#keyset[id] +any_try_exprs( //dir=expr + int id: @any_try_expr ref, + int sub_expr: @expr_or_none ref +); + +applied_property_wrapper_exprs( //dir=expr + unique int id: @applied_property_wrapper_expr, + int kind: int ref, + int value: @expr_or_none ref, + int param: @param_decl_or_none ref +); + +@apply_expr = + @binary_expr +| @call_expr +| @postfix_unary_expr +| @prefix_unary_expr +| @self_apply_expr +; + +#keyset[id] +apply_exprs( //dir=expr + int id: @apply_expr ref, + int function: @expr_or_none ref +); + +#keyset[id, index] +apply_expr_arguments( //dir=expr + int id: @apply_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +assign_exprs( //dir=expr + unique int id: @assign_expr, + int dest: @expr_or_none ref, + int source: @expr_or_none ref +); + +bind_optional_exprs( //dir=expr + unique int id: @bind_optional_expr, + int sub_expr: @expr_or_none ref +); + +capture_list_exprs( //dir=expr + unique int id: @capture_list_expr, + int closure_body: @closure_expr_or_none ref +); + +#keyset[id, index] +capture_list_expr_binding_decls( //dir=expr + int id: @capture_list_expr ref, + int index: int ref, + int binding_decl: @pattern_binding_decl_or_none ref +); + +@closure_expr = + @auto_closure_expr +| @explicit_closure_expr +; + +@collection_expr = + @array_expr +| @dictionary_expr +; + +consume_exprs( //dir=expr + unique int id: @consume_expr, + int sub_expr: @expr_or_none ref +); + +copy_exprs( //dir=expr + unique int id: @copy_expr, + int sub_expr: @expr_or_none ref +); + +current_context_isolation_exprs( //dir=expr + unique int id: @current_context_isolation_expr, + int actor: @expr_or_none ref +); + +decl_ref_exprs( //dir=expr + unique int id: @decl_ref_expr, + int decl: @decl_or_none ref +); + +#keyset[id, index] +decl_ref_expr_replacement_types( //dir=expr + int id: @decl_ref_expr ref, + int index: int ref, + int replacement_type: @type_or_none ref +); + +#keyset[id] +decl_ref_expr_has_direct_to_storage_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_ordinary_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_distributed_thunk_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +default_argument_exprs( //dir=expr + unique int id: @default_argument_expr, + int param_decl: @param_decl_or_none ref, + int param_index: int ref +); + +#keyset[id] +default_argument_expr_caller_side_defaults( //dir=expr + int id: @default_argument_expr ref, + int caller_side_default: @expr_or_none ref +); + +discard_assignment_exprs( //dir=expr + unique int id: @discard_assignment_expr +); + +dot_syntax_base_ignored_exprs( //dir=expr + unique int id: @dot_syntax_base_ignored_expr, + int qualifier: @expr_or_none ref, + int sub_expr: @expr_or_none ref +); + +dynamic_type_exprs( //dir=expr + unique int id: @dynamic_type_expr, + int base: @expr_or_none ref +); + +enum_is_case_exprs( //dir=expr + unique int id: @enum_is_case_expr, + int sub_expr: @expr_or_none ref, + int element: @enum_element_decl_or_none ref +); + +error_exprs( //dir=expr + unique int id: @error_expr +); + +@explicit_cast_expr = + @checked_cast_expr +| @coerce_expr +; + +#keyset[id] +explicit_cast_exprs( //dir=expr + int id: @explicit_cast_expr ref, + int sub_expr: @expr_or_none ref +); + +extract_function_isolation_exprs( //dir=expr + unique int id: @extract_function_isolation_expr, + int function_expr: @expr_or_none ref +); + +force_value_exprs( //dir=expr + unique int id: @force_value_expr, + int sub_expr: @expr_or_none ref +); + +@identity_expr = + @await_expr +| @borrow_expr +| @dot_self_expr +| @paren_expr +| @unresolved_member_chain_result_expr +| @unsafe_expr +; + +#keyset[id] +identity_exprs( //dir=expr + int id: @identity_expr ref, + int sub_expr: @expr_or_none ref +); + +if_exprs( //dir=expr + unique int id: @if_expr, + int condition: @expr_or_none ref, + int then_expr: @expr_or_none ref, + int else_expr: @expr_or_none ref +); + +@implicit_conversion_expr = + @abi_safe_conversion_expr +| @actor_isolation_erasure_expr +| @any_hashable_erasure_expr +| @archetype_to_super_expr +| @array_to_pointer_expr +| @bridge_from_obj_c_expr +| @bridge_to_obj_c_expr +| @class_metatype_to_object_expr +| @collection_upcast_conversion_expr +| @conditional_bridge_from_obj_c_expr +| @covariant_function_conversion_expr +| @covariant_return_conversion_expr +| @derived_to_base_expr +| @destructure_tuple_expr +| @differentiable_function_expr +| @differentiable_function_extract_original_expr +| @erasure_expr +| @existential_metatype_to_object_expr +| @foreign_object_conversion_expr +| @function_conversion_expr +| @in_out_to_pointer_expr +| @inject_into_optional_expr +| @linear_function_expr +| @linear_function_extract_original_expr +| @linear_to_differentiable_function_expr +| @load_expr +| @metatype_conversion_expr +| @pointer_to_pointer_expr +| @protocol_metatype_to_object_expr +| @string_to_pointer_expr +| @underlying_to_opaque_expr +| @unevaluated_instance_expr +| @unreachable_expr +| @unresolved_type_conversion_expr +| @unsafe_cast_expr +; + +#keyset[id] +implicit_conversion_exprs( //dir=expr + int id: @implicit_conversion_expr ref, + int sub_expr: @expr_or_none ref +); + +in_out_exprs( //dir=expr + unique int id: @in_out_expr, + int sub_expr: @expr_or_none ref +); + +key_path_application_exprs( //dir=expr + unique int id: @key_path_application_expr, + int base: @expr_or_none ref, + int key_path: @expr_or_none ref +); + +key_path_dot_exprs( //dir=expr + unique int id: @key_path_dot_expr +); + +key_path_exprs( //dir=expr + unique int id: @key_path_expr +); + +#keyset[id] +key_path_expr_roots( //dir=expr + int id: @key_path_expr ref, + int root: @type_repr_or_none ref +); + +#keyset[id, index] +key_path_expr_components( //dir=expr + int id: @key_path_expr ref, + int index: int ref, + int component: @key_path_component_or_none ref +); + +lazy_initialization_exprs( //dir=expr + unique int id: @lazy_initialization_expr, + int sub_expr: @expr_or_none ref +); + +@literal_expr = + @builtin_literal_expr +| @interpolated_string_literal_expr +| @nil_literal_expr +| @object_literal_expr +| @regex_literal_expr +; + +@lookup_expr = + @dynamic_lookup_expr +| @member_ref_expr +| @subscript_expr +; + +#keyset[id] +lookup_exprs( //dir=expr + int id: @lookup_expr ref, + int base: @expr_or_none ref +); + +#keyset[id] +lookup_expr_members( //dir=expr + int id: @lookup_expr ref, + int member: @decl_or_none ref +); + +make_temporarily_escapable_exprs( //dir=expr + unique int id: @make_temporarily_escapable_expr, + int escaping_closure: @opaque_value_expr_or_none ref, + int nonescaping_closure: @expr_or_none ref, + int sub_expr: @expr_or_none ref +); + +materialize_pack_exprs( //dir=expr + unique int id: @materialize_pack_expr, + int sub_expr: @expr_or_none ref +); + +obj_c_selector_exprs( //dir=expr + unique int id: @obj_c_selector_expr, + int sub_expr: @expr_or_none ref, + int method: @function_or_none ref +); + +one_way_exprs( //dir=expr + unique int id: @one_way_expr, + int sub_expr: @expr_or_none ref +); + +opaque_value_exprs( //dir=expr + unique int id: @opaque_value_expr +); + +open_existential_exprs( //dir=expr + unique int id: @open_existential_expr, + int sub_expr: @expr_or_none ref, + int existential: @expr_or_none ref, + int opaque_expr: @opaque_value_expr_or_none ref +); + +optional_evaluation_exprs( //dir=expr + unique int id: @optional_evaluation_expr, + int sub_expr: @expr_or_none ref +); + +other_initializer_ref_exprs( //dir=expr + unique int id: @other_initializer_ref_expr, + int initializer: @initializer_or_none ref +); + +overloaded_decl_ref_exprs( //dir=expr + unique int id: @overloaded_decl_ref_expr +); + +#keyset[id, index] +overloaded_decl_ref_expr_possible_declarations( //dir=expr + int id: @overloaded_decl_ref_expr ref, + int index: int ref, + int possible_declaration: @value_decl_or_none ref +); + +pack_element_exprs( //dir=expr + unique int id: @pack_element_expr, + int sub_expr: @expr_or_none ref +); + +pack_expansion_exprs( //dir=expr + unique int id: @pack_expansion_expr, + int pattern_expr: @expr_or_none ref +); + +property_wrapper_value_placeholder_exprs( //dir=expr + unique int id: @property_wrapper_value_placeholder_expr, + int placeholder: @opaque_value_expr_or_none ref +); + +#keyset[id] +property_wrapper_value_placeholder_expr_wrapped_values( //dir=expr + int id: @property_wrapper_value_placeholder_expr ref, + int wrapped_value: @expr_or_none ref +); + +rebind_self_in_initializer_exprs( //dir=expr + unique int id: @rebind_self_in_initializer_expr, + int sub_expr: @expr_or_none ref, + int self: @var_decl_or_none ref +); + +sequence_exprs( //dir=expr + unique int id: @sequence_expr +); + +#keyset[id, index] +sequence_expr_elements( //dir=expr + int id: @sequence_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +single_value_stmt_exprs( //dir=expr + unique int id: @single_value_stmt_expr, + int stmt: @stmt_or_none ref +); + +super_ref_exprs( //dir=expr + unique int id: @super_ref_expr, + int self: @var_decl_or_none ref +); + +tap_exprs( //dir=expr + unique int id: @tap_expr, + int body: @brace_stmt_or_none ref, + int var: @var_decl_or_none ref +); + +#keyset[id] +tap_expr_sub_exprs( //dir=expr + int id: @tap_expr ref, + int sub_expr: @expr_or_none ref +); + +tuple_element_exprs( //dir=expr + unique int id: @tuple_element_expr, + int sub_expr: @expr_or_none ref, + int index: int ref +); + +tuple_exprs( //dir=expr + unique int id: @tuple_expr +); + +#keyset[id, index] +tuple_expr_elements( //dir=expr + int id: @tuple_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +type_exprs( //dir=expr + unique int id: @type_expr +); + +#keyset[id] +type_expr_type_reprs( //dir=expr + int id: @type_expr ref, + int type_repr: @type_repr_or_none ref +); + +type_value_exprs( //dir=expr + unique int id: @type_value_expr, + int type_repr: @type_repr_or_none ref +); + +unresolved_decl_ref_exprs( //dir=expr + unique int id: @unresolved_decl_ref_expr +); + +#keyset[id] +unresolved_decl_ref_expr_names( //dir=expr + int id: @unresolved_decl_ref_expr ref, + string name: string ref +); + +unresolved_dot_exprs( //dir=expr + unique int id: @unresolved_dot_expr, + int base: @expr_or_none ref, + string name: string ref +); + +unresolved_member_exprs( //dir=expr + unique int id: @unresolved_member_expr, + string name: string ref +); + +unresolved_pattern_exprs( //dir=expr + unique int id: @unresolved_pattern_expr, + int sub_pattern: @pattern_or_none ref +); + +unresolved_specialize_exprs( //dir=expr + unique int id: @unresolved_specialize_expr, + int sub_expr: @expr_or_none ref +); + +vararg_expansion_exprs( //dir=expr + unique int id: @vararg_expansion_expr, + int sub_expr: @expr_or_none ref +); + +abi_safe_conversion_exprs( //dir=expr + unique int id: @abi_safe_conversion_expr +); + +actor_isolation_erasure_exprs( //dir=expr + unique int id: @actor_isolation_erasure_expr +); + +any_hashable_erasure_exprs( //dir=expr + unique int id: @any_hashable_erasure_expr +); + +archetype_to_super_exprs( //dir=expr + unique int id: @archetype_to_super_expr +); + +array_exprs( //dir=expr + unique int id: @array_expr +); + +#keyset[id, index] +array_expr_elements( //dir=expr + int id: @array_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +array_to_pointer_exprs( //dir=expr + unique int id: @array_to_pointer_expr +); + +auto_closure_exprs( //dir=expr + unique int id: @auto_closure_expr +); + +await_exprs( //dir=expr + unique int id: @await_expr +); + +binary_exprs( //dir=expr + unique int id: @binary_expr +); + +borrow_exprs( //dir=expr + unique int id: @borrow_expr +); + +bridge_from_obj_c_exprs( //dir=expr + unique int id: @bridge_from_obj_c_expr +); + +bridge_to_obj_c_exprs( //dir=expr + unique int id: @bridge_to_obj_c_expr +); + +@builtin_literal_expr = + @boolean_literal_expr +| @magic_identifier_literal_expr +| @number_literal_expr +| @string_literal_expr +; + +call_exprs( //dir=expr + unique int id: @call_expr +); + +@checked_cast_expr = + @conditional_checked_cast_expr +| @forced_checked_cast_expr +| @is_expr +; + +class_metatype_to_object_exprs( //dir=expr + unique int id: @class_metatype_to_object_expr +); + +coerce_exprs( //dir=expr + unique int id: @coerce_expr +); + +collection_upcast_conversion_exprs( //dir=expr + unique int id: @collection_upcast_conversion_expr +); + +conditional_bridge_from_obj_c_exprs( //dir=expr + unique int id: @conditional_bridge_from_obj_c_expr +); + +covariant_function_conversion_exprs( //dir=expr + unique int id: @covariant_function_conversion_expr +); + +covariant_return_conversion_exprs( //dir=expr + unique int id: @covariant_return_conversion_expr +); + +derived_to_base_exprs( //dir=expr + unique int id: @derived_to_base_expr +); + +destructure_tuple_exprs( //dir=expr + unique int id: @destructure_tuple_expr +); + +dictionary_exprs( //dir=expr + unique int id: @dictionary_expr +); + +#keyset[id, index] +dictionary_expr_elements( //dir=expr + int id: @dictionary_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +differentiable_function_exprs( //dir=expr + unique int id: @differentiable_function_expr +); + +differentiable_function_extract_original_exprs( //dir=expr + unique int id: @differentiable_function_extract_original_expr +); + +dot_self_exprs( //dir=expr + unique int id: @dot_self_expr +); + +@dynamic_lookup_expr = + @dynamic_member_ref_expr +| @dynamic_subscript_expr +; + +erasure_exprs( //dir=expr + unique int id: @erasure_expr +); + +existential_metatype_to_object_exprs( //dir=expr + unique int id: @existential_metatype_to_object_expr +); + +explicit_closure_exprs( //dir=expr + unique int id: @explicit_closure_expr +); + +force_try_exprs( //dir=expr + unique int id: @force_try_expr +); + +foreign_object_conversion_exprs( //dir=expr + unique int id: @foreign_object_conversion_expr +); + +function_conversion_exprs( //dir=expr + unique int id: @function_conversion_expr +); + +in_out_to_pointer_exprs( //dir=expr + unique int id: @in_out_to_pointer_expr +); + +inject_into_optional_exprs( //dir=expr + unique int id: @inject_into_optional_expr +); + +interpolated_string_literal_exprs( //dir=expr + unique int id: @interpolated_string_literal_expr +); + +#keyset[id] +interpolated_string_literal_expr_interpolation_exprs( //dir=expr + int id: @interpolated_string_literal_expr ref, + int interpolation_expr: @opaque_value_expr_or_none ref +); + +#keyset[id] +interpolated_string_literal_expr_appending_exprs( //dir=expr + int id: @interpolated_string_literal_expr ref, + int appending_expr: @tap_expr_or_none ref +); + +linear_function_exprs( //dir=expr + unique int id: @linear_function_expr +); + +linear_function_extract_original_exprs( //dir=expr + unique int id: @linear_function_extract_original_expr +); + +linear_to_differentiable_function_exprs( //dir=expr + unique int id: @linear_to_differentiable_function_expr +); + +load_exprs( //dir=expr + unique int id: @load_expr +); + +member_ref_exprs( //dir=expr + unique int id: @member_ref_expr +); + +#keyset[id] +member_ref_expr_has_direct_to_storage_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_ordinary_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_distributed_thunk_semantics( //dir=expr + int id: @member_ref_expr ref +); + +metatype_conversion_exprs( //dir=expr + unique int id: @metatype_conversion_expr +); + +nil_literal_exprs( //dir=expr + unique int id: @nil_literal_expr +); + +object_literal_exprs( //dir=expr + unique int id: @object_literal_expr, + int kind: int ref +); + +#keyset[id, index] +object_literal_expr_arguments( //dir=expr + int id: @object_literal_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +optional_try_exprs( //dir=expr + unique int id: @optional_try_expr +); + +paren_exprs( //dir=expr + unique int id: @paren_expr +); + +pointer_to_pointer_exprs( //dir=expr + unique int id: @pointer_to_pointer_expr +); + +postfix_unary_exprs( //dir=expr + unique int id: @postfix_unary_expr +); + +prefix_unary_exprs( //dir=expr + unique int id: @prefix_unary_expr +); + +protocol_metatype_to_object_exprs( //dir=expr + unique int id: @protocol_metatype_to_object_expr +); + +regex_literal_exprs( //dir=expr + unique int id: @regex_literal_expr, + string pattern: string ref, + int version: int ref +); + +@self_apply_expr = + @dot_syntax_call_expr +| @initializer_ref_call_expr +; + +#keyset[id] +self_apply_exprs( //dir=expr + int id: @self_apply_expr ref, + int base: @expr_or_none ref +); + +string_to_pointer_exprs( //dir=expr + unique int id: @string_to_pointer_expr +); + +subscript_exprs( //dir=expr + unique int id: @subscript_expr +); + +#keyset[id, index] +subscript_expr_arguments( //dir=expr + int id: @subscript_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +#keyset[id] +subscript_expr_has_direct_to_storage_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_ordinary_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_distributed_thunk_semantics( //dir=expr + int id: @subscript_expr ref +); + +try_exprs( //dir=expr + unique int id: @try_expr +); + +underlying_to_opaque_exprs( //dir=expr + unique int id: @underlying_to_opaque_expr +); + +unevaluated_instance_exprs( //dir=expr + unique int id: @unevaluated_instance_expr +); + +unreachable_exprs( //dir=expr + unique int id: @unreachable_expr +); + +unresolved_member_chain_result_exprs( //dir=expr + unique int id: @unresolved_member_chain_result_expr +); + +unresolved_type_conversion_exprs( //dir=expr + unique int id: @unresolved_type_conversion_expr +); + +unsafe_cast_exprs( //dir=expr + unique int id: @unsafe_cast_expr +); + +unsafe_exprs( //dir=expr + unique int id: @unsafe_expr +); + +boolean_literal_exprs( //dir=expr + unique int id: @boolean_literal_expr, + boolean value: boolean ref +); + +conditional_checked_cast_exprs( //dir=expr + unique int id: @conditional_checked_cast_expr +); + +dot_syntax_call_exprs( //dir=expr + unique int id: @dot_syntax_call_expr +); + +dynamic_member_ref_exprs( //dir=expr + unique int id: @dynamic_member_ref_expr +); + +dynamic_subscript_exprs( //dir=expr + unique int id: @dynamic_subscript_expr +); + +forced_checked_cast_exprs( //dir=expr + unique int id: @forced_checked_cast_expr +); + +initializer_ref_call_exprs( //dir=expr + unique int id: @initializer_ref_call_expr +); + +is_exprs( //dir=expr + unique int id: @is_expr +); + +magic_identifier_literal_exprs( //dir=expr + unique int id: @magic_identifier_literal_expr, + string kind: string ref +); + +@number_literal_expr = + @float_literal_expr +| @integer_literal_expr +; + +string_literal_exprs( //dir=expr + unique int id: @string_literal_expr, + string value: string ref +); + +float_literal_exprs( //dir=expr + unique int id: @float_literal_expr, + string string_value: string ref +); + +integer_literal_exprs( //dir=expr + unique int id: @integer_literal_expr, + string string_value: string ref +); + +@pattern = + @any_pattern +| @binding_pattern +| @bool_pattern +| @enum_element_pattern +| @expr_pattern +| @is_pattern +| @named_pattern +| @optional_some_pattern +| @paren_pattern +| @tuple_pattern +| @typed_pattern +; + +#keyset[id] +pattern_types( //dir=pattern + int id: @pattern ref, + int type_: @type_or_none ref +); + +any_patterns( //dir=pattern + unique int id: @any_pattern +); + +binding_patterns( //dir=pattern + unique int id: @binding_pattern, + int sub_pattern: @pattern_or_none ref +); + +bool_patterns( //dir=pattern + unique int id: @bool_pattern, + boolean value: boolean ref +); + +enum_element_patterns( //dir=pattern + unique int id: @enum_element_pattern, + int element: @enum_element_decl_or_none ref +); + +#keyset[id] +enum_element_pattern_sub_patterns( //dir=pattern + int id: @enum_element_pattern ref, + int sub_pattern: @pattern_or_none ref +); + +expr_patterns( //dir=pattern + unique int id: @expr_pattern, + int sub_expr: @expr_or_none ref +); + +is_patterns( //dir=pattern + unique int id: @is_pattern +); + +#keyset[id] +is_pattern_cast_type_reprs( //dir=pattern + int id: @is_pattern ref, + int cast_type_repr: @type_repr_or_none ref +); + +#keyset[id] +is_pattern_sub_patterns( //dir=pattern + int id: @is_pattern ref, + int sub_pattern: @pattern_or_none ref +); + +named_patterns( //dir=pattern + unique int id: @named_pattern, + int var_decl: @var_decl_or_none ref +); + +optional_some_patterns( //dir=pattern + unique int id: @optional_some_pattern, + int sub_pattern: @pattern_or_none ref +); + +paren_patterns( //dir=pattern + unique int id: @paren_pattern, + int sub_pattern: @pattern_or_none ref +); + +tuple_patterns( //dir=pattern + unique int id: @tuple_pattern +); + +#keyset[id, index] +tuple_pattern_elements( //dir=pattern + int id: @tuple_pattern ref, + int index: int ref, + int element: @pattern_or_none ref +); + +typed_patterns( //dir=pattern + unique int id: @typed_pattern, + int sub_pattern: @pattern_or_none ref +); + +#keyset[id] +typed_pattern_type_reprs( //dir=pattern + int id: @typed_pattern ref, + int type_repr: @type_repr_or_none ref +); + +case_label_items( //dir=stmt + unique int id: @case_label_item, + int pattern: @pattern_or_none ref +); + +#keyset[id] +case_label_item_guards( //dir=stmt + int id: @case_label_item ref, + int guard: @expr_or_none ref +); + +condition_elements( //dir=stmt + unique int id: @condition_element +); + +#keyset[id] +condition_element_booleans( //dir=stmt + int id: @condition_element ref, + int boolean_: @expr_or_none ref +); + +#keyset[id] +condition_element_patterns( //dir=stmt + int id: @condition_element ref, + int pattern: @pattern_or_none ref +); + +#keyset[id] +condition_element_initializers( //dir=stmt + int id: @condition_element ref, + int initializer: @expr_or_none ref +); + +#keyset[id] +condition_element_availabilities( //dir=stmt + int id: @condition_element ref, + int availability: @availability_info_or_none ref +); + +@stmt = + @brace_stmt +| @break_stmt +| @case_stmt +| @continue_stmt +| @defer_stmt +| @discard_stmt +| @fail_stmt +| @fallthrough_stmt +| @labeled_stmt +| @pound_assert_stmt +| @return_stmt +| @then_stmt +| @throw_stmt +| @yield_stmt +; + +stmt_conditions( //dir=stmt + unique int id: @stmt_condition +); + +#keyset[id, index] +stmt_condition_elements( //dir=stmt + int id: @stmt_condition ref, + int index: int ref, + int element: @condition_element_or_none ref +); + +brace_stmts( //dir=stmt + unique int id: @brace_stmt +); + +#keyset[id, index] +brace_stmt_elements( //dir=stmt + int id: @brace_stmt ref, + int index: int ref, + int element: @ast_node_or_none ref +); + +break_stmts( //dir=stmt + unique int id: @break_stmt +); + +#keyset[id] +break_stmt_target_names( //dir=stmt + int id: @break_stmt ref, + string target_name: string ref +); + +#keyset[id] +break_stmt_targets( //dir=stmt + int id: @break_stmt ref, + int target: @stmt_or_none ref +); + +case_stmts( //dir=stmt + unique int id: @case_stmt, + int body: @stmt_or_none ref +); + +#keyset[id, index] +case_stmt_labels( //dir=stmt + int id: @case_stmt ref, + int index: int ref, + int label: @case_label_item_or_none ref +); + +#keyset[id, index] +case_stmt_variables( //dir=stmt + int id: @case_stmt ref, + int index: int ref, + int variable: @var_decl_or_none ref +); + +continue_stmts( //dir=stmt + unique int id: @continue_stmt +); + +#keyset[id] +continue_stmt_target_names( //dir=stmt + int id: @continue_stmt ref, + string target_name: string ref +); + +#keyset[id] +continue_stmt_targets( //dir=stmt + int id: @continue_stmt ref, + int target: @stmt_or_none ref +); + +defer_stmts( //dir=stmt + unique int id: @defer_stmt, + int body: @brace_stmt_or_none ref +); + +discard_stmts( //dir=stmt + unique int id: @discard_stmt, + int sub_expr: @expr_or_none ref +); + +fail_stmts( //dir=stmt + unique int id: @fail_stmt +); + +fallthrough_stmts( //dir=stmt + unique int id: @fallthrough_stmt, + int fallthrough_source: @case_stmt_or_none ref, + int fallthrough_dest: @case_stmt_or_none ref +); + +@labeled_stmt = + @do_catch_stmt +| @do_stmt +| @for_each_stmt +| @labeled_conditional_stmt +| @repeat_while_stmt +| @switch_stmt +; + +#keyset[id] +labeled_stmt_labels( //dir=stmt + int id: @labeled_stmt ref, + string label: string ref +); + +pound_assert_stmts( //dir=stmt + unique int id: @pound_assert_stmt, + int condition: @expr_or_none ref, + string message: string ref +); + +return_stmts( //dir=stmt + unique int id: @return_stmt +); + +#keyset[id] +return_stmt_results( //dir=stmt + int id: @return_stmt ref, + int result: @expr_or_none ref +); + +then_stmts( //dir=stmt + unique int id: @then_stmt, + int result: @expr_or_none ref +); + +throw_stmts( //dir=stmt + unique int id: @throw_stmt, + int sub_expr: @expr_or_none ref +); + +yield_stmts( //dir=stmt + unique int id: @yield_stmt +); + +#keyset[id, index] +yield_stmt_results( //dir=stmt + int id: @yield_stmt ref, + int index: int ref, + int result: @expr_or_none ref +); + +do_catch_stmts( //dir=stmt + unique int id: @do_catch_stmt, + int body: @stmt_or_none ref +); + +#keyset[id, index] +do_catch_stmt_catches( //dir=stmt + int id: @do_catch_stmt ref, + int index: int ref, + int catch: @case_stmt_or_none ref +); + +do_stmts( //dir=stmt + unique int id: @do_stmt, + int body: @brace_stmt_or_none ref +); + +for_each_stmts( //dir=stmt + unique int id: @for_each_stmt, + int pattern: @pattern_or_none ref, + int body: @brace_stmt_or_none ref +); + +#keyset[id, index] +for_each_stmt_variables( //dir=stmt + int id: @for_each_stmt ref, + int index: int ref, + int variable: @var_decl_or_none ref +); + +#keyset[id] +for_each_stmt_wheres( //dir=stmt + int id: @for_each_stmt ref, + int where: @expr_or_none ref +); + +#keyset[id] +for_each_stmt_iterator_vars( //dir=stmt + int id: @for_each_stmt ref, + int iteratorVar: @pattern_binding_decl_or_none ref +); + +#keyset[id] +for_each_stmt_next_calls( //dir=stmt + int id: @for_each_stmt ref, + int nextCall: @expr_or_none ref +); + +@labeled_conditional_stmt = + @guard_stmt +| @if_stmt +| @while_stmt +; + +#keyset[id] +labeled_conditional_stmts( //dir=stmt + int id: @labeled_conditional_stmt ref, + int condition: @stmt_condition_or_none ref +); + +repeat_while_stmts( //dir=stmt + unique int id: @repeat_while_stmt, + int condition: @expr_or_none ref, + int body: @stmt_or_none ref +); + +switch_stmts( //dir=stmt + unique int id: @switch_stmt, + int expr: @expr_or_none ref +); + +#keyset[id, index] +switch_stmt_cases( //dir=stmt + int id: @switch_stmt ref, + int index: int ref, + int case_: @case_stmt_or_none ref +); + +guard_stmts( //dir=stmt + unique int id: @guard_stmt, + int body: @brace_stmt_or_none ref +); + +if_stmts( //dir=stmt + unique int id: @if_stmt, + int then: @stmt_or_none ref +); + +#keyset[id] +if_stmt_elses( //dir=stmt + int id: @if_stmt ref, + int else: @stmt_or_none ref +); + +while_stmts( //dir=stmt + unique int id: @while_stmt, + int body: @stmt_or_none ref +); + +@type = + @any_function_type +| @any_generic_type +| @any_metatype_type +| @builtin_type +| @dependent_member_type +| @dynamic_self_type +| @error_type +| @existential_type +| @in_out_type +| @integer_type +| @l_value_type +| @module_type +| @pack_element_type +| @pack_expansion_type +| @pack_type +| @parameterized_protocol_type +| @protocol_composition_type +| @reference_storage_type +| @substitutable_type +| @sugar_type +| @tuple_type +| @unresolved_type +; + +#keyset[id] +types( //dir=type + int id: @type ref, + string name: string ref, + int canonical_type: @type_or_none ref +); + +type_reprs( //dir=type + unique int id: @type_repr, + int type_: @type_or_none ref +); + +@any_function_type = + @function_type +| @generic_function_type +; + +#keyset[id] +any_function_types( //dir=type + int id: @any_function_type ref, + int result: @type_or_none ref +); + +#keyset[id, index] +any_function_type_param_types( //dir=type + int id: @any_function_type ref, + int index: int ref, + int param_type: @type_or_none ref +); + +#keyset[id] +any_function_type_is_throwing( //dir=type + int id: @any_function_type ref +); + +#keyset[id] +any_function_type_is_async( //dir=type + int id: @any_function_type ref +); + +@any_generic_type = + @nominal_or_bound_generic_nominal_type +| @unbound_generic_type +; + +#keyset[id] +any_generic_types( //dir=type + int id: @any_generic_type ref, + int declaration: @generic_type_decl_or_none ref +); + +#keyset[id] +any_generic_type_parents( //dir=type + int id: @any_generic_type ref, + int parent: @type_or_none ref +); + +@any_metatype_type = + @existential_metatype_type +| @metatype_type +; + +@builtin_type = + @any_builtin_integer_type +| @builtin_bridge_object_type +| @builtin_default_actor_storage_type +| @builtin_executor_type +| @builtin_fixed_array_type +| @builtin_float_type +| @builtin_job_type +| @builtin_native_object_type +| @builtin_raw_pointer_type +| @builtin_raw_unsafe_continuation_type +| @builtin_unsafe_value_buffer_type +| @builtin_vector_type +; + +dependent_member_types( //dir=type + unique int id: @dependent_member_type, + int base_type: @type_or_none ref, + int associated_type_decl: @associated_type_decl_or_none ref +); + +dynamic_self_types( //dir=type + unique int id: @dynamic_self_type, + int static_self_type: @type_or_none ref +); + +error_types( //dir=type + unique int id: @error_type +); + +existential_types( //dir=type + unique int id: @existential_type, + int constraint: @type_or_none ref +); + +in_out_types( //dir=type + unique int id: @in_out_type, + int object_type: @type_or_none ref +); + +integer_types( //dir=type + unique int id: @integer_type, + string value: string ref +); + +l_value_types( //dir=type + unique int id: @l_value_type, + int object_type: @type_or_none ref +); + +module_types( //dir=type + unique int id: @module_type, + int module: @module_decl_or_none ref +); + +pack_element_types( //dir=type + unique int id: @pack_element_type, + int pack_type: @type_or_none ref +); + +pack_expansion_types( //dir=type + unique int id: @pack_expansion_type, + int pattern_type: @type_or_none ref, + int count_type: @type_or_none ref +); + +pack_types( //dir=type + unique int id: @pack_type +); + +#keyset[id, index] +pack_type_elements( //dir=type + int id: @pack_type ref, + int index: int ref, + int element: @type_or_none ref +); + +parameterized_protocol_types( //dir=type + unique int id: @parameterized_protocol_type, + int base: @protocol_type_or_none ref +); + +#keyset[id, index] +parameterized_protocol_type_args( //dir=type + int id: @parameterized_protocol_type ref, + int index: int ref, + int arg: @type_or_none ref +); + +protocol_composition_types( //dir=type + unique int id: @protocol_composition_type +); + +#keyset[id, index] +protocol_composition_type_members( //dir=type + int id: @protocol_composition_type ref, + int index: int ref, + int member: @type_or_none ref +); + +@reference_storage_type = + @unmanaged_storage_type +| @unowned_storage_type +| @weak_storage_type +; + +#keyset[id] +reference_storage_types( //dir=type + int id: @reference_storage_type ref, + int referent_type: @type_or_none ref +); + +@substitutable_type = + @archetype_type +| @generic_type_param_type +; + +@sugar_type = + @paren_type +| @syntax_sugar_type +| @type_alias_type +; + +tuple_types( //dir=type + unique int id: @tuple_type +); + +#keyset[id, index] +tuple_type_types( //dir=type + int id: @tuple_type ref, + int index: int ref, + int type_: @type_or_none ref +); + +#keyset[id, index] +tuple_type_names( //dir=type + int id: @tuple_type ref, + int index: int ref, + string name: string ref +); + +unresolved_types( //dir=type + unique int id: @unresolved_type +); + +@any_builtin_integer_type = + @builtin_integer_literal_type +| @builtin_integer_type +; + +@archetype_type = + @local_archetype_type +| @opaque_type_archetype_type +| @pack_archetype_type +| @primary_archetype_type +; + +#keyset[id] +archetype_types( //dir=type + int id: @archetype_type ref, + int interface_type: @type_or_none ref +); + +#keyset[id] +archetype_type_superclasses( //dir=type + int id: @archetype_type ref, + int superclass: @type_or_none ref +); + +#keyset[id, index] +archetype_type_protocols( //dir=type + int id: @archetype_type ref, + int index: int ref, + int protocol: @protocol_decl_or_none ref +); + +builtin_bridge_object_types( //dir=type + unique int id: @builtin_bridge_object_type +); + +builtin_default_actor_storage_types( //dir=type + unique int id: @builtin_default_actor_storage_type +); + +builtin_executor_types( //dir=type + unique int id: @builtin_executor_type +); + +builtin_fixed_array_types( //dir=type + unique int id: @builtin_fixed_array_type +); + +builtin_float_types( //dir=type + unique int id: @builtin_float_type +); + +builtin_job_types( //dir=type + unique int id: @builtin_job_type +); + +builtin_native_object_types( //dir=type + unique int id: @builtin_native_object_type +); + +builtin_raw_pointer_types( //dir=type + unique int id: @builtin_raw_pointer_type +); + +builtin_raw_unsafe_continuation_types( //dir=type + unique int id: @builtin_raw_unsafe_continuation_type +); + +builtin_unsafe_value_buffer_types( //dir=type + unique int id: @builtin_unsafe_value_buffer_type +); + +builtin_vector_types( //dir=type + unique int id: @builtin_vector_type +); + +existential_metatype_types( //dir=type + unique int id: @existential_metatype_type +); + +function_types( //dir=type + unique int id: @function_type +); + +generic_function_types( //dir=type + unique int id: @generic_function_type +); + +#keyset[id, index] +generic_function_type_generic_params( //dir=type + int id: @generic_function_type ref, + int index: int ref, + int generic_param: @generic_type_param_type_or_none ref +); + +generic_type_param_types( //dir=type + unique int id: @generic_type_param_type +); + +metatype_types( //dir=type + unique int id: @metatype_type +); + +@nominal_or_bound_generic_nominal_type = + @bound_generic_type +| @nominal_type +; + +paren_types( //dir=type + unique int id: @paren_type, + int type_: @type_or_none ref +); + +@syntax_sugar_type = + @dictionary_type +| @inline_array_type +| @unary_syntax_sugar_type +; + +type_alias_types( //dir=type + unique int id: @type_alias_type, + int decl: @type_alias_decl_or_none ref +); + +unbound_generic_types( //dir=type + unique int id: @unbound_generic_type +); + +unmanaged_storage_types( //dir=type + unique int id: @unmanaged_storage_type +); + +unowned_storage_types( //dir=type + unique int id: @unowned_storage_type +); + +weak_storage_types( //dir=type + unique int id: @weak_storage_type +); + +@bound_generic_type = + @bound_generic_class_type +| @bound_generic_enum_type +| @bound_generic_struct_type +; + +#keyset[id, index] +bound_generic_type_arg_types( //dir=type + int id: @bound_generic_type ref, + int index: int ref, + int arg_type: @type_or_none ref +); + +builtin_integer_literal_types( //dir=type + unique int id: @builtin_integer_literal_type +); + +builtin_integer_types( //dir=type + unique int id: @builtin_integer_type +); + +#keyset[id] +builtin_integer_type_widths( //dir=type + int id: @builtin_integer_type ref, + int width: int ref +); + +dictionary_types( //dir=type + unique int id: @dictionary_type, + int key_type: @type_or_none ref, + int value_type: @type_or_none ref +); + +inline_array_types( //dir=type + unique int id: @inline_array_type, + int count_type: @type_or_none ref, + int element_type: @type_or_none ref +); + +@local_archetype_type = + @element_archetype_type +| @existential_archetype_type +; + +@nominal_type = + @class_type +| @enum_type +| @protocol_type +| @struct_type +; + +opaque_type_archetype_types( //dir=type + unique int id: @opaque_type_archetype_type, + int declaration: @opaque_type_decl_or_none ref +); + +pack_archetype_types( //dir=type + unique int id: @pack_archetype_type +); + +primary_archetype_types( //dir=type + unique int id: @primary_archetype_type +); + +@unary_syntax_sugar_type = + @array_slice_type +| @optional_type +| @variadic_sequence_type +; + +#keyset[id] +unary_syntax_sugar_types( //dir=type + int id: @unary_syntax_sugar_type ref, + int base_type: @type_or_none ref +); + +array_slice_types( //dir=type + unique int id: @array_slice_type +); + +bound_generic_class_types( //dir=type + unique int id: @bound_generic_class_type +); + +bound_generic_enum_types( //dir=type + unique int id: @bound_generic_enum_type +); + +bound_generic_struct_types( //dir=type + unique int id: @bound_generic_struct_type +); + +class_types( //dir=type + unique int id: @class_type +); + +element_archetype_types( //dir=type + unique int id: @element_archetype_type +); + +enum_types( //dir=type + unique int id: @enum_type +); + +existential_archetype_types( //dir=type + unique int id: @existential_archetype_type +); + +optional_types( //dir=type + unique int id: @optional_type +); + +protocol_types( //dir=type + unique int id: @protocol_type +); + +struct_types( //dir=type + unique int id: @struct_type +); + +variadic_sequence_types( //dir=type + unique int id: @variadic_sequence_type +); + +@accessor_or_none = + @accessor +| @unspecified_element +; + +@argument_or_none = + @argument +| @unspecified_element +; + +@associated_type_decl_or_none = + @associated_type_decl +| @unspecified_element +; + +@ast_node_or_none = + @ast_node +| @unspecified_element +; + +@availability_info_or_none = + @availability_info +| @unspecified_element +; + +@availability_spec_or_none = + @availability_spec +| @unspecified_element +; + +@brace_stmt_or_none = + @brace_stmt +| @unspecified_element +; + +@captured_decl_or_none = + @captured_decl +| @unspecified_element +; + +@case_label_item_or_none = + @case_label_item +| @unspecified_element +; + +@case_stmt_or_none = + @case_stmt +| @unspecified_element +; + +@closure_expr_or_none = + @closure_expr +| @unspecified_element +; + +@condition_element_or_none = + @condition_element +| @unspecified_element +; + +@decl_or_none = + @decl +| @unspecified_element +; + +@enum_element_decl_or_none = + @enum_element_decl +| @unspecified_element +; + +@expr_or_none = + @expr +| @unspecified_element +; + +@file_or_none = + @file +| @unspecified_element +; + +@function_or_none = + @function +| @unspecified_element +; + +@generic_type_decl_or_none = + @generic_type_decl +| @unspecified_element +; + +@generic_type_param_decl_or_none = + @generic_type_param_decl +| @unspecified_element +; + +@generic_type_param_type_or_none = + @generic_type_param_type +| @unspecified_element +; + +@initializer_or_none = + @initializer +| @unspecified_element +; + +@key_path_component_or_none = + @key_path_component +| @unspecified_element +; + +@location_or_none = + @location +| @unspecified_element +; + +@macro_role_or_none = + @macro_role +| @unspecified_element +; + +@module_decl_or_none = + @module_decl +| @unspecified_element +; + +@nominal_type_decl_or_none = + @nominal_type_decl +| @unspecified_element +; + +@opaque_type_decl_or_none = + @opaque_type_decl +| @unspecified_element +; + +@opaque_value_expr_or_none = + @opaque_value_expr +| @unspecified_element +; + +@param_decl_or_none = + @param_decl +| @unspecified_element +; + +@pattern_or_none = + @pattern +| @unspecified_element +; + +@pattern_binding_decl_or_none = + @pattern_binding_decl +| @unspecified_element +; + +@precedence_group_decl_or_none = + @precedence_group_decl +| @unspecified_element +; + +@protocol_decl_or_none = + @protocol_decl +| @unspecified_element +; + +@protocol_type_or_none = + @protocol_type +| @unspecified_element +; + +@stmt_or_none = + @stmt +| @unspecified_element +; + +@stmt_condition_or_none = + @stmt_condition +| @unspecified_element +; + +@string_literal_expr_or_none = + @string_literal_expr +| @unspecified_element +; + +@tap_expr_or_none = + @tap_expr +| @unspecified_element +; + +@type_or_none = + @type +| @unspecified_element +; + +@type_alias_decl_or_none = + @type_alias_decl +| @unspecified_element +; + +@type_repr_or_none = + @type_repr +| @unspecified_element +; + +@value_decl_or_none = + @unspecified_element +| @value_decl +; + +@var_decl_or_none = + @unspecified_element +| @var_decl +; diff --git a/swift/ql/lib/upgrades/33e5e5e03bd3f98322f4c67aefa81015be832b88/swift.dbscheme b/swift/ql/lib/upgrades/33e5e5e03bd3f98322f4c67aefa81015be832b88/swift.dbscheme new file mode 100644 index 00000000000..ee3053b673c --- /dev/null +++ b/swift/ql/lib/upgrades/33e5e5e03bd3f98322f4c67aefa81015be832b88/swift.dbscheme @@ -0,0 +1,2889 @@ +// generated by codegen/codegen.py, do not edit + +// from prefix.dbscheme +/** + * The source location of the snapshot. + */ +sourceLocationPrefix( + string prefix: string ref +); + + +// from schema.py + +@element = + @file +| @generic_context +| @locatable +| @location +| @type +; + +#keyset[id] +element_is_unknown( + int id: @element ref +); + +@file = + @db_file +; + +#keyset[id] +files( + int id: @file ref, + string name: string ref +); + +#keyset[id] +file_is_successfully_extracted( + int id: @file ref +); + +@locatable = + @argument +| @ast_node +| @comment +| @diagnostics +| @error_element +; + +#keyset[id] +locatable_locations( + int id: @locatable ref, + int location: @location_or_none ref +); + +@location = + @db_location +; + +#keyset[id] +locations( + int id: @location ref, + int file: @file_or_none ref, + int start_line: int ref, + int start_column: int ref, + int end_line: int ref, + int end_column: int ref +); + +@ast_node = + @availability_info +| @availability_spec +| @callable +| @case_label_item +| @condition_element +| @decl +| @expr +| @key_path_component +| @macro_role +| @pattern +| @stmt +| @stmt_condition +| @type_repr +; + +comments( + unique int id: @comment, + string text: string ref +); + +db_files( + unique int id: @db_file +); + +db_locations( + unique int id: @db_location +); + +diagnostics( + unique int id: @diagnostics, + string text: string ref, + int kind: int ref +); + +@error_element = + @error_expr +| @error_type +| @overloaded_decl_ref_expr +| @unresolved_decl_ref_expr +| @unresolved_dot_expr +| @unresolved_member_chain_result_expr +| @unresolved_member_expr +| @unresolved_pattern_expr +| @unresolved_specialize_expr +| @unresolved_type +| @unresolved_type_conversion_expr +| @unspecified_element +; + +availability_infos( + unique int id: @availability_info +); + +#keyset[id] +availability_info_is_unavailable( + int id: @availability_info ref +); + +#keyset[id, index] +availability_info_specs( + int id: @availability_info ref, + int index: int ref, + int spec: @availability_spec_or_none ref +); + +availability_specs( + unique int id: @availability_spec +); + +#keyset[id] +availability_spec_platforms( + int id: @availability_spec ref, + string platform: string ref +); + +#keyset[id] +availability_spec_versions( + int id: @availability_spec ref, + string version: string ref +); + +#keyset[id] +availability_spec_is_wildcard( + int id: @availability_spec ref +); + +@callable = + @closure_expr +| @function +; + +#keyset[id] +callable_names( + int id: @callable ref, + string name: string ref +); + +#keyset[id] +callable_self_params( + int id: @callable ref, + int self_param: @param_decl_or_none ref +); + +#keyset[id, index] +callable_params( + int id: @callable ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +#keyset[id] +callable_bodies( + int id: @callable ref, + int body: @brace_stmt_or_none ref +); + +#keyset[id, index] +callable_captures( + int id: @callable ref, + int index: int ref, + int capture: @captured_decl_or_none ref +); + +key_path_components( + unique int id: @key_path_component, + int kind: int ref, + int component_type: @type_or_none ref +); + +#keyset[id, index] +key_path_component_subscript_arguments( + int id: @key_path_component ref, + int index: int ref, + int subscript_argument: @argument_or_none ref +); + +#keyset[id] +key_path_component_tuple_indices( + int id: @key_path_component ref, + int tuple_index: int ref +); + +#keyset[id] +key_path_component_decl_refs( + int id: @key_path_component ref, + int decl_ref: @value_decl_or_none ref +); + +macro_roles( + unique int id: @macro_role, + int kind: int ref, + int macro_syntax: int ref +); + +#keyset[id, index] +macro_role_conformances( + int id: @macro_role ref, + int index: int ref, + int conformance: @expr_or_none ref +); + +#keyset[id, index] +macro_role_names( + int id: @macro_role ref, + int index: int ref, + string name: string ref +); + +unspecified_elements( + unique int id: @unspecified_element, + string property: string ref, + string error: string ref +); + +#keyset[id] +unspecified_element_parents( + int id: @unspecified_element ref, + int parent: @element ref +); + +#keyset[id] +unspecified_element_indices( + int id: @unspecified_element ref, + int index: int ref +); + +#keyset[id, index] +unspecified_element_children( + int id: @unspecified_element ref, + int index: int ref, + int child: @ast_node_or_none ref +); + +@decl = + @captured_decl +| @enum_case_decl +| @extension_decl +| @if_config_decl +| @import_decl +| @missing_member_decl +| @operator_decl +| @pattern_binding_decl +| @pound_diagnostic_decl +| @precedence_group_decl +| @top_level_code_decl +| @using_decl +| @value_decl +; + +#keyset[id] +decls( //dir=decl + int id: @decl ref, + int module: @module_decl_or_none ref +); + +#keyset[id, index] +decl_members( //dir=decl + int id: @decl ref, + int index: int ref, + int member: @decl_or_none ref +); + +@generic_context = + @extension_decl +| @function +| @generic_type_decl +| @macro_decl +| @subscript_decl +; + +#keyset[id, index] +generic_context_generic_type_params( //dir=decl + int id: @generic_context ref, + int index: int ref, + int generic_type_param: @generic_type_param_decl_or_none ref +); + +captured_decls( //dir=decl + unique int id: @captured_decl, + int decl: @value_decl_or_none ref +); + +#keyset[id] +captured_decl_is_direct( //dir=decl + int id: @captured_decl ref +); + +#keyset[id] +captured_decl_is_escaping( //dir=decl + int id: @captured_decl ref +); + +enum_case_decls( //dir=decl + unique int id: @enum_case_decl +); + +#keyset[id, index] +enum_case_decl_elements( //dir=decl + int id: @enum_case_decl ref, + int index: int ref, + int element: @enum_element_decl_or_none ref +); + +extension_decls( //dir=decl + unique int id: @extension_decl, + int extended_type_decl: @nominal_type_decl_or_none ref +); + +#keyset[id, index] +extension_decl_protocols( //dir=decl + int id: @extension_decl ref, + int index: int ref, + int protocol: @protocol_decl_or_none ref +); + +if_config_decls( //dir=decl + unique int id: @if_config_decl +); + +#keyset[id, index] +if_config_decl_active_elements( //dir=decl + int id: @if_config_decl ref, + int index: int ref, + int active_element: @ast_node_or_none ref +); + +import_decls( //dir=decl + unique int id: @import_decl +); + +#keyset[id] +import_decl_is_exported( //dir=decl + int id: @import_decl ref +); + +#keyset[id] +import_decl_imported_modules( //dir=decl + int id: @import_decl ref, + int imported_module: @module_decl_or_none ref +); + +#keyset[id, index] +import_decl_declarations( //dir=decl + int id: @import_decl ref, + int index: int ref, + int declaration: @value_decl_or_none ref +); + +missing_member_decls( //dir=decl + unique int id: @missing_member_decl, + string name: string ref +); + +@operator_decl = + @infix_operator_decl +| @postfix_operator_decl +| @prefix_operator_decl +; + +#keyset[id] +operator_decls( //dir=decl + int id: @operator_decl ref, + string name: string ref +); + +pattern_binding_decls( //dir=decl + unique int id: @pattern_binding_decl +); + +#keyset[id, index] +pattern_binding_decl_inits( //dir=decl + int id: @pattern_binding_decl ref, + int index: int ref, + int init: @expr_or_none ref +); + +#keyset[id, index] +pattern_binding_decl_patterns( //dir=decl + int id: @pattern_binding_decl ref, + int index: int ref, + int pattern: @pattern_or_none ref +); + +pound_diagnostic_decls( //dir=decl + unique int id: @pound_diagnostic_decl, + int kind: int ref, + int message: @string_literal_expr_or_none ref +); + +precedence_group_decls( //dir=decl + unique int id: @precedence_group_decl +); + +top_level_code_decls( //dir=decl + unique int id: @top_level_code_decl, + int body: @brace_stmt_or_none ref +); + +using_decls( //dir=decl + unique int id: @using_decl +); + +#keyset[id] +using_decl_is_main_actor( //dir=decl + int id: @using_decl ref +); + +#keyset[id] +using_decl_is_nonisolated( //dir=decl + int id: @using_decl ref +); + +@value_decl = + @abstract_storage_decl +| @enum_element_decl +| @function +| @macro_decl +| @type_decl +; + +#keyset[id] +value_decls( //dir=decl + int id: @value_decl ref, + int interface_type: @type_or_none ref +); + +@abstract_storage_decl = + @subscript_decl +| @var_decl +; + +#keyset[id, index] +abstract_storage_decl_accessors( //dir=decl + int id: @abstract_storage_decl ref, + int index: int ref, + int accessor: @accessor_or_none ref +); + +enum_element_decls( //dir=decl + unique int id: @enum_element_decl, + string name: string ref +); + +#keyset[id, index] +enum_element_decl_params( //dir=decl + int id: @enum_element_decl ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +@function = + @accessor_or_named_function +| @deinitializer +| @initializer +; + +infix_operator_decls( //dir=decl + unique int id: @infix_operator_decl +); + +#keyset[id] +infix_operator_decl_precedence_groups( //dir=decl + int id: @infix_operator_decl ref, + int precedence_group: @precedence_group_decl_or_none ref +); + +macro_decls( //dir=decl + unique int id: @macro_decl, + string name: string ref +); + +#keyset[id, index] +macro_decl_parameters( //dir=decl + int id: @macro_decl ref, + int index: int ref, + int parameter: @param_decl_or_none ref +); + +#keyset[id, index] +macro_decl_roles( //dir=decl + int id: @macro_decl ref, + int index: int ref, + int role: @macro_role_or_none ref +); + +postfix_operator_decls( //dir=decl + unique int id: @postfix_operator_decl +); + +prefix_operator_decls( //dir=decl + unique int id: @prefix_operator_decl +); + +@type_decl = + @abstract_type_param_decl +| @generic_type_decl +| @module_decl +; + +#keyset[id] +type_decls( //dir=decl + int id: @type_decl ref, + string name: string ref +); + +#keyset[id, index] +type_decl_inherited_types( //dir=decl + int id: @type_decl ref, + int index: int ref, + int inherited_type: @type_or_none ref +); + +@abstract_type_param_decl = + @associated_type_decl +| @generic_type_param_decl +; + +@accessor_or_named_function = + @accessor +| @named_function +; + +deinitializers( //dir=decl + unique int id: @deinitializer +); + +@generic_type_decl = + @nominal_type_decl +| @opaque_type_decl +| @type_alias_decl +; + +initializers( //dir=decl + unique int id: @initializer +); + +module_decls( //dir=decl + unique int id: @module_decl +); + +#keyset[id] +module_decl_is_builtin_module( //dir=decl + int id: @module_decl ref +); + +#keyset[id] +module_decl_is_system_module( //dir=decl + int id: @module_decl ref +); + +module_decl_imported_modules( //dir=decl + int id: @module_decl ref, + int imported_module: @module_decl_or_none ref +); + +module_decl_exported_modules( //dir=decl + int id: @module_decl ref, + int exported_module: @module_decl_or_none ref +); + +subscript_decls( //dir=decl + unique int id: @subscript_decl, + int element_type: @type_or_none ref +); + +#keyset[id, index] +subscript_decl_params( //dir=decl + int id: @subscript_decl ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +@var_decl = + @concrete_var_decl +| @param_decl +; + +#keyset[id] +var_decls( //dir=decl + int id: @var_decl ref, + string name: string ref, + int type_: @type_or_none ref +); + +#keyset[id] +var_decl_attached_property_wrapper_types( //dir=decl + int id: @var_decl ref, + int attached_property_wrapper_type: @type_or_none ref +); + +#keyset[id] +var_decl_parent_patterns( //dir=decl + int id: @var_decl ref, + int parent_pattern: @pattern_or_none ref +); + +#keyset[id] +var_decl_parent_initializers( //dir=decl + int id: @var_decl ref, + int parent_initializer: @expr_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_backing_var_bindings( //dir=decl + int id: @var_decl ref, + int property_wrapper_backing_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_backing_vars( //dir=decl + int id: @var_decl ref, + int property_wrapper_backing_var: @var_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_projection_var_bindings( //dir=decl + int id: @var_decl ref, + int property_wrapper_projection_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_projection_vars( //dir=decl + int id: @var_decl ref, + int property_wrapper_projection_var: @var_decl_or_none ref +); + +accessors( //dir=decl + unique int id: @accessor +); + +#keyset[id] +accessor_is_getter( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_setter( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_will_set( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_did_set( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_read( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_modify( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_unsafe_address( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_unsafe_mutable_address( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_distributed_get( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_read2( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_modify2( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_init( //dir=decl + int id: @accessor ref +); + +associated_type_decls( //dir=decl + unique int id: @associated_type_decl +); + +concrete_var_decls( //dir=decl + unique int id: @concrete_var_decl, + int introducer_int: int ref +); + +generic_type_param_decls( //dir=decl + unique int id: @generic_type_param_decl +); + +named_functions( //dir=decl + unique int id: @named_function +); + +@nominal_type_decl = + @class_decl +| @enum_decl +| @protocol_decl +| @struct_decl +; + +#keyset[id] +nominal_type_decls( //dir=decl + int id: @nominal_type_decl ref, + int type_: @type_or_none ref +); + +opaque_type_decls( //dir=decl + unique int id: @opaque_type_decl, + int naming_declaration: @value_decl_or_none ref +); + +#keyset[id, index] +opaque_type_decl_opaque_generic_params( //dir=decl + int id: @opaque_type_decl ref, + int index: int ref, + int opaque_generic_param: @generic_type_param_type_or_none ref +); + +param_decls( //dir=decl + unique int id: @param_decl +); + +#keyset[id] +param_decl_is_inout( //dir=decl + int id: @param_decl ref +); + +#keyset[id] +param_decl_property_wrapper_local_wrapped_var_bindings( //dir=decl + int id: @param_decl ref, + int property_wrapper_local_wrapped_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +param_decl_property_wrapper_local_wrapped_vars( //dir=decl + int id: @param_decl ref, + int property_wrapper_local_wrapped_var: @var_decl_or_none ref +); + +type_alias_decls( //dir=decl + unique int id: @type_alias_decl, + int aliased_type: @type_or_none ref +); + +class_decls( //dir=decl + unique int id: @class_decl +); + +enum_decls( //dir=decl + unique int id: @enum_decl +); + +protocol_decls( //dir=decl + unique int id: @protocol_decl +); + +struct_decls( //dir=decl + unique int id: @struct_decl +); + +arguments( //dir=expr + unique int id: @argument, + string label: string ref, + int expr: @expr_or_none ref +); + +@expr = + @any_try_expr +| @applied_property_wrapper_expr +| @apply_expr +| @assign_expr +| @bind_optional_expr +| @capture_list_expr +| @closure_expr +| @collection_expr +| @consume_expr +| @copy_expr +| @current_context_isolation_expr +| @decl_ref_expr +| @default_argument_expr +| @discard_assignment_expr +| @dot_syntax_base_ignored_expr +| @dynamic_type_expr +| @enum_is_case_expr +| @error_expr +| @explicit_cast_expr +| @extract_function_isolation_expr +| @force_value_expr +| @identity_expr +| @if_expr +| @implicit_conversion_expr +| @in_out_expr +| @key_path_application_expr +| @key_path_dot_expr +| @key_path_expr +| @lazy_initialization_expr +| @literal_expr +| @lookup_expr +| @make_temporarily_escapable_expr +| @materialize_pack_expr +| @obj_c_selector_expr +| @one_way_expr +| @opaque_value_expr +| @open_existential_expr +| @optional_evaluation_expr +| @other_initializer_ref_expr +| @overloaded_decl_ref_expr +| @pack_element_expr +| @pack_expansion_expr +| @property_wrapper_value_placeholder_expr +| @rebind_self_in_initializer_expr +| @sequence_expr +| @single_value_stmt_expr +| @super_ref_expr +| @tap_expr +| @tuple_element_expr +| @tuple_expr +| @type_expr +| @type_value_expr +| @unresolved_decl_ref_expr +| @unresolved_dot_expr +| @unresolved_member_expr +| @unresolved_pattern_expr +| @unresolved_specialize_expr +| @vararg_expansion_expr +; + +#keyset[id] +expr_types( //dir=expr + int id: @expr ref, + int type_: @type_or_none ref +); + +@any_try_expr = + @force_try_expr +| @optional_try_expr +| @try_expr +; + +#keyset[id] +any_try_exprs( //dir=expr + int id: @any_try_expr ref, + int sub_expr: @expr_or_none ref +); + +applied_property_wrapper_exprs( //dir=expr + unique int id: @applied_property_wrapper_expr, + int kind: int ref, + int value: @expr_or_none ref, + int param: @param_decl_or_none ref +); + +@apply_expr = + @binary_expr +| @call_expr +| @postfix_unary_expr +| @prefix_unary_expr +| @self_apply_expr +; + +#keyset[id] +apply_exprs( //dir=expr + int id: @apply_expr ref, + int function: @expr_or_none ref +); + +#keyset[id, index] +apply_expr_arguments( //dir=expr + int id: @apply_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +assign_exprs( //dir=expr + unique int id: @assign_expr, + int dest: @expr_or_none ref, + int source: @expr_or_none ref +); + +bind_optional_exprs( //dir=expr + unique int id: @bind_optional_expr, + int sub_expr: @expr_or_none ref +); + +capture_list_exprs( //dir=expr + unique int id: @capture_list_expr, + int closure_body: @closure_expr_or_none ref +); + +#keyset[id, index] +capture_list_expr_binding_decls( //dir=expr + int id: @capture_list_expr ref, + int index: int ref, + int binding_decl: @pattern_binding_decl_or_none ref +); + +@closure_expr = + @auto_closure_expr +| @explicit_closure_expr +; + +@collection_expr = + @array_expr +| @dictionary_expr +; + +consume_exprs( //dir=expr + unique int id: @consume_expr, + int sub_expr: @expr_or_none ref +); + +copy_exprs( //dir=expr + unique int id: @copy_expr, + int sub_expr: @expr_or_none ref +); + +current_context_isolation_exprs( //dir=expr + unique int id: @current_context_isolation_expr, + int actor: @expr_or_none ref +); + +decl_ref_exprs( //dir=expr + unique int id: @decl_ref_expr, + int decl: @decl_or_none ref +); + +#keyset[id, index] +decl_ref_expr_replacement_types( //dir=expr + int id: @decl_ref_expr ref, + int index: int ref, + int replacement_type: @type_or_none ref +); + +#keyset[id] +decl_ref_expr_has_direct_to_storage_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_ordinary_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_distributed_thunk_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +default_argument_exprs( //dir=expr + unique int id: @default_argument_expr, + int param_decl: @param_decl_or_none ref, + int param_index: int ref +); + +#keyset[id] +default_argument_expr_caller_side_defaults( //dir=expr + int id: @default_argument_expr ref, + int caller_side_default: @expr_or_none ref +); + +discard_assignment_exprs( //dir=expr + unique int id: @discard_assignment_expr +); + +dot_syntax_base_ignored_exprs( //dir=expr + unique int id: @dot_syntax_base_ignored_expr, + int qualifier: @expr_or_none ref, + int sub_expr: @expr_or_none ref +); + +dynamic_type_exprs( //dir=expr + unique int id: @dynamic_type_expr, + int base: @expr_or_none ref +); + +enum_is_case_exprs( //dir=expr + unique int id: @enum_is_case_expr, + int sub_expr: @expr_or_none ref, + int element: @enum_element_decl_or_none ref +); + +error_exprs( //dir=expr + unique int id: @error_expr +); + +@explicit_cast_expr = + @checked_cast_expr +| @coerce_expr +; + +#keyset[id] +explicit_cast_exprs( //dir=expr + int id: @explicit_cast_expr ref, + int sub_expr: @expr_or_none ref +); + +extract_function_isolation_exprs( //dir=expr + unique int id: @extract_function_isolation_expr, + int function_expr: @expr_or_none ref +); + +force_value_exprs( //dir=expr + unique int id: @force_value_expr, + int sub_expr: @expr_or_none ref +); + +@identity_expr = + @await_expr +| @borrow_expr +| @dot_self_expr +| @paren_expr +| @unresolved_member_chain_result_expr +| @unsafe_expr +; + +#keyset[id] +identity_exprs( //dir=expr + int id: @identity_expr ref, + int sub_expr: @expr_or_none ref +); + +if_exprs( //dir=expr + unique int id: @if_expr, + int condition: @expr_or_none ref, + int then_expr: @expr_or_none ref, + int else_expr: @expr_or_none ref +); + +@implicit_conversion_expr = + @abi_safe_conversion_expr +| @actor_isolation_erasure_expr +| @any_hashable_erasure_expr +| @archetype_to_super_expr +| @array_to_pointer_expr +| @bridge_from_obj_c_expr +| @bridge_to_obj_c_expr +| @class_metatype_to_object_expr +| @collection_upcast_conversion_expr +| @conditional_bridge_from_obj_c_expr +| @covariant_function_conversion_expr +| @covariant_return_conversion_expr +| @derived_to_base_expr +| @destructure_tuple_expr +| @differentiable_function_expr +| @differentiable_function_extract_original_expr +| @erasure_expr +| @existential_metatype_to_object_expr +| @foreign_object_conversion_expr +| @function_conversion_expr +| @in_out_to_pointer_expr +| @inject_into_optional_expr +| @linear_function_expr +| @linear_function_extract_original_expr +| @linear_to_differentiable_function_expr +| @load_expr +| @metatype_conversion_expr +| @pointer_to_pointer_expr +| @protocol_metatype_to_object_expr +| @string_to_pointer_expr +| @underlying_to_opaque_expr +| @unevaluated_instance_expr +| @unreachable_expr +| @unresolved_type_conversion_expr +| @unsafe_cast_expr +; + +#keyset[id] +implicit_conversion_exprs( //dir=expr + int id: @implicit_conversion_expr ref, + int sub_expr: @expr_or_none ref +); + +in_out_exprs( //dir=expr + unique int id: @in_out_expr, + int sub_expr: @expr_or_none ref +); + +key_path_application_exprs( //dir=expr + unique int id: @key_path_application_expr, + int base: @expr_or_none ref, + int key_path: @expr_or_none ref +); + +key_path_dot_exprs( //dir=expr + unique int id: @key_path_dot_expr +); + +key_path_exprs( //dir=expr + unique int id: @key_path_expr +); + +#keyset[id] +key_path_expr_roots( //dir=expr + int id: @key_path_expr ref, + int root: @type_repr_or_none ref +); + +#keyset[id, index] +key_path_expr_components( //dir=expr + int id: @key_path_expr ref, + int index: int ref, + int component: @key_path_component_or_none ref +); + +lazy_initialization_exprs( //dir=expr + unique int id: @lazy_initialization_expr, + int sub_expr: @expr_or_none ref +); + +@literal_expr = + @builtin_literal_expr +| @interpolated_string_literal_expr +| @nil_literal_expr +| @object_literal_expr +| @regex_literal_expr +; + +@lookup_expr = + @dynamic_lookup_expr +| @member_ref_expr +| @subscript_expr +; + +#keyset[id] +lookup_exprs( //dir=expr + int id: @lookup_expr ref, + int base: @expr_or_none ref +); + +#keyset[id] +lookup_expr_members( //dir=expr + int id: @lookup_expr ref, + int member: @decl_or_none ref +); + +make_temporarily_escapable_exprs( //dir=expr + unique int id: @make_temporarily_escapable_expr, + int escaping_closure: @opaque_value_expr_or_none ref, + int nonescaping_closure: @expr_or_none ref, + int sub_expr: @expr_or_none ref +); + +materialize_pack_exprs( //dir=expr + unique int id: @materialize_pack_expr, + int sub_expr: @expr_or_none ref +); + +obj_c_selector_exprs( //dir=expr + unique int id: @obj_c_selector_expr, + int sub_expr: @expr_or_none ref, + int method: @function_or_none ref +); + +one_way_exprs( //dir=expr + unique int id: @one_way_expr, + int sub_expr: @expr_or_none ref +); + +opaque_value_exprs( //dir=expr + unique int id: @opaque_value_expr +); + +open_existential_exprs( //dir=expr + unique int id: @open_existential_expr, + int sub_expr: @expr_or_none ref, + int existential: @expr_or_none ref, + int opaque_expr: @opaque_value_expr_or_none ref +); + +optional_evaluation_exprs( //dir=expr + unique int id: @optional_evaluation_expr, + int sub_expr: @expr_or_none ref +); + +other_initializer_ref_exprs( //dir=expr + unique int id: @other_initializer_ref_expr, + int initializer: @initializer_or_none ref +); + +overloaded_decl_ref_exprs( //dir=expr + unique int id: @overloaded_decl_ref_expr +); + +#keyset[id, index] +overloaded_decl_ref_expr_possible_declarations( //dir=expr + int id: @overloaded_decl_ref_expr ref, + int index: int ref, + int possible_declaration: @value_decl_or_none ref +); + +pack_element_exprs( //dir=expr + unique int id: @pack_element_expr, + int sub_expr: @expr_or_none ref +); + +pack_expansion_exprs( //dir=expr + unique int id: @pack_expansion_expr, + int pattern_expr: @expr_or_none ref +); + +property_wrapper_value_placeholder_exprs( //dir=expr + unique int id: @property_wrapper_value_placeholder_expr, + int placeholder: @opaque_value_expr_or_none ref +); + +#keyset[id] +property_wrapper_value_placeholder_expr_wrapped_values( //dir=expr + int id: @property_wrapper_value_placeholder_expr ref, + int wrapped_value: @expr_or_none ref +); + +rebind_self_in_initializer_exprs( //dir=expr + unique int id: @rebind_self_in_initializer_expr, + int sub_expr: @expr_or_none ref, + int self: @var_decl_or_none ref +); + +sequence_exprs( //dir=expr + unique int id: @sequence_expr +); + +#keyset[id, index] +sequence_expr_elements( //dir=expr + int id: @sequence_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +single_value_stmt_exprs( //dir=expr + unique int id: @single_value_stmt_expr, + int stmt: @stmt_or_none ref +); + +super_ref_exprs( //dir=expr + unique int id: @super_ref_expr, + int self: @var_decl_or_none ref +); + +tap_exprs( //dir=expr + unique int id: @tap_expr, + int body: @brace_stmt_or_none ref, + int var: @var_decl_or_none ref +); + +#keyset[id] +tap_expr_sub_exprs( //dir=expr + int id: @tap_expr ref, + int sub_expr: @expr_or_none ref +); + +tuple_element_exprs( //dir=expr + unique int id: @tuple_element_expr, + int sub_expr: @expr_or_none ref, + int index: int ref +); + +tuple_exprs( //dir=expr + unique int id: @tuple_expr +); + +#keyset[id, index] +tuple_expr_elements( //dir=expr + int id: @tuple_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +type_exprs( //dir=expr + unique int id: @type_expr +); + +#keyset[id] +type_expr_type_reprs( //dir=expr + int id: @type_expr ref, + int type_repr: @type_repr_or_none ref +); + +type_value_exprs( //dir=expr + unique int id: @type_value_expr, + int type_repr: @type_repr_or_none ref +); + +unresolved_decl_ref_exprs( //dir=expr + unique int id: @unresolved_decl_ref_expr +); + +#keyset[id] +unresolved_decl_ref_expr_names( //dir=expr + int id: @unresolved_decl_ref_expr ref, + string name: string ref +); + +unresolved_dot_exprs( //dir=expr + unique int id: @unresolved_dot_expr, + int base: @expr_or_none ref, + string name: string ref +); + +unresolved_member_exprs( //dir=expr + unique int id: @unresolved_member_expr, + string name: string ref +); + +unresolved_pattern_exprs( //dir=expr + unique int id: @unresolved_pattern_expr, + int sub_pattern: @pattern_or_none ref +); + +unresolved_specialize_exprs( //dir=expr + unique int id: @unresolved_specialize_expr, + int sub_expr: @expr_or_none ref +); + +vararg_expansion_exprs( //dir=expr + unique int id: @vararg_expansion_expr, + int sub_expr: @expr_or_none ref +); + +abi_safe_conversion_exprs( //dir=expr + unique int id: @abi_safe_conversion_expr +); + +actor_isolation_erasure_exprs( //dir=expr + unique int id: @actor_isolation_erasure_expr +); + +any_hashable_erasure_exprs( //dir=expr + unique int id: @any_hashable_erasure_expr +); + +archetype_to_super_exprs( //dir=expr + unique int id: @archetype_to_super_expr +); + +array_exprs( //dir=expr + unique int id: @array_expr +); + +#keyset[id, index] +array_expr_elements( //dir=expr + int id: @array_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +array_to_pointer_exprs( //dir=expr + unique int id: @array_to_pointer_expr +); + +auto_closure_exprs( //dir=expr + unique int id: @auto_closure_expr +); + +await_exprs( //dir=expr + unique int id: @await_expr +); + +binary_exprs( //dir=expr + unique int id: @binary_expr +); + +borrow_exprs( //dir=expr + unique int id: @borrow_expr +); + +bridge_from_obj_c_exprs( //dir=expr + unique int id: @bridge_from_obj_c_expr +); + +bridge_to_obj_c_exprs( //dir=expr + unique int id: @bridge_to_obj_c_expr +); + +@builtin_literal_expr = + @boolean_literal_expr +| @magic_identifier_literal_expr +| @number_literal_expr +| @string_literal_expr +; + +call_exprs( //dir=expr + unique int id: @call_expr +); + +@checked_cast_expr = + @conditional_checked_cast_expr +| @forced_checked_cast_expr +| @is_expr +; + +class_metatype_to_object_exprs( //dir=expr + unique int id: @class_metatype_to_object_expr +); + +coerce_exprs( //dir=expr + unique int id: @coerce_expr +); + +collection_upcast_conversion_exprs( //dir=expr + unique int id: @collection_upcast_conversion_expr +); + +conditional_bridge_from_obj_c_exprs( //dir=expr + unique int id: @conditional_bridge_from_obj_c_expr +); + +covariant_function_conversion_exprs( //dir=expr + unique int id: @covariant_function_conversion_expr +); + +covariant_return_conversion_exprs( //dir=expr + unique int id: @covariant_return_conversion_expr +); + +derived_to_base_exprs( //dir=expr + unique int id: @derived_to_base_expr +); + +destructure_tuple_exprs( //dir=expr + unique int id: @destructure_tuple_expr +); + +dictionary_exprs( //dir=expr + unique int id: @dictionary_expr +); + +#keyset[id, index] +dictionary_expr_elements( //dir=expr + int id: @dictionary_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +differentiable_function_exprs( //dir=expr + unique int id: @differentiable_function_expr +); + +differentiable_function_extract_original_exprs( //dir=expr + unique int id: @differentiable_function_extract_original_expr +); + +dot_self_exprs( //dir=expr + unique int id: @dot_self_expr +); + +@dynamic_lookup_expr = + @dynamic_member_ref_expr +| @dynamic_subscript_expr +; + +erasure_exprs( //dir=expr + unique int id: @erasure_expr +); + +existential_metatype_to_object_exprs( //dir=expr + unique int id: @existential_metatype_to_object_expr +); + +explicit_closure_exprs( //dir=expr + unique int id: @explicit_closure_expr +); + +force_try_exprs( //dir=expr + unique int id: @force_try_expr +); + +foreign_object_conversion_exprs( //dir=expr + unique int id: @foreign_object_conversion_expr +); + +function_conversion_exprs( //dir=expr + unique int id: @function_conversion_expr +); + +in_out_to_pointer_exprs( //dir=expr + unique int id: @in_out_to_pointer_expr +); + +inject_into_optional_exprs( //dir=expr + unique int id: @inject_into_optional_expr +); + +interpolated_string_literal_exprs( //dir=expr + unique int id: @interpolated_string_literal_expr +); + +#keyset[id] +interpolated_string_literal_expr_interpolation_exprs( //dir=expr + int id: @interpolated_string_literal_expr ref, + int interpolation_expr: @opaque_value_expr_or_none ref +); + +#keyset[id] +interpolated_string_literal_expr_appending_exprs( //dir=expr + int id: @interpolated_string_literal_expr ref, + int appending_expr: @tap_expr_or_none ref +); + +linear_function_exprs( //dir=expr + unique int id: @linear_function_expr +); + +linear_function_extract_original_exprs( //dir=expr + unique int id: @linear_function_extract_original_expr +); + +linear_to_differentiable_function_exprs( //dir=expr + unique int id: @linear_to_differentiable_function_expr +); + +load_exprs( //dir=expr + unique int id: @load_expr +); + +member_ref_exprs( //dir=expr + unique int id: @member_ref_expr +); + +#keyset[id] +member_ref_expr_has_direct_to_storage_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_ordinary_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_distributed_thunk_semantics( //dir=expr + int id: @member_ref_expr ref +); + +metatype_conversion_exprs( //dir=expr + unique int id: @metatype_conversion_expr +); + +nil_literal_exprs( //dir=expr + unique int id: @nil_literal_expr +); + +object_literal_exprs( //dir=expr + unique int id: @object_literal_expr, + int kind: int ref +); + +#keyset[id, index] +object_literal_expr_arguments( //dir=expr + int id: @object_literal_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +optional_try_exprs( //dir=expr + unique int id: @optional_try_expr +); + +paren_exprs( //dir=expr + unique int id: @paren_expr +); + +pointer_to_pointer_exprs( //dir=expr + unique int id: @pointer_to_pointer_expr +); + +postfix_unary_exprs( //dir=expr + unique int id: @postfix_unary_expr +); + +prefix_unary_exprs( //dir=expr + unique int id: @prefix_unary_expr +); + +protocol_metatype_to_object_exprs( //dir=expr + unique int id: @protocol_metatype_to_object_expr +); + +regex_literal_exprs( //dir=expr + unique int id: @regex_literal_expr, + string pattern: string ref, + int version: int ref +); + +@self_apply_expr = + @dot_syntax_call_expr +| @initializer_ref_call_expr +; + +#keyset[id] +self_apply_exprs( //dir=expr + int id: @self_apply_expr ref, + int base: @expr_or_none ref +); + +string_to_pointer_exprs( //dir=expr + unique int id: @string_to_pointer_expr +); + +subscript_exprs( //dir=expr + unique int id: @subscript_expr +); + +#keyset[id, index] +subscript_expr_arguments( //dir=expr + int id: @subscript_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +#keyset[id] +subscript_expr_has_direct_to_storage_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_ordinary_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_distributed_thunk_semantics( //dir=expr + int id: @subscript_expr ref +); + +try_exprs( //dir=expr + unique int id: @try_expr +); + +underlying_to_opaque_exprs( //dir=expr + unique int id: @underlying_to_opaque_expr +); + +unevaluated_instance_exprs( //dir=expr + unique int id: @unevaluated_instance_expr +); + +unreachable_exprs( //dir=expr + unique int id: @unreachable_expr +); + +unresolved_member_chain_result_exprs( //dir=expr + unique int id: @unresolved_member_chain_result_expr +); + +unresolved_type_conversion_exprs( //dir=expr + unique int id: @unresolved_type_conversion_expr +); + +unsafe_cast_exprs( //dir=expr + unique int id: @unsafe_cast_expr +); + +unsafe_exprs( //dir=expr + unique int id: @unsafe_expr +); + +boolean_literal_exprs( //dir=expr + unique int id: @boolean_literal_expr, + boolean value: boolean ref +); + +conditional_checked_cast_exprs( //dir=expr + unique int id: @conditional_checked_cast_expr +); + +dot_syntax_call_exprs( //dir=expr + unique int id: @dot_syntax_call_expr +); + +dynamic_member_ref_exprs( //dir=expr + unique int id: @dynamic_member_ref_expr +); + +dynamic_subscript_exprs( //dir=expr + unique int id: @dynamic_subscript_expr +); + +forced_checked_cast_exprs( //dir=expr + unique int id: @forced_checked_cast_expr +); + +initializer_ref_call_exprs( //dir=expr + unique int id: @initializer_ref_call_expr +); + +is_exprs( //dir=expr + unique int id: @is_expr +); + +magic_identifier_literal_exprs( //dir=expr + unique int id: @magic_identifier_literal_expr, + string kind: string ref +); + +@number_literal_expr = + @float_literal_expr +| @integer_literal_expr +; + +string_literal_exprs( //dir=expr + unique int id: @string_literal_expr, + string value: string ref +); + +float_literal_exprs( //dir=expr + unique int id: @float_literal_expr, + string string_value: string ref +); + +integer_literal_exprs( //dir=expr + unique int id: @integer_literal_expr, + string string_value: string ref +); + +@pattern = + @any_pattern +| @binding_pattern +| @bool_pattern +| @enum_element_pattern +| @expr_pattern +| @is_pattern +| @named_pattern +| @optional_some_pattern +| @paren_pattern +| @tuple_pattern +| @typed_pattern +; + +#keyset[id] +pattern_types( //dir=pattern + int id: @pattern ref, + int type_: @type_or_none ref +); + +any_patterns( //dir=pattern + unique int id: @any_pattern +); + +binding_patterns( //dir=pattern + unique int id: @binding_pattern, + int sub_pattern: @pattern_or_none ref +); + +bool_patterns( //dir=pattern + unique int id: @bool_pattern, + boolean value: boolean ref +); + +enum_element_patterns( //dir=pattern + unique int id: @enum_element_pattern, + int element: @enum_element_decl_or_none ref +); + +#keyset[id] +enum_element_pattern_sub_patterns( //dir=pattern + int id: @enum_element_pattern ref, + int sub_pattern: @pattern_or_none ref +); + +expr_patterns( //dir=pattern + unique int id: @expr_pattern, + int sub_expr: @expr_or_none ref +); + +is_patterns( //dir=pattern + unique int id: @is_pattern +); + +#keyset[id] +is_pattern_cast_type_reprs( //dir=pattern + int id: @is_pattern ref, + int cast_type_repr: @type_repr_or_none ref +); + +#keyset[id] +is_pattern_sub_patterns( //dir=pattern + int id: @is_pattern ref, + int sub_pattern: @pattern_or_none ref +); + +named_patterns( //dir=pattern + unique int id: @named_pattern, + int var_decl: @var_decl_or_none ref +); + +optional_some_patterns( //dir=pattern + unique int id: @optional_some_pattern, + int sub_pattern: @pattern_or_none ref +); + +paren_patterns( //dir=pattern + unique int id: @paren_pattern, + int sub_pattern: @pattern_or_none ref +); + +tuple_patterns( //dir=pattern + unique int id: @tuple_pattern +); + +#keyset[id, index] +tuple_pattern_elements( //dir=pattern + int id: @tuple_pattern ref, + int index: int ref, + int element: @pattern_or_none ref +); + +typed_patterns( //dir=pattern + unique int id: @typed_pattern, + int sub_pattern: @pattern_or_none ref +); + +#keyset[id] +typed_pattern_type_reprs( //dir=pattern + int id: @typed_pattern ref, + int type_repr: @type_repr_or_none ref +); + +case_label_items( //dir=stmt + unique int id: @case_label_item, + int pattern: @pattern_or_none ref +); + +#keyset[id] +case_label_item_guards( //dir=stmt + int id: @case_label_item ref, + int guard: @expr_or_none ref +); + +condition_elements( //dir=stmt + unique int id: @condition_element +); + +#keyset[id] +condition_element_booleans( //dir=stmt + int id: @condition_element ref, + int boolean_: @expr_or_none ref +); + +#keyset[id] +condition_element_patterns( //dir=stmt + int id: @condition_element ref, + int pattern: @pattern_or_none ref +); + +#keyset[id] +condition_element_initializers( //dir=stmt + int id: @condition_element ref, + int initializer: @expr_or_none ref +); + +#keyset[id] +condition_element_availabilities( //dir=stmt + int id: @condition_element ref, + int availability: @availability_info_or_none ref +); + +@stmt = + @brace_stmt +| @break_stmt +| @case_stmt +| @continue_stmt +| @defer_stmt +| @discard_stmt +| @fail_stmt +| @fallthrough_stmt +| @labeled_stmt +| @pound_assert_stmt +| @return_stmt +| @then_stmt +| @throw_stmt +| @yield_stmt +; + +stmt_conditions( //dir=stmt + unique int id: @stmt_condition +); + +#keyset[id, index] +stmt_condition_elements( //dir=stmt + int id: @stmt_condition ref, + int index: int ref, + int element: @condition_element_or_none ref +); + +brace_stmts( //dir=stmt + unique int id: @brace_stmt +); + +#keyset[id, index] +brace_stmt_elements( //dir=stmt + int id: @brace_stmt ref, + int index: int ref, + int element: @ast_node_or_none ref +); + +break_stmts( //dir=stmt + unique int id: @break_stmt +); + +#keyset[id] +break_stmt_target_names( //dir=stmt + int id: @break_stmt ref, + string target_name: string ref +); + +#keyset[id] +break_stmt_targets( //dir=stmt + int id: @break_stmt ref, + int target: @stmt_or_none ref +); + +case_stmts( //dir=stmt + unique int id: @case_stmt, + int body: @stmt_or_none ref +); + +#keyset[id, index] +case_stmt_labels( //dir=stmt + int id: @case_stmt ref, + int index: int ref, + int label: @case_label_item_or_none ref +); + +#keyset[id, index] +case_stmt_variables( //dir=stmt + int id: @case_stmt ref, + int index: int ref, + int variable: @var_decl_or_none ref +); + +continue_stmts( //dir=stmt + unique int id: @continue_stmt +); + +#keyset[id] +continue_stmt_target_names( //dir=stmt + int id: @continue_stmt ref, + string target_name: string ref +); + +#keyset[id] +continue_stmt_targets( //dir=stmt + int id: @continue_stmt ref, + int target: @stmt_or_none ref +); + +defer_stmts( //dir=stmt + unique int id: @defer_stmt, + int body: @brace_stmt_or_none ref +); + +discard_stmts( //dir=stmt + unique int id: @discard_stmt, + int sub_expr: @expr_or_none ref +); + +fail_stmts( //dir=stmt + unique int id: @fail_stmt +); + +fallthrough_stmts( //dir=stmt + unique int id: @fallthrough_stmt, + int fallthrough_source: @case_stmt_or_none ref, + int fallthrough_dest: @case_stmt_or_none ref +); + +@labeled_stmt = + @do_catch_stmt +| @do_stmt +| @for_each_stmt +| @labeled_conditional_stmt +| @repeat_while_stmt +| @switch_stmt +; + +#keyset[id] +labeled_stmt_labels( //dir=stmt + int id: @labeled_stmt ref, + string label: string ref +); + +pound_assert_stmts( //dir=stmt + unique int id: @pound_assert_stmt, + int condition: @expr_or_none ref, + string message: string ref +); + +return_stmts( //dir=stmt + unique int id: @return_stmt +); + +#keyset[id] +return_stmt_results( //dir=stmt + int id: @return_stmt ref, + int result: @expr_or_none ref +); + +then_stmts( //dir=stmt + unique int id: @then_stmt, + int result: @expr_or_none ref +); + +throw_stmts( //dir=stmt + unique int id: @throw_stmt, + int sub_expr: @expr_or_none ref +); + +yield_stmts( //dir=stmt + unique int id: @yield_stmt +); + +#keyset[id, index] +yield_stmt_results( //dir=stmt + int id: @yield_stmt ref, + int index: int ref, + int result: @expr_or_none ref +); + +do_catch_stmts( //dir=stmt + unique int id: @do_catch_stmt, + int body: @stmt_or_none ref +); + +#keyset[id, index] +do_catch_stmt_catches( //dir=stmt + int id: @do_catch_stmt ref, + int index: int ref, + int catch: @case_stmt_or_none ref +); + +do_stmts( //dir=stmt + unique int id: @do_stmt, + int body: @brace_stmt_or_none ref +); + +for_each_stmts( //dir=stmt + unique int id: @for_each_stmt, + int pattern: @pattern_or_none ref, + int body: @brace_stmt_or_none ref +); + +#keyset[id, index] +for_each_stmt_variables( //dir=stmt + int id: @for_each_stmt ref, + int index: int ref, + int variable: @var_decl_or_none ref +); + +#keyset[id] +for_each_stmt_wheres( //dir=stmt + int id: @for_each_stmt ref, + int where: @expr_or_none ref +); + +#keyset[id] +for_each_stmt_iterator_vars( //dir=stmt + int id: @for_each_stmt ref, + int iteratorVar: @pattern_binding_decl_or_none ref +); + +#keyset[id] +for_each_stmt_next_calls( //dir=stmt + int id: @for_each_stmt ref, + int nextCall: @expr_or_none ref +); + +@labeled_conditional_stmt = + @guard_stmt +| @if_stmt +| @while_stmt +; + +#keyset[id] +labeled_conditional_stmts( //dir=stmt + int id: @labeled_conditional_stmt ref, + int condition: @stmt_condition_or_none ref +); + +repeat_while_stmts( //dir=stmt + unique int id: @repeat_while_stmt, + int condition: @expr_or_none ref, + int body: @stmt_or_none ref +); + +switch_stmts( //dir=stmt + unique int id: @switch_stmt, + int expr: @expr_or_none ref +); + +#keyset[id, index] +switch_stmt_cases( //dir=stmt + int id: @switch_stmt ref, + int index: int ref, + int case_: @case_stmt_or_none ref +); + +guard_stmts( //dir=stmt + unique int id: @guard_stmt, + int body: @brace_stmt_or_none ref +); + +if_stmts( //dir=stmt + unique int id: @if_stmt, + int then: @stmt_or_none ref +); + +#keyset[id] +if_stmt_elses( //dir=stmt + int id: @if_stmt ref, + int else: @stmt_or_none ref +); + +while_stmts( //dir=stmt + unique int id: @while_stmt, + int body: @stmt_or_none ref +); + +@type = + @any_function_type +| @any_generic_type +| @any_metatype_type +| @builtin_type +| @dependent_member_type +| @dynamic_self_type +| @error_type +| @existential_type +| @in_out_type +| @integer_type +| @l_value_type +| @module_type +| @pack_element_type +| @pack_expansion_type +| @pack_type +| @parameterized_protocol_type +| @protocol_composition_type +| @reference_storage_type +| @substitutable_type +| @sugar_type +| @tuple_type +| @unresolved_type +; + +#keyset[id] +types( //dir=type + int id: @type ref, + string name: string ref, + int canonical_type: @type_or_none ref +); + +type_reprs( //dir=type + unique int id: @type_repr, + int type_: @type_or_none ref +); + +@any_function_type = + @function_type +| @generic_function_type +; + +#keyset[id] +any_function_types( //dir=type + int id: @any_function_type ref, + int result: @type_or_none ref +); + +#keyset[id, index] +any_function_type_param_types( //dir=type + int id: @any_function_type ref, + int index: int ref, + int param_type: @type_or_none ref +); + +#keyset[id] +any_function_type_is_throwing( //dir=type + int id: @any_function_type ref +); + +#keyset[id] +any_function_type_is_async( //dir=type + int id: @any_function_type ref +); + +@any_generic_type = + @nominal_or_bound_generic_nominal_type +| @unbound_generic_type +; + +#keyset[id] +any_generic_types( //dir=type + int id: @any_generic_type ref, + int declaration: @generic_type_decl_or_none ref +); + +#keyset[id] +any_generic_type_parents( //dir=type + int id: @any_generic_type ref, + int parent: @type_or_none ref +); + +@any_metatype_type = + @existential_metatype_type +| @metatype_type +; + +@builtin_type = + @any_builtin_integer_type +| @builtin_bridge_object_type +| @builtin_default_actor_storage_type +| @builtin_executor_type +| @builtin_float_type +| @builtin_generic_type +| @builtin_job_type +| @builtin_native_object_type +| @builtin_raw_pointer_type +| @builtin_raw_unsafe_continuation_type +| @builtin_unsafe_value_buffer_type +| @builtin_vector_type +; + +dependent_member_types( //dir=type + unique int id: @dependent_member_type, + int base_type: @type_or_none ref, + int associated_type_decl: @associated_type_decl_or_none ref +); + +dynamic_self_types( //dir=type + unique int id: @dynamic_self_type, + int static_self_type: @type_or_none ref +); + +error_types( //dir=type + unique int id: @error_type +); + +existential_types( //dir=type + unique int id: @existential_type, + int constraint: @type_or_none ref +); + +in_out_types( //dir=type + unique int id: @in_out_type, + int object_type: @type_or_none ref +); + +integer_types( //dir=type + unique int id: @integer_type, + string value: string ref +); + +l_value_types( //dir=type + unique int id: @l_value_type, + int object_type: @type_or_none ref +); + +module_types( //dir=type + unique int id: @module_type, + int module: @module_decl_or_none ref +); + +pack_element_types( //dir=type + unique int id: @pack_element_type, + int pack_type: @type_or_none ref +); + +pack_expansion_types( //dir=type + unique int id: @pack_expansion_type, + int pattern_type: @type_or_none ref, + int count_type: @type_or_none ref +); + +pack_types( //dir=type + unique int id: @pack_type +); + +#keyset[id, index] +pack_type_elements( //dir=type + int id: @pack_type ref, + int index: int ref, + int element: @type_or_none ref +); + +parameterized_protocol_types( //dir=type + unique int id: @parameterized_protocol_type, + int base: @protocol_type_or_none ref +); + +#keyset[id, index] +parameterized_protocol_type_args( //dir=type + int id: @parameterized_protocol_type ref, + int index: int ref, + int arg: @type_or_none ref +); + +protocol_composition_types( //dir=type + unique int id: @protocol_composition_type +); + +#keyset[id, index] +protocol_composition_type_members( //dir=type + int id: @protocol_composition_type ref, + int index: int ref, + int member: @type_or_none ref +); + +@reference_storage_type = + @unmanaged_storage_type +| @unowned_storage_type +| @weak_storage_type +; + +#keyset[id] +reference_storage_types( //dir=type + int id: @reference_storage_type ref, + int referent_type: @type_or_none ref +); + +@substitutable_type = + @archetype_type +| @generic_type_param_type +; + +@sugar_type = + @paren_type +| @syntax_sugar_type +| @type_alias_type +; + +tuple_types( //dir=type + unique int id: @tuple_type +); + +#keyset[id, index] +tuple_type_types( //dir=type + int id: @tuple_type ref, + int index: int ref, + int type_: @type_or_none ref +); + +#keyset[id, index] +tuple_type_names( //dir=type + int id: @tuple_type ref, + int index: int ref, + string name: string ref +); + +unresolved_types( //dir=type + unique int id: @unresolved_type +); + +@any_builtin_integer_type = + @builtin_integer_literal_type +| @builtin_integer_type +; + +@archetype_type = + @local_archetype_type +| @opaque_type_archetype_type +| @pack_archetype_type +| @primary_archetype_type +; + +#keyset[id] +archetype_types( //dir=type + int id: @archetype_type ref, + int interface_type: @type_or_none ref +); + +#keyset[id] +archetype_type_superclasses( //dir=type + int id: @archetype_type ref, + int superclass: @type_or_none ref +); + +#keyset[id, index] +archetype_type_protocols( //dir=type + int id: @archetype_type ref, + int index: int ref, + int protocol: @protocol_decl_or_none ref +); + +builtin_bridge_object_types( //dir=type + unique int id: @builtin_bridge_object_type +); + +builtin_default_actor_storage_types( //dir=type + unique int id: @builtin_default_actor_storage_type +); + +builtin_executor_types( //dir=type + unique int id: @builtin_executor_type +); + +builtin_float_types( //dir=type + unique int id: @builtin_float_type +); + +@builtin_generic_type = + @builtin_fixed_array_type +; + +builtin_job_types( //dir=type + unique int id: @builtin_job_type +); + +builtin_native_object_types( //dir=type + unique int id: @builtin_native_object_type +); + +builtin_raw_pointer_types( //dir=type + unique int id: @builtin_raw_pointer_type +); + +builtin_raw_unsafe_continuation_types( //dir=type + unique int id: @builtin_raw_unsafe_continuation_type +); + +builtin_unsafe_value_buffer_types( //dir=type + unique int id: @builtin_unsafe_value_buffer_type +); + +builtin_vector_types( //dir=type + unique int id: @builtin_vector_type +); + +existential_metatype_types( //dir=type + unique int id: @existential_metatype_type +); + +function_types( //dir=type + unique int id: @function_type +); + +generic_function_types( //dir=type + unique int id: @generic_function_type +); + +#keyset[id, index] +generic_function_type_generic_params( //dir=type + int id: @generic_function_type ref, + int index: int ref, + int generic_param: @generic_type_param_type_or_none ref +); + +generic_type_param_types( //dir=type + unique int id: @generic_type_param_type +); + +metatype_types( //dir=type + unique int id: @metatype_type +); + +@nominal_or_bound_generic_nominal_type = + @bound_generic_type +| @nominal_type +; + +paren_types( //dir=type + unique int id: @paren_type, + int type_: @type_or_none ref +); + +@syntax_sugar_type = + @dictionary_type +| @inline_array_type +| @unary_syntax_sugar_type +; + +type_alias_types( //dir=type + unique int id: @type_alias_type, + int decl: @type_alias_decl_or_none ref +); + +unbound_generic_types( //dir=type + unique int id: @unbound_generic_type +); + +unmanaged_storage_types( //dir=type + unique int id: @unmanaged_storage_type +); + +unowned_storage_types( //dir=type + unique int id: @unowned_storage_type +); + +weak_storage_types( //dir=type + unique int id: @weak_storage_type +); + +@bound_generic_type = + @bound_generic_class_type +| @bound_generic_enum_type +| @bound_generic_struct_type +; + +#keyset[id, index] +bound_generic_type_arg_types( //dir=type + int id: @bound_generic_type ref, + int index: int ref, + int arg_type: @type_or_none ref +); + +builtin_fixed_array_types( //dir=type + unique int id: @builtin_fixed_array_type +); + +builtin_integer_literal_types( //dir=type + unique int id: @builtin_integer_literal_type +); + +builtin_integer_types( //dir=type + unique int id: @builtin_integer_type +); + +#keyset[id] +builtin_integer_type_widths( //dir=type + int id: @builtin_integer_type ref, + int width: int ref +); + +dictionary_types( //dir=type + unique int id: @dictionary_type, + int key_type: @type_or_none ref, + int value_type: @type_or_none ref +); + +inline_array_types( //dir=type + unique int id: @inline_array_type, + int count_type: @type_or_none ref, + int element_type: @type_or_none ref +); + +@local_archetype_type = + @element_archetype_type +| @existential_archetype_type +; + +@nominal_type = + @class_type +| @enum_type +| @protocol_type +| @struct_type +; + +opaque_type_archetype_types( //dir=type + unique int id: @opaque_type_archetype_type, + int declaration: @opaque_type_decl_or_none ref +); + +pack_archetype_types( //dir=type + unique int id: @pack_archetype_type +); + +primary_archetype_types( //dir=type + unique int id: @primary_archetype_type +); + +@unary_syntax_sugar_type = + @array_slice_type +| @optional_type +| @variadic_sequence_type +; + +#keyset[id] +unary_syntax_sugar_types( //dir=type + int id: @unary_syntax_sugar_type ref, + int base_type: @type_or_none ref +); + +array_slice_types( //dir=type + unique int id: @array_slice_type +); + +bound_generic_class_types( //dir=type + unique int id: @bound_generic_class_type +); + +bound_generic_enum_types( //dir=type + unique int id: @bound_generic_enum_type +); + +bound_generic_struct_types( //dir=type + unique int id: @bound_generic_struct_type +); + +class_types( //dir=type + unique int id: @class_type +); + +element_archetype_types( //dir=type + unique int id: @element_archetype_type +); + +enum_types( //dir=type + unique int id: @enum_type +); + +existential_archetype_types( //dir=type + unique int id: @existential_archetype_type +); + +optional_types( //dir=type + unique int id: @optional_type +); + +protocol_types( //dir=type + unique int id: @protocol_type +); + +struct_types( //dir=type + unique int id: @struct_type +); + +variadic_sequence_types( //dir=type + unique int id: @variadic_sequence_type +); + +@accessor_or_none = + @accessor +| @unspecified_element +; + +@argument_or_none = + @argument +| @unspecified_element +; + +@associated_type_decl_or_none = + @associated_type_decl +| @unspecified_element +; + +@ast_node_or_none = + @ast_node +| @unspecified_element +; + +@availability_info_or_none = + @availability_info +| @unspecified_element +; + +@availability_spec_or_none = + @availability_spec +| @unspecified_element +; + +@brace_stmt_or_none = + @brace_stmt +| @unspecified_element +; + +@captured_decl_or_none = + @captured_decl +| @unspecified_element +; + +@case_label_item_or_none = + @case_label_item +| @unspecified_element +; + +@case_stmt_or_none = + @case_stmt +| @unspecified_element +; + +@closure_expr_or_none = + @closure_expr +| @unspecified_element +; + +@condition_element_or_none = + @condition_element +| @unspecified_element +; + +@decl_or_none = + @decl +| @unspecified_element +; + +@enum_element_decl_or_none = + @enum_element_decl +| @unspecified_element +; + +@expr_or_none = + @expr +| @unspecified_element +; + +@file_or_none = + @file +| @unspecified_element +; + +@function_or_none = + @function +| @unspecified_element +; + +@generic_type_decl_or_none = + @generic_type_decl +| @unspecified_element +; + +@generic_type_param_decl_or_none = + @generic_type_param_decl +| @unspecified_element +; + +@generic_type_param_type_or_none = + @generic_type_param_type +| @unspecified_element +; + +@initializer_or_none = + @initializer +| @unspecified_element +; + +@key_path_component_or_none = + @key_path_component +| @unspecified_element +; + +@location_or_none = + @location +| @unspecified_element +; + +@macro_role_or_none = + @macro_role +| @unspecified_element +; + +@module_decl_or_none = + @module_decl +| @unspecified_element +; + +@nominal_type_decl_or_none = + @nominal_type_decl +| @unspecified_element +; + +@opaque_type_decl_or_none = + @opaque_type_decl +| @unspecified_element +; + +@opaque_value_expr_or_none = + @opaque_value_expr +| @unspecified_element +; + +@param_decl_or_none = + @param_decl +| @unspecified_element +; + +@pattern_or_none = + @pattern +| @unspecified_element +; + +@pattern_binding_decl_or_none = + @pattern_binding_decl +| @unspecified_element +; + +@precedence_group_decl_or_none = + @precedence_group_decl +| @unspecified_element +; + +@protocol_decl_or_none = + @protocol_decl +| @unspecified_element +; + +@protocol_type_or_none = + @protocol_type +| @unspecified_element +; + +@stmt_or_none = + @stmt +| @unspecified_element +; + +@stmt_condition_or_none = + @stmt_condition +| @unspecified_element +; + +@string_literal_expr_or_none = + @string_literal_expr +| @unspecified_element +; + +@tap_expr_or_none = + @tap_expr +| @unspecified_element +; + +@type_or_none = + @type +| @unspecified_element +; + +@type_alias_decl_or_none = + @type_alias_decl +| @unspecified_element +; + +@type_repr_or_none = + @type_repr +| @unspecified_element +; + +@value_decl_or_none = + @unspecified_element +| @value_decl +; + +@var_decl_or_none = + @unspecified_element +| @var_decl +; diff --git a/swift/ql/lib/upgrades/33e5e5e03bd3f98322f4c67aefa81015be832b88/upgrade.properties b/swift/ql/lib/upgrades/33e5e5e03bd3f98322f4c67aefa81015be832b88/upgrade.properties new file mode 100644 index 00000000000..dfc606c6f14 --- /dev/null +++ b/swift/ql/lib/upgrades/33e5e5e03bd3f98322f4c67aefa81015be832b88/upgrade.properties @@ -0,0 +1,2 @@ +description: Upgrade to Swift 6.3 +compatibility: full diff --git a/swift/ql/lib/upgrades/ee3053b673c901a325b361b18c50b18342752bf8/old.dbscheme b/swift/ql/lib/upgrades/ee3053b673c901a325b361b18c50b18342752bf8/old.dbscheme new file mode 100644 index 00000000000..ee3053b673c --- /dev/null +++ b/swift/ql/lib/upgrades/ee3053b673c901a325b361b18c50b18342752bf8/old.dbscheme @@ -0,0 +1,2889 @@ +// generated by codegen/codegen.py, do not edit + +// from prefix.dbscheme +/** + * The source location of the snapshot. + */ +sourceLocationPrefix( + string prefix: string ref +); + + +// from schema.py + +@element = + @file +| @generic_context +| @locatable +| @location +| @type +; + +#keyset[id] +element_is_unknown( + int id: @element ref +); + +@file = + @db_file +; + +#keyset[id] +files( + int id: @file ref, + string name: string ref +); + +#keyset[id] +file_is_successfully_extracted( + int id: @file ref +); + +@locatable = + @argument +| @ast_node +| @comment +| @diagnostics +| @error_element +; + +#keyset[id] +locatable_locations( + int id: @locatable ref, + int location: @location_or_none ref +); + +@location = + @db_location +; + +#keyset[id] +locations( + int id: @location ref, + int file: @file_or_none ref, + int start_line: int ref, + int start_column: int ref, + int end_line: int ref, + int end_column: int ref +); + +@ast_node = + @availability_info +| @availability_spec +| @callable +| @case_label_item +| @condition_element +| @decl +| @expr +| @key_path_component +| @macro_role +| @pattern +| @stmt +| @stmt_condition +| @type_repr +; + +comments( + unique int id: @comment, + string text: string ref +); + +db_files( + unique int id: @db_file +); + +db_locations( + unique int id: @db_location +); + +diagnostics( + unique int id: @diagnostics, + string text: string ref, + int kind: int ref +); + +@error_element = + @error_expr +| @error_type +| @overloaded_decl_ref_expr +| @unresolved_decl_ref_expr +| @unresolved_dot_expr +| @unresolved_member_chain_result_expr +| @unresolved_member_expr +| @unresolved_pattern_expr +| @unresolved_specialize_expr +| @unresolved_type +| @unresolved_type_conversion_expr +| @unspecified_element +; + +availability_infos( + unique int id: @availability_info +); + +#keyset[id] +availability_info_is_unavailable( + int id: @availability_info ref +); + +#keyset[id, index] +availability_info_specs( + int id: @availability_info ref, + int index: int ref, + int spec: @availability_spec_or_none ref +); + +availability_specs( + unique int id: @availability_spec +); + +#keyset[id] +availability_spec_platforms( + int id: @availability_spec ref, + string platform: string ref +); + +#keyset[id] +availability_spec_versions( + int id: @availability_spec ref, + string version: string ref +); + +#keyset[id] +availability_spec_is_wildcard( + int id: @availability_spec ref +); + +@callable = + @closure_expr +| @function +; + +#keyset[id] +callable_names( + int id: @callable ref, + string name: string ref +); + +#keyset[id] +callable_self_params( + int id: @callable ref, + int self_param: @param_decl_or_none ref +); + +#keyset[id, index] +callable_params( + int id: @callable ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +#keyset[id] +callable_bodies( + int id: @callable ref, + int body: @brace_stmt_or_none ref +); + +#keyset[id, index] +callable_captures( + int id: @callable ref, + int index: int ref, + int capture: @captured_decl_or_none ref +); + +key_path_components( + unique int id: @key_path_component, + int kind: int ref, + int component_type: @type_or_none ref +); + +#keyset[id, index] +key_path_component_subscript_arguments( + int id: @key_path_component ref, + int index: int ref, + int subscript_argument: @argument_or_none ref +); + +#keyset[id] +key_path_component_tuple_indices( + int id: @key_path_component ref, + int tuple_index: int ref +); + +#keyset[id] +key_path_component_decl_refs( + int id: @key_path_component ref, + int decl_ref: @value_decl_or_none ref +); + +macro_roles( + unique int id: @macro_role, + int kind: int ref, + int macro_syntax: int ref +); + +#keyset[id, index] +macro_role_conformances( + int id: @macro_role ref, + int index: int ref, + int conformance: @expr_or_none ref +); + +#keyset[id, index] +macro_role_names( + int id: @macro_role ref, + int index: int ref, + string name: string ref +); + +unspecified_elements( + unique int id: @unspecified_element, + string property: string ref, + string error: string ref +); + +#keyset[id] +unspecified_element_parents( + int id: @unspecified_element ref, + int parent: @element ref +); + +#keyset[id] +unspecified_element_indices( + int id: @unspecified_element ref, + int index: int ref +); + +#keyset[id, index] +unspecified_element_children( + int id: @unspecified_element ref, + int index: int ref, + int child: @ast_node_or_none ref +); + +@decl = + @captured_decl +| @enum_case_decl +| @extension_decl +| @if_config_decl +| @import_decl +| @missing_member_decl +| @operator_decl +| @pattern_binding_decl +| @pound_diagnostic_decl +| @precedence_group_decl +| @top_level_code_decl +| @using_decl +| @value_decl +; + +#keyset[id] +decls( //dir=decl + int id: @decl ref, + int module: @module_decl_or_none ref +); + +#keyset[id, index] +decl_members( //dir=decl + int id: @decl ref, + int index: int ref, + int member: @decl_or_none ref +); + +@generic_context = + @extension_decl +| @function +| @generic_type_decl +| @macro_decl +| @subscript_decl +; + +#keyset[id, index] +generic_context_generic_type_params( //dir=decl + int id: @generic_context ref, + int index: int ref, + int generic_type_param: @generic_type_param_decl_or_none ref +); + +captured_decls( //dir=decl + unique int id: @captured_decl, + int decl: @value_decl_or_none ref +); + +#keyset[id] +captured_decl_is_direct( //dir=decl + int id: @captured_decl ref +); + +#keyset[id] +captured_decl_is_escaping( //dir=decl + int id: @captured_decl ref +); + +enum_case_decls( //dir=decl + unique int id: @enum_case_decl +); + +#keyset[id, index] +enum_case_decl_elements( //dir=decl + int id: @enum_case_decl ref, + int index: int ref, + int element: @enum_element_decl_or_none ref +); + +extension_decls( //dir=decl + unique int id: @extension_decl, + int extended_type_decl: @nominal_type_decl_or_none ref +); + +#keyset[id, index] +extension_decl_protocols( //dir=decl + int id: @extension_decl ref, + int index: int ref, + int protocol: @protocol_decl_or_none ref +); + +if_config_decls( //dir=decl + unique int id: @if_config_decl +); + +#keyset[id, index] +if_config_decl_active_elements( //dir=decl + int id: @if_config_decl ref, + int index: int ref, + int active_element: @ast_node_or_none ref +); + +import_decls( //dir=decl + unique int id: @import_decl +); + +#keyset[id] +import_decl_is_exported( //dir=decl + int id: @import_decl ref +); + +#keyset[id] +import_decl_imported_modules( //dir=decl + int id: @import_decl ref, + int imported_module: @module_decl_or_none ref +); + +#keyset[id, index] +import_decl_declarations( //dir=decl + int id: @import_decl ref, + int index: int ref, + int declaration: @value_decl_or_none ref +); + +missing_member_decls( //dir=decl + unique int id: @missing_member_decl, + string name: string ref +); + +@operator_decl = + @infix_operator_decl +| @postfix_operator_decl +| @prefix_operator_decl +; + +#keyset[id] +operator_decls( //dir=decl + int id: @operator_decl ref, + string name: string ref +); + +pattern_binding_decls( //dir=decl + unique int id: @pattern_binding_decl +); + +#keyset[id, index] +pattern_binding_decl_inits( //dir=decl + int id: @pattern_binding_decl ref, + int index: int ref, + int init: @expr_or_none ref +); + +#keyset[id, index] +pattern_binding_decl_patterns( //dir=decl + int id: @pattern_binding_decl ref, + int index: int ref, + int pattern: @pattern_or_none ref +); + +pound_diagnostic_decls( //dir=decl + unique int id: @pound_diagnostic_decl, + int kind: int ref, + int message: @string_literal_expr_or_none ref +); + +precedence_group_decls( //dir=decl + unique int id: @precedence_group_decl +); + +top_level_code_decls( //dir=decl + unique int id: @top_level_code_decl, + int body: @brace_stmt_or_none ref +); + +using_decls( //dir=decl + unique int id: @using_decl +); + +#keyset[id] +using_decl_is_main_actor( //dir=decl + int id: @using_decl ref +); + +#keyset[id] +using_decl_is_nonisolated( //dir=decl + int id: @using_decl ref +); + +@value_decl = + @abstract_storage_decl +| @enum_element_decl +| @function +| @macro_decl +| @type_decl +; + +#keyset[id] +value_decls( //dir=decl + int id: @value_decl ref, + int interface_type: @type_or_none ref +); + +@abstract_storage_decl = + @subscript_decl +| @var_decl +; + +#keyset[id, index] +abstract_storage_decl_accessors( //dir=decl + int id: @abstract_storage_decl ref, + int index: int ref, + int accessor: @accessor_or_none ref +); + +enum_element_decls( //dir=decl + unique int id: @enum_element_decl, + string name: string ref +); + +#keyset[id, index] +enum_element_decl_params( //dir=decl + int id: @enum_element_decl ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +@function = + @accessor_or_named_function +| @deinitializer +| @initializer +; + +infix_operator_decls( //dir=decl + unique int id: @infix_operator_decl +); + +#keyset[id] +infix_operator_decl_precedence_groups( //dir=decl + int id: @infix_operator_decl ref, + int precedence_group: @precedence_group_decl_or_none ref +); + +macro_decls( //dir=decl + unique int id: @macro_decl, + string name: string ref +); + +#keyset[id, index] +macro_decl_parameters( //dir=decl + int id: @macro_decl ref, + int index: int ref, + int parameter: @param_decl_or_none ref +); + +#keyset[id, index] +macro_decl_roles( //dir=decl + int id: @macro_decl ref, + int index: int ref, + int role: @macro_role_or_none ref +); + +postfix_operator_decls( //dir=decl + unique int id: @postfix_operator_decl +); + +prefix_operator_decls( //dir=decl + unique int id: @prefix_operator_decl +); + +@type_decl = + @abstract_type_param_decl +| @generic_type_decl +| @module_decl +; + +#keyset[id] +type_decls( //dir=decl + int id: @type_decl ref, + string name: string ref +); + +#keyset[id, index] +type_decl_inherited_types( //dir=decl + int id: @type_decl ref, + int index: int ref, + int inherited_type: @type_or_none ref +); + +@abstract_type_param_decl = + @associated_type_decl +| @generic_type_param_decl +; + +@accessor_or_named_function = + @accessor +| @named_function +; + +deinitializers( //dir=decl + unique int id: @deinitializer +); + +@generic_type_decl = + @nominal_type_decl +| @opaque_type_decl +| @type_alias_decl +; + +initializers( //dir=decl + unique int id: @initializer +); + +module_decls( //dir=decl + unique int id: @module_decl +); + +#keyset[id] +module_decl_is_builtin_module( //dir=decl + int id: @module_decl ref +); + +#keyset[id] +module_decl_is_system_module( //dir=decl + int id: @module_decl ref +); + +module_decl_imported_modules( //dir=decl + int id: @module_decl ref, + int imported_module: @module_decl_or_none ref +); + +module_decl_exported_modules( //dir=decl + int id: @module_decl ref, + int exported_module: @module_decl_or_none ref +); + +subscript_decls( //dir=decl + unique int id: @subscript_decl, + int element_type: @type_or_none ref +); + +#keyset[id, index] +subscript_decl_params( //dir=decl + int id: @subscript_decl ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +@var_decl = + @concrete_var_decl +| @param_decl +; + +#keyset[id] +var_decls( //dir=decl + int id: @var_decl ref, + string name: string ref, + int type_: @type_or_none ref +); + +#keyset[id] +var_decl_attached_property_wrapper_types( //dir=decl + int id: @var_decl ref, + int attached_property_wrapper_type: @type_or_none ref +); + +#keyset[id] +var_decl_parent_patterns( //dir=decl + int id: @var_decl ref, + int parent_pattern: @pattern_or_none ref +); + +#keyset[id] +var_decl_parent_initializers( //dir=decl + int id: @var_decl ref, + int parent_initializer: @expr_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_backing_var_bindings( //dir=decl + int id: @var_decl ref, + int property_wrapper_backing_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_backing_vars( //dir=decl + int id: @var_decl ref, + int property_wrapper_backing_var: @var_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_projection_var_bindings( //dir=decl + int id: @var_decl ref, + int property_wrapper_projection_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_projection_vars( //dir=decl + int id: @var_decl ref, + int property_wrapper_projection_var: @var_decl_or_none ref +); + +accessors( //dir=decl + unique int id: @accessor +); + +#keyset[id] +accessor_is_getter( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_setter( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_will_set( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_did_set( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_read( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_modify( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_unsafe_address( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_unsafe_mutable_address( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_distributed_get( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_read2( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_modify2( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_init( //dir=decl + int id: @accessor ref +); + +associated_type_decls( //dir=decl + unique int id: @associated_type_decl +); + +concrete_var_decls( //dir=decl + unique int id: @concrete_var_decl, + int introducer_int: int ref +); + +generic_type_param_decls( //dir=decl + unique int id: @generic_type_param_decl +); + +named_functions( //dir=decl + unique int id: @named_function +); + +@nominal_type_decl = + @class_decl +| @enum_decl +| @protocol_decl +| @struct_decl +; + +#keyset[id] +nominal_type_decls( //dir=decl + int id: @nominal_type_decl ref, + int type_: @type_or_none ref +); + +opaque_type_decls( //dir=decl + unique int id: @opaque_type_decl, + int naming_declaration: @value_decl_or_none ref +); + +#keyset[id, index] +opaque_type_decl_opaque_generic_params( //dir=decl + int id: @opaque_type_decl ref, + int index: int ref, + int opaque_generic_param: @generic_type_param_type_or_none ref +); + +param_decls( //dir=decl + unique int id: @param_decl +); + +#keyset[id] +param_decl_is_inout( //dir=decl + int id: @param_decl ref +); + +#keyset[id] +param_decl_property_wrapper_local_wrapped_var_bindings( //dir=decl + int id: @param_decl ref, + int property_wrapper_local_wrapped_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +param_decl_property_wrapper_local_wrapped_vars( //dir=decl + int id: @param_decl ref, + int property_wrapper_local_wrapped_var: @var_decl_or_none ref +); + +type_alias_decls( //dir=decl + unique int id: @type_alias_decl, + int aliased_type: @type_or_none ref +); + +class_decls( //dir=decl + unique int id: @class_decl +); + +enum_decls( //dir=decl + unique int id: @enum_decl +); + +protocol_decls( //dir=decl + unique int id: @protocol_decl +); + +struct_decls( //dir=decl + unique int id: @struct_decl +); + +arguments( //dir=expr + unique int id: @argument, + string label: string ref, + int expr: @expr_or_none ref +); + +@expr = + @any_try_expr +| @applied_property_wrapper_expr +| @apply_expr +| @assign_expr +| @bind_optional_expr +| @capture_list_expr +| @closure_expr +| @collection_expr +| @consume_expr +| @copy_expr +| @current_context_isolation_expr +| @decl_ref_expr +| @default_argument_expr +| @discard_assignment_expr +| @dot_syntax_base_ignored_expr +| @dynamic_type_expr +| @enum_is_case_expr +| @error_expr +| @explicit_cast_expr +| @extract_function_isolation_expr +| @force_value_expr +| @identity_expr +| @if_expr +| @implicit_conversion_expr +| @in_out_expr +| @key_path_application_expr +| @key_path_dot_expr +| @key_path_expr +| @lazy_initialization_expr +| @literal_expr +| @lookup_expr +| @make_temporarily_escapable_expr +| @materialize_pack_expr +| @obj_c_selector_expr +| @one_way_expr +| @opaque_value_expr +| @open_existential_expr +| @optional_evaluation_expr +| @other_initializer_ref_expr +| @overloaded_decl_ref_expr +| @pack_element_expr +| @pack_expansion_expr +| @property_wrapper_value_placeholder_expr +| @rebind_self_in_initializer_expr +| @sequence_expr +| @single_value_stmt_expr +| @super_ref_expr +| @tap_expr +| @tuple_element_expr +| @tuple_expr +| @type_expr +| @type_value_expr +| @unresolved_decl_ref_expr +| @unresolved_dot_expr +| @unresolved_member_expr +| @unresolved_pattern_expr +| @unresolved_specialize_expr +| @vararg_expansion_expr +; + +#keyset[id] +expr_types( //dir=expr + int id: @expr ref, + int type_: @type_or_none ref +); + +@any_try_expr = + @force_try_expr +| @optional_try_expr +| @try_expr +; + +#keyset[id] +any_try_exprs( //dir=expr + int id: @any_try_expr ref, + int sub_expr: @expr_or_none ref +); + +applied_property_wrapper_exprs( //dir=expr + unique int id: @applied_property_wrapper_expr, + int kind: int ref, + int value: @expr_or_none ref, + int param: @param_decl_or_none ref +); + +@apply_expr = + @binary_expr +| @call_expr +| @postfix_unary_expr +| @prefix_unary_expr +| @self_apply_expr +; + +#keyset[id] +apply_exprs( //dir=expr + int id: @apply_expr ref, + int function: @expr_or_none ref +); + +#keyset[id, index] +apply_expr_arguments( //dir=expr + int id: @apply_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +assign_exprs( //dir=expr + unique int id: @assign_expr, + int dest: @expr_or_none ref, + int source: @expr_or_none ref +); + +bind_optional_exprs( //dir=expr + unique int id: @bind_optional_expr, + int sub_expr: @expr_or_none ref +); + +capture_list_exprs( //dir=expr + unique int id: @capture_list_expr, + int closure_body: @closure_expr_or_none ref +); + +#keyset[id, index] +capture_list_expr_binding_decls( //dir=expr + int id: @capture_list_expr ref, + int index: int ref, + int binding_decl: @pattern_binding_decl_or_none ref +); + +@closure_expr = + @auto_closure_expr +| @explicit_closure_expr +; + +@collection_expr = + @array_expr +| @dictionary_expr +; + +consume_exprs( //dir=expr + unique int id: @consume_expr, + int sub_expr: @expr_or_none ref +); + +copy_exprs( //dir=expr + unique int id: @copy_expr, + int sub_expr: @expr_or_none ref +); + +current_context_isolation_exprs( //dir=expr + unique int id: @current_context_isolation_expr, + int actor: @expr_or_none ref +); + +decl_ref_exprs( //dir=expr + unique int id: @decl_ref_expr, + int decl: @decl_or_none ref +); + +#keyset[id, index] +decl_ref_expr_replacement_types( //dir=expr + int id: @decl_ref_expr ref, + int index: int ref, + int replacement_type: @type_or_none ref +); + +#keyset[id] +decl_ref_expr_has_direct_to_storage_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_ordinary_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_distributed_thunk_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +default_argument_exprs( //dir=expr + unique int id: @default_argument_expr, + int param_decl: @param_decl_or_none ref, + int param_index: int ref +); + +#keyset[id] +default_argument_expr_caller_side_defaults( //dir=expr + int id: @default_argument_expr ref, + int caller_side_default: @expr_or_none ref +); + +discard_assignment_exprs( //dir=expr + unique int id: @discard_assignment_expr +); + +dot_syntax_base_ignored_exprs( //dir=expr + unique int id: @dot_syntax_base_ignored_expr, + int qualifier: @expr_or_none ref, + int sub_expr: @expr_or_none ref +); + +dynamic_type_exprs( //dir=expr + unique int id: @dynamic_type_expr, + int base: @expr_or_none ref +); + +enum_is_case_exprs( //dir=expr + unique int id: @enum_is_case_expr, + int sub_expr: @expr_or_none ref, + int element: @enum_element_decl_or_none ref +); + +error_exprs( //dir=expr + unique int id: @error_expr +); + +@explicit_cast_expr = + @checked_cast_expr +| @coerce_expr +; + +#keyset[id] +explicit_cast_exprs( //dir=expr + int id: @explicit_cast_expr ref, + int sub_expr: @expr_or_none ref +); + +extract_function_isolation_exprs( //dir=expr + unique int id: @extract_function_isolation_expr, + int function_expr: @expr_or_none ref +); + +force_value_exprs( //dir=expr + unique int id: @force_value_expr, + int sub_expr: @expr_or_none ref +); + +@identity_expr = + @await_expr +| @borrow_expr +| @dot_self_expr +| @paren_expr +| @unresolved_member_chain_result_expr +| @unsafe_expr +; + +#keyset[id] +identity_exprs( //dir=expr + int id: @identity_expr ref, + int sub_expr: @expr_or_none ref +); + +if_exprs( //dir=expr + unique int id: @if_expr, + int condition: @expr_or_none ref, + int then_expr: @expr_or_none ref, + int else_expr: @expr_or_none ref +); + +@implicit_conversion_expr = + @abi_safe_conversion_expr +| @actor_isolation_erasure_expr +| @any_hashable_erasure_expr +| @archetype_to_super_expr +| @array_to_pointer_expr +| @bridge_from_obj_c_expr +| @bridge_to_obj_c_expr +| @class_metatype_to_object_expr +| @collection_upcast_conversion_expr +| @conditional_bridge_from_obj_c_expr +| @covariant_function_conversion_expr +| @covariant_return_conversion_expr +| @derived_to_base_expr +| @destructure_tuple_expr +| @differentiable_function_expr +| @differentiable_function_extract_original_expr +| @erasure_expr +| @existential_metatype_to_object_expr +| @foreign_object_conversion_expr +| @function_conversion_expr +| @in_out_to_pointer_expr +| @inject_into_optional_expr +| @linear_function_expr +| @linear_function_extract_original_expr +| @linear_to_differentiable_function_expr +| @load_expr +| @metatype_conversion_expr +| @pointer_to_pointer_expr +| @protocol_metatype_to_object_expr +| @string_to_pointer_expr +| @underlying_to_opaque_expr +| @unevaluated_instance_expr +| @unreachable_expr +| @unresolved_type_conversion_expr +| @unsafe_cast_expr +; + +#keyset[id] +implicit_conversion_exprs( //dir=expr + int id: @implicit_conversion_expr ref, + int sub_expr: @expr_or_none ref +); + +in_out_exprs( //dir=expr + unique int id: @in_out_expr, + int sub_expr: @expr_or_none ref +); + +key_path_application_exprs( //dir=expr + unique int id: @key_path_application_expr, + int base: @expr_or_none ref, + int key_path: @expr_or_none ref +); + +key_path_dot_exprs( //dir=expr + unique int id: @key_path_dot_expr +); + +key_path_exprs( //dir=expr + unique int id: @key_path_expr +); + +#keyset[id] +key_path_expr_roots( //dir=expr + int id: @key_path_expr ref, + int root: @type_repr_or_none ref +); + +#keyset[id, index] +key_path_expr_components( //dir=expr + int id: @key_path_expr ref, + int index: int ref, + int component: @key_path_component_or_none ref +); + +lazy_initialization_exprs( //dir=expr + unique int id: @lazy_initialization_expr, + int sub_expr: @expr_or_none ref +); + +@literal_expr = + @builtin_literal_expr +| @interpolated_string_literal_expr +| @nil_literal_expr +| @object_literal_expr +| @regex_literal_expr +; + +@lookup_expr = + @dynamic_lookup_expr +| @member_ref_expr +| @subscript_expr +; + +#keyset[id] +lookup_exprs( //dir=expr + int id: @lookup_expr ref, + int base: @expr_or_none ref +); + +#keyset[id] +lookup_expr_members( //dir=expr + int id: @lookup_expr ref, + int member: @decl_or_none ref +); + +make_temporarily_escapable_exprs( //dir=expr + unique int id: @make_temporarily_escapable_expr, + int escaping_closure: @opaque_value_expr_or_none ref, + int nonescaping_closure: @expr_or_none ref, + int sub_expr: @expr_or_none ref +); + +materialize_pack_exprs( //dir=expr + unique int id: @materialize_pack_expr, + int sub_expr: @expr_or_none ref +); + +obj_c_selector_exprs( //dir=expr + unique int id: @obj_c_selector_expr, + int sub_expr: @expr_or_none ref, + int method: @function_or_none ref +); + +one_way_exprs( //dir=expr + unique int id: @one_way_expr, + int sub_expr: @expr_or_none ref +); + +opaque_value_exprs( //dir=expr + unique int id: @opaque_value_expr +); + +open_existential_exprs( //dir=expr + unique int id: @open_existential_expr, + int sub_expr: @expr_or_none ref, + int existential: @expr_or_none ref, + int opaque_expr: @opaque_value_expr_or_none ref +); + +optional_evaluation_exprs( //dir=expr + unique int id: @optional_evaluation_expr, + int sub_expr: @expr_or_none ref +); + +other_initializer_ref_exprs( //dir=expr + unique int id: @other_initializer_ref_expr, + int initializer: @initializer_or_none ref +); + +overloaded_decl_ref_exprs( //dir=expr + unique int id: @overloaded_decl_ref_expr +); + +#keyset[id, index] +overloaded_decl_ref_expr_possible_declarations( //dir=expr + int id: @overloaded_decl_ref_expr ref, + int index: int ref, + int possible_declaration: @value_decl_or_none ref +); + +pack_element_exprs( //dir=expr + unique int id: @pack_element_expr, + int sub_expr: @expr_or_none ref +); + +pack_expansion_exprs( //dir=expr + unique int id: @pack_expansion_expr, + int pattern_expr: @expr_or_none ref +); + +property_wrapper_value_placeholder_exprs( //dir=expr + unique int id: @property_wrapper_value_placeholder_expr, + int placeholder: @opaque_value_expr_or_none ref +); + +#keyset[id] +property_wrapper_value_placeholder_expr_wrapped_values( //dir=expr + int id: @property_wrapper_value_placeholder_expr ref, + int wrapped_value: @expr_or_none ref +); + +rebind_self_in_initializer_exprs( //dir=expr + unique int id: @rebind_self_in_initializer_expr, + int sub_expr: @expr_or_none ref, + int self: @var_decl_or_none ref +); + +sequence_exprs( //dir=expr + unique int id: @sequence_expr +); + +#keyset[id, index] +sequence_expr_elements( //dir=expr + int id: @sequence_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +single_value_stmt_exprs( //dir=expr + unique int id: @single_value_stmt_expr, + int stmt: @stmt_or_none ref +); + +super_ref_exprs( //dir=expr + unique int id: @super_ref_expr, + int self: @var_decl_or_none ref +); + +tap_exprs( //dir=expr + unique int id: @tap_expr, + int body: @brace_stmt_or_none ref, + int var: @var_decl_or_none ref +); + +#keyset[id] +tap_expr_sub_exprs( //dir=expr + int id: @tap_expr ref, + int sub_expr: @expr_or_none ref +); + +tuple_element_exprs( //dir=expr + unique int id: @tuple_element_expr, + int sub_expr: @expr_or_none ref, + int index: int ref +); + +tuple_exprs( //dir=expr + unique int id: @tuple_expr +); + +#keyset[id, index] +tuple_expr_elements( //dir=expr + int id: @tuple_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +type_exprs( //dir=expr + unique int id: @type_expr +); + +#keyset[id] +type_expr_type_reprs( //dir=expr + int id: @type_expr ref, + int type_repr: @type_repr_or_none ref +); + +type_value_exprs( //dir=expr + unique int id: @type_value_expr, + int type_repr: @type_repr_or_none ref +); + +unresolved_decl_ref_exprs( //dir=expr + unique int id: @unresolved_decl_ref_expr +); + +#keyset[id] +unresolved_decl_ref_expr_names( //dir=expr + int id: @unresolved_decl_ref_expr ref, + string name: string ref +); + +unresolved_dot_exprs( //dir=expr + unique int id: @unresolved_dot_expr, + int base: @expr_or_none ref, + string name: string ref +); + +unresolved_member_exprs( //dir=expr + unique int id: @unresolved_member_expr, + string name: string ref +); + +unresolved_pattern_exprs( //dir=expr + unique int id: @unresolved_pattern_expr, + int sub_pattern: @pattern_or_none ref +); + +unresolved_specialize_exprs( //dir=expr + unique int id: @unresolved_specialize_expr, + int sub_expr: @expr_or_none ref +); + +vararg_expansion_exprs( //dir=expr + unique int id: @vararg_expansion_expr, + int sub_expr: @expr_or_none ref +); + +abi_safe_conversion_exprs( //dir=expr + unique int id: @abi_safe_conversion_expr +); + +actor_isolation_erasure_exprs( //dir=expr + unique int id: @actor_isolation_erasure_expr +); + +any_hashable_erasure_exprs( //dir=expr + unique int id: @any_hashable_erasure_expr +); + +archetype_to_super_exprs( //dir=expr + unique int id: @archetype_to_super_expr +); + +array_exprs( //dir=expr + unique int id: @array_expr +); + +#keyset[id, index] +array_expr_elements( //dir=expr + int id: @array_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +array_to_pointer_exprs( //dir=expr + unique int id: @array_to_pointer_expr +); + +auto_closure_exprs( //dir=expr + unique int id: @auto_closure_expr +); + +await_exprs( //dir=expr + unique int id: @await_expr +); + +binary_exprs( //dir=expr + unique int id: @binary_expr +); + +borrow_exprs( //dir=expr + unique int id: @borrow_expr +); + +bridge_from_obj_c_exprs( //dir=expr + unique int id: @bridge_from_obj_c_expr +); + +bridge_to_obj_c_exprs( //dir=expr + unique int id: @bridge_to_obj_c_expr +); + +@builtin_literal_expr = + @boolean_literal_expr +| @magic_identifier_literal_expr +| @number_literal_expr +| @string_literal_expr +; + +call_exprs( //dir=expr + unique int id: @call_expr +); + +@checked_cast_expr = + @conditional_checked_cast_expr +| @forced_checked_cast_expr +| @is_expr +; + +class_metatype_to_object_exprs( //dir=expr + unique int id: @class_metatype_to_object_expr +); + +coerce_exprs( //dir=expr + unique int id: @coerce_expr +); + +collection_upcast_conversion_exprs( //dir=expr + unique int id: @collection_upcast_conversion_expr +); + +conditional_bridge_from_obj_c_exprs( //dir=expr + unique int id: @conditional_bridge_from_obj_c_expr +); + +covariant_function_conversion_exprs( //dir=expr + unique int id: @covariant_function_conversion_expr +); + +covariant_return_conversion_exprs( //dir=expr + unique int id: @covariant_return_conversion_expr +); + +derived_to_base_exprs( //dir=expr + unique int id: @derived_to_base_expr +); + +destructure_tuple_exprs( //dir=expr + unique int id: @destructure_tuple_expr +); + +dictionary_exprs( //dir=expr + unique int id: @dictionary_expr +); + +#keyset[id, index] +dictionary_expr_elements( //dir=expr + int id: @dictionary_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +differentiable_function_exprs( //dir=expr + unique int id: @differentiable_function_expr +); + +differentiable_function_extract_original_exprs( //dir=expr + unique int id: @differentiable_function_extract_original_expr +); + +dot_self_exprs( //dir=expr + unique int id: @dot_self_expr +); + +@dynamic_lookup_expr = + @dynamic_member_ref_expr +| @dynamic_subscript_expr +; + +erasure_exprs( //dir=expr + unique int id: @erasure_expr +); + +existential_metatype_to_object_exprs( //dir=expr + unique int id: @existential_metatype_to_object_expr +); + +explicit_closure_exprs( //dir=expr + unique int id: @explicit_closure_expr +); + +force_try_exprs( //dir=expr + unique int id: @force_try_expr +); + +foreign_object_conversion_exprs( //dir=expr + unique int id: @foreign_object_conversion_expr +); + +function_conversion_exprs( //dir=expr + unique int id: @function_conversion_expr +); + +in_out_to_pointer_exprs( //dir=expr + unique int id: @in_out_to_pointer_expr +); + +inject_into_optional_exprs( //dir=expr + unique int id: @inject_into_optional_expr +); + +interpolated_string_literal_exprs( //dir=expr + unique int id: @interpolated_string_literal_expr +); + +#keyset[id] +interpolated_string_literal_expr_interpolation_exprs( //dir=expr + int id: @interpolated_string_literal_expr ref, + int interpolation_expr: @opaque_value_expr_or_none ref +); + +#keyset[id] +interpolated_string_literal_expr_appending_exprs( //dir=expr + int id: @interpolated_string_literal_expr ref, + int appending_expr: @tap_expr_or_none ref +); + +linear_function_exprs( //dir=expr + unique int id: @linear_function_expr +); + +linear_function_extract_original_exprs( //dir=expr + unique int id: @linear_function_extract_original_expr +); + +linear_to_differentiable_function_exprs( //dir=expr + unique int id: @linear_to_differentiable_function_expr +); + +load_exprs( //dir=expr + unique int id: @load_expr +); + +member_ref_exprs( //dir=expr + unique int id: @member_ref_expr +); + +#keyset[id] +member_ref_expr_has_direct_to_storage_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_ordinary_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_distributed_thunk_semantics( //dir=expr + int id: @member_ref_expr ref +); + +metatype_conversion_exprs( //dir=expr + unique int id: @metatype_conversion_expr +); + +nil_literal_exprs( //dir=expr + unique int id: @nil_literal_expr +); + +object_literal_exprs( //dir=expr + unique int id: @object_literal_expr, + int kind: int ref +); + +#keyset[id, index] +object_literal_expr_arguments( //dir=expr + int id: @object_literal_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +optional_try_exprs( //dir=expr + unique int id: @optional_try_expr +); + +paren_exprs( //dir=expr + unique int id: @paren_expr +); + +pointer_to_pointer_exprs( //dir=expr + unique int id: @pointer_to_pointer_expr +); + +postfix_unary_exprs( //dir=expr + unique int id: @postfix_unary_expr +); + +prefix_unary_exprs( //dir=expr + unique int id: @prefix_unary_expr +); + +protocol_metatype_to_object_exprs( //dir=expr + unique int id: @protocol_metatype_to_object_expr +); + +regex_literal_exprs( //dir=expr + unique int id: @regex_literal_expr, + string pattern: string ref, + int version: int ref +); + +@self_apply_expr = + @dot_syntax_call_expr +| @initializer_ref_call_expr +; + +#keyset[id] +self_apply_exprs( //dir=expr + int id: @self_apply_expr ref, + int base: @expr_or_none ref +); + +string_to_pointer_exprs( //dir=expr + unique int id: @string_to_pointer_expr +); + +subscript_exprs( //dir=expr + unique int id: @subscript_expr +); + +#keyset[id, index] +subscript_expr_arguments( //dir=expr + int id: @subscript_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +#keyset[id] +subscript_expr_has_direct_to_storage_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_ordinary_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_distributed_thunk_semantics( //dir=expr + int id: @subscript_expr ref +); + +try_exprs( //dir=expr + unique int id: @try_expr +); + +underlying_to_opaque_exprs( //dir=expr + unique int id: @underlying_to_opaque_expr +); + +unevaluated_instance_exprs( //dir=expr + unique int id: @unevaluated_instance_expr +); + +unreachable_exprs( //dir=expr + unique int id: @unreachable_expr +); + +unresolved_member_chain_result_exprs( //dir=expr + unique int id: @unresolved_member_chain_result_expr +); + +unresolved_type_conversion_exprs( //dir=expr + unique int id: @unresolved_type_conversion_expr +); + +unsafe_cast_exprs( //dir=expr + unique int id: @unsafe_cast_expr +); + +unsafe_exprs( //dir=expr + unique int id: @unsafe_expr +); + +boolean_literal_exprs( //dir=expr + unique int id: @boolean_literal_expr, + boolean value: boolean ref +); + +conditional_checked_cast_exprs( //dir=expr + unique int id: @conditional_checked_cast_expr +); + +dot_syntax_call_exprs( //dir=expr + unique int id: @dot_syntax_call_expr +); + +dynamic_member_ref_exprs( //dir=expr + unique int id: @dynamic_member_ref_expr +); + +dynamic_subscript_exprs( //dir=expr + unique int id: @dynamic_subscript_expr +); + +forced_checked_cast_exprs( //dir=expr + unique int id: @forced_checked_cast_expr +); + +initializer_ref_call_exprs( //dir=expr + unique int id: @initializer_ref_call_expr +); + +is_exprs( //dir=expr + unique int id: @is_expr +); + +magic_identifier_literal_exprs( //dir=expr + unique int id: @magic_identifier_literal_expr, + string kind: string ref +); + +@number_literal_expr = + @float_literal_expr +| @integer_literal_expr +; + +string_literal_exprs( //dir=expr + unique int id: @string_literal_expr, + string value: string ref +); + +float_literal_exprs( //dir=expr + unique int id: @float_literal_expr, + string string_value: string ref +); + +integer_literal_exprs( //dir=expr + unique int id: @integer_literal_expr, + string string_value: string ref +); + +@pattern = + @any_pattern +| @binding_pattern +| @bool_pattern +| @enum_element_pattern +| @expr_pattern +| @is_pattern +| @named_pattern +| @optional_some_pattern +| @paren_pattern +| @tuple_pattern +| @typed_pattern +; + +#keyset[id] +pattern_types( //dir=pattern + int id: @pattern ref, + int type_: @type_or_none ref +); + +any_patterns( //dir=pattern + unique int id: @any_pattern +); + +binding_patterns( //dir=pattern + unique int id: @binding_pattern, + int sub_pattern: @pattern_or_none ref +); + +bool_patterns( //dir=pattern + unique int id: @bool_pattern, + boolean value: boolean ref +); + +enum_element_patterns( //dir=pattern + unique int id: @enum_element_pattern, + int element: @enum_element_decl_or_none ref +); + +#keyset[id] +enum_element_pattern_sub_patterns( //dir=pattern + int id: @enum_element_pattern ref, + int sub_pattern: @pattern_or_none ref +); + +expr_patterns( //dir=pattern + unique int id: @expr_pattern, + int sub_expr: @expr_or_none ref +); + +is_patterns( //dir=pattern + unique int id: @is_pattern +); + +#keyset[id] +is_pattern_cast_type_reprs( //dir=pattern + int id: @is_pattern ref, + int cast_type_repr: @type_repr_or_none ref +); + +#keyset[id] +is_pattern_sub_patterns( //dir=pattern + int id: @is_pattern ref, + int sub_pattern: @pattern_or_none ref +); + +named_patterns( //dir=pattern + unique int id: @named_pattern, + int var_decl: @var_decl_or_none ref +); + +optional_some_patterns( //dir=pattern + unique int id: @optional_some_pattern, + int sub_pattern: @pattern_or_none ref +); + +paren_patterns( //dir=pattern + unique int id: @paren_pattern, + int sub_pattern: @pattern_or_none ref +); + +tuple_patterns( //dir=pattern + unique int id: @tuple_pattern +); + +#keyset[id, index] +tuple_pattern_elements( //dir=pattern + int id: @tuple_pattern ref, + int index: int ref, + int element: @pattern_or_none ref +); + +typed_patterns( //dir=pattern + unique int id: @typed_pattern, + int sub_pattern: @pattern_or_none ref +); + +#keyset[id] +typed_pattern_type_reprs( //dir=pattern + int id: @typed_pattern ref, + int type_repr: @type_repr_or_none ref +); + +case_label_items( //dir=stmt + unique int id: @case_label_item, + int pattern: @pattern_or_none ref +); + +#keyset[id] +case_label_item_guards( //dir=stmt + int id: @case_label_item ref, + int guard: @expr_or_none ref +); + +condition_elements( //dir=stmt + unique int id: @condition_element +); + +#keyset[id] +condition_element_booleans( //dir=stmt + int id: @condition_element ref, + int boolean_: @expr_or_none ref +); + +#keyset[id] +condition_element_patterns( //dir=stmt + int id: @condition_element ref, + int pattern: @pattern_or_none ref +); + +#keyset[id] +condition_element_initializers( //dir=stmt + int id: @condition_element ref, + int initializer: @expr_or_none ref +); + +#keyset[id] +condition_element_availabilities( //dir=stmt + int id: @condition_element ref, + int availability: @availability_info_or_none ref +); + +@stmt = + @brace_stmt +| @break_stmt +| @case_stmt +| @continue_stmt +| @defer_stmt +| @discard_stmt +| @fail_stmt +| @fallthrough_stmt +| @labeled_stmt +| @pound_assert_stmt +| @return_stmt +| @then_stmt +| @throw_stmt +| @yield_stmt +; + +stmt_conditions( //dir=stmt + unique int id: @stmt_condition +); + +#keyset[id, index] +stmt_condition_elements( //dir=stmt + int id: @stmt_condition ref, + int index: int ref, + int element: @condition_element_or_none ref +); + +brace_stmts( //dir=stmt + unique int id: @brace_stmt +); + +#keyset[id, index] +brace_stmt_elements( //dir=stmt + int id: @brace_stmt ref, + int index: int ref, + int element: @ast_node_or_none ref +); + +break_stmts( //dir=stmt + unique int id: @break_stmt +); + +#keyset[id] +break_stmt_target_names( //dir=stmt + int id: @break_stmt ref, + string target_name: string ref +); + +#keyset[id] +break_stmt_targets( //dir=stmt + int id: @break_stmt ref, + int target: @stmt_or_none ref +); + +case_stmts( //dir=stmt + unique int id: @case_stmt, + int body: @stmt_or_none ref +); + +#keyset[id, index] +case_stmt_labels( //dir=stmt + int id: @case_stmt ref, + int index: int ref, + int label: @case_label_item_or_none ref +); + +#keyset[id, index] +case_stmt_variables( //dir=stmt + int id: @case_stmt ref, + int index: int ref, + int variable: @var_decl_or_none ref +); + +continue_stmts( //dir=stmt + unique int id: @continue_stmt +); + +#keyset[id] +continue_stmt_target_names( //dir=stmt + int id: @continue_stmt ref, + string target_name: string ref +); + +#keyset[id] +continue_stmt_targets( //dir=stmt + int id: @continue_stmt ref, + int target: @stmt_or_none ref +); + +defer_stmts( //dir=stmt + unique int id: @defer_stmt, + int body: @brace_stmt_or_none ref +); + +discard_stmts( //dir=stmt + unique int id: @discard_stmt, + int sub_expr: @expr_or_none ref +); + +fail_stmts( //dir=stmt + unique int id: @fail_stmt +); + +fallthrough_stmts( //dir=stmt + unique int id: @fallthrough_stmt, + int fallthrough_source: @case_stmt_or_none ref, + int fallthrough_dest: @case_stmt_or_none ref +); + +@labeled_stmt = + @do_catch_stmt +| @do_stmt +| @for_each_stmt +| @labeled_conditional_stmt +| @repeat_while_stmt +| @switch_stmt +; + +#keyset[id] +labeled_stmt_labels( //dir=stmt + int id: @labeled_stmt ref, + string label: string ref +); + +pound_assert_stmts( //dir=stmt + unique int id: @pound_assert_stmt, + int condition: @expr_or_none ref, + string message: string ref +); + +return_stmts( //dir=stmt + unique int id: @return_stmt +); + +#keyset[id] +return_stmt_results( //dir=stmt + int id: @return_stmt ref, + int result: @expr_or_none ref +); + +then_stmts( //dir=stmt + unique int id: @then_stmt, + int result: @expr_or_none ref +); + +throw_stmts( //dir=stmt + unique int id: @throw_stmt, + int sub_expr: @expr_or_none ref +); + +yield_stmts( //dir=stmt + unique int id: @yield_stmt +); + +#keyset[id, index] +yield_stmt_results( //dir=stmt + int id: @yield_stmt ref, + int index: int ref, + int result: @expr_or_none ref +); + +do_catch_stmts( //dir=stmt + unique int id: @do_catch_stmt, + int body: @stmt_or_none ref +); + +#keyset[id, index] +do_catch_stmt_catches( //dir=stmt + int id: @do_catch_stmt ref, + int index: int ref, + int catch: @case_stmt_or_none ref +); + +do_stmts( //dir=stmt + unique int id: @do_stmt, + int body: @brace_stmt_or_none ref +); + +for_each_stmts( //dir=stmt + unique int id: @for_each_stmt, + int pattern: @pattern_or_none ref, + int body: @brace_stmt_or_none ref +); + +#keyset[id, index] +for_each_stmt_variables( //dir=stmt + int id: @for_each_stmt ref, + int index: int ref, + int variable: @var_decl_or_none ref +); + +#keyset[id] +for_each_stmt_wheres( //dir=stmt + int id: @for_each_stmt ref, + int where: @expr_or_none ref +); + +#keyset[id] +for_each_stmt_iterator_vars( //dir=stmt + int id: @for_each_stmt ref, + int iteratorVar: @pattern_binding_decl_or_none ref +); + +#keyset[id] +for_each_stmt_next_calls( //dir=stmt + int id: @for_each_stmt ref, + int nextCall: @expr_or_none ref +); + +@labeled_conditional_stmt = + @guard_stmt +| @if_stmt +| @while_stmt +; + +#keyset[id] +labeled_conditional_stmts( //dir=stmt + int id: @labeled_conditional_stmt ref, + int condition: @stmt_condition_or_none ref +); + +repeat_while_stmts( //dir=stmt + unique int id: @repeat_while_stmt, + int condition: @expr_or_none ref, + int body: @stmt_or_none ref +); + +switch_stmts( //dir=stmt + unique int id: @switch_stmt, + int expr: @expr_or_none ref +); + +#keyset[id, index] +switch_stmt_cases( //dir=stmt + int id: @switch_stmt ref, + int index: int ref, + int case_: @case_stmt_or_none ref +); + +guard_stmts( //dir=stmt + unique int id: @guard_stmt, + int body: @brace_stmt_or_none ref +); + +if_stmts( //dir=stmt + unique int id: @if_stmt, + int then: @stmt_or_none ref +); + +#keyset[id] +if_stmt_elses( //dir=stmt + int id: @if_stmt ref, + int else: @stmt_or_none ref +); + +while_stmts( //dir=stmt + unique int id: @while_stmt, + int body: @stmt_or_none ref +); + +@type = + @any_function_type +| @any_generic_type +| @any_metatype_type +| @builtin_type +| @dependent_member_type +| @dynamic_self_type +| @error_type +| @existential_type +| @in_out_type +| @integer_type +| @l_value_type +| @module_type +| @pack_element_type +| @pack_expansion_type +| @pack_type +| @parameterized_protocol_type +| @protocol_composition_type +| @reference_storage_type +| @substitutable_type +| @sugar_type +| @tuple_type +| @unresolved_type +; + +#keyset[id] +types( //dir=type + int id: @type ref, + string name: string ref, + int canonical_type: @type_or_none ref +); + +type_reprs( //dir=type + unique int id: @type_repr, + int type_: @type_or_none ref +); + +@any_function_type = + @function_type +| @generic_function_type +; + +#keyset[id] +any_function_types( //dir=type + int id: @any_function_type ref, + int result: @type_or_none ref +); + +#keyset[id, index] +any_function_type_param_types( //dir=type + int id: @any_function_type ref, + int index: int ref, + int param_type: @type_or_none ref +); + +#keyset[id] +any_function_type_is_throwing( //dir=type + int id: @any_function_type ref +); + +#keyset[id] +any_function_type_is_async( //dir=type + int id: @any_function_type ref +); + +@any_generic_type = + @nominal_or_bound_generic_nominal_type +| @unbound_generic_type +; + +#keyset[id] +any_generic_types( //dir=type + int id: @any_generic_type ref, + int declaration: @generic_type_decl_or_none ref +); + +#keyset[id] +any_generic_type_parents( //dir=type + int id: @any_generic_type ref, + int parent: @type_or_none ref +); + +@any_metatype_type = + @existential_metatype_type +| @metatype_type +; + +@builtin_type = + @any_builtin_integer_type +| @builtin_bridge_object_type +| @builtin_default_actor_storage_type +| @builtin_executor_type +| @builtin_float_type +| @builtin_generic_type +| @builtin_job_type +| @builtin_native_object_type +| @builtin_raw_pointer_type +| @builtin_raw_unsafe_continuation_type +| @builtin_unsafe_value_buffer_type +| @builtin_vector_type +; + +dependent_member_types( //dir=type + unique int id: @dependent_member_type, + int base_type: @type_or_none ref, + int associated_type_decl: @associated_type_decl_or_none ref +); + +dynamic_self_types( //dir=type + unique int id: @dynamic_self_type, + int static_self_type: @type_or_none ref +); + +error_types( //dir=type + unique int id: @error_type +); + +existential_types( //dir=type + unique int id: @existential_type, + int constraint: @type_or_none ref +); + +in_out_types( //dir=type + unique int id: @in_out_type, + int object_type: @type_or_none ref +); + +integer_types( //dir=type + unique int id: @integer_type, + string value: string ref +); + +l_value_types( //dir=type + unique int id: @l_value_type, + int object_type: @type_or_none ref +); + +module_types( //dir=type + unique int id: @module_type, + int module: @module_decl_or_none ref +); + +pack_element_types( //dir=type + unique int id: @pack_element_type, + int pack_type: @type_or_none ref +); + +pack_expansion_types( //dir=type + unique int id: @pack_expansion_type, + int pattern_type: @type_or_none ref, + int count_type: @type_or_none ref +); + +pack_types( //dir=type + unique int id: @pack_type +); + +#keyset[id, index] +pack_type_elements( //dir=type + int id: @pack_type ref, + int index: int ref, + int element: @type_or_none ref +); + +parameterized_protocol_types( //dir=type + unique int id: @parameterized_protocol_type, + int base: @protocol_type_or_none ref +); + +#keyset[id, index] +parameterized_protocol_type_args( //dir=type + int id: @parameterized_protocol_type ref, + int index: int ref, + int arg: @type_or_none ref +); + +protocol_composition_types( //dir=type + unique int id: @protocol_composition_type +); + +#keyset[id, index] +protocol_composition_type_members( //dir=type + int id: @protocol_composition_type ref, + int index: int ref, + int member: @type_or_none ref +); + +@reference_storage_type = + @unmanaged_storage_type +| @unowned_storage_type +| @weak_storage_type +; + +#keyset[id] +reference_storage_types( //dir=type + int id: @reference_storage_type ref, + int referent_type: @type_or_none ref +); + +@substitutable_type = + @archetype_type +| @generic_type_param_type +; + +@sugar_type = + @paren_type +| @syntax_sugar_type +| @type_alias_type +; + +tuple_types( //dir=type + unique int id: @tuple_type +); + +#keyset[id, index] +tuple_type_types( //dir=type + int id: @tuple_type ref, + int index: int ref, + int type_: @type_or_none ref +); + +#keyset[id, index] +tuple_type_names( //dir=type + int id: @tuple_type ref, + int index: int ref, + string name: string ref +); + +unresolved_types( //dir=type + unique int id: @unresolved_type +); + +@any_builtin_integer_type = + @builtin_integer_literal_type +| @builtin_integer_type +; + +@archetype_type = + @local_archetype_type +| @opaque_type_archetype_type +| @pack_archetype_type +| @primary_archetype_type +; + +#keyset[id] +archetype_types( //dir=type + int id: @archetype_type ref, + int interface_type: @type_or_none ref +); + +#keyset[id] +archetype_type_superclasses( //dir=type + int id: @archetype_type ref, + int superclass: @type_or_none ref +); + +#keyset[id, index] +archetype_type_protocols( //dir=type + int id: @archetype_type ref, + int index: int ref, + int protocol: @protocol_decl_or_none ref +); + +builtin_bridge_object_types( //dir=type + unique int id: @builtin_bridge_object_type +); + +builtin_default_actor_storage_types( //dir=type + unique int id: @builtin_default_actor_storage_type +); + +builtin_executor_types( //dir=type + unique int id: @builtin_executor_type +); + +builtin_float_types( //dir=type + unique int id: @builtin_float_type +); + +@builtin_generic_type = + @builtin_fixed_array_type +; + +builtin_job_types( //dir=type + unique int id: @builtin_job_type +); + +builtin_native_object_types( //dir=type + unique int id: @builtin_native_object_type +); + +builtin_raw_pointer_types( //dir=type + unique int id: @builtin_raw_pointer_type +); + +builtin_raw_unsafe_continuation_types( //dir=type + unique int id: @builtin_raw_unsafe_continuation_type +); + +builtin_unsafe_value_buffer_types( //dir=type + unique int id: @builtin_unsafe_value_buffer_type +); + +builtin_vector_types( //dir=type + unique int id: @builtin_vector_type +); + +existential_metatype_types( //dir=type + unique int id: @existential_metatype_type +); + +function_types( //dir=type + unique int id: @function_type +); + +generic_function_types( //dir=type + unique int id: @generic_function_type +); + +#keyset[id, index] +generic_function_type_generic_params( //dir=type + int id: @generic_function_type ref, + int index: int ref, + int generic_param: @generic_type_param_type_or_none ref +); + +generic_type_param_types( //dir=type + unique int id: @generic_type_param_type +); + +metatype_types( //dir=type + unique int id: @metatype_type +); + +@nominal_or_bound_generic_nominal_type = + @bound_generic_type +| @nominal_type +; + +paren_types( //dir=type + unique int id: @paren_type, + int type_: @type_or_none ref +); + +@syntax_sugar_type = + @dictionary_type +| @inline_array_type +| @unary_syntax_sugar_type +; + +type_alias_types( //dir=type + unique int id: @type_alias_type, + int decl: @type_alias_decl_or_none ref +); + +unbound_generic_types( //dir=type + unique int id: @unbound_generic_type +); + +unmanaged_storage_types( //dir=type + unique int id: @unmanaged_storage_type +); + +unowned_storage_types( //dir=type + unique int id: @unowned_storage_type +); + +weak_storage_types( //dir=type + unique int id: @weak_storage_type +); + +@bound_generic_type = + @bound_generic_class_type +| @bound_generic_enum_type +| @bound_generic_struct_type +; + +#keyset[id, index] +bound_generic_type_arg_types( //dir=type + int id: @bound_generic_type ref, + int index: int ref, + int arg_type: @type_or_none ref +); + +builtin_fixed_array_types( //dir=type + unique int id: @builtin_fixed_array_type +); + +builtin_integer_literal_types( //dir=type + unique int id: @builtin_integer_literal_type +); + +builtin_integer_types( //dir=type + unique int id: @builtin_integer_type +); + +#keyset[id] +builtin_integer_type_widths( //dir=type + int id: @builtin_integer_type ref, + int width: int ref +); + +dictionary_types( //dir=type + unique int id: @dictionary_type, + int key_type: @type_or_none ref, + int value_type: @type_or_none ref +); + +inline_array_types( //dir=type + unique int id: @inline_array_type, + int count_type: @type_or_none ref, + int element_type: @type_or_none ref +); + +@local_archetype_type = + @element_archetype_type +| @existential_archetype_type +; + +@nominal_type = + @class_type +| @enum_type +| @protocol_type +| @struct_type +; + +opaque_type_archetype_types( //dir=type + unique int id: @opaque_type_archetype_type, + int declaration: @opaque_type_decl_or_none ref +); + +pack_archetype_types( //dir=type + unique int id: @pack_archetype_type +); + +primary_archetype_types( //dir=type + unique int id: @primary_archetype_type +); + +@unary_syntax_sugar_type = + @array_slice_type +| @optional_type +| @variadic_sequence_type +; + +#keyset[id] +unary_syntax_sugar_types( //dir=type + int id: @unary_syntax_sugar_type ref, + int base_type: @type_or_none ref +); + +array_slice_types( //dir=type + unique int id: @array_slice_type +); + +bound_generic_class_types( //dir=type + unique int id: @bound_generic_class_type +); + +bound_generic_enum_types( //dir=type + unique int id: @bound_generic_enum_type +); + +bound_generic_struct_types( //dir=type + unique int id: @bound_generic_struct_type +); + +class_types( //dir=type + unique int id: @class_type +); + +element_archetype_types( //dir=type + unique int id: @element_archetype_type +); + +enum_types( //dir=type + unique int id: @enum_type +); + +existential_archetype_types( //dir=type + unique int id: @existential_archetype_type +); + +optional_types( //dir=type + unique int id: @optional_type +); + +protocol_types( //dir=type + unique int id: @protocol_type +); + +struct_types( //dir=type + unique int id: @struct_type +); + +variadic_sequence_types( //dir=type + unique int id: @variadic_sequence_type +); + +@accessor_or_none = + @accessor +| @unspecified_element +; + +@argument_or_none = + @argument +| @unspecified_element +; + +@associated_type_decl_or_none = + @associated_type_decl +| @unspecified_element +; + +@ast_node_or_none = + @ast_node +| @unspecified_element +; + +@availability_info_or_none = + @availability_info +| @unspecified_element +; + +@availability_spec_or_none = + @availability_spec +| @unspecified_element +; + +@brace_stmt_or_none = + @brace_stmt +| @unspecified_element +; + +@captured_decl_or_none = + @captured_decl +| @unspecified_element +; + +@case_label_item_or_none = + @case_label_item +| @unspecified_element +; + +@case_stmt_or_none = + @case_stmt +| @unspecified_element +; + +@closure_expr_or_none = + @closure_expr +| @unspecified_element +; + +@condition_element_or_none = + @condition_element +| @unspecified_element +; + +@decl_or_none = + @decl +| @unspecified_element +; + +@enum_element_decl_or_none = + @enum_element_decl +| @unspecified_element +; + +@expr_or_none = + @expr +| @unspecified_element +; + +@file_or_none = + @file +| @unspecified_element +; + +@function_or_none = + @function +| @unspecified_element +; + +@generic_type_decl_or_none = + @generic_type_decl +| @unspecified_element +; + +@generic_type_param_decl_or_none = + @generic_type_param_decl +| @unspecified_element +; + +@generic_type_param_type_or_none = + @generic_type_param_type +| @unspecified_element +; + +@initializer_or_none = + @initializer +| @unspecified_element +; + +@key_path_component_or_none = + @key_path_component +| @unspecified_element +; + +@location_or_none = + @location +| @unspecified_element +; + +@macro_role_or_none = + @macro_role +| @unspecified_element +; + +@module_decl_or_none = + @module_decl +| @unspecified_element +; + +@nominal_type_decl_or_none = + @nominal_type_decl +| @unspecified_element +; + +@opaque_type_decl_or_none = + @opaque_type_decl +| @unspecified_element +; + +@opaque_value_expr_or_none = + @opaque_value_expr +| @unspecified_element +; + +@param_decl_or_none = + @param_decl +| @unspecified_element +; + +@pattern_or_none = + @pattern +| @unspecified_element +; + +@pattern_binding_decl_or_none = + @pattern_binding_decl +| @unspecified_element +; + +@precedence_group_decl_or_none = + @precedence_group_decl +| @unspecified_element +; + +@protocol_decl_or_none = + @protocol_decl +| @unspecified_element +; + +@protocol_type_or_none = + @protocol_type +| @unspecified_element +; + +@stmt_or_none = + @stmt +| @unspecified_element +; + +@stmt_condition_or_none = + @stmt_condition +| @unspecified_element +; + +@string_literal_expr_or_none = + @string_literal_expr +| @unspecified_element +; + +@tap_expr_or_none = + @tap_expr +| @unspecified_element +; + +@type_or_none = + @type +| @unspecified_element +; + +@type_alias_decl_or_none = + @type_alias_decl +| @unspecified_element +; + +@type_repr_or_none = + @type_repr +| @unspecified_element +; + +@value_decl_or_none = + @unspecified_element +| @value_decl +; + +@var_decl_or_none = + @unspecified_element +| @var_decl +; diff --git a/swift/ql/lib/upgrades/ee3053b673c901a325b361b18c50b18342752bf8/swift.dbscheme b/swift/ql/lib/upgrades/ee3053b673c901a325b361b18c50b18342752bf8/swift.dbscheme new file mode 100644 index 00000000000..5738be6bb04 --- /dev/null +++ b/swift/ql/lib/upgrades/ee3053b673c901a325b361b18c50b18342752bf8/swift.dbscheme @@ -0,0 +1,2891 @@ +// generated by codegen/codegen.py, do not edit + +// from prefix.dbscheme +/** + * The source location of the snapshot. + */ +sourceLocationPrefix( + string prefix: string ref +); + + +// from schema.py + +@element = + @file +| @generic_context +| @locatable +| @location +| @type +; + +#keyset[id] +element_is_unknown( + int id: @element ref +); + +@file = + @db_file +; + +#keyset[id] +files( + int id: @file ref, + string name: string ref +); + +#keyset[id] +file_is_successfully_extracted( + int id: @file ref +); + +@locatable = + @argument +| @ast_node +| @comment +| @diagnostics +| @error_element +; + +#keyset[id] +locatable_locations( + int id: @locatable ref, + int location: @location_or_none ref +); + +@location = + @db_location +; + +#keyset[id] +locations( + int id: @location ref, + int file: @file_or_none ref, + int start_line: int ref, + int start_column: int ref, + int end_line: int ref, + int end_column: int ref +); + +@ast_node = + @availability_info +| @availability_spec +| @callable +| @case_label_item +| @condition_element +| @decl +| @expr +| @key_path_component +| @macro_role +| @pattern +| @stmt +| @stmt_condition +| @type_repr +; + +comments( + unique int id: @comment, + string text: string ref +); + +db_files( + unique int id: @db_file +); + +db_locations( + unique int id: @db_location +); + +diagnostics( + unique int id: @diagnostics, + string text: string ref, + int kind: int ref +); + +@error_element = + @error_expr +| @error_type +| @overloaded_decl_ref_expr +| @unresolved_decl_ref_expr +| @unresolved_dot_expr +| @unresolved_member_chain_result_expr +| @unresolved_member_expr +| @unresolved_pattern_expr +| @unresolved_specialize_expr +| @unresolved_type +| @unresolved_type_conversion_expr +| @unspecified_element +; + +availability_infos( + unique int id: @availability_info +); + +#keyset[id] +availability_info_is_unavailable( + int id: @availability_info ref +); + +#keyset[id, index] +availability_info_specs( + int id: @availability_info ref, + int index: int ref, + int spec: @availability_spec_or_none ref +); + +availability_specs( + unique int id: @availability_spec +); + +#keyset[id] +availability_spec_platforms( + int id: @availability_spec ref, + string platform: string ref +); + +#keyset[id] +availability_spec_versions( + int id: @availability_spec ref, + string version: string ref +); + +#keyset[id] +availability_spec_is_wildcard( + int id: @availability_spec ref +); + +@callable = + @closure_expr +| @function +; + +#keyset[id] +callable_names( + int id: @callable ref, + string name: string ref +); + +#keyset[id] +callable_self_params( + int id: @callable ref, + int self_param: @param_decl_or_none ref +); + +#keyset[id, index] +callable_params( + int id: @callable ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +#keyset[id] +callable_bodies( + int id: @callable ref, + int body: @brace_stmt_or_none ref +); + +#keyset[id, index] +callable_captures( + int id: @callable ref, + int index: int ref, + int capture: @captured_decl_or_none ref +); + +key_path_components( + unique int id: @key_path_component, + int kind: int ref, + int component_type: @type_or_none ref +); + +#keyset[id, index] +key_path_component_subscript_arguments( + int id: @key_path_component ref, + int index: int ref, + int subscript_argument: @argument_or_none ref +); + +#keyset[id] +key_path_component_tuple_indices( + int id: @key_path_component ref, + int tuple_index: int ref +); + +#keyset[id] +key_path_component_decl_refs( + int id: @key_path_component ref, + int decl_ref: @value_decl_or_none ref +); + +macro_roles( + unique int id: @macro_role, + int kind: int ref, + int macro_syntax: int ref +); + +#keyset[id, index] +macro_role_conformances( + int id: @macro_role ref, + int index: int ref, + int conformance: @expr_or_none ref +); + +#keyset[id, index] +macro_role_names( + int id: @macro_role ref, + int index: int ref, + string name: string ref +); + +unspecified_elements( + unique int id: @unspecified_element, + string property: string ref, + string error: string ref +); + +#keyset[id] +unspecified_element_parents( + int id: @unspecified_element ref, + int parent: @element ref +); + +#keyset[id] +unspecified_element_indices( + int id: @unspecified_element ref, + int index: int ref +); + +#keyset[id, index] +unspecified_element_children( + int id: @unspecified_element ref, + int index: int ref, + int child: @ast_node_or_none ref +); + +@decl = + @captured_decl +| @enum_case_decl +| @extension_decl +| @if_config_decl +| @import_decl +| @missing_member_decl +| @operator_decl +| @pattern_binding_decl +| @pound_diagnostic_decl +| @precedence_group_decl +| @top_level_code_decl +| @using_decl +| @value_decl +; + +#keyset[id] +decls( //dir=decl + int id: @decl ref, + int module: @module_decl_or_none ref +); + +#keyset[id, index] +decl_members( //dir=decl + int id: @decl ref, + int index: int ref, + int member: @decl_or_none ref +); + +@generic_context = + @extension_decl +| @function +| @generic_type_decl +| @macro_decl +| @subscript_decl +; + +#keyset[id, index] +generic_context_generic_type_params( //dir=decl + int id: @generic_context ref, + int index: int ref, + int generic_type_param: @generic_type_param_decl_or_none ref +); + +captured_decls( //dir=decl + unique int id: @captured_decl, + int decl: @value_decl_or_none ref +); + +#keyset[id] +captured_decl_is_direct( //dir=decl + int id: @captured_decl ref +); + +#keyset[id] +captured_decl_is_escaping( //dir=decl + int id: @captured_decl ref +); + +enum_case_decls( //dir=decl + unique int id: @enum_case_decl +); + +#keyset[id, index] +enum_case_decl_elements( //dir=decl + int id: @enum_case_decl ref, + int index: int ref, + int element: @enum_element_decl_or_none ref +); + +extension_decls( //dir=decl + unique int id: @extension_decl, + int extended_type_decl: @nominal_type_decl_or_none ref +); + +#keyset[id, index] +extension_decl_protocols( //dir=decl + int id: @extension_decl ref, + int index: int ref, + int protocol: @protocol_decl_or_none ref +); + +if_config_decls( //dir=decl + unique int id: @if_config_decl +); + +#keyset[id, index] +if_config_decl_active_elements( //dir=decl + int id: @if_config_decl ref, + int index: int ref, + int active_element: @ast_node_or_none ref +); + +import_decls( //dir=decl + unique int id: @import_decl +); + +#keyset[id] +import_decl_is_exported( //dir=decl + int id: @import_decl ref +); + +#keyset[id] +import_decl_imported_modules( //dir=decl + int id: @import_decl ref, + int imported_module: @module_decl_or_none ref +); + +#keyset[id, index] +import_decl_declarations( //dir=decl + int id: @import_decl ref, + int index: int ref, + int declaration: @value_decl_or_none ref +); + +missing_member_decls( //dir=decl + unique int id: @missing_member_decl, + string name: string ref +); + +@operator_decl = + @infix_operator_decl +| @postfix_operator_decl +| @prefix_operator_decl +; + +#keyset[id] +operator_decls( //dir=decl + int id: @operator_decl ref, + string name: string ref +); + +pattern_binding_decls( //dir=decl + unique int id: @pattern_binding_decl +); + +#keyset[id, index] +pattern_binding_decl_inits( //dir=decl + int id: @pattern_binding_decl ref, + int index: int ref, + int init: @expr_or_none ref +); + +#keyset[id, index] +pattern_binding_decl_patterns( //dir=decl + int id: @pattern_binding_decl ref, + int index: int ref, + int pattern: @pattern_or_none ref +); + +pound_diagnostic_decls( //dir=decl + unique int id: @pound_diagnostic_decl, + int kind: int ref, + int message: @string_literal_expr_or_none ref +); + +precedence_group_decls( //dir=decl + unique int id: @precedence_group_decl +); + +top_level_code_decls( //dir=decl + unique int id: @top_level_code_decl, + int body: @brace_stmt_or_none ref +); + +using_decls( //dir=decl + unique int id: @using_decl +); + +#keyset[id] +using_decl_is_main_actor( //dir=decl + int id: @using_decl ref +); + +#keyset[id] +using_decl_is_nonisolated( //dir=decl + int id: @using_decl ref +); + +@value_decl = + @abstract_storage_decl +| @enum_element_decl +| @function +| @macro_decl +| @type_decl +; + +#keyset[id] +value_decls( //dir=decl + int id: @value_decl ref, + int interface_type: @type_or_none ref +); + +@abstract_storage_decl = + @subscript_decl +| @var_decl +; + +#keyset[id, index] +abstract_storage_decl_accessors( //dir=decl + int id: @abstract_storage_decl ref, + int index: int ref, + int accessor: @accessor_or_none ref +); + +enum_element_decls( //dir=decl + unique int id: @enum_element_decl, + string name: string ref +); + +#keyset[id, index] +enum_element_decl_params( //dir=decl + int id: @enum_element_decl ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +@function = + @accessor_or_named_function +| @deinitializer +| @initializer +; + +infix_operator_decls( //dir=decl + unique int id: @infix_operator_decl +); + +#keyset[id] +infix_operator_decl_precedence_groups( //dir=decl + int id: @infix_operator_decl ref, + int precedence_group: @precedence_group_decl_or_none ref +); + +macro_decls( //dir=decl + unique int id: @macro_decl, + string name: string ref +); + +#keyset[id, index] +macro_decl_parameters( //dir=decl + int id: @macro_decl ref, + int index: int ref, + int parameter: @param_decl_or_none ref +); + +#keyset[id, index] +macro_decl_roles( //dir=decl + int id: @macro_decl ref, + int index: int ref, + int role: @macro_role_or_none ref +); + +postfix_operator_decls( //dir=decl + unique int id: @postfix_operator_decl +); + +prefix_operator_decls( //dir=decl + unique int id: @prefix_operator_decl +); + +@type_decl = + @abstract_type_param_decl +| @generic_type_decl +| @module_decl +; + +#keyset[id] +type_decls( //dir=decl + int id: @type_decl ref, + string name: string ref +); + +#keyset[id, index] +type_decl_inherited_types( //dir=decl + int id: @type_decl ref, + int index: int ref, + int inherited_type: @type_or_none ref +); + +@abstract_type_param_decl = + @associated_type_decl +| @generic_type_param_decl +; + +@accessor_or_named_function = + @accessor +| @named_function +; + +deinitializers( //dir=decl + unique int id: @deinitializer +); + +@generic_type_decl = + @nominal_type_decl +| @opaque_type_decl +| @type_alias_decl +; + +initializers( //dir=decl + unique int id: @initializer +); + +module_decls( //dir=decl + unique int id: @module_decl +); + +#keyset[id] +module_decl_is_builtin_module( //dir=decl + int id: @module_decl ref +); + +#keyset[id] +module_decl_is_system_module( //dir=decl + int id: @module_decl ref +); + +module_decl_imported_modules( //dir=decl + int id: @module_decl ref, + int imported_module: @module_decl_or_none ref +); + +module_decl_exported_modules( //dir=decl + int id: @module_decl ref, + int exported_module: @module_decl_or_none ref +); + +subscript_decls( //dir=decl + unique int id: @subscript_decl, + int element_type: @type_or_none ref +); + +#keyset[id, index] +subscript_decl_params( //dir=decl + int id: @subscript_decl ref, + int index: int ref, + int param: @param_decl_or_none ref +); + +@var_decl = + @concrete_var_decl +| @param_decl +; + +#keyset[id] +var_decls( //dir=decl + int id: @var_decl ref, + string name: string ref, + int type_: @type_or_none ref +); + +#keyset[id] +var_decl_attached_property_wrapper_types( //dir=decl + int id: @var_decl ref, + int attached_property_wrapper_type: @type_or_none ref +); + +#keyset[id] +var_decl_parent_patterns( //dir=decl + int id: @var_decl ref, + int parent_pattern: @pattern_or_none ref +); + +#keyset[id] +var_decl_parent_initializers( //dir=decl + int id: @var_decl ref, + int parent_initializer: @expr_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_backing_var_bindings( //dir=decl + int id: @var_decl ref, + int property_wrapper_backing_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_backing_vars( //dir=decl + int id: @var_decl ref, + int property_wrapper_backing_var: @var_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_projection_var_bindings( //dir=decl + int id: @var_decl ref, + int property_wrapper_projection_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +var_decl_property_wrapper_projection_vars( //dir=decl + int id: @var_decl ref, + int property_wrapper_projection_var: @var_decl_or_none ref +); + +accessors( //dir=decl + unique int id: @accessor +); + +#keyset[id] +accessor_is_getter( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_setter( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_will_set( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_did_set( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_read( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_modify( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_unsafe_address( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_unsafe_mutable_address( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_distributed_get( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_read2( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_modify2( //dir=decl + int id: @accessor ref +); + +#keyset[id] +accessor_is_init( //dir=decl + int id: @accessor ref +); + +associated_type_decls( //dir=decl + unique int id: @associated_type_decl +); + +concrete_var_decls( //dir=decl + unique int id: @concrete_var_decl, + int introducer_int: int ref +); + +generic_type_param_decls( //dir=decl + unique int id: @generic_type_param_decl +); + +named_functions( //dir=decl + unique int id: @named_function +); + +@nominal_type_decl = + @class_decl +| @enum_decl +| @protocol_decl +| @struct_decl +; + +#keyset[id] +nominal_type_decls( //dir=decl + int id: @nominal_type_decl ref, + int type_: @type_or_none ref +); + +opaque_type_decls( //dir=decl + unique int id: @opaque_type_decl, + int naming_declaration: @value_decl_or_none ref +); + +#keyset[id, index] +opaque_type_decl_opaque_generic_params( //dir=decl + int id: @opaque_type_decl ref, + int index: int ref, + int opaque_generic_param: @generic_type_param_type_or_none ref +); + +param_decls( //dir=decl + unique int id: @param_decl +); + +#keyset[id] +param_decl_is_inout( //dir=decl + int id: @param_decl ref +); + +#keyset[id] +param_decl_property_wrapper_local_wrapped_var_bindings( //dir=decl + int id: @param_decl ref, + int property_wrapper_local_wrapped_var_binding: @pattern_binding_decl_or_none ref +); + +#keyset[id] +param_decl_property_wrapper_local_wrapped_vars( //dir=decl + int id: @param_decl ref, + int property_wrapper_local_wrapped_var: @var_decl_or_none ref +); + +type_alias_decls( //dir=decl + unique int id: @type_alias_decl, + int aliased_type: @type_or_none ref +); + +class_decls( //dir=decl + unique int id: @class_decl +); + +enum_decls( //dir=decl + unique int id: @enum_decl +); + +protocol_decls( //dir=decl + unique int id: @protocol_decl +); + +struct_decls( //dir=decl + unique int id: @struct_decl +); + +arguments( //dir=expr + unique int id: @argument, + string label: string ref, + int expr: @expr_or_none ref +); + +@expr = + @any_try_expr +| @applied_property_wrapper_expr +| @apply_expr +| @assign_expr +| @bind_optional_expr +| @capture_list_expr +| @closure_expr +| @collection_expr +| @consume_expr +| @copy_expr +| @current_context_isolation_expr +| @decl_ref_expr +| @default_argument_expr +| @discard_assignment_expr +| @dot_syntax_base_ignored_expr +| @dynamic_type_expr +| @enum_is_case_expr +| @error_expr +| @explicit_cast_expr +| @extract_function_isolation_expr +| @force_value_expr +| @identity_expr +| @if_expr +| @implicit_conversion_expr +| @in_out_expr +| @key_path_application_expr +| @key_path_dot_expr +| @key_path_expr +| @lazy_initialization_expr +| @literal_expr +| @lookup_expr +| @make_temporarily_escapable_expr +| @materialize_pack_expr +| @obj_c_selector_expr +| @one_way_expr +| @opaque_value_expr +| @open_existential_expr +| @optional_evaluation_expr +| @other_initializer_ref_expr +| @overloaded_decl_ref_expr +| @pack_element_expr +| @pack_expansion_expr +| @property_wrapper_value_placeholder_expr +| @rebind_self_in_initializer_expr +| @sequence_expr +| @single_value_stmt_expr +| @super_ref_expr +| @tap_expr +| @tuple_element_expr +| @tuple_expr +| @type_expr +| @type_value_expr +| @unresolved_decl_ref_expr +| @unresolved_dot_expr +| @unresolved_member_expr +| @unresolved_pattern_expr +| @unresolved_specialize_expr +| @vararg_expansion_expr +; + +#keyset[id] +expr_types( //dir=expr + int id: @expr ref, + int type_: @type_or_none ref +); + +@any_try_expr = + @force_try_expr +| @optional_try_expr +| @try_expr +; + +#keyset[id] +any_try_exprs( //dir=expr + int id: @any_try_expr ref, + int sub_expr: @expr_or_none ref +); + +applied_property_wrapper_exprs( //dir=expr + unique int id: @applied_property_wrapper_expr, + int kind: int ref, + int value: @expr_or_none ref, + int param: @param_decl_or_none ref +); + +@apply_expr = + @binary_expr +| @call_expr +| @postfix_unary_expr +| @prefix_unary_expr +| @self_apply_expr +; + +#keyset[id] +apply_exprs( //dir=expr + int id: @apply_expr ref, + int function: @expr_or_none ref +); + +#keyset[id, index] +apply_expr_arguments( //dir=expr + int id: @apply_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +assign_exprs( //dir=expr + unique int id: @assign_expr, + int dest: @expr_or_none ref, + int source: @expr_or_none ref +); + +bind_optional_exprs( //dir=expr + unique int id: @bind_optional_expr, + int sub_expr: @expr_or_none ref +); + +capture_list_exprs( //dir=expr + unique int id: @capture_list_expr, + int closure_body: @closure_expr_or_none ref +); + +#keyset[id, index] +capture_list_expr_binding_decls( //dir=expr + int id: @capture_list_expr ref, + int index: int ref, + int binding_decl: @pattern_binding_decl_or_none ref +); + +@closure_expr = + @auto_closure_expr +| @explicit_closure_expr +; + +@collection_expr = + @array_expr +| @dictionary_expr +; + +consume_exprs( //dir=expr + unique int id: @consume_expr, + int sub_expr: @expr_or_none ref +); + +copy_exprs( //dir=expr + unique int id: @copy_expr, + int sub_expr: @expr_or_none ref +); + +current_context_isolation_exprs( //dir=expr + unique int id: @current_context_isolation_expr, + int actor: @expr_or_none ref +); + +decl_ref_exprs( //dir=expr + unique int id: @decl_ref_expr, + int decl: @decl_or_none ref +); + +#keyset[id, index] +decl_ref_expr_replacement_types( //dir=expr + int id: @decl_ref_expr ref, + int index: int ref, + int replacement_type: @type_or_none ref +); + +#keyset[id] +decl_ref_expr_has_direct_to_storage_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_ordinary_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +#keyset[id] +decl_ref_expr_has_distributed_thunk_semantics( //dir=expr + int id: @decl_ref_expr ref +); + +default_argument_exprs( //dir=expr + unique int id: @default_argument_expr, + int param_decl: @param_decl_or_none ref, + int param_index: int ref +); + +#keyset[id] +default_argument_expr_caller_side_defaults( //dir=expr + int id: @default_argument_expr ref, + int caller_side_default: @expr_or_none ref +); + +discard_assignment_exprs( //dir=expr + unique int id: @discard_assignment_expr +); + +dot_syntax_base_ignored_exprs( //dir=expr + unique int id: @dot_syntax_base_ignored_expr, + int qualifier: @expr_or_none ref, + int sub_expr: @expr_or_none ref +); + +dynamic_type_exprs( //dir=expr + unique int id: @dynamic_type_expr, + int base: @expr_or_none ref +); + +enum_is_case_exprs( //dir=expr + unique int id: @enum_is_case_expr, + int sub_expr: @expr_or_none ref, + int element: @enum_element_decl_or_none ref +); + +error_exprs( //dir=expr + unique int id: @error_expr +); + +@explicit_cast_expr = + @checked_cast_expr +| @coerce_expr +; + +#keyset[id] +explicit_cast_exprs( //dir=expr + int id: @explicit_cast_expr ref, + int sub_expr: @expr_or_none ref +); + +extract_function_isolation_exprs( //dir=expr + unique int id: @extract_function_isolation_expr, + int function_expr: @expr_or_none ref +); + +force_value_exprs( //dir=expr + unique int id: @force_value_expr, + int sub_expr: @expr_or_none ref +); + +@identity_expr = + @await_expr +| @borrow_expr +| @dot_self_expr +| @paren_expr +| @unresolved_member_chain_result_expr +| @unsafe_expr +; + +#keyset[id] +identity_exprs( //dir=expr + int id: @identity_expr ref, + int sub_expr: @expr_or_none ref +); + +if_exprs( //dir=expr + unique int id: @if_expr, + int condition: @expr_or_none ref, + int then_expr: @expr_or_none ref, + int else_expr: @expr_or_none ref +); + +@implicit_conversion_expr = + @abi_safe_conversion_expr +| @actor_isolation_erasure_expr +| @any_hashable_erasure_expr +| @archetype_to_super_expr +| @array_to_pointer_expr +| @bridge_from_obj_c_expr +| @bridge_to_obj_c_expr +| @class_metatype_to_object_expr +| @collection_upcast_conversion_expr +| @conditional_bridge_from_obj_c_expr +| @covariant_function_conversion_expr +| @covariant_return_conversion_expr +| @derived_to_base_expr +| @destructure_tuple_expr +| @differentiable_function_expr +| @differentiable_function_extract_original_expr +| @erasure_expr +| @existential_metatype_to_object_expr +| @foreign_object_conversion_expr +| @function_conversion_expr +| @in_out_to_pointer_expr +| @inject_into_optional_expr +| @linear_function_expr +| @linear_function_extract_original_expr +| @linear_to_differentiable_function_expr +| @load_expr +| @metatype_conversion_expr +| @pointer_to_pointer_expr +| @protocol_metatype_to_object_expr +| @string_to_pointer_expr +| @underlying_to_opaque_expr +| @unevaluated_instance_expr +| @unreachable_expr +| @unresolved_type_conversion_expr +| @unsafe_cast_expr +; + +#keyset[id] +implicit_conversion_exprs( //dir=expr + int id: @implicit_conversion_expr ref, + int sub_expr: @expr_or_none ref +); + +in_out_exprs( //dir=expr + unique int id: @in_out_expr, + int sub_expr: @expr_or_none ref +); + +key_path_application_exprs( //dir=expr + unique int id: @key_path_application_expr, + int base: @expr_or_none ref, + int key_path: @expr_or_none ref +); + +key_path_dot_exprs( //dir=expr + unique int id: @key_path_dot_expr +); + +key_path_exprs( //dir=expr + unique int id: @key_path_expr +); + +#keyset[id] +key_path_expr_roots( //dir=expr + int id: @key_path_expr ref, + int root: @type_repr_or_none ref +); + +#keyset[id, index] +key_path_expr_components( //dir=expr + int id: @key_path_expr ref, + int index: int ref, + int component: @key_path_component_or_none ref +); + +lazy_initialization_exprs( //dir=expr + unique int id: @lazy_initialization_expr, + int sub_expr: @expr_or_none ref +); + +@literal_expr = + @builtin_literal_expr +| @interpolated_string_literal_expr +| @nil_literal_expr +| @object_literal_expr +| @regex_literal_expr +; + +@lookup_expr = + @dynamic_lookup_expr +| @member_ref_expr +| @subscript_expr +; + +#keyset[id] +lookup_exprs( //dir=expr + int id: @lookup_expr ref, + int base: @expr_or_none ref +); + +#keyset[id] +lookup_expr_members( //dir=expr + int id: @lookup_expr ref, + int member: @decl_or_none ref +); + +make_temporarily_escapable_exprs( //dir=expr + unique int id: @make_temporarily_escapable_expr, + int escaping_closure: @opaque_value_expr_or_none ref, + int nonescaping_closure: @expr_or_none ref, + int sub_expr: @expr_or_none ref +); + +materialize_pack_exprs( //dir=expr + unique int id: @materialize_pack_expr, + int sub_expr: @expr_or_none ref +); + +obj_c_selector_exprs( //dir=expr + unique int id: @obj_c_selector_expr, + int sub_expr: @expr_or_none ref, + int method: @function_or_none ref +); + +one_way_exprs( //dir=expr + unique int id: @one_way_expr, + int sub_expr: @expr_or_none ref +); + +opaque_value_exprs( //dir=expr + unique int id: @opaque_value_expr +); + +open_existential_exprs( //dir=expr + unique int id: @open_existential_expr, + int sub_expr: @expr_or_none ref, + int existential: @expr_or_none ref, + int opaque_expr: @opaque_value_expr_or_none ref +); + +optional_evaluation_exprs( //dir=expr + unique int id: @optional_evaluation_expr, + int sub_expr: @expr_or_none ref +); + +other_initializer_ref_exprs( //dir=expr + unique int id: @other_initializer_ref_expr, + int initializer: @initializer_or_none ref +); + +overloaded_decl_ref_exprs( //dir=expr + unique int id: @overloaded_decl_ref_expr +); + +#keyset[id, index] +overloaded_decl_ref_expr_possible_declarations( //dir=expr + int id: @overloaded_decl_ref_expr ref, + int index: int ref, + int possible_declaration: @value_decl_or_none ref +); + +pack_element_exprs( //dir=expr + unique int id: @pack_element_expr, + int sub_expr: @expr_or_none ref +); + +pack_expansion_exprs( //dir=expr + unique int id: @pack_expansion_expr, + int pattern_expr: @expr_or_none ref +); + +property_wrapper_value_placeholder_exprs( //dir=expr + unique int id: @property_wrapper_value_placeholder_expr, + int placeholder: @opaque_value_expr_or_none ref +); + +#keyset[id] +property_wrapper_value_placeholder_expr_wrapped_values( //dir=expr + int id: @property_wrapper_value_placeholder_expr ref, + int wrapped_value: @expr_or_none ref +); + +rebind_self_in_initializer_exprs( //dir=expr + unique int id: @rebind_self_in_initializer_expr, + int sub_expr: @expr_or_none ref, + int self: @var_decl_or_none ref +); + +sequence_exprs( //dir=expr + unique int id: @sequence_expr +); + +#keyset[id, index] +sequence_expr_elements( //dir=expr + int id: @sequence_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +single_value_stmt_exprs( //dir=expr + unique int id: @single_value_stmt_expr, + int stmt: @stmt_or_none ref +); + +super_ref_exprs( //dir=expr + unique int id: @super_ref_expr, + int self: @var_decl_or_none ref +); + +tap_exprs( //dir=expr + unique int id: @tap_expr, + int body: @brace_stmt_or_none ref, + int var: @var_decl_or_none ref +); + +#keyset[id] +tap_expr_sub_exprs( //dir=expr + int id: @tap_expr ref, + int sub_expr: @expr_or_none ref +); + +tuple_element_exprs( //dir=expr + unique int id: @tuple_element_expr, + int sub_expr: @expr_or_none ref, + int index: int ref +); + +tuple_exprs( //dir=expr + unique int id: @tuple_expr +); + +#keyset[id, index] +tuple_expr_elements( //dir=expr + int id: @tuple_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +type_exprs( //dir=expr + unique int id: @type_expr +); + +#keyset[id] +type_expr_type_reprs( //dir=expr + int id: @type_expr ref, + int type_repr: @type_repr_or_none ref +); + +type_value_exprs( //dir=expr + unique int id: @type_value_expr, + int type_repr: @type_repr_or_none ref +); + +unresolved_decl_ref_exprs( //dir=expr + unique int id: @unresolved_decl_ref_expr +); + +#keyset[id] +unresolved_decl_ref_expr_names( //dir=expr + int id: @unresolved_decl_ref_expr ref, + string name: string ref +); + +unresolved_dot_exprs( //dir=expr + unique int id: @unresolved_dot_expr, + int base: @expr_or_none ref, + string name: string ref +); + +unresolved_member_exprs( //dir=expr + unique int id: @unresolved_member_expr, + string name: string ref +); + +unresolved_pattern_exprs( //dir=expr + unique int id: @unresolved_pattern_expr, + int sub_pattern: @pattern_or_none ref +); + +unresolved_specialize_exprs( //dir=expr + unique int id: @unresolved_specialize_expr, + int sub_expr: @expr_or_none ref +); + +vararg_expansion_exprs( //dir=expr + unique int id: @vararg_expansion_expr, + int sub_expr: @expr_or_none ref +); + +abi_safe_conversion_exprs( //dir=expr + unique int id: @abi_safe_conversion_expr +); + +actor_isolation_erasure_exprs( //dir=expr + unique int id: @actor_isolation_erasure_expr +); + +any_hashable_erasure_exprs( //dir=expr + unique int id: @any_hashable_erasure_expr +); + +archetype_to_super_exprs( //dir=expr + unique int id: @archetype_to_super_expr +); + +array_exprs( //dir=expr + unique int id: @array_expr +); + +#keyset[id, index] +array_expr_elements( //dir=expr + int id: @array_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +array_to_pointer_exprs( //dir=expr + unique int id: @array_to_pointer_expr +); + +auto_closure_exprs( //dir=expr + unique int id: @auto_closure_expr +); + +await_exprs( //dir=expr + unique int id: @await_expr +); + +binary_exprs( //dir=expr + unique int id: @binary_expr +); + +borrow_exprs( //dir=expr + unique int id: @borrow_expr +); + +bridge_from_obj_c_exprs( //dir=expr + unique int id: @bridge_from_obj_c_expr +); + +bridge_to_obj_c_exprs( //dir=expr + unique int id: @bridge_to_obj_c_expr +); + +@builtin_literal_expr = + @boolean_literal_expr +| @magic_identifier_literal_expr +| @number_literal_expr +| @string_literal_expr +; + +call_exprs( //dir=expr + unique int id: @call_expr +); + +@checked_cast_expr = + @conditional_checked_cast_expr +| @forced_checked_cast_expr +| @is_expr +; + +class_metatype_to_object_exprs( //dir=expr + unique int id: @class_metatype_to_object_expr +); + +coerce_exprs( //dir=expr + unique int id: @coerce_expr +); + +collection_upcast_conversion_exprs( //dir=expr + unique int id: @collection_upcast_conversion_expr +); + +conditional_bridge_from_obj_c_exprs( //dir=expr + unique int id: @conditional_bridge_from_obj_c_expr +); + +covariant_function_conversion_exprs( //dir=expr + unique int id: @covariant_function_conversion_expr +); + +covariant_return_conversion_exprs( //dir=expr + unique int id: @covariant_return_conversion_expr +); + +derived_to_base_exprs( //dir=expr + unique int id: @derived_to_base_expr +); + +destructure_tuple_exprs( //dir=expr + unique int id: @destructure_tuple_expr +); + +dictionary_exprs( //dir=expr + unique int id: @dictionary_expr +); + +#keyset[id, index] +dictionary_expr_elements( //dir=expr + int id: @dictionary_expr ref, + int index: int ref, + int element: @expr_or_none ref +); + +differentiable_function_exprs( //dir=expr + unique int id: @differentiable_function_expr +); + +differentiable_function_extract_original_exprs( //dir=expr + unique int id: @differentiable_function_extract_original_expr +); + +dot_self_exprs( //dir=expr + unique int id: @dot_self_expr +); + +@dynamic_lookup_expr = + @dynamic_member_ref_expr +| @dynamic_subscript_expr +; + +erasure_exprs( //dir=expr + unique int id: @erasure_expr +); + +existential_metatype_to_object_exprs( //dir=expr + unique int id: @existential_metatype_to_object_expr +); + +explicit_closure_exprs( //dir=expr + unique int id: @explicit_closure_expr +); + +force_try_exprs( //dir=expr + unique int id: @force_try_expr +); + +foreign_object_conversion_exprs( //dir=expr + unique int id: @foreign_object_conversion_expr +); + +function_conversion_exprs( //dir=expr + unique int id: @function_conversion_expr +); + +in_out_to_pointer_exprs( //dir=expr + unique int id: @in_out_to_pointer_expr +); + +inject_into_optional_exprs( //dir=expr + unique int id: @inject_into_optional_expr +); + +interpolated_string_literal_exprs( //dir=expr + unique int id: @interpolated_string_literal_expr +); + +#keyset[id] +interpolated_string_literal_expr_interpolation_exprs( //dir=expr + int id: @interpolated_string_literal_expr ref, + int interpolation_expr: @opaque_value_expr_or_none ref +); + +#keyset[id] +interpolated_string_literal_expr_appending_exprs( //dir=expr + int id: @interpolated_string_literal_expr ref, + int appending_expr: @tap_expr_or_none ref +); + +linear_function_exprs( //dir=expr + unique int id: @linear_function_expr +); + +linear_function_extract_original_exprs( //dir=expr + unique int id: @linear_function_extract_original_expr +); + +linear_to_differentiable_function_exprs( //dir=expr + unique int id: @linear_to_differentiable_function_expr +); + +load_exprs( //dir=expr + unique int id: @load_expr +); + +member_ref_exprs( //dir=expr + unique int id: @member_ref_expr +); + +#keyset[id] +member_ref_expr_has_direct_to_storage_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_ordinary_semantics( //dir=expr + int id: @member_ref_expr ref +); + +#keyset[id] +member_ref_expr_has_distributed_thunk_semantics( //dir=expr + int id: @member_ref_expr ref +); + +metatype_conversion_exprs( //dir=expr + unique int id: @metatype_conversion_expr +); + +nil_literal_exprs( //dir=expr + unique int id: @nil_literal_expr +); + +object_literal_exprs( //dir=expr + unique int id: @object_literal_expr, + int kind: int ref +); + +#keyset[id, index] +object_literal_expr_arguments( //dir=expr + int id: @object_literal_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +optional_try_exprs( //dir=expr + unique int id: @optional_try_expr +); + +paren_exprs( //dir=expr + unique int id: @paren_expr +); + +pointer_to_pointer_exprs( //dir=expr + unique int id: @pointer_to_pointer_expr +); + +postfix_unary_exprs( //dir=expr + unique int id: @postfix_unary_expr +); + +prefix_unary_exprs( //dir=expr + unique int id: @prefix_unary_expr +); + +protocol_metatype_to_object_exprs( //dir=expr + unique int id: @protocol_metatype_to_object_expr +); + +regex_literal_exprs( //dir=expr + unique int id: @regex_literal_expr, + string pattern: string ref, + int version: int ref +); + +@self_apply_expr = + @dot_syntax_call_expr +| @initializer_ref_call_expr +; + +#keyset[id] +self_apply_exprs( //dir=expr + int id: @self_apply_expr ref, + int base: @expr_or_none ref +); + +string_to_pointer_exprs( //dir=expr + unique int id: @string_to_pointer_expr +); + +subscript_exprs( //dir=expr + unique int id: @subscript_expr +); + +#keyset[id, index] +subscript_expr_arguments( //dir=expr + int id: @subscript_expr ref, + int index: int ref, + int argument: @argument_or_none ref +); + +#keyset[id] +subscript_expr_has_direct_to_storage_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_direct_to_implementation_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_ordinary_semantics( //dir=expr + int id: @subscript_expr ref +); + +#keyset[id] +subscript_expr_has_distributed_thunk_semantics( //dir=expr + int id: @subscript_expr ref +); + +try_exprs( //dir=expr + unique int id: @try_expr +); + +underlying_to_opaque_exprs( //dir=expr + unique int id: @underlying_to_opaque_expr +); + +unevaluated_instance_exprs( //dir=expr + unique int id: @unevaluated_instance_expr +); + +unreachable_exprs( //dir=expr + unique int id: @unreachable_expr +); + +unresolved_member_chain_result_exprs( //dir=expr + unique int id: @unresolved_member_chain_result_expr +); + +unresolved_type_conversion_exprs( //dir=expr + unique int id: @unresolved_type_conversion_expr +); + +unsafe_cast_exprs( //dir=expr + unique int id: @unsafe_cast_expr +); + +unsafe_exprs( //dir=expr + unique int id: @unsafe_expr +); + +boolean_literal_exprs( //dir=expr + unique int id: @boolean_literal_expr, + boolean value: boolean ref +); + +conditional_checked_cast_exprs( //dir=expr + unique int id: @conditional_checked_cast_expr +); + +dot_syntax_call_exprs( //dir=expr + unique int id: @dot_syntax_call_expr +); + +dynamic_member_ref_exprs( //dir=expr + unique int id: @dynamic_member_ref_expr +); + +dynamic_subscript_exprs( //dir=expr + unique int id: @dynamic_subscript_expr +); + +forced_checked_cast_exprs( //dir=expr + unique int id: @forced_checked_cast_expr +); + +initializer_ref_call_exprs( //dir=expr + unique int id: @initializer_ref_call_expr +); + +is_exprs( //dir=expr + unique int id: @is_expr +); + +magic_identifier_literal_exprs( //dir=expr + unique int id: @magic_identifier_literal_expr, + string kind: string ref +); + +@number_literal_expr = + @float_literal_expr +| @integer_literal_expr +; + +string_literal_exprs( //dir=expr + unique int id: @string_literal_expr, + string value: string ref +); + +float_literal_exprs( //dir=expr + unique int id: @float_literal_expr, + string string_value: string ref +); + +integer_literal_exprs( //dir=expr + unique int id: @integer_literal_expr, + string string_value: string ref +); + +@pattern = + @any_pattern +| @binding_pattern +| @bool_pattern +| @enum_element_pattern +| @expr_pattern +| @is_pattern +| @named_pattern +| @optional_some_pattern +| @paren_pattern +| @tuple_pattern +| @typed_pattern +; + +#keyset[id] +pattern_types( //dir=pattern + int id: @pattern ref, + int type_: @type_or_none ref +); + +any_patterns( //dir=pattern + unique int id: @any_pattern +); + +binding_patterns( //dir=pattern + unique int id: @binding_pattern, + int sub_pattern: @pattern_or_none ref +); + +bool_patterns( //dir=pattern + unique int id: @bool_pattern, + boolean value: boolean ref +); + +enum_element_patterns( //dir=pattern + unique int id: @enum_element_pattern, + int element: @enum_element_decl_or_none ref +); + +#keyset[id] +enum_element_pattern_sub_patterns( //dir=pattern + int id: @enum_element_pattern ref, + int sub_pattern: @pattern_or_none ref +); + +expr_patterns( //dir=pattern + unique int id: @expr_pattern, + int sub_expr: @expr_or_none ref +); + +is_patterns( //dir=pattern + unique int id: @is_pattern +); + +#keyset[id] +is_pattern_cast_type_reprs( //dir=pattern + int id: @is_pattern ref, + int cast_type_repr: @type_repr_or_none ref +); + +#keyset[id] +is_pattern_sub_patterns( //dir=pattern + int id: @is_pattern ref, + int sub_pattern: @pattern_or_none ref +); + +named_patterns( //dir=pattern + unique int id: @named_pattern, + int var_decl: @var_decl_or_none ref +); + +optional_some_patterns( //dir=pattern + unique int id: @optional_some_pattern, + int sub_pattern: @pattern_or_none ref +); + +paren_patterns( //dir=pattern + unique int id: @paren_pattern, + int sub_pattern: @pattern_or_none ref +); + +tuple_patterns( //dir=pattern + unique int id: @tuple_pattern +); + +#keyset[id, index] +tuple_pattern_elements( //dir=pattern + int id: @tuple_pattern ref, + int index: int ref, + int element: @pattern_or_none ref +); + +typed_patterns( //dir=pattern + unique int id: @typed_pattern, + int sub_pattern: @pattern_or_none ref +); + +#keyset[id] +typed_pattern_type_reprs( //dir=pattern + int id: @typed_pattern ref, + int type_repr: @type_repr_or_none ref +); + +case_label_items( //dir=stmt + unique int id: @case_label_item, + int pattern: @pattern_or_none ref +); + +#keyset[id] +case_label_item_guards( //dir=stmt + int id: @case_label_item ref, + int guard: @expr_or_none ref +); + +condition_elements( //dir=stmt + unique int id: @condition_element +); + +#keyset[id] +condition_element_booleans( //dir=stmt + int id: @condition_element ref, + int boolean_: @expr_or_none ref +); + +#keyset[id] +condition_element_patterns( //dir=stmt + int id: @condition_element ref, + int pattern: @pattern_or_none ref +); + +#keyset[id] +condition_element_initializers( //dir=stmt + int id: @condition_element ref, + int initializer: @expr_or_none ref +); + +#keyset[id] +condition_element_availabilities( //dir=stmt + int id: @condition_element ref, + int availability: @availability_info_or_none ref +); + +@stmt = + @brace_stmt +| @break_stmt +| @case_stmt +| @continue_stmt +| @defer_stmt +| @discard_stmt +| @fail_stmt +| @fallthrough_stmt +| @labeled_stmt +| @pound_assert_stmt +| @return_stmt +| @then_stmt +| @throw_stmt +| @yield_stmt +; + +stmt_conditions( //dir=stmt + unique int id: @stmt_condition +); + +#keyset[id, index] +stmt_condition_elements( //dir=stmt + int id: @stmt_condition ref, + int index: int ref, + int element: @condition_element_or_none ref +); + +brace_stmts( //dir=stmt + unique int id: @brace_stmt +); + +#keyset[id, index] +brace_stmt_elements( //dir=stmt + int id: @brace_stmt ref, + int index: int ref, + int element: @ast_node_or_none ref +); + +break_stmts( //dir=stmt + unique int id: @break_stmt +); + +#keyset[id] +break_stmt_target_names( //dir=stmt + int id: @break_stmt ref, + string target_name: string ref +); + +#keyset[id] +break_stmt_targets( //dir=stmt + int id: @break_stmt ref, + int target: @stmt_or_none ref +); + +case_stmts( //dir=stmt + unique int id: @case_stmt, + int body: @stmt_or_none ref +); + +#keyset[id, index] +case_stmt_labels( //dir=stmt + int id: @case_stmt ref, + int index: int ref, + int label: @case_label_item_or_none ref +); + +#keyset[id, index] +case_stmt_variables( //dir=stmt + int id: @case_stmt ref, + int index: int ref, + int variable: @var_decl_or_none ref +); + +continue_stmts( //dir=stmt + unique int id: @continue_stmt +); + +#keyset[id] +continue_stmt_target_names( //dir=stmt + int id: @continue_stmt ref, + string target_name: string ref +); + +#keyset[id] +continue_stmt_targets( //dir=stmt + int id: @continue_stmt ref, + int target: @stmt_or_none ref +); + +defer_stmts( //dir=stmt + unique int id: @defer_stmt, + int body: @brace_stmt_or_none ref +); + +discard_stmts( //dir=stmt + unique int id: @discard_stmt, + int sub_expr: @expr_or_none ref +); + +fail_stmts( //dir=stmt + unique int id: @fail_stmt +); + +fallthrough_stmts( //dir=stmt + unique int id: @fallthrough_stmt, + int fallthrough_source: @case_stmt_or_none ref, + int fallthrough_dest: @case_stmt_or_none ref +); + +@labeled_stmt = + @do_catch_stmt +| @do_stmt +| @for_each_stmt +| @labeled_conditional_stmt +| @repeat_while_stmt +| @switch_stmt +; + +#keyset[id] +labeled_stmt_labels( //dir=stmt + int id: @labeled_stmt ref, + string label: string ref +); + +pound_assert_stmts( //dir=stmt + unique int id: @pound_assert_stmt, + int condition: @expr_or_none ref, + string message: string ref +); + +return_stmts( //dir=stmt + unique int id: @return_stmt +); + +#keyset[id] +return_stmt_results( //dir=stmt + int id: @return_stmt ref, + int result: @expr_or_none ref +); + +then_stmts( //dir=stmt + unique int id: @then_stmt, + int result: @expr_or_none ref +); + +throw_stmts( //dir=stmt + unique int id: @throw_stmt, + int sub_expr: @expr_or_none ref +); + +yield_stmts( //dir=stmt + unique int id: @yield_stmt +); + +#keyset[id, index] +yield_stmt_results( //dir=stmt + int id: @yield_stmt ref, + int index: int ref, + int result: @expr_or_none ref +); + +do_catch_stmts( //dir=stmt + unique int id: @do_catch_stmt, + int body: @stmt_or_none ref +); + +#keyset[id, index] +do_catch_stmt_catches( //dir=stmt + int id: @do_catch_stmt ref, + int index: int ref, + int catch: @case_stmt_or_none ref +); + +do_stmts( //dir=stmt + unique int id: @do_stmt, + int body: @brace_stmt_or_none ref +); + +for_each_stmts( //dir=stmt + unique int id: @for_each_stmt, + int pattern: @pattern_or_none ref, + int body: @brace_stmt_or_none ref +); + +#keyset[id, index] +for_each_stmt_variables( //dir=stmt + int id: @for_each_stmt ref, + int index: int ref, + int variable: @var_decl_or_none ref +); + +#keyset[id] +for_each_stmt_wheres( //dir=stmt + int id: @for_each_stmt ref, + int where: @expr_or_none ref +); + +#keyset[id] +for_each_stmt_iterator_vars( //dir=stmt + int id: @for_each_stmt ref, + int iteratorVar: @pattern_binding_decl_or_none ref +); + +#keyset[id] +for_each_stmt_next_calls( //dir=stmt + int id: @for_each_stmt ref, + int nextCall: @expr_or_none ref +); + +@labeled_conditional_stmt = + @guard_stmt +| @if_stmt +| @while_stmt +; + +#keyset[id] +labeled_conditional_stmts( //dir=stmt + int id: @labeled_conditional_stmt ref, + int condition: @stmt_condition_or_none ref +); + +repeat_while_stmts( //dir=stmt + unique int id: @repeat_while_stmt, + int condition: @expr_or_none ref, + int body: @stmt_or_none ref +); + +switch_stmts( //dir=stmt + unique int id: @switch_stmt, + int expr: @expr_or_none ref +); + +#keyset[id, index] +switch_stmt_cases( //dir=stmt + int id: @switch_stmt ref, + int index: int ref, + int case_: @case_stmt_or_none ref +); + +guard_stmts( //dir=stmt + unique int id: @guard_stmt, + int body: @brace_stmt_or_none ref +); + +if_stmts( //dir=stmt + unique int id: @if_stmt, + int then: @stmt_or_none ref +); + +#keyset[id] +if_stmt_elses( //dir=stmt + int id: @if_stmt ref, + int else: @stmt_or_none ref +); + +while_stmts( //dir=stmt + unique int id: @while_stmt, + int body: @stmt_or_none ref +); + +@type = + @any_function_type +| @any_generic_type +| @any_metatype_type +| @builtin_type +| @dependent_member_type +| @dynamic_self_type +| @error_type +| @existential_type +| @in_out_type +| @integer_type +| @l_value_type +| @module_type +| @pack_element_type +| @pack_expansion_type +| @pack_type +| @parameterized_protocol_type +| @protocol_composition_type +| @reference_storage_type +| @substitutable_type +| @sugar_type +| @tuple_type +| @unresolved_type +; + +#keyset[id] +types( //dir=type + int id: @type ref, + string name: string ref, + int canonical_type: @type_or_none ref +); + +type_reprs( //dir=type + unique int id: @type_repr, + int type_: @type_or_none ref +); + +@any_function_type = + @function_type +| @generic_function_type +; + +#keyset[id] +any_function_types( //dir=type + int id: @any_function_type ref, + int result: @type_or_none ref +); + +#keyset[id, index] +any_function_type_param_types( //dir=type + int id: @any_function_type ref, + int index: int ref, + int param_type: @type_or_none ref +); + +#keyset[id] +any_function_type_is_throwing( //dir=type + int id: @any_function_type ref +); + +#keyset[id] +any_function_type_is_async( //dir=type + int id: @any_function_type ref +); + +@any_generic_type = + @nominal_or_bound_generic_nominal_type +| @unbound_generic_type +; + +#keyset[id] +any_generic_types( //dir=type + int id: @any_generic_type ref, + int declaration: @generic_type_decl_or_none ref +); + +#keyset[id] +any_generic_type_parents( //dir=type + int id: @any_generic_type ref, + int parent: @type_or_none ref +); + +@any_metatype_type = + @existential_metatype_type +| @metatype_type +; + +@builtin_type = + @any_builtin_integer_type +| @builtin_bridge_object_type +| @builtin_default_actor_storage_type +| @builtin_executor_type +| @builtin_float_type +| @builtin_generic_type +| @builtin_job_type +| @builtin_native_object_type +| @builtin_raw_pointer_type +| @builtin_raw_unsafe_continuation_type +| @builtin_unsafe_value_buffer_type +| @builtin_vector_type +; + +dependent_member_types( //dir=type + unique int id: @dependent_member_type, + int base_type: @type_or_none ref, + int associated_type_decl: @associated_type_decl_or_none ref +); + +dynamic_self_types( //dir=type + unique int id: @dynamic_self_type, + int static_self_type: @type_or_none ref +); + +error_types( //dir=type + unique int id: @error_type +); + +existential_types( //dir=type + unique int id: @existential_type, + int constraint: @type_or_none ref +); + +in_out_types( //dir=type + unique int id: @in_out_type, + int object_type: @type_or_none ref +); + +integer_types( //dir=type + unique int id: @integer_type, + string value: string ref +); + +l_value_types( //dir=type + unique int id: @l_value_type, + int object_type: @type_or_none ref +); + +module_types( //dir=type + unique int id: @module_type, + int module: @module_decl_or_none ref +); + +pack_element_types( //dir=type + unique int id: @pack_element_type, + int pack_type: @type_or_none ref +); + +pack_expansion_types( //dir=type + unique int id: @pack_expansion_type, + int pattern_type: @type_or_none ref, + int count_type: @type_or_none ref +); + +pack_types( //dir=type + unique int id: @pack_type +); + +#keyset[id, index] +pack_type_elements( //dir=type + int id: @pack_type ref, + int index: int ref, + int element: @type_or_none ref +); + +parameterized_protocol_types( //dir=type + unique int id: @parameterized_protocol_type, + int base: @protocol_type_or_none ref +); + +#keyset[id, index] +parameterized_protocol_type_args( //dir=type + int id: @parameterized_protocol_type ref, + int index: int ref, + int arg: @type_or_none ref +); + +protocol_composition_types( //dir=type + unique int id: @protocol_composition_type +); + +#keyset[id, index] +protocol_composition_type_members( //dir=type + int id: @protocol_composition_type ref, + int index: int ref, + int member: @type_or_none ref +); + +@reference_storage_type = + @unmanaged_storage_type +| @unowned_storage_type +| @weak_storage_type +; + +#keyset[id] +reference_storage_types( //dir=type + int id: @reference_storage_type ref, + int referent_type: @type_or_none ref +); + +@substitutable_type = + @archetype_type +| @generic_type_param_type +; + +@sugar_type = + @paren_type +| @syntax_sugar_type +| @type_alias_type +; + +tuple_types( //dir=type + unique int id: @tuple_type +); + +#keyset[id, index] +tuple_type_types( //dir=type + int id: @tuple_type ref, + int index: int ref, + int type_: @type_or_none ref +); + +#keyset[id, index] +tuple_type_names( //dir=type + int id: @tuple_type ref, + int index: int ref, + string name: string ref +); + +unresolved_types( //dir=type + unique int id: @unresolved_type +); + +@any_builtin_integer_type = + @builtin_integer_literal_type +| @builtin_integer_type +; + +@archetype_type = + @local_archetype_type +| @opaque_type_archetype_type +| @pack_archetype_type +| @primary_archetype_type +; + +#keyset[id] +archetype_types( //dir=type + int id: @archetype_type ref, + int interface_type: @type_or_none ref +); + +#keyset[id] +archetype_type_superclasses( //dir=type + int id: @archetype_type ref, + int superclass: @type_or_none ref +); + +#keyset[id, index] +archetype_type_protocols( //dir=type + int id: @archetype_type ref, + int index: int ref, + int protocol: @protocol_decl_or_none ref +); + +builtin_bridge_object_types( //dir=type + unique int id: @builtin_bridge_object_type +); + +builtin_default_actor_storage_types( //dir=type + unique int id: @builtin_default_actor_storage_type +); + +builtin_executor_types( //dir=type + unique int id: @builtin_executor_type +); + +builtin_float_types( //dir=type + unique int id: @builtin_float_type +); + +@builtin_generic_type = + @builtin_fixed_array_type +; + +builtin_job_types( //dir=type + unique int id: @builtin_job_type +); + +builtin_native_object_types( //dir=type + unique int id: @builtin_native_object_type +); + +builtin_raw_pointer_types( //dir=type + unique int id: @builtin_raw_pointer_type +); + +builtin_raw_unsafe_continuation_types( //dir=type + unique int id: @builtin_raw_unsafe_continuation_type +); + +builtin_unsafe_value_buffer_types( //dir=type + unique int id: @builtin_unsafe_value_buffer_type +); + +builtin_vector_types( //dir=type + unique int id: @builtin_vector_type +); + +existential_metatype_types( //dir=type + unique int id: @existential_metatype_type +); + +function_types( //dir=type + unique int id: @function_type +); + +generic_function_types( //dir=type + unique int id: @generic_function_type +); + +#keyset[id, index] +generic_function_type_generic_params( //dir=type + int id: @generic_function_type ref, + int index: int ref, + int generic_param: @generic_type_param_type_or_none ref +); + +generic_type_param_types( //dir=type + unique int id: @generic_type_param_type +); + +metatype_types( //dir=type + unique int id: @metatype_type +); + +@nominal_or_bound_generic_nominal_type = + @bound_generic_type +| @nominal_type +; + +paren_types( //dir=type + unique int id: @paren_type, + int type_: @type_or_none ref +); + +@syntax_sugar_type = + @dictionary_type +| @inline_array_type +| @unary_syntax_sugar_type +; + +type_alias_types( //dir=type + unique int id: @type_alias_type, + int decl: @type_alias_decl_or_none ref +); + +unbound_generic_types( //dir=type + unique int id: @unbound_generic_type +); + +unmanaged_storage_types( //dir=type + unique int id: @unmanaged_storage_type +); + +unowned_storage_types( //dir=type + unique int id: @unowned_storage_type +); + +weak_storage_types( //dir=type + unique int id: @weak_storage_type +); + +@bound_generic_type = + @bound_generic_class_type +| @bound_generic_enum_type +| @bound_generic_struct_type +; + +#keyset[id, index] +bound_generic_type_arg_types( //dir=type + int id: @bound_generic_type ref, + int index: int ref, + int arg_type: @type_or_none ref +); + +builtin_fixed_array_types( //dir=type + unique int id: @builtin_fixed_array_type, + int size: @type_or_none ref, + int element_type: @type_or_none ref +); + +builtin_integer_literal_types( //dir=type + unique int id: @builtin_integer_literal_type +); + +builtin_integer_types( //dir=type + unique int id: @builtin_integer_type +); + +#keyset[id] +builtin_integer_type_widths( //dir=type + int id: @builtin_integer_type ref, + int width: int ref +); + +dictionary_types( //dir=type + unique int id: @dictionary_type, + int key_type: @type_or_none ref, + int value_type: @type_or_none ref +); + +inline_array_types( //dir=type + unique int id: @inline_array_type, + int count_type: @type_or_none ref, + int element_type: @type_or_none ref +); + +@local_archetype_type = + @element_archetype_type +| @existential_archetype_type +; + +@nominal_type = + @class_type +| @enum_type +| @protocol_type +| @struct_type +; + +opaque_type_archetype_types( //dir=type + unique int id: @opaque_type_archetype_type, + int declaration: @opaque_type_decl_or_none ref +); + +pack_archetype_types( //dir=type + unique int id: @pack_archetype_type +); + +primary_archetype_types( //dir=type + unique int id: @primary_archetype_type +); + +@unary_syntax_sugar_type = + @array_slice_type +| @optional_type +| @variadic_sequence_type +; + +#keyset[id] +unary_syntax_sugar_types( //dir=type + int id: @unary_syntax_sugar_type ref, + int base_type: @type_or_none ref +); + +array_slice_types( //dir=type + unique int id: @array_slice_type +); + +bound_generic_class_types( //dir=type + unique int id: @bound_generic_class_type +); + +bound_generic_enum_types( //dir=type + unique int id: @bound_generic_enum_type +); + +bound_generic_struct_types( //dir=type + unique int id: @bound_generic_struct_type +); + +class_types( //dir=type + unique int id: @class_type +); + +element_archetype_types( //dir=type + unique int id: @element_archetype_type +); + +enum_types( //dir=type + unique int id: @enum_type +); + +existential_archetype_types( //dir=type + unique int id: @existential_archetype_type +); + +optional_types( //dir=type + unique int id: @optional_type +); + +protocol_types( //dir=type + unique int id: @protocol_type +); + +struct_types( //dir=type + unique int id: @struct_type +); + +variadic_sequence_types( //dir=type + unique int id: @variadic_sequence_type +); + +@accessor_or_none = + @accessor +| @unspecified_element +; + +@argument_or_none = + @argument +| @unspecified_element +; + +@associated_type_decl_or_none = + @associated_type_decl +| @unspecified_element +; + +@ast_node_or_none = + @ast_node +| @unspecified_element +; + +@availability_info_or_none = + @availability_info +| @unspecified_element +; + +@availability_spec_or_none = + @availability_spec +| @unspecified_element +; + +@brace_stmt_or_none = + @brace_stmt +| @unspecified_element +; + +@captured_decl_or_none = + @captured_decl +| @unspecified_element +; + +@case_label_item_or_none = + @case_label_item +| @unspecified_element +; + +@case_stmt_or_none = + @case_stmt +| @unspecified_element +; + +@closure_expr_or_none = + @closure_expr +| @unspecified_element +; + +@condition_element_or_none = + @condition_element +| @unspecified_element +; + +@decl_or_none = + @decl +| @unspecified_element +; + +@enum_element_decl_or_none = + @enum_element_decl +| @unspecified_element +; + +@expr_or_none = + @expr +| @unspecified_element +; + +@file_or_none = + @file +| @unspecified_element +; + +@function_or_none = + @function +| @unspecified_element +; + +@generic_type_decl_or_none = + @generic_type_decl +| @unspecified_element +; + +@generic_type_param_decl_or_none = + @generic_type_param_decl +| @unspecified_element +; + +@generic_type_param_type_or_none = + @generic_type_param_type +| @unspecified_element +; + +@initializer_or_none = + @initializer +| @unspecified_element +; + +@key_path_component_or_none = + @key_path_component +| @unspecified_element +; + +@location_or_none = + @location +| @unspecified_element +; + +@macro_role_or_none = + @macro_role +| @unspecified_element +; + +@module_decl_or_none = + @module_decl +| @unspecified_element +; + +@nominal_type_decl_or_none = + @nominal_type_decl +| @unspecified_element +; + +@opaque_type_decl_or_none = + @opaque_type_decl +| @unspecified_element +; + +@opaque_value_expr_or_none = + @opaque_value_expr +| @unspecified_element +; + +@param_decl_or_none = + @param_decl +| @unspecified_element +; + +@pattern_or_none = + @pattern +| @unspecified_element +; + +@pattern_binding_decl_or_none = + @pattern_binding_decl +| @unspecified_element +; + +@precedence_group_decl_or_none = + @precedence_group_decl +| @unspecified_element +; + +@protocol_decl_or_none = + @protocol_decl +| @unspecified_element +; + +@protocol_type_or_none = + @protocol_type +| @unspecified_element +; + +@stmt_or_none = + @stmt +| @unspecified_element +; + +@stmt_condition_or_none = + @stmt_condition +| @unspecified_element +; + +@string_literal_expr_or_none = + @string_literal_expr +| @unspecified_element +; + +@tap_expr_or_none = + @tap_expr +| @unspecified_element +; + +@type_or_none = + @type +| @unspecified_element +; + +@type_alias_decl_or_none = + @type_alias_decl +| @unspecified_element +; + +@type_repr_or_none = + @type_repr +| @unspecified_element +; + +@value_decl_or_none = + @unspecified_element +| @value_decl +; + +@var_decl_or_none = + @unspecified_element +| @var_decl +; diff --git a/swift/ql/lib/upgrades/ee3053b673c901a325b361b18c50b18342752bf8/upgrade.properties b/swift/ql/lib/upgrades/ee3053b673c901a325b361b18c50b18342752bf8/upgrade.properties new file mode 100644 index 00000000000..48de15f84ae --- /dev/null +++ b/swift/ql/lib/upgrades/ee3053b673c901a325b361b18c50b18342752bf8/upgrade.properties @@ -0,0 +1,4 @@ +description: Support BuiltinFixedArrayType arguments +compatibility: backwards +builtin_fixed_array_types.rel: run upgrade.ql new_builtin_fixed_array_types +unspecified_elements.rel: run upgrade.ql new_unspecified_elements diff --git a/swift/ql/lib/upgrades/ee3053b673c901a325b361b18c50b18342752bf8/upgrade.ql b/swift/ql/lib/upgrades/ee3053b673c901a325b361b18c50b18342752bf8/upgrade.ql new file mode 100644 index 00000000000..03a001e6000 --- /dev/null +++ b/swift/ql/lib/upgrades/ee3053b673c901a325b361b18c50b18342752bf8/upgrade.ql @@ -0,0 +1,44 @@ +class BuiltinFixedArrayType extends @builtin_fixed_array_type { + string toString() { none() } +} + +newtype TAddedElement = + TSize(BuiltinFixedArrayType a) or + TElementType(BuiltinFixedArrayType a) + +module Fresh = QlBuiltins::NewEntity; + +class TNewElement = @element or Fresh::EntityId; + +class NewElement extends TNewElement { + string toString() { none() } +} + +class TypeOrNone extends @type_or_none { + string toString() { none() } +} + +query predicate new_builtin_fixed_array_types( + BuiltinFixedArrayType builtinFixedArrayType, NewElement size, NewElement elementType +) { + builtin_fixed_array_types(builtinFixedArrayType) and + Fresh::map(TSize(builtinFixedArrayType)) = size and + Fresh::map(TElementType(builtinFixedArrayType)) = elementType +} + +query predicate new_unspecified_elements(NewElement id, string property, string error) { + unspecified_elements(id, property, error) + or + exists(BuiltinFixedArrayType builtinFixedArrayType | + builtin_fixed_array_types(builtinFixedArrayType) + | + id = Fresh::map(TSize(builtinFixedArrayType)) and + error = "BuiltinFixedArrayType size missing after upgrade. Please update your CodeQL code." and + property = "" + or + id = Fresh::map(TElementType(builtinFixedArrayType)) and + error = + "BuiltinFixedArrayType element type missing after upgrade. Please update your CodeQL code." and + property = "" + ) +} diff --git a/swift/ql/src/CHANGELOG.md b/swift/ql/src/CHANGELOG.md index 1d4d9877b60..af70cebc1e4 100644 --- a/swift/ql/src/CHANGELOG.md +++ b/swift/ql/src/CHANGELOG.md @@ -1,3 +1,13 @@ +## 1.3.1 + +No user-facing changes. + +## 1.3.0 + +### Query Metadata Changes + +* The `@security-severity` metadata of `swift/unsafe-webview-fetch` has been increased from 6.1 (medium) to 7.8 (high). + ## 1.2.20 No user-facing changes. diff --git a/swift/ql/src/change-notes/2026-03-13-adjust-xss-and-log-injection-severity.md b/swift/ql/src/change-notes/released/1.3.0.md similarity index 75% rename from swift/ql/src/change-notes/2026-03-13-adjust-xss-and-log-injection-severity.md rename to swift/ql/src/change-notes/released/1.3.0.md index a46302ed146..5a85d7239d7 100644 --- a/swift/ql/src/change-notes/2026-03-13-adjust-xss-and-log-injection-severity.md +++ b/swift/ql/src/change-notes/released/1.3.0.md @@ -1,4 +1,5 @@ ---- -category: queryMetadata ---- +## 1.3.0 + +### Query Metadata Changes + * The `@security-severity` metadata of `swift/unsafe-webview-fetch` has been increased from 6.1 (medium) to 7.8 (high). diff --git a/swift/ql/src/change-notes/released/1.3.1.md b/swift/ql/src/change-notes/released/1.3.1.md new file mode 100644 index 00000000000..8dd9964197c --- /dev/null +++ b/swift/ql/src/change-notes/released/1.3.1.md @@ -0,0 +1,3 @@ +## 1.3.1 + +No user-facing changes. diff --git a/swift/ql/src/codeql-pack.release.yml b/swift/ql/src/codeql-pack.release.yml index 8e035aaa1f4..e71b6d081f1 100644 --- a/swift/ql/src/codeql-pack.release.yml +++ b/swift/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.2.20 +lastReleaseVersion: 1.3.1 diff --git a/swift/ql/src/qlpack.yml b/swift/ql/src/qlpack.yml index 64c712af472..6b4dc1f65e5 100644 --- a/swift/ql/src/qlpack.yml +++ b/swift/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/swift-queries -version: 1.2.21-dev +version: 1.3.2-dev groups: - swift - queries diff --git a/swift/ql/test/extractor-tests/declarations/all.expected b/swift/ql/test/extractor-tests/declarations/all.expected index 98b94895345..109e80ee4f6 100644 --- a/swift/ql/test/extractor-tests/declarations/all.expected +++ b/swift/ql/test/extractor-tests/declarations/all.expected @@ -116,6 +116,7 @@ | declarations.swift:77:16:77:23 | var ... = ... | | | declarations.swift:77:20:77:20 | _x | | | declarations.swift:77:20:77:20 | get | | +| declarations.swift:77:20:77:20 | var ... = ... | | | declarations.swift:77:20:77:20 | x | | | declarations.swift:81:1:136:1 | HasPropertyAndObserver | | | declarations.swift:81:8:81:8 | HasPropertyAndObserver.init(normalField:hasWillSet1:hasWillSet2:hasDidSet1:hasDidSet2:hasBoth:) | | diff --git a/swift/ql/test/extractor-tests/errors/Errors.expected b/swift/ql/test/extractor-tests/errors/Errors.expected index 50ab8ec658b..51900bf11d0 100644 --- a/swift/ql/test/extractor-tests/errors/Errors.expected +++ b/swift/ql/test/extractor-tests/errors/Errors.expected @@ -1,6 +1,6 @@ -| file://:0:0:0:0 | <> | ErrorType | -| file://:0:0:0:0 | <> | ErrorType | -| file://:0:0:0:0 | <> | ErrorType | +| file://:0:0:0:0 | _ | ErrorType | +| file://:0:0:0:0 | _ | ErrorType | +| file://:0:0:0:0 | _ | ErrorType | | overloaded.swift:6:5:6:5 | OverloadedDeclRefExpr | OverloadedDeclRefExpr | | unresolved.swift:5:1:5:14 | UnresolvedSpecializeExpr | UnresolvedSpecializeExpr | | unspecified.swift:3:1:3:23 | missing extended_type_decl from ExtensionDecl | UnspecifiedElement | diff --git a/swift/ql/test/extractor-tests/generated/decl/CapturedDecl/PrintAst.expected b/swift/ql/test/extractor-tests/generated/decl/CapturedDecl/PrintAst.expected index ac61ba1dfc6..689d93cab9b 100644 --- a/swift/ql/test/extractor-tests/generated/decl/CapturedDecl/PrintAst.expected +++ b/swift/ql/test/extractor-tests/generated/decl/CapturedDecl/PrintAst.expected @@ -164,8 +164,8 @@ closures.swift: # 31| getArgument(0): [Argument] : ... .!=(_:_:) ... # 31| getExpr(): [BinaryExpr] ... .!=(_:_:) ... # 31| getFunction(): [MethodLookupExpr] .!=(_:_:) -# 31| getBase(): [TypeExpr] Optional.Type -# 31| getTypeRepr(): [TypeRepr] Optional +# 31| getBase(): [TypeExpr] Int?.Type +# 31| getTypeRepr(): [TypeRepr] Int? # 31| getMethodRef(): [DeclRefExpr] !=(_:_:) # 31| getArgument(0): [Argument] : x # 31| getExpr(): [DeclRefExpr] x diff --git a/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl.expected b/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl.expected index 09751f3c41d..03460f83620 100644 --- a/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl.expected +++ b/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl.expected @@ -118,11 +118,11 @@ getParentInitializer | var_decls.swift:57:36:57:36 | _w4 | var_decls.swift:57:4:57:41 | call to WrapperWithProjectedAndInit.init(wrappedValue:) | | var_decls.swift:57:36:57:36 | w4 | var_decls.swift:57:4:57:41 | call to WrapperWithProjectedAndInit.init(wrappedValue:) | getPropertyWrapperBackingVarBinding -| var_decls.swift:24:15:24:15 | wrapped | file://:0:0:0:0 | var ... = ... | -| var_decls.swift:54:10:54:10 | w1 | file://:0:0:0:0 | var ... = ... | -| var_decls.swift:55:24:55:24 | w2 | file://:0:0:0:0 | var ... = ... | -| var_decls.swift:56:29:56:29 | w3 | file://:0:0:0:0 | var ... = ... | -| var_decls.swift:57:36:57:36 | w4 | file://:0:0:0:0 | var ... = ... | +| var_decls.swift:24:15:24:15 | wrapped | var_decls.swift:24:15:24:15 | var ... = ... | +| var_decls.swift:54:10:54:10 | w1 | var_decls.swift:54:10:54:10 | var ... = ... | +| var_decls.swift:55:24:55:24 | w2 | var_decls.swift:55:24:55:24 | var ... = ... | +| var_decls.swift:56:29:56:29 | w3 | var_decls.swift:56:29:56:29 | var ... = ... | +| var_decls.swift:57:36:57:36 | w4 | var_decls.swift:57:36:57:36 | var ... = ... | getPropertyWrapperBackingVar | var_decls.swift:24:15:24:15 | wrapped | var_decls.swift:24:15:24:15 | _wrapped | | var_decls.swift:54:10:54:10 | w1 | var_decls.swift:54:10:54:10 | _w1 | @@ -130,8 +130,8 @@ getPropertyWrapperBackingVar | var_decls.swift:56:29:56:29 | w3 | var_decls.swift:56:29:56:29 | _w3 | | var_decls.swift:57:36:57:36 | w4 | var_decls.swift:57:36:57:36 | _w4 | getPropertyWrapperProjectionVarBinding -| var_decls.swift:56:29:56:29 | w3 | file://:0:0:0:0 | var ... = ... | -| var_decls.swift:57:36:57:36 | w4 | file://:0:0:0:0 | var ... = ... | +| var_decls.swift:56:29:56:29 | w3 | var_decls.swift:56:29:56:29 | var ... = ... | +| var_decls.swift:57:36:57:36 | w4 | var_decls.swift:57:36:57:36 | var ... = ... | getPropertyWrapperProjectionVar | var_decls.swift:56:29:56:29 | w3 | var_decls.swift:56:29:56:29 | $w3 | | var_decls.swift:57:36:57:36 | w4 | var_decls.swift:57:36:57:36 | $w4 | diff --git a/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroRole.expected b/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroRole.expected index 05232a3cd04..52e80f2a2c6 100644 --- a/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroRole.expected +++ b/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroRole.expected @@ -11,6 +11,7 @@ instances | file://:0:0:0:0 | #freestanding(expression) | getKind: | 1 | getMacroSyntax: | 0 | | file://:0:0:0:0 | #freestanding(expression) | getKind: | 1 | getMacroSyntax: | 0 | | file://:0:0:0:0 | @attached(accessor) | getKind: | 4 | getMacroSyntax: | 1 | +| file://:0:0:0:0 | @attached(extension) | getKind: | 256 | getMacroSyntax: | 1 | | file://:0:0:0:0 | @attached(member) | getKind: | 16 | getMacroSyntax: | 1 | | file://:0:0:0:0 | @attached(memberAttribute) | getKind: | 8 | getMacroSyntax: | 1 | | file://:0:0:0:0 | @attached(peer) | getKind: | 32 | getMacroSyntax: | 1 | @@ -22,6 +23,7 @@ instances | test.swift:6:2:6:20 | @attached(extension) | getKind: | 256 | getMacroSyntax: | 1 | getConformance getName +| file://:0:0:0:0 | @attached(extension) | 0 | _() | | file://:0:0:0:0 | @attached(peer) | 0 | $() | | file://:0:0:0:0 | @attached(peer) | 0 | _() | | file://:0:0:0:0 | @attached(peer) | 0 | _lldb_summary() | diff --git a/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl.expected b/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl.expected index f67d25dc31b..65191e3d55f 100644 --- a/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl.expected +++ b/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl.expected @@ -66,8 +66,8 @@ getAttachedPropertyWrapperType getParentPattern getParentInitializer getPropertyWrapperBackingVarBinding -| param_decls.swift:48:18:48:22 | p1 | file://:0:0:0:0 | var ... = ... | -| param_decls.swift:49:26:49:30 | p2 | file://:0:0:0:0 | var ... = ... | +| param_decls.swift:48:18:48:22 | p1 | param_decls.swift:48:18:48:18 | var ... = ... | +| param_decls.swift:49:26:49:30 | p2 | param_decls.swift:49:26:49:26 | var ... = ... | getPropertyWrapperBackingVar | param_decls.swift:48:18:48:22 | p1 | param_decls.swift:48:18:48:18 | _p1 | | param_decls.swift:49:26:49:30 | p2 | param_decls.swift:49:26:49:26 | _p2 | diff --git a/swift/ql/test/extractor-tests/generated/expr/ObjectLiteralExpr/ObjectLiteralExpr.expected b/swift/ql/test/extractor-tests/generated/expr/ObjectLiteralExpr/ObjectLiteralExpr.expected index abf317e5a3b..9f454d9cd69 100644 --- a/swift/ql/test/extractor-tests/generated/expr/ObjectLiteralExpr/ObjectLiteralExpr.expected +++ b/swift/ql/test/extractor-tests/generated/expr/ObjectLiteralExpr/ObjectLiteralExpr.expected @@ -3,9 +3,9 @@ instances | object_literals.swift:6:5:6:61 | #colorLiteral(...) | getKind: | 2 | | object_literals.swift:7:5:7:44 | #imageLiteral(...) | getKind: | 1 | getType -| object_literals.swift:5:5:5:42 | #fileLiteral(...) | <> | -| object_literals.swift:6:5:6:61 | #colorLiteral(...) | <> | -| object_literals.swift:7:5:7:44 | #imageLiteral(...) | <> | +| object_literals.swift:5:5:5:42 | #fileLiteral(...) | _ | +| object_literals.swift:6:5:6:61 | #colorLiteral(...) | _ | +| object_literals.swift:7:5:7:44 | #imageLiteral(...) | _ | getArgument | object_literals.swift:5:5:5:42 | #fileLiteral(...) | 0 | object_literals.swift:5:18:5:32 | resourceName: file.txt | | object_literals.swift:6:5:6:61 | #colorLiteral(...) | 0 | object_literals.swift:6:19:6:24 | red: 255 | diff --git a/swift/ql/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt.expected b/swift/ql/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt.expected index 55fc86a8fdb..ff575435d01 100644 --- a/swift/ql/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt.expected +++ b/swift/ql/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt.expected @@ -12,8 +12,8 @@ getVariable getWhere | for.swift:4:5:6:5 | for ... in ... where ... { ... } | for.swift:4:25:4:30 | ... .!=(_:_:) ... | getIteratorVar -| for.swift:4:5:6:5 | for ... in ... where ... { ... } | file://:0:0:0:0 | var ... = ... | -| for.swift:7:5:9:5 | for ... in ... { ... } | file://:0:0:0:0 | var ... = ... | +| for.swift:4:5:6:5 | for ... in ... where ... { ... } | for.swift:4:14:4:14 | var ... = ... | +| for.swift:7:5:9:5 | for ... in ... { ... } | for.swift:7:14:7:14 | var ... = ... | getNextCall | for.swift:4:5:6:5 | for ... in ... where ... { ... } | for.swift:4:5:4:5 | call to next() | | for.swift:7:5:9:5 | for ... in ... { ... } | for.swift:7:5:7:5 | call to next() | diff --git a/swift/ql/test/extractor-tests/generated/type/BuiltinFixedArrayType/BuiltinFixedArrayType.expected b/swift/ql/test/extractor-tests/generated/type/BuiltinFixedArrayType/BuiltinFixedArrayType.expected new file mode 100644 index 00000000000..5dce3facedf --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/type/BuiltinFixedArrayType/BuiltinFixedArrayType.expected @@ -0,0 +1,3 @@ +| Builtin.FixedArray<4, Int> | getName: | FixedArray<4, Int> | getCanonicalType: | Builtin.FixedArray<4, Int> | getSize: | 4 | getElementType: | Int | +| Builtin.FixedArray | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray | getSize: | N | getElementType: | T | +| Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | getName: | FixedArray<\u03c4_0_0, \u03c4_0_1> | getCanonicalType: | Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | getSize: | \u03c4_0_0 | getElementType: | \u03c4_0_1 | diff --git a/swift/ql/test/extractor-tests/generated/type/BuiltinFixedArrayType/BuiltinFixedArrayType.ql b/swift/ql/test/extractor-tests/generated/type/BuiltinFixedArrayType/BuiltinFixedArrayType.ql new file mode 100644 index 00000000000..e8ec753f6f6 --- /dev/null +++ b/swift/ql/test/extractor-tests/generated/type/BuiltinFixedArrayType/BuiltinFixedArrayType.ql @@ -0,0 +1,20 @@ +// generated by codegen/codegen.py, do not edit +import codeql.swift.elements +import TestUtils + +query predicate instances( + BuiltinFixedArrayType x, string getName__label, string getName, string getCanonicalType__label, + Type getCanonicalType, string getSize__label, Type getSize, string getElementType__label, + Type getElementType +) { + toBeTested(x) and + not x.isUnknown() and + getName__label = "getName:" and + getName = x.getName() and + getCanonicalType__label = "getCanonicalType:" and + getCanonicalType = x.getCanonicalType() and + getSize__label = "getSize:" and + getSize = x.getSize() and + getElementType__label = "getElementType:" and + getElementType = x.getElementType() +} diff --git a/swift/ql/test/extractor-tests/generated/type/BuiltinType/fixed_array.swift b/swift/ql/test/extractor-tests/generated/type/BuiltinFixedArrayType/fixed_array.swift similarity index 100% rename from swift/ql/test/extractor-tests/generated/type/BuiltinType/fixed_array.swift rename to swift/ql/test/extractor-tests/generated/type/BuiltinFixedArrayType/fixed_array.swift diff --git a/swift/ql/test/extractor-tests/generated/type/BuiltinType/BuiltinType.expected b/swift/ql/test/extractor-tests/generated/type/BuiltinType/BuiltinType.expected index 1b64e9f4a22..27e4e6f0868 100644 --- a/swift/ql/test/extractor-tests/generated/type/BuiltinType/BuiltinType.expected +++ b/swift/ql/test/extractor-tests/generated/type/BuiltinType/BuiltinType.expected @@ -2,9 +2,6 @@ | Builtin.Executor | BuiltinExecutorType | getName: | Executor | getCanonicalType: | Builtin.Executor | | Builtin.FPIEEE32 | BuiltinFloatType | getName: | FPIEEE32 | getCanonicalType: | Builtin.FPIEEE32 | | Builtin.FPIEEE64 | BuiltinFloatType | getName: | FPIEEE64 | getCanonicalType: | Builtin.FPIEEE64 | -| Builtin.FixedArray<4, Int> | BuiltinFixedArrayType | getName: | FixedArray<4, Int> | getCanonicalType: | Builtin.FixedArray<4, Int> | -| Builtin.FixedArray | BuiltinFixedArrayType | getName: | FixedArray | getCanonicalType: | Builtin.FixedArray | -| Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | BuiltinFixedArrayType | getName: | FixedArray<\u03c4_0_0, \u03c4_0_1> | getCanonicalType: | Builtin.FixedArray<\u03c4_0_0, \u03c4_0_1> | | Builtin.IntLiteral | BuiltinIntegerLiteralType | getName: | IntLiteral | getCanonicalType: | Builtin.IntLiteral | | Builtin.Job | BuiltinJobType | getName: | Job | getCanonicalType: | Builtin.Job | | Builtin.NativeObject | BuiltinNativeObjectType | getName: | NativeObject | getCanonicalType: | Builtin.NativeObject | diff --git a/swift/ql/test/extractor-tests/generated/type/IntegerType/IntegerType.expected b/swift/ql/test/extractor-tests/generated/type/IntegerType/IntegerType.expected index 7fba23db8bd..7b2c1bada26 100644 --- a/swift/ql/test/extractor-tests/generated/type/IntegerType/IntegerType.expected +++ b/swift/ql/test/extractor-tests/generated/type/IntegerType/IntegerType.expected @@ -1,2 +1,8 @@ +| 16 | getName: | 16 | getCanonicalType: | 16 | getValue: | 16 | +| 40 | getName: | 40 | getCanonicalType: | 40 | getValue: | 40 | +| 58 | getName: | 58 | getCanonicalType: | 58 | getValue: | 58 | +| 100 | getName: | 100 | getCanonicalType: | 100 | getValue: | 100 | +| 112 | getName: | 112 | getCanonicalType: | 112 | getValue: | 112 | | 128 | getName: | 128 | getCanonicalType: | 128 | getValue: | 128 | | 256 | getName: | 256 | getCanonicalType: | 256 | getValue: | 256 | +| 716 | getName: | 716 | getCanonicalType: | 716 | getValue: | 716 | diff --git a/swift/ql/test/library-tests/ast/PrintAst.expected b/swift/ql/test/library-tests/ast/PrintAst.expected index 8cd6a4a5aff..9e47767c237 100644 --- a/swift/ql/test/library-tests/ast/PrintAst.expected +++ b/swift/ql/test/library-tests/ast/PrintAst.expected @@ -705,7 +705,7 @@ cfg.swift: # 138| getVariable(0): [ConcreteVarDecl] $generator # 138| Type = IndexingIterator> # 138| getPattern(): [AnyPattern] _ -#-----| getIteratorVar(): [PatternBindingDecl] var ... = ... +# 138| getIteratorVar(): [PatternBindingDecl] var ... = ... # 138| getInit(0): [CallExpr] call to makeIterator() # 138| getFunction(): [MethodLookupExpr] .makeIterator() # 138| getBase(): [BinaryExpr] ... ....(_:_:) ... @@ -3263,7 +3263,7 @@ cfg.swift: # 526| getVariable(1): [ConcreteVarDecl] $i$generator # 526| Type = IndexingIterator> # 526| getPattern(): [NamedPattern] i -#-----| getIteratorVar(): [PatternBindingDecl] var ... = ... +# 526| getIteratorVar(): [PatternBindingDecl] var ... = ... # 526| getInit(0): [CallExpr] call to makeIterator() # 526| getFunction(): [MethodLookupExpr] .makeIterator() # 526| getBase(): [BinaryExpr] ... ....(_:_:) ... @@ -3302,7 +3302,7 @@ cfg.swift: # 533| getVariable(1): [ConcreteVarDecl] $i$generator # 533| Type = AsyncStream.Iterator # 533| getPattern(): [NamedPattern] i -#-----| getIteratorVar(): [PatternBindingDecl] var ... = ... +# 533| getIteratorVar(): [PatternBindingDecl] var ... = ... # 533| getInit(0): [CallExpr] call to makeAsyncIterator() # 533| getFunction(): [MethodLookupExpr] .makeAsyncIterator() # 533| getBase(): [DeclRefExpr] stream @@ -4141,7 +4141,7 @@ declarations.swift: #-----| getResult(): [MemberRefExpr] .wrappedValue #-----| getBase(): [DeclRefExpr] _x #-----| getCapture(0): [CapturedDecl] _x -#-----| getPropertyWrapperBackingVarBinding(): [PatternBindingDecl] var ... = ... +# 77| getPropertyWrapperBackingVarBinding(): [PatternBindingDecl] var ... = ... # 77| getInit(0): [CallExpr] call to ZeroWrapper.init() # 77| getFunction(): [MethodLookupExpr] ZeroWrapper.init() # 77| getBase(): [TypeExpr] ZeroWrapper.Type @@ -7018,7 +7018,7 @@ statements.swift: # 2| getVariable(1): [ConcreteVarDecl] $i$generator # 2| Type = IndexingIterator> # 2| getPattern(): [NamedPattern] i -#-----| getIteratorVar(): [PatternBindingDecl] var ... = ... +# 2| getIteratorVar(): [PatternBindingDecl] var ... = ... # 2| getInit(0): [CallExpr] call to makeIterator() # 2| getFunction(): [MethodLookupExpr] .makeIterator() # 2| getBase(): [BinaryExpr] ... ....(_:_:) ... @@ -7470,7 +7470,7 @@ statements.swift: # 71| getExpr(): [IntegerLiteralExpr] 2 # 71| getArgument(1): [Argument] : 0 # 71| getExpr(): [IntegerLiteralExpr] 0 -#-----| getIteratorVar(): [PatternBindingDecl] var ... = ... +# 71| getIteratorVar(): [PatternBindingDecl] var ... = ... # 71| getInit(0): [CallExpr] call to makeIterator() # 71| getFunction(): [MethodLookupExpr] .makeIterator() # 71| getBase(): [DeclRefExpr] numbers diff --git a/swift/ql/test/library-tests/controlflow/graph/Cfg.expected b/swift/ql/test/library-tests/controlflow/graph/Cfg.expected index 8fc8c7808b1..f128a0994b5 100644 --- a/swift/ql/test/library-tests/controlflow/graph/Cfg.expected +++ b/swift/ql/test/library-tests/controlflow/graph/Cfg.expected @@ -474,7 +474,8 @@ | cfg.swift:138:12:138:12 | 0 | cfg.swift:138:16:138:16 | 10 | | | cfg.swift:138:12:138:12 | $generator | cfg.swift:138:12:138:12 | .makeIterator() | match | | cfg.swift:138:12:138:12 | .makeIterator() | cfg.swift:138:13:138:13 | ....(_:_:) | | -| cfg.swift:138:12:138:12 | call to makeIterator() | file://:0:0:0:0 | var ... = ... | | +| cfg.swift:138:12:138:12 | call to makeIterator() | cfg.swift:138:12:138:12 | var ... = ... | | +| cfg.swift:138:12:138:12 | var ... = ... | cfg.swift:138:3:138:3 | .next() | | | cfg.swift:138:12:138:16 | ... ....(_:_:) ... | cfg.swift:138:12:138:12 | call to makeIterator() | | | cfg.swift:138:13:138:13 | ....(_:_:) | cfg.swift:138:13:138:13 | Int.Type | | | cfg.swift:138:13:138:13 | Int.Type | cfg.swift:138:12:138:12 | 0 | | @@ -2023,7 +2024,8 @@ | cfg.swift:526:26:526:26 | 1 | cfg.swift:526:30:526:30 | 100 | | | cfg.swift:526:26:526:26 | $i$generator | cfg.swift:526:26:526:26 | .makeIterator() | match | | cfg.swift:526:26:526:26 | .makeIterator() | cfg.swift:526:27:526:27 | ....(_:_:) | | -| cfg.swift:526:26:526:26 | call to makeIterator() | file://:0:0:0:0 | var ... = ... | | +| cfg.swift:526:26:526:26 | call to makeIterator() | cfg.swift:526:26:526:26 | var ... = ... | | +| cfg.swift:526:26:526:26 | var ... = ... | cfg.swift:526:17:526:17 | .next() | | | cfg.swift:526:26:526:30 | ... ....(_:_:) ... | cfg.swift:526:26:526:26 | call to makeIterator() | | | cfg.swift:526:27:526:27 | ....(_:_:) | cfg.swift:526:27:526:27 | Int.Type | | | cfg.swift:526:27:526:27 | Int.Type | cfg.swift:526:26:526:26 | 1 | | @@ -2048,8 +2050,9 @@ | cfg.swift:533:24:533:24 | $i$generator | cfg.swift:533:24:533:24 | .makeAsyncIterator() | match | | cfg.swift:533:24:533:24 | (AsyncStream) ... | cfg.swift:533:24:533:24 | call to makeAsyncIterator() | | | cfg.swift:533:24:533:24 | .makeAsyncIterator() | cfg.swift:533:24:533:24 | stream | | -| cfg.swift:533:24:533:24 | call to makeAsyncIterator() | file://:0:0:0:0 | var ... = ... | | +| cfg.swift:533:24:533:24 | call to makeAsyncIterator() | cfg.swift:533:24:533:24 | var ... = ... | | | cfg.swift:533:24:533:24 | stream | cfg.swift:533:24:533:24 | (AsyncStream) ... | | +| cfg.swift:533:24:533:24 | var ... = ... | cfg.swift:533:5:533:5 | .next(isolation:) | | | cfg.swift:534:9:534:9 | print(_:separator:terminator:) | cfg.swift:534:15:534:15 | i | | | cfg.swift:534:9:534:16 | call to print(_:separator:terminator:) | cfg.swift:533:5:533:5 | .next(isolation:) | | | cfg.swift:534:14:534:14 | default separator | cfg.swift:534:14:534:14 | default terminator | | @@ -2350,6 +2353,3 @@ | file://:0:0:0:0 | value | file://:0:0:0:0 | ... = ... | | | file://:0:0:0:0 | value | file://:0:0:0:0 | ... = ... | | | file://:0:0:0:0 | value | file://:0:0:0:0 | ... = ... | | -| file://:0:0:0:0 | var ... = ... | cfg.swift:138:3:138:3 | .next() | | -| file://:0:0:0:0 | var ... = ... | cfg.swift:526:17:526:17 | .next() | | -| file://:0:0:0:0 | var ... = ... | cfg.swift:533:5:533:5 | .next(isolation:) | | diff --git a/swift/schema.py b/swift/schema.py index e7b45fb81a5..febbf1ae2f4 100644 --- a/swift/schema.py +++ b/swift/schema.py @@ -307,7 +307,6 @@ class ModuleDecl(TypeDecl): class SubscriptDecl(AbstractStorageDecl, GenericContext): params: list[ParamDecl] | child element_type: Type - element_type: Type @group("decl") class Accessor(AccessorOrNamedFunction): @@ -1480,8 +1479,16 @@ class TypeValueExpr(Expr): class IntegerType(Type): value: string -class BuiltinFixedArrayType(BuiltinType): +class BuiltinGenericType(BuiltinType): + """ + A builtin generic type. + """ + pass + +@qltest.uncollapse_hierarchy +class BuiltinFixedArrayType(BuiltinGenericType): """ A builtin type representing N values stored contiguously. """ - pass + size: Type + element_type: Type diff --git a/swift/third_party/resources/resource-dir-linux.zip b/swift/third_party/resources/resource-dir-linux.zip index a6e0fe2fa12..8692eb89fd4 100644 --- a/swift/third_party/resources/resource-dir-linux.zip +++ b/swift/third_party/resources/resource-dir-linux.zip @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:34e30361f98e5c3abec7be1d7136252cad97eba4916a87e3c08992e0289eb00f -size 385238500 +oid sha256:25718237e4b0d725f62baceb8e9eb6b1090433c3a64c15b54205bbd3b1241a78 +size 408416862 diff --git a/swift/third_party/resources/resource-dir-macos.zip b/swift/third_party/resources/resource-dir-macos.zip index 80411222aab..51c367e2b13 100644 --- a/swift/third_party/resources/resource-dir-macos.zip +++ b/swift/third_party/resources/resource-dir-macos.zip @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e3966e6e8039fba5730dc49bf0a51986c6da28a94aa86552c187b66dc3716a9b -size 613938283 +oid sha256:97c427650a83bd1d70846ef24965cbe2451c3e9b3bb86530f0cb704936ffa07a +size 548168307 diff --git a/swift/third_party/resources/swift-prebuilt-linux.tar.zst b/swift/third_party/resources/swift-prebuilt-linux.tar.zst index 2aedff45fc8..769117fefea 100644 --- a/swift/third_party/resources/swift-prebuilt-linux.tar.zst +++ b/swift/third_party/resources/swift-prebuilt-linux.tar.zst @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1960a80b5cbc7e1ec0ef4b221254efdd6d266eaed11c7fa6fff5388648d1881b -size 132800316 +oid sha256:b313be2bee2c0afbedbe710435b7e0836e1a06f6a8b57d300c9843ebd1f469e3 +size 143494508 diff --git a/swift/third_party/resources/swift-prebuilt-macos.tar.zst b/swift/third_party/resources/swift-prebuilt-macos.tar.zst index aaf3d1c42af..a48c2ce0466 100644 --- a/swift/third_party/resources/swift-prebuilt-macos.tar.zst +++ b/swift/third_party/resources/swift-prebuilt-macos.tar.zst @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2b7ec0e2bd28b16ca9a16cb3d1ad8c917ad4641cf1d0fe574e75381871beeda4 -size 115351244 +oid sha256:4aea62dad0e67b8bb6ac5536a3fff1730f48a15f516b5b6d48b6c42f16508687 +size 125103802