From ef5cd765ef3738dc0fccde0b51ade90e79cb3cd9 Mon Sep 17 00:00:00 2001 From: Antonin Delpeuch Date: Thu, 9 Oct 2025 09:29:30 +0200 Subject: [PATCH] Unvendor tree-sitter-qmljs --- CHANGELOG.md | 2 +- Cargo.lock | 11 + Cargo.toml | 1 + build.rs | 5 - src/parse/tree_sitter_parser.rs | 6 +- vendored_parsers/highlights/qmljs.scm | 1 - vendored_parsers/tree-sitter-qmljs-src | 1 - .../.github/workflows/ci.yml | 30 - .../.github/workflows/package.yml | 38 - vendored_parsers/tree-sitter-qmljs/.gitignore | 12 - vendored_parsers/tree-sitter-qmljs/Cargo.toml | 26 - vendored_parsers/tree-sitter-qmljs/LICENSE | 20 - vendored_parsers/tree-sitter-qmljs/Makefile | 64 - vendored_parsers/tree-sitter-qmljs/README.md | 59 - .../tree-sitter-qmljs/binding.gyp | 19 - .../bindings/node/binding.cc | 28 - .../tree-sitter-qmljs/bindings/node/index.js | 19 - .../tree-sitter-qmljs/bindings/rust/build.rs | 24 - .../tree-sitter-qmljs/bindings/rust/lib.rs | 56 - .../tree-sitter-qmljs/examples/Makefile | 19 - .../examples/known-failures.txt | 31 - vendored_parsers/tree-sitter-qmljs/grammar.js | 375 - .../tree-sitter-qmljs/package.json | 54 - .../queries/highlights-javascript.scm | 1 - .../queries/highlights-typescript.scm | 1 - .../tree-sitter-qmljs/queries/highlights.scm | 60 - .../tree-sitter-qmljs/queries/locals.scm | 6 - .../tree-sitter-qmljs/src/grammar.json | 13210 - .../tree-sitter-qmljs/src/node-types.json | 7462 - .../tree-sitter-qmljs/src/parser.c | 472256 --------------- .../tree-sitter-qmljs/src/scanner.c | 11 - .../src/tree_sitter/parser.h | 224 - .../src/typescript-scanner.h | 324 - .../test/corpus/compatibility.txt | 217 - .../test/corpus/declarative-ui.txt | 764 - .../test/corpus/identifiers.txt | 897 - .../test/highlight/components.qml | 21 - .../test/highlight/functions.qml | 19 - .../test/highlight/properties.qml | 65 - 39 files changed, 16 insertions(+), 496423 deletions(-) delete mode 120000 vendored_parsers/highlights/qmljs.scm delete mode 120000 vendored_parsers/tree-sitter-qmljs-src delete mode 100644 vendored_parsers/tree-sitter-qmljs/.github/workflows/ci.yml delete mode 100644 vendored_parsers/tree-sitter-qmljs/.github/workflows/package.yml delete mode 100644 vendored_parsers/tree-sitter-qmljs/.gitignore delete mode 100644 vendored_parsers/tree-sitter-qmljs/Cargo.toml delete mode 100644 vendored_parsers/tree-sitter-qmljs/LICENSE delete mode 100644 vendored_parsers/tree-sitter-qmljs/Makefile delete mode 100644 vendored_parsers/tree-sitter-qmljs/README.md delete mode 100644 vendored_parsers/tree-sitter-qmljs/binding.gyp delete mode 100644 vendored_parsers/tree-sitter-qmljs/bindings/node/binding.cc delete mode 100644 vendored_parsers/tree-sitter-qmljs/bindings/node/index.js delete mode 100644 vendored_parsers/tree-sitter-qmljs/bindings/rust/build.rs delete mode 100644 vendored_parsers/tree-sitter-qmljs/bindings/rust/lib.rs delete mode 100644 vendored_parsers/tree-sitter-qmljs/examples/Makefile delete mode 100644 vendored_parsers/tree-sitter-qmljs/examples/known-failures.txt delete mode 100644 vendored_parsers/tree-sitter-qmljs/grammar.js delete mode 100644 vendored_parsers/tree-sitter-qmljs/package.json delete mode 120000 vendored_parsers/tree-sitter-qmljs/queries/highlights-javascript.scm delete mode 120000 vendored_parsers/tree-sitter-qmljs/queries/highlights-typescript.scm delete mode 100644 vendored_parsers/tree-sitter-qmljs/queries/highlights.scm delete mode 100644 vendored_parsers/tree-sitter-qmljs/queries/locals.scm delete mode 100644 vendored_parsers/tree-sitter-qmljs/src/grammar.json delete mode 100644 vendored_parsers/tree-sitter-qmljs/src/node-types.json delete mode 100644 vendored_parsers/tree-sitter-qmljs/src/parser.c delete mode 100644 vendored_parsers/tree-sitter-qmljs/src/scanner.c delete mode 100644 vendored_parsers/tree-sitter-qmljs/src/tree_sitter/parser.h delete mode 100644 vendored_parsers/tree-sitter-qmljs/src/typescript-scanner.h delete mode 100644 vendored_parsers/tree-sitter-qmljs/test/corpus/compatibility.txt delete mode 100644 vendored_parsers/tree-sitter-qmljs/test/corpus/declarative-ui.txt delete mode 100644 vendored_parsers/tree-sitter-qmljs/test/corpus/identifiers.txt delete mode 100644 vendored_parsers/tree-sitter-qmljs/test/highlight/components.qml delete mode 100644 vendored_parsers/tree-sitter-qmljs/test/highlight/functions.qml delete mode 100644 vendored_parsers/tree-sitter-qmljs/test/highlight/properties.qml diff --git a/CHANGELOG.md b/CHANGELOG.md index b997203c3..6589c6306 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ ### Parsing -Added support for protocol buffer files. Updated CMake, Solidity, HCL, Dart, Elm, Devicetree, Gleam, Newick, Racket, Scheme and R parsers. +Added support for protocol buffer files. Updated CMake, Solidity, HCL, Dart, Elm, Devicetree, Gleam, Newick, Racket, Scheme, Ada, SQL, QMLJS and R parsers. ### Display diff --git a/Cargo.lock b/Cargo.lock index d5e710bf2..b0c0012da 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -308,6 +308,7 @@ dependencies = [ "tree-sitter-php", "tree-sitter-proto", "tree-sitter-python", + "tree-sitter-qmljs", "tree-sitter-r", "tree-sitter-racket", "tree-sitter-ruby", @@ -1347,6 +1348,16 @@ dependencies = [ "tree-sitter-language", ] +[[package]] +name = "tree-sitter-qmljs" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67445ea937cd7eadaf2f628e2e7dd234374586cc31b4d1d63dbb5f5e7f9d9b62" +dependencies = [ + "cc", + "tree-sitter-language", +] + [[package]] name = "tree-sitter-r" version = "1.2.0" diff --git a/Cargo.toml b/Cargo.toml index c4aa1cc3f..4bc36ba28 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -108,6 +108,7 @@ tree-sitter-pascal = "0.10.0" tree-sitter-php = "0.23.11" tree-sitter-proto = "0.2.0" tree-sitter-python = "0.23.5" +tree-sitter-qmljs = "0.3.0" tree-sitter-r = "1.2.0" tree-sitter-racket = "0.24.7" tree-sitter-ruby = "0.23.1" diff --git a/build.rs b/build.rs index 0751e6116..60cb64e81 100644 --- a/build.rs +++ b/build.rs @@ -117,11 +117,6 @@ fn main() { src_dir: "vendored_parsers/tree-sitter-perl-src", extra_files: vec!["scanner.c"], }, - TreeSitterParser { - name: "tree-sitter-qmljs", - src_dir: "vendored_parsers/tree-sitter-qmljs-src", - extra_files: vec!["scanner.c"], - }, TreeSitterParser { name: "tree-sitter-scss", src_dir: "vendored_parsers/tree-sitter-scss-src", diff --git a/src/parse/tree_sitter_parser.rs b/src/parse/tree_sitter_parser.rs index 15ea21d61..86c2804fa 100644 --- a/src/parse/tree_sitter_parser.rs +++ b/src/parse/tree_sitter_parser.rs @@ -79,7 +79,6 @@ extern "C" { fn tree_sitter_kotlin() -> ts::Language; fn tree_sitter_latex() -> ts::Language; fn tree_sitter_perl() -> ts::Language; - fn tree_sitter_qmljs() -> ts::Language; fn tree_sitter_smali() -> ts::Language; fn tree_sitter_scss() -> ts::Language; fn tree_sitter_vhdl() -> ts::Language; @@ -859,11 +858,12 @@ pub(crate) fn from_language(language: guess::Language) -> TreeSitterConfig { } } Qml => { - let language = unsafe { tree_sitter_qmljs() }; + let language_fn = tree_sitter_qmljs::LANGUAGE; + let language = tree_sitter::Language::new(language_fn); let mut highlight_query = tree_sitter_javascript::HIGHLIGHT_QUERY.to_owned(); highlight_query.push_str(tree_sitter_typescript::HIGHLIGHTS_QUERY); - highlight_query.push_str(include_str!("../../vendored_parsers/highlights/qmljs.scm")); + highlight_query.push_str(tree_sitter_qmljs::HIGHLIGHTS_QUERY); TreeSitterConfig { language: language.clone(), diff --git a/vendored_parsers/highlights/qmljs.scm b/vendored_parsers/highlights/qmljs.scm deleted file mode 120000 index 6ba8919bf..000000000 --- a/vendored_parsers/highlights/qmljs.scm +++ /dev/null @@ -1 +0,0 @@ -../tree-sitter-qmljs/queries/highlights.scm \ No newline at end of file diff --git a/vendored_parsers/tree-sitter-qmljs-src b/vendored_parsers/tree-sitter-qmljs-src deleted file mode 120000 index d5ebef1e4..000000000 --- a/vendored_parsers/tree-sitter-qmljs-src +++ /dev/null @@ -1 +0,0 @@ -tree-sitter-qmljs/src \ No newline at end of file diff --git a/vendored_parsers/tree-sitter-qmljs/.github/workflows/ci.yml b/vendored_parsers/tree-sitter-qmljs/.github/workflows/ci.yml deleted file mode 100644 index d69cf661c..000000000 --- a/vendored_parsers/tree-sitter-qmljs/.github/workflows/ci.yml +++ /dev/null @@ -1,30 +0,0 @@ -name: CI - -on: - push: - branches: [ dev ] - pull_request: - branches: [ dev ] - -jobs: - test: - runs-on: ubuntu-latest - strategy: - fail-fast: true - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-node@v2 - with: - node-version: '14' - - name: Install dependencies (gyp would fail) - run: npm install || true - - name: Generate parser sources - run: make generate - - name: Install dependencies (again to run gyp rebuild) - run: npm install - - name: Run tests - run: npm test - - name: Run cargo tests - run: cargo test - - name: Parse examples - run: make fetch-examples parse-examples diff --git a/vendored_parsers/tree-sitter-qmljs/.github/workflows/package.yml b/vendored_parsers/tree-sitter-qmljs/.github/workflows/package.yml deleted file mode 100644 index 6b77d00e9..000000000 --- a/vendored_parsers/tree-sitter-qmljs/.github/workflows/package.yml +++ /dev/null @@ -1,38 +0,0 @@ -name: Package - -on: - push: - branches: [ master ] - -jobs: - test-regenerate: - runs-on: ubuntu-latest - strategy: - fail-fast: true - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-node@v2 - with: - node-version: '14' - - name: Install dependencies - run: npm install - - name: Regenerate parser sources - run: make generate - - name: Verify generated sources - run: git diff --exit-code - - test-without-regenerate: - runs-on: ubuntu-latest - strategy: - fail-fast: true - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-node@v2 - with: - node-version: '14' - - name: Install dependencies - run: npm install - - name: Run tests - run: npm test - - name: Run cargo tests - run: cargo test diff --git a/vendored_parsers/tree-sitter-qmljs/.gitignore b/vendored_parsers/tree-sitter-qmljs/.gitignore deleted file mode 100644 index b80a110e5..000000000 --- a/vendored_parsers/tree-sitter-qmljs/.gitignore +++ /dev/null @@ -1,12 +0,0 @@ -#*# -*.orig -*~ -.#* -\#*# - -/Cargo.lock -/build/ -/examples/qtdeclarative -/node_modules/ -/package-lock.json -/target/ diff --git a/vendored_parsers/tree-sitter-qmljs/Cargo.toml b/vendored_parsers/tree-sitter-qmljs/Cargo.toml deleted file mode 100644 index 147939006..000000000 --- a/vendored_parsers/tree-sitter-qmljs/Cargo.toml +++ /dev/null @@ -1,26 +0,0 @@ -[package] -name = "tree-sitter-qmljs" -description = "QML grammar for the tree-sitter parsing library" -version = "0.1.2" -keywords = ["incremental", "parsing", "qml"] -categories = ["parsing", "text-editors"] -repository = "https://github.com/yuja/tree-sitter-qmljs" -edition = "2021" -license = "MIT" - -build = "bindings/rust/build.rs" -include = [ - "bindings/rust/*", - "grammar.js", - "queries/*", - "src/*", -] - -[lib] -path = "bindings/rust/lib.rs" - -[dependencies] -tree-sitter = "~0.20" - -[build-dependencies] -cc = "1.0" diff --git a/vendored_parsers/tree-sitter-qmljs/LICENSE b/vendored_parsers/tree-sitter-qmljs/LICENSE deleted file mode 100644 index 0b46abcac..000000000 --- a/vendored_parsers/tree-sitter-qmljs/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -Copyright (c) 2021 Yuya Nishihara - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/vendored_parsers/tree-sitter-qmljs/Makefile b/vendored_parsers/tree-sitter-qmljs/Makefile deleted file mode 100644 index f73dae7ca..000000000 --- a/vendored_parsers/tree-sitter-qmljs/Makefile +++ /dev/null @@ -1,64 +0,0 @@ -JQ = jq -TREE_SITTER = node_modules/.bin/tree-sitter - -.PHONY: help -help: - @echo 'Make targets:' - @echo ' generate - generate parser sources' - @echo ' clean - remove build directory and intermediate files' - @echo ' tests - run all tests' - @echo ' fetch-examples - fetch example repositories' - @echo ' parse-examples - parse example files' - -.PHONY: generate -generate: - $(MAKE) queries/highlights-javascript.scm queries/highlights-typescript.scm - $(MAKE) src/typescript-scanner.h - $(TREE_SITTER) generate - -# create symlinks out of sub packages so cargo can pick them up -queries/highlights-javascript.scm: node_modules/tree-sitter-javascript/queries/highlights.scm - ln -sf ../$< $@ -queries/highlights-typescript.scm: node_modules/tree-sitter-typescript/queries/highlights.scm - ln -sf ../$< $@ - -src/typescript-scanner.h: \ - node_modules/tree-sitter-typescript/common/scanner.h \ - node_modules/tree-sitter-typescript/LICENSE \ - package.json - ( \ - echo '/*'; \ - echo 'Source:'; \ - $(JQ) -r '.devDependencies["tree-sitter-typescript"]' package.json; \ - echo; \ - cat node_modules/tree-sitter-typescript/LICENSE; \ - echo '*/'; \ - echo; \ - cat $<; \ - ) > $@ - -.PHONY: clean -clean: - $(RM) -R build target - $(RM) \ - queries/highlights-javascript.scm \ - queries/highlights-typescript.scm \ - src/grammar.json \ - src/node-types.json \ - src/parser.c \ - src/tree_sitter/parser.h \ - src/typescript-scanner.h - -.PHONY: tests -tests: - $(TREE_SITTER) test $(TESTFLAGS) - -.PHONY: fetch-examples -fetch-examples: - $(MAKE) -C examples all - -.PHONY: parse-examples -parse-examples: - cat examples/known-failures.txt \ - | sed 's|^|!examples/|' \ - | xargs $(TREE_SITTER) parse -q 'examples/**/*.qml' diff --git a/vendored_parsers/tree-sitter-qmljs/README.md b/vendored_parsers/tree-sitter-qmljs/README.md deleted file mode 100644 index a91120993..000000000 --- a/vendored_parsers/tree-sitter-qmljs/README.md +++ /dev/null @@ -1,59 +0,0 @@ -tree-sitter-qmljs -================= - -[QML][] grammar for the [tree-sitter][] parsing library. - -[QML]: https://doc.qt.io/qt-6/qmlapplications.html -[tree-sitter]: https://github.com/tree-sitter/tree-sitter - -References ----------- - -* https://code.qt.io/cgit/qt/qtdeclarative.git/tree/src/qml/parser/qqmljs.g - -Pitfalls --------- - -Since grouped binding notation is syntactically ambiguous, it is parsed as -an object definition. - -```qml -// (ui_object_definition type_name: (identifier "Button") ...) -Button { - // (ui_object_definition type_name: (identifier "icon") ...) - icon { source: "foo.png"; color: "transparent" } -} -``` - -Building --------- - -Use the `master` branch, which contains all generated files. - -``` -$ git checkout master -$ npm install -$ cargo build --release -``` - -Hacking -------- - -Use the `dev` branch, but you'll first need to run `npm install` in the -`master` branch. - -``` -$ git checkout master -$ npm install -$ git checkout dev -``` - -Generate code and run tests: -``` -$ make generate tests -``` - -Make sure example QML files can be parsed: -``` -$ make fetch-examples parse-examples -``` diff --git a/vendored_parsers/tree-sitter-qmljs/binding.gyp b/vendored_parsers/tree-sitter-qmljs/binding.gyp deleted file mode 100644 index 1dddb236a..000000000 --- a/vendored_parsers/tree-sitter-qmljs/binding.gyp +++ /dev/null @@ -1,19 +0,0 @@ -{ - "targets": [ - { - "target_name": "tree_sitter_qmljs_binding", - "include_dirs": [ - " -#include "nan.h" - -using namespace v8; - -extern "C" TSLanguage * tree_sitter_qmljs(); - -namespace { - -NAN_METHOD(New) {} - -void Init(Local exports, Local module) { - Local tpl = Nan::New(New); - tpl->SetClassName(Nan::New("Language").ToLocalChecked()); - tpl->InstanceTemplate()->SetInternalFieldCount(1); - - Local constructor = Nan::GetFunction(tpl).ToLocalChecked(); - Local instance = constructor->NewInstance(Nan::GetCurrentContext()).ToLocalChecked(); - Nan::SetInternalFieldPointer(instance, 0, tree_sitter_qmljs()); - - Nan::Set(instance, Nan::New("name").ToLocalChecked(), Nan::New("qmljs").ToLocalChecked()); - Nan::Set(module, Nan::New("exports").ToLocalChecked(), instance); -} - -NODE_MODULE(tree_sitter_qmljs_binding, Init) - -} // namespace diff --git a/vendored_parsers/tree-sitter-qmljs/bindings/node/index.js b/vendored_parsers/tree-sitter-qmljs/bindings/node/index.js deleted file mode 100644 index 6fc61356b..000000000 --- a/vendored_parsers/tree-sitter-qmljs/bindings/node/index.js +++ /dev/null @@ -1,19 +0,0 @@ -try { - module.exports = require("../../build/Release/tree_sitter_qmljs_binding"); -} catch (error1) { - if (error1.code !== 'MODULE_NOT_FOUND') { - throw error1; - } - try { - module.exports = require("../../build/Debug/tree_sitter_qmljs_binding"); - } catch (error2) { - if (error2.code !== 'MODULE_NOT_FOUND') { - throw error2; - } - throw error1 - } -} - -try { - module.exports.nodeTypeInfo = require("../../src/node-types.json"); -} catch (_) {} diff --git a/vendored_parsers/tree-sitter-qmljs/bindings/rust/build.rs b/vendored_parsers/tree-sitter-qmljs/bindings/rust/build.rs deleted file mode 100644 index 5c28e4350..000000000 --- a/vendored_parsers/tree-sitter-qmljs/bindings/rust/build.rs +++ /dev/null @@ -1,24 +0,0 @@ -fn main() { - let src_dir = std::path::Path::new("src"); - - let mut c_config = cc::Build::new(); - c_config.include(&src_dir); - c_config - .flag_if_supported("-Wno-unused-parameter") - .flag_if_supported("-Wno-unused-but-set-variable") - .flag_if_supported("-Wno-trigraphs"); - - let parser_path = src_dir.join("parser.c"); - c_config.file(&parser_path); - println!("cargo:rerun-if-changed={}", parser_path.to_str().unwrap()); - - let scanner_path = src_dir.join("scanner.c"); - c_config.file(&scanner_path); - println!("cargo:rerun-if-changed={}", scanner_path.to_str().unwrap()); - println!( - "cargo:rerun-if-changed={}", - src_dir.join("typescript-scanner.h").to_str().unwrap() - ); - - c_config.compile("parser-scanner"); -} diff --git a/vendored_parsers/tree-sitter-qmljs/bindings/rust/lib.rs b/vendored_parsers/tree-sitter-qmljs/bindings/rust/lib.rs deleted file mode 100644 index f88f3b85d..000000000 --- a/vendored_parsers/tree-sitter-qmljs/bindings/rust/lib.rs +++ /dev/null @@ -1,56 +0,0 @@ -//! This crate provides QML language support for the [tree-sitter][] parsing library. -//! -//! Typically, you will use the [language][language func] function to add this language to a -//! tree-sitter [Parser][], and then use the parser to parse some code: -//! -//! ``` -//! let code = ""; -//! let mut parser = tree_sitter::Parser::new(); -//! parser.set_language(tree_sitter_qmljs::language()).expect("Error loading QML grammar"); -//! let tree = parser.parse(code, None).unwrap(); -//! ``` -//! -//! [Language]: https://docs.rs/tree-sitter/*/tree_sitter/struct.Language.html -//! [language func]: fn.language.html -//! [Parser]: https://docs.rs/tree-sitter/*/tree_sitter/struct.Parser.html -//! [tree-sitter]: https://tree-sitter.github.io/ - -use tree_sitter::Language; - -extern "C" { - fn tree_sitter_qmljs() -> Language; -} - -/// Get the tree-sitter [Language][] for this grammar. -/// -/// [Language]: https://docs.rs/tree-sitter/*/tree_sitter/struct.Language.html -pub fn language() -> Language { - unsafe { tree_sitter_qmljs() } -} - -/// The content of the [`node-types.json`][] file for this grammar. -/// -/// [`node-types.json`]: https://tree-sitter.github.io/tree-sitter/using-parsers#static-node-types -pub const NODE_TYPES: &'static str = include_str!("../../src/node-types.json"); - -// Uncomment these to include any queries that this grammar contains - -pub const HIGHLIGHTS_QUERY: &'static str = concat!( - include_str!("../../queries/highlights.scm"), - include_str!("../../queries/highlights-typescript.scm"), - include_str!("../../queries/highlights-javascript.scm"), -); -// pub const INJECTIONS_QUERY: &'static str = include_str!("../../queries/injections.scm"); -pub const LOCALS_QUERY: &'static str = include_str!("../../queries/locals.scm"); -// pub const TAGS_QUERY: &'static str = include_str!("../../queries/tags.scm"); - -#[cfg(test)] -mod tests { - #[test] - fn test_can_load_grammar() { - let mut parser = tree_sitter::Parser::new(); - parser - .set_language(super::language()) - .expect("Error loading QML language"); - } -} diff --git a/vendored_parsers/tree-sitter-qmljs/examples/Makefile b/vendored_parsers/tree-sitter-qmljs/examples/Makefile deleted file mode 100644 index e7b8ea9a1..000000000 --- a/vendored_parsers/tree-sitter-qmljs/examples/Makefile +++ /dev/null @@ -1,19 +0,0 @@ -GIT = git -GIT_LOG_FLAGS = -p --reverse -QTDECLARATIVE_GIT_ID = 49ec094b7fb1eb6675fdc1db8348409cd3ff8184 - -.PHONY: all -all: qtdeclarative - -.PHONY: qtdeclarative -qtdeclarative: - [ -d $@ ] || $(GIT) clone git://code.qt.io/qt/qtdeclarative.git $@ - $(GIT) -C $@ fetch - $(GIT) -C $@ reset --hard $(QTDECLARATIVE_GIT_ID) - -.PHONY: review-qtdeclarative -review-qtdeclarative: - $(GIT) -C qtdeclarative log $(GIT_LOG_FLAGS) \ - $(QTDECLARATIVE_GIT_ID)..origin/dev \ - src/qml/compiler/qqmlirbuilder.cpp \ - src/qml/parser diff --git a/vendored_parsers/tree-sitter-qmljs/examples/known-failures.txt b/vendored_parsers/tree-sitter-qmljs/examples/known-failures.txt deleted file mode 100644 index 4ec744976..000000000 --- a/vendored_parsers/tree-sitter-qmljs/examples/known-failures.txt +++ /dev/null @@ -1,31 +0,0 @@ -qtdeclarative/src/quick/doc/snippets/qml/image-ext.qml -qtdeclarative/tests/auto/qml/debugger/qqmlpreview/data/broken.qml -qtdeclarative/tests/auto/qml/qmlformat/data/settings/Example1.formatted_mac_cr.qml -qtdeclarative/tests/auto/qml/qmllint/data/failure1.qml -qtdeclarative/tests/auto/qml/qqmlecmascript/data/numberParsing_error.1.qml -qtdeclarative/tests/auto/qml/qqmlecmascript/data/numberParsing_error.2.qml -qtdeclarative/tests/auto/qml/qqmlecmascript/data/stringParsing_error.5.qml -qtdeclarative/tests/auto/qml/qqmlecmascript/data/stringParsing_error.6.qml -qtdeclarative/tests/auto/qml/qqmllanguage/data/empty.qml -qtdeclarative/tests/auto/qml/qqmllanguage/data/fuzzed.2.qml -qtdeclarative/tests/auto/qml/qqmllanguage/data/fuzzed.3.qml -qtdeclarative/tests/auto/qml/qqmllanguage/data/hangOnWarning.qml -qtdeclarative/tests/auto/qml/qqmllanguage/data/insertedSemicolon.1.qml -qtdeclarative/tests/auto/qml/qqmllanguage/data/invalidQmlEnumValue.1.qml -qtdeclarative/tests/auto/qml/qqmllanguage/data/invalidQmlEnumValue.2.qml -qtdeclarative/tests/auto/qml/qqmllanguage/data/invalidRoot.1.qml -qtdeclarative/tests/auto/qml/qqmllanguage/data/missingObject.qml -qtdeclarative/tests/auto/qml/qqmllanguage/data/nonexistantProperty.5.qml -qtdeclarative/tests/auto/qml/qqmllanguage/data/property.2.qml -qtdeclarative/tests/auto/qml/qqmllanguage/data/property.3.qml -qtdeclarative/tests/auto/qml/qqmllanguage/data/questionDotEOF.qml -qtdeclarative/tests/auto/qml/qqmllanguage/data/signal.2.qml -qtdeclarative/tests/auto/qml/qqmllanguage/data/signal.3.qml -qtdeclarative/tests/auto/qml/qqmllanguage/data/signal.5.qml -qtdeclarative/tests/auto/qml/qquickfolderlistmodel/data/dummy.qml -qtdeclarative/tests/auto/qmlls/utils/data/completions/missingRHS.parserfail.qml -qtdeclarative/tests/auto/qmlls/utils/data/completions/missingRHS.qml -qtdeclarative/tests/auto/qmlls/utils/data/emptyFile.qml -qtdeclarative/tests/auto/quick/qquickloader/data/InvalidSourceComponent.qml -qtdeclarative/tests/auto/quickcontrols/controls/data/tst_scrollbar.qml -qtdeclarative/tests/manual/qmllsformatter/test.qml diff --git a/vendored_parsers/tree-sitter-qmljs/grammar.js b/vendored_parsers/tree-sitter-qmljs/grammar.js deleted file mode 100644 index 6623fecca..000000000 --- a/vendored_parsers/tree-sitter-qmljs/grammar.js +++ /dev/null @@ -1,375 +0,0 @@ -// Implemented based on -// https://code.qt.io/cgit/qt/qtdeclarative.git/tree/src/qml/ -// compiler/qqmlirbuilder.cpp -// parser/{qqmljs.g,qqmljsast_p.h,qqmljslexer.cpp} -// 49ec094b7fb1eb6675fdc1db8348409cd3ff8184 - -module.exports = grammar(require('tree-sitter-typescript/typescript/grammar'), { - name: 'qmljs', - - supertypes: ($, original) => original.concat([ - $._ui_object_member, - $._ui_script_statement, - ]), - - inline: ($, original) => original.concat([ - $._ui_root_member, - $._ui_object_member, - $._ui_property_type, - $._ui_binding_value, - $._ui_property_value, - $._ui_script_statement, - $._ui_qualified_id, - $._ui_identifier, - $._ui_simple_qualified_id, - $._ui_reserved_identifier, - ]), - - conflicts: ($, original) => original.concat([ - [$.ui_property_modifier, $.ui_required], // required property name vs required property - [$.ui_nested_identifier, $.primary_expression], // Nested.Obj {} vs member.expr - ]), - - rules: { - // should be 'ui_program' per naming convention, but we need to override the - // start rule of the javascript/typescript grammar. - program: $ => seq( - optional($.hash_bang_line), - repeat(choice( - $.ui_pragma, - $.ui_import, - )), - field('root', $._ui_root_member), - ), - - ui_pragma: $ => seq( - 'pragma', - field('name', $.identifier), // PragmaId - optional(seq( - ':', - // TODO: or insert 'values': (ui_pragma_value_list ..)? - sep1(field('value', choice($.identifier, $.string)), ','), - )), - $._semicolon, - ), - - ui_import: $ => seq( - 'import', - field('source', choice( - $.string, - $._ui_qualified_id, - )), // ImportId: MemberExpression - optional(field('version', $.ui_version_specifier)), - optional(seq( - 'as', - field('alias', $.identifier), // QmlIdentifier - )), - $._semicolon, - ), - - ui_version_specifier: $ => { - const version_number = alias(/\d+/, $.number); - return choice( - field('major', version_number), - seq( - field('major', version_number), - '.', - field('minor', version_number), - ), - ); - }, - - _ui_root_member: $ => choice( - $.ui_object_definition, - $.ui_annotated_object, - ), - - ui_object_definition: $ => seq( - field('type_name', $._ui_qualified_id), - field('initializer', $.ui_object_initializer), - ), - - ui_annotated_object: $ => seq( - repeat1(field('annotation', $.ui_annotation)), - field('definition', $.ui_object_definition), - ), - - ui_annotation: $ => seq( - '@', - field('type_name', $._ui_simple_qualified_id), - field('initializer', $.ui_object_initializer), - ), - - ui_object_initializer: $ => seq( - '{', - repeat(choice( - $._ui_object_member, - $.ui_annotated_object_member, - )), - '}', - ), - - ui_annotated_object_member: $ => seq( - repeat1(field('annotation', $.ui_annotation)), - field('definition', $._ui_object_member), - ), - - _ui_object_member: $ => choice( - $.ui_object_definition, - $.ui_object_definition_binding, - $.ui_binding, - $.ui_property, - $.ui_required, - $.ui_signal, - $.ui_inline_component, - $.generator_function_declaration, - $.function_declaration, - $.variable_declaration, - alias($._qml_enum_declaration, $.enum_declaration), - ), - - ui_object_definition_binding: $ => seq( - field('type_name', $._ui_qualified_id), - 'on', - field('name', $._ui_qualified_id), - field('initializer', $.ui_object_initializer), - ), - - ui_binding: $ => seq( - field('name', $._ui_qualified_id), - ':', - field('value', $._ui_binding_value), - ), - - // Duplicated modifiers are rejected by qqmljs.g, but we don't check for that. - ui_property: $ => seq( - repeat($.ui_property_modifier), - 'property', - field('type', choice( - $._ui_property_type, - $.ui_list_property_type, - )), - field('name', $._ui_identifier), // QmlIdentifier - choice( - seq( - ':', - field('value', $._ui_property_value), - ), - $._semicolon, - ), - ), - - _ui_property_type: $ => choice( - $._type_identifier, - $.nested_type_identifier, - ), - - // "T_IDENTIFIER T_LT UiPropertyType T_GT", but only "list" is allowed as - // a property type modifier. - ui_list_property_type: $ => seq( - alias('list', $.type_identifier), - '<', - $._ui_property_type, - '>', - ), - - ui_property_modifier: $ => choice( - 'default', - 'readonly', - 'required', - ), - - _ui_binding_value: $ => choice( - $.ui_object_array, - $.ui_object_definition, - $._ui_script_statement, - ), - - // similar to $._ui_binding_value, but optional semicolon is also allowed - // for array/object. - _ui_property_value: $=> choice( - seq($.ui_object_array, $._semicolon), // UiObjectMemberWithArray - seq($.ui_object_definition, $._semicolon), // UiObjectMemberExpressionStatementLookahead - $._ui_script_statement, - ), - - ui_object_array: $ => seq( - '[', - sep1($.ui_object_definition, ','), // UiArrayMemberList - ']', - ), - - _ui_script_statement: $ => choice( - $.statement_block, - $.empty_statement, - $.expression_statement, - $.if_statement, - $.with_statement, - $.switch_statement, - $.try_statement, - ), - - ui_required: $ => seq( - 'required', - field('name', $._ui_identifier), // QmlIdentifier - $._semicolon, - ), - - ui_signal: $ => seq( - 'signal', - field('name', $.identifier), - optional(field('parameters', $.ui_signal_parameters)), - $._semicolon, - ), - - ui_signal_parameters: $ => seq( - '(', - sep($.ui_signal_parameter, ','), - ')', - ), - - ui_signal_parameter: $ => choice( - seq( - field('name', $.identifier), // QmlIdentifier - ':', - field('type', $._ui_property_type), - ), - seq( - field('type', $._ui_property_type), - field('name', $.identifier), // QmlIdentifier - ), - ), - - ui_inline_component: $ => seq( - 'component', - field('name', $.identifier), - ':', - field('component', $.ui_object_definition), - ), - - // QML enum can be considered a restricted form of the TypeScript enum. - _qml_enum_declaration: $ => seq( - 'enum', - field('name', $.identifier), - field('body', alias($._qml_enum_body, $.enum_body)), - ), - - _qml_enum_body: $ => seq( - '{', - sep1(choice( - field('name', $.identifier), - alias($._qml_enum_assignment, $.enum_assignment), - ), ','), - '}', - ), - - _qml_enum_assignment: $ => seq( - field('name', $.identifier), - '=', - field('value', choice( - $.number, - alias($._qml_enum_negative_number, $.unary_expression), - )), - ), - - _qml_enum_negative_number: $ => seq( - field('operator', '-'), // '+' is not allowed - field('argument', $.number), - ), - - // MemberExpression -> reparseAsQualifiedId() - _ui_qualified_id: $ => choice( - $._ui_identifier, - alias($.ui_nested_identifier, $.nested_identifier), - ), - - _ui_identifier: $ => choice( - $.identifier, - alias($._ui_reserved_identifier, $.identifier), - ), - - ui_nested_identifier: $ => seq( - $._ui_qualified_id, - '.', - $.identifier, - ), - - _ui_simple_qualified_id: $ => choice( - $.identifier, - alias($.ui_simple_nested_identifier, $.nested_identifier), - ), - - ui_simple_nested_identifier: $ => seq( - $._ui_simple_qualified_id, - '.', - $.identifier, - ), - - // teach JavaScript/TypeScript grammar about QML keywords. - _reserved_identifier: ($, original) => choice( - original, - 'property', - 'signal', - 'readonly', - 'on', - 'required', - 'component', - // not QML keywords, but qmljs.g accepts them as JS expressions: - 'from', - 'of', - ), - - _ui_reserved_identifier: $ => choice( - // JavaScript: - 'get', - 'set', - 'async', - 'static', - 'export', - 'let', - - // TypeScript: - 'declare', - 'namespace', - 'type', - 'public', - 'private', - 'protected', - 'override', - 'readonly', - 'module', - 'any', - 'number', - 'boolean', - 'string', - 'symbol', - 'export', - 'object', - // 'new', ('new {}' would conflict at property value position) - 'readonly', - - // QML (see QmlIdentifier): - 'property', - 'signal', - 'readonly', - 'on', - 'from', - 'of', - 'required', - 'component', - ), - - // Patch up JavaScript string rules to support multi-line string literal. - // (See also the change b16c69a70be9 in tree-sitter-javascript.) - unescaped_double_string_fragment: _ => token.immediate(prec(1, /[^"\\]+/)), - unescaped_single_string_fragment: _ => token.immediate(prec(1, /[^'\\]+/)), - }, -}); - -function sep(rule, sep) { - return optional(sep1(rule, sep)); -} - -function sep1(rule, sep) { - return seq(rule, repeat(seq(sep, rule))); -} diff --git a/vendored_parsers/tree-sitter-qmljs/package.json b/vendored_parsers/tree-sitter-qmljs/package.json deleted file mode 100644 index 648ce1bcd..000000000 --- a/vendored_parsers/tree-sitter-qmljs/package.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "name": "tree-sitter-qmljs", - "version": "0.1.2", - "description": "QML grammar for the tree-sitter parsing library", - "main": "bindings/node", - "scripts": { - "test": "tree-sitter test" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/yuja/tree-sitter-qmljs.git" - }, - "keywords": [ - "parser", - "tree-sitter", - "qml" - ], - "author": "Yuya Nishihara", - "license": "MIT", - "bugs": { - "url": "https://github.com/yuja/tree-sitter-qmljs/issues" - }, - "homepage": "https://github.com/yuja/tree-sitter-qmljs#readme", - "dependencies": { - "nan": "^2.15.0" - }, - "devDependencies": { - "tree-sitter-cli": "^0.20.1", - "tree-sitter-javascript": "0.20.3", - "tree-sitter-typescript": "0.20.5" - }, - "tree-sitter": [ - { - "scope": "source.qml", - "file-types": [ - "qml" - ], - "highlights": [ - "queries/highlights.scm", - "node_modules/tree-sitter-typescript/queries/highlights.scm", - "node_modules/tree-sitter-javascript/queries/highlights.scm" - ], - "locals": [ - "queries/locals.scm", - "node_modules/tree-sitter-typescript/queries/locals.scm", - "node_modules/tree-sitter-javascript/queries/locals.scm" - ], - "tags": [ - "node_modules/tree-sitter-typescript/queries/tags.scm", - "node_modules/tree-sitter-javascript/queries/tags.scm" - ] - } - ] -} diff --git a/vendored_parsers/tree-sitter-qmljs/queries/highlights-javascript.scm b/vendored_parsers/tree-sitter-qmljs/queries/highlights-javascript.scm deleted file mode 120000 index a4103e6ad..000000000 --- a/vendored_parsers/tree-sitter-qmljs/queries/highlights-javascript.scm +++ /dev/null @@ -1 +0,0 @@ -../node_modules/tree-sitter-javascript/queries/highlights.scm \ No newline at end of file diff --git a/vendored_parsers/tree-sitter-qmljs/queries/highlights-typescript.scm b/vendored_parsers/tree-sitter-qmljs/queries/highlights-typescript.scm deleted file mode 120000 index 7df6b953b..000000000 --- a/vendored_parsers/tree-sitter-qmljs/queries/highlights-typescript.scm +++ /dev/null @@ -1 +0,0 @@ -../node_modules/tree-sitter-typescript/queries/highlights.scm \ No newline at end of file diff --git a/vendored_parsers/tree-sitter-qmljs/queries/highlights.scm b/vendored_parsers/tree-sitter-qmljs/queries/highlights.scm deleted file mode 100644 index b8c47bd0f..000000000 --- a/vendored_parsers/tree-sitter-qmljs/queries/highlights.scm +++ /dev/null @@ -1,60 +0,0 @@ -;;; Annotations - -(ui_annotation - "@" @operator - type_name: [ - (identifier) @attribute - (nested_identifier (identifier) @attribute) - ]) - -;;; Properties - -(ui_object_definition_binding - name: [ - (identifier) @property - (nested_identifier (identifier) @property) - ]) - -(ui_binding - name: [ - (identifier) @property - (nested_identifier (identifier) @property) - ]) - -;; locals query appears not working unless id: isn't a parameter. -(ui_binding - name: (identifier) @property - (#eq? @property "id") - value: (expression_statement (identifier) @variable.parameter)) - -(ui_property - name: (identifier) @property) - -(ui_required - name: (identifier) @property) - -(ui_list_property_type - ["<" ">"] @punctuation.bracket) - -;;; Signals - -(ui_signal - name: (identifier) @function.signal) - -(ui_signal_parameter - (identifier) @variable.parameter) - -;;; Keywords - -[ - "as" - "component" - "default" - "import" - "on" - "pragma" - "property" - "readonly" - "required" - "signal" -] @keyword diff --git a/vendored_parsers/tree-sitter-qmljs/queries/locals.scm b/vendored_parsers/tree-sitter-qmljs/queries/locals.scm deleted file mode 100644 index 7d7d046a6..000000000 --- a/vendored_parsers/tree-sitter-qmljs/queries/locals.scm +++ /dev/null @@ -1,6 +0,0 @@ -;;; Definitions - -(ui_binding - name: (identifier) @property - (#eq? @property "id") - value: (expression_statement (identifier) @local.definition)) diff --git a/vendored_parsers/tree-sitter-qmljs/src/grammar.json b/vendored_parsers/tree-sitter-qmljs/src/grammar.json deleted file mode 100644 index fb433458f..000000000 --- a/vendored_parsers/tree-sitter-qmljs/src/grammar.json +++ /dev/null @@ -1,13210 +0,0 @@ -{ - "name": "qmljs", - "word": "identifier", - "rules": { - "program": { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "hash_bang_line" - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "REPEAT", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "ui_pragma" - }, - { - "type": "SYMBOL", - "name": "ui_import" - } - ] - } - }, - { - "type": "FIELD", - "name": "root", - "content": { - "type": "SYMBOL", - "name": "_ui_root_member" - } - } - ] - }, - "hash_bang_line": { - "type": "PATTERN", - "value": "#!.*" - }, - "export_statement": { - "type": "CHOICE", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "export" - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "*" - }, - { - "type": "SYMBOL", - "name": "_from_clause" - } - ] - }, - { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "namespace_export" - }, - { - "type": "SYMBOL", - "name": "_from_clause" - } - ] - }, - { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "export_clause" - }, - { - "type": "SYMBOL", - "name": "_from_clause" - } - ] - }, - { - "type": "SYMBOL", - "name": "export_clause" - } - ] - }, - { - "type": "SYMBOL", - "name": "_semicolon" - } - ] - }, - { - "type": "SEQ", - "members": [ - { - "type": "REPEAT", - "content": { - "type": "FIELD", - "name": "decorator", - "content": { - "type": "SYMBOL", - "name": "decorator" - } - } - }, - { - "type": "STRING", - "value": "export" - }, - { - "type": "CHOICE", - "members": [ - { - "type": "FIELD", - "name": "declaration", - "content": { - "type": "SYMBOL", - "name": "declaration" - } - }, - { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "default" - }, - { - "type": "CHOICE", - "members": [ - { - "type": "FIELD", - "name": "declaration", - "content": { - "type": "SYMBOL", - "name": "declaration" - } - }, - { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "value", - "content": { - "type": "SYMBOL", - "name": "expression" - } - }, - { - "type": "SYMBOL", - "name": "_semicolon" - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - }, - { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "export" - }, - { - "type": "STRING", - "value": "type" - }, - { - "type": "SYMBOL", - "name": "export_clause" - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "_from_clause" - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "SYMBOL", - "name": "_semicolon" - } - ] - }, - { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "export" - }, - { - "type": "STRING", - "value": "=" - }, - { - "type": "SYMBOL", - "name": "expression" - }, - { - "type": "SYMBOL", - "name": "_semicolon" - } - ] - }, - { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "export" - }, - { - "type": "STRING", - "value": "as" - }, - { - "type": "STRING", - "value": "namespace" - }, - { - "type": "SYMBOL", - "name": "identifier" - }, - { - "type": "SYMBOL", - "name": "_semicolon" - } - ] - } - ] - }, - "namespace_export": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "*" - }, - { - "type": "STRING", - "value": "as" - }, - { - "type": "SYMBOL", - "name": "_module_export_name" - } - ] - }, - "export_clause": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "{" - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "export_specifier" - }, - { - "type": "REPEAT", - "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "," - }, - { - "type": "SYMBOL", - "name": "export_specifier" - } - ] - } - } - ] - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "," - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "STRING", - "value": "}" - } - ] - }, - "export_specifier": { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "type" - }, - { - "type": "STRING", - "value": "typeof" - } - ] - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "name", - "content": { - "type": "SYMBOL", - "name": "_module_export_name" - } - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "as" - }, - { - "type": "FIELD", - "name": "alias", - "content": { - "type": "SYMBOL", - "name": "_module_export_name" - } - } - ] - }, - { - "type": "BLANK" - } - ] - } - ] - } - ] - }, - "_module_export_name": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "identifier" - }, - { - "type": "SYMBOL", - "name": "string" - } - ] - }, - "declaration": { - "type": "CHOICE", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "function_declaration" - }, - { - "type": "SYMBOL", - "name": "generator_function_declaration" - }, - { - "type": "SYMBOL", - "name": "class_declaration" - }, - { - "type": "SYMBOL", - "name": "lexical_declaration" - }, - { - "type": "SYMBOL", - "name": "variable_declaration" - } - ] - }, - { - "type": "SYMBOL", - "name": "function_signature" - }, - { - "type": "SYMBOL", - "name": "abstract_class_declaration" - }, - { - "type": "SYMBOL", - "name": "module" - }, - { - "type": "PREC", - "value": "declaration", - "content": { - "type": "SYMBOL", - "name": "internal_module" - } - }, - { - "type": "SYMBOL", - "name": "type_alias_declaration" - }, - { - "type": "SYMBOL", - "name": "enum_declaration" - }, - { - "type": "SYMBOL", - "name": "interface_declaration" - }, - { - "type": "SYMBOL", - "name": "import_alias" - }, - { - "type": "SYMBOL", - "name": "ambient_declaration" - } - ] - }, - "import": { - "type": "TOKEN", - "content": { - "type": "STRING", - "value": "import" - } - }, - "import_statement": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "import" - }, - { - "type": "CHOICE", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "type" - }, - { - "type": "STRING", - "value": "typeof" - } - ] - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "import_clause" - }, - { - "type": "SYMBOL", - "name": "_from_clause" - } - ] - }, - { - "type": "SYMBOL", - "name": "import_require_clause" - }, - { - "type": "FIELD", - "name": "source", - "content": { - "type": "SYMBOL", - "name": "string" - } - } - ] - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "import_attribute" - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "SYMBOL", - "name": "_semicolon" - } - ] - }, - "import_clause": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "namespace_import" - }, - { - "type": "SYMBOL", - "name": "named_imports" - }, - { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "_import_identifier" - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "," - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "namespace_import" - }, - { - "type": "SYMBOL", - "name": "named_imports" - } - ] - } - ] - }, - { - "type": "BLANK" - } - ] - } - ] - } - ] - }, - "_from_clause": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "from" - }, - { - "type": "FIELD", - "name": "source", - "content": { - "type": "SYMBOL", - "name": "string" - } - } - ] - }, - "namespace_import": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "*" - }, - { - "type": "STRING", - "value": "as" - }, - { - "type": "SYMBOL", - "name": "identifier" - } - ] - }, - "named_imports": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "{" - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "import_specifier" - }, - { - "type": "REPEAT", - "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "," - }, - { - "type": "SYMBOL", - "name": "import_specifier" - } - ] - } - } - ] - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "," - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "STRING", - "value": "}" - } - ] - }, - "import_specifier": { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "type" - }, - { - "type": "STRING", - "value": "typeof" - } - ] - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "CHOICE", - "members": [ - { - "type": "FIELD", - "name": "name", - "content": { - "type": "SYMBOL", - "name": "_import_identifier" - } - }, - { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "name", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "_module_export_name" - }, - { - "type": "ALIAS", - "content": { - "type": "STRING", - "value": "type" - }, - "named": true, - "value": "identifier" - } - ] - } - }, - { - "type": "STRING", - "value": "as" - }, - { - "type": "FIELD", - "name": "alias", - "content": { - "type": "SYMBOL", - "name": "_import_identifier" - } - } - ] - } - ] - } - ] - }, - "import_attribute": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "with" - }, - { - "type": "SYMBOL", - "name": "object" - } - ] - }, - "statement": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "export_statement" - }, - { - "type": "SYMBOL", - "name": "import_statement" - }, - { - "type": "SYMBOL", - "name": "debugger_statement" - }, - { - "type": "SYMBOL", - "name": "expression_statement" - }, - { - "type": "SYMBOL", - "name": "declaration" - }, - { - "type": "SYMBOL", - "name": "statement_block" - }, - { - "type": "SYMBOL", - "name": "if_statement" - }, - { - "type": "SYMBOL", - "name": "switch_statement" - }, - { - "type": "SYMBOL", - "name": "for_statement" - }, - { - "type": "SYMBOL", - "name": "for_in_statement" - }, - { - "type": "SYMBOL", - "name": "while_statement" - }, - { - "type": "SYMBOL", - "name": "do_statement" - }, - { - "type": "SYMBOL", - "name": "try_statement" - }, - { - "type": "SYMBOL", - "name": "with_statement" - }, - { - "type": "SYMBOL", - "name": "break_statement" - }, - { - "type": "SYMBOL", - "name": "continue_statement" - }, - { - "type": "SYMBOL", - "name": "return_statement" - }, - { - "type": "SYMBOL", - "name": "throw_statement" - }, - { - "type": "SYMBOL", - "name": "empty_statement" - }, - { - "type": "SYMBOL", - "name": "labeled_statement" - } - ] - }, - "expression_statement": { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "_expressions" - }, - { - "type": "SYMBOL", - "name": "_semicolon" - } - ] - }, - "variable_declaration": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "var" - }, - { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "variable_declarator" - }, - { - "type": "REPEAT", - "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "," - }, - { - "type": "SYMBOL", - "name": "variable_declarator" - } - ] - } - } - ] - }, - { - "type": "SYMBOL", - "name": "_semicolon" - } - ] - }, - "lexical_declaration": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "kind", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "let" - }, - { - "type": "STRING", - "value": "const" - } - ] - } - }, - { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "variable_declarator" - }, - { - "type": "REPEAT", - "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "," - }, - { - "type": "SYMBOL", - "name": "variable_declarator" - } - ] - } - } - ] - }, - { - "type": "SYMBOL", - "name": "_semicolon" - } - ] - }, - "variable_declarator": { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "name", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "identifier" - }, - { - "type": "SYMBOL", - "name": "_destructuring_pattern" - } - ] - } - }, - { - "type": "FIELD", - "name": "type", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "type_annotation" - }, - { - "type": "BLANK" - } - ] - } - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "_initializer" - }, - { - "type": "BLANK" - } - ] - } - ] - }, - { - "type": "PREC", - "value": "declaration", - "content": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "name", - "content": { - "type": "SYMBOL", - "name": "identifier" - } - }, - { - "type": "STRING", - "value": "!" - }, - { - "type": "FIELD", - "name": "type", - "content": { - "type": "SYMBOL", - "name": "type_annotation" - } - } - ] - } - } - ] - }, - "statement_block": { - "type": "PREC_RIGHT", - "value": 0, - "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "{" - }, - { - "type": "REPEAT", - "content": { - "type": "SYMBOL", - "name": "statement" - } - }, - { - "type": "STRING", - "value": "}" - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "_automatic_semicolon" - }, - { - "type": "BLANK" - } - ] - } - ] - } - }, - "else_clause": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "else" - }, - { - "type": "SYMBOL", - "name": "statement" - } - ] - }, - "if_statement": { - "type": "PREC_RIGHT", - "value": 0, - "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "if" - }, - { - "type": "FIELD", - "name": "condition", - "content": { - "type": "SYMBOL", - "name": "parenthesized_expression" - } - }, - { - "type": "FIELD", - "name": "consequence", - "content": { - "type": "SYMBOL", - "name": "statement" - } - }, - { - "type": "CHOICE", - "members": [ - { - "type": "FIELD", - "name": "alternative", - "content": { - "type": "SYMBOL", - "name": "else_clause" - } - }, - { - "type": "BLANK" - } - ] - } - ] - } - }, - "switch_statement": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "switch" - }, - { - "type": "FIELD", - "name": "value", - "content": { - "type": "SYMBOL", - "name": "parenthesized_expression" - } - }, - { - "type": "FIELD", - "name": "body", - "content": { - "type": "SYMBOL", - "name": "switch_body" - } - } - ] - }, - "for_statement": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "for" - }, - { - "type": "STRING", - "value": "(" - }, - { - "type": "FIELD", - "name": "initializer", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "lexical_declaration" - }, - { - "type": "SYMBOL", - "name": "variable_declaration" - }, - { - "type": "SYMBOL", - "name": "expression_statement" - }, - { - "type": "SYMBOL", - "name": "empty_statement" - } - ] - } - }, - { - "type": "FIELD", - "name": "condition", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "expression_statement" - }, - { - "type": "SYMBOL", - "name": "empty_statement" - } - ] - } - }, - { - "type": "FIELD", - "name": "increment", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "_expressions" - }, - { - "type": "BLANK" - } - ] - } - }, - { - "type": "STRING", - "value": ")" - }, - { - "type": "FIELD", - "name": "body", - "content": { - "type": "SYMBOL", - "name": "statement" - } - } - ] - }, - "for_in_statement": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "for" - }, - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "await" - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "SYMBOL", - "name": "_for_header" - }, - { - "type": "FIELD", - "name": "body", - "content": { - "type": "SYMBOL", - "name": "statement" - } - } - ] - }, - "_for_header": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "(" - }, - { - "type": "CHOICE", - "members": [ - { - "type": "FIELD", - "name": "left", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "_lhs_expression" - }, - { - "type": "SYMBOL", - "name": "parenthesized_expression" - } - ] - } - }, - { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "kind", - "content": { - "type": "STRING", - "value": "var" - } - }, - { - "type": "FIELD", - "name": "left", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "identifier" - }, - { - "type": "SYMBOL", - "name": "_destructuring_pattern" - } - ] - } - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "_initializer" - }, - { - "type": "BLANK" - } - ] - } - ] - }, - { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "kind", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "let" - }, - { - "type": "STRING", - "value": "const" - } - ] - } - }, - { - "type": "FIELD", - "name": "left", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "identifier" - }, - { - "type": "SYMBOL", - "name": "_destructuring_pattern" - } - ] - } - } - ] - } - ] - }, - { - "type": "FIELD", - "name": "operator", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "in" - }, - { - "type": "STRING", - "value": "of" - } - ] - } - }, - { - "type": "FIELD", - "name": "right", - "content": { - "type": "SYMBOL", - "name": "_expressions" - } - }, - { - "type": "STRING", - "value": ")" - } - ] - }, - "while_statement": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "while" - }, - { - "type": "FIELD", - "name": "condition", - "content": { - "type": "SYMBOL", - "name": "parenthesized_expression" - } - }, - { - "type": "FIELD", - "name": "body", - "content": { - "type": "SYMBOL", - "name": "statement" - } - } - ] - }, - "do_statement": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "do" - }, - { - "type": "FIELD", - "name": "body", - "content": { - "type": "SYMBOL", - "name": "statement" - } - }, - { - "type": "STRING", - "value": "while" - }, - { - "type": "FIELD", - "name": "condition", - "content": { - "type": "SYMBOL", - "name": "parenthesized_expression" - } - } - ] - }, - "try_statement": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "try" - }, - { - "type": "FIELD", - "name": "body", - "content": { - "type": "SYMBOL", - "name": "statement_block" - } - }, - { - "type": "CHOICE", - "members": [ - { - "type": "FIELD", - "name": "handler", - "content": { - "type": "SYMBOL", - "name": "catch_clause" - } - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "CHOICE", - "members": [ - { - "type": "FIELD", - "name": "finalizer", - "content": { - "type": "SYMBOL", - "name": "finally_clause" - } - }, - { - "type": "BLANK" - } - ] - } - ] - }, - "with_statement": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "with" - }, - { - "type": "FIELD", - "name": "object", - "content": { - "type": "SYMBOL", - "name": "parenthesized_expression" - } - }, - { - "type": "FIELD", - "name": "body", - "content": { - "type": "SYMBOL", - "name": "statement" - } - } - ] - }, - "break_statement": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "break" - }, - { - "type": "FIELD", - "name": "label", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "identifier" - }, - "named": true, - "value": "statement_identifier" - }, - { - "type": "BLANK" - } - ] - } - }, - { - "type": "SYMBOL", - "name": "_semicolon" - } - ] - }, - "continue_statement": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "continue" - }, - { - "type": "FIELD", - "name": "label", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "identifier" - }, - "named": true, - "value": "statement_identifier" - }, - { - "type": "BLANK" - } - ] - } - }, - { - "type": "SYMBOL", - "name": "_semicolon" - } - ] - }, - "debugger_statement": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "debugger" - }, - { - "type": "SYMBOL", - "name": "_semicolon" - } - ] - }, - "return_statement": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "return" - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "_expressions" - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "SYMBOL", - "name": "_semicolon" - } - ] - }, - "throw_statement": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "throw" - }, - { - "type": "SYMBOL", - "name": "_expressions" - }, - { - "type": "SYMBOL", - "name": "_semicolon" - } - ] - }, - "empty_statement": { - "type": "STRING", - "value": ";" - }, - "labeled_statement": { - "type": "PREC_DYNAMIC", - "value": -1, - "content": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "label", - "content": { - "type": "ALIAS", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "identifier" - }, - { - "type": "SYMBOL", - "name": "_reserved_identifier" - } - ] - }, - "named": true, - "value": "statement_identifier" - } - }, - { - "type": "STRING", - "value": ":" - }, - { - "type": "FIELD", - "name": "body", - "content": { - "type": "SYMBOL", - "name": "statement" - } - } - ] - } - }, - "switch_body": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "{" - }, - { - "type": "REPEAT", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "switch_case" - }, - { - "type": "SYMBOL", - "name": "switch_default" - } - ] - } - }, - { - "type": "STRING", - "value": "}" - } - ] - }, - "switch_case": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "case" - }, - { - "type": "FIELD", - "name": "value", - "content": { - "type": "SYMBOL", - "name": "_expressions" - } - }, - { - "type": "STRING", - "value": ":" - }, - { - "type": "FIELD", - "name": "body", - "content": { - "type": "REPEAT", - "content": { - "type": "SYMBOL", - "name": "statement" - } - } - } - ] - }, - "switch_default": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "default" - }, - { - "type": "STRING", - "value": ":" - }, - { - "type": "FIELD", - "name": "body", - "content": { - "type": "REPEAT", - "content": { - "type": "SYMBOL", - "name": "statement" - } - } - } - ] - }, - "catch_clause": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "catch" - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "(" - }, - { - "type": "FIELD", - "name": "parameter", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "identifier" - }, - { - "type": "SYMBOL", - "name": "_destructuring_pattern" - } - ] - } - }, - { - "type": "CHOICE", - "members": [ - { - "type": "FIELD", - "name": "type", - "content": { - "type": "SYMBOL", - "name": "type_annotation" - } - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "STRING", - "value": ")" - } - ] - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "FIELD", - "name": "body", - "content": { - "type": "SYMBOL", - "name": "statement_block" - } - } - ] - }, - "finally_clause": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "finally" - }, - { - "type": "FIELD", - "name": "body", - "content": { - "type": "SYMBOL", - "name": "statement_block" - } - } - ] - }, - "parenthesized_expression": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "(" - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "expression" - }, - { - "type": "FIELD", - "name": "type", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "type_annotation" - }, - { - "type": "BLANK" - } - ] - } - } - ] - }, - { - "type": "SYMBOL", - "name": "sequence_expression" - } - ] - }, - { - "type": "STRING", - "value": ")" - } - ] - }, - "_expressions": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "expression" - }, - { - "type": "SYMBOL", - "name": "sequence_expression" - } - ] - }, - "expression": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "as_expression" - }, - { - "type": "SYMBOL", - "name": "satisfies_expression" - }, - { - "type": "SYMBOL", - "name": "instantiation_expression" - }, - { - "type": "SYMBOL", - "name": "internal_module" - }, - { - "type": "SYMBOL", - "name": "type_assertion" - }, - { - "type": "SYMBOL", - "name": "primary_expression" - }, - { - "type": "SYMBOL", - "name": "glimmer_template" - }, - { - "type": "SYMBOL", - "name": "assignment_expression" - }, - { - "type": "SYMBOL", - "name": "augmented_assignment_expression" - }, - { - "type": "SYMBOL", - "name": "await_expression" - }, - { - "type": "SYMBOL", - "name": "unary_expression" - }, - { - "type": "SYMBOL", - "name": "binary_expression" - }, - { - "type": "SYMBOL", - "name": "ternary_expression" - }, - { - "type": "SYMBOL", - "name": "update_expression" - }, - { - "type": "SYMBOL", - "name": "new_expression" - }, - { - "type": "SYMBOL", - "name": "yield_expression" - } - ] - }, - "primary_expression": { - "type": "CHOICE", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "subscript_expression" - }, - { - "type": "SYMBOL", - "name": "member_expression" - }, - { - "type": "SYMBOL", - "name": "parenthesized_expression" - }, - { - "type": "SYMBOL", - "name": "_identifier" - }, - { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "_reserved_identifier" - }, - "named": true, - "value": "identifier" - }, - { - "type": "SYMBOL", - "name": "this" - }, - { - "type": "SYMBOL", - "name": "super" - }, - { - "type": "SYMBOL", - "name": "number" - }, - { - "type": "SYMBOL", - "name": "string" - }, - { - "type": "SYMBOL", - "name": "template_string" - }, - { - "type": "SYMBOL", - "name": "regex" - }, - { - "type": "SYMBOL", - "name": "true" - }, - { - "type": "SYMBOL", - "name": "false" - }, - { - "type": "SYMBOL", - "name": "null" - }, - { - "type": "SYMBOL", - "name": "object" - }, - { - "type": "SYMBOL", - "name": "array" - }, - { - "type": "SYMBOL", - "name": "function_expression" - }, - { - "type": "SYMBOL", - "name": "arrow_function" - }, - { - "type": "SYMBOL", - "name": "generator_function" - }, - { - "type": "SYMBOL", - "name": "class" - }, - { - "type": "SYMBOL", - "name": "meta_property" - }, - { - "type": "SYMBOL", - "name": "call_expression" - } - ] - }, - { - "type": "SYMBOL", - "name": "non_null_expression" - } - ] - }, - "yield_expression": { - "type": "PREC_RIGHT", - "value": 0, - "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "yield" - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "*" - }, - { - "type": "SYMBOL", - "name": "expression" - } - ] - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "expression" - }, - { - "type": "BLANK" - } - ] - } - ] - } - ] - } - }, - "object": { - "type": "PREC", - "value": "object", - "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "{" - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "pair" - }, - { - "type": "SYMBOL", - "name": "spread_element" - }, - { - "type": "SYMBOL", - "name": "method_definition" - }, - { - "type": "ALIAS", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "identifier" - }, - { - "type": "SYMBOL", - "name": "_reserved_identifier" - } - ] - }, - "named": true, - "value": "shorthand_property_identifier" - } - ] - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "REPEAT", - "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "," - }, - { - "type": "CHOICE", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "pair" - }, - { - "type": "SYMBOL", - "name": "spread_element" - }, - { - "type": "SYMBOL", - "name": "method_definition" - }, - { - "type": "ALIAS", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "identifier" - }, - { - "type": "SYMBOL", - "name": "_reserved_identifier" - } - ] - }, - "named": true, - "value": "shorthand_property_identifier" - } - ] - }, - { - "type": "BLANK" - } - ] - } - ] - } - } - ] - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "STRING", - "value": "}" - } - ] - } - }, - "object_pattern": { - "type": "PREC", - "value": "object", - "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "{" - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "pair_pattern" - }, - { - "type": "SYMBOL", - "name": "rest_pattern" - }, - { - "type": "SYMBOL", - "name": "object_assignment_pattern" - }, - { - "type": "ALIAS", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "identifier" - }, - { - "type": "SYMBOL", - "name": "_reserved_identifier" - } - ] - }, - "named": true, - "value": "shorthand_property_identifier_pattern" - } - ] - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "REPEAT", - "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "," - }, - { - "type": "CHOICE", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "pair_pattern" - }, - { - "type": "SYMBOL", - "name": "rest_pattern" - }, - { - "type": "SYMBOL", - "name": "object_assignment_pattern" - }, - { - "type": "ALIAS", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "identifier" - }, - { - "type": "SYMBOL", - "name": "_reserved_identifier" - } - ] - }, - "named": true, - "value": "shorthand_property_identifier_pattern" - } - ] - }, - { - "type": "BLANK" - } - ] - } - ] - } - } - ] - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "STRING", - "value": "}" - } - ] - } - }, - "assignment_pattern": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "left", - "content": { - "type": "SYMBOL", - "name": "pattern" - } - }, - { - "type": "STRING", - "value": "=" - }, - { - "type": "FIELD", - "name": "right", - "content": { - "type": "SYMBOL", - "name": "expression" - } - } - ] - }, - "object_assignment_pattern": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "left", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "ALIAS", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "_reserved_identifier" - }, - { - "type": "SYMBOL", - "name": "identifier" - } - ] - }, - "named": true, - "value": "shorthand_property_identifier_pattern" - }, - { - "type": "SYMBOL", - "name": "_destructuring_pattern" - } - ] - } - }, - { - "type": "STRING", - "value": "=" - }, - { - "type": "FIELD", - "name": "right", - "content": { - "type": "SYMBOL", - "name": "expression" - } - } - ] - }, - "array": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "[" - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "expression" - }, - { - "type": "SYMBOL", - "name": "spread_element" - } - ] - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "REPEAT", - "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "," - }, - { - "type": "CHOICE", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "expression" - }, - { - "type": "SYMBOL", - "name": "spread_element" - } - ] - }, - { - "type": "BLANK" - } - ] - } - ] - } - } - ] - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "STRING", - "value": "]" - } - ] - }, - "array_pattern": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "[" - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "pattern" - }, - { - "type": "SYMBOL", - "name": "assignment_pattern" - } - ] - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "REPEAT", - "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "," - }, - { - "type": "CHOICE", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "pattern" - }, - { - "type": "SYMBOL", - "name": "assignment_pattern" - } - ] - }, - { - "type": "BLANK" - } - ] - } - ] - } - } - ] - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "STRING", - "value": "]" - } - ] - }, - "glimmer_template": { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "open_tag", - "content": { - "type": "SYMBOL", - "name": "glimmer_opening_tag" - } - }, - { - "type": "FIELD", - "name": "content", - "content": { - "type": "REPEAT", - "content": { - "type": "SYMBOL", - "name": "_glimmer_template_content" - } - } - }, - { - "type": "FIELD", - "name": "close_tag", - "content": { - "type": "SYMBOL", - "name": "glimmer_closing_tag" - } - } - ] - }, - { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "open_tag", - "content": { - "type": "SYMBOL", - "name": "glimmer_opening_tag" - } - }, - { - "type": "FIELD", - "name": "close_tag", - "content": { - "type": "SYMBOL", - "name": "glimmer_closing_tag" - } - } - ] - } - ] - }, - "_glimmer_template_content": { - "type": "PATTERN", - "value": ".{1,}" - }, - "glimmer_opening_tag": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "" - } - ] - }, - "_jsx_element": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "jsx_element" - }, - { - "type": "SYMBOL", - "name": "jsx_self_closing_element" - } - ] - }, - "jsx_element": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "open_tag", - "content": { - "type": "SYMBOL", - "name": "jsx_opening_element" - } - }, - { - "type": "REPEAT", - "content": { - "type": "SYMBOL", - "name": "_jsx_child" - } - }, - { - "type": "FIELD", - "name": "close_tag", - "content": { - "type": "SYMBOL", - "name": "jsx_closing_element" - } - } - ] - }, - "jsx_text": { - "type": "CHOICE", - "members": [ - { - "type": "PATTERN", - "value": "[^{}<>\\n& ]([^{}<>\\n&]*[^{}<>\\n& ])?" - }, - { - "type": "PATTERN", - "value": "\\/\\/[^\\n]*" - } - ] - }, - "html_character_reference": { - "type": "PATTERN", - "value": "&(#([xX][0-9a-fA-F]{1,6}|[0-9]{1,5})|[A-Za-z]{1,30});" - }, - "jsx_expression": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "{" - }, - { - "type": "CHOICE", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "expression" - }, - { - "type": "SYMBOL", - "name": "sequence_expression" - }, - { - "type": "SYMBOL", - "name": "spread_element" - } - ] - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "STRING", - "value": "}" - } - ] - }, - "_jsx_child": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "jsx_text" - }, - { - "type": "SYMBOL", - "name": "html_character_reference" - }, - { - "type": "SYMBOL", - "name": "_jsx_element" - }, - { - "type": "SYMBOL", - "name": "jsx_expression" - } - ] - }, - "jsx_opening_element": { - "type": "PREC_DYNAMIC", - "value": -1, - "content": { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "_jsx_start_opening_element" - }, - { - "type": "STRING", - "value": ">" - } - ] - } - }, - "jsx_identifier": { - "type": "PATTERN", - "value": "[a-zA-Z_$][a-zA-Z\\d_$]*-[a-zA-Z\\d_$\\-]*" - }, - "_jsx_identifier": { - "type": "CHOICE", - "members": [ - { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "jsx_identifier" - }, - "named": true, - "value": "identifier" - }, - { - "type": "SYMBOL", - "name": "identifier" - } - ] - }, - "nested_identifier": { - "type": "PREC", - "value": "member", - "content": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "object", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "identifier" - }, - { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "nested_identifier" - }, - "named": true, - "value": "member_expression" - } - ] - } - }, - { - "type": "STRING", - "value": "." - }, - { - "type": "FIELD", - "name": "property", - "content": { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "identifier" - }, - "named": true, - "value": "property_identifier" - } - } - ] - } - }, - "jsx_namespace_name": { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "_jsx_identifier" - }, - { - "type": "STRING", - "value": ":" - }, - { - "type": "SYMBOL", - "name": "_jsx_identifier" - } - ] - }, - "_jsx_element_name": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "_jsx_identifier" - }, - { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "nested_identifier" - }, - "named": true, - "value": "member_expression" - }, - { - "type": "SYMBOL", - "name": "jsx_namespace_name" - } - ] - }, - "jsx_closing_element": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "" - } - ] - }, - "jsx_self_closing_element": { - "type": "PREC_DYNAMIC", - "value": -1, - "content": { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "_jsx_start_opening_element" - }, - { - "type": "STRING", - "value": "/>" - } - ] - } - }, - "_jsx_attribute": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "jsx_attribute" - }, - { - "type": "SYMBOL", - "name": "jsx_expression" - } - ] - }, - "_jsx_attribute_name": { - "type": "CHOICE", - "members": [ - { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "_jsx_identifier" - }, - "named": true, - "value": "property_identifier" - }, - { - "type": "SYMBOL", - "name": "jsx_namespace_name" - } - ] - }, - "jsx_attribute": { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "_jsx_attribute_name" - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "=" - }, - { - "type": "SYMBOL", - "name": "_jsx_attribute_value" - } - ] - }, - { - "type": "BLANK" - } - ] - } - ] - }, - "_jsx_string": { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "\"" - }, - { - "type": "REPEAT", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "unescaped_double_jsx_string_fragment" - }, - "named": true, - "value": "string_fragment" - }, - { - "type": "SYMBOL", - "name": "html_character_reference" - } - ] - } - }, - { - "type": "STRING", - "value": "\"" - } - ] - }, - { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "'" - }, - { - "type": "REPEAT", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "unescaped_single_jsx_string_fragment" - }, - "named": true, - "value": "string_fragment" - }, - { - "type": "SYMBOL", - "name": "html_character_reference" - } - ] - } - }, - { - "type": "STRING", - "value": "'" - } - ] - } - ] - }, - "unescaped_double_jsx_string_fragment": { - "type": "IMMEDIATE_TOKEN", - "content": { - "type": "PREC", - "value": 1, - "content": { - "type": "PATTERN", - "value": "[^\"&]+" - } - } - }, - "unescaped_single_jsx_string_fragment": { - "type": "IMMEDIATE_TOKEN", - "content": { - "type": "PREC", - "value": 1, - "content": { - "type": "PATTERN", - "value": "[^'&]+" - } - } - }, - "_jsx_attribute_value": { - "type": "CHOICE", - "members": [ - { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "_jsx_string" - }, - "named": true, - "value": "string" - }, - { - "type": "SYMBOL", - "name": "jsx_expression" - }, - { - "type": "SYMBOL", - "name": "_jsx_element" - } - ] - }, - "class": { - "type": "PREC", - "value": "literal", - "content": { - "type": "SEQ", - "members": [ - { - "type": "REPEAT", - "content": { - "type": "FIELD", - "name": "decorator", - "content": { - "type": "SYMBOL", - "name": "decorator" - } - } - }, - { - "type": "STRING", - "value": "class" - }, - { - "type": "FIELD", - "name": "name", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "_type_identifier" - }, - { - "type": "BLANK" - } - ] - } - }, - { - "type": "FIELD", - "name": "type_parameters", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "type_parameters" - }, - { - "type": "BLANK" - } - ] - } - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "class_heritage" - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "FIELD", - "name": "body", - "content": { - "type": "SYMBOL", - "name": "class_body" - } - } - ] - } - }, - "class_declaration": { - "type": "PREC_LEFT", - "value": "declaration", - "content": { - "type": "SEQ", - "members": [ - { - "type": "REPEAT", - "content": { - "type": "FIELD", - "name": "decorator", - "content": { - "type": "SYMBOL", - "name": "decorator" - } - } - }, - { - "type": "STRING", - "value": "class" - }, - { - "type": "FIELD", - "name": "name", - "content": { - "type": "SYMBOL", - "name": "_type_identifier" - } - }, - { - "type": "FIELD", - "name": "type_parameters", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "type_parameters" - }, - { - "type": "BLANK" - } - ] - } - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "class_heritage" - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "FIELD", - "name": "body", - "content": { - "type": "SYMBOL", - "name": "class_body" - } - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "_automatic_semicolon" - }, - { - "type": "BLANK" - } - ] - } - ] - } - }, - "class_heritage": { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "extends_clause" - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "implements_clause" - }, - { - "type": "BLANK" - } - ] - } - ] - }, - { - "type": "SYMBOL", - "name": "implements_clause" - } - ] - }, - "function_expression": { - "type": "PREC", - "value": "literal", - "content": { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "async" - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "STRING", - "value": "function" - }, - { - "type": "FIELD", - "name": "name", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "identifier" - }, - { - "type": "BLANK" - } - ] - } - }, - { - "type": "SYMBOL", - "name": "_call_signature" - }, - { - "type": "FIELD", - "name": "body", - "content": { - "type": "SYMBOL", - "name": "statement_block" - } - } - ] - } - }, - "function_declaration": { - "type": "PREC_RIGHT", - "value": "declaration", - "content": { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "async" - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "STRING", - "value": "function" - }, - { - "type": "FIELD", - "name": "name", - "content": { - "type": "SYMBOL", - "name": "identifier" - } - }, - { - "type": "SYMBOL", - "name": "_call_signature" - }, - { - "type": "FIELD", - "name": "body", - "content": { - "type": "SYMBOL", - "name": "statement_block" - } - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "_automatic_semicolon" - }, - { - "type": "BLANK" - } - ] - } - ] - } - }, - "generator_function": { - "type": "PREC", - "value": "literal", - "content": { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "async" - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "STRING", - "value": "function" - }, - { - "type": "STRING", - "value": "*" - }, - { - "type": "FIELD", - "name": "name", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "identifier" - }, - { - "type": "BLANK" - } - ] - } - }, - { - "type": "SYMBOL", - "name": "_call_signature" - }, - { - "type": "FIELD", - "name": "body", - "content": { - "type": "SYMBOL", - "name": "statement_block" - } - } - ] - } - }, - "generator_function_declaration": { - "type": "PREC_RIGHT", - "value": "declaration", - "content": { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "async" - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "STRING", - "value": "function" - }, - { - "type": "STRING", - "value": "*" - }, - { - "type": "FIELD", - "name": "name", - "content": { - "type": "SYMBOL", - "name": "identifier" - } - }, - { - "type": "SYMBOL", - "name": "_call_signature" - }, - { - "type": "FIELD", - "name": "body", - "content": { - "type": "SYMBOL", - "name": "statement_block" - } - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "_automatic_semicolon" - }, - { - "type": "BLANK" - } - ] - } - ] - } - }, - "arrow_function": { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "async" - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "CHOICE", - "members": [ - { - "type": "FIELD", - "name": "parameter", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "_reserved_identifier" - }, - "named": true, - "value": "identifier" - }, - { - "type": "SYMBOL", - "name": "identifier" - } - ] - } - }, - { - "type": "SYMBOL", - "name": "_call_signature" - } - ] - }, - { - "type": "STRING", - "value": "=>" - }, - { - "type": "FIELD", - "name": "body", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "expression" - }, - { - "type": "SYMBOL", - "name": "statement_block" - } - ] - } - } - ] - }, - "_call_signature": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "type_parameters", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "type_parameters" - }, - { - "type": "BLANK" - } - ] - } - }, - { - "type": "FIELD", - "name": "parameters", - "content": { - "type": "SYMBOL", - "name": "formal_parameters" - } - }, - { - "type": "FIELD", - "name": "return_type", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "type_annotation" - }, - { - "type": "SYMBOL", - "name": "asserts_annotation" - }, - { - "type": "SYMBOL", - "name": "type_predicate_annotation" - } - ] - }, - { - "type": "BLANK" - } - ] - } - } - ] - }, - "_formal_parameter": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "required_parameter" - }, - { - "type": "SYMBOL", - "name": "optional_parameter" - } - ] - }, - "optional_chain": { - "type": "STRING", - "value": "?." - }, - "call_expression": { - "type": "CHOICE", - "members": [ - { - "type": "PREC", - "value": "call", - "content": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "function", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "expression" - }, - { - "type": "SYMBOL", - "name": "import" - } - ] - } - }, - { - "type": "FIELD", - "name": "type_arguments", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "type_arguments" - }, - { - "type": "BLANK" - } - ] - } - }, - { - "type": "FIELD", - "name": "arguments", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "arguments" - }, - { - "type": "SYMBOL", - "name": "template_string" - } - ] - } - } - ] - } - }, - { - "type": "PREC", - "value": "member", - "content": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "function", - "content": { - "type": "SYMBOL", - "name": "primary_expression" - } - }, - { - "type": "STRING", - "value": "?." - }, - { - "type": "FIELD", - "name": "type_arguments", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "type_arguments" - }, - { - "type": "BLANK" - } - ] - } - }, - { - "type": "FIELD", - "name": "arguments", - "content": { - "type": "SYMBOL", - "name": "arguments" - } - } - ] - } - } - ] - }, - "new_expression": { - "type": "PREC_RIGHT", - "value": "new", - "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "new" - }, - { - "type": "FIELD", - "name": "constructor", - "content": { - "type": "SYMBOL", - "name": "primary_expression" - } - }, - { - "type": "FIELD", - "name": "type_arguments", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "type_arguments" - }, - { - "type": "BLANK" - } - ] - } - }, - { - "type": "FIELD", - "name": "arguments", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "arguments" - }, - { - "type": "BLANK" - } - ] - } - } - ] - } - }, - "await_expression": { - "type": "PREC", - "value": "unary_void", - "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "await" - }, - { - "type": "SYMBOL", - "name": "expression" - } - ] - } - }, - "member_expression": { - "type": "PREC", - "value": "member", - "content": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "object", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "expression" - }, - { - "type": "SYMBOL", - "name": "primary_expression" - }, - { - "type": "SYMBOL", - "name": "import" - } - ] - } - }, - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "." - }, - { - "type": "FIELD", - "name": "optional_chain", - "content": { - "type": "SYMBOL", - "name": "optional_chain" - } - } - ] - }, - { - "type": "FIELD", - "name": "property", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "private_property_identifier" - }, - { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "identifier" - }, - "named": true, - "value": "property_identifier" - } - ] - } - } - ] - } - }, - "subscript_expression": { - "type": "PREC_RIGHT", - "value": "member", - "content": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "object", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "expression" - }, - { - "type": "SYMBOL", - "name": "primary_expression" - } - ] - } - }, - { - "type": "CHOICE", - "members": [ - { - "type": "FIELD", - "name": "optional_chain", - "content": { - "type": "SYMBOL", - "name": "optional_chain" - } - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "STRING", - "value": "[" - }, - { - "type": "FIELD", - "name": "index", - "content": { - "type": "SYMBOL", - "name": "_expressions" - } - }, - { - "type": "STRING", - "value": "]" - } - ] - } - }, - "_lhs_expression": { - "type": "CHOICE", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "member_expression" - }, - { - "type": "SYMBOL", - "name": "subscript_expression" - }, - { - "type": "SYMBOL", - "name": "_identifier" - }, - { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "_reserved_identifier" - }, - "named": true, - "value": "identifier" - }, - { - "type": "SYMBOL", - "name": "_destructuring_pattern" - } - ] - }, - { - "type": "SYMBOL", - "name": "non_null_expression" - } - ] - }, - "assignment_expression": { - "type": "PREC_RIGHT", - "value": "assign", - "content": { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "using" - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "FIELD", - "name": "left", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "parenthesized_expression" - }, - { - "type": "SYMBOL", - "name": "_lhs_expression" - } - ] - } - }, - { - "type": "STRING", - "value": "=" - }, - { - "type": "FIELD", - "name": "right", - "content": { - "type": "SYMBOL", - "name": "expression" - } - } - ] - } - }, - "_augmented_assignment_lhs": { - "type": "CHOICE", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "member_expression" - }, - { - "type": "SYMBOL", - "name": "subscript_expression" - }, - { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "_reserved_identifier" - }, - "named": true, - "value": "identifier" - }, - { - "type": "SYMBOL", - "name": "identifier" - }, - { - "type": "SYMBOL", - "name": "parenthesized_expression" - } - ] - }, - { - "type": "SYMBOL", - "name": "non_null_expression" - } - ] - }, - "augmented_assignment_expression": { - "type": "PREC_RIGHT", - "value": "assign", - "content": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "left", - "content": { - "type": "SYMBOL", - "name": "_augmented_assignment_lhs" - } - }, - { - "type": "FIELD", - "name": "operator", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "+=" - }, - { - "type": "STRING", - "value": "-=" - }, - { - "type": "STRING", - "value": "*=" - }, - { - "type": "STRING", - "value": "/=" - }, - { - "type": "STRING", - "value": "%=" - }, - { - "type": "STRING", - "value": "^=" - }, - { - "type": "STRING", - "value": "&=" - }, - { - "type": "STRING", - "value": "|=" - }, - { - "type": "STRING", - "value": ">>=" - }, - { - "type": "STRING", - "value": ">>>=" - }, - { - "type": "STRING", - "value": "<<=" - }, - { - "type": "STRING", - "value": "**=" - }, - { - "type": "STRING", - "value": "&&=" - }, - { - "type": "STRING", - "value": "||=" - }, - { - "type": "STRING", - "value": "??=" - } - ] - } - }, - { - "type": "FIELD", - "name": "right", - "content": { - "type": "SYMBOL", - "name": "expression" - } - } - ] - } - }, - "_initializer": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "=" - }, - { - "type": "FIELD", - "name": "value", - "content": { - "type": "SYMBOL", - "name": "expression" - } - } - ] - }, - "_destructuring_pattern": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "object_pattern" - }, - { - "type": "SYMBOL", - "name": "array_pattern" - } - ] - }, - "spread_element": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "..." - }, - { - "type": "SYMBOL", - "name": "expression" - } - ] - }, - "ternary_expression": { - "type": "PREC_RIGHT", - "value": "ternary", - "content": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "condition", - "content": { - "type": "SYMBOL", - "name": "expression" - } - }, - { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "_ternary_qmark" - }, - "named": false, - "value": "?" - }, - { - "type": "FIELD", - "name": "consequence", - "content": { - "type": "SYMBOL", - "name": "expression" - } - }, - { - "type": "STRING", - "value": ":" - }, - { - "type": "FIELD", - "name": "alternative", - "content": { - "type": "SYMBOL", - "name": "expression" - } - } - ] - } - }, - "binary_expression": { - "type": "CHOICE", - "members": [ - { - "type": "PREC_LEFT", - "value": "logical_and", - "content": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "left", - "content": { - "type": "SYMBOL", - "name": "expression" - } - }, - { - "type": "FIELD", - "name": "operator", - "content": { - "type": "STRING", - "value": "&&" - } - }, - { - "type": "FIELD", - "name": "right", - "content": { - "type": "SYMBOL", - "name": "expression" - } - } - ] - } - }, - { - "type": "PREC_LEFT", - "value": "logical_or", - "content": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "left", - "content": { - "type": "SYMBOL", - "name": "expression" - } - }, - { - "type": "FIELD", - "name": "operator", - "content": { - "type": "STRING", - "value": "||" - } - }, - { - "type": "FIELD", - "name": "right", - "content": { - "type": "SYMBOL", - "name": "expression" - } - } - ] - } - }, - { - "type": "PREC_LEFT", - "value": "binary_shift", - "content": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "left", - "content": { - "type": "SYMBOL", - "name": "expression" - } - }, - { - "type": "FIELD", - "name": "operator", - "content": { - "type": "STRING", - "value": ">>" - } - }, - { - "type": "FIELD", - "name": "right", - "content": { - "type": "SYMBOL", - "name": "expression" - } - } - ] - } - }, - { - "type": "PREC_LEFT", - "value": "binary_shift", - "content": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "left", - "content": { - "type": "SYMBOL", - "name": "expression" - } - }, - { - "type": "FIELD", - "name": "operator", - "content": { - "type": "STRING", - "value": ">>>" - } - }, - { - "type": "FIELD", - "name": "right", - "content": { - "type": "SYMBOL", - "name": "expression" - } - } - ] - } - }, - { - "type": "PREC_LEFT", - "value": "binary_shift", - "content": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "left", - "content": { - "type": "SYMBOL", - "name": "expression" - } - }, - { - "type": "FIELD", - "name": "operator", - "content": { - "type": "STRING", - "value": "<<" - } - }, - { - "type": "FIELD", - "name": "right", - "content": { - "type": "SYMBOL", - "name": "expression" - } - } - ] - } - }, - { - "type": "PREC_LEFT", - "value": "bitwise_and", - "content": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "left", - "content": { - "type": "SYMBOL", - "name": "expression" - } - }, - { - "type": "FIELD", - "name": "operator", - "content": { - "type": "STRING", - "value": "&" - } - }, - { - "type": "FIELD", - "name": "right", - "content": { - "type": "SYMBOL", - "name": "expression" - } - } - ] - } - }, - { - "type": "PREC_LEFT", - "value": "bitwise_xor", - "content": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "left", - "content": { - "type": "SYMBOL", - "name": "expression" - } - }, - { - "type": "FIELD", - "name": "operator", - "content": { - "type": "STRING", - "value": "^" - } - }, - { - "type": "FIELD", - "name": "right", - "content": { - "type": "SYMBOL", - "name": "expression" - } - } - ] - } - }, - { - "type": "PREC_LEFT", - "value": "bitwise_or", - "content": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "left", - "content": { - "type": "SYMBOL", - "name": "expression" - } - }, - { - "type": "FIELD", - "name": "operator", - "content": { - "type": "STRING", - "value": "|" - } - }, - { - "type": "FIELD", - "name": "right", - "content": { - "type": "SYMBOL", - "name": "expression" - } - } - ] - } - }, - { - "type": "PREC_LEFT", - "value": "binary_plus", - "content": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "left", - "content": { - "type": "SYMBOL", - "name": "expression" - } - }, - { - "type": "FIELD", - "name": "operator", - "content": { - "type": "STRING", - "value": "+" - } - }, - { - "type": "FIELD", - "name": "right", - "content": { - "type": "SYMBOL", - "name": "expression" - } - } - ] - } - }, - { - "type": "PREC_LEFT", - "value": "binary_plus", - "content": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "left", - "content": { - "type": "SYMBOL", - "name": "expression" - } - }, - { - "type": "FIELD", - "name": "operator", - "content": { - "type": "STRING", - "value": "-" - } - }, - { - "type": "FIELD", - "name": "right", - "content": { - "type": "SYMBOL", - "name": "expression" - } - } - ] - } - }, - { - "type": "PREC_LEFT", - "value": "binary_times", - "content": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "left", - "content": { - "type": "SYMBOL", - "name": "expression" - } - }, - { - "type": "FIELD", - "name": "operator", - "content": { - "type": "STRING", - "value": "*" - } - }, - { - "type": "FIELD", - "name": "right", - "content": { - "type": "SYMBOL", - "name": "expression" - } - } - ] - } - }, - { - "type": "PREC_LEFT", - "value": "binary_times", - "content": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "left", - "content": { - "type": "SYMBOL", - "name": "expression" - } - }, - { - "type": "FIELD", - "name": "operator", - "content": { - "type": "STRING", - "value": "/" - } - }, - { - "type": "FIELD", - "name": "right", - "content": { - "type": "SYMBOL", - "name": "expression" - } - } - ] - } - }, - { - "type": "PREC_LEFT", - "value": "binary_times", - "content": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "left", - "content": { - "type": "SYMBOL", - "name": "expression" - } - }, - { - "type": "FIELD", - "name": "operator", - "content": { - "type": "STRING", - "value": "%" - } - }, - { - "type": "FIELD", - "name": "right", - "content": { - "type": "SYMBOL", - "name": "expression" - } - } - ] - } - }, - { - "type": "PREC_RIGHT", - "value": "binary_exp", - "content": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "left", - "content": { - "type": "SYMBOL", - "name": "expression" - } - }, - { - "type": "FIELD", - "name": "operator", - "content": { - "type": "STRING", - "value": "**" - } - }, - { - "type": "FIELD", - "name": "right", - "content": { - "type": "SYMBOL", - "name": "expression" - } - } - ] - } - }, - { - "type": "PREC_LEFT", - "value": "binary_relation", - "content": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "left", - "content": { - "type": "SYMBOL", - "name": "expression" - } - }, - { - "type": "FIELD", - "name": "operator", - "content": { - "type": "STRING", - "value": "<" - } - }, - { - "type": "FIELD", - "name": "right", - "content": { - "type": "SYMBOL", - "name": "expression" - } - } - ] - } - }, - { - "type": "PREC_LEFT", - "value": "binary_relation", - "content": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "left", - "content": { - "type": "SYMBOL", - "name": "expression" - } - }, - { - "type": "FIELD", - "name": "operator", - "content": { - "type": "STRING", - "value": "<=" - } - }, - { - "type": "FIELD", - "name": "right", - "content": { - "type": "SYMBOL", - "name": "expression" - } - } - ] - } - }, - { - "type": "PREC_LEFT", - "value": "binary_equality", - "content": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "left", - "content": { - "type": "SYMBOL", - "name": "expression" - } - }, - { - "type": "FIELD", - "name": "operator", - "content": { - "type": "STRING", - "value": "==" - } - }, - { - "type": "FIELD", - "name": "right", - "content": { - "type": "SYMBOL", - "name": "expression" - } - } - ] - } - }, - { - "type": "PREC_LEFT", - "value": "binary_equality", - "content": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "left", - "content": { - "type": "SYMBOL", - "name": "expression" - } - }, - { - "type": "FIELD", - "name": "operator", - "content": { - "type": "STRING", - "value": "===" - } - }, - { - "type": "FIELD", - "name": "right", - "content": { - "type": "SYMBOL", - "name": "expression" - } - } - ] - } - }, - { - "type": "PREC_LEFT", - "value": "binary_equality", - "content": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "left", - "content": { - "type": "SYMBOL", - "name": "expression" - } - }, - { - "type": "FIELD", - "name": "operator", - "content": { - "type": "STRING", - "value": "!=" - } - }, - { - "type": "FIELD", - "name": "right", - "content": { - "type": "SYMBOL", - "name": "expression" - } - } - ] - } - }, - { - "type": "PREC_LEFT", - "value": "binary_equality", - "content": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "left", - "content": { - "type": "SYMBOL", - "name": "expression" - } - }, - { - "type": "FIELD", - "name": "operator", - "content": { - "type": "STRING", - "value": "!==" - } - }, - { - "type": "FIELD", - "name": "right", - "content": { - "type": "SYMBOL", - "name": "expression" - } - } - ] - } - }, - { - "type": "PREC_LEFT", - "value": "binary_relation", - "content": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "left", - "content": { - "type": "SYMBOL", - "name": "expression" - } - }, - { - "type": "FIELD", - "name": "operator", - "content": { - "type": "STRING", - "value": ">=" - } - }, - { - "type": "FIELD", - "name": "right", - "content": { - "type": "SYMBOL", - "name": "expression" - } - } - ] - } - }, - { - "type": "PREC_LEFT", - "value": "binary_relation", - "content": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "left", - "content": { - "type": "SYMBOL", - "name": "expression" - } - }, - { - "type": "FIELD", - "name": "operator", - "content": { - "type": "STRING", - "value": ">" - } - }, - { - "type": "FIELD", - "name": "right", - "content": { - "type": "SYMBOL", - "name": "expression" - } - } - ] - } - }, - { - "type": "PREC_LEFT", - "value": "ternary", - "content": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "left", - "content": { - "type": "SYMBOL", - "name": "expression" - } - }, - { - "type": "FIELD", - "name": "operator", - "content": { - "type": "STRING", - "value": "??" - } - }, - { - "type": "FIELD", - "name": "right", - "content": { - "type": "SYMBOL", - "name": "expression" - } - } - ] - } - }, - { - "type": "PREC_LEFT", - "value": "binary_relation", - "content": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "left", - "content": { - "type": "SYMBOL", - "name": "expression" - } - }, - { - "type": "FIELD", - "name": "operator", - "content": { - "type": "STRING", - "value": "instanceof" - } - }, - { - "type": "FIELD", - "name": "right", - "content": { - "type": "SYMBOL", - "name": "expression" - } - } - ] - } - }, - { - "type": "PREC_LEFT", - "value": "binary_relation", - "content": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "left", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "expression" - }, - { - "type": "SYMBOL", - "name": "private_property_identifier" - } - ] - } - }, - { - "type": "FIELD", - "name": "operator", - "content": { - "type": "STRING", - "value": "in" - } - }, - { - "type": "FIELD", - "name": "right", - "content": { - "type": "SYMBOL", - "name": "expression" - } - } - ] - } - } - ] - }, - "unary_expression": { - "type": "PREC_LEFT", - "value": "unary_void", - "content": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "operator", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "!" - }, - { - "type": "STRING", - "value": "~" - }, - { - "type": "STRING", - "value": "-" - }, - { - "type": "STRING", - "value": "+" - }, - { - "type": "STRING", - "value": "typeof" - }, - { - "type": "STRING", - "value": "void" - }, - { - "type": "STRING", - "value": "delete" - } - ] - } - }, - { - "type": "FIELD", - "name": "argument", - "content": { - "type": "SYMBOL", - "name": "expression" - } - } - ] - } - }, - "update_expression": { - "type": "PREC_LEFT", - "value": 0, - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "argument", - "content": { - "type": "SYMBOL", - "name": "expression" - } - }, - { - "type": "FIELD", - "name": "operator", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "++" - }, - { - "type": "STRING", - "value": "--" - } - ] - } - } - ] - }, - { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "operator", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "++" - }, - { - "type": "STRING", - "value": "--" - } - ] - } - }, - { - "type": "FIELD", - "name": "argument", - "content": { - "type": "SYMBOL", - "name": "expression" - } - } - ] - } - ] - } - }, - "sequence_expression": { - "type": "PREC_RIGHT", - "value": 0, - "content": { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "expression" - }, - { - "type": "REPEAT", - "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "," - }, - { - "type": "SYMBOL", - "name": "expression" - } - ] - } - } - ] - } - }, - "string": { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "\"" - }, - { - "type": "REPEAT", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "unescaped_double_string_fragment" - }, - "named": true, - "value": "string_fragment" - }, - { - "type": "SYMBOL", - "name": "escape_sequence" - } - ] - } - }, - { - "type": "STRING", - "value": "\"" - } - ] - }, - { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "'" - }, - { - "type": "REPEAT", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "unescaped_single_string_fragment" - }, - "named": true, - "value": "string_fragment" - }, - { - "type": "SYMBOL", - "name": "escape_sequence" - } - ] - } - }, - { - "type": "STRING", - "value": "'" - } - ] - } - ] - }, - "unescaped_double_string_fragment": { - "type": "IMMEDIATE_TOKEN", - "content": { - "type": "PREC", - "value": 1, - "content": { - "type": "PATTERN", - "value": "[^\"\\\\]+" - } - } - }, - "unescaped_single_string_fragment": { - "type": "IMMEDIATE_TOKEN", - "content": { - "type": "PREC", - "value": 1, - "content": { - "type": "PATTERN", - "value": "[^'\\\\]+" - } - } - }, - "escape_sequence": { - "type": "IMMEDIATE_TOKEN", - "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "\\" - }, - { - "type": "CHOICE", - "members": [ - { - "type": "PATTERN", - "value": "[^xu0-7]" - }, - { - "type": "PATTERN", - "value": "[0-7]{1,3}" - }, - { - "type": "PATTERN", - "value": "x[0-9a-fA-F]{2}" - }, - { - "type": "PATTERN", - "value": "u[0-9a-fA-F]{4}" - }, - { - "type": "PATTERN", - "value": "u{[0-9a-fA-F]+}" - }, - { - "type": "PATTERN", - "value": "[\\r?][\\n\\u2028\\u2029]" - } - ] - } - ] - } - }, - "comment": { - "type": "CHOICE", - "members": [ - { - "type": "TOKEN", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "//" - }, - { - "type": "PATTERN", - "value": ".*" - } - ] - }, - { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "/*" - }, - { - "type": "PATTERN", - "value": "[^*]*\\*+([^/*][^*]*\\*+)*" - }, - { - "type": "STRING", - "value": "/" - } - ] - } - ] - } - } - ] - }, - "template_string": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "`" - }, - { - "type": "REPEAT", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "_template_chars" - }, - "named": true, - "value": "string_fragment" - }, - { - "type": "SYMBOL", - "name": "escape_sequence" - }, - { - "type": "SYMBOL", - "name": "template_substitution" - } - ] - } - }, - { - "type": "STRING", - "value": "`" - } - ] - }, - "template_substitution": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "${" - }, - { - "type": "SYMBOL", - "name": "_expressions" - }, - { - "type": "STRING", - "value": "}" - } - ] - }, - "regex": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "/" - }, - { - "type": "FIELD", - "name": "pattern", - "content": { - "type": "SYMBOL", - "name": "regex_pattern" - } - }, - { - "type": "IMMEDIATE_TOKEN", - "content": { - "type": "STRING", - "value": "/" - } - }, - { - "type": "CHOICE", - "members": [ - { - "type": "FIELD", - "name": "flags", - "content": { - "type": "SYMBOL", - "name": "regex_flags" - } - }, - { - "type": "BLANK" - } - ] - } - ] - }, - "regex_pattern": { - "type": "IMMEDIATE_TOKEN", - "content": { - "type": "PREC", - "value": -1, - "content": { - "type": "REPEAT1", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "[" - }, - { - "type": "REPEAT", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "\\" - }, - { - "type": "PATTERN", - "value": "." - } - ] - }, - { - "type": "PATTERN", - "value": "[^\\]\\n\\\\]" - } - ] - } - }, - { - "type": "STRING", - "value": "]" - } - ] - }, - { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "\\" - }, - { - "type": "PATTERN", - "value": "." - } - ] - }, - { - "type": "PATTERN", - "value": "[^/\\\\\\[\\n]" - } - ] - } - } - } - }, - "regex_flags": { - "type": "IMMEDIATE_TOKEN", - "content": { - "type": "PATTERN", - "value": "[a-z]+" - } - }, - "number": { - "type": "TOKEN", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "0x" - }, - { - "type": "STRING", - "value": "0X" - } - ] - }, - { - "type": "PATTERN", - "value": "[\\da-fA-F](_?[\\da-fA-F])*" - } - ] - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "0" - }, - { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "0" - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "PATTERN", - "value": "[1-9]" - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "_" - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "PATTERN", - "value": "\\d(_?\\d)*" - } - ] - }, - { - "type": "BLANK" - } - ] - } - ] - } - ] - }, - { - "type": "STRING", - "value": "." - }, - { - "type": "CHOICE", - "members": [ - { - "type": "PATTERN", - "value": "\\d(_?\\d)*" - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "e" - }, - { - "type": "STRING", - "value": "E" - } - ] - }, - { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "-" - }, - { - "type": "STRING", - "value": "+" - } - ] - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "PATTERN", - "value": "\\d(_?\\d)*" - } - ] - } - ] - }, - { - "type": "BLANK" - } - ] - } - ] - }, - { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "." - }, - { - "type": "PATTERN", - "value": "\\d(_?\\d)*" - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "e" - }, - { - "type": "STRING", - "value": "E" - } - ] - }, - { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "-" - }, - { - "type": "STRING", - "value": "+" - } - ] - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "PATTERN", - "value": "\\d(_?\\d)*" - } - ] - } - ] - }, - { - "type": "BLANK" - } - ] - } - ] - }, - { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "0" - }, - { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "0" - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "PATTERN", - "value": "[1-9]" - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "_" - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "PATTERN", - "value": "\\d(_?\\d)*" - } - ] - }, - { - "type": "BLANK" - } - ] - } - ] - } - ] - }, - { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "e" - }, - { - "type": "STRING", - "value": "E" - } - ] - }, - { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "-" - }, - { - "type": "STRING", - "value": "+" - } - ] - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "PATTERN", - "value": "\\d(_?\\d)*" - } - ] - } - ] - } - ] - }, - { - "type": "SEQ", - "members": [ - { - "type": "PATTERN", - "value": "\\d(_?\\d)*" - } - ] - } - ] - }, - { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "0b" - }, - { - "type": "STRING", - "value": "0B" - } - ] - }, - { - "type": "PATTERN", - "value": "[0-1](_?[0-1])*" - } - ] - }, - { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "0o" - }, - { - "type": "STRING", - "value": "0O" - } - ] - }, - { - "type": "PATTERN", - "value": "[0-7](_?[0-7])*" - } - ] - }, - { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "0x" - }, - { - "type": "STRING", - "value": "0X" - } - ] - }, - { - "type": "PATTERN", - "value": "[\\da-fA-F](_?[\\da-fA-F])*" - } - ] - }, - { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "0b" - }, - { - "type": "STRING", - "value": "0B" - } - ] - }, - { - "type": "PATTERN", - "value": "[0-1](_?[0-1])*" - } - ] - }, - { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "0o" - }, - { - "type": "STRING", - "value": "0O" - } - ] - }, - { - "type": "PATTERN", - "value": "[0-7](_?[0-7])*" - } - ] - }, - { - "type": "PATTERN", - "value": "\\d(_?\\d)*" - } - ] - }, - { - "type": "STRING", - "value": "n" - } - ] - } - ] - } - }, - "_identifier": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "undefined" - }, - { - "type": "SYMBOL", - "name": "identifier" - } - ] - }, - "identifier": { - "type": "TOKEN", - "content": { - "type": "SEQ", - "members": [ - { - "type": "PATTERN", - "value": "[^\\x00-\\x1F\\s\\p{Zs}0-9:;`\"'@#.,|^&<=>+\\-*/\\\\%?!~()\\[\\]{}\\uFEFF\\u2060\\u200B]|\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]+\\}" - }, - { - "type": "REPEAT", - "content": { - "type": "PATTERN", - "value": "[^\\x00-\\x1F\\s\\p{Zs}:;`\"'@#.,|^&<=>+\\-*/\\\\%?!~()\\[\\]{}\\uFEFF\\u2060\\u200B]|\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]+\\}" - } - } - ] - } - }, - "private_property_identifier": { - "type": "TOKEN", - "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "#" - }, - { - "type": "PATTERN", - "value": "[^\\x00-\\x1F\\s\\p{Zs}0-9:;`\"'@#.,|^&<=>+\\-*/\\\\%?!~()\\[\\]{}\\uFEFF\\u2060\\u200B]|\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]+\\}" - }, - { - "type": "REPEAT", - "content": { - "type": "PATTERN", - "value": "[^\\x00-\\x1F\\s\\p{Zs}:;`\"'@#.,|^&<=>+\\-*/\\\\%?!~()\\[\\]{}\\uFEFF\\u2060\\u200B]|\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]+\\}" - } - } - ] - } - }, - "meta_property": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "new" - }, - { - "type": "STRING", - "value": "." - }, - { - "type": "STRING", - "value": "target" - } - ] - }, - "this": { - "type": "STRING", - "value": "this" - }, - "super": { - "type": "STRING", - "value": "super" - }, - "true": { - "type": "STRING", - "value": "true" - }, - "false": { - "type": "STRING", - "value": "false" - }, - "null": { - "type": "STRING", - "value": "null" - }, - "undefined": { - "type": "STRING", - "value": "undefined" - }, - "arguments": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "(" - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "expression" - }, - { - "type": "SYMBOL", - "name": "spread_element" - } - ] - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "REPEAT", - "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "," - }, - { - "type": "CHOICE", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "expression" - }, - { - "type": "SYMBOL", - "name": "spread_element" - } - ] - }, - { - "type": "BLANK" - } - ] - } - ] - } - } - ] - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "STRING", - "value": ")" - } - ] - }, - "decorator": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "@" - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "identifier" - }, - { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "decorator_member_expression" - }, - "named": true, - "value": "member_expression" - }, - { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "decorator_call_expression" - }, - "named": true, - "value": "call_expression" - } - ] - } - ] - }, - "decorator_member_expression": { - "type": "PREC", - "value": "member", - "content": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "object", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "identifier" - }, - { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "decorator_member_expression" - }, - "named": true, - "value": "member_expression" - } - ] - } - }, - { - "type": "STRING", - "value": "." - }, - { - "type": "FIELD", - "name": "property", - "content": { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "identifier" - }, - "named": true, - "value": "property_identifier" - } - } - ] - } - }, - "decorator_call_expression": { - "type": "PREC", - "value": "call", - "content": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "function", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "identifier" - }, - { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "decorator_member_expression" - }, - "named": true, - "value": "member_expression" - } - ] - } - }, - { - "type": "FIELD", - "name": "arguments", - "content": { - "type": "SYMBOL", - "name": "arguments" - } - } - ] - } - }, - "class_body": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "{" - }, - { - "type": "REPEAT", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "REPEAT", - "content": { - "type": "FIELD", - "name": "decorator", - "content": { - "type": "SYMBOL", - "name": "decorator" - } - } - }, - { - "type": "SYMBOL", - "name": "method_definition" - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "_semicolon" - }, - { - "type": "BLANK" - } - ] - } - ] - }, - { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "method_signature" - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "_function_signature_automatic_semicolon" - }, - { - "type": "STRING", - "value": "," - } - ] - } - ] - }, - { - "type": "SYMBOL", - "name": "class_static_block" - }, - { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "abstract_method_signature" - }, - { - "type": "SYMBOL", - "name": "index_signature" - }, - { - "type": "SYMBOL", - "name": "method_signature" - }, - { - "type": "SYMBOL", - "name": "public_field_definition" - } - ] - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "_semicolon" - }, - { - "type": "STRING", - "value": "," - } - ] - } - ] - }, - { - "type": "STRING", - "value": ";" - } - ] - } - }, - { - "type": "STRING", - "value": "}" - } - ] - }, - "field_definition": { - "type": "SEQ", - "members": [ - { - "type": "REPEAT", - "content": { - "type": "FIELD", - "name": "decorator", - "content": { - "type": "SYMBOL", - "name": "decorator" - } - } - }, - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "static" - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "FIELD", - "name": "property", - "content": { - "type": "SYMBOL", - "name": "_property_name" - } - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "_initializer" - }, - { - "type": "BLANK" - } - ] - } - ] - }, - "formal_parameters": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "(" - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "_formal_parameter" - }, - { - "type": "REPEAT", - "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "," - }, - { - "type": "SYMBOL", - "name": "_formal_parameter" - } - ] - } - } - ] - }, - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "," - }, - { - "type": "BLANK" - } - ] - } - ] - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "STRING", - "value": ")" - } - ] - }, - "class_static_block": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "static" - }, - { - "type": "FIELD", - "name": "body", - "content": { - "type": "SYMBOL", - "name": "statement_block" - } - } - ] - }, - "pattern": { - "type": "PREC_DYNAMIC", - "value": -1, - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "_lhs_expression" - }, - { - "type": "SYMBOL", - "name": "rest_pattern" - } - ] - } - }, - "rest_pattern": { - "type": "PREC_RIGHT", - "value": 0, - "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "..." - }, - { - "type": "SYMBOL", - "name": "_lhs_expression" - } - ] - } - }, - "method_definition": { - "type": "PREC_LEFT", - "value": 0, - "content": { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "accessibility_modifier" - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "static" - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "override_modifier" - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "readonly" - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "async" - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "CHOICE", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "get" - }, - { - "type": "STRING", - "value": "set" - }, - { - "type": "STRING", - "value": "*" - } - ] - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "FIELD", - "name": "name", - "content": { - "type": "SYMBOL", - "name": "_property_name" - } - }, - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "?" - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "SYMBOL", - "name": "_call_signature" - }, - { - "type": "FIELD", - "name": "body", - "content": { - "type": "SYMBOL", - "name": "statement_block" - } - } - ] - } - }, - "pair": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "key", - "content": { - "type": "SYMBOL", - "name": "_property_name" - } - }, - { - "type": "STRING", - "value": ":" - }, - { - "type": "FIELD", - "name": "value", - "content": { - "type": "SYMBOL", - "name": "expression" - } - } - ] - }, - "pair_pattern": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "key", - "content": { - "type": "SYMBOL", - "name": "_property_name" - } - }, - { - "type": "STRING", - "value": ":" - }, - { - "type": "FIELD", - "name": "value", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "pattern" - }, - { - "type": "SYMBOL", - "name": "assignment_pattern" - } - ] - } - } - ] - }, - "_property_name": { - "type": "CHOICE", - "members": [ - { - "type": "ALIAS", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "identifier" - }, - { - "type": "SYMBOL", - "name": "_reserved_identifier" - } - ] - }, - "named": true, - "value": "property_identifier" - }, - { - "type": "SYMBOL", - "name": "private_property_identifier" - }, - { - "type": "SYMBOL", - "name": "string" - }, - { - "type": "SYMBOL", - "name": "number" - }, - { - "type": "SYMBOL", - "name": "computed_property_name" - } - ] - }, - "computed_property_name": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "[" - }, - { - "type": "SYMBOL", - "name": "expression" - }, - { - "type": "STRING", - "value": "]" - } - ] - }, - "_reserved_identifier": { - "type": "CHOICE", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "declare" - }, - { - "type": "STRING", - "value": "namespace" - }, - { - "type": "STRING", - "value": "type" - }, - { - "type": "STRING", - "value": "public" - }, - { - "type": "STRING", - "value": "private" - }, - { - "type": "STRING", - "value": "protected" - }, - { - "type": "STRING", - "value": "override" - }, - { - "type": "STRING", - "value": "readonly" - }, - { - "type": "STRING", - "value": "module" - }, - { - "type": "STRING", - "value": "any" - }, - { - "type": "STRING", - "value": "number" - }, - { - "type": "STRING", - "value": "boolean" - }, - { - "type": "STRING", - "value": "string" - }, - { - "type": "STRING", - "value": "symbol" - }, - { - "type": "STRING", - "value": "export" - }, - { - "type": "STRING", - "value": "object" - }, - { - "type": "STRING", - "value": "new" - }, - { - "type": "STRING", - "value": "readonly" - }, - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "get" - }, - { - "type": "STRING", - "value": "set" - }, - { - "type": "STRING", - "value": "async" - }, - { - "type": "STRING", - "value": "static" - }, - { - "type": "STRING", - "value": "export" - }, - { - "type": "STRING", - "value": "let" - } - ] - } - ] - }, - { - "type": "STRING", - "value": "property" - }, - { - "type": "STRING", - "value": "signal" - }, - { - "type": "STRING", - "value": "readonly" - }, - { - "type": "STRING", - "value": "on" - }, - { - "type": "STRING", - "value": "required" - }, - { - "type": "STRING", - "value": "component" - }, - { - "type": "STRING", - "value": "from" - }, - { - "type": "STRING", - "value": "of" - } - ] - }, - "_semicolon": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "_automatic_semicolon" - }, - { - "type": "STRING", - "value": ";" - } - ] - }, - "public_field_definition": { - "type": "SEQ", - "members": [ - { - "type": "REPEAT", - "content": { - "type": "FIELD", - "name": "decorator", - "content": { - "type": "SYMBOL", - "name": "decorator" - } - } - }, - { - "type": "CHOICE", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "declare" - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "accessibility_modifier" - }, - { - "type": "BLANK" - } - ] - } - ] - }, - { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "accessibility_modifier" - }, - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "declare" - }, - { - "type": "BLANK" - } - ] - } - ] - } - ] - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "static" - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "override_modifier" - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "readonly" - }, - { - "type": "BLANK" - } - ] - } - ] - }, - { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "abstract" - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "readonly" - }, - { - "type": "BLANK" - } - ] - } - ] - }, - { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "readonly" - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "abstract" - }, - { - "type": "BLANK" - } - ] - } - ] - } - ] - }, - { - "type": "FIELD", - "name": "name", - "content": { - "type": "SYMBOL", - "name": "_property_name" - } - }, - { - "type": "CHOICE", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "?" - }, - { - "type": "STRING", - "value": "!" - } - ] - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "FIELD", - "name": "type", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "type_annotation" - }, - { - "type": "BLANK" - } - ] - } - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "_initializer" - }, - { - "type": "BLANK" - } - ] - } - ] - }, - "_jsx_start_opening_element": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "<" - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "FIELD", - "name": "name", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "_jsx_identifier" - }, - { - "type": "SYMBOL", - "name": "jsx_namespace_name" - } - ] - } - }, - { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "name", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "identifier" - }, - { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "nested_identifier" - }, - "named": true, - "value": "member_expression" - } - ] - } - }, - { - "type": "FIELD", - "name": "type_arguments", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "type_arguments" - }, - { - "type": "BLANK" - } - ] - } - } - ] - } - ] - }, - { - "type": "REPEAT", - "content": { - "type": "FIELD", - "name": "attribute", - "content": { - "type": "SYMBOL", - "name": "_jsx_attribute" - } - } - } - ] - }, - { - "type": "BLANK" - } - ] - } - ] - }, - "_import_identifier": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "identifier" - }, - { - "type": "ALIAS", - "content": { - "type": "STRING", - "value": "type" - }, - "named": true, - "value": "identifier" - } - ] - }, - "non_null_expression": { - "type": "PREC_LEFT", - "value": "unary", - "content": { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "expression" - }, - { - "type": "STRING", - "value": "!" - } - ] - } - }, - "method_signature": { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "accessibility_modifier" - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "static" - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "override_modifier" - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "readonly" - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "async" - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "CHOICE", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "get" - }, - { - "type": "STRING", - "value": "set" - }, - { - "type": "STRING", - "value": "*" - } - ] - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "FIELD", - "name": "name", - "content": { - "type": "SYMBOL", - "name": "_property_name" - } - }, - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "?" - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "SYMBOL", - "name": "_call_signature" - } - ] - }, - "abstract_method_signature": { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "accessibility_modifier" - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "STRING", - "value": "abstract" - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "override_modifier" - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "CHOICE", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "get" - }, - { - "type": "STRING", - "value": "set" - }, - { - "type": "STRING", - "value": "*" - } - ] - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "FIELD", - "name": "name", - "content": { - "type": "SYMBOL", - "name": "_property_name" - } - }, - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "?" - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "SYMBOL", - "name": "_call_signature" - } - ] - }, - "function_signature": { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "async" - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "STRING", - "value": "function" - }, - { - "type": "FIELD", - "name": "name", - "content": { - "type": "SYMBOL", - "name": "identifier" - } - }, - { - "type": "SYMBOL", - "name": "_call_signature" - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "_semicolon" - }, - { - "type": "SYMBOL", - "name": "_function_signature_automatic_semicolon" - } - ] - } - ] - }, - "type_assertion": { - "type": "PREC_LEFT", - "value": "unary", - "content": { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "type_arguments" - }, - { - "type": "SYMBOL", - "name": "expression" - } - ] - } - }, - "as_expression": { - "type": "PREC_LEFT", - "value": "binary", - "content": { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "expression" - }, - { - "type": "STRING", - "value": "as" - }, - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "const" - }, - { - "type": "SYMBOL", - "name": "_type" - } - ] - } - ] - } - }, - "satisfies_expression": { - "type": "PREC_LEFT", - "value": "binary", - "content": { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "expression" - }, - { - "type": "STRING", - "value": "satisfies" - }, - { - "type": "SYMBOL", - "name": "_type" - } - ] - } - }, - "instantiation_expression": { - "type": "PREC", - "value": "instantiation", - "content": { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "expression" - }, - { - "type": "FIELD", - "name": "type_arguments", - "content": { - "type": "SYMBOL", - "name": "type_arguments" - } - } - ] - } - }, - "import_require_clause": { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "identifier" - }, - { - "type": "STRING", - "value": "=" - }, - { - "type": "STRING", - "value": "require" - }, - { - "type": "STRING", - "value": "(" - }, - { - "type": "FIELD", - "name": "source", - "content": { - "type": "SYMBOL", - "name": "string" - } - }, - { - "type": "STRING", - "value": ")" - } - ] - }, - "extends_clause": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "extends" - }, - { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "_extends_clause_single" - }, - { - "type": "REPEAT", - "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "," - }, - { - "type": "SYMBOL", - "name": "_extends_clause_single" - } - ] - } - } - ] - } - ] - }, - "_extends_clause_single": { - "type": "PREC", - "value": "extends", - "content": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "value", - "content": { - "type": "SYMBOL", - "name": "expression" - } - }, - { - "type": "FIELD", - "name": "type_arguments", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "type_arguments" - }, - { - "type": "BLANK" - } - ] - } - } - ] - } - }, - "implements_clause": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "implements" - }, - { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "_type" - }, - { - "type": "REPEAT", - "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "," - }, - { - "type": "SYMBOL", - "name": "_type" - } - ] - } - } - ] - } - ] - }, - "ambient_declaration": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "declare" - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "declaration" - }, - { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "global" - }, - { - "type": "SYMBOL", - "name": "statement_block" - } - ] - }, - { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "module" - }, - { - "type": "STRING", - "value": "." - }, - { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "identifier" - }, - "named": true, - "value": "property_identifier" - }, - { - "type": "STRING", - "value": ":" - }, - { - "type": "SYMBOL", - "name": "_type" - }, - { - "type": "SYMBOL", - "name": "_semicolon" - } - ] - } - ] - } - ] - }, - "abstract_class_declaration": { - "type": "PREC", - "value": "declaration", - "content": { - "type": "SEQ", - "members": [ - { - "type": "REPEAT", - "content": { - "type": "FIELD", - "name": "decorator", - "content": { - "type": "SYMBOL", - "name": "decorator" - } - } - }, - { - "type": "STRING", - "value": "abstract" - }, - { - "type": "STRING", - "value": "class" - }, - { - "type": "FIELD", - "name": "name", - "content": { - "type": "SYMBOL", - "name": "_type_identifier" - } - }, - { - "type": "FIELD", - "name": "type_parameters", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "type_parameters" - }, - { - "type": "BLANK" - } - ] - } - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "class_heritage" - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "FIELD", - "name": "body", - "content": { - "type": "SYMBOL", - "name": "class_body" - } - } - ] - } - }, - "module": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "module" - }, - { - "type": "SYMBOL", - "name": "_module" - } - ] - }, - "internal_module": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "namespace" - }, - { - "type": "SYMBOL", - "name": "_module" - } - ] - }, - "_module": { - "type": "PREC_RIGHT", - "value": 0, - "content": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "name", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "string" - }, - { - "type": "SYMBOL", - "name": "identifier" - }, - { - "type": "SYMBOL", - "name": "nested_identifier" - } - ] - } - }, - { - "type": "FIELD", - "name": "body", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "statement_block" - }, - { - "type": "BLANK" - } - ] - } - } - ] - } - }, - "import_alias": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "import" - }, - { - "type": "SYMBOL", - "name": "identifier" - }, - { - "type": "STRING", - "value": "=" - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "identifier" - }, - { - "type": "SYMBOL", - "name": "nested_identifier" - } - ] - }, - { - "type": "SYMBOL", - "name": "_semicolon" - } - ] - }, - "nested_type_identifier": { - "type": "PREC", - "value": "member", - "content": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "module", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "identifier" - }, - { - "type": "SYMBOL", - "name": "nested_identifier" - } - ] - } - }, - { - "type": "STRING", - "value": "." - }, - { - "type": "FIELD", - "name": "name", - "content": { - "type": "SYMBOL", - "name": "_type_identifier" - } - } - ] - } - }, - "interface_declaration": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "interface" - }, - { - "type": "FIELD", - "name": "name", - "content": { - "type": "SYMBOL", - "name": "_type_identifier" - } - }, - { - "type": "FIELD", - "name": "type_parameters", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "type_parameters" - }, - { - "type": "BLANK" - } - ] - } - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "extends_type_clause" - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "FIELD", - "name": "body", - "content": { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "object_type" - }, - "named": true, - "value": "interface_body" - } - } - ] - }, - "extends_type_clause": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "extends" - }, - { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "type", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "_type_identifier" - }, - { - "type": "SYMBOL", - "name": "nested_type_identifier" - }, - { - "type": "SYMBOL", - "name": "generic_type" - } - ] - } - }, - { - "type": "REPEAT", - "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "," - }, - { - "type": "FIELD", - "name": "type", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "_type_identifier" - }, - { - "type": "SYMBOL", - "name": "nested_type_identifier" - }, - { - "type": "SYMBOL", - "name": "generic_type" - } - ] - } - } - ] - } - } - ] - } - ] - }, - "enum_declaration": { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "const" - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "STRING", - "value": "enum" - }, - { - "type": "FIELD", - "name": "name", - "content": { - "type": "SYMBOL", - "name": "identifier" - } - }, - { - "type": "FIELD", - "name": "body", - "content": { - "type": "SYMBOL", - "name": "enum_body" - } - } - ] - }, - "enum_body": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "{" - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "FIELD", - "name": "name", - "content": { - "type": "SYMBOL", - "name": "_property_name" - } - }, - { - "type": "SYMBOL", - "name": "enum_assignment" - } - ] - }, - { - "type": "REPEAT", - "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "," - }, - { - "type": "CHOICE", - "members": [ - { - "type": "FIELD", - "name": "name", - "content": { - "type": "SYMBOL", - "name": "_property_name" - } - }, - { - "type": "SYMBOL", - "name": "enum_assignment" - } - ] - } - ] - } - } - ] - }, - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "," - }, - { - "type": "BLANK" - } - ] - } - ] - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "STRING", - "value": "}" - } - ] - }, - "enum_assignment": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "name", - "content": { - "type": "SYMBOL", - "name": "_property_name" - } - }, - { - "type": "SYMBOL", - "name": "_initializer" - } - ] - }, - "type_alias_declaration": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "type" - }, - { - "type": "FIELD", - "name": "name", - "content": { - "type": "SYMBOL", - "name": "_type_identifier" - } - }, - { - "type": "FIELD", - "name": "type_parameters", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "type_parameters" - }, - { - "type": "BLANK" - } - ] - } - }, - { - "type": "STRING", - "value": "=" - }, - { - "type": "FIELD", - "name": "value", - "content": { - "type": "SYMBOL", - "name": "_type" - } - }, - { - "type": "SYMBOL", - "name": "_semicolon" - } - ] - }, - "accessibility_modifier": { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "public" - }, - { - "type": "STRING", - "value": "private" - }, - { - "type": "STRING", - "value": "protected" - } - ] - }, - "override_modifier": { - "type": "STRING", - "value": "override" - }, - "required_parameter": { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "_parameter_name" - }, - { - "type": "FIELD", - "name": "type", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "type_annotation" - }, - { - "type": "BLANK" - } - ] - } - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "_initializer" - }, - { - "type": "BLANK" - } - ] - } - ] - }, - "optional_parameter": { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "_parameter_name" - }, - { - "type": "STRING", - "value": "?" - }, - { - "type": "FIELD", - "name": "type", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "type_annotation" - }, - { - "type": "BLANK" - } - ] - } - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "_initializer" - }, - { - "type": "BLANK" - } - ] - } - ] - }, - "_parameter_name": { - "type": "SEQ", - "members": [ - { - "type": "REPEAT", - "content": { - "type": "FIELD", - "name": "decorator", - "content": { - "type": "SYMBOL", - "name": "decorator" - } - } - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "accessibility_modifier" - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "override_modifier" - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "readonly" - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "FIELD", - "name": "pattern", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "pattern" - }, - { - "type": "SYMBOL", - "name": "this" - } - ] - } - } - ] - }, - "omitting_type_annotation": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "-?:" - }, - { - "type": "SYMBOL", - "name": "_type" - } - ] - }, - "adding_type_annotation": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "+?:" - }, - { - "type": "SYMBOL", - "name": "_type" - } - ] - }, - "opting_type_annotation": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "?:" - }, - { - "type": "SYMBOL", - "name": "_type" - } - ] - }, - "type_annotation": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": ":" - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "_type" - }, - { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "_type_query_member_expression_in_type_annotation" - }, - "named": true, - "value": "member_expression" - }, - { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "_type_query_call_expression_in_type_annotation" - }, - "named": true, - "value": "call_expression" - } - ] - } - ] - }, - "_type_query_member_expression_in_type_annotation": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "object", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "import" - }, - { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "_type_query_member_expression_in_type_annotation" - }, - "named": true, - "value": "member_expression" - }, - { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "_type_query_call_expression_in_type_annotation" - }, - "named": true, - "value": "call_expression" - } - ] - } - }, - { - "type": "STRING", - "value": "." - }, - { - "type": "FIELD", - "name": "property", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "private_property_identifier" - }, - { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "identifier" - }, - "named": true, - "value": "property_identifier" - } - ] - } - } - ] - }, - "_type_query_call_expression_in_type_annotation": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "function", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "import" - }, - { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "_type_query_member_expression_in_type_annotation" - }, - "named": true, - "value": "member_expression" - } - ] - } - }, - { - "type": "FIELD", - "name": "arguments", - "content": { - "type": "SYMBOL", - "name": "arguments" - } - } - ] - }, - "asserts": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "asserts" - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "type_predicate" - }, - { - "type": "SYMBOL", - "name": "identifier" - }, - { - "type": "SYMBOL", - "name": "this" - } - ] - } - ] - }, - "asserts_annotation": { - "type": "SEQ", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": ":" - }, - { - "type": "SYMBOL", - "name": "asserts" - } - ] - } - ] - }, - "_type": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "_primary_type" - }, - { - "type": "SYMBOL", - "name": "function_type" - }, - { - "type": "SYMBOL", - "name": "readonly_type" - }, - { - "type": "SYMBOL", - "name": "constructor_type" - }, - { - "type": "SYMBOL", - "name": "infer_type" - } - ] - }, - "tuple_parameter": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "name", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "identifier" - }, - { - "type": "SYMBOL", - "name": "rest_pattern" - } - ] - } - }, - { - "type": "FIELD", - "name": "type", - "content": { - "type": "SYMBOL", - "name": "type_annotation" - } - } - ] - }, - "optional_tuple_parameter": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "name", - "content": { - "type": "SYMBOL", - "name": "identifier" - } - }, - { - "type": "STRING", - "value": "?" - }, - { - "type": "FIELD", - "name": "type", - "content": { - "type": "SYMBOL", - "name": "type_annotation" - } - } - ] - }, - "optional_type": { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "_type" - }, - { - "type": "STRING", - "value": "?" - } - ] - }, - "rest_type": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "..." - }, - { - "type": "SYMBOL", - "name": "_type" - } - ] - }, - "_tuple_type_member": { - "type": "CHOICE", - "members": [ - { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "tuple_parameter" - }, - "named": true, - "value": "required_parameter" - }, - { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "optional_tuple_parameter" - }, - "named": true, - "value": "optional_parameter" - }, - { - "type": "SYMBOL", - "name": "optional_type" - }, - { - "type": "SYMBOL", - "name": "rest_type" - }, - { - "type": "SYMBOL", - "name": "_type" - } - ] - }, - "constructor_type": { - "type": "PREC_LEFT", - "value": 0, - "content": { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "abstract" - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "STRING", - "value": "new" - }, - { - "type": "FIELD", - "name": "type_parameters", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "type_parameters" - }, - { - "type": "BLANK" - } - ] - } - }, - { - "type": "FIELD", - "name": "parameters", - "content": { - "type": "SYMBOL", - "name": "formal_parameters" - } - }, - { - "type": "STRING", - "value": "=>" - }, - { - "type": "FIELD", - "name": "type", - "content": { - "type": "SYMBOL", - "name": "_type" - } - } - ] - } - }, - "_primary_type": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "parenthesized_type" - }, - { - "type": "SYMBOL", - "name": "predefined_type" - }, - { - "type": "SYMBOL", - "name": "_type_identifier" - }, - { - "type": "SYMBOL", - "name": "nested_type_identifier" - }, - { - "type": "SYMBOL", - "name": "generic_type" - }, - { - "type": "SYMBOL", - "name": "object_type" - }, - { - "type": "SYMBOL", - "name": "array_type" - }, - { - "type": "SYMBOL", - "name": "tuple_type" - }, - { - "type": "SYMBOL", - "name": "flow_maybe_type" - }, - { - "type": "SYMBOL", - "name": "type_query" - }, - { - "type": "SYMBOL", - "name": "index_type_query" - }, - { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "this" - }, - "named": true, - "value": "this_type" - }, - { - "type": "SYMBOL", - "name": "existential_type" - }, - { - "type": "SYMBOL", - "name": "literal_type" - }, - { - "type": "SYMBOL", - "name": "lookup_type" - }, - { - "type": "SYMBOL", - "name": "conditional_type" - }, - { - "type": "SYMBOL", - "name": "template_literal_type" - }, - { - "type": "SYMBOL", - "name": "intersection_type" - }, - { - "type": "SYMBOL", - "name": "union_type" - }, - { - "type": "STRING", - "value": "const" - } - ] - }, - "template_type": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "${" - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "_primary_type" - }, - { - "type": "SYMBOL", - "name": "infer_type" - } - ] - }, - { - "type": "STRING", - "value": "}" - } - ] - }, - "template_literal_type": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "`" - }, - { - "type": "REPEAT", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "_template_chars" - }, - { - "type": "SYMBOL", - "name": "template_type" - } - ] - } - }, - { - "type": "STRING", - "value": "`" - } - ] - }, - "infer_type": { - "type": "PREC_RIGHT", - "value": 0, - "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "infer" - }, - { - "type": "SYMBOL", - "name": "_type_identifier" - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "extends" - }, - { - "type": "SYMBOL", - "name": "_type" - } - ] - }, - { - "type": "BLANK" - } - ] - } - ] - } - }, - "conditional_type": { - "type": "PREC_RIGHT", - "value": 0, - "content": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "left", - "content": { - "type": "SYMBOL", - "name": "_type" - } - }, - { - "type": "STRING", - "value": "extends" - }, - { - "type": "FIELD", - "name": "right", - "content": { - "type": "SYMBOL", - "name": "_type" - } - }, - { - "type": "STRING", - "value": "?" - }, - { - "type": "FIELD", - "name": "consequence", - "content": { - "type": "SYMBOL", - "name": "_type" - } - }, - { - "type": "STRING", - "value": ":" - }, - { - "type": "FIELD", - "name": "alternative", - "content": { - "type": "SYMBOL", - "name": "_type" - } - } - ] - } - }, - "generic_type": { - "type": "PREC", - "value": "call", - "content": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "name", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "_type_identifier" - }, - { - "type": "SYMBOL", - "name": "nested_type_identifier" - } - ] - } - }, - { - "type": "FIELD", - "name": "type_arguments", - "content": { - "type": "SYMBOL", - "name": "type_arguments" - } - } - ] - } - }, - "type_predicate": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "name", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "identifier" - }, - { - "type": "SYMBOL", - "name": "this" - }, - { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "predefined_type" - }, - "named": true, - "value": "identifier" - } - ] - } - }, - { - "type": "STRING", - "value": "is" - }, - { - "type": "FIELD", - "name": "type", - "content": { - "type": "SYMBOL", - "name": "_type" - } - } - ] - }, - "type_predicate_annotation": { - "type": "SEQ", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": ":" - }, - { - "type": "SYMBOL", - "name": "type_predicate" - } - ] - } - ] - }, - "_type_query_member_expression": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "object", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "identifier" - }, - { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "_type_query_subscript_expression" - }, - "named": true, - "value": "subscript_expression" - }, - { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "_type_query_member_expression" - }, - "named": true, - "value": "member_expression" - }, - { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "_type_query_call_expression" - }, - "named": true, - "value": "call_expression" - } - ] - } - }, - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "." - }, - { - "type": "STRING", - "value": "?." - } - ] - }, - { - "type": "FIELD", - "name": "property", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "private_property_identifier" - }, - { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "identifier" - }, - "named": true, - "value": "property_identifier" - } - ] - } - } - ] - }, - "_type_query_subscript_expression": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "object", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "identifier" - }, - { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "_type_query_subscript_expression" - }, - "named": true, - "value": "subscript_expression" - }, - { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "_type_query_member_expression" - }, - "named": true, - "value": "member_expression" - }, - { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "_type_query_call_expression" - }, - "named": true, - "value": "call_expression" - } - ] - } - }, - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "?." - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "STRING", - "value": "[" - }, - { - "type": "FIELD", - "name": "index", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "predefined_type" - }, - { - "type": "SYMBOL", - "name": "string" - }, - { - "type": "SYMBOL", - "name": "number" - } - ] - } - }, - { - "type": "STRING", - "value": "]" - } - ] - }, - "_type_query_call_expression": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "function", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "import" - }, - { - "type": "SYMBOL", - "name": "identifier" - }, - { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "_type_query_member_expression" - }, - "named": true, - "value": "member_expression" - }, - { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "_type_query_subscript_expression" - }, - "named": true, - "value": "subscript_expression" - } - ] - } - }, - { - "type": "FIELD", - "name": "arguments", - "content": { - "type": "SYMBOL", - "name": "arguments" - } - } - ] - }, - "_type_query_instantiation_expression": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "function", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "import" - }, - { - "type": "SYMBOL", - "name": "identifier" - }, - { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "_type_query_member_expression" - }, - "named": true, - "value": "member_expression" - }, - { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "_type_query_subscript_expression" - }, - "named": true, - "value": "subscript_expression" - } - ] - } - }, - { - "type": "FIELD", - "name": "type_arguments", - "content": { - "type": "SYMBOL", - "name": "type_arguments" - } - } - ] - }, - "type_query": { - "type": "PREC_RIGHT", - "value": 0, - "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "typeof" - }, - { - "type": "CHOICE", - "members": [ - { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "_type_query_subscript_expression" - }, - "named": true, - "value": "subscript_expression" - }, - { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "_type_query_member_expression" - }, - "named": true, - "value": "member_expression" - }, - { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "_type_query_call_expression" - }, - "named": true, - "value": "call_expression" - }, - { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "_type_query_instantiation_expression" - }, - "named": true, - "value": "instantiation_expression" - }, - { - "type": "SYMBOL", - "name": "identifier" - } - ] - } - ] - } - }, - "index_type_query": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "keyof" - }, - { - "type": "SYMBOL", - "name": "_primary_type" - } - ] - }, - "lookup_type": { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "_primary_type" - }, - { - "type": "STRING", - "value": "[" - }, - { - "type": "SYMBOL", - "name": "_type" - }, - { - "type": "STRING", - "value": "]" - } - ] - }, - "mapped_type_clause": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "name", - "content": { - "type": "SYMBOL", - "name": "_type_identifier" - } - }, - { - "type": "STRING", - "value": "in" - }, - { - "type": "FIELD", - "name": "type", - "content": { - "type": "SYMBOL", - "name": "_type" - } - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "as" - }, - { - "type": "FIELD", - "name": "alias", - "content": { - "type": "SYMBOL", - "name": "_type" - } - } - ] - }, - { - "type": "BLANK" - } - ] - } - ] - }, - "literal_type": { - "type": "CHOICE", - "members": [ - { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "_number" - }, - "named": true, - "value": "unary_expression" - }, - { - "type": "SYMBOL", - "name": "number" - }, - { - "type": "SYMBOL", - "name": "string" - }, - { - "type": "SYMBOL", - "name": "true" - }, - { - "type": "SYMBOL", - "name": "false" - }, - { - "type": "SYMBOL", - "name": "null" - }, - { - "type": "SYMBOL", - "name": "undefined" - } - ] - }, - "_number": { - "type": "PREC_LEFT", - "value": 1, - "content": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "operator", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "-" - }, - { - "type": "STRING", - "value": "+" - } - ] - } - }, - { - "type": "FIELD", - "name": "argument", - "content": { - "type": "SYMBOL", - "name": "number" - } - } - ] - } - }, - "existential_type": { - "type": "STRING", - "value": "*" - }, - "flow_maybe_type": { - "type": "PREC_RIGHT", - "value": 0, - "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "?" - }, - { - "type": "SYMBOL", - "name": "_primary_type" - } - ] - } - }, - "parenthesized_type": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "(" - }, - { - "type": "SYMBOL", - "name": "_type" - }, - { - "type": "STRING", - "value": ")" - } - ] - }, - "predefined_type": { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "any" - }, - { - "type": "STRING", - "value": "number" - }, - { - "type": "STRING", - "value": "boolean" - }, - { - "type": "STRING", - "value": "string" - }, - { - "type": "STRING", - "value": "symbol" - }, - { - "type": "ALIAS", - "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "unique" - }, - { - "type": "STRING", - "value": "symbol" - } - ] - }, - "named": false, - "value": "unique symbol" - }, - { - "type": "STRING", - "value": "void" - }, - { - "type": "STRING", - "value": "unknown" - }, - { - "type": "STRING", - "value": "string" - }, - { - "type": "STRING", - "value": "never" - }, - { - "type": "STRING", - "value": "object" - } - ] - }, - "type_arguments": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "<" - }, - { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "_type" - }, - { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "_type_query_member_expression_in_type_annotation" - }, - "named": true, - "value": "member_expression" - }, - { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "_type_query_call_expression_in_type_annotation" - }, - "named": true, - "value": "call_expression" - } - ] - }, - { - "type": "REPEAT", - "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "," - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "_type" - }, - { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "_type_query_member_expression_in_type_annotation" - }, - "named": true, - "value": "member_expression" - }, - { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "_type_query_call_expression_in_type_annotation" - }, - "named": true, - "value": "call_expression" - } - ] - } - ] - } - } - ] - }, - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "," - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "STRING", - "value": ">" - } - ] - }, - "object_type": { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "{" - }, - { - "type": "STRING", - "value": "{|" - } - ] - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "," - }, - { - "type": "STRING", - "value": ";" - } - ] - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "export_statement" - }, - { - "type": "SYMBOL", - "name": "property_signature" - }, - { - "type": "SYMBOL", - "name": "call_signature" - }, - { - "type": "SYMBOL", - "name": "construct_signature" - }, - { - "type": "SYMBOL", - "name": "index_signature" - }, - { - "type": "SYMBOL", - "name": "method_signature" - } - ] - }, - { - "type": "REPEAT", - "content": { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "," - }, - { - "type": "SYMBOL", - "name": "_semicolon" - } - ] - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "export_statement" - }, - { - "type": "SYMBOL", - "name": "property_signature" - }, - { - "type": "SYMBOL", - "name": "call_signature" - }, - { - "type": "SYMBOL", - "name": "construct_signature" - }, - { - "type": "SYMBOL", - "name": "index_signature" - }, - { - "type": "SYMBOL", - "name": "method_signature" - } - ] - } - ] - } - } - ] - }, - { - "type": "CHOICE", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "," - }, - { - "type": "SYMBOL", - "name": "_semicolon" - } - ] - }, - { - "type": "BLANK" - } - ] - } - ] - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "}" - }, - { - "type": "STRING", - "value": "|}" - } - ] - } - ] - }, - "call_signature": { - "type": "SYMBOL", - "name": "_call_signature" - }, - "property_signature": { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "accessibility_modifier" - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "static" - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "override_modifier" - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "readonly" - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "FIELD", - "name": "name", - "content": { - "type": "SYMBOL", - "name": "_property_name" - } - }, - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "?" - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "FIELD", - "name": "type", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "type_annotation" - }, - { - "type": "BLANK" - } - ] - } - } - ] - }, - "type_parameters": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "<" - }, - { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "type_parameter" - }, - { - "type": "REPEAT", - "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "," - }, - { - "type": "SYMBOL", - "name": "type_parameter" - } - ] - } - } - ] - }, - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "," - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "STRING", - "value": ">" - } - ] - }, - "type_parameter": { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "const" - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "FIELD", - "name": "name", - "content": { - "type": "SYMBOL", - "name": "_type_identifier" - } - }, - { - "type": "FIELD", - "name": "constraint", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "constraint" - }, - { - "type": "BLANK" - } - ] - } - }, - { - "type": "FIELD", - "name": "value", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "default_type" - }, - { - "type": "BLANK" - } - ] - } - } - ] - }, - "default_type": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "=" - }, - { - "type": "SYMBOL", - "name": "_type" - } - ] - }, - "constraint": { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "extends" - }, - { - "type": "STRING", - "value": ":" - } - ] - }, - { - "type": "SYMBOL", - "name": "_type" - } - ] - }, - "construct_signature": { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "abstract" - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "STRING", - "value": "new" - }, - { - "type": "FIELD", - "name": "type_parameters", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "type_parameters" - }, - { - "type": "BLANK" - } - ] - } - }, - { - "type": "FIELD", - "name": "parameters", - "content": { - "type": "SYMBOL", - "name": "formal_parameters" - } - }, - { - "type": "FIELD", - "name": "type", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "type_annotation" - }, - { - "type": "BLANK" - } - ] - } - } - ] - }, - "index_signature": { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "sign", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "-" - }, - { - "type": "STRING", - "value": "+" - } - ] - }, - { - "type": "BLANK" - } - ] - } - }, - { - "type": "STRING", - "value": "readonly" - } - ] - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "STRING", - "value": "[" - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "name", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "identifier" - }, - { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "_reserved_identifier" - }, - "named": true, - "value": "identifier" - } - ] - } - }, - { - "type": "STRING", - "value": ":" - }, - { - "type": "FIELD", - "name": "index_type", - "content": { - "type": "SYMBOL", - "name": "_type" - } - } - ] - }, - { - "type": "SYMBOL", - "name": "mapped_type_clause" - } - ] - }, - { - "type": "STRING", - "value": "]" - }, - { - "type": "FIELD", - "name": "type", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "type_annotation" - }, - { - "type": "SYMBOL", - "name": "omitting_type_annotation" - }, - { - "type": "SYMBOL", - "name": "adding_type_annotation" - }, - { - "type": "SYMBOL", - "name": "opting_type_annotation" - } - ] - } - } - ] - }, - "array_type": { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "_primary_type" - }, - { - "type": "STRING", - "value": "[" - }, - { - "type": "STRING", - "value": "]" - } - ] - }, - "tuple_type": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "[" - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "_tuple_type_member" - }, - { - "type": "REPEAT", - "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "," - }, - { - "type": "SYMBOL", - "name": "_tuple_type_member" - } - ] - } - } - ] - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "," - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "STRING", - "value": "]" - } - ] - }, - "readonly_type": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "readonly" - }, - { - "type": "SYMBOL", - "name": "_type" - } - ] - }, - "union_type": { - "type": "PREC_LEFT", - "value": 0, - "content": { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "_type" - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "STRING", - "value": "|" - }, - { - "type": "SYMBOL", - "name": "_type" - } - ] - } - }, - "intersection_type": { - "type": "PREC_LEFT", - "value": 0, - "content": { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "_type" - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "STRING", - "value": "&" - }, - { - "type": "SYMBOL", - "name": "_type" - } - ] - } - }, - "function_type": { - "type": "PREC_LEFT", - "value": 0, - "content": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "type_parameters", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "type_parameters" - }, - { - "type": "BLANK" - } - ] - } - }, - { - "type": "FIELD", - "name": "parameters", - "content": { - "type": "SYMBOL", - "name": "formal_parameters" - } - }, - { - "type": "STRING", - "value": "=>" - }, - { - "type": "FIELD", - "name": "return_type", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "_type" - }, - { - "type": "SYMBOL", - "name": "asserts" - }, - { - "type": "SYMBOL", - "name": "type_predicate" - } - ] - } - } - ] - } - }, - "_type_identifier": { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "identifier" - }, - "named": true, - "value": "type_identifier" - }, - "ui_pragma": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "pragma" - }, - { - "type": "FIELD", - "name": "name", - "content": { - "type": "SYMBOL", - "name": "identifier" - } - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": ":" - }, - { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "value", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "identifier" - }, - { - "type": "SYMBOL", - "name": "string" - } - ] - } - }, - { - "type": "REPEAT", - "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "," - }, - { - "type": "FIELD", - "name": "value", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "identifier" - }, - { - "type": "SYMBOL", - "name": "string" - } - ] - } - } - ] - } - } - ] - } - ] - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "SYMBOL", - "name": "_semicolon" - } - ] - }, - "ui_import": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "import" - }, - { - "type": "FIELD", - "name": "source", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "string" - }, - { - "type": "SYMBOL", - "name": "_ui_qualified_id" - } - ] - } - }, - { - "type": "CHOICE", - "members": [ - { - "type": "FIELD", - "name": "version", - "content": { - "type": "SYMBOL", - "name": "ui_version_specifier" - } - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "as" - }, - { - "type": "FIELD", - "name": "alias", - "content": { - "type": "SYMBOL", - "name": "identifier" - } - } - ] - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "SYMBOL", - "name": "_semicolon" - } - ] - }, - "ui_version_specifier": { - "type": "CHOICE", - "members": [ - { - "type": "FIELD", - "name": "major", - "content": { - "type": "ALIAS", - "content": { - "type": "PATTERN", - "value": "\\d+" - }, - "named": true, - "value": "number" - } - }, - { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "major", - "content": { - "type": "ALIAS", - "content": { - "type": "PATTERN", - "value": "\\d+" - }, - "named": true, - "value": "number" - } - }, - { - "type": "STRING", - "value": "." - }, - { - "type": "FIELD", - "name": "minor", - "content": { - "type": "ALIAS", - "content": { - "type": "PATTERN", - "value": "\\d+" - }, - "named": true, - "value": "number" - } - } - ] - } - ] - }, - "_ui_root_member": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "ui_object_definition" - }, - { - "type": "SYMBOL", - "name": "ui_annotated_object" - } - ] - }, - "ui_object_definition": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "type_name", - "content": { - "type": "SYMBOL", - "name": "_ui_qualified_id" - } - }, - { - "type": "FIELD", - "name": "initializer", - "content": { - "type": "SYMBOL", - "name": "ui_object_initializer" - } - } - ] - }, - "ui_annotated_object": { - "type": "SEQ", - "members": [ - { - "type": "REPEAT1", - "content": { - "type": "FIELD", - "name": "annotation", - "content": { - "type": "SYMBOL", - "name": "ui_annotation" - } - } - }, - { - "type": "FIELD", - "name": "definition", - "content": { - "type": "SYMBOL", - "name": "ui_object_definition" - } - } - ] - }, - "ui_annotation": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "@" - }, - { - "type": "FIELD", - "name": "type_name", - "content": { - "type": "SYMBOL", - "name": "_ui_simple_qualified_id" - } - }, - { - "type": "FIELD", - "name": "initializer", - "content": { - "type": "SYMBOL", - "name": "ui_object_initializer" - } - } - ] - }, - "ui_object_initializer": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "{" - }, - { - "type": "REPEAT", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "_ui_object_member" - }, - { - "type": "SYMBOL", - "name": "ui_annotated_object_member" - } - ] - } - }, - { - "type": "STRING", - "value": "}" - } - ] - }, - "ui_annotated_object_member": { - "type": "SEQ", - "members": [ - { - "type": "REPEAT1", - "content": { - "type": "FIELD", - "name": "annotation", - "content": { - "type": "SYMBOL", - "name": "ui_annotation" - } - } - }, - { - "type": "FIELD", - "name": "definition", - "content": { - "type": "SYMBOL", - "name": "_ui_object_member" - } - } - ] - }, - "_ui_object_member": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "ui_object_definition" - }, - { - "type": "SYMBOL", - "name": "ui_object_definition_binding" - }, - { - "type": "SYMBOL", - "name": "ui_binding" - }, - { - "type": "SYMBOL", - "name": "ui_property" - }, - { - "type": "SYMBOL", - "name": "ui_required" - }, - { - "type": "SYMBOL", - "name": "ui_signal" - }, - { - "type": "SYMBOL", - "name": "ui_inline_component" - }, - { - "type": "SYMBOL", - "name": "generator_function_declaration" - }, - { - "type": "SYMBOL", - "name": "function_declaration" - }, - { - "type": "SYMBOL", - "name": "variable_declaration" - }, - { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "_qml_enum_declaration" - }, - "named": true, - "value": "enum_declaration" - } - ] - }, - "ui_object_definition_binding": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "type_name", - "content": { - "type": "SYMBOL", - "name": "_ui_qualified_id" - } - }, - { - "type": "STRING", - "value": "on" - }, - { - "type": "FIELD", - "name": "name", - "content": { - "type": "SYMBOL", - "name": "_ui_qualified_id" - } - }, - { - "type": "FIELD", - "name": "initializer", - "content": { - "type": "SYMBOL", - "name": "ui_object_initializer" - } - } - ] - }, - "ui_binding": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "name", - "content": { - "type": "SYMBOL", - "name": "_ui_qualified_id" - } - }, - { - "type": "STRING", - "value": ":" - }, - { - "type": "FIELD", - "name": "value", - "content": { - "type": "SYMBOL", - "name": "_ui_binding_value" - } - } - ] - }, - "ui_property": { - "type": "SEQ", - "members": [ - { - "type": "REPEAT", - "content": { - "type": "SYMBOL", - "name": "ui_property_modifier" - } - }, - { - "type": "STRING", - "value": "property" - }, - { - "type": "FIELD", - "name": "type", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "_ui_property_type" - }, - { - "type": "SYMBOL", - "name": "ui_list_property_type" - } - ] - } - }, - { - "type": "FIELD", - "name": "name", - "content": { - "type": "SYMBOL", - "name": "_ui_identifier" - } - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": ":" - }, - { - "type": "FIELD", - "name": "value", - "content": { - "type": "SYMBOL", - "name": "_ui_property_value" - } - } - ] - }, - { - "type": "SYMBOL", - "name": "_semicolon" - } - ] - } - ] - }, - "_ui_property_type": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "_type_identifier" - }, - { - "type": "SYMBOL", - "name": "nested_type_identifier" - } - ] - }, - "ui_list_property_type": { - "type": "SEQ", - "members": [ - { - "type": "ALIAS", - "content": { - "type": "STRING", - "value": "list" - }, - "named": true, - "value": "type_identifier" - }, - { - "type": "STRING", - "value": "<" - }, - { - "type": "SYMBOL", - "name": "_ui_property_type" - }, - { - "type": "STRING", - "value": ">" - } - ] - }, - "ui_property_modifier": { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "default" - }, - { - "type": "STRING", - "value": "readonly" - }, - { - "type": "STRING", - "value": "required" - } - ] - }, - "_ui_binding_value": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "ui_object_array" - }, - { - "type": "SYMBOL", - "name": "ui_object_definition" - }, - { - "type": "SYMBOL", - "name": "_ui_script_statement" - } - ] - }, - "_ui_property_value": { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "ui_object_array" - }, - { - "type": "SYMBOL", - "name": "_semicolon" - } - ] - }, - { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "ui_object_definition" - }, - { - "type": "SYMBOL", - "name": "_semicolon" - } - ] - }, - { - "type": "SYMBOL", - "name": "_ui_script_statement" - } - ] - }, - "ui_object_array": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "[" - }, - { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "ui_object_definition" - }, - { - "type": "REPEAT", - "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "," - }, - { - "type": "SYMBOL", - "name": "ui_object_definition" - } - ] - } - } - ] - }, - { - "type": "STRING", - "value": "]" - } - ] - }, - "_ui_script_statement": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "statement_block" - }, - { - "type": "SYMBOL", - "name": "empty_statement" - }, - { - "type": "SYMBOL", - "name": "expression_statement" - }, - { - "type": "SYMBOL", - "name": "if_statement" - }, - { - "type": "SYMBOL", - "name": "with_statement" - }, - { - "type": "SYMBOL", - "name": "switch_statement" - }, - { - "type": "SYMBOL", - "name": "try_statement" - } - ] - }, - "ui_required": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "required" - }, - { - "type": "FIELD", - "name": "name", - "content": { - "type": "SYMBOL", - "name": "_ui_identifier" - } - }, - { - "type": "SYMBOL", - "name": "_semicolon" - } - ] - }, - "ui_signal": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "signal" - }, - { - "type": "FIELD", - "name": "name", - "content": { - "type": "SYMBOL", - "name": "identifier" - } - }, - { - "type": "CHOICE", - "members": [ - { - "type": "FIELD", - "name": "parameters", - "content": { - "type": "SYMBOL", - "name": "ui_signal_parameters" - } - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "SYMBOL", - "name": "_semicolon" - } - ] - }, - "ui_signal_parameters": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "(" - }, - { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "ui_signal_parameter" - }, - { - "type": "REPEAT", - "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "," - }, - { - "type": "SYMBOL", - "name": "ui_signal_parameter" - } - ] - } - } - ] - }, - { - "type": "BLANK" - } - ] - }, - { - "type": "STRING", - "value": ")" - } - ] - }, - "ui_signal_parameter": { - "type": "CHOICE", - "members": [ - { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "name", - "content": { - "type": "SYMBOL", - "name": "identifier" - } - }, - { - "type": "STRING", - "value": ":" - }, - { - "type": "FIELD", - "name": "type", - "content": { - "type": "SYMBOL", - "name": "_ui_property_type" - } - } - ] - }, - { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "type", - "content": { - "type": "SYMBOL", - "name": "_ui_property_type" - } - }, - { - "type": "FIELD", - "name": "name", - "content": { - "type": "SYMBOL", - "name": "identifier" - } - } - ] - } - ] - }, - "ui_inline_component": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "component" - }, - { - "type": "FIELD", - "name": "name", - "content": { - "type": "SYMBOL", - "name": "identifier" - } - }, - { - "type": "STRING", - "value": ":" - }, - { - "type": "FIELD", - "name": "component", - "content": { - "type": "SYMBOL", - "name": "ui_object_definition" - } - } - ] - }, - "_qml_enum_declaration": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "enum" - }, - { - "type": "FIELD", - "name": "name", - "content": { - "type": "SYMBOL", - "name": "identifier" - } - }, - { - "type": "FIELD", - "name": "body", - "content": { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "_qml_enum_body" - }, - "named": true, - "value": "enum_body" - } - } - ] - }, - "_qml_enum_body": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "{" - }, - { - "type": "SEQ", - "members": [ - { - "type": "CHOICE", - "members": [ - { - "type": "FIELD", - "name": "name", - "content": { - "type": "SYMBOL", - "name": "identifier" - } - }, - { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "_qml_enum_assignment" - }, - "named": true, - "value": "enum_assignment" - } - ] - }, - { - "type": "REPEAT", - "content": { - "type": "SEQ", - "members": [ - { - "type": "STRING", - "value": "," - }, - { - "type": "CHOICE", - "members": [ - { - "type": "FIELD", - "name": "name", - "content": { - "type": "SYMBOL", - "name": "identifier" - } - }, - { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "_qml_enum_assignment" - }, - "named": true, - "value": "enum_assignment" - } - ] - } - ] - } - } - ] - }, - { - "type": "STRING", - "value": "}" - } - ] - }, - "_qml_enum_assignment": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "name", - "content": { - "type": "SYMBOL", - "name": "identifier" - } - }, - { - "type": "STRING", - "value": "=" - }, - { - "type": "FIELD", - "name": "value", - "content": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "number" - }, - { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "_qml_enum_negative_number" - }, - "named": true, - "value": "unary_expression" - } - ] - } - } - ] - }, - "_qml_enum_negative_number": { - "type": "SEQ", - "members": [ - { - "type": "FIELD", - "name": "operator", - "content": { - "type": "STRING", - "value": "-" - } - }, - { - "type": "FIELD", - "name": "argument", - "content": { - "type": "SYMBOL", - "name": "number" - } - } - ] - }, - "_ui_qualified_id": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "_ui_identifier" - }, - { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "ui_nested_identifier" - }, - "named": true, - "value": "nested_identifier" - } - ] - }, - "_ui_identifier": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "identifier" - }, - { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "_ui_reserved_identifier" - }, - "named": true, - "value": "identifier" - } - ] - }, - "ui_nested_identifier": { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "_ui_qualified_id" - }, - { - "type": "STRING", - "value": "." - }, - { - "type": "SYMBOL", - "name": "identifier" - } - ] - }, - "_ui_simple_qualified_id": { - "type": "CHOICE", - "members": [ - { - "type": "SYMBOL", - "name": "identifier" - }, - { - "type": "ALIAS", - "content": { - "type": "SYMBOL", - "name": "ui_simple_nested_identifier" - }, - "named": true, - "value": "nested_identifier" - } - ] - }, - "ui_simple_nested_identifier": { - "type": "SEQ", - "members": [ - { - "type": "SYMBOL", - "name": "_ui_simple_qualified_id" - }, - { - "type": "STRING", - "value": "." - }, - { - "type": "SYMBOL", - "name": "identifier" - } - ] - }, - "_ui_reserved_identifier": { - "type": "CHOICE", - "members": [ - { - "type": "STRING", - "value": "get" - }, - { - "type": "STRING", - "value": "set" - }, - { - "type": "STRING", - "value": "async" - }, - { - "type": "STRING", - "value": "static" - }, - { - "type": "STRING", - "value": "export" - }, - { - "type": "STRING", - "value": "let" - }, - { - "type": "STRING", - "value": "declare" - }, - { - "type": "STRING", - "value": "namespace" - }, - { - "type": "STRING", - "value": "type" - }, - { - "type": "STRING", - "value": "public" - }, - { - "type": "STRING", - "value": "private" - }, - { - "type": "STRING", - "value": "protected" - }, - { - "type": "STRING", - "value": "override" - }, - { - "type": "STRING", - "value": "readonly" - }, - { - "type": "STRING", - "value": "module" - }, - { - "type": "STRING", - "value": "any" - }, - { - "type": "STRING", - "value": "number" - }, - { - "type": "STRING", - "value": "boolean" - }, - { - "type": "STRING", - "value": "string" - }, - { - "type": "STRING", - "value": "symbol" - }, - { - "type": "STRING", - "value": "export" - }, - { - "type": "STRING", - "value": "object" - }, - { - "type": "STRING", - "value": "readonly" - }, - { - "type": "STRING", - "value": "property" - }, - { - "type": "STRING", - "value": "signal" - }, - { - "type": "STRING", - "value": "readonly" - }, - { - "type": "STRING", - "value": "on" - }, - { - "type": "STRING", - "value": "from" - }, - { - "type": "STRING", - "value": "of" - }, - { - "type": "STRING", - "value": "required" - }, - { - "type": "STRING", - "value": "component" - } - ] - } - }, - "extras": [ - { - "type": "SYMBOL", - "name": "comment" - }, - { - "type": "SYMBOL", - "name": "html_comment" - }, - { - "type": "PATTERN", - "value": "[\\s\\p{Zs}\\uFEFF\\u2028\\u2029\\u2060\\u200B]" - } - ], - "conflicts": [ - [ - "primary_expression", - "_property_name" - ], - [ - "primary_expression", - "_property_name", - "arrow_function" - ], - [ - "primary_expression", - "arrow_function" - ], - [ - "primary_expression", - "method_definition" - ], - [ - "primary_expression", - "rest_pattern" - ], - [ - "primary_expression", - "pattern" - ], - [ - "primary_expression", - "_for_header" - ], - [ - "array", - "array_pattern" - ], - [ - "object", - "object_pattern" - ], - [ - "assignment_expression", - "pattern" - ], - [ - "assignment_expression", - "object_assignment_pattern" - ], - [ - "labeled_statement", - "_property_name" - ], - [ - "computed_property_name", - "array" - ], - [ - "binary_expression", - "_initializer" - ], - [ - "call_expression", - "instantiation_expression", - "binary_expression" - ], - [ - "call_expression", - "instantiation_expression", - "binary_expression", - "unary_expression" - ], - [ - "call_expression", - "instantiation_expression", - "binary_expression", - "update_expression" - ], - [ - "call_expression", - "instantiation_expression", - "binary_expression", - "await_expression" - ], - [ - "class" - ], - [ - "nested_identifier", - "nested_type_identifier", - "primary_expression" - ], - [ - "nested_identifier", - "nested_type_identifier" - ], - [ - "_call_signature", - "function_type" - ], - [ - "_call_signature", - "constructor_type" - ], - [ - "_primary_type", - "type_parameter" - ], - [ - "jsx_opening_element", - "type_parameter" - ], - [ - "jsx_namespace_name", - "_primary_type" - ], - [ - "primary_expression", - "_parameter_name" - ], - [ - "primary_expression", - "_parameter_name", - "_primary_type" - ], - [ - "primary_expression", - "literal_type" - ], - [ - "primary_expression", - "literal_type", - "rest_pattern" - ], - [ - "primary_expression", - "predefined_type", - "rest_pattern" - ], - [ - "primary_expression", - "_primary_type" - ], - [ - "primary_expression", - "generic_type" - ], - [ - "primary_expression", - "predefined_type" - ], - [ - "primary_expression", - "pattern", - "_primary_type" - ], - [ - "_parameter_name", - "_primary_type" - ], - [ - "pattern", - "_primary_type" - ], - [ - "optional_tuple_parameter", - "_primary_type" - ], - [ - "rest_pattern", - "_primary_type", - "primary_expression" - ], - [ - "object", - "object_type" - ], - [ - "object", - "object_pattern", - "object_type" - ], - [ - "object", - "object_pattern", - "_property_name" - ], - [ - "object_pattern", - "object_type" - ], - [ - "object_pattern", - "object_type" - ], - [ - "array", - "tuple_type" - ], - [ - "array", - "array_pattern", - "tuple_type" - ], - [ - "array_pattern", - "tuple_type" - ], - [ - "template_literal_type", - "template_string" - ], - [ - "ui_property_modifier", - "ui_required" - ], - [ - "ui_nested_identifier", - "primary_expression" - ] - ], - "precedences": [ - [ - { - "type": "STRING", - "value": "member" - }, - { - "type": "STRING", - "value": "call" - }, - { - "type": "SYMBOL", - "name": "update_expression" - }, - { - "type": "STRING", - "value": "unary_void" - }, - { - "type": "STRING", - "value": "binary_exp" - }, - { - "type": "STRING", - "value": "binary_times" - }, - { - "type": "STRING", - "value": "binary_plus" - }, - { - "type": "STRING", - "value": "binary_shift" - }, - { - "type": "STRING", - "value": "binary_compare" - }, - { - "type": "STRING", - "value": "binary_relation" - }, - { - "type": "STRING", - "value": "binary_equality" - }, - { - "type": "STRING", - "value": "bitwise_and" - }, - { - "type": "STRING", - "value": "bitwise_xor" - }, - { - "type": "STRING", - "value": "bitwise_or" - }, - { - "type": "STRING", - "value": "logical_and" - }, - { - "type": "STRING", - "value": "logical_or" - }, - { - "type": "STRING", - "value": "ternary" - }, - { - "type": "SYMBOL", - "name": "sequence_expression" - }, - { - "type": "SYMBOL", - "name": "arrow_function" - } - ], - [ - { - "type": "STRING", - "value": "assign" - }, - { - "type": "SYMBOL", - "name": "primary_expression" - } - ], - [ - { - "type": "STRING", - "value": "member" - }, - { - "type": "STRING", - "value": "new" - }, - { - "type": "STRING", - "value": "call" - }, - { - "type": "SYMBOL", - "name": "expression" - } - ], - [ - { - "type": "STRING", - "value": "declaration" - }, - { - "type": "STRING", - "value": "literal" - } - ], - [ - { - "type": "SYMBOL", - "name": "primary_expression" - }, - { - "type": "SYMBOL", - "name": "statement_block" - }, - { - "type": "STRING", - "value": "object" - } - ], - [ - { - "type": "SYMBOL", - "name": "import_statement" - }, - { - "type": "SYMBOL", - "name": "import" - } - ], - [ - { - "type": "SYMBOL", - "name": "export_statement" - }, - { - "type": "SYMBOL", - "name": "primary_expression" - } - ], - [ - { - "type": "SYMBOL", - "name": "lexical_declaration" - }, - { - "type": "SYMBOL", - "name": "primary_expression" - } - ], - [ - { - "type": "STRING", - "value": "call" - }, - { - "type": "STRING", - "value": "instantiation" - }, - { - "type": "STRING", - "value": "unary" - }, - { - "type": "STRING", - "value": "binary" - }, - { - "type": "SYMBOL", - "name": "await_expression" - }, - { - "type": "SYMBOL", - "name": "arrow_function" - } - ], - [ - { - "type": "STRING", - "value": "extends" - }, - { - "type": "STRING", - "value": "instantiation" - } - ], - [ - { - "type": "SYMBOL", - "name": "intersection_type" - }, - { - "type": "SYMBOL", - "name": "union_type" - }, - { - "type": "SYMBOL", - "name": "conditional_type" - }, - { - "type": "SYMBOL", - "name": "function_type" - }, - { - "type": "STRING", - "value": "binary" - }, - { - "type": "SYMBOL", - "name": "type_predicate" - }, - { - "type": "SYMBOL", - "name": "readonly_type" - } - ], - [ - { - "type": "SYMBOL", - "name": "mapped_type_clause" - }, - { - "type": "SYMBOL", - "name": "primary_expression" - } - ], - [ - { - "type": "SYMBOL", - "name": "accessibility_modifier" - }, - { - "type": "SYMBOL", - "name": "primary_expression" - } - ], - [ - { - "type": "STRING", - "value": "unary_void" - }, - { - "type": "SYMBOL", - "name": "expression" - } - ], - [ - { - "type": "SYMBOL", - "name": "extends_clause" - }, - { - "type": "SYMBOL", - "name": "primary_expression" - } - ], - [ - { - "type": "STRING", - "value": "unary" - }, - { - "type": "STRING", - "value": "assign" - } - ], - [ - { - "type": "STRING", - "value": "declaration" - }, - { - "type": "SYMBOL", - "name": "expression" - } - ], - [ - { - "type": "SYMBOL", - "name": "predefined_type" - }, - { - "type": "SYMBOL", - "name": "unary_expression" - } - ], - [ - { - "type": "SYMBOL", - "name": "_type" - }, - { - "type": "SYMBOL", - "name": "flow_maybe_type" - } - ], - [ - { - "type": "SYMBOL", - "name": "tuple_type" - }, - { - "type": "SYMBOL", - "name": "array_type" - }, - { - "type": "SYMBOL", - "name": "pattern" - }, - { - "type": "SYMBOL", - "name": "_type" - } - ], - [ - { - "type": "SYMBOL", - "name": "readonly_type" - }, - { - "type": "SYMBOL", - "name": "pattern" - } - ], - [ - { - "type": "SYMBOL", - "name": "readonly_type" - }, - { - "type": "SYMBOL", - "name": "primary_expression" - } - ], - [ - { - "type": "SYMBOL", - "name": "type_query" - }, - { - "type": "SYMBOL", - "name": "subscript_expression" - }, - { - "type": "SYMBOL", - "name": "expression" - } - ], - [ - { - "type": "SYMBOL", - "name": "type_query" - }, - { - "type": "SYMBOL", - "name": "_type_query_subscript_expression" - } - ], - [ - { - "type": "SYMBOL", - "name": "nested_type_identifier" - }, - { - "type": "SYMBOL", - "name": "generic_type" - }, - { - "type": "SYMBOL", - "name": "_primary_type" - }, - { - "type": "SYMBOL", - "name": "lookup_type" - }, - { - "type": "SYMBOL", - "name": "index_type_query" - }, - { - "type": "SYMBOL", - "name": "_type" - } - ], - [ - { - "type": "SYMBOL", - "name": "as_expression" - }, - { - "type": "SYMBOL", - "name": "satisfies_expression" - }, - { - "type": "SYMBOL", - "name": "_primary_type" - } - ], - [ - { - "type": "SYMBOL", - "name": "_type_query_member_expression" - }, - { - "type": "SYMBOL", - "name": "member_expression" - } - ], - [ - { - "type": "SYMBOL", - "name": "member_expression" - }, - { - "type": "SYMBOL", - "name": "_type_query_member_expression_in_type_annotation" - } - ], - [ - { - "type": "SYMBOL", - "name": "_type_query_member_expression" - }, - { - "type": "SYMBOL", - "name": "primary_expression" - } - ], - [ - { - "type": "SYMBOL", - "name": "_type_query_subscript_expression" - }, - { - "type": "SYMBOL", - "name": "subscript_expression" - } - ], - [ - { - "type": "SYMBOL", - "name": "_type_query_subscript_expression" - }, - { - "type": "SYMBOL", - "name": "primary_expression" - } - ], - [ - { - "type": "SYMBOL", - "name": "_type_query_call_expression" - }, - { - "type": "SYMBOL", - "name": "primary_expression" - } - ], - [ - { - "type": "SYMBOL", - "name": "_type_query_instantiation_expression" - }, - { - "type": "SYMBOL", - "name": "primary_expression" - } - ], - [ - { - "type": "SYMBOL", - "name": "type_query" - }, - { - "type": "SYMBOL", - "name": "primary_expression" - } - ], - [ - { - "type": "SYMBOL", - "name": "override_modifier" - }, - { - "type": "SYMBOL", - "name": "primary_expression" - } - ], - [ - { - "type": "SYMBOL", - "name": "decorator_call_expression" - }, - { - "type": "SYMBOL", - "name": "decorator" - } - ], - [ - { - "type": "SYMBOL", - "name": "literal_type" - }, - { - "type": "SYMBOL", - "name": "pattern" - } - ], - [ - { - "type": "SYMBOL", - "name": "predefined_type" - }, - { - "type": "SYMBOL", - "name": "pattern" - } - ], - [ - { - "type": "SYMBOL", - "name": "call_expression" - }, - { - "type": "SYMBOL", - "name": "_type_query_call_expression" - } - ], - [ - { - "type": "SYMBOL", - "name": "call_expression" - }, - { - "type": "SYMBOL", - "name": "_type_query_call_expression_in_type_annotation" - } - ], - [ - { - "type": "SYMBOL", - "name": "new_expression" - }, - { - "type": "SYMBOL", - "name": "primary_expression" - } - ], - [ - { - "type": "SYMBOL", - "name": "meta_property" - }, - { - "type": "SYMBOL", - "name": "primary_expression" - } - ], - [ - { - "type": "SYMBOL", - "name": "construct_signature" - }, - { - "type": "SYMBOL", - "name": "_property_name" - } - ] - ], - "externals": [ - { - "type": "SYMBOL", - "name": "_automatic_semicolon" - }, - { - "type": "SYMBOL", - "name": "_template_chars" - }, - { - "type": "SYMBOL", - "name": "_ternary_qmark" - }, - { - "type": "SYMBOL", - "name": "html_comment" - }, - { - "type": "STRING", - "value": "||" - }, - { - "type": "SYMBOL", - "name": "escape_sequence" - }, - { - "type": "SYMBOL", - "name": "_function_signature_automatic_semicolon" - } - ], - "inline": [ - "statement", - "_expressions", - "_semicolon", - "_identifier", - "_reserved_identifier", - "_jsx_attribute", - "_jsx_element_name", - "_jsx_child", - "_jsx_element", - "_jsx_attribute_name", - "_jsx_attribute_value", - "_jsx_identifier", - "_lhs_expression", - "_type_identifier", - "_jsx_start_opening_element", - "_ui_root_member", - "_ui_object_member", - "_ui_property_type", - "_ui_binding_value", - "_ui_property_value", - "_ui_script_statement", - "_ui_qualified_id", - "_ui_identifier", - "_ui_simple_qualified_id", - "_ui_reserved_identifier" - ], - "supertypes": [ - "statement", - "declaration", - "expression", - "primary_expression", - "pattern", - "_primary_type", - "_ui_object_member", - "_ui_script_statement" - ] -} - diff --git a/vendored_parsers/tree-sitter-qmljs/src/node-types.json b/vendored_parsers/tree-sitter-qmljs/src/node-types.json deleted file mode 100644 index 713450592..000000000 --- a/vendored_parsers/tree-sitter-qmljs/src/node-types.json +++ /dev/null @@ -1,7462 +0,0 @@ -[ - { - "type": "_primary_type", - "named": true, - "subtypes": [ - { - "type": "array_type", - "named": true - }, - { - "type": "conditional_type", - "named": true - }, - { - "type": "const", - "named": false - }, - { - "type": "existential_type", - "named": true - }, - { - "type": "flow_maybe_type", - "named": true - }, - { - "type": "generic_type", - "named": true - }, - { - "type": "index_type_query", - "named": true - }, - { - "type": "intersection_type", - "named": true - }, - { - "type": "literal_type", - "named": true - }, - { - "type": "lookup_type", - "named": true - }, - { - "type": "nested_type_identifier", - "named": true - }, - { - "type": "object_type", - "named": true - }, - { - "type": "parenthesized_type", - "named": true - }, - { - "type": "predefined_type", - "named": true - }, - { - "type": "template_literal_type", - "named": true - }, - { - "type": "this_type", - "named": true - }, - { - "type": "tuple_type", - "named": true - }, - { - "type": "type_identifier", - "named": true - }, - { - "type": "type_query", - "named": true - }, - { - "type": "union_type", - "named": true - } - ] - }, - { - "type": "_ui_object_member", - "named": true, - "subtypes": [ - { - "type": "enum_declaration", - "named": true - }, - { - "type": "function_declaration", - "named": true - }, - { - "type": "generator_function_declaration", - "named": true - }, - { - "type": "ui_binding", - "named": true - }, - { - "type": "ui_inline_component", - "named": true - }, - { - "type": "ui_object_definition", - "named": true - }, - { - "type": "ui_object_definition_binding", - "named": true - }, - { - "type": "ui_property", - "named": true - }, - { - "type": "ui_required", - "named": true - }, - { - "type": "ui_signal", - "named": true - }, - { - "type": "variable_declaration", - "named": true - } - ] - }, - { - "type": "_ui_script_statement", - "named": true, - "subtypes": [ - { - "type": "empty_statement", - "named": true - }, - { - "type": "expression_statement", - "named": true - }, - { - "type": "if_statement", - "named": true - }, - { - "type": "statement_block", - "named": true - }, - { - "type": "switch_statement", - "named": true - }, - { - "type": "try_statement", - "named": true - }, - { - "type": "with_statement", - "named": true - } - ] - }, - { - "type": "declaration", - "named": true, - "subtypes": [ - { - "type": "abstract_class_declaration", - "named": true - }, - { - "type": "ambient_declaration", - "named": true - }, - { - "type": "class_declaration", - "named": true - }, - { - "type": "enum_declaration", - "named": true - }, - { - "type": "function_declaration", - "named": true - }, - { - "type": "function_signature", - "named": true - }, - { - "type": "generator_function_declaration", - "named": true - }, - { - "type": "import_alias", - "named": true - }, - { - "type": "interface_declaration", - "named": true - }, - { - "type": "internal_module", - "named": true - }, - { - "type": "lexical_declaration", - "named": true - }, - { - "type": "module", - "named": true - }, - { - "type": "type_alias_declaration", - "named": true - }, - { - "type": "variable_declaration", - "named": true - } - ] - }, - { - "type": "expression", - "named": true, - "subtypes": [ - { - "type": "as_expression", - "named": true - }, - { - "type": "assignment_expression", - "named": true - }, - { - "type": "augmented_assignment_expression", - "named": true - }, - { - "type": "await_expression", - "named": true - }, - { - "type": "binary_expression", - "named": true - }, - { - "type": "glimmer_template", - "named": true - }, - { - "type": "instantiation_expression", - "named": true - }, - { - "type": "internal_module", - "named": true - }, - { - "type": "new_expression", - "named": true - }, - { - "type": "primary_expression", - "named": true - }, - { - "type": "satisfies_expression", - "named": true - }, - { - "type": "ternary_expression", - "named": true - }, - { - "type": "type_assertion", - "named": true - }, - { - "type": "unary_expression", - "named": true - }, - { - "type": "update_expression", - "named": true - }, - { - "type": "yield_expression", - "named": true - } - ] - }, - { - "type": "pattern", - "named": true, - "subtypes": [ - { - "type": "array_pattern", - "named": true - }, - { - "type": "identifier", - "named": true - }, - { - "type": "member_expression", - "named": true - }, - { - "type": "non_null_expression", - "named": true - }, - { - "type": "object_pattern", - "named": true - }, - { - "type": "rest_pattern", - "named": true - }, - { - "type": "subscript_expression", - "named": true - }, - { - "type": "undefined", - "named": true - } - ] - }, - { - "type": "primary_expression", - "named": true, - "subtypes": [ - { - "type": "array", - "named": true - }, - { - "type": "arrow_function", - "named": true - }, - { - "type": "call_expression", - "named": true - }, - { - "type": "class", - "named": true - }, - { - "type": "false", - "named": true - }, - { - "type": "function_expression", - "named": true - }, - { - "type": "generator_function", - "named": true - }, - { - "type": "identifier", - "named": true - }, - { - "type": "member_expression", - "named": true - }, - { - "type": "meta_property", - "named": true - }, - { - "type": "non_null_expression", - "named": true - }, - { - "type": "null", - "named": true - }, - { - "type": "number", - "named": true - }, - { - "type": "object", - "named": true - }, - { - "type": "parenthesized_expression", - "named": true - }, - { - "type": "regex", - "named": true - }, - { - "type": "string", - "named": true - }, - { - "type": "subscript_expression", - "named": true - }, - { - "type": "super", - "named": true - }, - { - "type": "template_string", - "named": true - }, - { - "type": "this", - "named": true - }, - { - "type": "true", - "named": true - }, - { - "type": "undefined", - "named": true - } - ] - }, - { - "type": "statement", - "named": true, - "subtypes": [ - { - "type": "break_statement", - "named": true - }, - { - "type": "continue_statement", - "named": true - }, - { - "type": "debugger_statement", - "named": true - }, - { - "type": "declaration", - "named": true - }, - { - "type": "do_statement", - "named": true - }, - { - "type": "empty_statement", - "named": true - }, - { - "type": "export_statement", - "named": true - }, - { - "type": "expression_statement", - "named": true - }, - { - "type": "for_in_statement", - "named": true - }, - { - "type": "for_statement", - "named": true - }, - { - "type": "if_statement", - "named": true - }, - { - "type": "import_statement", - "named": true - }, - { - "type": "labeled_statement", - "named": true - }, - { - "type": "return_statement", - "named": true - }, - { - "type": "statement_block", - "named": true - }, - { - "type": "switch_statement", - "named": true - }, - { - "type": "throw_statement", - "named": true - }, - { - "type": "try_statement", - "named": true - }, - { - "type": "while_statement", - "named": true - }, - { - "type": "with_statement", - "named": true - } - ] - }, - { - "type": "abstract_class_declaration", - "named": true, - "fields": { - "body": { - "multiple": false, - "required": true, - "types": [ - { - "type": "class_body", - "named": true - } - ] - }, - "decorator": { - "multiple": true, - "required": false, - "types": [ - { - "type": "decorator", - "named": true - } - ] - }, - "name": { - "multiple": false, - "required": true, - "types": [ - { - "type": "type_identifier", - "named": true - } - ] - }, - "type_parameters": { - "multiple": false, - "required": false, - "types": [ - { - "type": "type_parameters", - "named": true - } - ] - } - }, - "children": { - "multiple": false, - "required": false, - "types": [ - { - "type": "class_heritage", - "named": true - } - ] - } - }, - { - "type": "abstract_method_signature", - "named": true, - "fields": { - "name": { - "multiple": false, - "required": true, - "types": [ - { - "type": "computed_property_name", - "named": true - }, - { - "type": "number", - "named": true - }, - { - "type": "private_property_identifier", - "named": true - }, - { - "type": "property_identifier", - "named": true - }, - { - "type": "string", - "named": true - } - ] - }, - "parameters": { - "multiple": false, - "required": true, - "types": [ - { - "type": "formal_parameters", - "named": true - } - ] - }, - "return_type": { - "multiple": false, - "required": false, - "types": [ - { - "type": "asserts_annotation", - "named": true - }, - { - "type": "type_annotation", - "named": true - }, - { - "type": "type_predicate_annotation", - "named": true - } - ] - }, - "type_parameters": { - "multiple": false, - "required": false, - "types": [ - { - "type": "type_parameters", - "named": true - } - ] - } - }, - "children": { - "multiple": true, - "required": false, - "types": [ - { - "type": "accessibility_modifier", - "named": true - }, - { - "type": "override_modifier", - "named": true - } - ] - } - }, - { - "type": "accessibility_modifier", - "named": true, - "fields": {} - }, - { - "type": "adding_type_annotation", - "named": true, - "fields": {}, - "children": { - "multiple": false, - "required": true, - "types": [ - { - "type": "_primary_type", - "named": true - }, - { - "type": "constructor_type", - "named": true - }, - { - "type": "function_type", - "named": true - }, - { - "type": "infer_type", - "named": true - }, - { - "type": "readonly_type", - "named": true - } - ] - } - }, - { - "type": "ambient_declaration", - "named": true, - "fields": {}, - "children": { - "multiple": true, - "required": true, - "types": [ - { - "type": "_primary_type", - "named": true - }, - { - "type": "constructor_type", - "named": true - }, - { - "type": "declaration", - "named": true - }, - { - "type": "function_type", - "named": true - }, - { - "type": "infer_type", - "named": true - }, - { - "type": "property_identifier", - "named": true - }, - { - "type": "readonly_type", - "named": true - }, - { - "type": "statement_block", - "named": true - } - ] - } - }, - { - "type": "arguments", - "named": true, - "fields": {}, - "children": { - "multiple": true, - "required": false, - "types": [ - { - "type": "expression", - "named": true - }, - { - "type": "spread_element", - "named": true - } - ] - } - }, - { - "type": "array", - "named": true, - "fields": {}, - "children": { - "multiple": true, - "required": false, - "types": [ - { - "type": "expression", - "named": true - }, - { - "type": "spread_element", - "named": true - } - ] - } - }, - { - "type": "array_pattern", - "named": true, - "fields": {}, - "children": { - "multiple": true, - "required": false, - "types": [ - { - "type": "assignment_pattern", - "named": true - }, - { - "type": "pattern", - "named": true - } - ] - } - }, - { - "type": "array_type", - "named": true, - "fields": {}, - "children": { - "multiple": false, - "required": true, - "types": [ - { - "type": "_primary_type", - "named": true - } - ] - } - }, - { - "type": "arrow_function", - "named": true, - "fields": { - "body": { - "multiple": false, - "required": true, - "types": [ - { - "type": "expression", - "named": true - }, - { - "type": "statement_block", - "named": true - } - ] - }, - "parameter": { - "multiple": false, - "required": false, - "types": [ - { - "type": "identifier", - "named": true - } - ] - }, - "parameters": { - "multiple": false, - "required": false, - "types": [ - { - "type": "formal_parameters", - "named": true - } - ] - }, - "return_type": { - "multiple": false, - "required": false, - "types": [ - { - "type": "asserts_annotation", - "named": true - }, - { - "type": "type_annotation", - "named": true - }, - { - "type": "type_predicate_annotation", - "named": true - } - ] - }, - "type_parameters": { - "multiple": false, - "required": false, - "types": [ - { - "type": "type_parameters", - "named": true - } - ] - } - } - }, - { - "type": "as_expression", - "named": true, - "fields": {}, - "children": { - "multiple": true, - "required": true, - "types": [ - { - "type": "_primary_type", - "named": true - }, - { - "type": "constructor_type", - "named": true - }, - { - "type": "expression", - "named": true - }, - { - "type": "function_type", - "named": true - }, - { - "type": "infer_type", - "named": true - }, - { - "type": "readonly_type", - "named": true - } - ] - } - }, - { - "type": "asserts", - "named": true, - "fields": {}, - "children": { - "multiple": false, - "required": true, - "types": [ - { - "type": "identifier", - "named": true - }, - { - "type": "this", - "named": true - }, - { - "type": "type_predicate", - "named": true - } - ] - } - }, - { - "type": "asserts_annotation", - "named": true, - "fields": {}, - "children": { - "multiple": false, - "required": true, - "types": [ - { - "type": "asserts", - "named": true - } - ] - } - }, - { - "type": "assignment_expression", - "named": true, - "fields": { - "left": { - "multiple": false, - "required": true, - "types": [ - { - "type": "array_pattern", - "named": true - }, - { - "type": "identifier", - "named": true - }, - { - "type": "member_expression", - "named": true - }, - { - "type": "non_null_expression", - "named": true - }, - { - "type": "object_pattern", - "named": true - }, - { - "type": "parenthesized_expression", - "named": true - }, - { - "type": "subscript_expression", - "named": true - }, - { - "type": "undefined", - "named": true - } - ] - }, - "right": { - "multiple": false, - "required": true, - "types": [ - { - "type": "expression", - "named": true - } - ] - } - } - }, - { - "type": "assignment_pattern", - "named": true, - "fields": { - "left": { - "multiple": false, - "required": true, - "types": [ - { - "type": "pattern", - "named": true - } - ] - }, - "right": { - "multiple": false, - "required": true, - "types": [ - { - "type": "expression", - "named": true - } - ] - } - } - }, - { - "type": "augmented_assignment_expression", - "named": true, - "fields": { - "left": { - "multiple": false, - "required": true, - "types": [ - { - "type": "identifier", - "named": true - }, - { - "type": "member_expression", - "named": true - }, - { - "type": "non_null_expression", - "named": true - }, - { - "type": "parenthesized_expression", - "named": true - }, - { - "type": "subscript_expression", - "named": true - } - ] - }, - "operator": { - "multiple": false, - "required": true, - "types": [ - { - "type": "%=", - "named": false - }, - { - "type": "&&=", - "named": false - }, - { - "type": "&=", - "named": false - }, - { - "type": "**=", - "named": false - }, - { - "type": "*=", - "named": false - }, - { - "type": "+=", - "named": false - }, - { - "type": "-=", - "named": false - }, - { - "type": "/=", - "named": false - }, - { - "type": "<<=", - "named": false - }, - { - "type": ">>=", - "named": false - }, - { - "type": ">>>=", - "named": false - }, - { - "type": "??=", - "named": false - }, - { - "type": "^=", - "named": false - }, - { - "type": "|=", - "named": false - }, - { - "type": "||=", - "named": false - } - ] - }, - "right": { - "multiple": false, - "required": true, - "types": [ - { - "type": "expression", - "named": true - } - ] - } - } - }, - { - "type": "await_expression", - "named": true, - "fields": {}, - "children": { - "multiple": false, - "required": true, - "types": [ - { - "type": "expression", - "named": true - } - ] - } - }, - { - "type": "binary_expression", - "named": true, - "fields": { - "left": { - "multiple": false, - "required": true, - "types": [ - { - "type": "expression", - "named": true - }, - { - "type": "private_property_identifier", - "named": true - } - ] - }, - "operator": { - "multiple": false, - "required": true, - "types": [ - { - "type": "!=", - "named": false - }, - { - "type": "!==", - "named": false - }, - { - "type": "%", - "named": false - }, - { - "type": "&", - "named": false - }, - { - "type": "&&", - "named": false - }, - { - "type": "*", - "named": false - }, - { - "type": "**", - "named": false - }, - { - "type": "+", - "named": false - }, - { - "type": "-", - "named": false - }, - { - "type": "/", - "named": false - }, - { - "type": "<", - "named": false - }, - { - "type": "<<", - "named": false - }, - { - "type": "<=", - "named": false - }, - { - "type": "==", - "named": false - }, - { - "type": "===", - "named": false - }, - { - "type": ">", - "named": false - }, - { - "type": ">=", - "named": false - }, - { - "type": ">>", - "named": false - }, - { - "type": ">>>", - "named": false - }, - { - "type": "??", - "named": false - }, - { - "type": "^", - "named": false - }, - { - "type": "in", - "named": false - }, - { - "type": "instanceof", - "named": false - }, - { - "type": "|", - "named": false - }, - { - "type": "||", - "named": false - } - ] - }, - "right": { - "multiple": false, - "required": true, - "types": [ - { - "type": "expression", - "named": true - } - ] - } - } - }, - { - "type": "break_statement", - "named": true, - "fields": { - "label": { - "multiple": false, - "required": false, - "types": [ - { - "type": "statement_identifier", - "named": true - } - ] - } - } - }, - { - "type": "call_expression", - "named": true, - "fields": { - "arguments": { - "multiple": false, - "required": true, - "types": [ - { - "type": "arguments", - "named": true - }, - { - "type": "template_string", - "named": true - } - ] - }, - "function": { - "multiple": false, - "required": true, - "types": [ - { - "type": "expression", - "named": true - }, - { - "type": "import", - "named": true - } - ] - }, - "type_arguments": { - "multiple": false, - "required": false, - "types": [ - { - "type": "type_arguments", - "named": true - } - ] - } - } - }, - { - "type": "call_signature", - "named": true, - "fields": { - "parameters": { - "multiple": false, - "required": true, - "types": [ - { - "type": "formal_parameters", - "named": true - } - ] - }, - "return_type": { - "multiple": false, - "required": false, - "types": [ - { - "type": "asserts_annotation", - "named": true - }, - { - "type": "type_annotation", - "named": true - }, - { - "type": "type_predicate_annotation", - "named": true - } - ] - }, - "type_parameters": { - "multiple": false, - "required": false, - "types": [ - { - "type": "type_parameters", - "named": true - } - ] - } - } - }, - { - "type": "catch_clause", - "named": true, - "fields": { - "body": { - "multiple": false, - "required": true, - "types": [ - { - "type": "statement_block", - "named": true - } - ] - }, - "parameter": { - "multiple": false, - "required": false, - "types": [ - { - "type": "array_pattern", - "named": true - }, - { - "type": "identifier", - "named": true - }, - { - "type": "object_pattern", - "named": true - } - ] - }, - "type": { - "multiple": false, - "required": false, - "types": [ - { - "type": "type_annotation", - "named": true - } - ] - } - } - }, - { - "type": "class", - "named": true, - "fields": { - "body": { - "multiple": false, - "required": true, - "types": [ - { - "type": "class_body", - "named": true - } - ] - }, - "decorator": { - "multiple": true, - "required": false, - "types": [ - { - "type": "decorator", - "named": true - } - ] - }, - "name": { - "multiple": false, - "required": false, - "types": [ - { - "type": "type_identifier", - "named": true - } - ] - }, - "type_parameters": { - "multiple": false, - "required": false, - "types": [ - { - "type": "type_parameters", - "named": true - } - ] - } - }, - "children": { - "multiple": false, - "required": false, - "types": [ - { - "type": "class_heritage", - "named": true - } - ] - } - }, - { - "type": "class_body", - "named": true, - "fields": { - "decorator": { - "multiple": true, - "required": false, - "types": [ - { - "type": "decorator", - "named": true - } - ] - } - }, - "children": { - "multiple": true, - "required": false, - "types": [ - { - "type": "abstract_method_signature", - "named": true - }, - { - "type": "class_static_block", - "named": true - }, - { - "type": "index_signature", - "named": true - }, - { - "type": "method_definition", - "named": true - }, - { - "type": "method_signature", - "named": true - }, - { - "type": "public_field_definition", - "named": true - } - ] - } - }, - { - "type": "class_declaration", - "named": true, - "fields": { - "body": { - "multiple": false, - "required": true, - "types": [ - { - "type": "class_body", - "named": true - } - ] - }, - "decorator": { - "multiple": true, - "required": false, - "types": [ - { - "type": "decorator", - "named": true - } - ] - }, - "name": { - "multiple": false, - "required": true, - "types": [ - { - "type": "type_identifier", - "named": true - } - ] - }, - "type_parameters": { - "multiple": false, - "required": false, - "types": [ - { - "type": "type_parameters", - "named": true - } - ] - } - }, - "children": { - "multiple": false, - "required": false, - "types": [ - { - "type": "class_heritage", - "named": true - } - ] - } - }, - { - "type": "class_heritage", - "named": true, - "fields": {}, - "children": { - "multiple": true, - "required": true, - "types": [ - { - "type": "extends_clause", - "named": true - }, - { - "type": "implements_clause", - "named": true - } - ] - } - }, - { - "type": "class_static_block", - "named": true, - "fields": { - "body": { - "multiple": false, - "required": true, - "types": [ - { - "type": "statement_block", - "named": true - } - ] - } - } - }, - { - "type": "comment", - "named": true, - "fields": {} - }, - { - "type": "computed_property_name", - "named": true, - "fields": {}, - "children": { - "multiple": false, - "required": true, - "types": [ - { - "type": "expression", - "named": true - } - ] - } - }, - { - "type": "conditional_type", - "named": true, - "fields": { - "alternative": { - "multiple": false, - "required": true, - "types": [ - { - "type": "_primary_type", - "named": true - }, - { - "type": "constructor_type", - "named": true - }, - { - "type": "function_type", - "named": true - }, - { - "type": "infer_type", - "named": true - }, - { - "type": "readonly_type", - "named": true - } - ] - }, - "consequence": { - "multiple": false, - "required": true, - "types": [ - { - "type": "_primary_type", - "named": true - }, - { - "type": "constructor_type", - "named": true - }, - { - "type": "function_type", - "named": true - }, - { - "type": "infer_type", - "named": true - }, - { - "type": "readonly_type", - "named": true - } - ] - }, - "left": { - "multiple": false, - "required": true, - "types": [ - { - "type": "_primary_type", - "named": true - }, - { - "type": "constructor_type", - "named": true - }, - { - "type": "function_type", - "named": true - }, - { - "type": "infer_type", - "named": true - }, - { - "type": "readonly_type", - "named": true - } - ] - }, - "right": { - "multiple": false, - "required": true, - "types": [ - { - "type": "_primary_type", - "named": true - }, - { - "type": "constructor_type", - "named": true - }, - { - "type": "function_type", - "named": true - }, - { - "type": "infer_type", - "named": true - }, - { - "type": "readonly_type", - "named": true - } - ] - } - } - }, - { - "type": "constraint", - "named": true, - "fields": {}, - "children": { - "multiple": false, - "required": true, - "types": [ - { - "type": "_primary_type", - "named": true - }, - { - "type": "constructor_type", - "named": true - }, - { - "type": "function_type", - "named": true - }, - { - "type": "infer_type", - "named": true - }, - { - "type": "readonly_type", - "named": true - } - ] - } - }, - { - "type": "construct_signature", - "named": true, - "fields": { - "parameters": { - "multiple": false, - "required": true, - "types": [ - { - "type": "formal_parameters", - "named": true - } - ] - }, - "type": { - "multiple": false, - "required": false, - "types": [ - { - "type": "type_annotation", - "named": true - } - ] - }, - "type_parameters": { - "multiple": false, - "required": false, - "types": [ - { - "type": "type_parameters", - "named": true - } - ] - } - } - }, - { - "type": "constructor_type", - "named": true, - "fields": { - "parameters": { - "multiple": false, - "required": true, - "types": [ - { - "type": "formal_parameters", - "named": true - } - ] - }, - "type": { - "multiple": false, - "required": true, - "types": [ - { - "type": "_primary_type", - "named": true - }, - { - "type": "constructor_type", - "named": true - }, - { - "type": "function_type", - "named": true - }, - { - "type": "infer_type", - "named": true - }, - { - "type": "readonly_type", - "named": true - } - ] - }, - "type_parameters": { - "multiple": false, - "required": false, - "types": [ - { - "type": "type_parameters", - "named": true - } - ] - } - } - }, - { - "type": "continue_statement", - "named": true, - "fields": { - "label": { - "multiple": false, - "required": false, - "types": [ - { - "type": "statement_identifier", - "named": true - } - ] - } - } - }, - { - "type": "debugger_statement", - "named": true, - "fields": {} - }, - { - "type": "decorator", - "named": true, - "fields": {}, - "children": { - "multiple": false, - "required": true, - "types": [ - { - "type": "call_expression", - "named": true - }, - { - "type": "identifier", - "named": true - }, - { - "type": "member_expression", - "named": true - } - ] - } - }, - { - "type": "default_type", - "named": true, - "fields": {}, - "children": { - "multiple": false, - "required": true, - "types": [ - { - "type": "_primary_type", - "named": true - }, - { - "type": "constructor_type", - "named": true - }, - { - "type": "function_type", - "named": true - }, - { - "type": "infer_type", - "named": true - }, - { - "type": "readonly_type", - "named": true - } - ] - } - }, - { - "type": "do_statement", - "named": true, - "fields": { - "body": { - "multiple": false, - "required": true, - "types": [ - { - "type": "statement", - "named": true - } - ] - }, - "condition": { - "multiple": false, - "required": true, - "types": [ - { - "type": "parenthesized_expression", - "named": true - } - ] - } - } - }, - { - "type": "else_clause", - "named": true, - "fields": {}, - "children": { - "multiple": false, - "required": true, - "types": [ - { - "type": "statement", - "named": true - } - ] - } - }, - { - "type": "empty_statement", - "named": true, - "fields": {} - }, - { - "type": "enum_assignment", - "named": true, - "fields": { - "name": { - "multiple": false, - "required": true, - "types": [ - { - "type": "computed_property_name", - "named": true - }, - { - "type": "identifier", - "named": true - }, - { - "type": "number", - "named": true - }, - { - "type": "private_property_identifier", - "named": true - }, - { - "type": "property_identifier", - "named": true - }, - { - "type": "string", - "named": true - } - ] - }, - "value": { - "multiple": false, - "required": true, - "types": [ - { - "type": "expression", - "named": true - }, - { - "type": "number", - "named": true - } - ] - } - } - }, - { - "type": "enum_body", - "named": true, - "fields": { - "name": { - "multiple": true, - "required": false, - "types": [ - { - "type": "computed_property_name", - "named": true - }, - { - "type": "identifier", - "named": true - }, - { - "type": "number", - "named": true - }, - { - "type": "private_property_identifier", - "named": true - }, - { - "type": "property_identifier", - "named": true - }, - { - "type": "string", - "named": true - } - ] - } - }, - "children": { - "multiple": true, - "required": false, - "types": [ - { - "type": "enum_assignment", - "named": true - } - ] - } - }, - { - "type": "enum_declaration", - "named": true, - "fields": { - "body": { - "multiple": false, - "required": true, - "types": [ - { - "type": "enum_body", - "named": true - } - ] - }, - "name": { - "multiple": false, - "required": true, - "types": [ - { - "type": "identifier", - "named": true - } - ] - } - } - }, - { - "type": "existential_type", - "named": true, - "fields": {} - }, - { - "type": "export_clause", - "named": true, - "fields": {}, - "children": { - "multiple": true, - "required": false, - "types": [ - { - "type": "export_specifier", - "named": true - } - ] - } - }, - { - "type": "export_specifier", - "named": true, - "fields": { - "alias": { - "multiple": false, - "required": false, - "types": [ - { - "type": "identifier", - "named": true - }, - { - "type": "string", - "named": true - } - ] - }, - "name": { - "multiple": false, - "required": true, - "types": [ - { - "type": "identifier", - "named": true - }, - { - "type": "string", - "named": true - } - ] - } - } - }, - { - "type": "export_statement", - "named": true, - "fields": { - "declaration": { - "multiple": false, - "required": false, - "types": [ - { - "type": "declaration", - "named": true - } - ] - }, - "decorator": { - "multiple": true, - "required": false, - "types": [ - { - "type": "decorator", - "named": true - } - ] - }, - "source": { - "multiple": false, - "required": false, - "types": [ - { - "type": "string", - "named": true - } - ] - }, - "value": { - "multiple": false, - "required": false, - "types": [ - { - "type": "expression", - "named": true - } - ] - } - }, - "children": { - "multiple": false, - "required": false, - "types": [ - { - "type": "export_clause", - "named": true - }, - { - "type": "expression", - "named": true - }, - { - "type": "identifier", - "named": true - }, - { - "type": "namespace_export", - "named": true - } - ] - } - }, - { - "type": "expression_statement", - "named": true, - "fields": {}, - "children": { - "multiple": false, - "required": true, - "types": [ - { - "type": "expression", - "named": true - }, - { - "type": "sequence_expression", - "named": true - } - ] - } - }, - { - "type": "extends_clause", - "named": true, - "fields": { - "type_arguments": { - "multiple": true, - "required": false, - "types": [ - { - "type": "type_arguments", - "named": true - } - ] - }, - "value": { - "multiple": true, - "required": true, - "types": [ - { - "type": "expression", - "named": true - } - ] - } - } - }, - { - "type": "extends_type_clause", - "named": true, - "fields": { - "type": { - "multiple": true, - "required": true, - "types": [ - { - "type": "generic_type", - "named": true - }, - { - "type": "nested_type_identifier", - "named": true - }, - { - "type": "type_identifier", - "named": true - } - ] - } - } - }, - { - "type": "finally_clause", - "named": true, - "fields": { - "body": { - "multiple": false, - "required": true, - "types": [ - { - "type": "statement_block", - "named": true - } - ] - } - } - }, - { - "type": "flow_maybe_type", - "named": true, - "fields": {}, - "children": { - "multiple": false, - "required": true, - "types": [ - { - "type": "_primary_type", - "named": true - } - ] - } - }, - { - "type": "for_in_statement", - "named": true, - "fields": { - "body": { - "multiple": false, - "required": true, - "types": [ - { - "type": "statement", - "named": true - } - ] - }, - "kind": { - "multiple": false, - "required": false, - "types": [ - { - "type": "const", - "named": false - }, - { - "type": "let", - "named": false - }, - { - "type": "var", - "named": false - } - ] - }, - "left": { - "multiple": false, - "required": true, - "types": [ - { - "type": "array_pattern", - "named": true - }, - { - "type": "identifier", - "named": true - }, - { - "type": "member_expression", - "named": true - }, - { - "type": "non_null_expression", - "named": true - }, - { - "type": "object_pattern", - "named": true - }, - { - "type": "parenthesized_expression", - "named": true - }, - { - "type": "subscript_expression", - "named": true - }, - { - "type": "undefined", - "named": true - } - ] - }, - "operator": { - "multiple": false, - "required": true, - "types": [ - { - "type": "in", - "named": false - }, - { - "type": "of", - "named": false - } - ] - }, - "right": { - "multiple": false, - "required": true, - "types": [ - { - "type": "expression", - "named": true - }, - { - "type": "sequence_expression", - "named": true - } - ] - }, - "value": { - "multiple": false, - "required": false, - "types": [ - { - "type": "expression", - "named": true - } - ] - } - } - }, - { - "type": "for_statement", - "named": true, - "fields": { - "body": { - "multiple": false, - "required": true, - "types": [ - { - "type": "statement", - "named": true - } - ] - }, - "condition": { - "multiple": false, - "required": true, - "types": [ - { - "type": "empty_statement", - "named": true - }, - { - "type": "expression_statement", - "named": true - } - ] - }, - "increment": { - "multiple": false, - "required": false, - "types": [ - { - "type": "expression", - "named": true - }, - { - "type": "sequence_expression", - "named": true - } - ] - }, - "initializer": { - "multiple": false, - "required": true, - "types": [ - { - "type": "empty_statement", - "named": true - }, - { - "type": "expression_statement", - "named": true - }, - { - "type": "lexical_declaration", - "named": true - }, - { - "type": "variable_declaration", - "named": true - } - ] - } - } - }, - { - "type": "formal_parameters", - "named": true, - "fields": {}, - "children": { - "multiple": true, - "required": false, - "types": [ - { - "type": "optional_parameter", - "named": true - }, - { - "type": "required_parameter", - "named": true - } - ] - } - }, - { - "type": "function_declaration", - "named": true, - "fields": { - "body": { - "multiple": false, - "required": true, - "types": [ - { - "type": "statement_block", - "named": true - } - ] - }, - "name": { - "multiple": false, - "required": true, - "types": [ - { - "type": "identifier", - "named": true - } - ] - }, - "parameters": { - "multiple": false, - "required": true, - "types": [ - { - "type": "formal_parameters", - "named": true - } - ] - }, - "return_type": { - "multiple": false, - "required": false, - "types": [ - { - "type": "asserts_annotation", - "named": true - }, - { - "type": "type_annotation", - "named": true - }, - { - "type": "type_predicate_annotation", - "named": true - } - ] - }, - "type_parameters": { - "multiple": false, - "required": false, - "types": [ - { - "type": "type_parameters", - "named": true - } - ] - } - } - }, - { - "type": "function_expression", - "named": true, - "fields": { - "body": { - "multiple": false, - "required": true, - "types": [ - { - "type": "statement_block", - "named": true - } - ] - }, - "name": { - "multiple": false, - "required": false, - "types": [ - { - "type": "identifier", - "named": true - } - ] - }, - "parameters": { - "multiple": false, - "required": true, - "types": [ - { - "type": "formal_parameters", - "named": true - } - ] - }, - "return_type": { - "multiple": false, - "required": false, - "types": [ - { - "type": "asserts_annotation", - "named": true - }, - { - "type": "type_annotation", - "named": true - }, - { - "type": "type_predicate_annotation", - "named": true - } - ] - }, - "type_parameters": { - "multiple": false, - "required": false, - "types": [ - { - "type": "type_parameters", - "named": true - } - ] - } - } - }, - { - "type": "function_signature", - "named": true, - "fields": { - "name": { - "multiple": false, - "required": true, - "types": [ - { - "type": "identifier", - "named": true - } - ] - }, - "parameters": { - "multiple": false, - "required": true, - "types": [ - { - "type": "formal_parameters", - "named": true - } - ] - }, - "return_type": { - "multiple": false, - "required": false, - "types": [ - { - "type": "asserts_annotation", - "named": true - }, - { - "type": "type_annotation", - "named": true - }, - { - "type": "type_predicate_annotation", - "named": true - } - ] - }, - "type_parameters": { - "multiple": false, - "required": false, - "types": [ - { - "type": "type_parameters", - "named": true - } - ] - } - } - }, - { - "type": "function_type", - "named": true, - "fields": { - "parameters": { - "multiple": false, - "required": true, - "types": [ - { - "type": "formal_parameters", - "named": true - } - ] - }, - "return_type": { - "multiple": false, - "required": true, - "types": [ - { - "type": "_primary_type", - "named": true - }, - { - "type": "asserts", - "named": true - }, - { - "type": "constructor_type", - "named": true - }, - { - "type": "function_type", - "named": true - }, - { - "type": "infer_type", - "named": true - }, - { - "type": "readonly_type", - "named": true - }, - { - "type": "type_predicate", - "named": true - } - ] - }, - "type_parameters": { - "multiple": false, - "required": false, - "types": [ - { - "type": "type_parameters", - "named": true - } - ] - } - } - }, - { - "type": "generator_function", - "named": true, - "fields": { - "body": { - "multiple": false, - "required": true, - "types": [ - { - "type": "statement_block", - "named": true - } - ] - }, - "name": { - "multiple": false, - "required": false, - "types": [ - { - "type": "identifier", - "named": true - } - ] - }, - "parameters": { - "multiple": false, - "required": true, - "types": [ - { - "type": "formal_parameters", - "named": true - } - ] - }, - "return_type": { - "multiple": false, - "required": false, - "types": [ - { - "type": "asserts_annotation", - "named": true - }, - { - "type": "type_annotation", - "named": true - }, - { - "type": "type_predicate_annotation", - "named": true - } - ] - }, - "type_parameters": { - "multiple": false, - "required": false, - "types": [ - { - "type": "type_parameters", - "named": true - } - ] - } - } - }, - { - "type": "generator_function_declaration", - "named": true, - "fields": { - "body": { - "multiple": false, - "required": true, - "types": [ - { - "type": "statement_block", - "named": true - } - ] - }, - "name": { - "multiple": false, - "required": true, - "types": [ - { - "type": "identifier", - "named": true - } - ] - }, - "parameters": { - "multiple": false, - "required": true, - "types": [ - { - "type": "formal_parameters", - "named": true - } - ] - }, - "return_type": { - "multiple": false, - "required": false, - "types": [ - { - "type": "asserts_annotation", - "named": true - }, - { - "type": "type_annotation", - "named": true - }, - { - "type": "type_predicate_annotation", - "named": true - } - ] - }, - "type_parameters": { - "multiple": false, - "required": false, - "types": [ - { - "type": "type_parameters", - "named": true - } - ] - } - } - }, - { - "type": "generic_type", - "named": true, - "fields": { - "name": { - "multiple": false, - "required": true, - "types": [ - { - "type": "nested_type_identifier", - "named": true - }, - { - "type": "type_identifier", - "named": true - } - ] - }, - "type_arguments": { - "multiple": false, - "required": true, - "types": [ - { - "type": "type_arguments", - "named": true - } - ] - } - } - }, - { - "type": "glimmer_closing_tag", - "named": true, - "fields": {} - }, - { - "type": "glimmer_opening_tag", - "named": true, - "fields": {} - }, - { - "type": "glimmer_template", - "named": true, - "fields": { - "close_tag": { - "multiple": false, - "required": true, - "types": [ - { - "type": "glimmer_closing_tag", - "named": true - } - ] - }, - "open_tag": { - "multiple": false, - "required": true, - "types": [ - { - "type": "glimmer_opening_tag", - "named": true - } - ] - } - } - }, - { - "type": "identifier", - "named": true, - "fields": {} - }, - { - "type": "if_statement", - "named": true, - "fields": { - "alternative": { - "multiple": false, - "required": false, - "types": [ - { - "type": "else_clause", - "named": true - } - ] - }, - "condition": { - "multiple": false, - "required": true, - "types": [ - { - "type": "parenthesized_expression", - "named": true - } - ] - }, - "consequence": { - "multiple": false, - "required": true, - "types": [ - { - "type": "statement", - "named": true - } - ] - } - } - }, - { - "type": "implements_clause", - "named": true, - "fields": {}, - "children": { - "multiple": true, - "required": true, - "types": [ - { - "type": "_primary_type", - "named": true - }, - { - "type": "constructor_type", - "named": true - }, - { - "type": "function_type", - "named": true - }, - { - "type": "infer_type", - "named": true - }, - { - "type": "readonly_type", - "named": true - } - ] - } - }, - { - "type": "import", - "named": true, - "fields": {} - }, - { - "type": "import_alias", - "named": true, - "fields": {}, - "children": { - "multiple": true, - "required": true, - "types": [ - { - "type": "identifier", - "named": true - }, - { - "type": "nested_identifier", - "named": true - } - ] - } - }, - { - "type": "import_attribute", - "named": true, - "fields": {}, - "children": { - "multiple": false, - "required": true, - "types": [ - { - "type": "object", - "named": true - } - ] - } - }, - { - "type": "import_clause", - "named": true, - "fields": {}, - "children": { - "multiple": true, - "required": true, - "types": [ - { - "type": "identifier", - "named": true - }, - { - "type": "named_imports", - "named": true - }, - { - "type": "namespace_import", - "named": true - } - ] - } - }, - { - "type": "import_require_clause", - "named": true, - "fields": { - "source": { - "multiple": false, - "required": true, - "types": [ - { - "type": "string", - "named": true - } - ] - } - }, - "children": { - "multiple": false, - "required": true, - "types": [ - { - "type": "identifier", - "named": true - } - ] - } - }, - { - "type": "import_specifier", - "named": true, - "fields": { - "alias": { - "multiple": false, - "required": false, - "types": [ - { - "type": "identifier", - "named": true - } - ] - }, - "name": { - "multiple": false, - "required": true, - "types": [ - { - "type": "identifier", - "named": true - }, - { - "type": "string", - "named": true - } - ] - } - } - }, - { - "type": "import_statement", - "named": true, - "fields": { - "source": { - "multiple": false, - "required": false, - "types": [ - { - "type": "string", - "named": true - } - ] - } - }, - "children": { - "multiple": true, - "required": false, - "types": [ - { - "type": "import_attribute", - "named": true - }, - { - "type": "import_clause", - "named": true - }, - { - "type": "import_require_clause", - "named": true - } - ] - } - }, - { - "type": "index_signature", - "named": true, - "fields": { - "index_type": { - "multiple": false, - "required": false, - "types": [ - { - "type": "_primary_type", - "named": true - }, - { - "type": "constructor_type", - "named": true - }, - { - "type": "function_type", - "named": true - }, - { - "type": "infer_type", - "named": true - }, - { - "type": "readonly_type", - "named": true - } - ] - }, - "name": { - "multiple": false, - "required": false, - "types": [ - { - "type": "identifier", - "named": true - } - ] - }, - "sign": { - "multiple": false, - "required": false, - "types": [ - { - "type": "+", - "named": false - }, - { - "type": "-", - "named": false - } - ] - }, - "type": { - "multiple": false, - "required": true, - "types": [ - { - "type": "adding_type_annotation", - "named": true - }, - { - "type": "omitting_type_annotation", - "named": true - }, - { - "type": "opting_type_annotation", - "named": true - }, - { - "type": "type_annotation", - "named": true - } - ] - } - }, - "children": { - "multiple": false, - "required": false, - "types": [ - { - "type": "mapped_type_clause", - "named": true - } - ] - } - }, - { - "type": "index_type_query", - "named": true, - "fields": {}, - "children": { - "multiple": false, - "required": true, - "types": [ - { - "type": "_primary_type", - "named": true - } - ] - } - }, - { - "type": "infer_type", - "named": true, - "fields": {}, - "children": { - "multiple": true, - "required": true, - "types": [ - { - "type": "_primary_type", - "named": true - }, - { - "type": "constructor_type", - "named": true - }, - { - "type": "function_type", - "named": true - }, - { - "type": "infer_type", - "named": true - }, - { - "type": "readonly_type", - "named": true - } - ] - } - }, - { - "type": "instantiation_expression", - "named": true, - "fields": { - "function": { - "multiple": false, - "required": false, - "types": [ - { - "type": "identifier", - "named": true - }, - { - "type": "import", - "named": true - }, - { - "type": "member_expression", - "named": true - }, - { - "type": "subscript_expression", - "named": true - } - ] - }, - "type_arguments": { - "multiple": false, - "required": true, - "types": [ - { - "type": "type_arguments", - "named": true - } - ] - } - }, - "children": { - "multiple": false, - "required": false, - "types": [ - { - "type": "expression", - "named": true - } - ] - } - }, - { - "type": "interface_body", - "named": true, - "fields": {}, - "children": { - "multiple": true, - "required": false, - "types": [ - { - "type": "call_signature", - "named": true - }, - { - "type": "construct_signature", - "named": true - }, - { - "type": "export_statement", - "named": true - }, - { - "type": "index_signature", - "named": true - }, - { - "type": "method_signature", - "named": true - }, - { - "type": "property_signature", - "named": true - } - ] - } - }, - { - "type": "interface_declaration", - "named": true, - "fields": { - "body": { - "multiple": false, - "required": true, - "types": [ - { - "type": "interface_body", - "named": true - } - ] - }, - "name": { - "multiple": false, - "required": true, - "types": [ - { - "type": "type_identifier", - "named": true - } - ] - }, - "type_parameters": { - "multiple": false, - "required": false, - "types": [ - { - "type": "type_parameters", - "named": true - } - ] - } - }, - "children": { - "multiple": false, - "required": false, - "types": [ - { - "type": "extends_type_clause", - "named": true - } - ] - } - }, - { - "type": "internal_module", - "named": true, - "fields": { - "body": { - "multiple": false, - "required": false, - "types": [ - { - "type": "statement_block", - "named": true - } - ] - }, - "name": { - "multiple": false, - "required": true, - "types": [ - { - "type": "identifier", - "named": true - }, - { - "type": "nested_identifier", - "named": true - }, - { - "type": "string", - "named": true - } - ] - } - } - }, - { - "type": "intersection_type", - "named": true, - "fields": {}, - "children": { - "multiple": true, - "required": true, - "types": [ - { - "type": "_primary_type", - "named": true - }, - { - "type": "constructor_type", - "named": true - }, - { - "type": "function_type", - "named": true - }, - { - "type": "infer_type", - "named": true - }, - { - "type": "readonly_type", - "named": true - } - ] - } - }, - { - "type": "jsx_attribute", - "named": true, - "fields": {}, - "children": { - "multiple": true, - "required": true, - "types": [ - { - "type": "jsx_element", - "named": true - }, - { - "type": "jsx_expression", - "named": true - }, - { - "type": "jsx_namespace_name", - "named": true - }, - { - "type": "jsx_self_closing_element", - "named": true - }, - { - "type": "property_identifier", - "named": true - }, - { - "type": "string", - "named": true - } - ] - } - }, - { - "type": "jsx_closing_element", - "named": true, - "fields": { - "name": { - "multiple": false, - "required": false, - "types": [ - { - "type": "identifier", - "named": true - }, - { - "type": "jsx_namespace_name", - "named": true - }, - { - "type": "member_expression", - "named": true - } - ] - } - } - }, - { - "type": "jsx_element", - "named": true, - "fields": { - "close_tag": { - "multiple": false, - "required": true, - "types": [ - { - "type": "jsx_closing_element", - "named": true - } - ] - }, - "open_tag": { - "multiple": false, - "required": true, - "types": [ - { - "type": "jsx_opening_element", - "named": true - } - ] - } - }, - "children": { - "multiple": true, - "required": false, - "types": [ - { - "type": "html_character_reference", - "named": true - }, - { - "type": "jsx_element", - "named": true - }, - { - "type": "jsx_expression", - "named": true - }, - { - "type": "jsx_self_closing_element", - "named": true - }, - { - "type": "jsx_text", - "named": true - } - ] - } - }, - { - "type": "jsx_expression", - "named": true, - "fields": {}, - "children": { - "multiple": false, - "required": false, - "types": [ - { - "type": "expression", - "named": true - }, - { - "type": "sequence_expression", - "named": true - }, - { - "type": "spread_element", - "named": true - } - ] - } - }, - { - "type": "jsx_namespace_name", - "named": true, - "fields": {}, - "children": { - "multiple": true, - "required": true, - "types": [ - { - "type": "identifier", - "named": true - } - ] - } - }, - { - "type": "jsx_opening_element", - "named": true, - "fields": { - "attribute": { - "multiple": true, - "required": false, - "types": [ - { - "type": "jsx_attribute", - "named": true - }, - { - "type": "jsx_expression", - "named": true - } - ] - }, - "name": { - "multiple": false, - "required": false, - "types": [ - { - "type": "identifier", - "named": true - }, - { - "type": "jsx_namespace_name", - "named": true - }, - { - "type": "member_expression", - "named": true - } - ] - }, - "type_arguments": { - "multiple": false, - "required": false, - "types": [ - { - "type": "type_arguments", - "named": true - } - ] - } - } - }, - { - "type": "jsx_self_closing_element", - "named": true, - "fields": { - "attribute": { - "multiple": true, - "required": false, - "types": [ - { - "type": "jsx_attribute", - "named": true - }, - { - "type": "jsx_expression", - "named": true - } - ] - }, - "name": { - "multiple": false, - "required": false, - "types": [ - { - "type": "identifier", - "named": true - }, - { - "type": "jsx_namespace_name", - "named": true - }, - { - "type": "member_expression", - "named": true - } - ] - }, - "type_arguments": { - "multiple": false, - "required": false, - "types": [ - { - "type": "type_arguments", - "named": true - } - ] - } - } - }, - { - "type": "jsx_text", - "named": true, - "fields": {} - }, - { - "type": "labeled_statement", - "named": true, - "fields": { - "body": { - "multiple": false, - "required": true, - "types": [ - { - "type": "statement", - "named": true - } - ] - }, - "label": { - "multiple": false, - "required": true, - "types": [ - { - "type": "statement_identifier", - "named": true - } - ] - } - } - }, - { - "type": "lexical_declaration", - "named": true, - "fields": { - "kind": { - "multiple": false, - "required": true, - "types": [ - { - "type": "const", - "named": false - }, - { - "type": "let", - "named": false - } - ] - } - }, - "children": { - "multiple": true, - "required": true, - "types": [ - { - "type": "variable_declarator", - "named": true - } - ] - } - }, - { - "type": "literal_type", - "named": true, - "fields": {}, - "children": { - "multiple": false, - "required": true, - "types": [ - { - "type": "false", - "named": true - }, - { - "type": "null", - "named": true - }, - { - "type": "number", - "named": true - }, - { - "type": "string", - "named": true - }, - { - "type": "true", - "named": true - }, - { - "type": "unary_expression", - "named": true - }, - { - "type": "undefined", - "named": true - } - ] - } - }, - { - "type": "lookup_type", - "named": true, - "fields": {}, - "children": { - "multiple": true, - "required": true, - "types": [ - { - "type": "_primary_type", - "named": true - }, - { - "type": "constructor_type", - "named": true - }, - { - "type": "function_type", - "named": true - }, - { - "type": "infer_type", - "named": true - }, - { - "type": "readonly_type", - "named": true - } - ] - } - }, - { - "type": "mapped_type_clause", - "named": true, - "fields": { - "alias": { - "multiple": false, - "required": false, - "types": [ - { - "type": "_primary_type", - "named": true - }, - { - "type": "constructor_type", - "named": true - }, - { - "type": "function_type", - "named": true - }, - { - "type": "infer_type", - "named": true - }, - { - "type": "readonly_type", - "named": true - } - ] - }, - "name": { - "multiple": false, - "required": true, - "types": [ - { - "type": "type_identifier", - "named": true - } - ] - }, - "type": { - "multiple": false, - "required": true, - "types": [ - { - "type": "_primary_type", - "named": true - }, - { - "type": "constructor_type", - "named": true - }, - { - "type": "function_type", - "named": true - }, - { - "type": "infer_type", - "named": true - }, - { - "type": "readonly_type", - "named": true - } - ] - } - } - }, - { - "type": "member_expression", - "named": true, - "fields": { - "object": { - "multiple": false, - "required": true, - "types": [ - { - "type": "expression", - "named": true - }, - { - "type": "import", - "named": true - } - ] - }, - "optional_chain": { - "multiple": false, - "required": false, - "types": [ - { - "type": "optional_chain", - "named": true - } - ] - }, - "property": { - "multiple": false, - "required": true, - "types": [ - { - "type": "private_property_identifier", - "named": true - }, - { - "type": "property_identifier", - "named": true - } - ] - } - } - }, - { - "type": "meta_property", - "named": true, - "fields": {} - }, - { - "type": "method_definition", - "named": true, - "fields": { - "body": { - "multiple": false, - "required": true, - "types": [ - { - "type": "statement_block", - "named": true - } - ] - }, - "name": { - "multiple": false, - "required": true, - "types": [ - { - "type": "computed_property_name", - "named": true - }, - { - "type": "number", - "named": true - }, - { - "type": "private_property_identifier", - "named": true - }, - { - "type": "property_identifier", - "named": true - }, - { - "type": "string", - "named": true - } - ] - }, - "parameters": { - "multiple": false, - "required": true, - "types": [ - { - "type": "formal_parameters", - "named": true - } - ] - }, - "return_type": { - "multiple": false, - "required": false, - "types": [ - { - "type": "asserts_annotation", - "named": true - }, - { - "type": "type_annotation", - "named": true - }, - { - "type": "type_predicate_annotation", - "named": true - } - ] - }, - "type_parameters": { - "multiple": false, - "required": false, - "types": [ - { - "type": "type_parameters", - "named": true - } - ] - } - }, - "children": { - "multiple": true, - "required": false, - "types": [ - { - "type": "accessibility_modifier", - "named": true - }, - { - "type": "override_modifier", - "named": true - } - ] - } - }, - { - "type": "method_signature", - "named": true, - "fields": { - "name": { - "multiple": false, - "required": true, - "types": [ - { - "type": "computed_property_name", - "named": true - }, - { - "type": "number", - "named": true - }, - { - "type": "private_property_identifier", - "named": true - }, - { - "type": "property_identifier", - "named": true - }, - { - "type": "string", - "named": true - } - ] - }, - "parameters": { - "multiple": false, - "required": true, - "types": [ - { - "type": "formal_parameters", - "named": true - } - ] - }, - "return_type": { - "multiple": false, - "required": false, - "types": [ - { - "type": "asserts_annotation", - "named": true - }, - { - "type": "type_annotation", - "named": true - }, - { - "type": "type_predicate_annotation", - "named": true - } - ] - }, - "type_parameters": { - "multiple": false, - "required": false, - "types": [ - { - "type": "type_parameters", - "named": true - } - ] - } - }, - "children": { - "multiple": true, - "required": false, - "types": [ - { - "type": "accessibility_modifier", - "named": true - }, - { - "type": "override_modifier", - "named": true - } - ] - } - }, - { - "type": "module", - "named": true, - "fields": { - "body": { - "multiple": false, - "required": false, - "types": [ - { - "type": "statement_block", - "named": true - } - ] - }, - "name": { - "multiple": false, - "required": true, - "types": [ - { - "type": "identifier", - "named": true - }, - { - "type": "nested_identifier", - "named": true - }, - { - "type": "string", - "named": true - } - ] - } - } - }, - { - "type": "named_imports", - "named": true, - "fields": {}, - "children": { - "multiple": true, - "required": false, - "types": [ - { - "type": "import_specifier", - "named": true - } - ] - } - }, - { - "type": "namespace_export", - "named": true, - "fields": {}, - "children": { - "multiple": false, - "required": true, - "types": [ - { - "type": "identifier", - "named": true - }, - { - "type": "string", - "named": true - } - ] - } - }, - { - "type": "namespace_import", - "named": true, - "fields": {}, - "children": { - "multiple": false, - "required": true, - "types": [ - { - "type": "identifier", - "named": true - } - ] - } - }, - { - "type": "nested_identifier", - "named": true, - "fields": { - "object": { - "multiple": false, - "required": false, - "types": [ - { - "type": "identifier", - "named": true - }, - { - "type": "member_expression", - "named": true - } - ] - }, - "property": { - "multiple": false, - "required": false, - "types": [ - { - "type": "property_identifier", - "named": true - } - ] - } - }, - "children": { - "multiple": true, - "required": false, - "types": [ - { - "type": "identifier", - "named": true - }, - { - "type": "nested_identifier", - "named": true - } - ] - } - }, - { - "type": "nested_type_identifier", - "named": true, - "fields": { - "module": { - "multiple": false, - "required": true, - "types": [ - { - "type": "identifier", - "named": true - }, - { - "type": "nested_identifier", - "named": true - } - ] - }, - "name": { - "multiple": false, - "required": true, - "types": [ - { - "type": "type_identifier", - "named": true - } - ] - } - } - }, - { - "type": "new_expression", - "named": true, - "fields": { - "arguments": { - "multiple": false, - "required": false, - "types": [ - { - "type": "arguments", - "named": true - } - ] - }, - "constructor": { - "multiple": false, - "required": true, - "types": [ - { - "type": "primary_expression", - "named": true - } - ] - }, - "type_arguments": { - "multiple": false, - "required": false, - "types": [ - { - "type": "type_arguments", - "named": true - } - ] - } - } - }, - { - "type": "non_null_expression", - "named": true, - "fields": {}, - "children": { - "multiple": false, - "required": true, - "types": [ - { - "type": "expression", - "named": true - } - ] - } - }, - { - "type": "object", - "named": true, - "fields": {}, - "children": { - "multiple": true, - "required": false, - "types": [ - { - "type": "method_definition", - "named": true - }, - { - "type": "pair", - "named": true - }, - { - "type": "shorthand_property_identifier", - "named": true - }, - { - "type": "spread_element", - "named": true - } - ] - } - }, - { - "type": "object_assignment_pattern", - "named": true, - "fields": { - "left": { - "multiple": false, - "required": true, - "types": [ - { - "type": "array_pattern", - "named": true - }, - { - "type": "object_pattern", - "named": true - }, - { - "type": "shorthand_property_identifier_pattern", - "named": true - } - ] - }, - "right": { - "multiple": false, - "required": true, - "types": [ - { - "type": "expression", - "named": true - } - ] - } - } - }, - { - "type": "object_pattern", - "named": true, - "fields": {}, - "children": { - "multiple": true, - "required": false, - "types": [ - { - "type": "object_assignment_pattern", - "named": true - }, - { - "type": "pair_pattern", - "named": true - }, - { - "type": "rest_pattern", - "named": true - }, - { - "type": "shorthand_property_identifier_pattern", - "named": true - } - ] - } - }, - { - "type": "object_type", - "named": true, - "fields": {}, - "children": { - "multiple": true, - "required": false, - "types": [ - { - "type": "call_signature", - "named": true - }, - { - "type": "construct_signature", - "named": true - }, - { - "type": "export_statement", - "named": true - }, - { - "type": "index_signature", - "named": true - }, - { - "type": "method_signature", - "named": true - }, - { - "type": "property_signature", - "named": true - } - ] - } - }, - { - "type": "omitting_type_annotation", - "named": true, - "fields": {}, - "children": { - "multiple": false, - "required": true, - "types": [ - { - "type": "_primary_type", - "named": true - }, - { - "type": "constructor_type", - "named": true - }, - { - "type": "function_type", - "named": true - }, - { - "type": "infer_type", - "named": true - }, - { - "type": "readonly_type", - "named": true - } - ] - } - }, - { - "type": "opting_type_annotation", - "named": true, - "fields": {}, - "children": { - "multiple": false, - "required": true, - "types": [ - { - "type": "_primary_type", - "named": true - }, - { - "type": "constructor_type", - "named": true - }, - { - "type": "function_type", - "named": true - }, - { - "type": "infer_type", - "named": true - }, - { - "type": "readonly_type", - "named": true - } - ] - } - }, - { - "type": "optional_chain", - "named": true, - "fields": {} - }, - { - "type": "optional_parameter", - "named": true, - "fields": { - "decorator": { - "multiple": true, - "required": false, - "types": [ - { - "type": "decorator", - "named": true - } - ] - }, - "name": { - "multiple": false, - "required": false, - "types": [ - { - "type": "identifier", - "named": true - } - ] - }, - "pattern": { - "multiple": false, - "required": false, - "types": [ - { - "type": "pattern", - "named": true - }, - { - "type": "this", - "named": true - } - ] - }, - "type": { - "multiple": false, - "required": false, - "types": [ - { - "type": "type_annotation", - "named": true - } - ] - }, - "value": { - "multiple": false, - "required": false, - "types": [ - { - "type": "expression", - "named": true - } - ] - } - }, - "children": { - "multiple": true, - "required": false, - "types": [ - { - "type": "accessibility_modifier", - "named": true - }, - { - "type": "override_modifier", - "named": true - } - ] - } - }, - { - "type": "optional_type", - "named": true, - "fields": {}, - "children": { - "multiple": false, - "required": true, - "types": [ - { - "type": "_primary_type", - "named": true - }, - { - "type": "constructor_type", - "named": true - }, - { - "type": "function_type", - "named": true - }, - { - "type": "infer_type", - "named": true - }, - { - "type": "readonly_type", - "named": true - } - ] - } - }, - { - "type": "override_modifier", - "named": true, - "fields": {} - }, - { - "type": "pair", - "named": true, - "fields": { - "key": { - "multiple": false, - "required": true, - "types": [ - { - "type": "computed_property_name", - "named": true - }, - { - "type": "number", - "named": true - }, - { - "type": "private_property_identifier", - "named": true - }, - { - "type": "property_identifier", - "named": true - }, - { - "type": "string", - "named": true - } - ] - }, - "value": { - "multiple": false, - "required": true, - "types": [ - { - "type": "expression", - "named": true - } - ] - } - } - }, - { - "type": "pair_pattern", - "named": true, - "fields": { - "key": { - "multiple": false, - "required": true, - "types": [ - { - "type": "computed_property_name", - "named": true - }, - { - "type": "number", - "named": true - }, - { - "type": "private_property_identifier", - "named": true - }, - { - "type": "property_identifier", - "named": true - }, - { - "type": "string", - "named": true - } - ] - }, - "value": { - "multiple": false, - "required": true, - "types": [ - { - "type": "assignment_pattern", - "named": true - }, - { - "type": "pattern", - "named": true - } - ] - } - } - }, - { - "type": "parenthesized_expression", - "named": true, - "fields": { - "type": { - "multiple": false, - "required": false, - "types": [ - { - "type": "type_annotation", - "named": true - } - ] - } - }, - "children": { - "multiple": false, - "required": true, - "types": [ - { - "type": "expression", - "named": true - }, - { - "type": "sequence_expression", - "named": true - } - ] - } - }, - { - "type": "parenthesized_type", - "named": true, - "fields": {}, - "children": { - "multiple": false, - "required": true, - "types": [ - { - "type": "_primary_type", - "named": true - }, - { - "type": "constructor_type", - "named": true - }, - { - "type": "function_type", - "named": true - }, - { - "type": "infer_type", - "named": true - }, - { - "type": "readonly_type", - "named": true - } - ] - } - }, - { - "type": "predefined_type", - "named": true, - "fields": {} - }, - { - "type": "program", - "named": true, - "fields": { - "root": { - "multiple": false, - "required": true, - "types": [ - { - "type": "ui_annotated_object", - "named": true - }, - { - "type": "ui_object_definition", - "named": true - } - ] - } - }, - "children": { - "multiple": true, - "required": false, - "types": [ - { - "type": "hash_bang_line", - "named": true - }, - { - "type": "ui_import", - "named": true - }, - { - "type": "ui_pragma", - "named": true - } - ] - } - }, - { - "type": "property_signature", - "named": true, - "fields": { - "name": { - "multiple": false, - "required": true, - "types": [ - { - "type": "computed_property_name", - "named": true - }, - { - "type": "number", - "named": true - }, - { - "type": "private_property_identifier", - "named": true - }, - { - "type": "property_identifier", - "named": true - }, - { - "type": "string", - "named": true - } - ] - }, - "type": { - "multiple": false, - "required": false, - "types": [ - { - "type": "type_annotation", - "named": true - } - ] - } - }, - "children": { - "multiple": true, - "required": false, - "types": [ - { - "type": "accessibility_modifier", - "named": true - }, - { - "type": "override_modifier", - "named": true - } - ] - } - }, - { - "type": "public_field_definition", - "named": true, - "fields": { - "decorator": { - "multiple": true, - "required": false, - "types": [ - { - "type": "decorator", - "named": true - } - ] - }, - "name": { - "multiple": false, - "required": true, - "types": [ - { - "type": "computed_property_name", - "named": true - }, - { - "type": "number", - "named": true - }, - { - "type": "private_property_identifier", - "named": true - }, - { - "type": "property_identifier", - "named": true - }, - { - "type": "string", - "named": true - } - ] - }, - "type": { - "multiple": false, - "required": false, - "types": [ - { - "type": "type_annotation", - "named": true - } - ] - }, - "value": { - "multiple": false, - "required": false, - "types": [ - { - "type": "expression", - "named": true - } - ] - } - }, - "children": { - "multiple": true, - "required": false, - "types": [ - { - "type": "accessibility_modifier", - "named": true - }, - { - "type": "override_modifier", - "named": true - } - ] - } - }, - { - "type": "readonly_type", - "named": true, - "fields": {}, - "children": { - "multiple": false, - "required": true, - "types": [ - { - "type": "_primary_type", - "named": true - }, - { - "type": "constructor_type", - "named": true - }, - { - "type": "function_type", - "named": true - }, - { - "type": "infer_type", - "named": true - }, - { - "type": "readonly_type", - "named": true - } - ] - } - }, - { - "type": "regex", - "named": true, - "fields": { - "flags": { - "multiple": false, - "required": false, - "types": [ - { - "type": "regex_flags", - "named": true - } - ] - }, - "pattern": { - "multiple": false, - "required": true, - "types": [ - { - "type": "regex_pattern", - "named": true - } - ] - } - } - }, - { - "type": "required_parameter", - "named": true, - "fields": { - "decorator": { - "multiple": true, - "required": false, - "types": [ - { - "type": "decorator", - "named": true - } - ] - }, - "name": { - "multiple": false, - "required": false, - "types": [ - { - "type": "identifier", - "named": true - }, - { - "type": "rest_pattern", - "named": true - } - ] - }, - "pattern": { - "multiple": false, - "required": false, - "types": [ - { - "type": "pattern", - "named": true - }, - { - "type": "this", - "named": true - } - ] - }, - "type": { - "multiple": false, - "required": false, - "types": [ - { - "type": "type_annotation", - "named": true - } - ] - }, - "value": { - "multiple": false, - "required": false, - "types": [ - { - "type": "expression", - "named": true - } - ] - } - }, - "children": { - "multiple": true, - "required": false, - "types": [ - { - "type": "accessibility_modifier", - "named": true - }, - { - "type": "override_modifier", - "named": true - } - ] - } - }, - { - "type": "rest_pattern", - "named": true, - "fields": {}, - "children": { - "multiple": false, - "required": true, - "types": [ - { - "type": "array_pattern", - "named": true - }, - { - "type": "identifier", - "named": true - }, - { - "type": "member_expression", - "named": true - }, - { - "type": "non_null_expression", - "named": true - }, - { - "type": "object_pattern", - "named": true - }, - { - "type": "subscript_expression", - "named": true - }, - { - "type": "undefined", - "named": true - } - ] - } - }, - { - "type": "rest_type", - "named": true, - "fields": {}, - "children": { - "multiple": false, - "required": true, - "types": [ - { - "type": "_primary_type", - "named": true - }, - { - "type": "constructor_type", - "named": true - }, - { - "type": "function_type", - "named": true - }, - { - "type": "infer_type", - "named": true - }, - { - "type": "readonly_type", - "named": true - } - ] - } - }, - { - "type": "return_statement", - "named": true, - "fields": {}, - "children": { - "multiple": false, - "required": false, - "types": [ - { - "type": "expression", - "named": true - }, - { - "type": "sequence_expression", - "named": true - } - ] - } - }, - { - "type": "satisfies_expression", - "named": true, - "fields": {}, - "children": { - "multiple": true, - "required": true, - "types": [ - { - "type": "_primary_type", - "named": true - }, - { - "type": "constructor_type", - "named": true - }, - { - "type": "expression", - "named": true - }, - { - "type": "function_type", - "named": true - }, - { - "type": "infer_type", - "named": true - }, - { - "type": "readonly_type", - "named": true - } - ] - } - }, - { - "type": "sequence_expression", - "named": true, - "fields": {}, - "children": { - "multiple": true, - "required": true, - "types": [ - { - "type": "expression", - "named": true - } - ] - } - }, - { - "type": "spread_element", - "named": true, - "fields": {}, - "children": { - "multiple": false, - "required": true, - "types": [ - { - "type": "expression", - "named": true - } - ] - } - }, - { - "type": "statement_block", - "named": true, - "fields": {}, - "children": { - "multiple": true, - "required": false, - "types": [ - { - "type": "statement", - "named": true - } - ] - } - }, - { - "type": "string", - "named": true, - "fields": {}, - "children": { - "multiple": true, - "required": false, - "types": [ - { - "type": "escape_sequence", - "named": true - }, - { - "type": "html_character_reference", - "named": true - }, - { - "type": "string_fragment", - "named": true - } - ] - } - }, - { - "type": "subscript_expression", - "named": true, - "fields": { - "index": { - "multiple": false, - "required": true, - "types": [ - { - "type": "expression", - "named": true - }, - { - "type": "number", - "named": true - }, - { - "type": "predefined_type", - "named": true - }, - { - "type": "sequence_expression", - "named": true - }, - { - "type": "string", - "named": true - } - ] - }, - "object": { - "multiple": false, - "required": true, - "types": [ - { - "type": "expression", - "named": true - } - ] - }, - "optional_chain": { - "multiple": false, - "required": false, - "types": [ - { - "type": "optional_chain", - "named": true - } - ] - } - } - }, - { - "type": "switch_body", - "named": true, - "fields": {}, - "children": { - "multiple": true, - "required": false, - "types": [ - { - "type": "switch_case", - "named": true - }, - { - "type": "switch_default", - "named": true - } - ] - } - }, - { - "type": "switch_case", - "named": true, - "fields": { - "body": { - "multiple": true, - "required": false, - "types": [ - { - "type": "statement", - "named": true - } - ] - }, - "value": { - "multiple": false, - "required": true, - "types": [ - { - "type": "expression", - "named": true - }, - { - "type": "sequence_expression", - "named": true - } - ] - } - } - }, - { - "type": "switch_default", - "named": true, - "fields": { - "body": { - "multiple": true, - "required": false, - "types": [ - { - "type": "statement", - "named": true - } - ] - } - } - }, - { - "type": "switch_statement", - "named": true, - "fields": { - "body": { - "multiple": false, - "required": true, - "types": [ - { - "type": "switch_body", - "named": true - } - ] - }, - "value": { - "multiple": false, - "required": true, - "types": [ - { - "type": "parenthesized_expression", - "named": true - } - ] - } - } - }, - { - "type": "template_literal_type", - "named": true, - "fields": {}, - "children": { - "multiple": true, - "required": false, - "types": [ - { - "type": "template_type", - "named": true - } - ] - } - }, - { - "type": "template_string", - "named": true, - "fields": {}, - "children": { - "multiple": true, - "required": false, - "types": [ - { - "type": "escape_sequence", - "named": true - }, - { - "type": "string_fragment", - "named": true - }, - { - "type": "template_substitution", - "named": true - } - ] - } - }, - { - "type": "template_substitution", - "named": true, - "fields": {}, - "children": { - "multiple": false, - "required": true, - "types": [ - { - "type": "expression", - "named": true - }, - { - "type": "sequence_expression", - "named": true - } - ] - } - }, - { - "type": "template_type", - "named": true, - "fields": {}, - "children": { - "multiple": false, - "required": true, - "types": [ - { - "type": "_primary_type", - "named": true - }, - { - "type": "infer_type", - "named": true - } - ] - } - }, - { - "type": "ternary_expression", - "named": true, - "fields": { - "alternative": { - "multiple": false, - "required": true, - "types": [ - { - "type": "expression", - "named": true - } - ] - }, - "condition": { - "multiple": false, - "required": true, - "types": [ - { - "type": "expression", - "named": true - } - ] - }, - "consequence": { - "multiple": false, - "required": true, - "types": [ - { - "type": "expression", - "named": true - } - ] - } - } - }, - { - "type": "throw_statement", - "named": true, - "fields": {}, - "children": { - "multiple": false, - "required": true, - "types": [ - { - "type": "expression", - "named": true - }, - { - "type": "sequence_expression", - "named": true - } - ] - } - }, - { - "type": "try_statement", - "named": true, - "fields": { - "body": { - "multiple": false, - "required": true, - "types": [ - { - "type": "statement_block", - "named": true - } - ] - }, - "finalizer": { - "multiple": false, - "required": false, - "types": [ - { - "type": "finally_clause", - "named": true - } - ] - }, - "handler": { - "multiple": false, - "required": false, - "types": [ - { - "type": "catch_clause", - "named": true - } - ] - } - } - }, - { - "type": "tuple_type", - "named": true, - "fields": {}, - "children": { - "multiple": true, - "required": false, - "types": [ - { - "type": "_primary_type", - "named": true - }, - { - "type": "constructor_type", - "named": true - }, - { - "type": "function_type", - "named": true - }, - { - "type": "infer_type", - "named": true - }, - { - "type": "optional_parameter", - "named": true - }, - { - "type": "optional_type", - "named": true - }, - { - "type": "readonly_type", - "named": true - }, - { - "type": "required_parameter", - "named": true - }, - { - "type": "rest_type", - "named": true - } - ] - } - }, - { - "type": "type_alias_declaration", - "named": true, - "fields": { - "name": { - "multiple": false, - "required": true, - "types": [ - { - "type": "type_identifier", - "named": true - } - ] - }, - "type_parameters": { - "multiple": false, - "required": false, - "types": [ - { - "type": "type_parameters", - "named": true - } - ] - }, - "value": { - "multiple": false, - "required": true, - "types": [ - { - "type": "_primary_type", - "named": true - }, - { - "type": "constructor_type", - "named": true - }, - { - "type": "function_type", - "named": true - }, - { - "type": "infer_type", - "named": true - }, - { - "type": "readonly_type", - "named": true - } - ] - } - } - }, - { - "type": "type_annotation", - "named": true, - "fields": {}, - "children": { - "multiple": false, - "required": true, - "types": [ - { - "type": "_primary_type", - "named": true - }, - { - "type": "call_expression", - "named": true - }, - { - "type": "constructor_type", - "named": true - }, - { - "type": "function_type", - "named": true - }, - { - "type": "infer_type", - "named": true - }, - { - "type": "member_expression", - "named": true - }, - { - "type": "readonly_type", - "named": true - } - ] - } - }, - { - "type": "type_arguments", - "named": true, - "fields": {}, - "children": { - "multiple": true, - "required": true, - "types": [ - { - "type": "_primary_type", - "named": true - }, - { - "type": "call_expression", - "named": true - }, - { - "type": "constructor_type", - "named": true - }, - { - "type": "function_type", - "named": true - }, - { - "type": "infer_type", - "named": true - }, - { - "type": "member_expression", - "named": true - }, - { - "type": "readonly_type", - "named": true - } - ] - } - }, - { - "type": "type_assertion", - "named": true, - "fields": {}, - "children": { - "multiple": true, - "required": true, - "types": [ - { - "type": "expression", - "named": true - }, - { - "type": "type_arguments", - "named": true - } - ] - } - }, - { - "type": "type_parameter", - "named": true, - "fields": { - "constraint": { - "multiple": false, - "required": false, - "types": [ - { - "type": "constraint", - "named": true - } - ] - }, - "name": { - "multiple": false, - "required": true, - "types": [ - { - "type": "type_identifier", - "named": true - } - ] - }, - "value": { - "multiple": false, - "required": false, - "types": [ - { - "type": "default_type", - "named": true - } - ] - } - } - }, - { - "type": "type_parameters", - "named": true, - "fields": {}, - "children": { - "multiple": true, - "required": true, - "types": [ - { - "type": "type_parameter", - "named": true - } - ] - } - }, - { - "type": "type_predicate", - "named": true, - "fields": { - "name": { - "multiple": false, - "required": true, - "types": [ - { - "type": "identifier", - "named": true - }, - { - "type": "this", - "named": true - } - ] - }, - "type": { - "multiple": false, - "required": true, - "types": [ - { - "type": "_primary_type", - "named": true - }, - { - "type": "constructor_type", - "named": true - }, - { - "type": "function_type", - "named": true - }, - { - "type": "infer_type", - "named": true - }, - { - "type": "readonly_type", - "named": true - } - ] - } - } - }, - { - "type": "type_predicate_annotation", - "named": true, - "fields": {}, - "children": { - "multiple": false, - "required": true, - "types": [ - { - "type": "type_predicate", - "named": true - } - ] - } - }, - { - "type": "type_query", - "named": true, - "fields": {}, - "children": { - "multiple": false, - "required": true, - "types": [ - { - "type": "call_expression", - "named": true - }, - { - "type": "identifier", - "named": true - }, - { - "type": "instantiation_expression", - "named": true - }, - { - "type": "member_expression", - "named": true - }, - { - "type": "subscript_expression", - "named": true - } - ] - } - }, - { - "type": "ui_annotated_object", - "named": true, - "fields": { - "annotation": { - "multiple": true, - "required": true, - "types": [ - { - "type": "ui_annotation", - "named": true - } - ] - }, - "definition": { - "multiple": false, - "required": true, - "types": [ - { - "type": "ui_object_definition", - "named": true - } - ] - } - } - }, - { - "type": "ui_annotated_object_member", - "named": true, - "fields": { - "annotation": { - "multiple": true, - "required": true, - "types": [ - { - "type": "ui_annotation", - "named": true - } - ] - }, - "definition": { - "multiple": false, - "required": true, - "types": [ - { - "type": "_ui_object_member", - "named": true - } - ] - } - } - }, - { - "type": "ui_annotation", - "named": true, - "fields": { - "initializer": { - "multiple": false, - "required": true, - "types": [ - { - "type": "ui_object_initializer", - "named": true - } - ] - }, - "type_name": { - "multiple": false, - "required": true, - "types": [ - { - "type": "identifier", - "named": true - }, - { - "type": "nested_identifier", - "named": true - } - ] - } - } - }, - { - "type": "ui_binding", - "named": true, - "fields": { - "name": { - "multiple": false, - "required": true, - "types": [ - { - "type": "identifier", - "named": true - }, - { - "type": "nested_identifier", - "named": true - } - ] - }, - "value": { - "multiple": false, - "required": true, - "types": [ - { - "type": "_ui_script_statement", - "named": true - }, - { - "type": "ui_object_array", - "named": true - }, - { - "type": "ui_object_definition", - "named": true - } - ] - } - } - }, - { - "type": "ui_import", - "named": true, - "fields": { - "alias": { - "multiple": false, - "required": false, - "types": [ - { - "type": "identifier", - "named": true - } - ] - }, - "source": { - "multiple": false, - "required": true, - "types": [ - { - "type": "identifier", - "named": true - }, - { - "type": "nested_identifier", - "named": true - }, - { - "type": "string", - "named": true - } - ] - }, - "version": { - "multiple": false, - "required": false, - "types": [ - { - "type": "ui_version_specifier", - "named": true - } - ] - } - } - }, - { - "type": "ui_inline_component", - "named": true, - "fields": { - "component": { - "multiple": false, - "required": true, - "types": [ - { - "type": "ui_object_definition", - "named": true - } - ] - }, - "name": { - "multiple": false, - "required": true, - "types": [ - { - "type": "identifier", - "named": true - } - ] - } - } - }, - { - "type": "ui_list_property_type", - "named": true, - "fields": {}, - "children": { - "multiple": true, - "required": true, - "types": [ - { - "type": "nested_type_identifier", - "named": true - }, - { - "type": "type_identifier", - "named": true - } - ] - } - }, - { - "type": "ui_object_array", - "named": true, - "fields": {}, - "children": { - "multiple": true, - "required": true, - "types": [ - { - "type": "ui_object_definition", - "named": true - } - ] - } - }, - { - "type": "ui_object_definition", - "named": true, - "fields": { - "initializer": { - "multiple": false, - "required": true, - "types": [ - { - "type": "ui_object_initializer", - "named": true - } - ] - }, - "type_name": { - "multiple": false, - "required": true, - "types": [ - { - "type": "identifier", - "named": true - }, - { - "type": "nested_identifier", - "named": true - } - ] - } - } - }, - { - "type": "ui_object_definition_binding", - "named": true, - "fields": { - "initializer": { - "multiple": false, - "required": true, - "types": [ - { - "type": "ui_object_initializer", - "named": true - } - ] - }, - "name": { - "multiple": false, - "required": true, - "types": [ - { - "type": "identifier", - "named": true - }, - { - "type": "nested_identifier", - "named": true - } - ] - }, - "type_name": { - "multiple": false, - "required": true, - "types": [ - { - "type": "identifier", - "named": true - }, - { - "type": "nested_identifier", - "named": true - } - ] - } - } - }, - { - "type": "ui_object_initializer", - "named": true, - "fields": {}, - "children": { - "multiple": true, - "required": false, - "types": [ - { - "type": "_ui_object_member", - "named": true - }, - { - "type": "ui_annotated_object_member", - "named": true - } - ] - } - }, - { - "type": "ui_pragma", - "named": true, - "fields": { - "name": { - "multiple": false, - "required": true, - "types": [ - { - "type": "identifier", - "named": true - } - ] - }, - "value": { - "multiple": true, - "required": false, - "types": [ - { - "type": "identifier", - "named": true - }, - { - "type": "string", - "named": true - } - ] - } - } - }, - { - "type": "ui_property", - "named": true, - "fields": { - "name": { - "multiple": false, - "required": true, - "types": [ - { - "type": "identifier", - "named": true - } - ] - }, - "type": { - "multiple": false, - "required": true, - "types": [ - { - "type": "nested_type_identifier", - "named": true - }, - { - "type": "type_identifier", - "named": true - }, - { - "type": "ui_list_property_type", - "named": true - } - ] - }, - "value": { - "multiple": true, - "required": false, - "types": [ - { - "type": ";", - "named": false - }, - { - "type": "_ui_script_statement", - "named": true - }, - { - "type": "ui_object_array", - "named": true - }, - { - "type": "ui_object_definition", - "named": true - } - ] - } - }, - "children": { - "multiple": true, - "required": false, - "types": [ - { - "type": "ui_property_modifier", - "named": true - } - ] - } - }, - { - "type": "ui_property_modifier", - "named": true, - "fields": {} - }, - { - "type": "ui_required", - "named": true, - "fields": { - "name": { - "multiple": false, - "required": true, - "types": [ - { - "type": "identifier", - "named": true - } - ] - } - } - }, - { - "type": "ui_signal", - "named": true, - "fields": { - "name": { - "multiple": false, - "required": true, - "types": [ - { - "type": "identifier", - "named": true - } - ] - }, - "parameters": { - "multiple": false, - "required": false, - "types": [ - { - "type": "ui_signal_parameters", - "named": true - } - ] - } - } - }, - { - "type": "ui_signal_parameter", - "named": true, - "fields": { - "name": { - "multiple": false, - "required": true, - "types": [ - { - "type": "identifier", - "named": true - } - ] - }, - "type": { - "multiple": false, - "required": true, - "types": [ - { - "type": "nested_type_identifier", - "named": true - }, - { - "type": "type_identifier", - "named": true - } - ] - } - } - }, - { - "type": "ui_signal_parameters", - "named": true, - "fields": {}, - "children": { - "multiple": true, - "required": false, - "types": [ - { - "type": "ui_signal_parameter", - "named": true - } - ] - } - }, - { - "type": "ui_version_specifier", - "named": true, - "fields": { - "major": { - "multiple": false, - "required": true, - "types": [ - { - "type": "number", - "named": true - } - ] - }, - "minor": { - "multiple": false, - "required": false, - "types": [ - { - "type": "number", - "named": true - } - ] - } - } - }, - { - "type": "unary_expression", - "named": true, - "fields": { - "argument": { - "multiple": false, - "required": true, - "types": [ - { - "type": "expression", - "named": true - }, - { - "type": "number", - "named": true - } - ] - }, - "operator": { - "multiple": false, - "required": true, - "types": [ - { - "type": "!", - "named": false - }, - { - "type": "+", - "named": false - }, - { - "type": "-", - "named": false - }, - { - "type": "delete", - "named": false - }, - { - "type": "typeof", - "named": false - }, - { - "type": "void", - "named": false - }, - { - "type": "~", - "named": false - } - ] - } - } - }, - { - "type": "union_type", - "named": true, - "fields": {}, - "children": { - "multiple": true, - "required": true, - "types": [ - { - "type": "_primary_type", - "named": true - }, - { - "type": "constructor_type", - "named": true - }, - { - "type": "function_type", - "named": true - }, - { - "type": "infer_type", - "named": true - }, - { - "type": "readonly_type", - "named": true - } - ] - } - }, - { - "type": "update_expression", - "named": true, - "fields": { - "argument": { - "multiple": false, - "required": true, - "types": [ - { - "type": "expression", - "named": true - } - ] - }, - "operator": { - "multiple": false, - "required": true, - "types": [ - { - "type": "++", - "named": false - }, - { - "type": "--", - "named": false - } - ] - } - } - }, - { - "type": "variable_declaration", - "named": true, - "fields": {}, - "children": { - "multiple": true, - "required": true, - "types": [ - { - "type": "variable_declarator", - "named": true - } - ] - } - }, - { - "type": "variable_declarator", - "named": true, - "fields": { - "name": { - "multiple": false, - "required": true, - "types": [ - { - "type": "array_pattern", - "named": true - }, - { - "type": "identifier", - "named": true - }, - { - "type": "object_pattern", - "named": true - } - ] - }, - "type": { - "multiple": false, - "required": false, - "types": [ - { - "type": "type_annotation", - "named": true - } - ] - }, - "value": { - "multiple": false, - "required": false, - "types": [ - { - "type": "expression", - "named": true - } - ] - } - } - }, - { - "type": "while_statement", - "named": true, - "fields": { - "body": { - "multiple": false, - "required": true, - "types": [ - { - "type": "statement", - "named": true - } - ] - }, - "condition": { - "multiple": false, - "required": true, - "types": [ - { - "type": "parenthesized_expression", - "named": true - } - ] - } - } - }, - { - "type": "with_statement", - "named": true, - "fields": { - "body": { - "multiple": false, - "required": true, - "types": [ - { - "type": "statement", - "named": true - } - ] - }, - "object": { - "multiple": false, - "required": true, - "types": [ - { - "type": "parenthesized_expression", - "named": true - } - ] - } - } - }, - { - "type": "yield_expression", - "named": true, - "fields": {}, - "children": { - "multiple": false, - "required": false, - "types": [ - { - "type": "expression", - "named": true - } - ] - } - }, - { - "type": "!", - "named": false - }, - { - "type": "!=", - "named": false - }, - { - "type": "!==", - "named": false - }, - { - "type": "\"", - "named": false - }, - { - "type": "${", - "named": false - }, - { - "type": "%", - "named": false - }, - { - "type": "%=", - "named": false - }, - { - "type": "&", - "named": false - }, - { - "type": "&&", - "named": false - }, - { - "type": "&&=", - "named": false - }, - { - "type": "&=", - "named": false - }, - { - "type": "'", - "named": false - }, - { - "type": "(", - "named": false - }, - { - "type": ")", - "named": false - }, - { - "type": "*", - "named": false - }, - { - "type": "**", - "named": false - }, - { - "type": "**=", - "named": false - }, - { - "type": "*=", - "named": false - }, - { - "type": "+", - "named": false - }, - { - "type": "++", - "named": false - }, - { - "type": "+=", - "named": false - }, - { - "type": "+?:", - "named": false - }, - { - "type": ",", - "named": false - }, - { - "type": "-", - "named": false - }, - { - "type": "--", - "named": false - }, - { - "type": "-=", - "named": false - }, - { - "type": "-?:", - "named": false - }, - { - "type": ".", - "named": false - }, - { - "type": "...", - "named": false - }, - { - "type": "/", - "named": false - }, - { - "type": "/=", - "named": false - }, - { - "type": "/>", - "named": false - }, - { - "type": ":", - "named": false - }, - { - "type": ";", - "named": false - }, - { - "type": "<", - "named": false - }, - { - "type": "", - "named": false - }, - { - "type": "<<", - "named": false - }, - { - "type": "<<=", - "named": false - }, - { - "type": "<=", - "named": false - }, - { - "type": "