diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..65330c4 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,46 @@ +root = true + +[*] +charset = utf-8 + +[*.{json,toml,yml,gyp}] +indent_style = space +indent_size = 2 + +[*.js] +indent_style = space +indent_size = 2 + +[*.scm] +indent_style = space +indent_size = 2 + +[*.{c,cc,h}] +indent_style = space +indent_size = 4 + +[*.rs] +indent_style = space +indent_size = 4 + +[*.{py,pyi}] +indent_style = space +indent_size = 4 + +[*.swift] +indent_style = space +indent_size = 4 + +[*.go] +indent_style = tab +indent_size = 8 + +[Makefile] +indent_style = tab +indent_size = 8 + +[parser.c] +indent_size = 2 + +[{alloc,array,parser}.h] +indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index b2e707a..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1,20 +0,0 @@ -module.exports = { - 'env': { - 'commonjs': true, - 'es2021': true, - }, - 'extends': 'google', - 'overrides': [ - ], - 'parserOptions': { - 'ecmaVersion': 'latest', - 'sourceType': 'module', - }, - 'rules': { - 'indent': ['error', 2, {'SwitchCase': 1}], - 'max-len': [ - 'error', - {'code': 120, 'ignoreComments': true, 'ignoreUrls': true, 'ignoreStrings': true}, - ], - }, -}; diff --git a/.gitattributes b/.gitattributes index 951a194..7e2cae0 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,6 +1,37 @@ -/examples/* linguist-vendored +* text=auto eol=lf -src/tree_sitter/* linguist-generated -src/grammar.json linguist-generated -src/node-types.json linguist-generated +# Generated source files +src/*.json linguist-generated src/parser.c linguist-generated +src/tree_sitter/* linguist-generated + +# C bindings +bindings/c/* linguist-generated +CMakeLists.txt linguist-generated +Makefile linguist-generated + +# Rust bindings +bindings/rust/* linguist-generated +Cargo.toml linguist-generated +Cargo.lock linguist-generated + +# Node.js bindings +bindings/node/* linguist-generated +binding.gyp linguist-generated +package.json linguist-generated +package-lock.json linguist-generated + +# Python bindings +bindings/python/** linguist-generated +setup.py linguist-generated +pyproject.toml linguist-generated + +# Go bindings +bindings/go/* linguist-generated +go.mod linguist-generated +go.sum linguist-generated + +# Swift bindings +bindings/swift/** linguist-generated +Package.swift linguist-generated +Package.resolved linguist-generated diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d6e1e05..a2a572f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,37 +1,44 @@ name: CI + on: push: - branches: - - master + branches: [master] + paths: + - grammar.js + - src/** + - test/** + - bindings/** + - binding.gyp pull_request: - branches: - - master + paths: + - grammar.js + - src/** + - test/** + - bindings/** + - binding.gyp + +concurrency: + group: ${{github.workflow}}-${{github.ref}} + cancel-in-progress: true + jobs: test: - runs-on: ${{ matrix.os }} + name: Test parser + runs-on: ${{matrix.os}} strategy: - fail-fast: true + fail-fast: false matrix: - os: [macos-latest, ubuntu-latest] + os: [ubuntu-latest, windows-latest, macos-14] steps: - - uses: actions/checkout@v3 + - name: Checkout repository + uses: actions/checkout@v4 + - name: Set up tree-sitter + uses: tree-sitter/setup-action/cli@v2 + - name: Run tests + uses: tree-sitter/parser-test-action@v2 with: - submodules: true - fetch-depth: 0 - - uses: actions/setup-node@v3 - with: - node-version: 18 - - run: npm install - - run: npm test - test_windows: - runs-on: windows-latest - steps: - - uses: actions/checkout@v3 - with: - submodules: true - fetch-depth: 0 - - uses: actions/setup-node@v3 - with: - node-version: 18 - - run: npm install - - run: npm run-script test-windows + test-rust: true + test-node: true + test-python: true + test-go: true + test-swift: true diff --git a/.github/workflows/fuzz.yml b/.github/workflows/fuzz.yml index 78f87f1..ad67d88 100644 --- a/.github/workflows/fuzz.yml +++ b/.github/workflows/fuzz.yml @@ -2,21 +2,18 @@ name: Fuzz Parser on: push: + branches: [master] paths: - src/scanner.c pull_request: paths: - src/scanner.c - workflow_dispatch: jobs: - test: - name: Parser fuzzing + fuzz: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - uses: vigoux/tree-sitter-fuzz-action@v1 - with: - language: kconfig - external-scanner: src/scanner.c - time: 60 + - name: Checkout repository + uses: actions/checkout@v4 + - name: Run fuzzer + uses: tree-sitter/fuzz-action@v4 diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index d94f7f3..96f1a4d 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -2,18 +2,25 @@ name: Lint on: push: - branches: - - master + branches: [master] + paths: + - grammar.js pull_request: - branches: - - "**" + paths: + - grammar.js jobs: lint: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - name: Checkout repository + uses: actions/checkout@v4 + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + cache: npm + node-version: ${{vars.NODE_VERSION}} - name: Install modules - run: npm install + run: npm ci --legacy-peer-deps - name: Run ESLint run: npm run lint diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 0000000..35459aa --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,35 @@ +name: Publish packages + +on: + push: + tags: ["*"] + +permissions: + contents: write + id-token: write + attestations: write + +jobs: + github: + uses: tree-sitter/workflows/.github/workflows/release.yml@main + with: + generate: true + attestations: true + npm: + uses: tree-sitter/workflows/.github/workflows/package-npm.yml@main + secrets: + NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}} + with: + generate: true + crates: + uses: tree-sitter/workflows/.github/workflows/package-crates.yml@main + secrets: + CARGO_REGISTRY_TOKEN: ${{secrets.CARGO_REGISTRY_TOKEN}} + with: + generate: true + pypi: + uses: tree-sitter/workflows/.github/workflows/package-pypi.yml@main + secrets: + PYPI_API_TOKEN: ${{secrets.PYPI_API_TOKEN}} + with: + generate: true diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml deleted file mode 100644 index 2c76331..0000000 --- a/.github/workflows/release.yml +++ /dev/null @@ -1,82 +0,0 @@ -name: Release - -on: - workflow_run: - workflows: ["CI"] - types: - - completed - -permissions: - contents: write - pull-requests: write - -jobs: - release: - runs-on: ubuntu-latest - if: ${{ github.event.workflow_run.conclusion == 'success' && github.ref == 'refs/heads/master' }} - steps: - - uses: google-github-actions/release-please-action@v3 - id: release - with: - release-type: node - package-name: tree-sitter-kconfig - - - uses: actions/checkout@v3 - with: - token: ${{ secrets.GITHUB_TOKEN }} - - - name: Update Rust version - run: | - git fetch origin release-please--branches--master--components--tree-sitter-kconfig - git checkout release-please--branches--master--components--tree-sitter-kconfig - - git config user.name github-actions[bot] - git config user.email github-actions[bot]@users.noreply.github.com - - repo_name="${{ github.repository }}" - repo_name="${repo_name##*/}" - version=$(grep -o '"version": *"[^"]*"' package.json | sed 's/"version": "\(.*\)"/\1/') - - sed -i "s/version = \"[^\"]*\"/version = \"$version\"/g" Cargo.toml - sed -i "s/$repo_name = \"[^\"]*\"/$repo_name = \"$version\"/g" bindings/rust/README.md - - git add Cargo.toml bindings/rust/README.md - git commit --amend --no-edit - git push -f - - - name: Setup Node - if: ${{ steps.release.outputs.release_created }} - uses: actions/setup-node@v3 - with: - node-version: 18 - registry-url: "https://registry.npmjs.org" - - name: Publish to NPM - if: ${{ steps.release.outputs.release_created }} - env: - NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}} - run: npm publish - - - name: Setup Rust - if: ${{ steps.release.outputs.release_created }} - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: stable - override: true - - name: Publish to Crates.io - if: ${{ steps.release.outputs.release_created }} - uses: katyo/publish-crates@v2 - with: - registry-token: ${{ secrets.CARGO_REGISTRY_TOKEN }} - - - name: Tag stable versions - if: ${{ steps.release.outputs.release_created }} - run: | - git checkout master - git config user.name github-actions[bot] - git config user.email github-actions[bot]@users.noreply.github.com - git remote add gh-token "https://${{ secrets.GITHUB_TOKEN }}@github.com/google-github-actions/release-please-action.git" - git tag -d stable || true - git push origin :stable || true - git tag -a stable -m "Last Stable Release" - git push origin stable diff --git a/.gitignore b/.gitignore index c997138..308fcab 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,40 @@ -Cargo.lock -package-lock.json -node_modules -build -*.log +# Rust artifacts +target/ + +# Node artifacts +build/ +prebuilds/ +node_modules/ + +# Swift artifacts +.build/ + +# Go artifacts +_obj/ + +# Python artifacts +.venv/ +dist/ +*.egg-info +*.whl + +# C artifacts +*.a +*.so +*.so.* +*.dylib +*.dll +*.pc + +# Example dirs /examples/*/ -/target/ + +# Grammar volatiles +*.wasm +*.obj +*.o + +# Archives +*.tar.gz +*.tgz +*.zip diff --git a/.npmignore b/.npmignore deleted file mode 100644 index 194ff84..0000000 --- a/.npmignore +++ /dev/null @@ -1,5 +0,0 @@ -/test -/examples -/build -/script -/target diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index b538f6a..0000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,35 +0,0 @@ -# Changelog - -## [1.1.1](https://github.com/amaanq/tree-sitter-kconfig/compare/v1.1.0...v1.1.1) (2024-02-01) - - -### Bug Fixes - -* allow variables to be delimited by commas ([5fefd45](https://github.com/amaanq/tree-sitter-kconfig/commit/5fefd45628a32fc999aa9f4aebcc5ddcd071bcf2)) -* support more variable assignment operators ([dad9c38](https://github.com/amaanq/tree-sitter-kconfig/commit/dad9c38f12db7d441efd72785833746f7f9f7619)) - -## [1.1.0](https://github.com/amaanq/tree-sitter-kconfig/compare/v1.0.1...v1.1.0) (2024-01-25) - - -### Features - -* support variables ([d805c00](https://github.com/amaanq/tree-sitter-kconfig/commit/d805c0048057abf48292c771e1674267e5861576)) - - -### Bug Fixes - -* allow macro variables in ranges ([2bd2c9d](https://github.com/amaanq/tree-sitter-kconfig/commit/2bd2c9d12494e42d6ae0a8c89080f1639197ba8d)) - -## [1.0.1](https://github.com/amaanq/tree-sitter-kconfig/compare/v1.0.0...v1.0.1) (2023-08-31) - - -### Bug Fixes - -* update highlights ([aaba009](https://github.com/amaanq/tree-sitter-kconfig/commit/aaba009ba9d7881f0f81742da588ae70b572316d)) - -## 1.0.0 (2023-08-31) - - -### Features - -* Initial commit ([4242bff](https://github.com/amaanq/tree-sitter-kconfig/commit/4242bff4d92964a1cbaa95cb45a87a32b3e1c896)) diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..a53f2aa --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,58 @@ +cmake_minimum_required(VERSION 3.13) + +project(tree-sitter-kconfig + VERSION "1.1.1" + DESCRIPTION "Kconfig grammar for tree-sitter" + HOMEPAGE_URL "https://github.com/tree-sitter-grammars/tree-sitter-kconfig" + LANGUAGES C) + +option(BUILD_SHARED_LIBS "Build using shared libraries" ON) +option(TREE_SITTER_REUSE_ALLOCATOR "Reuse the library allocator" OFF) + +set(TREE_SITTER_ABI_VERSION 14 CACHE STRING "Tree-sitter ABI version") +if(NOT ${TREE_SITTER_ABI_VERSION} MATCHES "^[0-9]+$") + unset(TREE_SITTER_ABI_VERSION CACHE) + message(FATAL_ERROR "TREE_SITTER_ABI_VERSION must be an integer") +endif() + +find_program(TREE_SITTER_CLI tree-sitter DOC "Tree-sitter CLI") + +add_custom_command(OUTPUT "${CMAKE_CURRENT_SOURCE_DIR}/src/parser.c" + DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/src/grammar.json" + COMMAND "${TREE_SITTER_CLI}" generate src/grammar.json + --abi=${TREE_SITTER_ABI_VERSION} + WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" + COMMENT "Generating parser.c") + +add_library(tree-sitter-kconfig src/parser.c) +if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/src/scanner.c) + target_sources(tree-sitter-kconfig PRIVATE src/scanner.c) +endif() +target_include_directories(tree-sitter-kconfig PRIVATE src) + +target_compile_definitions(tree-sitter-kconfig PRIVATE + $<$:TREE_SITTER_REUSE_ALLOCATOR> + $<$:TREE_SITTER_DEBUG>) + +set_target_properties(tree-sitter-kconfig + PROPERTIES + C_STANDARD 11 + POSITION_INDEPENDENT_CODE ON + SOVERSION "${TREE_SITTER_ABI_VERSION}.${PROJECT_VERSION_MAJOR}" + DEFINE_SYMBOL "") + +configure_file(bindings/c/tree-sitter-kconfig.pc.in + "${CMAKE_CURRENT_BINARY_DIR}/tree-sitter-kconfig.pc" @ONLY) + +include(GNUInstallDirs) + +install(FILES bindings/c/tree-sitter-kconfig.h + DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/tree_sitter") +install(FILES "${CMAKE_CURRENT_BINARY_DIR}/tree-sitter-kconfig.pc" + DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/pkgconfig") +install(TARGETS tree-sitter-kconfig + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}") + +add_custom_target(ts-test "${TREE_SITTER_CLI}" test + WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" + COMMENT "tree-sitter test") diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000..315354c --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,96 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "aho-corasick" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +dependencies = [ + "memchr", +] + +[[package]] +name = "cc" +version = "1.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31a0499c1dc64f458ad13872de75c0eb7e3fdb0e67964610c914b034fc5956e" +dependencies = [ + "shlex", +] + +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + +[[package]] +name = "regex" +version = "1.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "streaming-iterator" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b2231b7c3057d5e4ad0156fb3dc807d900806020c5ffa3ee6ff2c8c76fb8520" + +[[package]] +name = "tree-sitter" +version = "0.24.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ac95b18f0f727aaaa012bd5179a1916706ee3ed071920fdbda738750b0c0bf5" +dependencies = [ + "cc", + "regex", + "regex-syntax", + "streaming-iterator", + "tree-sitter-language", +] + +[[package]] +name = "tree-sitter-kconfig" +version = "1.1.1" +dependencies = [ + "cc", + "tree-sitter", + "tree-sitter-language", +] + +[[package]] +name = "tree-sitter-language" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c199356c799a8945965bb5f2c55b2ad9d9aa7c4b4f6e587fe9dea0bc715e5f9c" diff --git a/Cargo.toml b/Cargo.toml index ad3e3e1..57a00bd 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,21 +4,30 @@ description = "Kconfig grammar for tree-sitter" version = "1.1.1" authors = ["Amaan Qureshi "] license = "MIT" -readme = "bindings/rust/README.md" -keywords = ["incremental", "parsing", "kconfig"] +readme = "README.md" +keywords = ["incremental", "parsing", "tree-sitter", "kconfig"] categories = ["parsing", "text-editors"] -repository = "https://github.com/amaanq/tree-sitter-kconfig" +repository = "https://github.com/tree-sitter-grammars/tree-sitter-kconfig" edition = "2021" autoexamples = false build = "bindings/rust/build.rs" -include = ["bindings/rust/*", "grammar.js", "queries/*", "src/*"] +include = [ + "bindings/rust/*", + "grammar.js", + "queries/*", + "src/*", + "tree-sitter.json", +] [lib] path = "bindings/rust/lib.rs" [dependencies] -tree-sitter = "~0.20.10" +tree-sitter-language = "0.1" [build-dependencies] -cc = "~1.0.83" +cc = "1.2" + +[dev-dependencies] +tree-sitter = "0.24" diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..ebd23a0 --- /dev/null +++ b/Makefile @@ -0,0 +1,94 @@ +ifeq ($(OS),Windows_NT) +$(error Windows is not supported) +endif + +LANGUAGE_NAME := tree-sitter-kconfig +HOMEPAGE_URL := https://github.com/tree-sitter-grammars/tree-sitter-kconfig +VERSION := 1.1.1 + +# repository +SRC_DIR := src + +TS ?= tree-sitter + +# install directory layout +PREFIX ?= /usr/local +INCLUDEDIR ?= $(PREFIX)/include +LIBDIR ?= $(PREFIX)/lib +PCLIBDIR ?= $(LIBDIR)/pkgconfig + +# source/object files +PARSER := $(SRC_DIR)/parser.c +EXTRAS := $(filter-out $(PARSER),$(wildcard $(SRC_DIR)/*.c)) +OBJS := $(patsubst %.c,%.o,$(PARSER) $(EXTRAS)) + +# flags +ARFLAGS ?= rcs +override CFLAGS += -I$(SRC_DIR) -std=c11 -fPIC + +# ABI versioning +SONAME_MAJOR = $(shell sed -n 's/\#define LANGUAGE_VERSION //p' $(PARSER)) +SONAME_MINOR = $(word 1,$(subst ., ,$(VERSION))) + +# OS-specific bits +ifeq ($(shell uname),Darwin) + SOEXT = dylib + SOEXTVER_MAJOR = $(SONAME_MAJOR).$(SOEXT) + SOEXTVER = $(SONAME_MAJOR).$(SONAME_MINOR).$(SOEXT) + LINKSHARED = -dynamiclib -Wl,-install_name,$(LIBDIR)/lib$(LANGUAGE_NAME).$(SOEXTVER),-rpath,@executable_path/../Frameworks +else + SOEXT = so + SOEXTVER_MAJOR = $(SOEXT).$(SONAME_MAJOR) + SOEXTVER = $(SOEXT).$(SONAME_MAJOR).$(SONAME_MINOR) + LINKSHARED = -shared -Wl,-soname,lib$(LANGUAGE_NAME).$(SOEXTVER) +endif +ifneq ($(filter $(shell uname),FreeBSD NetBSD DragonFly),) + PCLIBDIR := $(PREFIX)/libdata/pkgconfig +endif + +all: lib$(LANGUAGE_NAME).a lib$(LANGUAGE_NAME).$(SOEXT) $(LANGUAGE_NAME).pc + +lib$(LANGUAGE_NAME).a: $(OBJS) + $(AR) $(ARFLAGS) $@ $^ + +lib$(LANGUAGE_NAME).$(SOEXT): $(OBJS) + $(CC) $(LDFLAGS) $(LINKSHARED) $^ $(LDLIBS) -o $@ +ifneq ($(STRIP),) + $(STRIP) $@ +endif + +$(LANGUAGE_NAME).pc: bindings/c/$(LANGUAGE_NAME).pc.in + sed -e 's|@PROJECT_VERSION@|$(VERSION)|' \ + -e 's|@CMAKE_INSTALL_LIBDIR@|$(LIBDIR:$(PREFIX)/%=%)|' \ + -e 's|@CMAKE_INSTALL_INCLUDEDIR@|$(INCLUDEDIR:$(PREFIX)/%=%)|' \ + -e 's|@PROJECT_DESCRIPTION@|$(DESCRIPTION)|' \ + -e 's|@PROJECT_HOMEPAGE_URL@|$(HOMEPAGE_URL)|' \ + -e 's|@CMAKE_INSTALL_PREFIX@|$(PREFIX)|' $< > $@ + +$(PARSER): $(SRC_DIR)/grammar.json + $(TS) generate $^ + +install: all + install -d '$(DESTDIR)$(INCLUDEDIR)'/tree_sitter '$(DESTDIR)$(PCLIBDIR)' '$(DESTDIR)$(LIBDIR)' + install -m644 bindings/c/$(LANGUAGE_NAME).h '$(DESTDIR)$(INCLUDEDIR)'/tree_sitter/$(LANGUAGE_NAME).h + install -m644 $(LANGUAGE_NAME).pc '$(DESTDIR)$(PCLIBDIR)'/$(LANGUAGE_NAME).pc + install -m644 lib$(LANGUAGE_NAME).a '$(DESTDIR)$(LIBDIR)'/lib$(LANGUAGE_NAME).a + install -m755 lib$(LANGUAGE_NAME).$(SOEXT) '$(DESTDIR)$(LIBDIR)'/lib$(LANGUAGE_NAME).$(SOEXTVER) + ln -sf lib$(LANGUAGE_NAME).$(SOEXTVER) '$(DESTDIR)$(LIBDIR)'/lib$(LANGUAGE_NAME).$(SOEXTVER_MAJOR) + ln -sf lib$(LANGUAGE_NAME).$(SOEXTVER_MAJOR) '$(DESTDIR)$(LIBDIR)'/lib$(LANGUAGE_NAME).$(SOEXT) + +uninstall: + $(RM) '$(DESTDIR)$(LIBDIR)'/lib$(LANGUAGE_NAME).a \ + '$(DESTDIR)$(LIBDIR)'/lib$(LANGUAGE_NAME).$(SOEXTVER) \ + '$(DESTDIR)$(LIBDIR)'/lib$(LANGUAGE_NAME).$(SOEXTVER_MAJOR) \ + '$(DESTDIR)$(LIBDIR)'/lib$(LANGUAGE_NAME).$(SOEXT) \ + '$(DESTDIR)$(INCLUDEDIR)'/tree_sitter/$(LANGUAGE_NAME).h \ + '$(DESTDIR)$(PCLIBDIR)'/$(LANGUAGE_NAME).pc + +clean: + $(RM) $(OBJS) $(LANGUAGE_NAME).pc lib$(LANGUAGE_NAME).a lib$(LANGUAGE_NAME).$(SOEXT) + +test: + $(TS) test + +.PHONY: all install uninstall clean test diff --git a/Package.resolved b/Package.resolved new file mode 100644 index 0000000..8224d09 --- /dev/null +++ b/Package.resolved @@ -0,0 +1,25 @@ +{ + "object": { + "pins": [ + { + "package": "SwiftTreeSitter", + "repositoryURL": "https://github.com/ChimeHQ/SwiftTreeSitter", + "state": { + "branch": null, + "revision": "36aa61d1b531f744f35229f010efba9c6d6cbbdd", + "version": "0.9.0" + } + }, + { + "package": "TreeSitter", + "repositoryURL": "https://github.com/tree-sitter/tree-sitter", + "state": { + "branch": null, + "revision": "d97db6d63507eb62c536bcb2c4ac7d70c8ec665e", + "version": "0.23.2" + } + } + ] + }, + "version": 1 +} diff --git a/Package.swift b/Package.swift index 001c7af..2d78a6d 100644 --- a/Package.swift +++ b/Package.swift @@ -3,35 +3,35 @@ import PackageDescription let package = Package( name: "TreeSitterKconfig", - platforms: [.macOS(.v10_13), .iOS(.v11)], products: [ .library(name: "TreeSitterKconfig", targets: ["TreeSitterKconfig"]), ], - dependencies: [], + dependencies: [ + .package(url: "https://github.com/ChimeHQ/SwiftTreeSitter", from: "0.8.0"), + ], targets: [ - .target(name: "TreeSitterKconfig", - path: ".", - exclude: [ - "binding.gyp", - "bindings", - "Cargo.toml", - "examples", - "grammar.js", - "LICENSE", - "Makefile", - "package.json", - "README.md", - "src/grammar.json", - "src/node-types.json", - ], - sources: [ - "src/parser.c", - "src/scanner.c", - ], - resources: [ - .copy("queries") - ], - publicHeadersPath: "bindings/swift", - cSettings: [.headerSearchPath("src")]) - ] + .target( + name: "TreeSitterKconfig", + dependencies: [], + path: ".", + sources: [ + "src/parser.c", + "src/scanner.c", + ], + resources: [ + .copy("queries") + ], + publicHeadersPath: "bindings/swift", + cSettings: [.headerSearchPath("src")] + ), + .testTarget( + name: "TreeSitterKconfigTests", + dependencies: [ + "SwiftTreeSitter", + "TreeSitterKconfig", + ], + path: "bindings/swift/TreeSitterKconfigTests" + ) + ], + cLanguageStandard: .c11 ) diff --git a/README.md b/README.md index b41ac42..2c43d5e 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,18 @@ # tree-sitter-kconfig -[![CI](https://github.com/amaanq/tree-sitter-kconfig/actions/workflows/ci.yml/badge.svg)](https://github.com/amaanq/tree-sitter-kconfig/actions/workflows/ci.yml) -[![Discord](https://img.shields.io/discord/1063097320771698699?logo=discord)](https://discord.gg/w7nTvsVJhm) +[![CI][ci]](https://github.com/tree-sitter-grammars/tree-sitter-kconfig/actions/workflows/ci.yml) +[![discord][discord]](https://discord.gg/w7nTvsVJhm) +[![matrix][matrix]](https://matrix.to/#/#tree-sitter-chat:matrix.org) +[![crates][crates]](https://crates.io/crates/tree-sitter-kconfig) +[![npm][npm]](https://www.npmjs.com/package/tree-sitter-kconfig) +[![pypi][pypi]](https://pypi.org/project/tree-sitter-kconfig) [Kconfig](https://www.kernel.org/doc/html/next/kbuild/kconfig-language.html) grammar for [tree-sitter](https://github.com/tree-sitter/tree-sitter) + +[ci]: https://img.shields.io/github/actions/workflow/status/tree-sitter-grammars/tree-sitter-kconfig/ci.yml?logo=github&label=CI +[discord]: https://img.shields.io/discord/1063097320771698699?logo=discord&label=discord +[matrix]: https://img.shields.io/matrix/tree-sitter-chat%3Amatrix.org?logo=matrix&label=matrix +[npm]: https://img.shields.io/npm/v/tree-sitter-kconfig?logo=npm +[crates]: https://img.shields.io/crates/v/tree-sitter-kconfig?logo=rust +[pypi]: https://img.shields.io/pypi/v/tree-sitter-kconfig?logo=pypi&logoColor=ffd242 diff --git a/binding.gyp b/binding.gyp index c722294..55a98ac 100644 --- a/binding.gyp +++ b/binding.gyp @@ -2,18 +2,29 @@ "targets": [ { "target_name": "tree_sitter_kconfig_binding", + "dependencies": [ + " +#include -using namespace v8; +typedef struct TSLanguage TSLanguage; extern "C" TSLanguage *tree_sitter_kconfig(); -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_kconfig()); - - Nan::Set(instance, Nan::New("name").ToLocalChecked(), - Nan::New("kconfig").ToLocalChecked()); - Nan::Set(module, Nan::New("exports").ToLocalChecked(), instance); +// "tree-sitter", "language" hashed with BLAKE2 +const napi_type_tag LANGUAGE_TYPE_TAG = { + 0x8AF2E5212AD58ABF, 0xD5006CAD83ABBA16 +}; + +Napi::Object Init(Napi::Env env, Napi::Object exports) { + exports["name"] = Napi::String::New(env, "kconfig"); + auto language = Napi::External::New(env, tree_sitter_kconfig()); + language.TypeTag(&LANGUAGE_TYPE_TAG); + exports["language"] = language; + return exports; } -NODE_MODULE(tree_sitter_kconfig_binding, Init) - -} // namespace +NODE_API_MODULE(tree_sitter_kconfig_binding, Init) diff --git a/bindings/node/binding_test.js b/bindings/node/binding_test.js new file mode 100644 index 0000000..55becac --- /dev/null +++ b/bindings/node/binding_test.js @@ -0,0 +1,9 @@ +const assert = require("node:assert"); +const { test } = require("node:test"); + +const Parser = require("tree-sitter"); + +test("can load grammar", () => { + const parser = new Parser(); + assert.doesNotThrow(() => parser.setLanguage(require("."))); +}); diff --git a/bindings/node/index.d.ts b/bindings/node/index.d.ts new file mode 100644 index 0000000..efe259e --- /dev/null +++ b/bindings/node/index.d.ts @@ -0,0 +1,28 @@ +type BaseNode = { + type: string; + named: boolean; +}; + +type ChildNode = { + multiple: boolean; + required: boolean; + types: BaseNode[]; +}; + +type NodeInfo = + | (BaseNode & { + subtypes: BaseNode[]; + }) + | (BaseNode & { + fields: { [name: string]: ChildNode }; + children: ChildNode[]; + }); + +type Language = { + name: string; + language: unknown; + nodeTypeInfo: NodeInfo[]; +}; + +declare const language: Language; +export = language; diff --git a/bindings/node/index.js b/bindings/node/index.js index c4850c0..6f1c7a8 100644 --- a/bindings/node/index.js +++ b/bindings/node/index.js @@ -1,19 +1,11 @@ -try { - module.exports = require('../../build/Release/tree_sitter_kconfig_binding'); -} catch (error1) { - if (error1.code !== 'MODULE_NOT_FOUND') { - throw error1; - } - try { - module.exports = require('../../build/Debug/tree_sitter_kconfig_binding'); - } catch (error2) { - if (error2.code !== 'MODULE_NOT_FOUND') { - throw error2; - } - throw error1; - } -} +const root = require("path").join(__dirname, "..", ".."); + +module.exports = + typeof process.versions.bun === "string" + // Support `bun build --compile` by being statically analyzable enough to find the .node file at build-time + ? require(`../../prebuilds/${process.platform}-${process.arch}/tree-sitter-kconfig.node`) + : require("node-gyp-build")(root); try { - module.exports.nodeTypeInfo = require('../../src/node-types.json'); + module.exports.nodeTypeInfo = require("../../src/node-types.json"); } catch (_) {} diff --git a/bindings/python/tests/test_binding.py b/bindings/python/tests/test_binding.py new file mode 100644 index 0000000..d2d46db --- /dev/null +++ b/bindings/python/tests/test_binding.py @@ -0,0 +1,11 @@ +from unittest import TestCase + +import tree_sitter, tree_sitter_kconfig + + +class TestLanguage(TestCase): + def test_can_load_grammar(self): + try: + tree_sitter.Language(tree_sitter_kconfig.language()) + except Exception: + self.fail("Error loading Kconfig grammar") diff --git a/bindings/python/tree_sitter_kconfig/__init__.py b/bindings/python/tree_sitter_kconfig/__init__.py new file mode 100644 index 0000000..0e35c13 --- /dev/null +++ b/bindings/python/tree_sitter_kconfig/__init__.py @@ -0,0 +1,37 @@ +"""Kconfig grammar for tree-sitter""" + +from importlib.resources import files as _files + +from ._binding import language + + +def _get_query(name, file): + query = _files(f"{__package__}.queries") / file + globals()[name] = query.read_text() + return globals()[name] + + +def __getattr__(name): + if name == "HIGHLIGHTS_QUERY": + return _get_query("HIGHLIGHTS_QUERY", "highlights.scm") + if name == "INJECTIONS_QUERY": + return _get_query("INJECTIONS_QUERY", "injections.scm") + if name == "LOCALS_QUERY": + return _get_query("LOCALS_QUERY", "locals.scm") + + raise AttributeError(f"module {__name__!r} has no attribute {name!r}") + + +__all__ = [ + "language", + "HIGHLIGHTS_QUERY", + "INJECTIONS_QUERY", + "LOCALS_QUERY", +] + + +def __dir__(): + return sorted(__all__ + [ + "__all__", "__builtins__", "__cached__", "__doc__", "__file__", + "__loader__", "__name__", "__package__", "__path__", "__spec__", + ]) diff --git a/bindings/python/tree_sitter_kconfig/__init__.pyi b/bindings/python/tree_sitter_kconfig/__init__.pyi new file mode 100644 index 0000000..79463da --- /dev/null +++ b/bindings/python/tree_sitter_kconfig/__init__.pyi @@ -0,0 +1,7 @@ +from typing import Final + +HIGHLIGHTS_QUERY: Final[str] +INJECTIONS_QUERY: Final[str] +LOCALS_QUERY: Final[str] + +def language() -> object: ... diff --git a/bindings/python/tree_sitter_kconfig/binding.c b/bindings/python/tree_sitter_kconfig/binding.c new file mode 100644 index 0000000..7676b1d --- /dev/null +++ b/bindings/python/tree_sitter_kconfig/binding.c @@ -0,0 +1,27 @@ +#include + +typedef struct TSLanguage TSLanguage; + +TSLanguage *tree_sitter_kconfig(void); + +static PyObject* _binding_language(PyObject *Py_UNUSED(self), PyObject *Py_UNUSED(args)) { + return PyCapsule_New(tree_sitter_kconfig(), "tree_sitter.Language", NULL); +} + +static PyMethodDef methods[] = { + {"language", _binding_language, METH_NOARGS, + "Get the tree-sitter language for this grammar."}, + {NULL, NULL, 0, NULL} +}; + +static struct PyModuleDef module = { + .m_base = PyModuleDef_HEAD_INIT, + .m_name = "_binding", + .m_doc = NULL, + .m_size = -1, + .m_methods = methods +}; + +PyMODINIT_FUNC PyInit__binding(void) { + return PyModule_Create(&module); +} diff --git a/bindings/python/tree_sitter_kconfig/py.typed b/bindings/python/tree_sitter_kconfig/py.typed new file mode 100644 index 0000000..e69de29 diff --git a/bindings/rust/README.md b/bindings/rust/README.md deleted file mode 100644 index 409619a..0000000 --- a/bindings/rust/README.md +++ /dev/null @@ -1,38 +0,0 @@ -# tree-sitter-kconfig - -This crate provides a Kconfig grammar for the [tree-sitter][] parsing library. To -use this crate, add it to the `[dependencies]` section of your `Cargo.toml` -file. (Note that you will probably also need to depend on the -[`tree-sitter`][tree-sitter crate] crate to use the parsed result in any useful -way.) - -```toml -[dependencies] -tree-sitter = "0.20.10" -tree-sitter-kconfig = "1.1.1" -``` - -Typically, you will use the [language][language func] function to add this -grammar to a tree-sitter [Parser][], and then use the parser to parse some code: - -```rust -let code = r#" -config FOO - bool "Foo" - default y - help - Say foo to the bar. -"#; -let mut parser = Parser::new(); -parser.set_language(tree_sitter_kconfig::language()).expect("Error loading Kconfig grammar"); -let parsed = parser.parse(code, None); -``` - -If you have any questions, please reach out to us in the [tree-sitter -discussions] page. - -[language func]: https://docs.rs/tree-sitter-kconfig/*/tree_sitter_kconfig/fn.language.html -[Parser]: https://docs.rs/tree-sitter/*/tree_sitter/struct.Parser.html -[tree-sitter]: https://tree-sitter.github.io/ -[tree-sitter crate]: https://crates.io/crates/tree-sitter -[tree-sitter discussions]: https://github.com/tree-sitter/tree-sitter/discussions diff --git a/bindings/rust/build.rs b/bindings/rust/build.rs index 8851fed..3272e9b 100644 --- a/bindings/rust/build.rs +++ b/bindings/rust/build.rs @@ -2,18 +2,22 @@ fn main() { let src_dir = std::path::Path::new("src"); let mut c_config = cc::Build::new(); - c_config.include(src_dir); c_config + .std("c11") + .include(src_dir) .flag_if_supported("-Wno-unused-parameter") - .flag_if_supported("-Wno-unused-but-set-variable") - .flag_if_supported("-Wno-trigraphs"); + .flag_if_supported("-Wno-unused-but-set-variable"); + + #[cfg(target_env = "msvc")] + c_config.flag("-utf-8"); + 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()); - c_config.compile("parser"); - println!("cargo:rerun-if-changed={}", parser_path.to_str().unwrap()); + c_config.compile("tree-sitter-kconfig"); } diff --git a/bindings/rust/lib.rs b/bindings/rust/lib.rs index 90eb534..57c1397 100644 --- a/bindings/rust/lib.rs +++ b/bindings/rust/lib.rs @@ -1,42 +1,46 @@ //! This crate provides Kconfig language support for the [tree-sitter][] parsing library. //! -//! Typically, you will use the [language][language func] function to add this language to a +//! Typically, you will use the [LANGUAGE][] constant to add this language to a //! tree-sitter [Parser][], and then use the parser to parse some code: //! //! ``` -//! let code = ""; +//! let code = r#" +//! "#; //! let mut parser = tree_sitter::Parser::new(); -//! parser.set_language(tree_sitter_kconfig::language()).expect("Error loading Kconfig grammar"); +//! let language = tree_sitter_kconfig::LANGUAGE; +//! parser +//! .set_language(&language.into()) +//! .expect("Error loading Kconfig parser"); //! let tree = parser.parse(code, None).unwrap(); +//! assert!(!tree.root_node().has_error()); //! ``` //! -//! [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; +use tree_sitter_language::LanguageFn; extern "C" { - fn tree_sitter_kconfig() -> Language; + fn tree_sitter_kconfig() -> *const (); } -/// Get the tree-sitter [Language][] for this grammar. +/// The tree-sitter [`LanguageFn`][LanguageFn] for this grammar. /// -/// [Language]: https://docs.rs/tree-sitter/*/tree_sitter/struct.Language.html -pub fn language() -> Language { - unsafe { tree_sitter_kconfig() } -} +/// [LanguageFn]: https://docs.rs/tree-sitter-language/*/tree_sitter_language/struct.LanguageFn.html +pub const LANGUAGE: LanguageFn = unsafe { LanguageFn::from_raw(tree_sitter_kconfig) }; /// 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: &str = include_str!("../../src/node-types.json"); -// Uncomment these to include any queries that this grammar contains - +/// The syntax highlighting query for this language. pub const HIGHLIGHTS_QUERY: &str = include_str!("../../queries/highlights.scm"); + +/// The injections query for this language. pub const INJECTIONS_QUERY: &str = include_str!("../../queries/injections.scm"); + +/// The local-variable syntax highlighting query for this language. pub const LOCALS_QUERY: &str = include_str!("../../queries/locals.scm"); #[cfg(test)] @@ -45,7 +49,7 @@ mod tests { fn test_can_load_grammar() { let mut parser = tree_sitter::Parser::new(); parser - .set_language(super::language()) - .expect("Error loading kconfig grammar"); + .set_language(&super::LANGUAGE.into()) + .expect("Error loading Kconfig parser"); } } diff --git a/bindings/swift/TreeSitterKconfig/kconfig.h b/bindings/swift/TreeSitterKconfig/kconfig.h index c75beb7..2fdaed1 100644 --- a/bindings/swift/TreeSitterKconfig/kconfig.h +++ b/bindings/swift/TreeSitterKconfig/kconfig.h @@ -7,7 +7,7 @@ typedef struct TSLanguage TSLanguage; extern "C" { #endif -extern TSLanguage *tree_sitter_kconfig(); +const TSLanguage *tree_sitter_kconfig(void); #ifdef __cplusplus } diff --git a/bindings/swift/TreeSitterKconfigTests/TreeSitterKconfigTests.swift b/bindings/swift/TreeSitterKconfigTests/TreeSitterKconfigTests.swift new file mode 100644 index 0000000..e335890 --- /dev/null +++ b/bindings/swift/TreeSitterKconfigTests/TreeSitterKconfigTests.swift @@ -0,0 +1,12 @@ +import XCTest +import SwiftTreeSitter +import TreeSitterKconfig + +final class TreeSitterKconfigTests: XCTestCase { + func testCanLoadGrammar() throws { + let parser = Parser() + let language = Language(language: tree_sitter_kconfig()) + XCTAssertNoThrow(try parser.setLanguage(language), + "Error loading Kconfig grammar") + } +} diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 0000000..494a10e --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,5 @@ +import treesitter from 'eslint-config-treesitter'; + +export default [ + ...treesitter, +]; diff --git a/fuzz.sh b/fuzz.sh deleted file mode 100755 index 02093f5..0000000 --- a/fuzz.sh +++ /dev/null @@ -1,88 +0,0 @@ -#!/usr/bin/env sh - -set -eu - -ROOT_DIR="fuzzer" - -# XXX: ensure shift below is consistent with number of args here -LANG=$1 -TIMEOUT=$2 -MAX_TOTAL_TIME=$3 -CPP=$4 - -shift 4 - -# if scanner = scanner.cc then XFLAG = c++ else XFLAG = c -if [ "$CPP" = "cpp" ]; then - COMPILER="clang++" - SCANNER="scanner.cc" - XFLAG="c++" -else - COMPILER="clang" - SCANNER="scanner.c" - XFLAG="c" -fi - -export CFLAGS="$(pkg-config --cflags --libs tree-sitter) -O0 -g -w" - -JQ_FILTER='.. | if .type? == "STRING" or (.type? == "ALIAS" and .named? == false) then .value else null end' - -build_dict() { - jq "$JQ_FILTER" "$ROOT_DIR/dict" -} - -build_fuzzer() { - cat < -#include -#include - -#ifdef __cplusplus -extern "C" -#endif -TSLanguage *tree_sitter_$LANG(); - -#ifdef __cplusplus -extern "C" -#endif -int LLVMFuzzerTestOneInput(const uint8_t * data, const size_t len) { - // Create a parser. - TSParser *parser = ts_parser_new(); - - // Set the parser's language. - ts_parser_set_language(parser, tree_sitter_$LANG()); - - // Build a syntax tree based on source code stored in a string. - TSTree *tree = ts_parser_parse_string( - parser, - NULL, - (const char *)data, - len - ); - // Free all of the heap-allocated memory. - ts_tree_delete(tree); - ts_parser_delete(parser); - return 0; -} -END -} - -generate_fuzzer() { - tree-sitter generate -} - -makedirs() { - mkdir -p "$ROOT_DIR" - mkdir -p "$ROOT_DIR/out" -} - -makedirs -# generate_fuzzer - -build_dict -build_fuzzer $@ -cd "$ROOT_DIR" -./fuzzer -dict=dict -timeout=$TIMEOUT -max_total_time=$MAX_TOTAL_TIME out/ diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..b03622c --- /dev/null +++ b/go.mod @@ -0,0 +1,7 @@ +module github.com/tree-sitter-grammars/tree-sitter-kconfig + +go 1.22 + +require github.com/tree-sitter/go-tree-sitter v0.24.0 + +require github.com/mattn/go-pointer v0.0.1 // indirect diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..0a48bbe --- /dev/null +++ b/go.sum @@ -0,0 +1,36 @@ +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/mattn/go-pointer v0.0.1 h1:n+XhsuGeVO6MEAp7xyEukFINEa+Quek5psIR/ylA6o0= +github.com/mattn/go-pointer v0.0.1/go.mod h1:2zXcozF6qYGgmsG+SeTZz3oAbFLdD3OWqnUbNvJZAlc= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/tree-sitter/go-tree-sitter v0.24.0 h1:kRZb6aBNfcI/u0Qh8XEt3zjNVnmxTisDBN+kXK0xRYQ= +github.com/tree-sitter/go-tree-sitter v0.24.0/go.mod h1:x681iFVoLMEwOSIHA1chaLkXlroXEN7WY+VHGFaoDbk= +github.com/tree-sitter/tree-sitter-c v0.21.5-0.20240818205408-927da1f210eb h1:A8425heRM8mylnv4H58FPUiH+aYivyitre0PzxrfmWs= +github.com/tree-sitter/tree-sitter-c v0.21.5-0.20240818205408-927da1f210eb/go.mod h1:dOF6gtQiF9UwNh995T5OphYmtIypkjsp3ap7r9AN/iA= +github.com/tree-sitter/tree-sitter-cpp v0.22.4-0.20240818224355-b1a4e2b25148 h1:AfFPZwtwGN01BW1jDdqBVqscTwetvMpydqYZz57RSlc= +github.com/tree-sitter/tree-sitter-cpp v0.22.4-0.20240818224355-b1a4e2b25148/go.mod h1:Bh6U3viD57rFXRYIQ+kmiYtr+1Bx0AceypDLJJSyi9s= +github.com/tree-sitter/tree-sitter-embedded-template v0.21.1-0.20240819044651-ffbf64942c33 h1:TwqSV3qLp3tKSqirGLRHnjFk9Tc2oy57LIl+FQ4GjI4= +github.com/tree-sitter/tree-sitter-embedded-template v0.21.1-0.20240819044651-ffbf64942c33/go.mod h1:CvCKCt3v04Ufos1zZnNCelBDeCGRpPucaN8QczoUsN4= +github.com/tree-sitter/tree-sitter-go v0.21.3-0.20240818010209-8c0f0e7a6012 h1:Xvxck3tE5FW7F7bTS97iNM2ADMyCMJztVqn5HYKdJGo= +github.com/tree-sitter/tree-sitter-go v0.21.3-0.20240818010209-8c0f0e7a6012/go.mod h1:T40D0O1cPvUU/+AmiXVXy1cncYQT6wem4Z0g4SfAYvY= +github.com/tree-sitter/tree-sitter-html v0.20.5-0.20240818004741-d11201a263d0 h1:c46K6uh5Dz00zJeU9BfjXdb8I+E4RkUdfnWJpQADXFo= +github.com/tree-sitter/tree-sitter-html v0.20.5-0.20240818004741-d11201a263d0/go.mod h1:hcNt/kOJHcIcuMvouE7LJcYdeFUFbVpBJ6d4wmOA+tU= +github.com/tree-sitter/tree-sitter-java v0.21.1-0.20240824015150-576d8097e495 h1:jrt4qbJVEFs4H93/ITxygHc6u0TGqAkkate7TQ4wFSA= +github.com/tree-sitter/tree-sitter-java v0.21.1-0.20240824015150-576d8097e495/go.mod h1:oyaR7fLnRV0hT9z6qwE9GkaeTom/hTDwK3H2idcOJFc= +github.com/tree-sitter/tree-sitter-javascript v0.21.5-0.20240818005344-15887341e5b5 h1:om4X9AVg3asL8gxNJDcz4e/Wp+VpQj1PY3uJXKr6EOg= +github.com/tree-sitter/tree-sitter-javascript v0.21.5-0.20240818005344-15887341e5b5/go.mod h1:nNqgPoV/h9uYWk6kYEFdEAhNVOacpfpRW5SFmdaP4tU= +github.com/tree-sitter/tree-sitter-json v0.21.1-0.20240818005659-bdd69eb8c8a5 h1:pfV3G3k7NCKqKk8THBmyuh2zA33lgYHS3GVrzRR8ry4= +github.com/tree-sitter/tree-sitter-json v0.21.1-0.20240818005659-bdd69eb8c8a5/go.mod h1:GbMKRjLfk0H+PI7nLi1Sx5lHf5wCpLz9al8tQYSxpEk= +github.com/tree-sitter/tree-sitter-php v0.22.9-0.20240819002312-a552625b56c1 h1:ZXZMDwE+IhUtGug4Brv6NjJWUU3rfkZBKpemf6RY8/g= +github.com/tree-sitter/tree-sitter-php v0.22.9-0.20240819002312-a552625b56c1/go.mod h1:UKCLuYnJ312Mei+3cyTmGOHzn0YAnaPRECgJmHtzrqs= +github.com/tree-sitter/tree-sitter-python v0.21.1-0.20240818005537-55a9b8a4fbfb h1:EXEM82lFM7JjJb6qiKZXkpIDaCcbV2obNn82ghwj9lw= +github.com/tree-sitter/tree-sitter-python v0.21.1-0.20240818005537-55a9b8a4fbfb/go.mod h1:lXCF1nGG5Dr4J3BTS0ObN4xJCCICiSu/b+Xe/VqMV7g= +github.com/tree-sitter/tree-sitter-ruby v0.21.1-0.20240818211811-7dbc1e2d0e2d h1:fcYCvoXdcP1uRQYXqJHRy6Hec+uKScQdKVtMwK9JeCI= +github.com/tree-sitter/tree-sitter-ruby v0.21.1-0.20240818211811-7dbc1e2d0e2d/go.mod h1:T1nShQ4v5AJtozZ8YyAS4uzUtDAJj/iv4YfwXSbUHzg= +github.com/tree-sitter/tree-sitter-rust v0.21.3-0.20240818005432-2b43eafe6447 h1:o9alBu1J/WjrcTKEthYtXmdkDc5OVXD+PqlvnEZ0Lzc= +github.com/tree-sitter/tree-sitter-rust v0.21.3-0.20240818005432-2b43eafe6447/go.mod h1:1Oh95COkkTn6Ezp0vcMbvfhRP5gLeqqljR0BYnBzWvc= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/grammar.js b/grammar.js index 1ea60d5..6f23881 100644 --- a/grammar.js +++ b/grammar.js @@ -5,9 +5,6 @@ * @see {@link https://www.kernel.org/doc/html/next/kbuild/kconfig-language.html|Kconfig Language Specification} */ -/* eslint-disable arrow-parens */ -/* eslint-disable camelcase */ -/* eslint-disable-next-line spaced-comment */ /// // @ts-check diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..dd435f2 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,1603 @@ +{ + "name": "tree-sitter-kconfig", + "version": "1.1.1", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "tree-sitter-kconfig", + "version": "1.1.1", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "node-addon-api": "^8.3.0", + "node-gyp-build": "^4.8.4" + }, + "devDependencies": { + "eslint": "^9.17.0", + "eslint-config-treesitter": "^1.0.2", + "prebuildify": "^6.0.1", + "tree-sitter-cli": "^0.24.5" + }, + "peerDependencies": { + "tree-sitter": "^0.22.1" + }, + "peerDependenciesMeta": { + "tree-sitter": { + "optional": true + } + } + }, + "node_modules/@es-joy/jsdoccomment": { + "version": "0.49.0", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.49.0.tgz", + "integrity": "sha512-xjZTSFgECpb9Ohuk5yMX5RhUEbfeQcuOp8IF60e+wyzWEF0M5xeSgqsfLtvPEX8BIyOX9saZqzuGPmZ8oWc+5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "comment-parser": "1.4.1", + "esquery": "^1.6.0", + "jsdoc-type-pratt-parser": "~4.1.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", + "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.1.tgz", + "integrity": "sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.5", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.9.1.tgz", + "integrity": "sha512-GuUdqkyyzQI5RMIWkHhvTWLCyLo1jNK3vzkSyaExH5kHPDHcuL2VOpHjmMY+y3+NC69qAKToBqldTBgYeLSr9Q==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz", + "integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/js": { + "version": "9.17.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.17.0.tgz", + "integrity": "sha512-Sxc4hqcs1kTu0iID3kcZDW3JHq2a77HO9P8CP6YEA/FpH3Ll8UXE2r/86Rz9YJLKme39S9vU5OWNjC6Xl0Cr3w==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.5.tgz", + "integrity": "sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.4.tgz", + "integrity": "sha512-zSkKow6H5Kdm0ZUQUB2kV5JIXqoG0+uH5YADhaEHswm664N9Db8dXSi0nMJpacpMf+MyyglF1vnZohpEg5yUtg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.3.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz", + "integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@pkgr/core": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", + "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/acorn": { + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/are-docs-informative": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.2.tgz", + "integrity": "sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true, + "license": "ISC" + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/comment-parser": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.4.1.tgz", + "integrity": "sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/es-module-lexer": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", + "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==", + "dev": true, + "license": "MIT" + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "9.17.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.17.0.tgz", + "integrity": "sha512-evtlNcpJg+cZLcnVKwsai8fExnqjGPicK7gnUtlNuzu+Fv9bI0aLpND5T44VLQtoMEnI57LoXO9XAkIXwohKrA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.19.0", + "@eslint/core": "^0.9.0", + "@eslint/eslintrc": "^3.2.0", + "@eslint/js": "9.17.0", + "@eslint/plugin-kit": "^0.2.3", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.1", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.2.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-config-treesitter": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/eslint-config-treesitter/-/eslint-config-treesitter-1.0.2.tgz", + "integrity": "sha512-OkzjA0oaNgYUFkGmo9T2cvRE7cxzh1dgSt0laO8Hdcypp9di8lebldoPivALXFusRb7s54J5exIw1w7l+g85Rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-plugin-jsdoc": "^50.2.4" + }, + "peerDependencies": { + "eslint": ">= 9" + } + }, + "node_modules/eslint-plugin-jsdoc": { + "version": "50.6.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-50.6.1.tgz", + "integrity": "sha512-UWyaYi6iURdSfdVVqvfOs2vdCVz0J40O/z/HTsv2sFjdjmdlUI/qlKLOTmwbPQ2tAfQnE5F9vqx+B+poF71DBQ==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@es-joy/jsdoccomment": "~0.49.0", + "are-docs-informative": "^0.0.2", + "comment-parser": "1.4.1", + "debug": "^4.3.6", + "escape-string-regexp": "^4.0.0", + "espree": "^10.1.0", + "esquery": "^1.6.0", + "parse-imports": "^2.1.1", + "semver": "^7.6.3", + "spdx-expression-parse": "^4.0.0", + "synckit": "^0.9.1" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0" + } + }, + "node_modules/eslint-scope": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", + "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", + "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.14.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz", + "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==", + "dev": true, + "license": "ISC" + }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true, + "license": "MIT" + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsdoc-type-pratt-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.1.0.tgz", + "integrity": "sha512-Hicd6JK5Njt2QB6XYFS7ok9e37O8AYk3jTcppG4YVQnYjOemymvTcmc7OWsmq/Qqj5TdRFO5/x/tIPmBeRtGHg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "dev": true, + "license": "MIT" + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-abi": { + "version": "3.71.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.71.0.tgz", + "integrity": "sha512-SZ40vRiy/+wRTf21hxkkEjPJZpARzUMVcJoQse2EF8qkUWbbO2z7vd5oA/H6bVH6SZQ5STGcu0KRDS7biNRfxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/node-addon-api": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-8.3.0.tgz", + "integrity": "sha512-8VOpLHFrOQlAH+qA0ZzuGRlALRA6/LVh8QJldbrC4DY0hXoMP0l4Acq8TzFC018HztWiRqyCEj2aTWY2UvnJUg==", + "license": "MIT", + "engines": { + "node": "^18 || ^20 || >= 21" + } + }, + "node_modules/node-gyp-build": { + "version": "4.8.4", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.4.tgz", + "integrity": "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==", + "license": "MIT", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/npm-run-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-3.1.0.tgz", + "integrity": "sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-imports": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/parse-imports/-/parse-imports-2.2.1.tgz", + "integrity": "sha512-OL/zLggRp8mFhKL0rNORUTR4yBYujK/uU+xZL+/0Rgm2QE4nLO9v8PzEweSJEbMGKmDRjJE4R3IMJlL2di4JeQ==", + "dev": true, + "license": "Apache-2.0 AND MIT", + "dependencies": { + "es-module-lexer": "^1.5.3", + "slashes": "^3.0.12" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/prebuildify": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/prebuildify/-/prebuildify-6.0.1.tgz", + "integrity": "sha512-8Y2oOOateom/s8dNBsGIcnm6AxPmLH4/nanQzL5lQMU+sC0CMhzARZHizwr36pUPLdvBnOkCNQzxg4djuFSgIw==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.5", + "mkdirp-classic": "^0.5.3", + "node-abi": "^3.3.0", + "npm-run-path": "^3.1.0", + "pump": "^3.0.0", + "tar-fs": "^2.1.0" + }, + "bin": { + "prebuildify": "bin.js" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/pump": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", + "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/slashes": { + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/slashes/-/slashes-3.0.12.tgz", + "integrity": "sha512-Q9VME8WyGkc7pJf6QEkj3wE+2CnvZMI+XJhwdTPR8Z/kWQRXi7boAWLDibRPyHRTUTPx5FaU7MsyrjI3yLB4HA==", + "dev": true, + "license": "ISC" + }, + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "dev": true, + "license": "CC-BY-3.0" + }, + "node_modules/spdx-expression-parse": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-4.0.0.tgz", + "integrity": "sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.20", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.20.tgz", + "integrity": "sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/synckit": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.2.tgz", + "integrity": "sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@pkgr/core": "^0.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, + "node_modules/tar-fs": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", + "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", + "dev": true, + "license": "MIT", + "dependencies": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + } + }, + "node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tree-sitter": { + "version": "0.22.1", + "resolved": "https://registry.npmjs.org/tree-sitter/-/tree-sitter-0.22.1.tgz", + "integrity": "sha512-gRO+jk2ljxZlIn20QRskIvpLCMtzuLl5T0BY6L9uvPYD17uUrxlxWkvYCiVqED2q2q7CVtY52Uex4WcYo2FEXw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "node-addon-api": "^8.2.1", + "node-gyp-build": "^4.8.2" + } + }, + "node_modules/tree-sitter-cli": { + "version": "0.24.5", + "resolved": "https://registry.npmjs.org/tree-sitter-cli/-/tree-sitter-cli-0.24.5.tgz", + "integrity": "sha512-8EIgV/ERQlpvk1rPSCCjxveAb6Sba8tMiBpeeL68Mueuuqr0wNfhps/I1nFm2OTnpPCUV2PS9nbzzAMoyxSQUg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "tree-sitter": "cli.js" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/package.json b/package.json index d6b434c..31ee24e 100644 --- a/package.json +++ b/package.json @@ -2,48 +2,53 @@ "name": "tree-sitter-kconfig", "version": "1.1.1", "description": "Kconfig grammar for tree-sitter", + "repository": "https://github.com/tree-sitter-grammars/tree-sitter-kconfig", + "license": "MIT", + "author": { + "name": "Amaan Qureshi", + "email": "amaanq12@gmail.com" + }, "main": "bindings/node", + "types": "bindings/node", "keywords": [ - "parsing", "incremental", + "parsing", + "tree-sitter", "kconfig" ], - "repository": { - "type": "git", - "url": "https://github.com/amaanq/tree-sitter-kconfig.git" - }, - "author": "Amaan Qureshi ", - "license": "MIT", + "files": [ + "grammar.js", + "tree-sitter.json", + "binding.gyp", + "prebuilds/**", + "bindings/node/*", + "queries/*", + "src/**", + "*.wasm" + ], "dependencies": { - "nan": "^2.17.0" + "node-addon-api": "^8.3.0", + "node-gyp-build": "^4.8.4" }, "devDependencies": { - "eslint": ">=5.16.0", - "eslint-config-google": "^0.14.0", - "tree-sitter-cli": "^0.20.8" + "eslint": "^9.17.0", + "eslint-config-treesitter": "^1.0.2", + "prebuildify": "^6.0.1", + "tree-sitter-cli": "^0.24.5" }, - "scripts": { - "build": "tree-sitter generate && node-gyp build", - "lint": "eslint grammar.js", - "test": "tree-sitter test && script/parse-examples", - "test-windows": "tree-sitter test" + "peerDependencies": { + "tree-sitter": "^0.22.1" }, - "tree-sitter": [ - { - "scope": "source.kconfig", - "file-types": [ - "Kconfig" - ], - "injection-regex": "kconfig", - "highlights": [ - "queries/highlights.scm" - ], - "locals": [ - "queries/locals.scm" - ], - "injections": [ - "queries/injections.scm" - ] + "peerDependenciesMeta": { + "tree-sitter": { + "optional": true } - ] + }, + "scripts": { + "install": "node-gyp-build", + "lint": "eslint grammar.js", + "prestart": "tree-sitter build --wasm", + "start": "tree-sitter playground", + "test": "node --test bindings/node/*_test.js" + } } diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..1067d12 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,29 @@ +[build-system] +requires = ["setuptools>=42", "wheel"] +build-backend = "setuptools.build_meta" + +[project] +name = "tree-sitter-kconfig" +description = "Kconfig grammar for tree-sitter" +version = "1.1.1" +keywords = ["incremental", "parsing", "tree-sitter", "kconfig"] +classifiers = [ + "Intended Audience :: Developers", + "Topic :: Software Development :: Compilers", + "Topic :: Text Processing :: Linguistic", + "Typing :: Typed", +] +authors = [{ name = "Amaan Qureshi", email = "amaanq12@gmail.com" }] +requires-python = ">=3.9" +license.text = "MIT" +readme = "README.md" + +[project.urls] +Homepage = "https://github.com/tree-sitter-grammars/tree-sitter-kconfig" + +[project.optional-dependencies] +core = ["tree-sitter~=0.22"] + +[tool.cibuildwheel] +build = "cp39-*" +build-frontend = "build" diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..baabb1a --- /dev/null +++ b/setup.py @@ -0,0 +1,62 @@ +from os.path import isdir, join +from platform import system + +from setuptools import Extension, find_packages, setup +from setuptools.command.build import build +from wheel.bdist_wheel import bdist_wheel + + +class Build(build): + def run(self): + if isdir("queries"): + dest = join(self.build_lib, "tree_sitter_kconfig", "queries") + self.copy_tree("queries", dest) + super().run() + + +class BdistWheel(bdist_wheel): + def get_tag(self): + python, abi, platform = super().get_tag() + if python.startswith("cp"): + python, abi = "cp39", "abi3" + return python, abi, platform + + +setup( + packages=find_packages("bindings/python"), + package_dir={"": "bindings/python"}, + package_data={ + "tree_sitter_kconfig": ["*.pyi", "py.typed"], + "tree_sitter_kconfig.queries": ["*.scm"], + }, + ext_package="tree_sitter_kconfig", + ext_modules=[ + Extension( + name="_binding", + sources=[ + "bindings/python/tree_sitter_kconfig/binding.c", + "src/parser.c", + "src/scanner.c", + ], + extra_compile_args=[ + "-std=c11", + "-fvisibility=hidden", + ] if system() != "Windows" else [ + "/std:c11", + "/utf-8", + ], + define_macros=[ + ("Py_LIMITED_API", "0x03090000"), + ("PY_SSIZE_T_CLEAN", None), + ("TREE_SITTER_HIDE_SYMBOLS", None), + ], + include_dirs=["src"], + py_limited_api=True, + ) + ], + cmdclass={ + "build": Build, + "bdist_wheel": BdistWheel + }, + zip_safe=False +) diff --git a/src/grammar.json b/src/grammar.json index cf48d8c..ca37678 100644 --- a/src/grammar.json +++ b/src/grammar.json @@ -1,4 +1,5 @@ { + "$schema": "https://tree-sitter.github.io/tree-sitter/assets/schemas/grammar.schema.json", "name": "kconfig", "word": "symbol", "rules": { @@ -1100,4 +1101,3 @@ "expression" ] } - diff --git a/src/node-types.json b/src/node-types.json index 15f7036..56d2172 100644 --- a/src/node-types.json +++ b/src/node-types.json @@ -353,6 +353,7 @@ { "type": "configuration", "named": true, + "root": true, "fields": {}, "children": { "multiple": true, diff --git a/src/parser.c b/src/parser.c index 7ffc68e..ba5b8a1 100644 --- a/src/parser.c +++ b/src/parser.c @@ -1,7 +1,6 @@ -#include +#include "tree_sitter/parser.h" #if defined(__GNUC__) || defined(__clang__) -#pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wmissing-field-initializers" #endif @@ -16,7 +15,7 @@ #define MAX_ALIAS_SEQUENCE_LENGTH 5 #define PRODUCTION_ID_COUNT 9 -enum { +enum ts_symbol_identifiers { sym_symbol = 1, anon_sym_mainmenu = 2, anon_sym_config = 3, @@ -616,7 +615,7 @@ static const TSSymbolMetadata ts_symbol_metadata[] = { }, }; -enum { +enum ts_field_identifiers { field_condition = 1, field_left = 2, field_name = 3, @@ -679,21 +678,21 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [0] = 0, [1] = 1, [2] = 2, - [3] = 2, - [4] = 4, - [5] = 4, + [3] = 3, + [4] = 2, + [5] = 3, [6] = 6, [7] = 7, - [8] = 6, - [9] = 7, + [8] = 7, + [9] = 6, [10] = 10, [11] = 11, [12] = 12, [13] = 13, [14] = 14, - [15] = 11, - [16] = 13, - [17] = 14, + [15] = 13, + [16] = 14, + [17] = 11, [18] = 12, [19] = 10, [20] = 20, @@ -706,24 +705,24 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [27] = 27, [28] = 28, [29] = 29, - [30] = 25, - [31] = 28, - [32] = 27, - [33] = 29, - [34] = 20, - [35] = 26, + [30] = 23, + [31] = 25, + [32] = 29, + [33] = 20, + [34] = 26, + [35] = 21, [36] = 22, - [37] = 21, - [38] = 24, - [39] = 23, + [37] = 24, + [38] = 28, + [39] = 27, [40] = 40, [41] = 40, [42] = 42, [43] = 43, - [44] = 44, - [45] = 44, + [44] = 42, + [45] = 45, [46] = 43, - [47] = 42, + [47] = 45, [48] = 48, [49] = 49, [50] = 50, @@ -743,182 +742,182 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [64] = 64, [65] = 65, [66] = 65, - [67] = 64, - [68] = 60, - [69] = 59, - [70] = 62, - [71] = 49, - [72] = 52, - [73] = 48, - [74] = 50, - [75] = 53, - [76] = 55, - [77] = 63, - [78] = 56, - [79] = 54, - [80] = 57, - [81] = 51, - [82] = 58, - [83] = 61, + [67] = 55, + [68] = 49, + [69] = 58, + [70] = 61, + [71] = 52, + [72] = 50, + [73] = 51, + [74] = 53, + [75] = 54, + [76] = 56, + [77] = 57, + [78] = 48, + [79] = 59, + [80] = 64, + [81] = 60, + [82] = 62, + [83] = 63, [84] = 84, - [85] = 84, - [86] = 28, - [87] = 87, + [85] = 85, + [86] = 86, + [87] = 84, [88] = 88, [89] = 89, - [90] = 90, - [91] = 91, + [90] = 25, + [91] = 23, [92] = 92, [93] = 93, - [94] = 87, - [95] = 21, - [96] = 96, - [97] = 91, + [94] = 94, + [95] = 92, + [96] = 94, + [97] = 97, [98] = 93, - [99] = 89, - [100] = 96, - [101] = 23, - [102] = 27, - [103] = 29, - [104] = 20, - [105] = 25, - [106] = 24, + [99] = 85, + [100] = 88, + [101] = 27, + [102] = 28, + [103] = 24, + [104] = 21, + [105] = 26, + [106] = 29, [107] = 22, - [108] = 21, - [109] = 22, - [110] = 110, - [111] = 20, - [112] = 24, - [113] = 29, - [114] = 27, - [115] = 23, - [116] = 28, - [117] = 25, + [108] = 108, + [109] = 21, + [110] = 22, + [111] = 24, + [112] = 29, + [113] = 25, + [114] = 28, + [115] = 27, + [116] = 23, + [117] = 26, [118] = 118, - [119] = 118, - [120] = 120, + [119] = 119, + [120] = 118, [121] = 121, - [122] = 120, + [122] = 119, [123] = 123, [124] = 124, - [125] = 123, + [125] = 125, [126] = 126, [127] = 127, [128] = 128, [129] = 129, [130] = 130, [131] = 131, - [132] = 132, - [133] = 133, + [132] = 130, + [133] = 131, [134] = 134, [135] = 135, - [136] = 124, + [136] = 136, [137] = 137, [138] = 138, [139] = 139, [140] = 140, - [141] = 137, - [142] = 21, - [143] = 24, - [144] = 22, + [141] = 24, + [142] = 25, + [143] = 26, + [144] = 27, [145] = 28, - [146] = 20, - [147] = 29, - [148] = 27, - [149] = 23, - [150] = 25, + [146] = 29, + [147] = 147, + [148] = 148, + [149] = 149, + [150] = 138, [151] = 151, - [152] = 151, - [153] = 151, - [154] = 151, - [155] = 155, - [156] = 156, - [157] = 151, - [158] = 156, - [159] = 159, - [160] = 160, + [152] = 152, + [153] = 153, + [154] = 154, + [155] = 137, + [156] = 21, + [157] = 152, + [158] = 153, + [159] = 154, + [160] = 152, [161] = 161, - [162] = 138, - [163] = 163, - [164] = 160, - [165] = 161, - [166] = 139, - [167] = 140, - [168] = 137, - [169] = 169, - [170] = 156, - [171] = 169, - [172] = 155, + [162] = 152, + [163] = 153, + [164] = 154, + [165] = 137, + [166] = 161, + [167] = 149, + [168] = 22, + [169] = 23, + [170] = 152, + [171] = 153, + [172] = 154, [173] = 137, - [174] = 169, - [175] = 140, - [176] = 139, - [177] = 156, - [178] = 140, + [174] = 137, + [175] = 149, + [176] = 149, + [177] = 149, + [178] = 148, [179] = 139, - [180] = 169, - [181] = 139, - [182] = 140, - [183] = 137, - [184] = 169, - [185] = 156, - [186] = 163, - [187] = 187, - [188] = 127, - [189] = 189, - [190] = 190, - [191] = 191, - [192] = 191, - [193] = 189, - [194] = 129, - [195] = 189, - [196] = 130, - [197] = 131, - [198] = 189, - [199] = 189, - [200] = 128, - [201] = 132, - [202] = 133, - [203] = 134, - [204] = 135, - [205] = 126, + [180] = 140, + [181] = 147, + [182] = 154, + [183] = 138, + [184] = 138, + [185] = 138, + [186] = 153, + [187] = 127, + [188] = 188, + [189] = 136, + [190] = 126, + [191] = 134, + [192] = 192, + [193] = 135, + [194] = 125, + [195] = 195, + [196] = 123, + [197] = 197, + [198] = 124, + [199] = 128, + [200] = 129, + [201] = 195, + [202] = 197, + [203] = 197, + [204] = 197, + [205] = 197, [206] = 206, [207] = 207, - [208] = 208, - [209] = 206, - [210] = 210, - [211] = 208, - [212] = 206, - [213] = 206, - [214] = 208, + [208] = 206, + [209] = 207, + [210] = 206, + [211] = 211, + [212] = 211, + [213] = 211, + [214] = 211, [215] = 206, - [216] = 208, - [217] = 208, - [218] = 210, - [219] = 208, - [220] = 206, + [216] = 211, + [217] = 206, + [218] = 211, + [219] = 206, + [220] = 220, [221] = 221, - [222] = 221, - [223] = 21, + [222] = 23, + [223] = 221, [224] = 224, - [225] = 28, + [225] = 25, [226] = 226, [227] = 227, [228] = 228, - [229] = 229, - [230] = 228, - [231] = 226, + [229] = 226, + [230] = 226, + [231] = 231, [232] = 232, [233] = 233, - [234] = 229, - [235] = 235, - [236] = 227, - [237] = 235, - [238] = 232, + [234] = 233, + [235] = 228, + [236] = 236, + [237] = 236, + [238] = 231, [239] = 227, - [240] = 233, - [241] = 50, - [242] = 49, + [240] = 232, + [241] = 51, + [242] = 59, [243] = 243, [244] = 244, [245] = 245, @@ -927,36 +926,36 @@ static const TSStateId ts_primary_state_ids[STATE_COUNT] = { [248] = 248, [249] = 249, [250] = 250, - [251] = 244, - [252] = 250, + [251] = 249, + [252] = 252, [253] = 253, [254] = 254, [255] = 255, [256] = 256, - [257] = 249, - [258] = 258, + [257] = 247, + [258] = 246, [259] = 259, [260] = 260, [261] = 261, - [262] = 262, - [263] = 247, - [264] = 255, - [265] = 258, - [266] = 262, - [267] = 245, - [268] = 254, - [269] = 256, - [270] = 261, - [271] = 246, - [272] = 244, - [273] = 273, - [274] = 255, - [275] = 243, - [276] = 273, - [277] = 248, - [278] = 260, - [279] = 279, - [280] = 259, + [262] = 252, + [263] = 250, + [264] = 264, + [265] = 260, + [266] = 256, + [267] = 267, + [268] = 268, + [269] = 253, + [270] = 247, + [271] = 267, + [272] = 248, + [273] = 250, + [274] = 243, + [275] = 261, + [276] = 264, + [277] = 244, + [278] = 259, + [279] = 268, + [280] = 255, }; static bool ts_lex(TSLexer *lexer, TSStateId state) { @@ -965,89 +964,92 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { switch (state) { case 0: if (eof) ADVANCE(36); - if (lookahead == '!') ADVANCE(46); - if (lookahead == '"') ADVANCE(11); - if (lookahead == '#') ADVANCE(91); - if (lookahead == '$') ADVANCE(14); - if (lookahead == '&') ADVANCE(12); - if (lookahead == '\'') ADVANCE(13); - if (lookahead == '(') ADVANCE(54); - if (lookahead == ')') ADVANCE(55); - if (lookahead == '+') ADVANCE(19); - if (lookahead == ',') ADVANCE(41); - if (lookahead == '-') ADVANCE(27); - if (lookahead == ':') ADVANCE(20); - if (lookahead == '<') ADVANCE(50); - if (lookahead == '=') ADVANCE(37); - if (lookahead == '>') ADVANCE(51); - if (lookahead == '?') ADVANCE(21); - if (lookahead == '\\') SKIP(32) + ADVANCE_MAP( + '!', 46, + '"', 11, + '#', 91, + '$', 14, + '&', 12, + '\'', 13, + '(', 54, + ')', 55, + '+', 19, + ',', 41, + '-', 27, + ':', 20, + '<', 50, + '=', 37, + '>', 51, + '?', 21, + ); + if (lookahead == '\\') SKIP(32); if (lookahead == 'd') ADVANCE(77); if (lookahead == 'v') ADVANCE(80); if (lookahead == '|') ADVANCE(26); - if (lookahead == '\t' || - lookahead == '\n' || - lookahead == '\r' || - lookahead == ' ') SKIP(0) + if (('\t' <= lookahead && lookahead <= '\r') || + lookahead == ' ') SKIP(0); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(87); END_STATE(); case 1: - if (lookahead == '\n') SKIP(3) + if (lookahead == '\n') SKIP(3); END_STATE(); case 2: - if (lookahead == '\n') SKIP(3) - if (lookahead == '\r') SKIP(1) + if (lookahead == '\n') SKIP(3); + if (lookahead == '\r') SKIP(1); END_STATE(); case 3: - if (lookahead == '\n') ADVANCE(42); - if (lookahead == '\r') ADVANCE(3); - if (lookahead == '!') ADVANCE(46); - if (lookahead == '"') ADVANCE(11); - if (lookahead == '#') ADVANCE(91); - if (lookahead == '$') ADVANCE(14); - if (lookahead == '&') ADVANCE(12); - if (lookahead == '\'') ADVANCE(13); - if (lookahead == '(') ADVANCE(54); - if (lookahead == ',') ADVANCE(41); - if (lookahead == '-') ADVANCE(27); - if (lookahead == '<') ADVANCE(50); - if (lookahead == '=') ADVANCE(37); - if (lookahead == '>') ADVANCE(51); - if (lookahead == '\\') SKIP(2) + ADVANCE_MAP( + '\n', 42, + '\r', 3, + '!', 46, + '"', 11, + '#', 91, + '$', 14, + '&', 12, + '\'', 13, + '(', 54, + ',', 41, + '-', 27, + '<', 50, + '=', 37, + '>', 51, + ); + if (lookahead == '\\') SKIP(2); if (lookahead == '|') ADVANCE(26); - if (lookahead == '\t' || - lookahead == ' ') SKIP(3) + if (('\t' <= lookahead && lookahead <= '\f') || + lookahead == ' ') SKIP(3); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || ('a' <= lookahead && lookahead <= 'z')) ADVANCE(87); END_STATE(); case 4: - if (lookahead == '\n') SKIP(6) + if (lookahead == '\n') SKIP(6); END_STATE(); case 5: - if (lookahead == '\n') SKIP(6) - if (lookahead == '\r') SKIP(4) + if (lookahead == '\n') SKIP(6); + if (lookahead == '\r') SKIP(4); END_STATE(); case 6: - if (lookahead == '\n') ADVANCE(43); - if (lookahead == '!') ADVANCE(18); - if (lookahead == '"') ADVANCE(11); - if (lookahead == '#') ADVANCE(91); - if (lookahead == '&') ADVANCE(12); - if (lookahead == '\'') ADVANCE(13); - if (lookahead == '-') ADVANCE(27); - if (lookahead == '<') ADVANCE(50); - if (lookahead == '=') ADVANCE(37); - if (lookahead == '>') ADVANCE(51); - if (lookahead == '\\') SKIP(5) + ADVANCE_MAP( + '\n', 43, + '!', 18, + '"', 11, + '#', 91, + '&', 12, + '\'', 13, + '-', 27, + '<', 50, + '=', 37, + '>', 51, + ); + if (lookahead == '\\') SKIP(5); if (lookahead == '|') ADVANCE(26); - if (lookahead == '\t' || - lookahead == '\r' || - lookahead == ' ') SKIP(6) + if (('\t' <= lookahead && lookahead <= '\r') || + lookahead == ' ') SKIP(6); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || @@ -1061,18 +1063,17 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead == '<') ADVANCE(50); if (lookahead == '=') ADVANCE(37); if (lookahead == '>') ADVANCE(51); - if (lookahead == '\\') SKIP(9) + if (lookahead == '\\') SKIP(9); if (lookahead == '|') ADVANCE(26); - if (lookahead == '\t' || - lookahead == '\r' || - lookahead == ' ') SKIP(7) + if (('\t' <= lookahead && lookahead <= '\r') || + lookahead == ' ') SKIP(7); END_STATE(); case 8: - if (lookahead == '\n') SKIP(7) + if (lookahead == '\n') SKIP(7); END_STATE(); case 9: - if (lookahead == '\n') SKIP(7) - if (lookahead == '\r') SKIP(8) + if (lookahead == '\n') SKIP(7); + if (lookahead == '\r') SKIP(8); END_STATE(); case 10: if (lookahead == '"') ADVANCE(11); @@ -1082,9 +1083,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead == '(') ADVANCE(66); if (lookahead == ')') ADVANCE(55); if (lookahead == '\\') ADVANCE(60); - if (lookahead == '\t' || - lookahead == '\n' || - lookahead == '\r' || + if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') ADVANCE(65); if (lookahead != 0) ADVANCE(69); END_STATE(); @@ -1164,42 +1163,42 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { END_STATE(); case 31: if (eof) ADVANCE(36); - if (lookahead == '\n') SKIP(0) + if (lookahead == '\n') SKIP(0); END_STATE(); case 32: if (eof) ADVANCE(36); - if (lookahead == '\n') SKIP(0) - if (lookahead == '\r') SKIP(31) + if (lookahead == '\n') SKIP(0); + if (lookahead == '\r') SKIP(31); END_STATE(); case 33: if (eof) ADVANCE(36); - if (lookahead == '\n') SKIP(35) + if (lookahead == '\n') SKIP(35); END_STATE(); case 34: if (eof) ADVANCE(36); - if (lookahead == '\n') SKIP(35) - if (lookahead == '\r') SKIP(33) + if (lookahead == '\n') SKIP(35); + if (lookahead == '\r') SKIP(33); END_STATE(); case 35: if (eof) ADVANCE(36); - if (lookahead == '!') ADVANCE(46); - if (lookahead == '"') ADVANCE(11); - if (lookahead == '#') ADVANCE(91); - if (lookahead == '$') ADVANCE(14); - if (lookahead == '&') ADVANCE(12); - if (lookahead == '\'') ADVANCE(13); - if (lookahead == '(') ADVANCE(54); - if (lookahead == ')') ADVANCE(55); - if (lookahead == '-') ADVANCE(27); - if (lookahead == '<') ADVANCE(50); - if (lookahead == '=') ADVANCE(37); - if (lookahead == '>') ADVANCE(51); - if (lookahead == '\\') SKIP(34) + ADVANCE_MAP( + '!', 46, + '"', 11, + '#', 91, + '$', 14, + '&', 12, + '\'', 13, + '(', 54, + ')', 55, + '-', 27, + '<', 50, + '=', 37, + '>', 51, + ); + if (lookahead == '\\') SKIP(34); if (lookahead == '|') ADVANCE(26); - if (lookahead == '\t' || - lookahead == '\n' || - lookahead == '\r' || - lookahead == ' ') SKIP(35) + if (('\t' <= lookahead && lookahead <= '\r') || + lookahead == ' ') SKIP(35); if (('0' <= lookahead && lookahead <= '9') || ('A' <= lookahead && lookahead <= 'Z') || lookahead == '_' || @@ -1360,12 +1359,10 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) { if (lookahead == '$') ADVANCE(15); if (lookahead == '(') ADVANCE(66); if (lookahead == '\\') ADVANCE(60); - if (lookahead == '\t' || - lookahead == '\n' || - lookahead == '\r' || + if (('\t' <= lookahead && lookahead <= '\r') || lookahead == ' ') ADVANCE(65); if (lookahead != 0 && - lookahead != '"' && + (lookahead < '"' || '$' < lookahead) && (lookahead < '\'' || ')' < lookahead)) ADVANCE(69); END_STATE(); case 66: @@ -1577,7 +1574,7 @@ static bool ts_lex_keywords(TSLexer *lexer, TSStateId state) { eof = lexer->eof(lexer); switch (state) { case 0: - if (lookahead == '\\') SKIP(1) + if (lookahead == '\\') SKIP(1); if (lookahead == 'b') ADVANCE(2); if (lookahead == 'c') ADVANCE(3); if (lookahead == 'd') ADVANCE(4); @@ -1590,14 +1587,12 @@ static bool ts_lex_keywords(TSLexer *lexer, TSStateId state) { if (lookahead == 'r') ADVANCE(11); if (lookahead == 's') ADVANCE(12); if (lookahead == 't') ADVANCE(13); - if (lookahead == '\t' || - lookahead == '\n' || - lookahead == '\r' || - lookahead == ' ') SKIP(0) + if (('\t' <= lookahead && lookahead <= '\r') || + lookahead == ' ') SKIP(0); END_STATE(); case 1: - if (lookahead == '\n') SKIP(0) - if (lookahead == '\r') SKIP(14) + if (lookahead == '\n') SKIP(0); + if (lookahead == '\r') SKIP(14); END_STATE(); case 2: if (lookahead == 'o') ADVANCE(15); @@ -1643,7 +1638,7 @@ static bool ts_lex_keywords(TSLexer *lexer, TSStateId state) { if (lookahead == 'r') ADVANCE(33); END_STATE(); case 14: - if (lookahead == '\n') SKIP(0) + if (lookahead == '\n') SKIP(0); END_STATE(); case 15: if (lookahead == 'o') ADVANCE(34); @@ -2147,40 +2142,40 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [120] = {.lex_state = 3}, [121] = {.lex_state = 3}, [122] = {.lex_state = 3}, - [123] = {.lex_state = 6}, - [124] = {.lex_state = 6}, - [125] = {.lex_state = 6}, + [123] = {.lex_state = 35}, + [124] = {.lex_state = 35}, + [125] = {.lex_state = 35}, [126] = {.lex_state = 35}, [127] = {.lex_state = 35}, [128] = {.lex_state = 35}, [129] = {.lex_state = 35}, - [130] = {.lex_state = 35}, - [131] = {.lex_state = 35}, - [132] = {.lex_state = 35}, - [133] = {.lex_state = 35}, + [130] = {.lex_state = 6}, + [131] = {.lex_state = 6}, + [132] = {.lex_state = 6}, + [133] = {.lex_state = 6}, [134] = {.lex_state = 35}, [135] = {.lex_state = 35}, - [136] = {.lex_state = 6}, + [136] = {.lex_state = 35}, [137] = {.lex_state = 35}, [138] = {.lex_state = 35}, [139] = {.lex_state = 35}, [140] = {.lex_state = 35}, - [141] = {.lex_state = 35}, + [141] = {.lex_state = 6}, [142] = {.lex_state = 6}, [143] = {.lex_state = 6}, [144] = {.lex_state = 6}, [145] = {.lex_state = 6}, [146] = {.lex_state = 6}, - [147] = {.lex_state = 6}, - [148] = {.lex_state = 6}, - [149] = {.lex_state = 6}, - [150] = {.lex_state = 6}, + [147] = {.lex_state = 35}, + [148] = {.lex_state = 35}, + [149] = {.lex_state = 35}, + [150] = {.lex_state = 35}, [151] = {.lex_state = 35}, [152] = {.lex_state = 35}, [153] = {.lex_state = 35}, [154] = {.lex_state = 35}, [155] = {.lex_state = 35}, - [156] = {.lex_state = 35}, + [156] = {.lex_state = 6}, [157] = {.lex_state = 35}, [158] = {.lex_state = 35}, [159] = {.lex_state = 35}, @@ -2192,8 +2187,8 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [165] = {.lex_state = 35}, [166] = {.lex_state = 35}, [167] = {.lex_state = 35}, - [168] = {.lex_state = 35}, - [169] = {.lex_state = 35}, + [168] = {.lex_state = 6}, + [169] = {.lex_state = 6}, [170] = {.lex_state = 35}, [171] = {.lex_state = 35}, [172] = {.lex_state = 35}, @@ -2211,30 +2206,30 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [184] = {.lex_state = 35}, [185] = {.lex_state = 35}, [186] = {.lex_state = 35}, - [187] = {.lex_state = 7}, - [188] = {.lex_state = 35}, - [189] = {.lex_state = 0}, + [187] = {.lex_state = 35}, + [188] = {.lex_state = 7}, + [189] = {.lex_state = 35}, [190] = {.lex_state = 35}, - [191] = {.lex_state = 7}, - [192] = {.lex_state = 7}, - [193] = {.lex_state = 0}, + [191] = {.lex_state = 35}, + [192] = {.lex_state = 35}, + [193] = {.lex_state = 35}, [194] = {.lex_state = 35}, - [195] = {.lex_state = 0}, + [195] = {.lex_state = 7}, [196] = {.lex_state = 35}, - [197] = {.lex_state = 35}, - [198] = {.lex_state = 0}, - [199] = {.lex_state = 0}, + [197] = {.lex_state = 0}, + [198] = {.lex_state = 35}, + [199] = {.lex_state = 35}, [200] = {.lex_state = 35}, - [201] = {.lex_state = 35}, - [202] = {.lex_state = 35}, - [203] = {.lex_state = 35}, - [204] = {.lex_state = 35}, - [205] = {.lex_state = 35}, + [201] = {.lex_state = 7}, + [202] = {.lex_state = 0}, + [203] = {.lex_state = 0}, + [204] = {.lex_state = 0}, + [205] = {.lex_state = 0}, [206] = {.lex_state = 10}, - [207] = {.lex_state = 10}, + [207] = {.lex_state = 6}, [208] = {.lex_state = 10}, - [209] = {.lex_state = 10}, - [210] = {.lex_state = 6}, + [209] = {.lex_state = 6}, + [210] = {.lex_state = 10}, [211] = {.lex_state = 10}, [212] = {.lex_state = 10}, [213] = {.lex_state = 10}, @@ -2242,85 +2237,71 @@ static const TSLexMode ts_lex_modes[STATE_COUNT] = { [215] = {.lex_state = 10}, [216] = {.lex_state = 10}, [217] = {.lex_state = 10}, - [218] = {.lex_state = 6}, + [218] = {.lex_state = 10}, [219] = {.lex_state = 10}, [220] = {.lex_state = 10}, [221] = {.lex_state = 0}, - [222] = {.lex_state = 0}, - [223] = {.lex_state = 10}, + [222] = {.lex_state = 10}, + [223] = {.lex_state = 0}, [224] = {.lex_state = 10}, [225] = {.lex_state = 10}, [226] = {.lex_state = 6}, [227] = {.lex_state = 6}, [228] = {.lex_state = 6}, - [229] = {.lex_state = 35}, + [229] = {.lex_state = 6}, [230] = {.lex_state = 6}, [231] = {.lex_state = 6}, - [232] = {.lex_state = 6}, - [233] = {.lex_state = 35}, - [234] = {.lex_state = 35}, + [232] = {.lex_state = 35}, + [233] = {.lex_state = 6}, + [234] = {.lex_state = 6}, [235] = {.lex_state = 6}, - [236] = {.lex_state = 6}, - [237] = {.lex_state = 6}, + [236] = {.lex_state = 35}, + [237] = {.lex_state = 35}, [238] = {.lex_state = 6}, [239] = {.lex_state = 6}, [240] = {.lex_state = 35}, [241] = {.lex_state = 6}, [242] = {.lex_state = 6}, - [243] = {.lex_state = 7}, + [243] = {.lex_state = 35}, [244] = {.lex_state = 7}, - [245] = {.lex_state = 7}, - [246] = {.lex_state = 7}, - [247] = {.lex_state = 0}, + [245] = {.lex_state = 0}, + [246] = {.lex_state = 35}, + [247] = {.lex_state = 7}, [248] = {.lex_state = 7}, [249] = {.lex_state = 0, .external_lex_state = 1}, - [250] = {.lex_state = 7}, - [251] = {.lex_state = 7}, + [250] = {.lex_state = 0}, + [251] = {.lex_state = 0, .external_lex_state = 1}, [252] = {.lex_state = 7}, - [253] = {.lex_state = 0}, - [254] = {.lex_state = 35}, - [255] = {.lex_state = 0}, - [256] = {.lex_state = 35}, - [257] = {.lex_state = 0, .external_lex_state = 1}, - [258] = {.lex_state = 7}, - [259] = {.lex_state = 35}, - [260] = {.lex_state = 35}, + [253] = {.lex_state = 7}, + [254] = {.lex_state = 0}, + [255] = {.lex_state = 35}, + [256] = {.lex_state = 7}, + [257] = {.lex_state = 7}, + [258] = {.lex_state = 35}, + [259] = {.lex_state = 0}, + [260] = {.lex_state = 0}, [261] = {.lex_state = 0}, [262] = {.lex_state = 7}, [263] = {.lex_state = 0}, - [264] = {.lex_state = 0}, - [265] = {.lex_state = 7}, + [264] = {.lex_state = 7}, + [265] = {.lex_state = 0}, [266] = {.lex_state = 7}, [267] = {.lex_state = 7}, [268] = {.lex_state = 35}, - [269] = {.lex_state = 35}, - [270] = {.lex_state = 0}, + [269] = {.lex_state = 7}, + [270] = {.lex_state = 7}, [271] = {.lex_state = 7}, [272] = {.lex_state = 7}, [273] = {.lex_state = 0}, - [274] = {.lex_state = 0}, - [275] = {.lex_state = 7}, - [276] = {.lex_state = 0}, + [274] = {.lex_state = 35}, + [275] = {.lex_state = 0}, + [276] = {.lex_state = 7}, [277] = {.lex_state = 7}, - [278] = {.lex_state = 35}, - [279] = {.lex_state = 0}, + [278] = {.lex_state = 0}, + [279] = {.lex_state = 35}, [280] = {.lex_state = 35}, }; -enum { - ts_external_token__help_text = 0, -}; - -static const TSSymbol ts_external_scanner_symbol_map[EXTERNAL_TOKEN_COUNT] = { - [ts_external_token__help_text] = sym__help_text, -}; - -static const bool ts_external_scanner_states[2][EXTERNAL_TOKEN_COUNT] = { - [1] = { - [ts_external_token__help_text] = true, - }, -}; - static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [0] = { [ts_builtin_sym_end] = ACTIONS(1), @@ -2374,18 +2355,18 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym__help_text] = ACTIONS(1), }, [1] = { - [sym_configuration] = STATE(279), - [sym_mainmenu] = STATE(92), - [sym__entry] = STATE(90), - [sym_config] = STATE(90), - [sym_menuconfig] = STATE(90), - [sym_choice] = STATE(90), - [sym_comment_entry] = STATE(90), - [sym_menu] = STATE(90), - [sym_if] = STATE(90), - [sym_source] = STATE(90), - [sym_variable] = STATE(90), - [aux_sym_configuration_repeat1] = STATE(90), + [sym_configuration] = STATE(245), + [sym_mainmenu] = STATE(89), + [sym__entry] = STATE(97), + [sym_config] = STATE(97), + [sym_menuconfig] = STATE(97), + [sym_choice] = STATE(97), + [sym_comment_entry] = STATE(97), + [sym_menu] = STATE(97), + [sym_if] = STATE(97), + [sym_source] = STATE(97), + [sym_variable] = STATE(97), + [aux_sym_configuration_repeat1] = STATE(97), [ts_builtin_sym_end] = ACTIONS(5), [sym_symbol] = ACTIONS(7), [anon_sym_mainmenu] = ACTIONS(9), @@ -2399,28 +2380,28 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_comment] = ACTIONS(3), }, [2] = { - [sym__entry] = STATE(94), - [sym_config] = STATE(94), - [sym_menuconfig] = STATE(94), - [sym_choice] = STATE(94), - [sym_comment_entry] = STATE(94), - [sym_menu] = STATE(94), - [sym_if] = STATE(94), - [sym_source] = STATE(94), - [sym_variable] = STATE(94), - [sym__config_option] = STATE(14), - [sym_type_definition] = STATE(14), - [sym_input_prompt] = STATE(14), - [sym_default_value] = STATE(14), - [sym_type_definition_default] = STATE(14), - [sym_dependencies] = STATE(14), - [sym_reverse_dependencies] = STATE(14), - [sym_weak_reverse_dependencies] = STATE(14), - [sym_limiting_menu_display] = STATE(14), - [sym_numerical_ranges] = STATE(14), - [sym_help_text] = STATE(14), - [aux_sym_configuration_repeat1] = STATE(94), - [aux_sym_config_repeat1] = STATE(14), + [sym__entry] = STATE(95), + [sym_config] = STATE(95), + [sym_menuconfig] = STATE(95), + [sym_choice] = STATE(95), + [sym_comment_entry] = STATE(95), + [sym_menu] = STATE(95), + [sym_if] = STATE(95), + [sym_source] = STATE(95), + [sym_variable] = STATE(95), + [sym__config_option] = STATE(3), + [sym_type_definition] = STATE(3), + [sym_input_prompt] = STATE(3), + [sym_default_value] = STATE(3), + [sym_type_definition_default] = STATE(3), + [sym_dependencies] = STATE(3), + [sym_reverse_dependencies] = STATE(3), + [sym_weak_reverse_dependencies] = STATE(3), + [sym_limiting_menu_display] = STATE(3), + [sym_numerical_ranges] = STATE(3), + [sym_help_text] = STATE(3), + [aux_sym_configuration_repeat1] = STATE(95), + [aux_sym_config_repeat1] = STATE(3), [sym_symbol] = ACTIONS(25), [anon_sym_config] = ACTIONS(27), [anon_sym_menuconfig] = ACTIONS(29), @@ -2450,28 +2431,28 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [sym_comment] = ACTIONS(3), }, [3] = { - [sym__entry] = STATE(87), - [sym_config] = STATE(87), - [sym_menuconfig] = STATE(87), - [sym_choice] = STATE(87), - [sym_comment_entry] = STATE(87), - [sym_menu] = STATE(87), - [sym_if] = STATE(87), - [sym_source] = STATE(87), - [sym_variable] = STATE(87), - [sym__config_option] = STATE(14), - [sym_type_definition] = STATE(14), - [sym_input_prompt] = STATE(14), - [sym_default_value] = STATE(14), - [sym_type_definition_default] = STATE(14), - [sym_dependencies] = STATE(14), - [sym_reverse_dependencies] = STATE(14), - [sym_weak_reverse_dependencies] = STATE(14), - [sym_limiting_menu_display] = STATE(14), - [sym_numerical_ranges] = STATE(14), - [sym_help_text] = STATE(14), - [aux_sym_configuration_repeat1] = STATE(87), - [aux_sym_config_repeat1] = STATE(14), + [sym__entry] = STATE(88), + [sym_config] = STATE(88), + [sym_menuconfig] = STATE(88), + [sym_choice] = STATE(88), + [sym_comment_entry] = STATE(88), + [sym_menu] = STATE(88), + [sym_if] = STATE(88), + [sym_source] = STATE(88), + [sym_variable] = STATE(88), + [sym__config_option] = STATE(12), + [sym_type_definition] = STATE(12), + [sym_input_prompt] = STATE(12), + [sym_default_value] = STATE(12), + [sym_type_definition_default] = STATE(12), + [sym_dependencies] = STATE(12), + [sym_reverse_dependencies] = STATE(12), + [sym_weak_reverse_dependencies] = STATE(12), + [sym_limiting_menu_display] = STATE(12), + [sym_numerical_ranges] = STATE(12), + [sym_help_text] = STATE(12), + [aux_sym_configuration_repeat1] = STATE(88), + [aux_sym_config_repeat1] = STATE(12), [sym_symbol] = ACTIONS(25), [anon_sym_config] = ACTIONS(27), [anon_sym_menuconfig] = ACTIONS(29), @@ -2496,40 +2477,40 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_visibleif] = ACTIONS(57), [anon_sym_range] = ACTIONS(59), [anon_sym_help] = ACTIONS(61), - [sym_optional] = ACTIONS(63), - [sym_modules] = ACTIONS(63), + [sym_optional] = ACTIONS(67), + [sym_modules] = ACTIONS(67), [sym_comment] = ACTIONS(3), }, [4] = { - [sym__entry] = STATE(99), - [sym_config] = STATE(99), - [sym_menuconfig] = STATE(99), - [sym_choice] = STATE(99), - [sym_comment_entry] = STATE(99), - [sym_menu] = STATE(99), - [sym_if] = STATE(99), - [sym_source] = STATE(99), - [sym_variable] = STATE(99), - [sym__config_option] = STATE(2), - [sym_type_definition] = STATE(2), - [sym_input_prompt] = STATE(2), - [sym_default_value] = STATE(2), - [sym_type_definition_default] = STATE(2), - [sym_dependencies] = STATE(2), - [sym_reverse_dependencies] = STATE(2), - [sym_weak_reverse_dependencies] = STATE(2), - [sym_limiting_menu_display] = STATE(2), - [sym_numerical_ranges] = STATE(2), - [sym_help_text] = STATE(2), - [aux_sym_configuration_repeat1] = STATE(99), - [aux_sym_config_repeat1] = STATE(2), + [sym__entry] = STATE(92), + [sym_config] = STATE(92), + [sym_menuconfig] = STATE(92), + [sym_choice] = STATE(92), + [sym_comment_entry] = STATE(92), + [sym_menu] = STATE(92), + [sym_if] = STATE(92), + [sym_source] = STATE(92), + [sym_variable] = STATE(92), + [sym__config_option] = STATE(5), + [sym_type_definition] = STATE(5), + [sym_input_prompt] = STATE(5), + [sym_default_value] = STATE(5), + [sym_type_definition_default] = STATE(5), + [sym_dependencies] = STATE(5), + [sym_reverse_dependencies] = STATE(5), + [sym_weak_reverse_dependencies] = STATE(5), + [sym_limiting_menu_display] = STATE(5), + [sym_numerical_ranges] = STATE(5), + [sym_help_text] = STATE(5), + [aux_sym_configuration_repeat1] = STATE(92), + [aux_sym_config_repeat1] = STATE(5), [sym_symbol] = ACTIONS(25), [anon_sym_config] = ACTIONS(27), [anon_sym_menuconfig] = ACTIONS(29), [anon_sym_choice] = ACTIONS(31), [anon_sym_comment] = ACTIONS(33), [anon_sym_menu] = ACTIONS(35), - [anon_sym_endmenu] = ACTIONS(67), + [anon_sym_endmenu] = ACTIONS(69), [anon_sym_if] = ACTIONS(39), [anon_sym_source] = ACTIONS(41), [anon_sym_bool] = ACTIONS(43), @@ -2547,40 +2528,40 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_visibleif] = ACTIONS(57), [anon_sym_range] = ACTIONS(59), [anon_sym_help] = ACTIONS(61), - [sym_optional] = ACTIONS(69), - [sym_modules] = ACTIONS(69), + [sym_optional] = ACTIONS(71), + [sym_modules] = ACTIONS(71), [sym_comment] = ACTIONS(3), }, [5] = { - [sym__entry] = STATE(89), - [sym_config] = STATE(89), - [sym_menuconfig] = STATE(89), - [sym_choice] = STATE(89), - [sym_comment_entry] = STATE(89), - [sym_menu] = STATE(89), - [sym_if] = STATE(89), - [sym_source] = STATE(89), - [sym_variable] = STATE(89), - [sym__config_option] = STATE(3), - [sym_type_definition] = STATE(3), - [sym_input_prompt] = STATE(3), - [sym_default_value] = STATE(3), - [sym_type_definition_default] = STATE(3), - [sym_dependencies] = STATE(3), - [sym_reverse_dependencies] = STATE(3), - [sym_weak_reverse_dependencies] = STATE(3), - [sym_limiting_menu_display] = STATE(3), - [sym_numerical_ranges] = STATE(3), - [sym_help_text] = STATE(3), - [aux_sym_configuration_repeat1] = STATE(89), - [aux_sym_config_repeat1] = STATE(3), + [sym__entry] = STATE(100), + [sym_config] = STATE(100), + [sym_menuconfig] = STATE(100), + [sym_choice] = STATE(100), + [sym_comment_entry] = STATE(100), + [sym_menu] = STATE(100), + [sym_if] = STATE(100), + [sym_source] = STATE(100), + [sym_variable] = STATE(100), + [sym__config_option] = STATE(12), + [sym_type_definition] = STATE(12), + [sym_input_prompt] = STATE(12), + [sym_default_value] = STATE(12), + [sym_type_definition_default] = STATE(12), + [sym_dependencies] = STATE(12), + [sym_reverse_dependencies] = STATE(12), + [sym_weak_reverse_dependencies] = STATE(12), + [sym_limiting_menu_display] = STATE(12), + [sym_numerical_ranges] = STATE(12), + [sym_help_text] = STATE(12), + [aux_sym_configuration_repeat1] = STATE(100), + [aux_sym_config_repeat1] = STATE(12), [sym_symbol] = ACTIONS(25), [anon_sym_config] = ACTIONS(27), [anon_sym_menuconfig] = ACTIONS(29), [anon_sym_choice] = ACTIONS(31), [anon_sym_comment] = ACTIONS(33), [anon_sym_menu] = ACTIONS(35), - [anon_sym_endmenu] = ACTIONS(71), + [anon_sym_endmenu] = ACTIONS(73), [anon_sym_if] = ACTIONS(39), [anon_sym_source] = ACTIONS(41), [anon_sym_bool] = ACTIONS(43), @@ -2598,33 +2579,33 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_visibleif] = ACTIONS(57), [anon_sym_range] = ACTIONS(59), [anon_sym_help] = ACTIONS(61), - [sym_optional] = ACTIONS(73), - [sym_modules] = ACTIONS(73), + [sym_optional] = ACTIONS(67), + [sym_modules] = ACTIONS(67), [sym_comment] = ACTIONS(3), }, [6] = { - [sym__entry] = STATE(100), - [sym_config] = STATE(100), - [sym_menuconfig] = STATE(100), - [sym_choice] = STATE(100), - [sym_comment_entry] = STATE(100), - [sym_menu] = STATE(100), - [sym_if] = STATE(100), - [sym_source] = STATE(100), - [sym_variable] = STATE(100), - [sym__config_option] = STATE(14), - [sym_type_definition] = STATE(14), - [sym_input_prompt] = STATE(14), - [sym_default_value] = STATE(14), - [sym_type_definition_default] = STATE(14), - [sym_dependencies] = STATE(14), - [sym_reverse_dependencies] = STATE(14), - [sym_weak_reverse_dependencies] = STATE(14), - [sym_limiting_menu_display] = STATE(14), - [sym_numerical_ranges] = STATE(14), - [sym_help_text] = STATE(14), - [aux_sym_configuration_repeat1] = STATE(100), - [aux_sym_config_repeat1] = STATE(14), + [sym__entry] = STATE(96), + [sym_config] = STATE(96), + [sym_menuconfig] = STATE(96), + [sym_choice] = STATE(96), + [sym_comment_entry] = STATE(96), + [sym_menu] = STATE(96), + [sym_if] = STATE(96), + [sym_source] = STATE(96), + [sym_variable] = STATE(96), + [sym__config_option] = STATE(12), + [sym_type_definition] = STATE(12), + [sym_input_prompt] = STATE(12), + [sym_default_value] = STATE(12), + [sym_type_definition_default] = STATE(12), + [sym_dependencies] = STATE(12), + [sym_reverse_dependencies] = STATE(12), + [sym_weak_reverse_dependencies] = STATE(12), + [sym_limiting_menu_display] = STATE(12), + [sym_numerical_ranges] = STATE(12), + [sym_help_text] = STATE(12), + [aux_sym_configuration_repeat1] = STATE(96), + [aux_sym_config_repeat1] = STATE(12), [sym_symbol] = ACTIONS(25), [anon_sym_config] = ACTIONS(27), [anon_sym_menuconfig] = ACTIONS(29), @@ -2648,33 +2629,33 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_visibleif] = ACTIONS(57), [anon_sym_range] = ACTIONS(59), [anon_sym_help] = ACTIONS(61), - [sym_optional] = ACTIONS(63), - [sym_modules] = ACTIONS(63), + [sym_optional] = ACTIONS(67), + [sym_modules] = ACTIONS(67), [sym_comment] = ACTIONS(3), }, [7] = { - [sym__entry] = STATE(97), - [sym_config] = STATE(97), - [sym_menuconfig] = STATE(97), - [sym_choice] = STATE(97), - [sym_comment_entry] = STATE(97), - [sym_menu] = STATE(97), - [sym_if] = STATE(97), - [sym_source] = STATE(97), - [sym_variable] = STATE(97), - [sym__config_option] = STATE(14), - [sym_type_definition] = STATE(14), - [sym_input_prompt] = STATE(14), - [sym_default_value] = STATE(14), - [sym_type_definition_default] = STATE(14), - [sym_dependencies] = STATE(14), - [sym_reverse_dependencies] = STATE(14), - [sym_weak_reverse_dependencies] = STATE(14), - [sym_limiting_menu_display] = STATE(14), - [sym_numerical_ranges] = STATE(14), - [sym_help_text] = STATE(14), - [aux_sym_configuration_repeat1] = STATE(97), - [aux_sym_config_repeat1] = STATE(14), + [sym__entry] = STATE(99), + [sym_config] = STATE(99), + [sym_menuconfig] = STATE(99), + [sym_choice] = STATE(99), + [sym_comment_entry] = STATE(99), + [sym_menu] = STATE(99), + [sym_if] = STATE(99), + [sym_source] = STATE(99), + [sym_variable] = STATE(99), + [sym__config_option] = STATE(12), + [sym_type_definition] = STATE(12), + [sym_input_prompt] = STATE(12), + [sym_default_value] = STATE(12), + [sym_type_definition_default] = STATE(12), + [sym_dependencies] = STATE(12), + [sym_reverse_dependencies] = STATE(12), + [sym_weak_reverse_dependencies] = STATE(12), + [sym_limiting_menu_display] = STATE(12), + [sym_numerical_ranges] = STATE(12), + [sym_help_text] = STATE(12), + [aux_sym_configuration_repeat1] = STATE(99), + [aux_sym_config_repeat1] = STATE(12), [sym_symbol] = ACTIONS(25), [anon_sym_config] = ACTIONS(27), [anon_sym_menuconfig] = ACTIONS(29), @@ -2698,33 +2679,33 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_visibleif] = ACTIONS(57), [anon_sym_range] = ACTIONS(59), [anon_sym_help] = ACTIONS(61), - [sym_optional] = ACTIONS(63), - [sym_modules] = ACTIONS(63), + [sym_optional] = ACTIONS(67), + [sym_modules] = ACTIONS(67), [sym_comment] = ACTIONS(3), }, [8] = { - [sym__entry] = STATE(96), - [sym_config] = STATE(96), - [sym_menuconfig] = STATE(96), - [sym_choice] = STATE(96), - [sym_comment_entry] = STATE(96), - [sym_menu] = STATE(96), - [sym_if] = STATE(96), - [sym_source] = STATE(96), - [sym_variable] = STATE(96), - [sym__config_option] = STATE(14), - [sym_type_definition] = STATE(14), - [sym_input_prompt] = STATE(14), - [sym_default_value] = STATE(14), - [sym_type_definition_default] = STATE(14), - [sym_dependencies] = STATE(14), - [sym_reverse_dependencies] = STATE(14), - [sym_weak_reverse_dependencies] = STATE(14), - [sym_limiting_menu_display] = STATE(14), - [sym_numerical_ranges] = STATE(14), - [sym_help_text] = STATE(14), - [aux_sym_configuration_repeat1] = STATE(96), - [aux_sym_config_repeat1] = STATE(14), + [sym__entry] = STATE(85), + [sym_config] = STATE(85), + [sym_menuconfig] = STATE(85), + [sym_choice] = STATE(85), + [sym_comment_entry] = STATE(85), + [sym_menu] = STATE(85), + [sym_if] = STATE(85), + [sym_source] = STATE(85), + [sym_variable] = STATE(85), + [sym__config_option] = STATE(12), + [sym_type_definition] = STATE(12), + [sym_input_prompt] = STATE(12), + [sym_default_value] = STATE(12), + [sym_type_definition_default] = STATE(12), + [sym_dependencies] = STATE(12), + [sym_reverse_dependencies] = STATE(12), + [sym_weak_reverse_dependencies] = STATE(12), + [sym_limiting_menu_display] = STATE(12), + [sym_numerical_ranges] = STATE(12), + [sym_help_text] = STATE(12), + [aux_sym_configuration_repeat1] = STATE(85), + [aux_sym_config_repeat1] = STATE(12), [sym_symbol] = ACTIONS(25), [anon_sym_config] = ACTIONS(27), [anon_sym_menuconfig] = ACTIONS(29), @@ -2748,33 +2729,33 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_visibleif] = ACTIONS(57), [anon_sym_range] = ACTIONS(59), [anon_sym_help] = ACTIONS(61), - [sym_optional] = ACTIONS(63), - [sym_modules] = ACTIONS(63), + [sym_optional] = ACTIONS(67), + [sym_modules] = ACTIONS(67), [sym_comment] = ACTIONS(3), }, [9] = { - [sym__entry] = STATE(91), - [sym_config] = STATE(91), - [sym_menuconfig] = STATE(91), - [sym_choice] = STATE(91), - [sym_comment_entry] = STATE(91), - [sym_menu] = STATE(91), - [sym_if] = STATE(91), - [sym_source] = STATE(91), - [sym_variable] = STATE(91), - [sym__config_option] = STATE(14), - [sym_type_definition] = STATE(14), - [sym_input_prompt] = STATE(14), - [sym_default_value] = STATE(14), - [sym_type_definition_default] = STATE(14), - [sym_dependencies] = STATE(14), - [sym_reverse_dependencies] = STATE(14), - [sym_weak_reverse_dependencies] = STATE(14), - [sym_limiting_menu_display] = STATE(14), - [sym_numerical_ranges] = STATE(14), - [sym_help_text] = STATE(14), - [aux_sym_configuration_repeat1] = STATE(91), - [aux_sym_config_repeat1] = STATE(14), + [sym__entry] = STATE(94), + [sym_config] = STATE(94), + [sym_menuconfig] = STATE(94), + [sym_choice] = STATE(94), + [sym_comment_entry] = STATE(94), + [sym_menu] = STATE(94), + [sym_if] = STATE(94), + [sym_source] = STATE(94), + [sym_variable] = STATE(94), + [sym__config_option] = STATE(12), + [sym_type_definition] = STATE(12), + [sym_input_prompt] = STATE(12), + [sym_default_value] = STATE(12), + [sym_type_definition_default] = STATE(12), + [sym_dependencies] = STATE(12), + [sym_reverse_dependencies] = STATE(12), + [sym_weak_reverse_dependencies] = STATE(12), + [sym_limiting_menu_display] = STATE(12), + [sym_numerical_ranges] = STATE(12), + [sym_help_text] = STATE(12), + [aux_sym_configuration_repeat1] = STATE(94), + [aux_sym_config_repeat1] = STATE(12), [sym_symbol] = ACTIONS(25), [anon_sym_config] = ACTIONS(27), [anon_sym_menuconfig] = ACTIONS(29), @@ -2798,8 +2779,8 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = { [anon_sym_visibleif] = ACTIONS(57), [anon_sym_range] = ACTIONS(59), [anon_sym_help] = ACTIONS(61), - [sym_optional] = ACTIONS(63), - [sym_modules] = ACTIONS(63), + [sym_optional] = ACTIONS(67), + [sym_modules] = ACTIONS(67), [sym_comment] = ACTIONS(3), }, }; @@ -2827,7 +2808,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(49), 2, anon_sym_def_bool, anon_sym_def_tristate, - ACTIONS(63), 2, + ACTIONS(77), 2, sym_optional, sym_modules, ACTIONS(43), 5, @@ -2883,7 +2864,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(49), 2, anon_sym_def_bool, anon_sym_def_tristate, - ACTIONS(63), 2, + ACTIONS(67), 2, sym_optional, sym_modules, ACTIONS(43), 5, @@ -2892,7 +2873,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_int, anon_sym_hex, anon_sym_string, - ACTIONS(77), 11, + ACTIONS(79), 11, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -2904,7 +2885,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_endif, anon_sym_source, sym_symbol, - STATE(14), 12, + STATE(12), 12, sym__config_option, sym_type_definition, sym_input_prompt, @@ -2920,35 +2901,35 @@ static const uint16_t ts_small_parse_table[] = { [140] = 14, ACTIONS(3), 1, sym_comment, - ACTIONS(45), 1, + ACTIONS(86), 1, anon_sym_prompt, - ACTIONS(47), 1, + ACTIONS(89), 1, anon_sym_default, - ACTIONS(51), 1, + ACTIONS(95), 1, anon_sym_dependson, - ACTIONS(53), 1, + ACTIONS(98), 1, anon_sym_select, - ACTIONS(55), 1, + ACTIONS(101), 1, anon_sym_imply, - ACTIONS(57), 1, + ACTIONS(104), 1, anon_sym_visibleif, - ACTIONS(59), 1, + ACTIONS(107), 1, anon_sym_range, - ACTIONS(61), 1, + ACTIONS(110), 1, anon_sym_help, - ACTIONS(49), 2, + ACTIONS(92), 2, anon_sym_def_bool, anon_sym_def_tristate, - ACTIONS(63), 2, + ACTIONS(113), 2, sym_optional, sym_modules, - ACTIONS(43), 5, + ACTIONS(83), 5, anon_sym_bool, anon_sym_tristate, anon_sym_int, anon_sym_hex, anon_sym_string, - ACTIONS(79), 11, + ACTIONS(81), 11, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -2960,7 +2941,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_endif, anon_sym_source, sym_symbol, - STATE(14), 12, + STATE(12), 12, sym__config_option, sym_type_definition, sym_input_prompt, @@ -2995,7 +2976,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(49), 2, anon_sym_def_bool, anon_sym_def_tristate, - ACTIONS(83), 2, + ACTIONS(67), 2, sym_optional, sym_modules, ACTIONS(43), 5, @@ -3004,7 +2985,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_int, anon_sym_hex, anon_sym_string, - ACTIONS(81), 11, + ACTIONS(116), 11, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -3016,7 +2997,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_endif, anon_sym_source, sym_symbol, - STATE(10), 12, + STATE(12), 12, sym__config_option, sym_type_definition, sym_input_prompt, @@ -3032,35 +3013,35 @@ static const uint16_t ts_small_parse_table[] = { [280] = 14, ACTIONS(3), 1, sym_comment, - ACTIONS(90), 1, + ACTIONS(45), 1, anon_sym_prompt, - ACTIONS(93), 1, + ACTIONS(47), 1, anon_sym_default, - ACTIONS(99), 1, + ACTIONS(51), 1, anon_sym_dependson, - ACTIONS(102), 1, + ACTIONS(53), 1, anon_sym_select, - ACTIONS(105), 1, + ACTIONS(55), 1, anon_sym_imply, - ACTIONS(108), 1, + ACTIONS(57), 1, anon_sym_visibleif, - ACTIONS(111), 1, + ACTIONS(59), 1, anon_sym_range, - ACTIONS(114), 1, + ACTIONS(61), 1, anon_sym_help, - ACTIONS(96), 2, + ACTIONS(49), 2, anon_sym_def_bool, anon_sym_def_tristate, - ACTIONS(117), 2, + ACTIONS(67), 2, sym_optional, sym_modules, - ACTIONS(87), 5, + ACTIONS(43), 5, anon_sym_bool, anon_sym_tristate, anon_sym_int, anon_sym_hex, anon_sym_string, - ACTIONS(85), 11, + ACTIONS(118), 11, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -3072,7 +3053,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_endif, anon_sym_source, sym_symbol, - STATE(14), 12, + STATE(12), 12, sym__config_option, sym_type_definition, sym_input_prompt, @@ -3118,7 +3099,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_int, anon_sym_hex, anon_sym_string, - ACTIONS(77), 8, + ACTIONS(116), 8, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -3127,7 +3108,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_if, anon_sym_source, sym_symbol, - STATE(17), 12, + STATE(18), 12, sym__config_option, sym_type_definition, sym_input_prompt, @@ -3164,7 +3145,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(128), 2, anon_sym_def_bool, anon_sym_def_tristate, - ACTIONS(146), 2, + ACTIONS(142), 2, sym_optional, sym_modules, ACTIONS(122), 5, @@ -3173,7 +3154,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_int, anon_sym_hex, anon_sym_string, - ACTIONS(81), 8, + ACTIONS(118), 8, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -3182,7 +3163,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_if, anon_sym_source, sym_symbol, - STATE(19), 12, + STATE(18), 12, sym__config_option, sym_type_definition, sym_input_prompt, @@ -3198,37 +3179,37 @@ static const uint16_t ts_small_parse_table[] = { [490] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(148), 1, - ts_builtin_sym_end, - ACTIONS(153), 1, + ACTIONS(124), 1, anon_sym_prompt, - ACTIONS(156), 1, + ACTIONS(126), 1, anon_sym_default, - ACTIONS(162), 1, + ACTIONS(130), 1, anon_sym_dependson, - ACTIONS(165), 1, + ACTIONS(132), 1, anon_sym_select, - ACTIONS(168), 1, + ACTIONS(134), 1, anon_sym_imply, - ACTIONS(171), 1, + ACTIONS(136), 1, anon_sym_visibleif, - ACTIONS(174), 1, + ACTIONS(138), 1, anon_sym_range, - ACTIONS(177), 1, + ACTIONS(140), 1, anon_sym_help, - ACTIONS(159), 2, + ACTIONS(146), 1, + ts_builtin_sym_end, + ACTIONS(128), 2, anon_sym_def_bool, anon_sym_def_tristate, - ACTIONS(180), 2, + ACTIONS(142), 2, sym_optional, sym_modules, - ACTIONS(150), 5, + ACTIONS(122), 5, anon_sym_bool, anon_sym_tristate, anon_sym_int, anon_sym_hex, anon_sym_string, - ACTIONS(85), 8, + ACTIONS(79), 8, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -3237,7 +3218,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_if, anon_sym_source, sym_symbol, - STATE(17), 12, + STATE(18), 12, sym__config_option, sym_type_definition, sym_input_prompt, @@ -3253,37 +3234,37 @@ static const uint16_t ts_small_parse_table[] = { [560] = 15, ACTIONS(3), 1, sym_comment, - ACTIONS(124), 1, + ACTIONS(148), 1, + ts_builtin_sym_end, + ACTIONS(153), 1, anon_sym_prompt, - ACTIONS(126), 1, + ACTIONS(156), 1, anon_sym_default, - ACTIONS(130), 1, + ACTIONS(162), 1, anon_sym_dependson, - ACTIONS(132), 1, + ACTIONS(165), 1, anon_sym_select, - ACTIONS(134), 1, + ACTIONS(168), 1, anon_sym_imply, - ACTIONS(136), 1, + ACTIONS(171), 1, anon_sym_visibleif, - ACTIONS(138), 1, + ACTIONS(174), 1, anon_sym_range, - ACTIONS(140), 1, + ACTIONS(177), 1, anon_sym_help, - ACTIONS(183), 1, - ts_builtin_sym_end, - ACTIONS(128), 2, + ACTIONS(159), 2, anon_sym_def_bool, anon_sym_def_tristate, - ACTIONS(142), 2, + ACTIONS(180), 2, sym_optional, sym_modules, - ACTIONS(122), 5, + ACTIONS(150), 5, anon_sym_bool, anon_sym_tristate, anon_sym_int, anon_sym_hex, anon_sym_string, - ACTIONS(79), 8, + ACTIONS(81), 8, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -3292,7 +3273,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_if, anon_sym_source, sym_symbol, - STATE(17), 12, + STATE(18), 12, sym__config_option, sym_type_definition, sym_input_prompt, @@ -3324,12 +3305,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_range, ACTIONS(140), 1, anon_sym_help, - ACTIONS(185), 1, + ACTIONS(183), 1, ts_builtin_sym_end, ACTIONS(128), 2, anon_sym_def_bool, anon_sym_def_tristate, - ACTIONS(142), 2, + ACTIONS(185), 2, sym_optional, sym_modules, ACTIONS(122), 5, @@ -3347,7 +3328,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_if, anon_sym_source, sym_symbol, - STATE(17), 12, + STATE(16), 12, sym__config_option, sym_type_definition, sym_input_prompt, @@ -3360,19 +3341,26 @@ static const uint16_t ts_small_parse_table[] = { sym_numerical_ranges, sym_help_text, aux_sym_config_repeat1, - [700] = 3, + [700] = 8, ACTIONS(3), 1, sym_comment, - ACTIONS(189), 8, + ACTIONS(189), 1, anon_sym_EQ, - anon_sym_dependson, - anon_sym_visibleif, + ACTIONS(193), 1, anon_sym_PIPE_PIPE, + ACTIONS(195), 1, anon_sym_AMP_AMP, + ACTIONS(191), 2, + anon_sym_dependson, + anon_sym_visibleif, + ACTIONS(199), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(197), 3, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - ACTIONS(187), 28, + ACTIONS(187), 26, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -3398,13 +3386,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_help, sym_optional, sym_modules, - anon_sym_LT, - anon_sym_GT, sym_symbol, - [744] = 3, + [754] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(193), 8, + ACTIONS(203), 8, anon_sym_EQ, anon_sym_dependson, anon_sym_visibleif, @@ -3413,7 +3399,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - ACTIONS(191), 28, + ACTIONS(201), 28, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -3442,10 +3428,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT, anon_sym_GT, sym_symbol, - [788] = 3, + [798] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(197), 8, + ACTIONS(207), 8, anon_sym_EQ, anon_sym_dependson, anon_sym_visibleif, @@ -3454,7 +3440,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - ACTIONS(195), 28, + ACTIONS(205), 28, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -3483,12 +3469,11 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT, anon_sym_GT, sym_symbol, - [832] = 4, + [842] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(199), 1, + ACTIONS(211), 8, anon_sym_EQ, - ACTIONS(189), 7, anon_sym_dependson, anon_sym_visibleif, anon_sym_PIPE_PIPE, @@ -3496,7 +3481,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - ACTIONS(187), 28, + ACTIONS(209), 28, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -3525,10 +3510,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT, anon_sym_GT, sym_symbol, - [878] = 3, + [886] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(203), 8, + ACTIONS(215), 8, anon_sym_EQ, anon_sym_dependson, anon_sym_visibleif, @@ -3537,7 +3522,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - ACTIONS(201), 28, + ACTIONS(213), 28, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -3566,10 +3551,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT, anon_sym_GT, sym_symbol, - [922] = 3, + [930] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(207), 8, + ACTIONS(219), 8, anon_sym_EQ, anon_sym_dependson, anon_sym_visibleif, @@ -3578,7 +3563,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - ACTIONS(205), 28, + ACTIONS(217), 28, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -3607,26 +3592,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT, anon_sym_GT, sym_symbol, - [966] = 8, + [974] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(199), 1, + ACTIONS(223), 8, anon_sym_EQ, - ACTIONS(213), 1, - anon_sym_PIPE_PIPE, - ACTIONS(215), 1, - anon_sym_AMP_AMP, - ACTIONS(211), 2, anon_sym_dependson, anon_sym_visibleif, - ACTIONS(219), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(217), 3, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - ACTIONS(209), 26, + ACTIONS(221), 28, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -3652,25 +3630,28 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_help, sym_optional, sym_modules, + anon_sym_LT, + anon_sym_GT, sym_symbol, - [1020] = 6, + [1018] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(199), 1, + ACTIONS(189), 1, anon_sym_EQ, - ACTIONS(219), 2, + ACTIONS(195), 1, + anon_sym_AMP_AMP, + ACTIONS(199), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(217), 3, + ACTIONS(197), 3, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - ACTIONS(189), 4, + ACTIONS(223), 3, anon_sym_dependson, anon_sym_visibleif, anon_sym_PIPE_PIPE, - anon_sym_AMP_AMP, - ACTIONS(187), 26, + ACTIONS(221), 26, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -3697,19 +3678,24 @@ static const uint16_t ts_small_parse_table[] = { sym_optional, sym_modules, sym_symbol, - [1070] = 3, + [1070] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(223), 8, + ACTIONS(189), 1, anon_sym_EQ, + ACTIONS(199), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(197), 3, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(223), 4, anon_sym_dependson, anon_sym_visibleif, anon_sym_PIPE_PIPE, anon_sym_AMP_AMP, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - ACTIONS(221), 28, + ACTIONS(221), 26, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -3735,28 +3721,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_help, sym_optional, sym_modules, - anon_sym_LT, - anon_sym_GT, sym_symbol, - [1114] = 7, + [1120] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(199), 1, + ACTIONS(189), 1, anon_sym_EQ, - ACTIONS(215), 1, - anon_sym_AMP_AMP, - ACTIONS(219), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(189), 3, + ACTIONS(223), 7, anon_sym_dependson, anon_sym_visibleif, anon_sym_PIPE_PIPE, - ACTIONS(217), 3, + anon_sym_AMP_AMP, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - ACTIONS(187), 26, + ACTIONS(221), 28, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -3782,11 +3761,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_help, sym_optional, sym_modules, + anon_sym_LT, + anon_sym_GT, sym_symbol, [1166] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(207), 9, + ACTIONS(211), 9, ts_builtin_sym_end, anon_sym_EQ, anon_sym_dependson, @@ -3796,7 +3777,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - ACTIONS(205), 25, + ACTIONS(209), 25, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -3825,7 +3806,7 @@ static const uint16_t ts_small_parse_table[] = { [1208] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(223), 9, + ACTIONS(219), 9, ts_builtin_sym_end, anon_sym_EQ, anon_sym_dependson, @@ -3835,7 +3816,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - ACTIONS(221), 25, + ACTIONS(217), 25, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -3861,25 +3842,21 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT, anon_sym_GT, sym_symbol, - [1250] = 6, + [1250] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(225), 1, anon_sym_EQ, - ACTIONS(229), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(227), 3, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - ACTIONS(189), 5, + ACTIONS(223), 8, ts_builtin_sym_end, anon_sym_dependson, anon_sym_visibleif, anon_sym_PIPE_PIPE, anon_sym_AMP_AMP, - ACTIONS(187), 23, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(221), 25, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -3902,26 +3879,29 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_help, sym_optional, sym_modules, + anon_sym_LT, + anon_sym_GT, sym_symbol, - [1298] = 7, + [1294] = 8, ACTIONS(3), 1, sym_comment, ACTIONS(225), 1, anon_sym_EQ, - ACTIONS(231), 1, + ACTIONS(227), 1, + anon_sym_PIPE_PIPE, + ACTIONS(229), 1, anon_sym_AMP_AMP, - ACTIONS(229), 2, + ACTIONS(233), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(227), 3, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - ACTIONS(189), 4, + ACTIONS(191), 3, ts_builtin_sym_end, anon_sym_dependson, anon_sym_visibleif, - anon_sym_PIPE_PIPE, + ACTIONS(231), 3, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, ACTIONS(187), 23, anon_sym_config, anon_sym_menuconfig, @@ -3946,10 +3926,10 @@ static const uint16_t ts_small_parse_table[] = { sym_optional, sym_modules, sym_symbol, - [1348] = 3, + [1346] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(189), 9, + ACTIONS(223), 9, ts_builtin_sym_end, anon_sym_EQ, anon_sym_dependson, @@ -3959,7 +3939,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - ACTIONS(187), 25, + ACTIONS(221), 25, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -3985,27 +3965,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT, anon_sym_GT, sym_symbol, - [1390] = 8, + [1388] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(225), 1, - anon_sym_EQ, - ACTIONS(231), 1, - anon_sym_AMP_AMP, - ACTIONS(233), 1, - anon_sym_PIPE_PIPE, - ACTIONS(229), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(211), 3, + ACTIONS(203), 9, ts_builtin_sym_end, + anon_sym_EQ, anon_sym_dependson, anon_sym_visibleif, - ACTIONS(227), 3, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - ACTIONS(209), 23, + ACTIONS(201), 25, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -4028,11 +4001,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_help, sym_optional, sym_modules, + anon_sym_LT, + anon_sym_GT, sym_symbol, - [1442] = 3, + [1430] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(197), 9, + ACTIONS(207), 9, ts_builtin_sym_end, anon_sym_EQ, anon_sym_dependson, @@ -4042,7 +4017,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - ACTIONS(195), 25, + ACTIONS(205), 25, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -4068,10 +4043,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT, anon_sym_GT, sym_symbol, - [1484] = 3, + [1472] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(193), 9, + ACTIONS(215), 9, ts_builtin_sym_end, anon_sym_EQ, anon_sym_dependson, @@ -4081,7 +4056,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - ACTIONS(191), 25, + ACTIONS(213), 25, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -4107,20 +4082,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT, anon_sym_GT, sym_symbol, - [1526] = 3, + [1514] = 6, ACTIONS(3), 1, sym_comment, - ACTIONS(203), 9, - ts_builtin_sym_end, + ACTIONS(225), 1, anon_sym_EQ, + ACTIONS(233), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(231), 3, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + ACTIONS(223), 5, + ts_builtin_sym_end, anon_sym_dependson, anon_sym_visibleif, anon_sym_PIPE_PIPE, anon_sym_AMP_AMP, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - ACTIONS(201), 25, + ACTIONS(221), 23, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -4143,24 +4123,27 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_help, sym_optional, sym_modules, - anon_sym_LT, - anon_sym_GT, sym_symbol, - [1568] = 4, + [1562] = 7, ACTIONS(3), 1, sym_comment, ACTIONS(225), 1, anon_sym_EQ, - ACTIONS(189), 8, - ts_builtin_sym_end, - anon_sym_dependson, - anon_sym_visibleif, - anon_sym_PIPE_PIPE, + ACTIONS(229), 1, anon_sym_AMP_AMP, + ACTIONS(233), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(231), 3, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - ACTIONS(187), 25, + ACTIONS(223), 4, + ts_builtin_sym_end, + anon_sym_dependson, + anon_sym_visibleif, + anon_sym_PIPE_PIPE, + ACTIONS(221), 23, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -4183,8 +4166,6 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_help, sym_optional, sym_modules, - anon_sym_LT, - anon_sym_GT, sym_symbol, [1612] = 14, ACTIONS(3), 1, @@ -4219,7 +4200,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_int, anon_sym_hex, anon_sym_string, - STATE(8), 12, + STATE(9), 12, sym__config_option, sym_type_definition, sym_input_prompt, @@ -4281,9 +4262,9 @@ static const uint16_t ts_small_parse_table[] = { [1732] = 13, ACTIONS(3), 1, sym_comment, - ACTIONS(130), 1, + ACTIONS(51), 1, anon_sym_dependson, - ACTIONS(136), 1, + ACTIONS(57), 1, anon_sym_visibleif, ACTIONS(245), 1, anon_sym_prompt, @@ -4309,7 +4290,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_int, anon_sym_hex, anon_sym_string, - STATE(18), 12, + STATE(8), 12, sym__config_option, sym_type_definition, sym_input_prompt, @@ -4329,25 +4310,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_dependson, ACTIONS(136), 1, anon_sym_visibleif, - ACTIONS(245), 1, + ACTIONS(263), 1, anon_sym_prompt, - ACTIONS(247), 1, + ACTIONS(265), 1, anon_sym_default, - ACTIONS(251), 1, + ACTIONS(269), 1, anon_sym_select, - ACTIONS(253), 1, + ACTIONS(271), 1, anon_sym_imply, - ACTIONS(255), 1, + ACTIONS(273), 1, anon_sym_range, - ACTIONS(257), 1, + ACTIONS(275), 1, anon_sym_help, - ACTIONS(249), 2, + ACTIONS(267), 2, anon_sym_def_bool, anon_sym_def_tristate, - ACTIONS(261), 2, + ACTIONS(277), 2, sym_optional, sym_modules, - ACTIONS(243), 5, + ACTIONS(261), 5, anon_sym_bool, anon_sym_tristate, anon_sym_int, @@ -4373,25 +4354,25 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_dependson, ACTIONS(57), 1, anon_sym_visibleif, - ACTIONS(265), 1, + ACTIONS(245), 1, anon_sym_prompt, - ACTIONS(267), 1, + ACTIONS(247), 1, anon_sym_default, - ACTIONS(271), 1, + ACTIONS(251), 1, anon_sym_select, - ACTIONS(273), 1, + ACTIONS(253), 1, anon_sym_imply, - ACTIONS(275), 1, + ACTIONS(255), 1, anon_sym_range, - ACTIONS(277), 1, + ACTIONS(257), 1, anon_sym_help, - ACTIONS(269), 2, + ACTIONS(249), 2, anon_sym_def_bool, anon_sym_def_tristate, ACTIONS(279), 2, sym_optional, sym_modules, - ACTIONS(263), 5, + ACTIONS(243), 5, anon_sym_bool, anon_sym_tristate, anon_sym_int, @@ -4417,31 +4398,31 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_dependson, ACTIONS(57), 1, anon_sym_visibleif, - ACTIONS(265), 1, + ACTIONS(245), 1, anon_sym_prompt, - ACTIONS(267), 1, + ACTIONS(247), 1, anon_sym_default, - ACTIONS(271), 1, + ACTIONS(251), 1, anon_sym_select, - ACTIONS(273), 1, + ACTIONS(253), 1, anon_sym_imply, - ACTIONS(275), 1, + ACTIONS(255), 1, anon_sym_range, - ACTIONS(277), 1, + ACTIONS(257), 1, anon_sym_help, - ACTIONS(269), 2, + ACTIONS(249), 2, anon_sym_def_bool, anon_sym_def_tristate, ACTIONS(281), 2, sym_optional, sym_modules, - ACTIONS(263), 5, + ACTIONS(243), 5, anon_sym_bool, anon_sym_tristate, anon_sym_int, anon_sym_hex, anon_sym_string, - STATE(9), 12, + STATE(11), 12, sym__config_option, sym_type_definition, sym_input_prompt, @@ -4461,31 +4442,31 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_dependson, ACTIONS(57), 1, anon_sym_visibleif, - ACTIONS(265), 1, + ACTIONS(245), 1, anon_sym_prompt, - ACTIONS(267), 1, + ACTIONS(247), 1, anon_sym_default, - ACTIONS(271), 1, + ACTIONS(251), 1, anon_sym_select, - ACTIONS(273), 1, + ACTIONS(253), 1, anon_sym_imply, - ACTIONS(275), 1, + ACTIONS(255), 1, anon_sym_range, - ACTIONS(277), 1, + ACTIONS(257), 1, anon_sym_help, - ACTIONS(269), 2, + ACTIONS(249), 2, anon_sym_def_bool, anon_sym_def_tristate, ACTIONS(283), 2, sym_optional, sym_modules, - ACTIONS(263), 5, + ACTIONS(243), 5, anon_sym_bool, anon_sym_tristate, anon_sym_int, anon_sym_hex, anon_sym_string, - STATE(11), 12, + STATE(13), 12, sym__config_option, sym_type_definition, sym_input_prompt, @@ -4501,35 +4482,35 @@ static const uint16_t ts_small_parse_table[] = { [2017] = 13, ACTIONS(3), 1, sym_comment, - ACTIONS(51), 1, + ACTIONS(130), 1, anon_sym_dependson, - ACTIONS(57), 1, + ACTIONS(136), 1, anon_sym_visibleif, - ACTIONS(265), 1, + ACTIONS(263), 1, anon_sym_prompt, - ACTIONS(267), 1, + ACTIONS(265), 1, anon_sym_default, - ACTIONS(271), 1, + ACTIONS(269), 1, anon_sym_select, - ACTIONS(273), 1, + ACTIONS(271), 1, anon_sym_imply, - ACTIONS(275), 1, + ACTIONS(273), 1, anon_sym_range, - ACTIONS(277), 1, + ACTIONS(275), 1, anon_sym_help, - ACTIONS(269), 2, + ACTIONS(267), 2, anon_sym_def_bool, anon_sym_def_tristate, ACTIONS(285), 2, sym_optional, sym_modules, - ACTIONS(263), 5, + ACTIONS(261), 5, anon_sym_bool, anon_sym_tristate, anon_sym_int, anon_sym_hex, anon_sym_string, - STATE(12), 12, + STATE(17), 12, sym__config_option, sym_type_definition, sym_input_prompt, @@ -5137,7 +5118,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - STATE(98), 10, + STATE(93), 10, sym__entry, sym_config, sym_menuconfig, @@ -5182,7 +5163,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - STATE(93), 10, + STATE(98), 10, sym__entry, sym_config, sym_menuconfig, @@ -5196,11 +5177,11 @@ static const uint16_t ts_small_parse_table[] = { [2808] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(353), 3, + ACTIONS(317), 3, ts_builtin_sym_end, anon_sym_dependson, anon_sym_visibleif, - ACTIONS(351), 23, + ACTIONS(315), 23, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -5227,11 +5208,11 @@ static const uint16_t ts_small_parse_table[] = { [2842] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(337), 3, + ACTIONS(293), 3, ts_builtin_sym_end, anon_sym_dependson, anon_sym_visibleif, - ACTIONS(335), 23, + ACTIONS(291), 23, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -5258,11 +5239,11 @@ static const uint16_t ts_small_parse_table[] = { [2876] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(333), 3, + ACTIONS(329), 3, ts_builtin_sym_end, anon_sym_dependson, anon_sym_visibleif, - ACTIONS(331), 23, + ACTIONS(327), 23, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -5289,11 +5270,11 @@ static const uint16_t ts_small_parse_table[] = { [2910] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(345), 3, + ACTIONS(341), 3, ts_builtin_sym_end, anon_sym_dependson, anon_sym_visibleif, - ACTIONS(343), 23, + ACTIONS(339), 23, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -5320,11 +5301,11 @@ static const uint16_t ts_small_parse_table[] = { [2944] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(293), 3, + ACTIONS(305), 3, ts_builtin_sym_end, anon_sym_dependson, anon_sym_visibleif, - ACTIONS(291), 23, + ACTIONS(303), 23, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -5351,11 +5332,11 @@ static const uint16_t ts_small_parse_table[] = { [2978] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(305), 3, + ACTIONS(297), 3, ts_builtin_sym_end, anon_sym_dependson, anon_sym_visibleif, - ACTIONS(303), 23, + ACTIONS(295), 23, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -5382,11 +5363,11 @@ static const uint16_t ts_small_parse_table[] = { [3012] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(289), 3, + ACTIONS(301), 3, ts_builtin_sym_end, anon_sym_dependson, anon_sym_visibleif, - ACTIONS(287), 23, + ACTIONS(299), 23, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -5413,11 +5394,11 @@ static const uint16_t ts_small_parse_table[] = { [3046] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(297), 3, + ACTIONS(309), 3, ts_builtin_sym_end, anon_sym_dependson, anon_sym_visibleif, - ACTIONS(295), 23, + ACTIONS(307), 23, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -5444,11 +5425,11 @@ static const uint16_t ts_small_parse_table[] = { [3080] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(309), 3, + ACTIONS(313), 3, ts_builtin_sym_end, anon_sym_dependson, anon_sym_visibleif, - ACTIONS(307), 23, + ACTIONS(311), 23, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -5475,11 +5456,11 @@ static const uint16_t ts_small_parse_table[] = { [3114] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(317), 3, + ACTIONS(321), 3, ts_builtin_sym_end, anon_sym_dependson, anon_sym_visibleif, - ACTIONS(315), 23, + ACTIONS(319), 23, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -5506,11 +5487,11 @@ static const uint16_t ts_small_parse_table[] = { [3148] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(349), 3, + ACTIONS(325), 3, ts_builtin_sym_end, anon_sym_dependson, anon_sym_visibleif, - ACTIONS(347), 23, + ACTIONS(323), 23, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -5537,11 +5518,11 @@ static const uint16_t ts_small_parse_table[] = { [3182] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(321), 3, + ACTIONS(289), 3, ts_builtin_sym_end, anon_sym_dependson, anon_sym_visibleif, - ACTIONS(319), 23, + ACTIONS(287), 23, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -5568,11 +5549,11 @@ static const uint16_t ts_small_parse_table[] = { [3216] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(313), 3, + ACTIONS(333), 3, ts_builtin_sym_end, anon_sym_dependson, anon_sym_visibleif, - ACTIONS(311), 23, + ACTIONS(331), 23, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -5599,11 +5580,11 @@ static const uint16_t ts_small_parse_table[] = { [3250] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(325), 3, + ACTIONS(353), 3, ts_builtin_sym_end, anon_sym_dependson, anon_sym_visibleif, - ACTIONS(323), 23, + ACTIONS(351), 23, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -5630,11 +5611,11 @@ static const uint16_t ts_small_parse_table[] = { [3284] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(301), 3, + ACTIONS(337), 3, ts_builtin_sym_end, anon_sym_dependson, anon_sym_visibleif, - ACTIONS(299), 23, + ACTIONS(335), 23, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -5661,11 +5642,11 @@ static const uint16_t ts_small_parse_table[] = { [3318] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(329), 3, + ACTIONS(345), 3, ts_builtin_sym_end, anon_sym_dependson, anon_sym_visibleif, - ACTIONS(327), 23, + ACTIONS(343), 23, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -5692,11 +5673,11 @@ static const uint16_t ts_small_parse_table[] = { [3352] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(341), 3, + ACTIONS(349), 3, ts_builtin_sym_end, anon_sym_dependson, anon_sym_visibleif, - ACTIONS(339), 23, + ACTIONS(347), 23, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -5757,25 +5738,25 @@ static const uint16_t ts_small_parse_table[] = { [3431] = 11, ACTIONS(3), 1, sym_comment, - ACTIONS(395), 1, - ts_builtin_sym_end, - ACTIONS(397), 1, + ACTIONS(25), 1, sym_symbol, - ACTIONS(400), 1, + ACTIONS(27), 1, anon_sym_config, - ACTIONS(403), 1, + ACTIONS(29), 1, anon_sym_menuconfig, - ACTIONS(406), 1, + ACTIONS(31), 1, anon_sym_choice, - ACTIONS(409), 1, + ACTIONS(33), 1, anon_sym_comment, - ACTIONS(412), 1, + ACTIONS(35), 1, anon_sym_menu, - ACTIONS(415), 1, + ACTIONS(39), 1, anon_sym_if, - ACTIONS(418), 1, + ACTIONS(41), 1, anon_sym_source, - STATE(85), 10, + ACTIONS(395), 1, + anon_sym_endchoice, + STATE(84), 10, sym__entry, sym_config, sym_menuconfig, @@ -5786,52 +5767,28 @@ static const uint16_t ts_small_parse_table[] = { sym_source, sym_variable, aux_sym_configuration_repeat1, - [3474] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(223), 8, - anon_sym_EQ, - anon_sym_PIPE_PIPE, - anon_sym_AMP_AMP, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_RPAREN, - anon_sym_DOLLAR_LPAREN, - ACTIONS(221), 11, - anon_sym_config, - anon_sym_menuconfig, - anon_sym_choice, - anon_sym_comment, - anon_sym_menu, - anon_sym_if, - anon_sym_endif, - anon_sym_source, - anon_sym_LT, - anon_sym_GT, - sym_symbol, - [3501] = 11, + [3474] = 11, ACTIONS(3), 1, sym_comment, - ACTIONS(25), 1, + ACTIONS(7), 1, sym_symbol, - ACTIONS(27), 1, + ACTIONS(11), 1, anon_sym_config, - ACTIONS(29), 1, + ACTIONS(13), 1, anon_sym_menuconfig, - ACTIONS(31), 1, + ACTIONS(15), 1, anon_sym_choice, - ACTIONS(33), 1, + ACTIONS(17), 1, anon_sym_comment, - ACTIONS(35), 1, + ACTIONS(19), 1, anon_sym_menu, - ACTIONS(39), 1, + ACTIONS(21), 1, anon_sym_if, - ACTIONS(41), 1, + ACTIONS(23), 1, anon_sym_source, - ACTIONS(421), 1, - anon_sym_endmenu, - STATE(84), 10, + ACTIONS(397), 1, + ts_builtin_sym_end, + STATE(87), 10, sym__entry, sym_config, sym_menuconfig, @@ -5842,28 +5799,28 @@ static const uint16_t ts_small_parse_table[] = { sym_source, sym_variable, aux_sym_configuration_repeat1, - [3544] = 11, + [3517] = 11, ACTIONS(3), 1, sym_comment, - ACTIONS(7), 1, + ACTIONS(399), 1, + ts_builtin_sym_end, + ACTIONS(401), 1, sym_symbol, - ACTIONS(11), 1, + ACTIONS(404), 1, anon_sym_config, - ACTIONS(13), 1, + ACTIONS(407), 1, anon_sym_menuconfig, - ACTIONS(15), 1, + ACTIONS(410), 1, anon_sym_choice, - ACTIONS(17), 1, + ACTIONS(413), 1, anon_sym_comment, - ACTIONS(19), 1, + ACTIONS(416), 1, anon_sym_menu, - ACTIONS(21), 1, + ACTIONS(419), 1, anon_sym_if, - ACTIONS(23), 1, + ACTIONS(422), 1, anon_sym_source, - ACTIONS(423), 1, - ts_builtin_sym_end, - STATE(85), 10, + STATE(87), 10, sym__entry, sym_config, sym_menuconfig, @@ -5874,7 +5831,7 @@ static const uint16_t ts_small_parse_table[] = { sym_source, sym_variable, aux_sym_configuration_repeat1, - [3587] = 11, + [3560] = 11, ACTIONS(3), 1, sym_comment, ACTIONS(25), 1, @@ -5893,7 +5850,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_if, ACTIONS(41), 1, anon_sym_source, - ACTIONS(65), 1, + ACTIONS(425), 1, anon_sym_endmenu, STATE(84), 10, sym__entry, @@ -5906,7 +5863,7 @@ static const uint16_t ts_small_parse_table[] = { sym_source, sym_variable, aux_sym_configuration_repeat1, - [3630] = 11, + [3603] = 11, ACTIONS(3), 1, sym_comment, ACTIONS(7), 1, @@ -5925,9 +5882,9 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_if, ACTIONS(23), 1, anon_sym_source, - ACTIONS(425), 1, + ACTIONS(427), 1, ts_builtin_sym_end, - STATE(85), 10, + STATE(86), 10, sym__entry, sym_config, sym_menuconfig, @@ -5938,7 +5895,55 @@ static const uint16_t ts_small_parse_table[] = { sym_source, sym_variable, aux_sym_configuration_repeat1, - [3673] = 11, + [3646] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(219), 8, + anon_sym_EQ, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_RPAREN, + anon_sym_DOLLAR_LPAREN, + ACTIONS(217), 11, + anon_sym_config, + anon_sym_menuconfig, + anon_sym_choice, + anon_sym_comment, + anon_sym_menu, + anon_sym_if, + anon_sym_endif, + anon_sym_source, + anon_sym_LT, + anon_sym_GT, + sym_symbol, + [3673] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(211), 8, + anon_sym_EQ, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + anon_sym_RPAREN, + anon_sym_DOLLAR_LPAREN, + ACTIONS(209), 11, + anon_sym_config, + anon_sym_menuconfig, + anon_sym_choice, + anon_sym_comment, + anon_sym_menu, + anon_sym_if, + anon_sym_endif, + anon_sym_source, + anon_sym_LT, + anon_sym_GT, + sym_symbol, + [3700] = 11, ACTIONS(3), 1, sym_comment, ACTIONS(25), 1, @@ -5957,8 +5962,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_if, ACTIONS(41), 1, anon_sym_source, - ACTIONS(427), 1, - anon_sym_endchoice, + ACTIONS(73), 1, + anon_sym_endmenu, STATE(84), 10, sym__entry, sym_config, @@ -5970,28 +5975,28 @@ static const uint16_t ts_small_parse_table[] = { sym_source, sym_variable, aux_sym_configuration_repeat1, - [3716] = 11, + [3743] = 11, ACTIONS(3), 1, sym_comment, - ACTIONS(7), 1, + ACTIONS(25), 1, sym_symbol, - ACTIONS(11), 1, + ACTIONS(27), 1, anon_sym_config, - ACTIONS(13), 1, + ACTIONS(29), 1, anon_sym_menuconfig, - ACTIONS(15), 1, + ACTIONS(31), 1, anon_sym_choice, - ACTIONS(17), 1, + ACTIONS(33), 1, anon_sym_comment, - ACTIONS(19), 1, + ACTIONS(35), 1, anon_sym_menu, - ACTIONS(21), 1, + ACTIONS(39), 1, anon_sym_if, - ACTIONS(23), 1, + ACTIONS(41), 1, anon_sym_source, - ACTIONS(425), 1, - ts_builtin_sym_end, - STATE(88), 10, + ACTIONS(429), 1, + anon_sym_endif, + STATE(84), 10, sym__entry, sym_config, sym_menuconfig, @@ -6002,7 +6007,7 @@ static const uint16_t ts_small_parse_table[] = { sym_source, sym_variable, aux_sym_configuration_repeat1, - [3759] = 11, + [3786] = 11, ACTIONS(3), 1, sym_comment, ACTIONS(25), 1, @@ -6021,8 +6026,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_if, ACTIONS(41), 1, anon_sym_source, - ACTIONS(429), 1, - anon_sym_endif, + ACTIONS(431), 1, + anon_sym_endchoice, STATE(84), 10, sym__entry, sym_config, @@ -6034,7 +6039,7 @@ static const uint16_t ts_small_parse_table[] = { sym_source, sym_variable, aux_sym_configuration_repeat1, - [3802] = 11, + [3829] = 11, ACTIONS(3), 1, sym_comment, ACTIONS(25), 1, @@ -6053,7 +6058,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_if, ACTIONS(41), 1, anon_sym_source, - ACTIONS(431), 1, + ACTIONS(65), 1, anon_sym_endmenu, STATE(84), 10, sym__entry, @@ -6066,30 +6071,6 @@ static const uint16_t ts_small_parse_table[] = { sym_source, sym_variable, aux_sym_configuration_repeat1, - [3845] = 3, - ACTIONS(3), 1, - sym_comment, - ACTIONS(193), 8, - anon_sym_EQ, - anon_sym_PIPE_PIPE, - anon_sym_AMP_AMP, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - anon_sym_RPAREN, - anon_sym_DOLLAR_LPAREN, - ACTIONS(191), 11, - anon_sym_config, - anon_sym_menuconfig, - anon_sym_choice, - anon_sym_comment, - anon_sym_menu, - anon_sym_if, - anon_sym_endif, - anon_sym_source, - anon_sym_LT, - anon_sym_GT, - sym_symbol, [3872] = 11, ACTIONS(3), 1, sym_comment, @@ -6125,25 +6106,25 @@ static const uint16_t ts_small_parse_table[] = { [3915] = 11, ACTIONS(3), 1, sym_comment, - ACTIONS(25), 1, + ACTIONS(7), 1, sym_symbol, - ACTIONS(27), 1, + ACTIONS(11), 1, anon_sym_config, - ACTIONS(29), 1, + ACTIONS(13), 1, anon_sym_menuconfig, - ACTIONS(31), 1, + ACTIONS(15), 1, anon_sym_choice, - ACTIONS(33), 1, + ACTIONS(17), 1, anon_sym_comment, - ACTIONS(35), 1, + ACTIONS(19), 1, anon_sym_menu, - ACTIONS(39), 1, + ACTIONS(21), 1, anon_sym_if, - ACTIONS(41), 1, + ACTIONS(23), 1, anon_sym_source, - ACTIONS(435), 1, - anon_sym_endchoice, - STATE(84), 10, + ACTIONS(427), 1, + ts_builtin_sym_end, + STATE(87), 10, sym__entry, sym_config, sym_menuconfig, @@ -6173,7 +6154,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_if, ACTIONS(41), 1, anon_sym_source, - ACTIONS(437), 1, + ACTIONS(435), 1, anon_sym_endif, STATE(84), 10, sym__entry, @@ -6201,12 +6182,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_comment, ACTIONS(35), 1, anon_sym_menu, - ACTIONS(37), 1, - anon_sym_endmenu, ACTIONS(39), 1, anon_sym_if, ACTIONS(41), 1, anon_sym_source, + ACTIONS(437), 1, + anon_sym_endchoice, STATE(84), 10, sym__entry, sym_config, @@ -6238,7 +6219,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(41), 1, anon_sym_source, ACTIONS(439), 1, - anon_sym_endchoice, + anon_sym_endmenu, STATE(84), 10, sym__entry, sym_config, @@ -6250,19 +6231,24 @@ static const uint16_t ts_small_parse_table[] = { sym_source, sym_variable, aux_sym_configuration_repeat1, - [4087] = 4, + [4087] = 7, ACTIONS(3), 1, sym_comment, ACTIONS(357), 1, anon_sym_EQ, - ACTIONS(189), 6, - anon_sym_PIPE_PIPE, + ACTIONS(361), 1, anon_sym_AMP_AMP, + ACTIONS(223), 2, + anon_sym_PIPE_PIPE, + anon_sym_RPAREN, + ACTIONS(365), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(363), 3, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - anon_sym_RPAREN, - ACTIONS(187), 11, + ACTIONS(221), 9, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -6271,10 +6257,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_if, anon_sym_endif, anon_sym_source, - anon_sym_LT, - anon_sym_GT, sym_symbol, - [4115] = 6, + [4121] = 6, ACTIONS(3), 1, sym_comment, ACTIONS(357), 1, @@ -6282,7 +6266,7 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(365), 2, anon_sym_LT, anon_sym_GT, - ACTIONS(189), 3, + ACTIONS(223), 3, anon_sym_PIPE_PIPE, anon_sym_AMP_AMP, anon_sym_RPAREN, @@ -6290,7 +6274,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - ACTIONS(187), 9, + ACTIONS(221), 9, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -6300,24 +6284,18 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_endif, anon_sym_source, sym_symbol, - [4147] = 7, + [4153] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(357), 1, + ACTIONS(215), 7, anon_sym_EQ, - ACTIONS(361), 1, - anon_sym_AMP_AMP, - ACTIONS(189), 2, anon_sym_PIPE_PIPE, - anon_sym_RPAREN, - ACTIONS(365), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(363), 3, + anon_sym_AMP_AMP, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - ACTIONS(187), 9, + anon_sym_RPAREN, + ACTIONS(213), 11, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -6326,11 +6304,13 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_if, anon_sym_endif, anon_sym_source, + anon_sym_LT, + anon_sym_GT, sym_symbol, - [4181] = 3, + [4179] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(189), 7, + ACTIONS(203), 7, anon_sym_EQ, anon_sym_PIPE_PIPE, anon_sym_AMP_AMP, @@ -6338,7 +6318,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT_EQ, anon_sym_RPAREN, - ACTIONS(187), 11, + ACTIONS(201), 11, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -6350,10 +6330,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT, anon_sym_GT, sym_symbol, - [4207] = 3, + [4205] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(207), 7, + ACTIONS(223), 7, anon_sym_EQ, anon_sym_PIPE_PIPE, anon_sym_AMP_AMP, @@ -6361,7 +6341,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT_EQ, anon_sym_RPAREN, - ACTIONS(205), 11, + ACTIONS(221), 11, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -6373,18 +6353,19 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT, anon_sym_GT, sym_symbol, - [4233] = 3, + [4231] = 4, ACTIONS(3), 1, sym_comment, - ACTIONS(203), 7, + ACTIONS(357), 1, anon_sym_EQ, + ACTIONS(223), 6, anon_sym_PIPE_PIPE, anon_sym_AMP_AMP, anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, anon_sym_RPAREN, - ACTIONS(201), 11, + ACTIONS(221), 11, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -6399,7 +6380,7 @@ static const uint16_t ts_small_parse_table[] = { [4259] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(197), 7, + ACTIONS(207), 7, anon_sym_EQ, anon_sym_PIPE_PIPE, anon_sym_AMP_AMP, @@ -6407,7 +6388,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT_EQ, anon_sym_GT_EQ, anon_sym_RPAREN, - ACTIONS(195), 11, + ACTIONS(205), 11, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -6419,32 +6400,36 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LT, anon_sym_GT, sym_symbol, - [4285] = 3, - ACTIONS(193), 1, - aux_sym_variable_token1, - ACTIONS(441), 1, - sym_comment, - ACTIONS(191), 14, + [4285] = 7, + ACTIONS(443), 1, anon_sym_EQ, - anon_sym_COMMA, - anon_sym_BANG, + ACTIONS(445), 1, + aux_sym_variable_token1, + ACTIONS(447), 1, anon_sym_PIPE_PIPE, + ACTIONS(449), 1, anon_sym_AMP_AMP, + ACTIONS(453), 1, + sym_comment, + ACTIONS(451), 5, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_GT, anon_sym_LT_EQ, anon_sym_GT_EQ, + ACTIONS(441), 6, + anon_sym_COMMA, + anon_sym_BANG, anon_sym_LPAREN, anon_sym_DOLLAR_LPAREN, sym_prompt, sym_symbol, - [4308] = 3, - ACTIONS(197), 1, + [4316] = 3, + ACTIONS(203), 1, aux_sym_variable_token1, - ACTIONS(441), 1, + ACTIONS(453), 1, sym_comment, - ACTIONS(195), 14, + ACTIONS(201), 14, anon_sym_EQ, anon_sym_COMMA, anon_sym_BANG, @@ -6459,36 +6444,32 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DOLLAR_LPAREN, sym_prompt, sym_symbol, - [4331] = 7, - ACTIONS(441), 1, + [4339] = 3, + ACTIONS(207), 1, + aux_sym_variable_token1, + ACTIONS(453), 1, sym_comment, - ACTIONS(445), 1, + ACTIONS(205), 14, anon_sym_EQ, - ACTIONS(447), 1, - aux_sym_variable_token1, - ACTIONS(449), 1, + anon_sym_COMMA, + anon_sym_BANG, anon_sym_PIPE_PIPE, - ACTIONS(451), 1, anon_sym_AMP_AMP, - ACTIONS(453), 5, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_GT, anon_sym_LT_EQ, anon_sym_GT_EQ, - ACTIONS(443), 6, - anon_sym_COMMA, - anon_sym_BANG, anon_sym_LPAREN, anon_sym_DOLLAR_LPAREN, sym_prompt, sym_symbol, [4362] = 3, - ACTIONS(189), 1, + ACTIONS(215), 1, aux_sym_variable_token1, - ACTIONS(441), 1, + ACTIONS(453), 1, sym_comment, - ACTIONS(187), 14, + ACTIONS(213), 14, anon_sym_EQ, anon_sym_COMMA, anon_sym_BANG, @@ -6503,13 +6484,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DOLLAR_LPAREN, sym_prompt, sym_symbol, - [4385] = 3, - ACTIONS(203), 1, + [4385] = 4, + ACTIONS(223), 1, aux_sym_variable_token1, - ACTIONS(441), 1, - sym_comment, - ACTIONS(201), 14, + ACTIONS(443), 1, anon_sym_EQ, + ACTIONS(453), 1, + sym_comment, + ACTIONS(221), 13, anon_sym_COMMA, anon_sym_BANG, anon_sym_PIPE_PIPE, @@ -6523,43 +6505,40 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DOLLAR_LPAREN, sym_prompt, sym_symbol, - [4408] = 6, - ACTIONS(189), 1, + [4410] = 3, + ACTIONS(219), 1, aux_sym_variable_token1, - ACTIONS(441), 1, + ACTIONS(453), 1, sym_comment, - ACTIONS(445), 1, + ACTIONS(217), 14, anon_sym_EQ, - ACTIONS(451), 1, + anon_sym_COMMA, + anon_sym_BANG, + anon_sym_PIPE_PIPE, anon_sym_AMP_AMP, - ACTIONS(453), 5, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_GT, anon_sym_LT_EQ, anon_sym_GT_EQ, - ACTIONS(187), 7, - anon_sym_COMMA, - anon_sym_BANG, - anon_sym_PIPE_PIPE, anon_sym_LPAREN, anon_sym_DOLLAR_LPAREN, sym_prompt, sym_symbol, - [4437] = 5, - ACTIONS(189), 1, + [4433] = 5, + ACTIONS(223), 1, aux_sym_variable_token1, - ACTIONS(441), 1, - sym_comment, - ACTIONS(445), 1, + ACTIONS(443), 1, anon_sym_EQ, - ACTIONS(453), 5, + ACTIONS(453), 1, + sym_comment, + ACTIONS(451), 5, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_GT, anon_sym_LT_EQ, anon_sym_GT_EQ, - ACTIONS(187), 8, + ACTIONS(221), 8, anon_sym_COMMA, anon_sym_BANG, anon_sym_PIPE_PIPE, @@ -6568,33 +6547,35 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DOLLAR_LPAREN, sym_prompt, sym_symbol, - [4464] = 4, - ACTIONS(189), 1, + [4460] = 6, + ACTIONS(223), 1, aux_sym_variable_token1, - ACTIONS(441), 1, - sym_comment, - ACTIONS(445), 1, + ACTIONS(443), 1, anon_sym_EQ, - ACTIONS(187), 13, - anon_sym_COMMA, - anon_sym_BANG, - anon_sym_PIPE_PIPE, + ACTIONS(449), 1, anon_sym_AMP_AMP, + ACTIONS(453), 1, + sym_comment, + ACTIONS(451), 5, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_GT, anon_sym_LT_EQ, anon_sym_GT_EQ, + ACTIONS(221), 7, + anon_sym_COMMA, + anon_sym_BANG, + anon_sym_PIPE_PIPE, anon_sym_LPAREN, anon_sym_DOLLAR_LPAREN, sym_prompt, sym_symbol, [4489] = 3, - ACTIONS(223), 1, + ACTIONS(211), 1, aux_sym_variable_token1, - ACTIONS(441), 1, + ACTIONS(453), 1, sym_comment, - ACTIONS(221), 14, + ACTIONS(209), 14, anon_sym_EQ, anon_sym_COMMA, anon_sym_BANG, @@ -6610,11 +6591,11 @@ static const uint16_t ts_small_parse_table[] = { sym_prompt, sym_symbol, [4512] = 3, - ACTIONS(207), 1, + ACTIONS(223), 1, aux_sym_variable_token1, - ACTIONS(441), 1, + ACTIONS(453), 1, sym_comment, - ACTIONS(205), 14, + ACTIONS(221), 14, anon_sym_EQ, anon_sym_COMMA, anon_sym_BANG, @@ -6630,7 +6611,7 @@ static const uint16_t ts_small_parse_table[] = { sym_prompt, sym_symbol, [4535] = 10, - ACTIONS(441), 1, + ACTIONS(453), 1, sym_comment, ACTIONS(457), 1, anon_sym_COMMA, @@ -6642,20 +6623,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, ACTIONS(465), 1, anon_sym_DOLLAR_LPAREN, - STATE(110), 1, + STATE(108), 1, sym_expression, STATE(122), 1, aux_sym_variable_repeat1, ACTIONS(455), 2, sym_prompt, sym_symbol, - STATE(117), 4, + STATE(109), 4, sym_unary_expression, sym_binary_expression, sym_parenthesized_expression, sym_macro_variable, [4570] = 10, - ACTIONS(441), 1, + ACTIONS(453), 1, sym_comment, ACTIONS(461), 1, anon_sym_BANG, @@ -6667,20 +6648,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, ACTIONS(469), 1, aux_sym_variable_token1, - STATE(110), 1, + STATE(108), 1, sym_expression, - STATE(120), 1, + STATE(121), 1, aux_sym_variable_repeat1, ACTIONS(455), 2, sym_prompt, sym_symbol, - STATE(117), 4, + STATE(109), 4, sym_unary_expression, sym_binary_expression, sym_parenthesized_expression, sym_macro_variable, [4605] = 10, - ACTIONS(441), 1, + ACTIONS(453), 1, sym_comment, ACTIONS(461), 1, anon_sym_BANG, @@ -6692,20 +6673,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COMMA, ACTIONS(473), 1, aux_sym_variable_token1, - STATE(110), 1, + STATE(108), 1, sym_expression, - STATE(121), 1, + STATE(119), 1, aux_sym_variable_repeat1, ACTIONS(455), 2, sym_prompt, sym_symbol, - STATE(117), 4, + STATE(109), 4, sym_unary_expression, sym_binary_expression, sym_parenthesized_expression, sym_macro_variable, [4640] = 10, - ACTIONS(441), 1, + ACTIONS(453), 1, sym_comment, ACTIONS(478), 1, anon_sym_COMMA, @@ -6717,20 +6698,20 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, ACTIONS(489), 1, anon_sym_DOLLAR_LPAREN, - STATE(110), 1, + STATE(108), 1, sym_expression, STATE(121), 1, aux_sym_variable_repeat1, ACTIONS(475), 2, sym_prompt, sym_symbol, - STATE(117), 4, + STATE(109), 4, sym_unary_expression, sym_binary_expression, sym_parenthesized_expression, sym_macro_variable, [4675] = 10, - ACTIONS(441), 1, + ACTIONS(453), 1, sym_comment, ACTIONS(461), 1, anon_sym_BANG, @@ -6738,89 +6719,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, ACTIONS(465), 1, anon_sym_DOLLAR_LPAREN, - ACTIONS(471), 1, + ACTIONS(467), 1, anon_sym_COMMA, ACTIONS(492), 1, aux_sym_variable_token1, - STATE(110), 1, + STATE(108), 1, sym_expression, STATE(121), 1, aux_sym_variable_repeat1, ACTIONS(455), 2, sym_prompt, sym_symbol, - STATE(117), 4, + STATE(109), 4, sym_unary_expression, sym_binary_expression, sym_parenthesized_expression, sym_macro_variable, - [4710] = 8, - ACTIONS(441), 1, - sym_comment, - ACTIONS(494), 1, - anon_sym_if, - ACTIONS(496), 1, - anon_sym_EQ, - ACTIONS(498), 1, - aux_sym_type_definition_token1, - ACTIONS(500), 1, - anon_sym_PIPE_PIPE, - ACTIONS(502), 1, - anon_sym_AMP_AMP, - STATE(265), 1, - sym_conditional_clause, - ACTIONS(504), 5, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_GT, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - [4739] = 8, - ACTIONS(441), 1, - sym_comment, - ACTIONS(494), 1, - anon_sym_if, - ACTIONS(496), 1, - anon_sym_EQ, - ACTIONS(500), 1, - anon_sym_PIPE_PIPE, - ACTIONS(502), 1, - anon_sym_AMP_AMP, - ACTIONS(506), 1, - aux_sym_type_definition_token1, - STATE(266), 1, - sym_conditional_clause, - ACTIONS(504), 5, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_GT, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - [4768] = 8, - ACTIONS(441), 1, - sym_comment, - ACTIONS(494), 1, - anon_sym_if, - ACTIONS(496), 1, - anon_sym_EQ, - ACTIONS(500), 1, - anon_sym_PIPE_PIPE, - ACTIONS(502), 1, - anon_sym_AMP_AMP, - ACTIONS(508), 1, - aux_sym_type_definition_token1, - STATE(258), 1, - sym_conditional_clause, - ACTIONS(504), 5, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_GT, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - [4797] = 2, + [4710] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(510), 11, + ACTIONS(494), 11, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -6832,10 +6750,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_endif, anon_sym_source, sym_symbol, - [4814] = 2, + [4727] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(512), 11, + ACTIONS(496), 11, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -6847,10 +6765,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_endif, anon_sym_source, sym_symbol, - [4831] = 2, + [4744] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(514), 11, + ACTIONS(498), 11, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -6862,10 +6780,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_endif, anon_sym_source, sym_symbol, - [4848] = 2, + [4761] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(516), 11, + ACTIONS(500), 11, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -6877,10 +6795,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_endif, anon_sym_source, sym_symbol, - [4865] = 2, + [4778] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(518), 11, + ACTIONS(502), 11, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -6892,10 +6810,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_endif, anon_sym_source, sym_symbol, - [4882] = 2, + [4795] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(520), 11, + ACTIONS(504), 11, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -6907,10 +6825,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_endif, anon_sym_source, sym_symbol, - [4899] = 2, + [4812] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(522), 11, + ACTIONS(506), 11, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -6922,10 +6840,94 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_endif, anon_sym_source, sym_symbol, - [4916] = 2, + [4829] = 8, + ACTIONS(453), 1, + sym_comment, + ACTIONS(508), 1, + anon_sym_if, + ACTIONS(510), 1, + anon_sym_EQ, + ACTIONS(512), 1, + aux_sym_type_definition_token1, + ACTIONS(514), 1, + anon_sym_PIPE_PIPE, + ACTIONS(516), 1, + anon_sym_AMP_AMP, + STATE(252), 1, + sym_conditional_clause, + ACTIONS(518), 5, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_GT, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [4858] = 8, + ACTIONS(453), 1, + sym_comment, + ACTIONS(508), 1, + anon_sym_if, + ACTIONS(510), 1, + anon_sym_EQ, + ACTIONS(514), 1, + anon_sym_PIPE_PIPE, + ACTIONS(516), 1, + anon_sym_AMP_AMP, + ACTIONS(520), 1, + aux_sym_type_definition_token1, + STATE(276), 1, + sym_conditional_clause, + ACTIONS(518), 5, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_GT, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [4887] = 8, + ACTIONS(453), 1, + sym_comment, + ACTIONS(508), 1, + anon_sym_if, + ACTIONS(510), 1, + anon_sym_EQ, + ACTIONS(514), 1, + anon_sym_PIPE_PIPE, + ACTIONS(516), 1, + anon_sym_AMP_AMP, + ACTIONS(522), 1, + aux_sym_type_definition_token1, + STATE(262), 1, + sym_conditional_clause, + ACTIONS(518), 5, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_GT, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [4916] = 8, + ACTIONS(453), 1, + sym_comment, + ACTIONS(508), 1, + anon_sym_if, + ACTIONS(510), 1, + anon_sym_EQ, + ACTIONS(514), 1, + anon_sym_PIPE_PIPE, + ACTIONS(516), 1, + anon_sym_AMP_AMP, + ACTIONS(524), 1, + aux_sym_type_definition_token1, + STATE(264), 1, + sym_conditional_clause, + ACTIONS(518), 5, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_GT, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [4945] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(524), 11, + ACTIONS(526), 11, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -6937,10 +6939,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_endif, anon_sym_source, sym_symbol, - [4933] = 2, + [4962] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(526), 11, + ACTIONS(528), 11, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -6952,10 +6954,10 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_endif, anon_sym_source, sym_symbol, - [4950] = 2, + [4979] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(528), 11, + ACTIONS(530), 11, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -6967,27 +6969,6 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_endif, anon_sym_source, sym_symbol, - [4967] = 8, - ACTIONS(441), 1, - sym_comment, - ACTIONS(494), 1, - anon_sym_if, - ACTIONS(496), 1, - anon_sym_EQ, - ACTIONS(500), 1, - anon_sym_PIPE_PIPE, - ACTIONS(502), 1, - anon_sym_AMP_AMP, - ACTIONS(530), 1, - aux_sym_type_definition_token1, - STATE(262), 1, - sym_conditional_clause, - ACTIONS(504), 5, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_GT, - anon_sym_LT_EQ, - anon_sym_GT_EQ, [4996] = 7, ACTIONS(3), 1, sym_comment, @@ -6997,12 +6978,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, ACTIONS(538), 1, anon_sym_DOLLAR_LPAREN, - STATE(102), 1, + STATE(112), 1, sym_expression, ACTIONS(532), 2, sym_prompt, sym_symbol, - STATE(105), 4, + STATE(109), 4, sym_unary_expression, sym_binary_expression, sym_parenthesized_expression, @@ -7016,12 +6997,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, ACTIONS(546), 1, anon_sym_DOLLAR_LPAREN, - STATE(125), 1, + STATE(204), 1, sym_expression, ACTIONS(540), 2, sym_prompt, sym_symbol, - STATE(150), 4, + STATE(104), 4, sym_unary_expression, sym_binary_expression, sym_parenthesized_expression, @@ -7029,18 +7010,18 @@ static const uint16_t ts_small_parse_table[] = { [5048] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(542), 1, + ACTIONS(550), 1, anon_sym_BANG, - ACTIONS(544), 1, + ACTIONS(552), 1, anon_sym_LPAREN, - ACTIONS(546), 1, + ACTIONS(554), 1, anon_sym_DOLLAR_LPAREN, - STATE(146), 1, + STATE(130), 1, sym_expression, - ACTIONS(540), 2, + ACTIONS(548), 2, sym_prompt, sym_symbol, - STATE(150), 4, + STATE(156), 4, sym_unary_expression, sym_binary_expression, sym_parenthesized_expression, @@ -7048,47 +7029,28 @@ static const uint16_t ts_small_parse_table[] = { [5074] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(542), 1, - anon_sym_BANG, - ACTIONS(544), 1, - anon_sym_LPAREN, - ACTIONS(546), 1, - anon_sym_DOLLAR_LPAREN, - STATE(147), 1, - sym_expression, - ACTIONS(540), 2, - sym_prompt, - sym_symbol, - STATE(150), 4, - sym_unary_expression, - sym_binary_expression, - sym_parenthesized_expression, - sym_macro_variable, - [5100] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(542), 1, + ACTIONS(550), 1, anon_sym_BANG, - ACTIONS(544), 1, + ACTIONS(552), 1, anon_sym_LPAREN, - ACTIONS(546), 1, + ACTIONS(554), 1, anon_sym_DOLLAR_LPAREN, - STATE(148), 1, + STATE(131), 1, sym_expression, - ACTIONS(540), 2, + ACTIONS(548), 2, sym_prompt, sym_symbol, - STATE(150), 4, + STATE(156), 4, sym_unary_expression, sym_binary_expression, sym_parenthesized_expression, sym_macro_variable, - [5126] = 3, - ACTIONS(193), 1, + [5100] = 3, + ACTIONS(215), 1, aux_sym_type_definition_token1, - ACTIONS(441), 1, + ACTIONS(453), 1, sym_comment, - ACTIONS(191), 9, + ACTIONS(213), 9, anon_sym_if, anon_sym_EQ, anon_sym_PIPE_PIPE, @@ -7098,12 +7060,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT, anon_sym_LT_EQ, anon_sym_GT_EQ, - [5144] = 3, - ACTIONS(203), 1, + [5118] = 3, + ACTIONS(219), 1, aux_sym_type_definition_token1, - ACTIONS(441), 1, + ACTIONS(453), 1, sym_comment, - ACTIONS(201), 9, + ACTIONS(217), 9, anon_sym_if, anon_sym_EQ, anon_sym_PIPE_PIPE, @@ -7113,12 +7075,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT, anon_sym_LT_EQ, anon_sym_GT_EQ, - [5162] = 3, - ACTIONS(197), 1, + [5136] = 3, + ACTIONS(223), 1, aux_sym_type_definition_token1, - ACTIONS(441), 1, + ACTIONS(453), 1, sym_comment, - ACTIONS(195), 9, + ACTIONS(221), 9, anon_sym_if, anon_sym_EQ, anon_sym_PIPE_PIPE, @@ -7128,179 +7090,134 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_GT, anon_sym_LT_EQ, anon_sym_GT_EQ, - [5180] = 3, + [5154] = 6, ACTIONS(223), 1, aux_sym_type_definition_token1, - ACTIONS(441), 1, + ACTIONS(453), 1, sym_comment, - ACTIONS(221), 9, - anon_sym_if, + ACTIONS(510), 1, anon_sym_EQ, - anon_sym_PIPE_PIPE, + ACTIONS(516), 1, anon_sym_AMP_AMP, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_GT, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - [5198] = 3, - ACTIONS(189), 1, - aux_sym_type_definition_token1, - ACTIONS(441), 1, - sym_comment, - ACTIONS(187), 9, + ACTIONS(221), 2, anon_sym_if, - anon_sym_EQ, anon_sym_PIPE_PIPE, - anon_sym_AMP_AMP, + ACTIONS(518), 5, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_GT, anon_sym_LT_EQ, anon_sym_GT_EQ, - [5216] = 6, - ACTIONS(189), 1, + [5178] = 5, + ACTIONS(223), 1, aux_sym_type_definition_token1, - ACTIONS(441), 1, + ACTIONS(453), 1, sym_comment, - ACTIONS(496), 1, + ACTIONS(510), 1, anon_sym_EQ, - ACTIONS(502), 1, - anon_sym_AMP_AMP, - ACTIONS(187), 2, + ACTIONS(221), 3, anon_sym_if, anon_sym_PIPE_PIPE, - ACTIONS(504), 5, + anon_sym_AMP_AMP, + ACTIONS(518), 5, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_GT, anon_sym_LT_EQ, anon_sym_GT_EQ, - [5240] = 5, - ACTIONS(189), 1, + [5200] = 4, + ACTIONS(223), 1, aux_sym_type_definition_token1, - ACTIONS(441), 1, + ACTIONS(453), 1, sym_comment, - ACTIONS(496), 1, + ACTIONS(510), 1, anon_sym_EQ, - ACTIONS(187), 3, + ACTIONS(221), 8, anon_sym_if, anon_sym_PIPE_PIPE, anon_sym_AMP_AMP, - ACTIONS(504), 5, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_GT, anon_sym_LT_EQ, anon_sym_GT_EQ, - [5262] = 4, - ACTIONS(189), 1, - aux_sym_type_definition_token1, - ACTIONS(441), 1, + [5220] = 7, + ACTIONS(3), 1, sym_comment, - ACTIONS(496), 1, - anon_sym_EQ, - ACTIONS(187), 8, - anon_sym_if, - anon_sym_PIPE_PIPE, - anon_sym_AMP_AMP, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_GT, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - [5282] = 3, - ACTIONS(207), 1, - aux_sym_type_definition_token1, - ACTIONS(441), 1, - sym_comment, - ACTIONS(205), 9, - anon_sym_if, - anon_sym_EQ, - anon_sym_PIPE_PIPE, - anon_sym_AMP_AMP, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_GT, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - [5300] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(534), 1, + ACTIONS(550), 1, anon_sym_BANG, - ACTIONS(536), 1, + ACTIONS(552), 1, anon_sym_LPAREN, - ACTIONS(538), 1, + ACTIONS(554), 1, anon_sym_DOLLAR_LPAREN, - STATE(199), 1, + STATE(201), 1, sym_expression, - ACTIONS(532), 2, + ACTIONS(548), 2, sym_prompt, sym_symbol, - STATE(105), 4, + STATE(156), 4, sym_unary_expression, sym_binary_expression, sym_parenthesized_expression, sym_macro_variable, - [5326] = 7, + [5246] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(534), 1, + ACTIONS(542), 1, anon_sym_BANG, - ACTIONS(536), 1, + ACTIONS(544), 1, anon_sym_LPAREN, - ACTIONS(538), 1, + ACTIONS(546), 1, anon_sym_DOLLAR_LPAREN, - STATE(198), 1, + STATE(65), 1, sym_expression, - ACTIONS(532), 2, + ACTIONS(540), 2, sym_prompt, sym_symbol, - STATE(105), 4, + STATE(104), 4, sym_unary_expression, sym_binary_expression, sym_parenthesized_expression, sym_macro_variable, - [5352] = 7, + [5272] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(534), 1, + ACTIONS(542), 1, anon_sym_BANG, - ACTIONS(536), 1, + ACTIONS(544), 1, anon_sym_LPAREN, - ACTIONS(538), 1, + ACTIONS(546), 1, anon_sym_DOLLAR_LPAREN, - STATE(195), 1, + STATE(107), 1, sym_expression, - ACTIONS(532), 2, + ACTIONS(540), 2, sym_prompt, sym_symbol, - STATE(105), 4, + STATE(104), 4, sym_unary_expression, sym_binary_expression, sym_parenthesized_expression, sym_macro_variable, - [5378] = 7, + [5298] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(534), 1, + ACTIONS(542), 1, anon_sym_BANG, - ACTIONS(536), 1, + ACTIONS(544), 1, anon_sym_LPAREN, - ACTIONS(538), 1, + ACTIONS(546), 1, anon_sym_DOLLAR_LPAREN, - STATE(189), 1, + STATE(205), 1, sym_expression, - ACTIONS(532), 2, + ACTIONS(540), 2, sym_prompt, sym_symbol, - STATE(105), 4, + STATE(104), 4, sym_unary_expression, sym_binary_expression, sym_parenthesized_expression, sym_macro_variable, - [5404] = 7, + [5324] = 7, ACTIONS(3), 1, sym_comment, ACTIONS(550), 1, @@ -7309,131 +7226,165 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, ACTIONS(554), 1, anon_sym_DOLLAR_LPAREN, - STATE(35), 1, + STATE(188), 1, sym_expression, ACTIONS(548), 2, sym_prompt, sym_symbol, - STATE(30), 4, + STATE(156), 4, sym_unary_expression, sym_binary_expression, sym_parenthesized_expression, sym_macro_variable, - [5430] = 7, + [5350] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(534), 1, + ACTIONS(558), 1, anon_sym_BANG, - ACTIONS(536), 1, + ACTIONS(560), 1, anon_sym_LPAREN, - ACTIONS(538), 1, + ACTIONS(562), 1, anon_sym_DOLLAR_LPAREN, - STATE(106), 1, + STATE(26), 1, sym_expression, - ACTIONS(532), 2, + ACTIONS(556), 2, sym_prompt, sym_symbol, - STATE(105), 4, + STATE(21), 4, sym_unary_expression, sym_binary_expression, sym_parenthesized_expression, sym_macro_variable, - [5456] = 7, + [5376] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(534), 1, + ACTIONS(558), 1, anon_sym_BANG, - ACTIONS(536), 1, + ACTIONS(560), 1, anon_sym_LPAREN, - ACTIONS(538), 1, + ACTIONS(562), 1, anon_sym_DOLLAR_LPAREN, - STATE(193), 1, + STATE(27), 1, sym_expression, - ACTIONS(532), 2, + ACTIONS(556), 2, sym_prompt, sym_symbol, - STATE(105), 4, + STATE(21), 4, sym_unary_expression, sym_binary_expression, sym_parenthesized_expression, sym_macro_variable, - [5482] = 7, + [5402] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(542), 1, + ACTIONS(558), 1, anon_sym_BANG, - ACTIONS(544), 1, + ACTIONS(560), 1, anon_sym_LPAREN, - ACTIONS(546), 1, + ACTIONS(562), 1, anon_sym_DOLLAR_LPAREN, - STATE(143), 1, + STATE(28), 1, sym_expression, - ACTIONS(540), 2, + ACTIONS(556), 2, sym_prompt, sym_symbol, - STATE(150), 4, + STATE(21), 4, sym_unary_expression, sym_binary_expression, sym_parenthesized_expression, sym_macro_variable, - [5508] = 7, + [5428] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(542), 1, + ACTIONS(558), 1, anon_sym_BANG, - ACTIONS(544), 1, + ACTIONS(560), 1, anon_sym_LPAREN, - ACTIONS(546), 1, + ACTIONS(562), 1, anon_sym_DOLLAR_LPAREN, - STATE(187), 1, + STATE(29), 1, sym_expression, - ACTIONS(540), 2, + ACTIONS(556), 2, sym_prompt, sym_symbol, - STATE(150), 4, + STATE(21), 4, sym_unary_expression, sym_binary_expression, sym_parenthesized_expression, sym_macro_variable, - [5534] = 7, + [5454] = 3, + ACTIONS(203), 1, + aux_sym_type_definition_token1, + ACTIONS(453), 1, + sym_comment, + ACTIONS(201), 9, + anon_sym_if, + anon_sym_EQ, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_GT, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [5472] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(542), 1, + ACTIONS(534), 1, anon_sym_BANG, - ACTIONS(544), 1, + ACTIONS(536), 1, anon_sym_LPAREN, - ACTIONS(546), 1, + ACTIONS(538), 1, anon_sym_DOLLAR_LPAREN, - STATE(191), 1, + STATE(117), 1, sym_expression, - ACTIONS(540), 2, + ACTIONS(532), 2, sym_prompt, sym_symbol, - STATE(150), 4, + STATE(109), 4, sym_unary_expression, sym_binary_expression, sym_parenthesized_expression, sym_macro_variable, - [5560] = 7, + [5498] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(542), 1, + ACTIONS(534), 1, anon_sym_BANG, - ACTIONS(544), 1, + ACTIONS(536), 1, anon_sym_LPAREN, - ACTIONS(546), 1, + ACTIONS(538), 1, anon_sym_DOLLAR_LPAREN, - STATE(136), 1, + STATE(115), 1, sym_expression, - ACTIONS(540), 2, + ACTIONS(532), 2, + sym_prompt, + sym_symbol, + STATE(109), 4, + sym_unary_expression, + sym_binary_expression, + sym_parenthesized_expression, + sym_macro_variable, + [5524] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(534), 1, + anon_sym_BANG, + ACTIONS(536), 1, + anon_sym_LPAREN, + ACTIONS(538), 1, + anon_sym_DOLLAR_LPAREN, + STATE(114), 1, + sym_expression, + ACTIONS(532), 2, sym_prompt, sym_symbol, - STATE(150), 4, + STATE(109), 4, sym_unary_expression, sym_binary_expression, sym_parenthesized_expression, sym_macro_variable, - [5586] = 7, + [5550] = 7, ACTIONS(3), 1, sym_comment, ACTIONS(542), 1, @@ -7442,149 +7393,179 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, ACTIONS(546), 1, anon_sym_DOLLAR_LPAREN, - STATE(123), 1, + STATE(105), 1, sym_expression, ACTIONS(540), 2, sym_prompt, sym_symbol, - STATE(150), 4, + STATE(104), 4, sym_unary_expression, sym_binary_expression, sym_parenthesized_expression, sym_macro_variable, - [5612] = 7, + [5576] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(534), 1, + ACTIONS(558), 1, anon_sym_BANG, - ACTIONS(536), 1, + ACTIONS(560), 1, anon_sym_LPAREN, - ACTIONS(538), 1, + ACTIONS(562), 1, anon_sym_DOLLAR_LPAREN, - STATE(66), 1, + STATE(20), 1, sym_expression, - ACTIONS(532), 2, + ACTIONS(556), 2, sym_prompt, sym_symbol, - STATE(105), 4, + STATE(21), 4, sym_unary_expression, sym_binary_expression, sym_parenthesized_expression, sym_macro_variable, - [5638] = 7, + [5602] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(542), 1, + ACTIONS(566), 1, anon_sym_BANG, - ACTIONS(544), 1, + ACTIONS(568), 1, anon_sym_LPAREN, - ACTIONS(546), 1, + ACTIONS(570), 1, anon_sym_DOLLAR_LPAREN, - STATE(192), 1, + STATE(34), 1, sym_expression, - ACTIONS(540), 2, + ACTIONS(564), 2, sym_prompt, sym_symbol, - STATE(150), 4, + STATE(35), 4, sym_unary_expression, sym_binary_expression, sym_parenthesized_expression, sym_macro_variable, - [5664] = 7, + [5628] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(542), 1, + ACTIONS(566), 1, anon_sym_BANG, - ACTIONS(544), 1, + ACTIONS(568), 1, anon_sym_LPAREN, - ACTIONS(546), 1, + ACTIONS(570), 1, anon_sym_DOLLAR_LPAREN, - STATE(124), 1, + STATE(39), 1, sym_expression, - ACTIONS(540), 2, + ACTIONS(564), 2, sym_prompt, sym_symbol, - STATE(150), 4, + STATE(35), 4, sym_unary_expression, sym_binary_expression, sym_parenthesized_expression, sym_macro_variable, - [5690] = 7, + [5654] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(558), 1, + ACTIONS(566), 1, anon_sym_BANG, - ACTIONS(560), 1, + ACTIONS(568), 1, anon_sym_LPAREN, - ACTIONS(562), 1, + ACTIONS(570), 1, anon_sym_DOLLAR_LPAREN, - STATE(20), 1, + STATE(38), 1, sym_expression, - ACTIONS(556), 2, + ACTIONS(564), 2, sym_prompt, sym_symbol, - STATE(25), 4, + STATE(35), 4, sym_unary_expression, sym_binary_expression, sym_parenthesized_expression, sym_macro_variable, - [5716] = 7, + [5680] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(558), 1, + ACTIONS(566), 1, anon_sym_BANG, - ACTIONS(560), 1, + ACTIONS(568), 1, anon_sym_LPAREN, - ACTIONS(562), 1, + ACTIONS(570), 1, anon_sym_DOLLAR_LPAREN, - STATE(29), 1, + STATE(32), 1, sym_expression, - ACTIONS(556), 2, + ACTIONS(564), 2, sym_prompt, sym_symbol, - STATE(25), 4, + STATE(35), 4, sym_unary_expression, sym_binary_expression, sym_parenthesized_expression, sym_macro_variable, - [5742] = 7, + [5706] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(558), 1, + ACTIONS(566), 1, anon_sym_BANG, - ACTIONS(560), 1, + ACTIONS(568), 1, anon_sym_LPAREN, - ACTIONS(562), 1, + ACTIONS(570), 1, anon_sym_DOLLAR_LPAREN, - STATE(27), 1, + STATE(33), 1, sym_expression, - ACTIONS(556), 2, + ACTIONS(564), 2, sym_prompt, sym_symbol, - STATE(25), 4, + STATE(35), 4, sym_unary_expression, sym_binary_expression, sym_parenthesized_expression, sym_macro_variable, - [5768] = 7, + [5732] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(558), 1, + ACTIONS(550), 1, anon_sym_BANG, - ACTIONS(560), 1, + ACTIONS(552), 1, anon_sym_LPAREN, - ACTIONS(562), 1, + ACTIONS(554), 1, anon_sym_DOLLAR_LPAREN, - STATE(23), 1, + STATE(168), 1, sym_expression, - ACTIONS(556), 2, + ACTIONS(548), 2, sym_prompt, sym_symbol, - STATE(25), 4, + STATE(156), 4, sym_unary_expression, sym_binary_expression, sym_parenthesized_expression, sym_macro_variable, + [5758] = 3, + ACTIONS(207), 1, + aux_sym_type_definition_token1, + ACTIONS(453), 1, + sym_comment, + ACTIONS(205), 9, + anon_sym_if, + anon_sym_EQ, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_GT, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [5776] = 3, + ACTIONS(211), 1, + aux_sym_type_definition_token1, + ACTIONS(453), 1, + sym_comment, + ACTIONS(209), 9, + anon_sym_if, + anon_sym_EQ, + anon_sym_PIPE_PIPE, + anon_sym_AMP_AMP, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_GT, + anon_sym_LT_EQ, + anon_sym_GT_EQ, [5794] = 7, ACTIONS(3), 1, sym_comment, @@ -7594,12 +7575,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, ACTIONS(554), 1, anon_sym_DOLLAR_LPAREN, - STATE(38), 1, + STATE(143), 1, sym_expression, ACTIONS(548), 2, sym_prompt, sym_symbol, - STATE(30), 4, + STATE(156), 4, sym_unary_expression, sym_binary_expression, sym_parenthesized_expression, @@ -7613,12 +7594,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, ACTIONS(554), 1, anon_sym_DOLLAR_LPAREN, - STATE(39), 1, + STATE(144), 1, sym_expression, ACTIONS(548), 2, sym_prompt, sym_symbol, - STATE(30), 4, + STATE(156), 4, sym_unary_expression, sym_binary_expression, sym_parenthesized_expression, @@ -7626,18 +7607,18 @@ static const uint16_t ts_small_parse_table[] = { [5846] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(558), 1, + ACTIONS(550), 1, anon_sym_BANG, - ACTIONS(560), 1, + ACTIONS(552), 1, anon_sym_LPAREN, - ACTIONS(562), 1, + ACTIONS(554), 1, anon_sym_DOLLAR_LPAREN, - STATE(26), 1, + STATE(145), 1, sym_expression, - ACTIONS(556), 2, + ACTIONS(548), 2, sym_prompt, sym_symbol, - STATE(25), 4, + STATE(156), 4, sym_unary_expression, sym_binary_expression, sym_parenthesized_expression, @@ -7651,12 +7632,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, ACTIONS(554), 1, anon_sym_DOLLAR_LPAREN, - STATE(32), 1, + STATE(146), 1, sym_expression, ACTIONS(548), 2, sym_prompt, sym_symbol, - STATE(30), 4, + STATE(156), 4, sym_unary_expression, sym_binary_expression, sym_parenthesized_expression, @@ -7664,18 +7645,18 @@ static const uint16_t ts_small_parse_table[] = { [5898] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(534), 1, + ACTIONS(542), 1, anon_sym_BANG, - ACTIONS(536), 1, + ACTIONS(544), 1, anon_sym_LPAREN, - ACTIONS(538), 1, + ACTIONS(546), 1, anon_sym_DOLLAR_LPAREN, - STATE(101), 1, + STATE(106), 1, sym_expression, - ACTIONS(532), 2, + ACTIONS(540), 2, sym_prompt, sym_symbol, - STATE(105), 4, + STATE(104), 4, sym_unary_expression, sym_binary_expression, sym_parenthesized_expression, @@ -7683,18 +7664,18 @@ static const uint16_t ts_small_parse_table[] = { [5924] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(534), 1, + ACTIONS(558), 1, anon_sym_BANG, - ACTIONS(536), 1, + ACTIONS(560), 1, anon_sym_LPAREN, - ACTIONS(538), 1, + ACTIONS(562), 1, anon_sym_DOLLAR_LPAREN, - STATE(103), 1, + STATE(22), 1, sym_expression, - ACTIONS(532), 2, + ACTIONS(556), 2, sym_prompt, sym_symbol, - STATE(105), 4, + STATE(21), 4, sym_unary_expression, sym_binary_expression, sym_parenthesized_expression, @@ -7708,12 +7689,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, ACTIONS(538), 1, anon_sym_DOLLAR_LPAREN, - STATE(104), 1, + STATE(110), 1, sym_expression, ACTIONS(532), 2, sym_prompt, sym_symbol, - STATE(105), 4, + STATE(109), 4, sym_unary_expression, sym_binary_expression, sym_parenthesized_expression, @@ -7727,12 +7708,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, ACTIONS(570), 1, anon_sym_DOLLAR_LPAREN, - STATE(112), 1, + STATE(36), 1, sym_expression, ACTIONS(564), 2, sym_prompt, sym_symbol, - STATE(117), 4, + STATE(35), 4, sym_unary_expression, sym_binary_expression, sym_parenthesized_expression, @@ -7740,18 +7721,18 @@ static const uint16_t ts_small_parse_table[] = { [6002] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(550), 1, + ACTIONS(542), 1, anon_sym_BANG, - ACTIONS(552), 1, + ACTIONS(544), 1, anon_sym_LPAREN, - ACTIONS(554), 1, + ACTIONS(546), 1, anon_sym_DOLLAR_LPAREN, - STATE(33), 1, + STATE(66), 1, sym_expression, - ACTIONS(548), 2, + ACTIONS(540), 2, sym_prompt, sym_symbol, - STATE(30), 4, + STATE(104), 4, sym_unary_expression, sym_binary_expression, sym_parenthesized_expression, @@ -7765,12 +7746,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_LPAREN, ACTIONS(554), 1, anon_sym_DOLLAR_LPAREN, - STATE(34), 1, + STATE(132), 1, sym_expression, ACTIONS(548), 2, sym_prompt, sym_symbol, - STATE(30), 4, + STATE(156), 4, sym_unary_expression, sym_binary_expression, sym_parenthesized_expression, @@ -7778,18 +7759,18 @@ static const uint16_t ts_small_parse_table[] = { [6054] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(542), 1, + ACTIONS(550), 1, anon_sym_BANG, - ACTIONS(544), 1, + ACTIONS(552), 1, anon_sym_LPAREN, - ACTIONS(546), 1, + ACTIONS(554), 1, anon_sym_DOLLAR_LPAREN, - STATE(149), 1, + STATE(133), 1, sym_expression, - ACTIONS(540), 2, + ACTIONS(548), 2, sym_prompt, sym_symbol, - STATE(150), 4, + STATE(156), 4, sym_unary_expression, sym_binary_expression, sym_parenthesized_expression, @@ -7797,18 +7778,18 @@ static const uint16_t ts_small_parse_table[] = { [6080] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(566), 1, + ACTIONS(550), 1, anon_sym_BANG, - ACTIONS(568), 1, + ACTIONS(552), 1, anon_sym_LPAREN, - ACTIONS(570), 1, + ACTIONS(554), 1, anon_sym_DOLLAR_LPAREN, - STATE(111), 1, + STATE(195), 1, sym_expression, - ACTIONS(564), 2, + ACTIONS(548), 2, sym_prompt, sym_symbol, - STATE(117), 4, + STATE(156), 4, sym_unary_expression, sym_binary_expression, sym_parenthesized_expression, @@ -7816,18 +7797,18 @@ static const uint16_t ts_small_parse_table[] = { [6106] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(566), 1, + ACTIONS(542), 1, anon_sym_BANG, - ACTIONS(568), 1, + ACTIONS(544), 1, anon_sym_LPAREN, - ACTIONS(570), 1, + ACTIONS(546), 1, anon_sym_DOLLAR_LPAREN, - STATE(113), 1, + STATE(102), 1, sym_expression, - ACTIONS(564), 2, + ACTIONS(540), 2, sym_prompt, sym_symbol, - STATE(117), 4, + STATE(104), 4, sym_unary_expression, sym_binary_expression, sym_parenthesized_expression, @@ -7835,18 +7816,18 @@ static const uint16_t ts_small_parse_table[] = { [6132] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(566), 1, + ACTIONS(542), 1, anon_sym_BANG, - ACTIONS(568), 1, + ACTIONS(544), 1, anon_sym_LPAREN, - ACTIONS(570), 1, + ACTIONS(546), 1, anon_sym_DOLLAR_LPAREN, - STATE(114), 1, + STATE(197), 1, sym_expression, - ACTIONS(564), 2, + ACTIONS(540), 2, sym_prompt, sym_symbol, - STATE(117), 4, + STATE(104), 4, sym_unary_expression, sym_binary_expression, sym_parenthesized_expression, @@ -7854,18 +7835,18 @@ static const uint16_t ts_small_parse_table[] = { [6158] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(566), 1, + ACTIONS(542), 1, anon_sym_BANG, - ACTIONS(568), 1, + ACTIONS(544), 1, anon_sym_LPAREN, - ACTIONS(570), 1, + ACTIONS(546), 1, anon_sym_DOLLAR_LPAREN, - STATE(115), 1, + STATE(202), 1, sym_expression, - ACTIONS(564), 2, + ACTIONS(540), 2, sym_prompt, sym_symbol, - STATE(117), 4, + STATE(104), 4, sym_unary_expression, sym_binary_expression, sym_parenthesized_expression, @@ -7873,18 +7854,18 @@ static const uint16_t ts_small_parse_table[] = { [6184] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(558), 1, + ACTIONS(542), 1, anon_sym_BANG, - ACTIONS(560), 1, + ACTIONS(544), 1, anon_sym_LPAREN, - ACTIONS(562), 1, + ACTIONS(546), 1, anon_sym_DOLLAR_LPAREN, - STATE(24), 1, + STATE(203), 1, sym_expression, - ACTIONS(556), 2, + ACTIONS(540), 2, sym_prompt, sym_symbol, - STATE(25), 4, + STATE(104), 4, sym_unary_expression, sym_binary_expression, sym_parenthesized_expression, @@ -7892,45 +7873,59 @@ static const uint16_t ts_small_parse_table[] = { [6210] = 7, ACTIONS(3), 1, sym_comment, - ACTIONS(534), 1, + ACTIONS(542), 1, anon_sym_BANG, - ACTIONS(536), 1, + ACTIONS(544), 1, anon_sym_LPAREN, - ACTIONS(538), 1, + ACTIONS(546), 1, anon_sym_DOLLAR_LPAREN, - STATE(65), 1, + STATE(101), 1, sym_expression, - ACTIONS(532), 2, + ACTIONS(540), 2, sym_prompt, sym_symbol, - STATE(105), 4, + STATE(104), 4, sym_unary_expression, sym_binary_expression, sym_parenthesized_expression, sym_macro_variable, - [6236] = 6, - ACTIONS(441), 1, + [6236] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(572), 1, + ts_builtin_sym_end, + ACTIONS(502), 8, + anon_sym_config, + anon_sym_menuconfig, + anon_sym_choice, + anon_sym_comment, + anon_sym_menu, + anon_sym_if, + anon_sym_source, + sym_symbol, + [6253] = 6, + ACTIONS(453), 1, sym_comment, - ACTIONS(496), 1, + ACTIONS(510), 1, anon_sym_EQ, - ACTIONS(500), 1, + ACTIONS(514), 1, anon_sym_PIPE_PIPE, - ACTIONS(502), 1, + ACTIONS(516), 1, anon_sym_AMP_AMP, - ACTIONS(572), 1, + ACTIONS(574), 1, aux_sym_type_definition_token1, - ACTIONS(504), 5, + ACTIONS(518), 5, anon_sym_BANG_EQ, anon_sym_LT, anon_sym_GT, anon_sym_LT_EQ, anon_sym_GT_EQ, - [6259] = 3, + [6276] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(574), 1, + ACTIONS(576), 1, ts_builtin_sym_end, - ACTIONS(512), 8, + ACTIONS(530), 8, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -7939,30 +7934,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_if, anon_sym_source, sym_symbol, - [6276] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(357), 1, - anon_sym_EQ, - ACTIONS(359), 1, - anon_sym_PIPE_PIPE, - ACTIONS(361), 1, - anon_sym_AMP_AMP, - ACTIONS(576), 1, - anon_sym_RPAREN, - ACTIONS(365), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(363), 3, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - [6301] = 3, + [6293] = 3, ACTIONS(3), 1, sym_comment, ACTIONS(578), 1, ts_builtin_sym_end, - ACTIONS(580), 8, + ACTIONS(500), 8, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -7971,64 +7948,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_if, anon_sym_source, sym_symbol, - [6318] = 6, - ACTIONS(441), 1, - sym_comment, - ACTIONS(496), 1, - anon_sym_EQ, - ACTIONS(500), 1, - anon_sym_PIPE_PIPE, - ACTIONS(502), 1, - anon_sym_AMP_AMP, - ACTIONS(582), 1, - aux_sym_type_definition_token1, - ACTIONS(504), 5, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_GT, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - [6341] = 6, - ACTIONS(441), 1, - sym_comment, - ACTIONS(496), 1, - anon_sym_EQ, - ACTIONS(500), 1, - anon_sym_PIPE_PIPE, - ACTIONS(502), 1, - anon_sym_AMP_AMP, - ACTIONS(584), 1, - aux_sym_type_definition_token1, - ACTIONS(504), 5, - anon_sym_BANG_EQ, - anon_sym_LT, - anon_sym_GT, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - [6364] = 7, - ACTIONS(3), 1, - sym_comment, - ACTIONS(357), 1, - anon_sym_EQ, - ACTIONS(359), 1, - anon_sym_PIPE_PIPE, - ACTIONS(361), 1, - anon_sym_AMP_AMP, - ACTIONS(586), 1, - anon_sym_RPAREN, - ACTIONS(365), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(363), 3, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - [6389] = 3, + [6310] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(588), 1, + ACTIONS(580), 1, ts_builtin_sym_end, - ACTIONS(516), 8, + ACTIONS(526), 8, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -8037,30 +7962,26 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_if, anon_sym_source, sym_symbol, - [6406] = 7, + [6327] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(357), 1, - anon_sym_EQ, - ACTIONS(359), 1, - anon_sym_PIPE_PIPE, - ACTIONS(361), 1, - anon_sym_AMP_AMP, - ACTIONS(590), 1, - anon_sym_RPAREN, - ACTIONS(365), 2, - anon_sym_LT, - anon_sym_GT, - ACTIONS(363), 3, - anon_sym_BANG_EQ, - anon_sym_LT_EQ, - anon_sym_GT_EQ, - [6431] = 3, + ACTIONS(582), 1, + ts_builtin_sym_end, + ACTIONS(584), 8, + anon_sym_config, + anon_sym_menuconfig, + anon_sym_choice, + anon_sym_comment, + anon_sym_menu, + anon_sym_if, + anon_sym_source, + sym_symbol, + [6344] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(592), 1, + ACTIONS(586), 1, ts_builtin_sym_end, - ACTIONS(518), 8, + ACTIONS(528), 8, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -8069,12 +7990,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_if, anon_sym_source, sym_symbol, - [6448] = 3, + [6361] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(594), 1, + ACTIONS(588), 1, ts_builtin_sym_end, - ACTIONS(520), 8, + ACTIONS(498), 8, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -8083,25 +8004,38 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_if, anon_sym_source, sym_symbol, - [6465] = 7, - ACTIONS(3), 1, + [6378] = 6, + ACTIONS(453), 1, sym_comment, - ACTIONS(357), 1, + ACTIONS(510), 1, anon_sym_EQ, - ACTIONS(359), 1, + ACTIONS(514), 1, anon_sym_PIPE_PIPE, - ACTIONS(361), 1, + ACTIONS(516), 1, anon_sym_AMP_AMP, - ACTIONS(596), 1, - anon_sym_RPAREN, - ACTIONS(365), 2, + ACTIONS(590), 1, + aux_sym_type_definition_token1, + ACTIONS(518), 5, + anon_sym_BANG_EQ, anon_sym_LT, anon_sym_GT, - ACTIONS(363), 3, - anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [6490] = 7, + [6401] = 3, + ACTIONS(3), 1, + sym_comment, + ACTIONS(592), 1, + ts_builtin_sym_end, + ACTIONS(494), 8, + anon_sym_config, + anon_sym_menuconfig, + anon_sym_choice, + anon_sym_comment, + anon_sym_menu, + anon_sym_if, + anon_sym_source, + sym_symbol, + [6418] = 7, ACTIONS(3), 1, sym_comment, ACTIONS(357), 1, @@ -8110,7 +8044,7 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PIPE_PIPE, ACTIONS(361), 1, anon_sym_AMP_AMP, - ACTIONS(598), 1, + ACTIONS(594), 1, anon_sym_RPAREN, ACTIONS(365), 2, anon_sym_LT, @@ -8119,12 +8053,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_BANG_EQ, anon_sym_LT_EQ, anon_sym_GT_EQ, - [6515] = 3, + [6443] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(600), 1, + ACTIONS(596), 1, ts_builtin_sym_end, - ACTIONS(514), 8, + ACTIONS(496), 8, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -8133,12 +8067,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_if, anon_sym_source, sym_symbol, - [6532] = 3, + [6460] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(602), 1, + ACTIONS(598), 1, ts_builtin_sym_end, - ACTIONS(522), 8, + ACTIONS(504), 8, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -8147,12 +8081,12 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_if, anon_sym_source, sym_symbol, - [6549] = 3, + [6477] = 3, ACTIONS(3), 1, sym_comment, - ACTIONS(604), 1, + ACTIONS(600), 1, ts_builtin_sym_end, - ACTIONS(524), 8, + ACTIONS(506), 8, anon_sym_config, anon_sym_menuconfig, anon_sym_choice, @@ -8161,50 +8095,97 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_if, anon_sym_source, sym_symbol, - [6566] = 3, + [6494] = 6, + ACTIONS(453), 1, + sym_comment, + ACTIONS(510), 1, + anon_sym_EQ, + ACTIONS(514), 1, + anon_sym_PIPE_PIPE, + ACTIONS(516), 1, + anon_sym_AMP_AMP, + ACTIONS(602), 1, + aux_sym_type_definition_token1, + ACTIONS(518), 5, + anon_sym_BANG_EQ, + anon_sym_LT, + anon_sym_GT, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [6517] = 7, + ACTIONS(3), 1, + sym_comment, + ACTIONS(357), 1, + anon_sym_EQ, + ACTIONS(359), 1, + anon_sym_PIPE_PIPE, + ACTIONS(361), 1, + anon_sym_AMP_AMP, + ACTIONS(604), 1, + anon_sym_RPAREN, + ACTIONS(365), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(363), 3, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [6542] = 7, ACTIONS(3), 1, sym_comment, + ACTIONS(357), 1, + anon_sym_EQ, + ACTIONS(359), 1, + anon_sym_PIPE_PIPE, + ACTIONS(361), 1, + anon_sym_AMP_AMP, ACTIONS(606), 1, - ts_builtin_sym_end, - ACTIONS(526), 8, - anon_sym_config, - anon_sym_menuconfig, - anon_sym_choice, - anon_sym_comment, - anon_sym_menu, - anon_sym_if, - anon_sym_source, - sym_symbol, - [6583] = 3, + anon_sym_RPAREN, + ACTIONS(365), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(363), 3, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [6567] = 7, ACTIONS(3), 1, sym_comment, + ACTIONS(357), 1, + anon_sym_EQ, + ACTIONS(359), 1, + anon_sym_PIPE_PIPE, + ACTIONS(361), 1, + anon_sym_AMP_AMP, ACTIONS(608), 1, - ts_builtin_sym_end, - ACTIONS(528), 8, - anon_sym_config, - anon_sym_menuconfig, - anon_sym_choice, - anon_sym_comment, - anon_sym_menu, - anon_sym_if, - anon_sym_source, - sym_symbol, - [6600] = 3, + anon_sym_RPAREN, + ACTIONS(365), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(363), 3, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, + [6592] = 7, ACTIONS(3), 1, sym_comment, + ACTIONS(357), 1, + anon_sym_EQ, + ACTIONS(359), 1, + anon_sym_PIPE_PIPE, + ACTIONS(361), 1, + anon_sym_AMP_AMP, ACTIONS(610), 1, - ts_builtin_sym_end, - ACTIONS(510), 8, - anon_sym_config, - anon_sym_menuconfig, - anon_sym_choice, - anon_sym_comment, - anon_sym_menu, - anon_sym_if, - anon_sym_source, - sym_symbol, + anon_sym_RPAREN, + ACTIONS(365), 2, + anon_sym_LT, + anon_sym_GT, + ACTIONS(363), 3, + anon_sym_BANG_EQ, + anon_sym_LT_EQ, + anon_sym_GT_EQ, [6617] = 6, - ACTIONS(441), 1, + ACTIONS(453), 1, sym_comment, ACTIONS(612), 1, anon_sym_RPAREN, @@ -8214,205 +8195,205 @@ static const uint16_t ts_small_parse_table[] = { sym_macro_content, ACTIONS(618), 1, sym_prompt, - STATE(217), 2, + STATE(220), 2, sym_macro_variable, aux_sym_macro_variable_repeat1, - [6637] = 6, - ACTIONS(441), 1, + [6637] = 7, + ACTIONS(453), 1, sym_comment, + ACTIONS(508), 1, + anon_sym_if, ACTIONS(620), 1, + aux_sym_type_definition_token1, + ACTIONS(622), 1, + anon_sym_prompt, + ACTIONS(624), 1, + sym_prompt, + STATE(227), 1, + sym_input_prompt, + STATE(248), 1, + sym_conditional_clause, + [6659] = 6, + ACTIONS(453), 1, + sym_comment, + ACTIONS(614), 1, + anon_sym_DOLLAR_LPAREN, + ACTIONS(616), 1, + sym_macro_content, + ACTIONS(618), 1, + sym_prompt, + ACTIONS(626), 1, anon_sym_RPAREN, + STATE(220), 2, + sym_macro_variable, + aux_sym_macro_variable_repeat1, + [6679] = 7, + ACTIONS(453), 1, + sym_comment, + ACTIONS(508), 1, + anon_sym_if, ACTIONS(622), 1, - anon_sym_DOLLAR_LPAREN, - ACTIONS(625), 1, - sym_macro_content, + anon_sym_prompt, ACTIONS(628), 1, + aux_sym_type_definition_token1, + ACTIONS(630), 1, sym_prompt, - STATE(207), 2, - sym_macro_variable, - aux_sym_macro_variable_repeat1, - [6657] = 6, - ACTIONS(441), 1, + STATE(239), 1, + sym_input_prompt, + STATE(272), 1, + sym_conditional_clause, + [6701] = 6, + ACTIONS(453), 1, sym_comment, ACTIONS(614), 1, anon_sym_DOLLAR_LPAREN, + ACTIONS(616), 1, + sym_macro_content, ACTIONS(618), 1, sym_prompt, - ACTIONS(631), 1, + ACTIONS(632), 1, anon_sym_RPAREN, - ACTIONS(633), 1, - sym_macro_content, - STATE(207), 2, + STATE(220), 2, sym_macro_variable, aux_sym_macro_variable_repeat1, - [6677] = 6, - ACTIONS(441), 1, + [6721] = 6, + ACTIONS(453), 1, sym_comment, ACTIONS(614), 1, anon_sym_DOLLAR_LPAREN, ACTIONS(618), 1, sym_prompt, - ACTIONS(635), 1, + ACTIONS(634), 1, anon_sym_RPAREN, - ACTIONS(637), 1, + ACTIONS(636), 1, sym_macro_content, - STATE(208), 2, + STATE(206), 2, sym_macro_variable, aux_sym_macro_variable_repeat1, - [6697] = 7, - ACTIONS(441), 1, - sym_comment, - ACTIONS(494), 1, - anon_sym_if, - ACTIONS(639), 1, - aux_sym_type_definition_token1, - ACTIONS(641), 1, - anon_sym_prompt, - ACTIONS(643), 1, - sym_prompt, - STATE(235), 1, - sym_input_prompt, - STATE(252), 1, - sym_conditional_clause, - [6719] = 6, - ACTIONS(441), 1, + [6741] = 6, + ACTIONS(453), 1, sym_comment, ACTIONS(614), 1, anon_sym_DOLLAR_LPAREN, ACTIONS(618), 1, sym_prompt, - ACTIONS(633), 1, - sym_macro_content, - ACTIONS(645), 1, + ACTIONS(638), 1, anon_sym_RPAREN, - STATE(207), 2, + ACTIONS(640), 1, + sym_macro_content, + STATE(208), 2, sym_macro_variable, aux_sym_macro_variable_repeat1, - [6739] = 6, - ACTIONS(441), 1, + [6761] = 6, + ACTIONS(453), 1, sym_comment, ACTIONS(614), 1, anon_sym_DOLLAR_LPAREN, ACTIONS(618), 1, sym_prompt, - ACTIONS(647), 1, + ACTIONS(642), 1, anon_sym_RPAREN, - ACTIONS(649), 1, + ACTIONS(644), 1, sym_macro_content, - STATE(211), 2, + STATE(210), 2, sym_macro_variable, aux_sym_macro_variable_repeat1, - [6759] = 6, - ACTIONS(441), 1, + [6781] = 6, + ACTIONS(453), 1, sym_comment, ACTIONS(614), 1, anon_sym_DOLLAR_LPAREN, ACTIONS(618), 1, sym_prompt, - ACTIONS(651), 1, + ACTIONS(646), 1, anon_sym_RPAREN, - ACTIONS(653), 1, + ACTIONS(648), 1, sym_macro_content, - STATE(219), 2, + STATE(215), 2, sym_macro_variable, aux_sym_macro_variable_repeat1, - [6779] = 6, - ACTIONS(441), 1, + [6801] = 6, + ACTIONS(453), 1, sym_comment, ACTIONS(614), 1, anon_sym_DOLLAR_LPAREN, + ACTIONS(616), 1, + sym_macro_content, ACTIONS(618), 1, sym_prompt, - ACTIONS(633), 1, - sym_macro_content, - ACTIONS(655), 1, + ACTIONS(650), 1, anon_sym_RPAREN, - STATE(207), 2, + STATE(220), 2, sym_macro_variable, aux_sym_macro_variable_repeat1, - [6799] = 6, - ACTIONS(441), 1, + [6821] = 6, + ACTIONS(453), 1, sym_comment, ACTIONS(614), 1, anon_sym_DOLLAR_LPAREN, ACTIONS(618), 1, sym_prompt, - ACTIONS(657), 1, + ACTIONS(652), 1, anon_sym_RPAREN, - ACTIONS(659), 1, + ACTIONS(654), 1, sym_macro_content, - STATE(214), 2, + STATE(217), 2, sym_macro_variable, aux_sym_macro_variable_repeat1, - [6819] = 6, - ACTIONS(441), 1, + [6841] = 6, + ACTIONS(453), 1, sym_comment, ACTIONS(614), 1, anon_sym_DOLLAR_LPAREN, + ACTIONS(616), 1, + sym_macro_content, ACTIONS(618), 1, sym_prompt, - ACTIONS(633), 1, - sym_macro_content, - ACTIONS(661), 1, + ACTIONS(656), 1, anon_sym_RPAREN, - STATE(207), 2, + STATE(220), 2, sym_macro_variable, aux_sym_macro_variable_repeat1, - [6839] = 6, - ACTIONS(441), 1, + [6861] = 6, + ACTIONS(453), 1, sym_comment, ACTIONS(614), 1, anon_sym_DOLLAR_LPAREN, ACTIONS(618), 1, sym_prompt, - ACTIONS(633), 1, - sym_macro_content, - ACTIONS(663), 1, + ACTIONS(658), 1, anon_sym_RPAREN, - STATE(207), 2, + ACTIONS(660), 1, + sym_macro_content, + STATE(219), 2, sym_macro_variable, aux_sym_macro_variable_repeat1, - [6859] = 7, - ACTIONS(441), 1, - sym_comment, - ACTIONS(494), 1, - anon_sym_if, - ACTIONS(641), 1, - anon_sym_prompt, - ACTIONS(665), 1, - aux_sym_type_definition_token1, - ACTIONS(667), 1, - sym_prompt, - STATE(237), 1, - sym_input_prompt, - STATE(250), 1, - sym_conditional_clause, [6881] = 6, - ACTIONS(441), 1, + ACTIONS(453), 1, sym_comment, ACTIONS(614), 1, anon_sym_DOLLAR_LPAREN, + ACTIONS(616), 1, + sym_macro_content, ACTIONS(618), 1, sym_prompt, - ACTIONS(633), 1, - sym_macro_content, - ACTIONS(669), 1, + ACTIONS(662), 1, anon_sym_RPAREN, - STATE(207), 2, + STATE(220), 2, sym_macro_variable, aux_sym_macro_variable_repeat1, [6901] = 6, - ACTIONS(441), 1, + ACTIONS(453), 1, sym_comment, - ACTIONS(614), 1, - anon_sym_DOLLAR_LPAREN, - ACTIONS(618), 1, - sym_prompt, - ACTIONS(671), 1, + ACTIONS(664), 1, anon_sym_RPAREN, - ACTIONS(673), 1, + ACTIONS(666), 1, + anon_sym_DOLLAR_LPAREN, + ACTIONS(669), 1, sym_macro_content, - STATE(216), 2, + ACTIONS(672), 1, + sym_prompt, + STATE(220), 2, sym_macro_variable, aux_sym_macro_variable_repeat1, [6921] = 2, @@ -8424,6 +8405,14 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_PLUS_EQ, anon_sym_QMARK_EQ, [6931] = 2, + ACTIONS(453), 1, + sym_comment, + ACTIONS(209), 4, + anon_sym_RPAREN, + anon_sym_DOLLAR_LPAREN, + sym_macro_content, + sym_prompt, + [6941] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(677), 4, @@ -8431,16 +8420,8 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_COLON_EQ, anon_sym_PLUS_EQ, anon_sym_QMARK_EQ, - [6941] = 2, - ACTIONS(441), 1, - sym_comment, - ACTIONS(191), 4, - anon_sym_RPAREN, - anon_sym_DOLLAR_LPAREN, - sym_macro_content, - sym_prompt, [6951] = 2, - ACTIONS(441), 1, + ACTIONS(453), 1, sym_comment, ACTIONS(679), 4, anon_sym_RPAREN, @@ -8448,138 +8429,138 @@ static const uint16_t ts_small_parse_table[] = { sym_macro_content, sym_prompt, [6961] = 2, - ACTIONS(441), 1, + ACTIONS(453), 1, sym_comment, - ACTIONS(221), 4, + ACTIONS(217), 4, anon_sym_RPAREN, anon_sym_DOLLAR_LPAREN, sym_macro_content, sym_prompt, [6971] = 4, - ACTIONS(441), 1, + ACTIONS(453), 1, sym_comment, - ACTIONS(494), 1, + ACTIONS(508), 1, anon_sym_if, ACTIONS(681), 1, aux_sym_type_definition_token1, - STATE(246), 1, + STATE(247), 1, sym_conditional_clause, [6984] = 4, - ACTIONS(441), 1, + ACTIONS(453), 1, sym_comment, - ACTIONS(494), 1, + ACTIONS(508), 1, anon_sym_if, ACTIONS(683), 1, aux_sym_type_definition_token1, - STATE(244), 1, + STATE(266), 1, sym_conditional_clause, [6997] = 4, - ACTIONS(441), 1, + ACTIONS(453), 1, sym_comment, - ACTIONS(494), 1, + ACTIONS(508), 1, anon_sym_if, ACTIONS(685), 1, aux_sym_type_definition_token1, - STATE(245), 1, + STATE(277), 1, sym_conditional_clause, [7010] = 4, - ACTIONS(3), 1, + ACTIONS(453), 1, sym_comment, - ACTIONS(538), 1, - anon_sym_DOLLAR_LPAREN, + ACTIONS(508), 1, + anon_sym_if, ACTIONS(687), 1, - sym_symbol, - STATE(233), 1, - sym_macro_variable, + aux_sym_type_definition_token1, + STATE(270), 1, + sym_conditional_clause, [7023] = 4, - ACTIONS(441), 1, + ACTIONS(453), 1, sym_comment, - ACTIONS(494), 1, + ACTIONS(508), 1, anon_sym_if, ACTIONS(689), 1, aux_sym_type_definition_token1, - STATE(267), 1, + STATE(257), 1, sym_conditional_clause, [7036] = 4, - ACTIONS(441), 1, + ACTIONS(453), 1, sym_comment, - ACTIONS(494), 1, + ACTIONS(508), 1, anon_sym_if, ACTIONS(691), 1, aux_sym_type_definition_token1, - STATE(271), 1, + STATE(253), 1, sym_conditional_clause, [7049] = 4, - ACTIONS(441), 1, - sym_comment, - ACTIONS(494), 1, - anon_sym_if, - ACTIONS(693), 1, - aux_sym_type_definition_token1, - STATE(277), 1, - sym_conditional_clause, - [7062] = 4, ACTIONS(3), 1, sym_comment, ACTIONS(546), 1, anon_sym_DOLLAR_LPAREN, - ACTIONS(695), 1, + ACTIONS(693), 1, sym_symbol, - STATE(238), 1, + STATE(236), 1, sym_macro_variable, + [7062] = 4, + ACTIONS(453), 1, + sym_comment, + ACTIONS(508), 1, + anon_sym_if, + ACTIONS(695), 1, + aux_sym_type_definition_token1, + STATE(267), 1, + sym_conditional_clause, [7075] = 4, - ACTIONS(3), 1, + ACTIONS(453), 1, sym_comment, - ACTIONS(538), 1, - anon_sym_DOLLAR_LPAREN, + ACTIONS(508), 1, + anon_sym_if, ACTIONS(697), 1, - sym_symbol, - STATE(240), 1, - sym_macro_variable, + aux_sym_type_definition_token1, + STATE(271), 1, + sym_conditional_clause, [7088] = 4, - ACTIONS(441), 1, + ACTIONS(453), 1, sym_comment, - ACTIONS(494), 1, + ACTIONS(508), 1, anon_sym_if, ACTIONS(699), 1, aux_sym_type_definition_token1, - STATE(275), 1, + STATE(244), 1, sym_conditional_clause, [7101] = 4, - ACTIONS(441), 1, + ACTIONS(3), 1, sym_comment, - ACTIONS(494), 1, - anon_sym_if, + ACTIONS(554), 1, + anon_sym_DOLLAR_LPAREN, ACTIONS(701), 1, - aux_sym_type_definition_token1, - STATE(251), 1, - sym_conditional_clause, + sym_symbol, + STATE(235), 1, + sym_macro_variable, [7114] = 4, - ACTIONS(441), 1, + ACTIONS(3), 1, sym_comment, - ACTIONS(494), 1, - anon_sym_if, + ACTIONS(554), 1, + anon_sym_DOLLAR_LPAREN, ACTIONS(703), 1, - aux_sym_type_definition_token1, - STATE(243), 1, - sym_conditional_clause, + sym_symbol, + STATE(228), 1, + sym_macro_variable, [7127] = 4, - ACTIONS(441), 1, + ACTIONS(453), 1, sym_comment, - ACTIONS(494), 1, + ACTIONS(508), 1, anon_sym_if, ACTIONS(705), 1, aux_sym_type_definition_token1, - STATE(248), 1, + STATE(269), 1, sym_conditional_clause, [7140] = 4, - ACTIONS(441), 1, + ACTIONS(453), 1, sym_comment, - ACTIONS(494), 1, + ACTIONS(508), 1, anon_sym_if, ACTIONS(707), 1, aux_sym_type_definition_token1, - STATE(272), 1, + STATE(256), 1, sym_conditional_clause, [7153] = 4, ACTIONS(3), 1, @@ -8588,171 +8569,171 @@ static const uint16_t ts_small_parse_table[] = { anon_sym_DOLLAR_LPAREN, ACTIONS(709), 1, sym_symbol, - STATE(232), 1, + STATE(237), 1, sym_macro_variable, [7166] = 3, - ACTIONS(295), 1, + ACTIONS(299), 1, anon_sym_if, - ACTIONS(297), 1, + ACTIONS(301), 1, aux_sym_type_definition_token1, - ACTIONS(441), 1, + ACTIONS(453), 1, sym_comment, [7176] = 3, - ACTIONS(291), 1, + ACTIONS(331), 1, anon_sym_if, - ACTIONS(293), 1, + ACTIONS(333), 1, aux_sym_type_definition_token1, - ACTIONS(441), 1, + ACTIONS(453), 1, sym_comment, [7186] = 2, - ACTIONS(441), 1, + ACTIONS(3), 1, sym_comment, ACTIONS(711), 1, - aux_sym_type_definition_token1, + sym_symbol, [7193] = 2, - ACTIONS(441), 1, + ACTIONS(453), 1, sym_comment, ACTIONS(713), 1, aux_sym_type_definition_token1, [7200] = 2, - ACTIONS(441), 1, + ACTIONS(3), 1, sym_comment, ACTIONS(715), 1, - aux_sym_type_definition_token1, + ts_builtin_sym_end, [7207] = 2, - ACTIONS(441), 1, + ACTIONS(3), 1, sym_comment, ACTIONS(717), 1, - aux_sym_type_definition_token1, + sym_symbol, [7214] = 2, - ACTIONS(3), 1, + ACTIONS(453), 1, sym_comment, ACTIONS(719), 1, - sym_prompt, + aux_sym_type_definition_token1, [7221] = 2, - ACTIONS(441), 1, + ACTIONS(453), 1, sym_comment, - ACTIONS(721), 1, + ACTIONS(683), 1, aux_sym_type_definition_token1, [7228] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(723), 1, + ACTIONS(721), 1, sym__help_text, [7235] = 2, - ACTIONS(441), 1, + ACTIONS(3), 1, sym_comment, - ACTIONS(703), 1, - aux_sym_type_definition_token1, + ACTIONS(723), 1, + sym_prompt, [7242] = 2, - ACTIONS(441), 1, + ACTIONS(3), 1, sym_comment, ACTIONS(725), 1, - aux_sym_type_definition_token1, + sym__help_text, [7249] = 2, - ACTIONS(441), 1, + ACTIONS(453), 1, sym_comment, - ACTIONS(699), 1, + ACTIONS(727), 1, aux_sym_type_definition_token1, [7256] = 2, - ACTIONS(3), 1, - sym_comment, - ACTIONS(727), 1, - sym_prompt, - [7263] = 2, - ACTIONS(3), 1, + ACTIONS(453), 1, sym_comment, ACTIONS(729), 1, - sym_symbol, - [7270] = 2, + aux_sym_type_definition_token1, + [7263] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(731), 1, sym_prompt, - [7277] = 2, + [7270] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(733), 1, sym_symbol, - [7284] = 2, - ACTIONS(3), 1, + [7277] = 2, + ACTIONS(453), 1, sym_comment, ACTIONS(735), 1, - sym__help_text, - [7291] = 2, - ACTIONS(441), 1, + aux_sym_type_definition_token1, + [7284] = 2, + ACTIONS(453), 1, sym_comment, ACTIONS(737), 1, aux_sym_type_definition_token1, - [7298] = 2, + [7291] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(739), 1, sym_symbol, - [7305] = 2, + [7298] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(741), 1, - sym_symbol, - [7312] = 2, + sym_prompt, + [7305] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(743), 1, sym_prompt, - [7319] = 2, - ACTIONS(441), 1, + [7312] = 2, + ACTIONS(3), 1, sym_comment, ACTIONS(745), 1, - aux_sym_type_definition_token1, - [7326] = 2, - ACTIONS(3), 1, + sym_prompt, + [7319] = 2, + ACTIONS(453), 1, sym_comment, ACTIONS(747), 1, - sym_prompt, - [7333] = 2, + aux_sym_type_definition_token1, + [7326] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(749), 1, sym_prompt, - [7340] = 2, - ACTIONS(441), 1, + [7333] = 2, + ACTIONS(453), 1, sym_comment, ACTIONS(751), 1, aux_sym_type_definition_token1, - [7347] = 2, - ACTIONS(441), 1, + [7340] = 2, + ACTIONS(3), 1, sym_comment, ACTIONS(753), 1, + sym_prompt, + [7347] = 2, + ACTIONS(453), 1, + sym_comment, + ACTIONS(755), 1, aux_sym_type_definition_token1, [7354] = 2, - ACTIONS(441), 1, + ACTIONS(453), 1, sym_comment, - ACTIONS(755), 1, + ACTIONS(757), 1, aux_sym_type_definition_token1, [7361] = 2, ACTIONS(3), 1, sym_comment, - ACTIONS(757), 1, + ACTIONS(759), 1, sym_symbol, [7368] = 2, - ACTIONS(3), 1, + ACTIONS(453), 1, sym_comment, - ACTIONS(759), 1, - sym_symbol, + ACTIONS(761), 1, + aux_sym_type_definition_token1, [7375] = 2, - ACTIONS(3), 1, + ACTIONS(453), 1, sym_comment, - ACTIONS(761), 1, - sym_prompt, + ACTIONS(763), 1, + aux_sym_type_definition_token1, [7382] = 2, - ACTIONS(441), 1, + ACTIONS(453), 1, sym_comment, - ACTIONS(763), 1, + ACTIONS(765), 1, aux_sym_type_definition_token1, [7389] = 2, - ACTIONS(441), 1, + ACTIONS(453), 1, sym_comment, - ACTIONS(765), 1, + ACTIONS(707), 1, aux_sym_type_definition_token1, [7396] = 2, ACTIONS(3), 1, @@ -8763,19 +8744,19 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(3), 1, sym_comment, ACTIONS(769), 1, - sym_prompt, + sym_symbol, [7410] = 2, - ACTIONS(441), 1, + ACTIONS(3), 1, sym_comment, ACTIONS(771), 1, - aux_sym_type_definition_token1, + sym_prompt, [7417] = 2, - ACTIONS(3), 1, + ACTIONS(453), 1, sym_comment, ACTIONS(773), 1, - sym_prompt, + aux_sym_type_definition_token1, [7424] = 2, - ACTIONS(441), 1, + ACTIONS(453), 1, sym_comment, ACTIONS(775), 1, aux_sym_type_definition_token1, @@ -8783,12 +8764,12 @@ static const uint16_t ts_small_parse_table[] = { ACTIONS(3), 1, sym_comment, ACTIONS(777), 1, - sym_symbol, + sym_prompt, [7438] = 2, ACTIONS(3), 1, sym_comment, ACTIONS(779), 1, - ts_builtin_sym_end, + sym_symbol, [7445] = 2, ACTIONS(3), 1, sym_comment, @@ -8808,25 +8789,25 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(18)] = 560, [SMALL_STATE(19)] = 630, [SMALL_STATE(20)] = 700, - [SMALL_STATE(21)] = 744, - [SMALL_STATE(22)] = 788, - [SMALL_STATE(23)] = 832, - [SMALL_STATE(24)] = 878, - [SMALL_STATE(25)] = 922, - [SMALL_STATE(26)] = 966, - [SMALL_STATE(27)] = 1020, + [SMALL_STATE(21)] = 754, + [SMALL_STATE(22)] = 798, + [SMALL_STATE(23)] = 842, + [SMALL_STATE(24)] = 886, + [SMALL_STATE(25)] = 930, + [SMALL_STATE(26)] = 974, + [SMALL_STATE(27)] = 1018, [SMALL_STATE(28)] = 1070, - [SMALL_STATE(29)] = 1114, + [SMALL_STATE(29)] = 1120, [SMALL_STATE(30)] = 1166, [SMALL_STATE(31)] = 1208, [SMALL_STATE(32)] = 1250, - [SMALL_STATE(33)] = 1298, - [SMALL_STATE(34)] = 1348, - [SMALL_STATE(35)] = 1390, - [SMALL_STATE(36)] = 1442, - [SMALL_STATE(37)] = 1484, - [SMALL_STATE(38)] = 1526, - [SMALL_STATE(39)] = 1568, + [SMALL_STATE(33)] = 1294, + [SMALL_STATE(34)] = 1346, + [SMALL_STATE(35)] = 1388, + [SMALL_STATE(36)] = 1430, + [SMALL_STATE(37)] = 1472, + [SMALL_STATE(38)] = 1514, + [SMALL_STATE(39)] = 1562, [SMALL_STATE(40)] = 1612, [SMALL_STATE(41)] = 1672, [SMALL_STATE(42)] = 1732, @@ -8874,35 +8855,35 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(84)] = 3386, [SMALL_STATE(85)] = 3431, [SMALL_STATE(86)] = 3474, - [SMALL_STATE(87)] = 3501, - [SMALL_STATE(88)] = 3544, - [SMALL_STATE(89)] = 3587, - [SMALL_STATE(90)] = 3630, + [SMALL_STATE(87)] = 3517, + [SMALL_STATE(88)] = 3560, + [SMALL_STATE(89)] = 3603, + [SMALL_STATE(90)] = 3646, [SMALL_STATE(91)] = 3673, - [SMALL_STATE(92)] = 3716, - [SMALL_STATE(93)] = 3759, - [SMALL_STATE(94)] = 3802, - [SMALL_STATE(95)] = 3845, + [SMALL_STATE(92)] = 3700, + [SMALL_STATE(93)] = 3743, + [SMALL_STATE(94)] = 3786, + [SMALL_STATE(95)] = 3829, [SMALL_STATE(96)] = 3872, [SMALL_STATE(97)] = 3915, [SMALL_STATE(98)] = 3958, [SMALL_STATE(99)] = 4001, [SMALL_STATE(100)] = 4044, [SMALL_STATE(101)] = 4087, - [SMALL_STATE(102)] = 4115, - [SMALL_STATE(103)] = 4147, - [SMALL_STATE(104)] = 4181, - [SMALL_STATE(105)] = 4207, - [SMALL_STATE(106)] = 4233, + [SMALL_STATE(102)] = 4121, + [SMALL_STATE(103)] = 4153, + [SMALL_STATE(104)] = 4179, + [SMALL_STATE(105)] = 4205, + [SMALL_STATE(106)] = 4231, [SMALL_STATE(107)] = 4259, [SMALL_STATE(108)] = 4285, - [SMALL_STATE(109)] = 4308, - [SMALL_STATE(110)] = 4331, + [SMALL_STATE(109)] = 4316, + [SMALL_STATE(110)] = 4339, [SMALL_STATE(111)] = 4362, [SMALL_STATE(112)] = 4385, - [SMALL_STATE(113)] = 4408, - [SMALL_STATE(114)] = 4437, - [SMALL_STATE(115)] = 4464, + [SMALL_STATE(113)] = 4410, + [SMALL_STATE(114)] = 4433, + [SMALL_STATE(115)] = 4460, [SMALL_STATE(116)] = 4489, [SMALL_STATE(117)] = 4512, [SMALL_STATE(118)] = 4535, @@ -8911,52 +8892,52 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(121)] = 4640, [SMALL_STATE(122)] = 4675, [SMALL_STATE(123)] = 4710, - [SMALL_STATE(124)] = 4739, - [SMALL_STATE(125)] = 4768, - [SMALL_STATE(126)] = 4797, - [SMALL_STATE(127)] = 4814, - [SMALL_STATE(128)] = 4831, - [SMALL_STATE(129)] = 4848, - [SMALL_STATE(130)] = 4865, - [SMALL_STATE(131)] = 4882, - [SMALL_STATE(132)] = 4899, + [SMALL_STATE(124)] = 4727, + [SMALL_STATE(125)] = 4744, + [SMALL_STATE(126)] = 4761, + [SMALL_STATE(127)] = 4778, + [SMALL_STATE(128)] = 4795, + [SMALL_STATE(129)] = 4812, + [SMALL_STATE(130)] = 4829, + [SMALL_STATE(131)] = 4858, + [SMALL_STATE(132)] = 4887, [SMALL_STATE(133)] = 4916, - [SMALL_STATE(134)] = 4933, - [SMALL_STATE(135)] = 4950, - [SMALL_STATE(136)] = 4967, + [SMALL_STATE(134)] = 4945, + [SMALL_STATE(135)] = 4962, + [SMALL_STATE(136)] = 4979, [SMALL_STATE(137)] = 4996, [SMALL_STATE(138)] = 5022, [SMALL_STATE(139)] = 5048, [SMALL_STATE(140)] = 5074, [SMALL_STATE(141)] = 5100, - [SMALL_STATE(142)] = 5126, - [SMALL_STATE(143)] = 5144, - [SMALL_STATE(144)] = 5162, - [SMALL_STATE(145)] = 5180, - [SMALL_STATE(146)] = 5198, - [SMALL_STATE(147)] = 5216, - [SMALL_STATE(148)] = 5240, - [SMALL_STATE(149)] = 5262, - [SMALL_STATE(150)] = 5282, - [SMALL_STATE(151)] = 5300, - [SMALL_STATE(152)] = 5326, - [SMALL_STATE(153)] = 5352, - [SMALL_STATE(154)] = 5378, - [SMALL_STATE(155)] = 5404, - [SMALL_STATE(156)] = 5430, - [SMALL_STATE(157)] = 5456, - [SMALL_STATE(158)] = 5482, - [SMALL_STATE(159)] = 5508, - [SMALL_STATE(160)] = 5534, - [SMALL_STATE(161)] = 5560, - [SMALL_STATE(162)] = 5586, - [SMALL_STATE(163)] = 5612, - [SMALL_STATE(164)] = 5638, - [SMALL_STATE(165)] = 5664, - [SMALL_STATE(166)] = 5690, - [SMALL_STATE(167)] = 5716, - [SMALL_STATE(168)] = 5742, - [SMALL_STATE(169)] = 5768, + [SMALL_STATE(142)] = 5118, + [SMALL_STATE(143)] = 5136, + [SMALL_STATE(144)] = 5154, + [SMALL_STATE(145)] = 5178, + [SMALL_STATE(146)] = 5200, + [SMALL_STATE(147)] = 5220, + [SMALL_STATE(148)] = 5246, + [SMALL_STATE(149)] = 5272, + [SMALL_STATE(150)] = 5298, + [SMALL_STATE(151)] = 5324, + [SMALL_STATE(152)] = 5350, + [SMALL_STATE(153)] = 5376, + [SMALL_STATE(154)] = 5402, + [SMALL_STATE(155)] = 5428, + [SMALL_STATE(156)] = 5454, + [SMALL_STATE(157)] = 5472, + [SMALL_STATE(158)] = 5498, + [SMALL_STATE(159)] = 5524, + [SMALL_STATE(160)] = 5550, + [SMALL_STATE(161)] = 5576, + [SMALL_STATE(162)] = 5602, + [SMALL_STATE(163)] = 5628, + [SMALL_STATE(164)] = 5654, + [SMALL_STATE(165)] = 5680, + [SMALL_STATE(166)] = 5706, + [SMALL_STATE(167)] = 5732, + [SMALL_STATE(168)] = 5758, + [SMALL_STATE(169)] = 5776, [SMALL_STATE(170)] = 5794, [SMALL_STATE(171)] = 5820, [SMALL_STATE(172)] = 5846, @@ -8975,37 +8956,37 @@ static const uint32_t ts_small_parse_table_map[] = { [SMALL_STATE(185)] = 6184, [SMALL_STATE(186)] = 6210, [SMALL_STATE(187)] = 6236, - [SMALL_STATE(188)] = 6259, + [SMALL_STATE(188)] = 6253, [SMALL_STATE(189)] = 6276, - [SMALL_STATE(190)] = 6301, - [SMALL_STATE(191)] = 6318, - [SMALL_STATE(192)] = 6341, - [SMALL_STATE(193)] = 6364, - [SMALL_STATE(194)] = 6389, - [SMALL_STATE(195)] = 6406, - [SMALL_STATE(196)] = 6431, - [SMALL_STATE(197)] = 6448, - [SMALL_STATE(198)] = 6465, - [SMALL_STATE(199)] = 6490, - [SMALL_STATE(200)] = 6515, - [SMALL_STATE(201)] = 6532, - [SMALL_STATE(202)] = 6549, - [SMALL_STATE(203)] = 6566, - [SMALL_STATE(204)] = 6583, - [SMALL_STATE(205)] = 6600, + [SMALL_STATE(190)] = 6293, + [SMALL_STATE(191)] = 6310, + [SMALL_STATE(192)] = 6327, + [SMALL_STATE(193)] = 6344, + [SMALL_STATE(194)] = 6361, + [SMALL_STATE(195)] = 6378, + [SMALL_STATE(196)] = 6401, + [SMALL_STATE(197)] = 6418, + [SMALL_STATE(198)] = 6443, + [SMALL_STATE(199)] = 6460, + [SMALL_STATE(200)] = 6477, + [SMALL_STATE(201)] = 6494, + [SMALL_STATE(202)] = 6517, + [SMALL_STATE(203)] = 6542, + [SMALL_STATE(204)] = 6567, + [SMALL_STATE(205)] = 6592, [SMALL_STATE(206)] = 6617, [SMALL_STATE(207)] = 6637, - [SMALL_STATE(208)] = 6657, - [SMALL_STATE(209)] = 6677, - [SMALL_STATE(210)] = 6697, - [SMALL_STATE(211)] = 6719, - [SMALL_STATE(212)] = 6739, - [SMALL_STATE(213)] = 6759, - [SMALL_STATE(214)] = 6779, - [SMALL_STATE(215)] = 6799, - [SMALL_STATE(216)] = 6819, - [SMALL_STATE(217)] = 6839, - [SMALL_STATE(218)] = 6859, + [SMALL_STATE(208)] = 6659, + [SMALL_STATE(209)] = 6679, + [SMALL_STATE(210)] = 6701, + [SMALL_STATE(211)] = 6721, + [SMALL_STATE(212)] = 6741, + [SMALL_STATE(213)] = 6761, + [SMALL_STATE(214)] = 6781, + [SMALL_STATE(215)] = 6801, + [SMALL_STATE(216)] = 6821, + [SMALL_STATE(217)] = 6841, + [SMALL_STATE(218)] = 6861, [SMALL_STATE(219)] = 6881, [SMALL_STATE(220)] = 6901, [SMALL_STATE(221)] = 6921, @@ -9074,372 +9055,386 @@ static const TSParseActionEntry ts_parse_actions[] = { [0] = {.entry = {.count = 0, .reusable = false}}, [1] = {.entry = {.count = 1, .reusable = false}}, RECOVER(), [3] = {.entry = {.count = 1, .reusable = true}}, SHIFT_EXTRA(), - [5] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_configuration, 0), + [5] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_configuration, 0, 0, 0), [7] = {.entry = {.count = 1, .reusable = false}}, SHIFT(221), - [9] = {.entry = {.count = 1, .reusable = false}}, SHIFT(253), - [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(280), - [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(278), - [15] = {.entry = {.count = 1, .reusable = false}}, SHIFT(41), - [17] = {.entry = {.count = 1, .reusable = false}}, SHIFT(273), - [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(270), - [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(186), - [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(247), - [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(222), - [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(259), - [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(260), - [31] = {.entry = {.count = 1, .reusable = false}}, SHIFT(40), - [33] = {.entry = {.count = 1, .reusable = false}}, SHIFT(276), - [35] = {.entry = {.count = 1, .reusable = false}}, SHIFT(261), - [37] = {.entry = {.count = 1, .reusable = false}}, SHIFT(202), - [39] = {.entry = {.count = 1, .reusable = false}}, SHIFT(163), - [41] = {.entry = {.count = 1, .reusable = false}}, SHIFT(263), - [43] = {.entry = {.count = 1, .reusable = false}}, SHIFT(218), - [45] = {.entry = {.count = 1, .reusable = false}}, SHIFT(255), - [47] = {.entry = {.count = 1, .reusable = false}}, SHIFT(162), - [49] = {.entry = {.count = 1, .reusable = false}}, SHIFT(165), - [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(164), - [53] = {.entry = {.count = 1, .reusable = false}}, SHIFT(254), - [55] = {.entry = {.count = 1, .reusable = false}}, SHIFT(256), - [57] = {.entry = {.count = 1, .reusable = true}}, SHIFT(172), - [59] = {.entry = {.count = 1, .reusable = false}}, SHIFT(234), - [61] = {.entry = {.count = 1, .reusable = false}}, SHIFT(249), - [63] = {.entry = {.count = 1, .reusable = false}}, SHIFT(14), - [65] = {.entry = {.count = 1, .reusable = false}}, SHIFT(133), - [67] = {.entry = {.count = 1, .reusable = false}}, SHIFT(188), - [69] = {.entry = {.count = 1, .reusable = false}}, SHIFT(2), - [71] = {.entry = {.count = 1, .reusable = false}}, SHIFT(127), - [73] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3), - [75] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_comment_entry, 3, .production_id = 1), - [77] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_menuconfig, 3, .production_id = 1), - [79] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_config, 3, .production_id = 1), - [81] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_comment_entry, 2, .production_id = 1), - [83] = {.entry = {.count = 1, .reusable = false}}, SHIFT(10), - [85] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_config_repeat1, 2), - [87] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_config_repeat1, 2), SHIFT_REPEAT(218), - [90] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_config_repeat1, 2), SHIFT_REPEAT(255), - [93] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_config_repeat1, 2), SHIFT_REPEAT(162), - [96] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_config_repeat1, 2), SHIFT_REPEAT(165), - [99] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_config_repeat1, 2), SHIFT_REPEAT(164), - [102] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_config_repeat1, 2), SHIFT_REPEAT(254), - [105] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_config_repeat1, 2), SHIFT_REPEAT(256), - [108] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_config_repeat1, 2), SHIFT_REPEAT(172), - [111] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_config_repeat1, 2), SHIFT_REPEAT(234), - [114] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_config_repeat1, 2), SHIFT_REPEAT(249), - [117] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_config_repeat1, 2), SHIFT_REPEAT(14), - [120] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_menuconfig, 3, .production_id = 1), - [122] = {.entry = {.count = 1, .reusable = false}}, SHIFT(210), - [124] = {.entry = {.count = 1, .reusable = false}}, SHIFT(264), - [126] = {.entry = {.count = 1, .reusable = false}}, SHIFT(138), - [128] = {.entry = {.count = 1, .reusable = false}}, SHIFT(161), - [130] = {.entry = {.count = 1, .reusable = true}}, SHIFT(160), - [132] = {.entry = {.count = 1, .reusable = false}}, SHIFT(268), - [134] = {.entry = {.count = 1, .reusable = false}}, SHIFT(269), - [136] = {.entry = {.count = 1, .reusable = true}}, SHIFT(155), - [138] = {.entry = {.count = 1, .reusable = false}}, SHIFT(229), - [140] = {.entry = {.count = 1, .reusable = false}}, SHIFT(257), - [142] = {.entry = {.count = 1, .reusable = false}}, SHIFT(17), - [144] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comment_entry, 2, .production_id = 1), - [146] = {.entry = {.count = 1, .reusable = false}}, SHIFT(19), - [148] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_config_repeat1, 2), - [150] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_config_repeat1, 2), SHIFT_REPEAT(210), - [153] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_config_repeat1, 2), SHIFT_REPEAT(264), - [156] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_config_repeat1, 2), SHIFT_REPEAT(138), - [159] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_config_repeat1, 2), SHIFT_REPEAT(161), - [162] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_config_repeat1, 2), SHIFT_REPEAT(160), - [165] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_config_repeat1, 2), SHIFT_REPEAT(268), - [168] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_config_repeat1, 2), SHIFT_REPEAT(269), - [171] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_config_repeat1, 2), SHIFT_REPEAT(155), - [174] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_config_repeat1, 2), SHIFT_REPEAT(229), - [177] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_config_repeat1, 2), SHIFT_REPEAT(257), - [180] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_config_repeat1, 2), SHIFT_REPEAT(17), - [183] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_config, 3, .production_id = 1), - [185] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comment_entry, 3, .production_id = 1), - [187] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_expression, 3, .production_id = 6), - [189] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_expression, 3, .production_id = 6), - [191] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_macro_variable, 2), - [193] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_macro_variable, 2), - [195] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesized_expression, 3), - [197] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_expression, 3), - [199] = {.entry = {.count = 1, .reusable = true}}, SHIFT(166), - [201] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_expression, 2), - [203] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_expression, 2), - [205] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression, 1), - [207] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression, 1), - [209] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_limiting_menu_display, 2), - [211] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_limiting_menu_display, 2), - [213] = {.entry = {.count = 1, .reusable = true}}, SHIFT(167), - [215] = {.entry = {.count = 1, .reusable = true}}, SHIFT(168), - [217] = {.entry = {.count = 1, .reusable = true}}, SHIFT(169), - [219] = {.entry = {.count = 1, .reusable = false}}, SHIFT(169), - [221] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_macro_variable, 3), - [223] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_macro_variable, 3), - [225] = {.entry = {.count = 1, .reusable = true}}, SHIFT(179), - [227] = {.entry = {.count = 1, .reusable = true}}, SHIFT(171), - [229] = {.entry = {.count = 1, .reusable = false}}, SHIFT(171), - [231] = {.entry = {.count = 1, .reusable = true}}, SHIFT(173), - [233] = {.entry = {.count = 1, .reusable = true}}, SHIFT(178), - [235] = {.entry = {.count = 1, .reusable = false}}, SHIFT(44), - [237] = {.entry = {.count = 1, .reusable = false}}, SHIFT(8), - [239] = {.entry = {.count = 1, .reusable = false}}, SHIFT(45), + [9] = {.entry = {.count = 1, .reusable = false}}, SHIFT(254), + [11] = {.entry = {.count = 1, .reusable = false}}, SHIFT(246), + [13] = {.entry = {.count = 1, .reusable = false}}, SHIFT(255), + [15] = {.entry = {.count = 1, .reusable = false}}, SHIFT(40), + [17] = {.entry = {.count = 1, .reusable = false}}, SHIFT(261), + [19] = {.entry = {.count = 1, .reusable = false}}, SHIFT(265), + [21] = {.entry = {.count = 1, .reusable = false}}, SHIFT(148), + [23] = {.entry = {.count = 1, .reusable = false}}, SHIFT(259), + [25] = {.entry = {.count = 1, .reusable = false}}, SHIFT(223), + [27] = {.entry = {.count = 1, .reusable = false}}, SHIFT(258), + [29] = {.entry = {.count = 1, .reusable = false}}, SHIFT(280), + [31] = {.entry = {.count = 1, .reusable = false}}, SHIFT(41), + [33] = {.entry = {.count = 1, .reusable = false}}, SHIFT(275), + [35] = {.entry = {.count = 1, .reusable = false}}, SHIFT(260), + [37] = {.entry = {.count = 1, .reusable = false}}, SHIFT(193), + [39] = {.entry = {.count = 1, .reusable = false}}, SHIFT(178), + [41] = {.entry = {.count = 1, .reusable = false}}, SHIFT(278), + [43] = {.entry = {.count = 1, .reusable = false}}, SHIFT(207), + [45] = {.entry = {.count = 1, .reusable = false}}, SHIFT(250), + [47] = {.entry = {.count = 1, .reusable = false}}, SHIFT(139), + [49] = {.entry = {.count = 1, .reusable = false}}, SHIFT(140), + [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(147), + [53] = {.entry = {.count = 1, .reusable = false}}, SHIFT(274), + [55] = {.entry = {.count = 1, .reusable = false}}, SHIFT(279), + [57] = {.entry = {.count = 1, .reusable = true}}, SHIFT(161), + [59] = {.entry = {.count = 1, .reusable = false}}, SHIFT(232), + [61] = {.entry = {.count = 1, .reusable = false}}, SHIFT(251), + [63] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3), + [65] = {.entry = {.count = 1, .reusable = false}}, SHIFT(200), + [67] = {.entry = {.count = 1, .reusable = false}}, SHIFT(12), + [69] = {.entry = {.count = 1, .reusable = false}}, SHIFT(135), + [71] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5), + [73] = {.entry = {.count = 1, .reusable = false}}, SHIFT(129), + [75] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_comment_entry, 2, 0, 1), + [77] = {.entry = {.count = 1, .reusable = false}}, SHIFT(14), + [79] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_config, 3, 0, 1), + [81] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_config_repeat1, 2, 0, 0), + [83] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_config_repeat1, 2, 0, 0), SHIFT_REPEAT(207), + [86] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_config_repeat1, 2, 0, 0), SHIFT_REPEAT(250), + [89] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_config_repeat1, 2, 0, 0), SHIFT_REPEAT(139), + [92] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_config_repeat1, 2, 0, 0), SHIFT_REPEAT(140), + [95] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_config_repeat1, 2, 0, 0), SHIFT_REPEAT(147), + [98] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_config_repeat1, 2, 0, 0), SHIFT_REPEAT(274), + [101] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_config_repeat1, 2, 0, 0), SHIFT_REPEAT(279), + [104] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_config_repeat1, 2, 0, 0), SHIFT_REPEAT(161), + [107] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_config_repeat1, 2, 0, 0), SHIFT_REPEAT(232), + [110] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_config_repeat1, 2, 0, 0), SHIFT_REPEAT(251), + [113] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_config_repeat1, 2, 0, 0), SHIFT_REPEAT(12), + [116] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_menuconfig, 3, 0, 1), + [118] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_comment_entry, 3, 0, 1), + [120] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_menuconfig, 3, 0, 1), + [122] = {.entry = {.count = 1, .reusable = false}}, SHIFT(209), + [124] = {.entry = {.count = 1, .reusable = false}}, SHIFT(263), + [126] = {.entry = {.count = 1, .reusable = false}}, SHIFT(179), + [128] = {.entry = {.count = 1, .reusable = false}}, SHIFT(180), + [130] = {.entry = {.count = 1, .reusable = true}}, SHIFT(181), + [132] = {.entry = {.count = 1, .reusable = false}}, SHIFT(243), + [134] = {.entry = {.count = 1, .reusable = false}}, SHIFT(268), + [136] = {.entry = {.count = 1, .reusable = true}}, SHIFT(166), + [138] = {.entry = {.count = 1, .reusable = false}}, SHIFT(240), + [140] = {.entry = {.count = 1, .reusable = false}}, SHIFT(249), + [142] = {.entry = {.count = 1, .reusable = false}}, SHIFT(18), + [144] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comment_entry, 3, 0, 1), + [146] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_config, 3, 0, 1), + [148] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_config_repeat1, 2, 0, 0), + [150] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_config_repeat1, 2, 0, 0), SHIFT_REPEAT(209), + [153] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_config_repeat1, 2, 0, 0), SHIFT_REPEAT(263), + [156] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_config_repeat1, 2, 0, 0), SHIFT_REPEAT(179), + [159] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_config_repeat1, 2, 0, 0), SHIFT_REPEAT(180), + [162] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_config_repeat1, 2, 0, 0), SHIFT_REPEAT(181), + [165] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_config_repeat1, 2, 0, 0), SHIFT_REPEAT(243), + [168] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_config_repeat1, 2, 0, 0), SHIFT_REPEAT(268), + [171] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_config_repeat1, 2, 0, 0), SHIFT_REPEAT(166), + [174] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_config_repeat1, 2, 0, 0), SHIFT_REPEAT(240), + [177] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_config_repeat1, 2, 0, 0), SHIFT_REPEAT(249), + [180] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_config_repeat1, 2, 0, 0), SHIFT_REPEAT(18), + [183] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_comment_entry, 2, 0, 1), + [185] = {.entry = {.count = 1, .reusable = false}}, SHIFT(16), + [187] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_limiting_menu_display, 2, 0, 0), + [189] = {.entry = {.count = 1, .reusable = true}}, SHIFT(152), + [191] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_limiting_menu_display, 2, 0, 0), + [193] = {.entry = {.count = 1, .reusable = true}}, SHIFT(153), + [195] = {.entry = {.count = 1, .reusable = true}}, SHIFT(154), + [197] = {.entry = {.count = 1, .reusable = true}}, SHIFT(155), + [199] = {.entry = {.count = 1, .reusable = false}}, SHIFT(155), + [201] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_expression, 1, 0, 0), + [203] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_expression, 1, 0, 0), + [205] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_unary_expression, 2, 0, 0), + [207] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_unary_expression, 2, 0, 0), + [209] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_macro_variable, 2, 0, 0), + [211] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_macro_variable, 2, 0, 0), + [213] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_parenthesized_expression, 3, 0, 0), + [215] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_parenthesized_expression, 3, 0, 0), + [217] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_macro_variable, 3, 0, 0), + [219] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_macro_variable, 3, 0, 0), + [221] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_binary_expression, 3, 0, 6), + [223] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_binary_expression, 3, 0, 6), + [225] = {.entry = {.count = 1, .reusable = true}}, SHIFT(162), + [227] = {.entry = {.count = 1, .reusable = true}}, SHIFT(163), + [229] = {.entry = {.count = 1, .reusable = true}}, SHIFT(164), + [231] = {.entry = {.count = 1, .reusable = true}}, SHIFT(165), + [233] = {.entry = {.count = 1, .reusable = false}}, SHIFT(165), + [235] = {.entry = {.count = 1, .reusable = false}}, SHIFT(42), + [237] = {.entry = {.count = 1, .reusable = false}}, SHIFT(9), + [239] = {.entry = {.count = 1, .reusable = false}}, SHIFT(44), [241] = {.entry = {.count = 1, .reusable = false}}, SHIFT(6), - [243] = {.entry = {.count = 1, .reusable = true}}, SHIFT(210), - [245] = {.entry = {.count = 1, .reusable = true}}, SHIFT(264), - [247] = {.entry = {.count = 1, .reusable = true}}, SHIFT(138), - [249] = {.entry = {.count = 1, .reusable = true}}, SHIFT(161), - [251] = {.entry = {.count = 1, .reusable = true}}, SHIFT(268), - [253] = {.entry = {.count = 1, .reusable = true}}, SHIFT(269), - [255] = {.entry = {.count = 1, .reusable = true}}, SHIFT(229), - [257] = {.entry = {.count = 1, .reusable = true}}, SHIFT(257), - [259] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18), - [261] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), - [263] = {.entry = {.count = 1, .reusable = true}}, SHIFT(218), - [265] = {.entry = {.count = 1, .reusable = true}}, SHIFT(255), - [267] = {.entry = {.count = 1, .reusable = true}}, SHIFT(162), - [269] = {.entry = {.count = 1, .reusable = true}}, SHIFT(165), - [271] = {.entry = {.count = 1, .reusable = true}}, SHIFT(254), - [273] = {.entry = {.count = 1, .reusable = true}}, SHIFT(256), - [275] = {.entry = {.count = 1, .reusable = true}}, SHIFT(234), - [277] = {.entry = {.count = 1, .reusable = true}}, SHIFT(249), + [243] = {.entry = {.count = 1, .reusable = true}}, SHIFT(207), + [245] = {.entry = {.count = 1, .reusable = true}}, SHIFT(250), + [247] = {.entry = {.count = 1, .reusable = true}}, SHIFT(139), + [249] = {.entry = {.count = 1, .reusable = true}}, SHIFT(140), + [251] = {.entry = {.count = 1, .reusable = true}}, SHIFT(274), + [253] = {.entry = {.count = 1, .reusable = true}}, SHIFT(279), + [255] = {.entry = {.count = 1, .reusable = true}}, SHIFT(232), + [257] = {.entry = {.count = 1, .reusable = true}}, SHIFT(251), + [259] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8), + [261] = {.entry = {.count = 1, .reusable = true}}, SHIFT(209), + [263] = {.entry = {.count = 1, .reusable = true}}, SHIFT(263), + [265] = {.entry = {.count = 1, .reusable = true}}, SHIFT(179), + [267] = {.entry = {.count = 1, .reusable = true}}, SHIFT(180), + [269] = {.entry = {.count = 1, .reusable = true}}, SHIFT(243), + [271] = {.entry = {.count = 1, .reusable = true}}, SHIFT(268), + [273] = {.entry = {.count = 1, .reusable = true}}, SHIFT(240), + [275] = {.entry = {.count = 1, .reusable = true}}, SHIFT(249), + [277] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15), [279] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7), - [281] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9), - [283] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), - [285] = {.entry = {.count = 1, .reusable = true}}, SHIFT(12), - [287] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_default_value, 3), - [289] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_default_value, 3), - [291] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_input_prompt, 4), - [293] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_input_prompt, 4), - [295] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_input_prompt, 3), - [297] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_input_prompt, 3), - [299] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_definition, 2), - [301] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_definition, 2), - [303] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_default_value, 4), - [305] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_default_value, 4), - [307] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_definition, 3), - [309] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_definition, 3), - [311] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_help_text, 2), - [313] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_help_text, 2), - [315] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_definition_default, 4), - [317] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_definition_default, 4), - [319] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_reverse_dependencies, 4), - [321] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_reverse_dependencies, 4), - [323] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_weak_reverse_dependencies, 4), - [325] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_weak_reverse_dependencies, 4), - [327] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_numerical_ranges, 4), - [329] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_numerical_ranges, 4), - [331] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_definition_default, 3), - [333] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_definition_default, 3), - [335] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dependencies, 3), - [337] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dependencies, 3), - [339] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_numerical_ranges, 5), - [341] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_numerical_ranges, 5), - [343] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_reverse_dependencies, 3), - [345] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_reverse_dependencies, 3), - [347] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_weak_reverse_dependencies, 3), - [349] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_weak_reverse_dependencies, 3), - [351] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_definition, 4), - [353] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_definition, 4), - [355] = {.entry = {.count = 1, .reusable = false}}, SHIFT(196), - [357] = {.entry = {.count = 1, .reusable = true}}, SHIFT(176), - [359] = {.entry = {.count = 1, .reusable = true}}, SHIFT(175), - [361] = {.entry = {.count = 1, .reusable = true}}, SHIFT(137), + [281] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11), + [283] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), + [285] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17), + [287] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_default_value, 4, 0, 0), + [289] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_default_value, 4, 0, 0), + [291] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_numerical_ranges, 5, 0, 0), + [293] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_numerical_ranges, 5, 0, 0), + [295] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_definition, 3, 0, 0), + [297] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_definition, 3, 0, 0), + [299] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_input_prompt, 3, 0, 0), + [301] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_input_prompt, 3, 0, 0), + [303] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_help_text, 2, 0, 0), + [305] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_help_text, 2, 0, 0), + [307] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_default_value, 3, 0, 0), + [309] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_default_value, 3, 0, 0), + [311] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_definition_default, 3, 0, 0), + [313] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_definition_default, 3, 0, 0), + [315] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_dependencies, 3, 0, 0), + [317] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_dependencies, 3, 0, 0), + [319] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_reverse_dependencies, 3, 0, 0), + [321] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_reverse_dependencies, 3, 0, 0), + [323] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_weak_reverse_dependencies, 3, 0, 0), + [325] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_weak_reverse_dependencies, 3, 0, 0), + [327] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_definition, 4, 0, 0), + [329] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_definition, 4, 0, 0), + [331] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_input_prompt, 4, 0, 0), + [333] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_input_prompt, 4, 0, 0), + [335] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_reverse_dependencies, 4, 0, 0), + [337] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_reverse_dependencies, 4, 0, 0), + [339] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_definition, 2, 0, 0), + [341] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_definition, 2, 0, 0), + [343] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_weak_reverse_dependencies, 4, 0, 0), + [345] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_weak_reverse_dependencies, 4, 0, 0), + [347] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_numerical_ranges, 4, 0, 0), + [349] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_numerical_ranges, 4, 0, 0), + [351] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_type_definition_default, 4, 0, 0), + [353] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_definition_default, 4, 0, 0), + [355] = {.entry = {.count = 1, .reusable = false}}, SHIFT(198), + [357] = {.entry = {.count = 1, .reusable = true}}, SHIFT(160), + [359] = {.entry = {.count = 1, .reusable = true}}, SHIFT(186), + [361] = {.entry = {.count = 1, .reusable = true}}, SHIFT(182), [363] = {.entry = {.count = 1, .reusable = true}}, SHIFT(174), [365] = {.entry = {.count = 1, .reusable = false}}, SHIFT(174), - [367] = {.entry = {.count = 1, .reusable = false}}, SHIFT(130), - [369] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_configuration_repeat1, 2), SHIFT_REPEAT(222), - [372] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_configuration_repeat1, 2), SHIFT_REPEAT(259), - [375] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_configuration_repeat1, 2), SHIFT_REPEAT(260), - [378] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_configuration_repeat1, 2), SHIFT_REPEAT(40), - [381] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_configuration_repeat1, 2), - [383] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_configuration_repeat1, 2), SHIFT_REPEAT(276), - [386] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_configuration_repeat1, 2), SHIFT_REPEAT(261), - [389] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_configuration_repeat1, 2), SHIFT_REPEAT(163), - [392] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_configuration_repeat1, 2), SHIFT_REPEAT(263), - [395] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_configuration_repeat1, 2), - [397] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_configuration_repeat1, 2), SHIFT_REPEAT(221), - [400] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_configuration_repeat1, 2), SHIFT_REPEAT(280), - [403] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_configuration_repeat1, 2), SHIFT_REPEAT(278), - [406] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_configuration_repeat1, 2), SHIFT_REPEAT(41), - [409] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_configuration_repeat1, 2), SHIFT_REPEAT(273), - [412] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_configuration_repeat1, 2), SHIFT_REPEAT(270), - [415] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_configuration_repeat1, 2), SHIFT_REPEAT(186), - [418] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_configuration_repeat1, 2), SHIFT_REPEAT(247), - [421] = {.entry = {.count = 1, .reusable = false}}, SHIFT(126), - [423] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_configuration, 2), - [425] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_configuration, 1), - [427] = {.entry = {.count = 1, .reusable = false}}, SHIFT(194), - [429] = {.entry = {.count = 1, .reusable = false}}, SHIFT(134), - [431] = {.entry = {.count = 1, .reusable = false}}, SHIFT(205), + [367] = {.entry = {.count = 1, .reusable = false}}, SHIFT(124), + [369] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_configuration_repeat1, 2, 0, 0), SHIFT_REPEAT(223), + [372] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_configuration_repeat1, 2, 0, 0), SHIFT_REPEAT(258), + [375] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_configuration_repeat1, 2, 0, 0), SHIFT_REPEAT(280), + [378] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_configuration_repeat1, 2, 0, 0), SHIFT_REPEAT(41), + [381] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_configuration_repeat1, 2, 0, 0), + [383] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_configuration_repeat1, 2, 0, 0), SHIFT_REPEAT(275), + [386] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_configuration_repeat1, 2, 0, 0), SHIFT_REPEAT(260), + [389] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_configuration_repeat1, 2, 0, 0), SHIFT_REPEAT(178), + [392] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_configuration_repeat1, 2, 0, 0), SHIFT_REPEAT(278), + [395] = {.entry = {.count = 1, .reusable = false}}, SHIFT(190), + [397] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_configuration, 2, 0, 0), + [399] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_configuration_repeat1, 2, 0, 0), + [401] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_configuration_repeat1, 2, 0, 0), SHIFT_REPEAT(221), + [404] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_configuration_repeat1, 2, 0, 0), SHIFT_REPEAT(246), + [407] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_configuration_repeat1, 2, 0, 0), SHIFT_REPEAT(255), + [410] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_configuration_repeat1, 2, 0, 0), SHIFT_REPEAT(40), + [413] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_configuration_repeat1, 2, 0, 0), SHIFT_REPEAT(261), + [416] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_configuration_repeat1, 2, 0, 0), SHIFT_REPEAT(265), + [419] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_configuration_repeat1, 2, 0, 0), SHIFT_REPEAT(148), + [422] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_configuration_repeat1, 2, 0, 0), SHIFT_REPEAT(259), + [425] = {.entry = {.count = 1, .reusable = false}}, SHIFT(187), + [427] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_configuration, 1, 0, 0), + [429] = {.entry = {.count = 1, .reusable = false}}, SHIFT(189), + [431] = {.entry = {.count = 1, .reusable = false}}, SHIFT(199), [433] = {.entry = {.count = 1, .reusable = false}}, SHIFT(128), - [435] = {.entry = {.count = 1, .reusable = false}}, SHIFT(129), - [437] = {.entry = {.count = 1, .reusable = false}}, SHIFT(203), - [439] = {.entry = {.count = 1, .reusable = false}}, SHIFT(200), - [441] = {.entry = {.count = 1, .reusable = false}}, SHIFT_EXTRA(), - [443] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_variable_repeat1, 1, .production_id = 5), - [445] = {.entry = {.count = 1, .reusable = false}}, SHIFT(181), - [447] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_variable_repeat1, 1, .production_id = 5), - [449] = {.entry = {.count = 1, .reusable = false}}, SHIFT(182), - [451] = {.entry = {.count = 1, .reusable = false}}, SHIFT(183), - [453] = {.entry = {.count = 1, .reusable = false}}, SHIFT(184), - [455] = {.entry = {.count = 1, .reusable = false}}, SHIFT(117), + [435] = {.entry = {.count = 1, .reusable = false}}, SHIFT(136), + [437] = {.entry = {.count = 1, .reusable = false}}, SHIFT(126), + [439] = {.entry = {.count = 1, .reusable = false}}, SHIFT(127), + [441] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_variable_repeat1, 1, 0, 5), + [443] = {.entry = {.count = 1, .reusable = false}}, SHIFT(157), + [445] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_variable_repeat1, 1, 0, 5), + [447] = {.entry = {.count = 1, .reusable = false}}, SHIFT(158), + [449] = {.entry = {.count = 1, .reusable = false}}, SHIFT(159), + [451] = {.entry = {.count = 1, .reusable = false}}, SHIFT(137), + [453] = {.entry = {.count = 1, .reusable = false}}, SHIFT_EXTRA(), + [455] = {.entry = {.count = 1, .reusable = false}}, SHIFT(109), [457] = {.entry = {.count = 1, .reusable = false}}, SHIFT(122), - [459] = {.entry = {.count = 1, .reusable = true}}, SHIFT(131), - [461] = {.entry = {.count = 1, .reusable = false}}, SHIFT(177), - [463] = {.entry = {.count = 1, .reusable = false}}, SHIFT(152), - [465] = {.entry = {.count = 1, .reusable = false}}, SHIFT(212), - [467] = {.entry = {.count = 1, .reusable = false}}, SHIFT(120), - [469] = {.entry = {.count = 1, .reusable = true}}, SHIFT(197), - [471] = {.entry = {.count = 1, .reusable = false}}, SHIFT(121), - [473] = {.entry = {.count = 1, .reusable = true}}, SHIFT(204), - [475] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_variable_repeat1, 2, .production_id = 8), SHIFT_REPEAT(117), - [478] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_variable_repeat1, 2, .production_id = 8), SHIFT_REPEAT(121), - [481] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_variable_repeat1, 2, .production_id = 8), - [483] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_variable_repeat1, 2, .production_id = 8), SHIFT_REPEAT(177), - [486] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_variable_repeat1, 2, .production_id = 8), SHIFT_REPEAT(152), - [489] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_variable_repeat1, 2, .production_id = 8), SHIFT_REPEAT(212), - [492] = {.entry = {.count = 1, .reusable = true}}, SHIFT(135), - [494] = {.entry = {.count = 1, .reusable = false}}, SHIFT(159), - [496] = {.entry = {.count = 1, .reusable = false}}, SHIFT(139), - [498] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), - [500] = {.entry = {.count = 1, .reusable = false}}, SHIFT(140), - [502] = {.entry = {.count = 1, .reusable = false}}, SHIFT(141), - [504] = {.entry = {.count = 1, .reusable = false}}, SHIFT(180), - [506] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), - [508] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), - [510] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_menu, 5, .production_id = 1), - [512] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_menu, 3, .production_id = 1), - [514] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_choice, 4), - [516] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_choice, 5, .production_id = 1), - [518] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if, 3, .production_id = 3), - [520] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_variable, 3, .production_id = 4), - [522] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_source, 2), - [524] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_menu, 4, .production_id = 1), - [526] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if, 4, .production_id = 3), - [528] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_variable, 4, .production_id = 7), - [530] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), - [532] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105), - [534] = {.entry = {.count = 1, .reusable = true}}, SHIFT(156), - [536] = {.entry = {.count = 1, .reusable = true}}, SHIFT(157), - [538] = {.entry = {.count = 1, .reusable = true}}, SHIFT(220), - [540] = {.entry = {.count = 1, .reusable = true}}, SHIFT(150), - [542] = {.entry = {.count = 1, .reusable = true}}, SHIFT(158), - [544] = {.entry = {.count = 1, .reusable = true}}, SHIFT(154), - [546] = {.entry = {.count = 1, .reusable = true}}, SHIFT(213), - [548] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30), - [550] = {.entry = {.count = 1, .reusable = true}}, SHIFT(170), - [552] = {.entry = {.count = 1, .reusable = true}}, SHIFT(151), - [554] = {.entry = {.count = 1, .reusable = true}}, SHIFT(209), - [556] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25), - [558] = {.entry = {.count = 1, .reusable = true}}, SHIFT(185), - [560] = {.entry = {.count = 1, .reusable = true}}, SHIFT(153), - [562] = {.entry = {.count = 1, .reusable = true}}, SHIFT(206), - [564] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117), + [459] = {.entry = {.count = 1, .reusable = true}}, SHIFT(125), + [461] = {.entry = {.count = 1, .reusable = false}}, SHIFT(176), + [463] = {.entry = {.count = 1, .reusable = false}}, SHIFT(185), + [465] = {.entry = {.count = 1, .reusable = false}}, SHIFT(216), + [467] = {.entry = {.count = 1, .reusable = false}}, SHIFT(121), + [469] = {.entry = {.count = 1, .reusable = true}}, SHIFT(191), + [471] = {.entry = {.count = 1, .reusable = false}}, SHIFT(119), + [473] = {.entry = {.count = 1, .reusable = true}}, SHIFT(194), + [475] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_variable_repeat1, 2, 0, 8), SHIFT_REPEAT(109), + [478] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_variable_repeat1, 2, 0, 8), SHIFT_REPEAT(121), + [481] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_variable_repeat1, 2, 0, 8), + [483] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_variable_repeat1, 2, 0, 8), SHIFT_REPEAT(176), + [486] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_variable_repeat1, 2, 0, 8), SHIFT_REPEAT(185), + [489] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_variable_repeat1, 2, 0, 8), SHIFT_REPEAT(216), + [492] = {.entry = {.count = 1, .reusable = true}}, SHIFT(134), + [494] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_source, 2, 0, 0), + [496] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if, 3, 0, 3), + [498] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_variable, 3, 0, 4), + [500] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_choice, 5, 0, 1), + [502] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_menu, 5, 0, 1), + [504] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_choice, 4, 0, 0), + [506] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_menu, 4, 0, 1), + [508] = {.entry = {.count = 1, .reusable = false}}, SHIFT(151), + [510] = {.entry = {.count = 1, .reusable = false}}, SHIFT(170), + [512] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), + [514] = {.entry = {.count = 1, .reusable = false}}, SHIFT(171), + [516] = {.entry = {.count = 1, .reusable = false}}, SHIFT(172), + [518] = {.entry = {.count = 1, .reusable = false}}, SHIFT(173), + [520] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), + [522] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), + [524] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), + [526] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_variable, 4, 0, 7), + [528] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_menu, 3, 0, 1), + [530] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_if, 4, 0, 3), + [532] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109), + [534] = {.entry = {.count = 1, .reusable = true}}, SHIFT(176), + [536] = {.entry = {.count = 1, .reusable = true}}, SHIFT(185), + [538] = {.entry = {.count = 1, .reusable = true}}, SHIFT(216), + [540] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104), + [542] = {.entry = {.count = 1, .reusable = true}}, SHIFT(149), + [544] = {.entry = {.count = 1, .reusable = true}}, SHIFT(150), + [546] = {.entry = {.count = 1, .reusable = true}}, SHIFT(211), + [548] = {.entry = {.count = 1, .reusable = true}}, SHIFT(156), + [550] = {.entry = {.count = 1, .reusable = true}}, SHIFT(167), + [552] = {.entry = {.count = 1, .reusable = true}}, SHIFT(183), + [554] = {.entry = {.count = 1, .reusable = true}}, SHIFT(212), + [556] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21), + [558] = {.entry = {.count = 1, .reusable = true}}, SHIFT(175), + [560] = {.entry = {.count = 1, .reusable = true}}, SHIFT(184), + [562] = {.entry = {.count = 1, .reusable = true}}, SHIFT(213), + [564] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35), [566] = {.entry = {.count = 1, .reusable = true}}, SHIFT(177), - [568] = {.entry = {.count = 1, .reusable = true}}, SHIFT(152), - [570] = {.entry = {.count = 1, .reusable = true}}, SHIFT(212), - [572] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_conditional_clause, 2), - [574] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_menu, 3, .production_id = 1), - [576] = {.entry = {.count = 1, .reusable = true}}, SHIFT(144), - [578] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_mainmenu, 2, .production_id = 1), - [580] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_mainmenu, 2, .production_id = 1), - [582] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), - [584] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), - [586] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107), - [588] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_choice, 5, .production_id = 1), - [590] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22), - [592] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if, 3, .production_id = 3), - [594] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable, 3, .production_id = 4), - [596] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109), - [598] = {.entry = {.count = 1, .reusable = true}}, SHIFT(36), - [600] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_choice, 4), - [602] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source, 2), - [604] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_menu, 4, .production_id = 1), - [606] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if, 4, .production_id = 3), - [608] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable, 4, .production_id = 7), - [610] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_menu, 5, .production_id = 1), - [612] = {.entry = {.count = 1, .reusable = false}}, SHIFT(21), - [614] = {.entry = {.count = 1, .reusable = false}}, SHIFT(215), - [616] = {.entry = {.count = 1, .reusable = false}}, SHIFT(217), + [568] = {.entry = {.count = 1, .reusable = true}}, SHIFT(138), + [570] = {.entry = {.count = 1, .reusable = true}}, SHIFT(218), + [572] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_menu, 5, 0, 1), + [574] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_conditional_clause, 2, 0, 0), + [576] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if, 4, 0, 3), + [578] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_choice, 5, 0, 1), + [580] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable, 4, 0, 7), + [582] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_mainmenu, 2, 0, 1), + [584] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_mainmenu, 2, 0, 1), + [586] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_menu, 3, 0, 1), + [588] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_variable, 3, 0, 4), + [590] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), + [592] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_source, 2, 0, 0), + [594] = {.entry = {.count = 1, .reusable = true}}, SHIFT(141), + [596] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_if, 3, 0, 3), + [598] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_choice, 4, 0, 0), + [600] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_menu, 4, 0, 1), + [602] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), + [604] = {.entry = {.count = 1, .reusable = true}}, SHIFT(24), + [606] = {.entry = {.count = 1, .reusable = true}}, SHIFT(111), + [608] = {.entry = {.count = 1, .reusable = true}}, SHIFT(37), + [610] = {.entry = {.count = 1, .reusable = true}}, SHIFT(103), + [612] = {.entry = {.count = 1, .reusable = false}}, SHIFT(90), + [614] = {.entry = {.count = 1, .reusable = false}}, SHIFT(214), + [616] = {.entry = {.count = 1, .reusable = false}}, SHIFT(220), [618] = {.entry = {.count = 1, .reusable = false}}, SHIFT(224), - [620] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_macro_variable_repeat1, 2), - [622] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_macro_variable_repeat1, 2), SHIFT_REPEAT(215), - [625] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_macro_variable_repeat1, 2), SHIFT_REPEAT(207), - [628] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_macro_variable_repeat1, 2), SHIFT_REPEAT(224), - [631] = {.entry = {.count = 1, .reusable = false}}, SHIFT(31), - [633] = {.entry = {.count = 1, .reusable = false}}, SHIFT(207), - [635] = {.entry = {.count = 1, .reusable = false}}, SHIFT(37), - [637] = {.entry = {.count = 1, .reusable = false}}, SHIFT(208), - [639] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), - [641] = {.entry = {.count = 1, .reusable = false}}, SHIFT(274), - [643] = {.entry = {.count = 1, .reusable = false}}, SHIFT(235), - [645] = {.entry = {.count = 1, .reusable = false}}, SHIFT(116), - [647] = {.entry = {.count = 1, .reusable = false}}, SHIFT(108), - [649] = {.entry = {.count = 1, .reusable = false}}, SHIFT(211), - [651] = {.entry = {.count = 1, .reusable = false}}, SHIFT(142), - [653] = {.entry = {.count = 1, .reusable = false}}, SHIFT(219), - [655] = {.entry = {.count = 1, .reusable = false}}, SHIFT(225), - [657] = {.entry = {.count = 1, .reusable = false}}, SHIFT(223), - [659] = {.entry = {.count = 1, .reusable = false}}, SHIFT(214), - [661] = {.entry = {.count = 1, .reusable = false}}, SHIFT(86), - [663] = {.entry = {.count = 1, .reusable = false}}, SHIFT(28), - [665] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), - [667] = {.entry = {.count = 1, .reusable = false}}, SHIFT(237), - [669] = {.entry = {.count = 1, .reusable = false}}, SHIFT(145), - [671] = {.entry = {.count = 1, .reusable = false}}, SHIFT(95), - [673] = {.entry = {.count = 1, .reusable = false}}, SHIFT(216), - [675] = {.entry = {.count = 1, .reusable = true}}, SHIFT(119), + [620] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), + [622] = {.entry = {.count = 1, .reusable = false}}, SHIFT(273), + [624] = {.entry = {.count = 1, .reusable = false}}, SHIFT(227), + [626] = {.entry = {.count = 1, .reusable = false}}, SHIFT(142), + [628] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), + [630] = {.entry = {.count = 1, .reusable = false}}, SHIFT(239), + [632] = {.entry = {.count = 1, .reusable = false}}, SHIFT(25), + [634] = {.entry = {.count = 1, .reusable = false}}, SHIFT(91), + [636] = {.entry = {.count = 1, .reusable = false}}, SHIFT(206), + [638] = {.entry = {.count = 1, .reusable = false}}, SHIFT(169), + [640] = {.entry = {.count = 1, .reusable = false}}, SHIFT(208), + [642] = {.entry = {.count = 1, .reusable = false}}, SHIFT(23), + [644] = {.entry = {.count = 1, .reusable = false}}, SHIFT(210), + [646] = {.entry = {.count = 1, .reusable = false}}, SHIFT(222), + [648] = {.entry = {.count = 1, .reusable = false}}, SHIFT(215), + [650] = {.entry = {.count = 1, .reusable = false}}, SHIFT(225), + [652] = {.entry = {.count = 1, .reusable = false}}, SHIFT(116), + [654] = {.entry = {.count = 1, .reusable = false}}, SHIFT(217), + [656] = {.entry = {.count = 1, .reusable = false}}, SHIFT(113), + [658] = {.entry = {.count = 1, .reusable = false}}, SHIFT(30), + [660] = {.entry = {.count = 1, .reusable = false}}, SHIFT(219), + [662] = {.entry = {.count = 1, .reusable = false}}, SHIFT(31), + [664] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_macro_variable_repeat1, 2, 0, 0), + [666] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_macro_variable_repeat1, 2, 0, 0), SHIFT_REPEAT(214), + [669] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_macro_variable_repeat1, 2, 0, 0), SHIFT_REPEAT(220), + [672] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_macro_variable_repeat1, 2, 0, 0), SHIFT_REPEAT(224), + [675] = {.entry = {.count = 1, .reusable = true}}, SHIFT(120), [677] = {.entry = {.count = 1, .reusable = true}}, SHIFT(118), - [679] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_macro_variable_repeat1, 1, .production_id = 2), - [681] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), + [679] = {.entry = {.count = 1, .reusable = false}}, REDUCE(aux_sym_macro_variable_repeat1, 1, 0, 2), + [681] = {.entry = {.count = 1, .reusable = true}}, SHIFT(241), [683] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50), - [685] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70), - [687] = {.entry = {.count = 1, .reusable = true}}, SHIFT(233), - [689] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), - [691] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), - [693] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), - [695] = {.entry = {.count = 1, .reusable = true}}, SHIFT(238), - [697] = {.entry = {.count = 1, .reusable = true}}, SHIFT(240), - [699] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75), - [701] = {.entry = {.count = 1, .reusable = true}}, SHIFT(241), - [703] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53), - [705] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), - [707] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74), - [709] = {.entry = {.count = 1, .reusable = true}}, SHIFT(232), - [711] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), + [685] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), + [687] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51), + [689] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73), + [691] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), + [693] = {.entry = {.count = 1, .reusable = true}}, SHIFT(236), + [695] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), + [697] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), + [699] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63), + [701] = {.entry = {.count = 1, .reusable = true}}, SHIFT(235), + [703] = {.entry = {.count = 1, .reusable = true}}, SHIFT(228), + [705] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77), + [707] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), + [709] = {.entry = {.count = 1, .reusable = true}}, SHIFT(237), + [711] = {.entry = {.count = 1, .reusable = true}}, SHIFT(233), [713] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49), - [715] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), - [717] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), - [719] = {.entry = {.count = 1, .reusable = true}}, SHIFT(201), - [721] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83), - [723] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54), - [725] = {.entry = {.count = 1, .reusable = true}}, SHIFT(242), - [727] = {.entry = {.count = 1, .reusable = true}}, SHIFT(190), - [729] = {.entry = {.count = 1, .reusable = true}}, SHIFT(230), - [731] = {.entry = {.count = 1, .reusable = true}}, SHIFT(227), - [733] = {.entry = {.count = 1, .reusable = true}}, SHIFT(231), - [735] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), - [737] = {.entry = {.count = 1, .reusable = true}}, SHIFT(72), - [739] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), - [741] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), - [743] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5), - [745] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76), - [747] = {.entry = {.count = 1, .reusable = true}}, SHIFT(132), - [749] = {.entry = {.count = 1, .reusable = true}}, SHIFT(239), - [751] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), - [753] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55), - [755] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56), - [757] = {.entry = {.count = 1, .reusable = true}}, SHIFT(228), - [759] = {.entry = {.count = 1, .reusable = true}}, SHIFT(226), - [761] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), - [763] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57), - [765] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), - [767] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16), - [769] = {.entry = {.count = 1, .reusable = true}}, SHIFT(236), - [771] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67), - [773] = {.entry = {.count = 1, .reusable = true}}, SHIFT(13), - [775] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61), - [777] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), - [779] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), - [781] = {.entry = {.count = 1, .reusable = true}}, SHIFT(42), + [715] = {.entry = {.count = 1, .reusable = true}}, ACCEPT_INPUT(), + [717] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47), + [719] = {.entry = {.count = 1, .reusable = true}}, SHIFT(242), + [721] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71), + [723] = {.entry = {.count = 1, .reusable = true}}, SHIFT(229), + [725] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52), + [727] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48), + [729] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62), + [731] = {.entry = {.count = 1, .reusable = true}}, SHIFT(192), + [733] = {.entry = {.count = 1, .reusable = true}}, SHIFT(43), + [735] = {.entry = {.count = 1, .reusable = true}}, SHIFT(69), + [737] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79), + [739] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45), + [741] = {.entry = {.count = 1, .reusable = true}}, SHIFT(196), + [743] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4), + [745] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19), + [747] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78), + [749] = {.entry = {.count = 1, .reusable = true}}, SHIFT(230), + [751] = {.entry = {.count = 1, .reusable = true}}, SHIFT(80), + [753] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2), + [755] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58), + [757] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81), + [759] = {.entry = {.count = 1, .reusable = true}}, SHIFT(238), + [761] = {.entry = {.count = 1, .reusable = true}}, SHIFT(82), + [763] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59), + [765] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60), + [767] = {.entry = {.count = 1, .reusable = true}}, SHIFT(226), + [769] = {.entry = {.count = 1, .reusable = true}}, SHIFT(234), + [771] = {.entry = {.count = 1, .reusable = true}}, SHIFT(10), + [773] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64), + [775] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68), + [777] = {.entry = {.count = 1, .reusable = true}}, SHIFT(123), + [779] = {.entry = {.count = 1, .reusable = true}}, SHIFT(231), + [781] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46), +}; + +enum ts_external_scanner_symbol_identifiers { + ts_external_token__help_text = 0, +}; + +static const TSSymbol ts_external_scanner_symbol_map[EXTERNAL_TOKEN_COUNT] = { + [ts_external_token__help_text] = sym__help_text, +}; + +static const bool ts_external_scanner_states[2][EXTERNAL_TOKEN_COUNT] = { + [1] = { + [ts_external_token__help_text] = true, + }, }; #ifdef __cplusplus @@ -9451,11 +9446,15 @@ bool tree_sitter_kconfig_external_scanner_scan(void *, TSLexer *, const bool *); unsigned tree_sitter_kconfig_external_scanner_serialize(void *, char *); void tree_sitter_kconfig_external_scanner_deserialize(void *, const char *, unsigned); -#ifdef _WIN32 -#define extern __declspec(dllexport) +#ifdef TREE_SITTER_HIDE_SYMBOLS +#define TS_PUBLIC +#elif defined(_WIN32) +#define TS_PUBLIC __declspec(dllexport) +#else +#define TS_PUBLIC __attribute__((visibility("default"))) #endif -extern const TSLanguage *tree_sitter_kconfig(void) { +TS_PUBLIC const TSLanguage *tree_sitter_kconfig(void) { static const TSLanguage language = { .version = LANGUAGE_VERSION, .symbol_count = SYMBOL_COUNT, diff --git a/src/tree_sitter/alloc.h b/src/tree_sitter/alloc.h new file mode 100644 index 0000000..1abdd12 --- /dev/null +++ b/src/tree_sitter/alloc.h @@ -0,0 +1,54 @@ +#ifndef TREE_SITTER_ALLOC_H_ +#define TREE_SITTER_ALLOC_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include +#include + +// Allow clients to override allocation functions +#ifdef TREE_SITTER_REUSE_ALLOCATOR + +extern void *(*ts_current_malloc)(size_t size); +extern void *(*ts_current_calloc)(size_t count, size_t size); +extern void *(*ts_current_realloc)(void *ptr, size_t size); +extern void (*ts_current_free)(void *ptr); + +#ifndef ts_malloc +#define ts_malloc ts_current_malloc +#endif +#ifndef ts_calloc +#define ts_calloc ts_current_calloc +#endif +#ifndef ts_realloc +#define ts_realloc ts_current_realloc +#endif +#ifndef ts_free +#define ts_free ts_current_free +#endif + +#else + +#ifndef ts_malloc +#define ts_malloc malloc +#endif +#ifndef ts_calloc +#define ts_calloc calloc +#endif +#ifndef ts_realloc +#define ts_realloc realloc +#endif +#ifndef ts_free +#define ts_free free +#endif + +#endif + +#ifdef __cplusplus +} +#endif + +#endif // TREE_SITTER_ALLOC_H_ diff --git a/src/tree_sitter/array.h b/src/tree_sitter/array.h new file mode 100644 index 0000000..a17a574 --- /dev/null +++ b/src/tree_sitter/array.h @@ -0,0 +1,291 @@ +#ifndef TREE_SITTER_ARRAY_H_ +#define TREE_SITTER_ARRAY_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +#include "./alloc.h" + +#include +#include +#include +#include +#include + +#ifdef _MSC_VER +#pragma warning(push) +#pragma warning(disable : 4101) +#elif defined(__GNUC__) || defined(__clang__) +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wunused-variable" +#endif + +#define Array(T) \ + struct { \ + T *contents; \ + uint32_t size; \ + uint32_t capacity; \ + } + +/// Initialize an array. +#define array_init(self) \ + ((self)->size = 0, (self)->capacity = 0, (self)->contents = NULL) + +/// Create an empty array. +#define array_new() \ + { NULL, 0, 0 } + +/// Get a pointer to the element at a given `index` in the array. +#define array_get(self, _index) \ + (assert((uint32_t)(_index) < (self)->size), &(self)->contents[_index]) + +/// Get a pointer to the first element in the array. +#define array_front(self) array_get(self, 0) + +/// Get a pointer to the last element in the array. +#define array_back(self) array_get(self, (self)->size - 1) + +/// Clear the array, setting its size to zero. Note that this does not free any +/// memory allocated for the array's contents. +#define array_clear(self) ((self)->size = 0) + +/// Reserve `new_capacity` elements of space in the array. If `new_capacity` is +/// less than the array's current capacity, this function has no effect. +#define array_reserve(self, new_capacity) \ + _array__reserve((Array *)(self), array_elem_size(self), new_capacity) + +/// Free any memory allocated for this array. Note that this does not free any +/// memory allocated for the array's contents. +#define array_delete(self) _array__delete((Array *)(self)) + +/// Push a new `element` onto the end of the array. +#define array_push(self, element) \ + (_array__grow((Array *)(self), 1, array_elem_size(self)), \ + (self)->contents[(self)->size++] = (element)) + +/// Increase the array's size by `count` elements. +/// New elements are zero-initialized. +#define array_grow_by(self, count) \ + do { \ + if ((count) == 0) break; \ + _array__grow((Array *)(self), count, array_elem_size(self)); \ + memset((self)->contents + (self)->size, 0, (count) * array_elem_size(self)); \ + (self)->size += (count); \ + } while (0) + +/// Append all elements from one array to the end of another. +#define array_push_all(self, other) \ + array_extend((self), (other)->size, (other)->contents) + +/// Append `count` elements to the end of the array, reading their values from the +/// `contents` pointer. +#define array_extend(self, count, contents) \ + _array__splice( \ + (Array *)(self), array_elem_size(self), (self)->size, \ + 0, count, contents \ + ) + +/// Remove `old_count` elements from the array starting at the given `index`. At +/// the same index, insert `new_count` new elements, reading their values from the +/// `new_contents` pointer. +#define array_splice(self, _index, old_count, new_count, new_contents) \ + _array__splice( \ + (Array *)(self), array_elem_size(self), _index, \ + old_count, new_count, new_contents \ + ) + +/// Insert one `element` into the array at the given `index`. +#define array_insert(self, _index, element) \ + _array__splice((Array *)(self), array_elem_size(self), _index, 0, 1, &(element)) + +/// Remove one element from the array at the given `index`. +#define array_erase(self, _index) \ + _array__erase((Array *)(self), array_elem_size(self), _index) + +/// Pop the last element off the array, returning the element by value. +#define array_pop(self) ((self)->contents[--(self)->size]) + +/// Assign the contents of one array to another, reallocating if necessary. +#define array_assign(self, other) \ + _array__assign((Array *)(self), (const Array *)(other), array_elem_size(self)) + +/// Swap one array with another +#define array_swap(self, other) \ + _array__swap((Array *)(self), (Array *)(other)) + +/// Get the size of the array contents +#define array_elem_size(self) (sizeof *(self)->contents) + +/// Search a sorted array for a given `needle` value, using the given `compare` +/// callback to determine the order. +/// +/// If an existing element is found to be equal to `needle`, then the `index` +/// out-parameter is set to the existing value's index, and the `exists` +/// out-parameter is set to true. Otherwise, `index` is set to an index where +/// `needle` should be inserted in order to preserve the sorting, and `exists` +/// is set to false. +#define array_search_sorted_with(self, compare, needle, _index, _exists) \ + _array__search_sorted(self, 0, compare, , needle, _index, _exists) + +/// Search a sorted array for a given `needle` value, using integer comparisons +/// of a given struct field (specified with a leading dot) to determine the order. +/// +/// See also `array_search_sorted_with`. +#define array_search_sorted_by(self, field, needle, _index, _exists) \ + _array__search_sorted(self, 0, _compare_int, field, needle, _index, _exists) + +/// Insert a given `value` into a sorted array, using the given `compare` +/// callback to determine the order. +#define array_insert_sorted_with(self, compare, value) \ + do { \ + unsigned _index, _exists; \ + array_search_sorted_with(self, compare, &(value), &_index, &_exists); \ + if (!_exists) array_insert(self, _index, value); \ + } while (0) + +/// Insert a given `value` into a sorted array, using integer comparisons of +/// a given struct field (specified with a leading dot) to determine the order. +/// +/// See also `array_search_sorted_by`. +#define array_insert_sorted_by(self, field, value) \ + do { \ + unsigned _index, _exists; \ + array_search_sorted_by(self, field, (value) field, &_index, &_exists); \ + if (!_exists) array_insert(self, _index, value); \ + } while (0) + +// Private + +typedef Array(void) Array; + +/// This is not what you're looking for, see `array_delete`. +static inline void _array__delete(Array *self) { + if (self->contents) { + ts_free(self->contents); + self->contents = NULL; + self->size = 0; + self->capacity = 0; + } +} + +/// This is not what you're looking for, see `array_erase`. +static inline void _array__erase(Array *self, size_t element_size, + uint32_t index) { + assert(index < self->size); + char *contents = (char *)self->contents; + memmove(contents + index * element_size, contents + (index + 1) * element_size, + (self->size - index - 1) * element_size); + self->size--; +} + +/// This is not what you're looking for, see `array_reserve`. +static inline void _array__reserve(Array *self, size_t element_size, uint32_t new_capacity) { + if (new_capacity > self->capacity) { + if (self->contents) { + self->contents = ts_realloc(self->contents, new_capacity * element_size); + } else { + self->contents = ts_malloc(new_capacity * element_size); + } + self->capacity = new_capacity; + } +} + +/// This is not what you're looking for, see `array_assign`. +static inline void _array__assign(Array *self, const Array *other, size_t element_size) { + _array__reserve(self, element_size, other->size); + self->size = other->size; + memcpy(self->contents, other->contents, self->size * element_size); +} + +/// This is not what you're looking for, see `array_swap`. +static inline void _array__swap(Array *self, Array *other) { + Array swap = *other; + *other = *self; + *self = swap; +} + +/// This is not what you're looking for, see `array_push` or `array_grow_by`. +static inline void _array__grow(Array *self, uint32_t count, size_t element_size) { + uint32_t new_size = self->size + count; + if (new_size > self->capacity) { + uint32_t new_capacity = self->capacity * 2; + if (new_capacity < 8) new_capacity = 8; + if (new_capacity < new_size) new_capacity = new_size; + _array__reserve(self, element_size, new_capacity); + } +} + +/// This is not what you're looking for, see `array_splice`. +static inline void _array__splice(Array *self, size_t element_size, + uint32_t index, uint32_t old_count, + uint32_t new_count, const void *elements) { + uint32_t new_size = self->size + new_count - old_count; + uint32_t old_end = index + old_count; + uint32_t new_end = index + new_count; + assert(old_end <= self->size); + + _array__reserve(self, element_size, new_size); + + char *contents = (char *)self->contents; + if (self->size > old_end) { + memmove( + contents + new_end * element_size, + contents + old_end * element_size, + (self->size - old_end) * element_size + ); + } + if (new_count > 0) { + if (elements) { + memcpy( + (contents + index * element_size), + elements, + new_count * element_size + ); + } else { + memset( + (contents + index * element_size), + 0, + new_count * element_size + ); + } + } + self->size += new_count - old_count; +} + +/// A binary search routine, based on Rust's `std::slice::binary_search_by`. +/// This is not what you're looking for, see `array_search_sorted_with` or `array_search_sorted_by`. +#define _array__search_sorted(self, start, compare, suffix, needle, _index, _exists) \ + do { \ + *(_index) = start; \ + *(_exists) = false; \ + uint32_t size = (self)->size - *(_index); \ + if (size == 0) break; \ + int comparison; \ + while (size > 1) { \ + uint32_t half_size = size / 2; \ + uint32_t mid_index = *(_index) + half_size; \ + comparison = compare(&((self)->contents[mid_index] suffix), (needle)); \ + if (comparison <= 0) *(_index) = mid_index; \ + size -= half_size; \ + } \ + comparison = compare(&((self)->contents[*(_index)] suffix), (needle)); \ + if (comparison == 0) *(_exists) = true; \ + else if (comparison < 0) *(_index) += 1; \ + } while (0) + +/// Helper macro for the `_sorted_by` routines below. This takes the left (existing) +/// parameter by reference in order to work with the generic sorting function above. +#define _compare_int(a, b) ((int)*(a) - (int)(b)) + +#ifdef _MSC_VER +#pragma warning(pop) +#elif defined(__GNUC__) || defined(__clang__) +#pragma GCC diagnostic pop +#endif + +#ifdef __cplusplus +} +#endif + +#endif // TREE_SITTER_ARRAY_H_ diff --git a/src/tree_sitter/parser.h b/src/tree_sitter/parser.h index 2b14ac1..799f599 100644 --- a/src/tree_sitter/parser.h +++ b/src/tree_sitter/parser.h @@ -13,9 +13,8 @@ extern "C" { #define ts_builtin_sym_end 0 #define TREE_SITTER_SERIALIZATION_BUFFER_SIZE 1024 -typedef uint16_t TSStateId; - #ifndef TREE_SITTER_API_H_ +typedef uint16_t TSStateId; typedef uint16_t TSSymbol; typedef uint16_t TSFieldId; typedef struct TSLanguage TSLanguage; @@ -48,6 +47,7 @@ struct TSLexer { uint32_t (*get_column)(TSLexer *); bool (*is_at_included_range_start)(const TSLexer *); bool (*eof)(const TSLexer *); + void (*log)(const TSLexer *, const char *, ...); }; typedef enum { @@ -87,6 +87,11 @@ typedef union { } entry; } TSParseActionEntry; +typedef struct { + int32_t start; + int32_t end; +} TSCharacterRange; + struct TSLanguage { uint32_t version; uint32_t symbol_count; @@ -126,13 +131,38 @@ struct TSLanguage { const TSStateId *primary_state_ids; }; +static inline bool set_contains(TSCharacterRange *ranges, uint32_t len, int32_t lookahead) { + uint32_t index = 0; + uint32_t size = len - index; + while (size > 1) { + uint32_t half_size = size / 2; + uint32_t mid_index = index + half_size; + TSCharacterRange *range = &ranges[mid_index]; + if (lookahead >= range->start && lookahead <= range->end) { + return true; + } else if (lookahead > range->end) { + index = mid_index; + } + size -= half_size; + } + TSCharacterRange *range = &ranges[index]; + return (lookahead >= range->start && lookahead <= range->end); +} + /* * Lexer Macros */ +#ifdef _MSC_VER +#define UNUSED __pragma(warning(suppress : 4101)) +#else +#define UNUSED __attribute__((unused)) +#endif + #define START_LEXER() \ bool result = false; \ bool skip = false; \ + UNUSED \ bool eof = false; \ int32_t lookahead; \ goto start; \ @@ -148,6 +178,17 @@ struct TSLanguage { goto next_state; \ } +#define ADVANCE_MAP(...) \ + { \ + static const uint16_t map[] = { __VA_ARGS__ }; \ + for (uint32_t i = 0; i < sizeof(map) / sizeof(map[0]); i += 2) { \ + if (map[i] == lookahead) { \ + state = map[i + 1]; \ + goto next_state; \ + } \ + } \ + } + #define SKIP(state_value) \ { \ skip = true; \ @@ -166,7 +207,7 @@ struct TSLanguage { * Parse Table Macros */ -#define SMALL_STATE(id) id - LARGE_STATE_COUNT +#define SMALL_STATE(id) ((id) - LARGE_STATE_COUNT) #define STATE(id) id @@ -176,7 +217,7 @@ struct TSLanguage { {{ \ .shift = { \ .type = TSParseActionTypeShift, \ - .state = state_value \ + .state = (state_value) \ } \ }} @@ -184,7 +225,7 @@ struct TSLanguage { {{ \ .shift = { \ .type = TSParseActionTypeShift, \ - .state = state_value, \ + .state = (state_value), \ .repetition = true \ } \ }} @@ -197,14 +238,15 @@ struct TSLanguage { } \ }} -#define REDUCE(symbol_val, child_count_val, ...) \ - {{ \ - .reduce = { \ - .type = TSParseActionTypeReduce, \ - .symbol = symbol_val, \ - .child_count = child_count_val, \ - __VA_ARGS__ \ - }, \ +#define REDUCE(symbol_name, children, precedence, prod_id) \ + {{ \ + .reduce = { \ + .type = TSParseActionTypeReduce, \ + .symbol = symbol_name, \ + .child_count = children, \ + .dynamic_precedence = precedence, \ + .production_id = prod_id \ + }, \ }} #define RECOVER() \ diff --git a/tree-sitter.json b/tree-sitter.json new file mode 100644 index 0000000..5797838 --- /dev/null +++ b/tree-sitter.json @@ -0,0 +1,45 @@ +{ + "grammars": [ + { + "name": "kconfig", + "camelcase": "Kconfig", + "scope": "source.kconfig", + "path": ".", + "file-types": [ + "Kconfig" + ], + "highlights": [ + "queries/highlights.scm" + ], + "injections": [ + "queries/injections.scm" + ], + "locals": [ + "queries/locals.scm" + ], + "injection-regex": "kconfig" + } + ], + "metadata": { + "version": "1.1.1", + "license": "MIT", + "description": "Kconfig grammar for tree-sitter", + "authors": [ + { + "name": "Amaan Qureshi", + "email": "amaanq12@gmail.com" + } + ], + "links": { + "repository": "https://github.com/tree-sitter-grammars/tree-sitter-kconfig" + } + }, + "bindings": { + "c": true, + "go": true, + "node": true, + "python": true, + "rust": true, + "swift": true + } +}